private static MDParsableItem parseObjectReserved(MDMang dmang) {
		MDParsableItem item;
		if (dmang.positionStartsWith("__TI")) {
			dmang.increment("__TI".length());
			item = new MDObjectThrowInfo(dmang);
		}
		//Single underscore version is seen in 64-bit binaries
		else if (dmang.positionStartsWith("_TI")) {
			dmang.increment("_TI".length());
			item = new MDObjectThrowInfo(dmang);
		}
		//__CTA must come before __CT prefix case
		else if (dmang.positionStartsWith("__CTA")) {
			dmang.increment("__CTA".length());
			item = new MDObjectCatchableTypeArray(dmang);
		}
		else if (dmang.positionStartsWith("__CT")) {
			dmang.increment("__CT".length());
			item = new MDObjectCatchableType(dmang);
		}
		//_CTA must come before _CT prefix case
		//Single underscore version is seen in 64-bit binaries
		else if (dmang.positionStartsWith("_CTA")) {
			dmang.increment("_CTA".length());
			item = new MDObjectCatchableTypeArray(dmang);
		}
		//Single underscore version is seen in 64-bit binaries
		else if (dmang.positionStartsWith("_CT")) {
			dmang.increment("_CT".length());
			item = new MDObjectCatchableType(dmang);
		}
		else if (dmang.positionStartsWith("__catch$")) {
			dmang.increment("__catch$".length());
			item = new MDObjectCatch(dmang);
		}
		else if (dmang.positionStartsWith("__catchsym$")) {
			dmang.increment("__catchsym$".length());
			item = new MDObjectCatchSym(dmang);
		}
		else if (dmang.positionStartsWith("__unwindfunclet$")) {
			dmang.increment("__unwindfunclet$".length());
			item = new MDObjectUnwindFunclet(dmang);
		}
		else if (dmang.positionStartsWith("__tryblocktable$")) {
			dmang.increment("__tryblocktable$".length());
			item = new MDObjectTryBlockTable(dmang);
		}
		else if (dmang.positionStartsWith("__unwindtable$")) {
			dmang.increment("__unwindtable$".length());
			item = new MDObjectUnwindTable(dmang);
		}
		else if (dmang.positionStartsWith("__ehhandler$")) {
			dmang.increment("__ehhandler$".length());
			item = new MDObjectEHHandler(dmang);
		}
		else if (dmang.positionStartsWith("__m2mep@")) {
			//dmang.increment("__m2mep@".length());
			//See source8P
			item = new MDObjectBracket(dmang);
		}
		else if (dmang.positionStartsWith("__mep@")) {
			//dmang.increment("__mep@".length());
			//Managed Entry Point
			item = new MDObjectBracket(dmang);
		}
		else if (dmang.positionStartsWith("__t2m@")) {
			//dmang.increment("__t2m@".length());
			//Transition-to-Managed
			item = new MDObjectBracket(dmang);
		}
		else if (dmang.positionStartsWith("__unep@")) {
			//dmang.increment("__unep@".length());
			//See source8P
			item = new MDObjectBracket(dmang);
		}
		else {
			//What else?
			/*See cn3:
				___iob_func
				@__security_check_cookie@4
				__CxxThrowException@8
				___CxxFrameHandler3
				__imp__InitOnceExecuteOnce@16
				__real@00000000
				__real@0000000000000000
				__real@3f1a36e2eb1c432d
			*/
			item = new MDObjectReserved(dmang);
		}
		return item;
	}
Parses the input data for "Compiler-Reserved" symbols.  The C++/C-specification says that
 symbols that begin with two underscores or with a single underscore followed by a
 capital letter are reserved for compiler use.  These are generally symbols that the
 compiler has generated for code that it generates to fulfill certain needs such as code
 for C++ internals or exception-handling internals.  This method creates our idea of what
 the underlying object is that is named by this compiler-reserved symbol.
@param dmang The <b><code>MDMang</code></b> worker for demangling.
@return MDParsableItem object representing the underlying object that is named
 by the compiler-reserved symbol.
@throws MDException Upon <b><code>MDMang</code></b> parsing issues that cause us to fail
 processing.
Ghidra/Features/MicrosoftDmang/src/main/java/mdemangler/object/MDMangObjectParser.java