@Override
	protected void parseInternal() throws MDException {
		if (!dmang.isFunction()) {
			name.parse();
			return;
		}

		int index = dmang.getIndex();
		char c = dmang.peek();
		if (c == '@') {
			conventionIndex = 2;
			dmang.next();
		}
		else if (c == '_') {
			conventionIndex = 0; // will be 0 or 1
			dmang.next();
		}
		else {
			conventionIndex = 3;
		}
		name.parse(); // This strips a trailing '@' if it exists
		c = dmang.peek();
		if (c == '@') {
			if (conventionIndex != 3) {
				throw new MDException("Error parsing C Object calling convention");
			}
			dmang.next(); // skip the '@'
		}
		else if (conventionIndex == 0 &&
			dmang.getMangledSymbol().charAt(dmang.getIndex() - 1) == '@') {
			conventionIndex = 1;
		}

		if (dmang.getArchitectureSize() != 32 && conventionIndex != 3) {
			conventionIndex = -1;
			dmang.setIndex(index); // reset iterator back to original location
			name.parse();
			return;
		}

		if (conventionIndex != 0) {
			numParameterBytes = parseNumParameterBytes();
		}

	}
Returns the number of parameter bytes if the C object is determined to be a function with
a specified convention
@return the number of bytes; will always be zero for __cdecl
Ghidra/Features/MicrosoftDmang/src/main/java/mdemangler/object/MDObjectC.java