@Override
	protected void parseInternal() throws MDException {
		super.parseInternal(); // parseInternal or dmang.parse?
		dmang.pushFunctionContext();
		if (hasCVModifier) {
			thisPointerCVMod = new MDCVMod(dmang);
			thisPointerCVMod.setThisPointerMod();
			thisPointerCVMod.parse();
		}
		convention = new MDCallingConvention(dmang);
		convention.parse();
		if (hasReturn) {
			retType = MDDataTypeParser.parseDataType(dmang, isTypeCast);
			retType.parse();
		}
		if (hasArgs) {
			argsList = new MDArgumentsList(dmang);
			argsList.parse();
			// TODO 20170323: might make sense to parse 'Z' here and simplify the internals
			//  of MDThrowAttribute.  If 'Z' not found then throwAttribute would be null here.
			throwAttribute = new MDThrowAttribute(dmang);
			throwAttribute.parse();
		}
		dmang.popContext();
	}
This class represents a function within a Microsoft mangled symbol.
Ghidra/Features/MicrosoftDmang/src/main/java/mdemangler/functiontype/MDFunctionType.java