private static CppCompositeType createR1_struct(DataTypeManager dtm, CppCompositeType Q1_struct,
			CppCompositeType Q2_struct) throws PdbException {
		String name = "R1NS::R1";
		SymbolPath classSp = new SymbolPath(SymbolPathParser.parse(name));
		CppCompositeType struct = createStruct(dtm, name, 104);
		struct.addVirtualFunctionTablePointer(ClassUtils.VXPTR_TYPE, 0);
		struct.addDirectVirtualBaseClass(Q1_struct.getComposite(), Q1_struct,
			publicDirectAttributes, 8, ClassUtils.VXPTR_TYPE, 1);
		struct.addDirectVirtualBaseClass(Q2_struct.getComposite(), Q2_struct,
			publicDirectAttributes, 8, ClassUtils.VXPTR_TYPE, 2);
		struct.addMember("r1", intT, false, publicDirectAttributes, 16, null);
		struct.addVirtualMethod(0, 0, new SymbolPath(classSp, "fp1_1"), fintvoidT);
		struct.addVirtualMethod(0, 8, new SymbolPath(classSp, "fp1_2"), fintintT);
		struct.addVirtualMethod(0, 16, new SymbolPath(classSp, "fp1_2"), fintvoidT);
		struct.addVirtualMethod(24, -1, new SymbolPath(classSp, "fp1_3"), fintvoidT);
		struct.addVirtualMethod(24, -1, new SymbolPath(classSp, "fp1_4"), fintintT);
		struct.addVirtualMethod(24, -1, new SymbolPath(classSp, "fp1_4"), fintvoidT);
		struct.addVirtualMethod(24, -1, new SymbolPath(classSp, "fp1_5"), fintvoidT);
		struct.addVirtualMethod(24, -1, new SymbolPath(classSp, "fp1_6"), fintintT);
		struct.addVirtualMethod(24, -1, new SymbolPath(classSp, "fp1_6"), fintvoidT);
		struct.addVirtualMethod(24, -1, new SymbolPath(classSp, "fp1_7"), fintvoidT);
		struct.addVirtualMethod(24, -1, new SymbolPath(classSp, "fp1_8"), fintintT);
		struct.addVirtualMethod(24, -1, new SymbolPath(classSp, "fp1_8"), fintvoidT);
		struct.addVirtualMethod(0, 24, new SymbolPath(classSp, "fp2_1"), fintvoidT);
		struct.addVirtualMethod(0, 32, new SymbolPath(classSp, "fp2_2"), fintintT);
		struct.addVirtualMethod(0, 40, new SymbolPath(classSp, "fp2_2"), fintvoidT);
		struct.addVirtualMethod(40, -1, new SymbolPath(classSp, "fp2_3"), fintvoidT);
		struct.addVirtualMethod(40, -1, new SymbolPath(classSp, "fp2_4"), fintintT);
		struct.addVirtualMethod(40, -1, new SymbolPath(classSp, "fp2_4"), fintvoidT);
		struct.addVirtualMethod(40, -1, new SymbolPath(classSp, "fp2_5"), fintvoidT);
		struct.addVirtualMethod(40, -1, new SymbolPath(classSp, "fp2_6"), fintintT);
		struct.addVirtualMethod(40, -1, new SymbolPath(classSp, "fp2_6"), fintvoidT);
		struct.addVirtualMethod(40, -1, new SymbolPath(classSp, "fp2_7"), fintvoidT);
		struct.addVirtualMethod(40, -1, new SymbolPath(classSp, "fp2_8"), fintintT);
		struct.addVirtualMethod(40, -1, new SymbolPath(classSp, "fp2_8"), fintvoidT);
		struct.addVirtualMethod(40, -1, new SymbolPath(classSp, "fp2_9"), fintvoidT);
		struct.addVirtualMethod(40, -1, new SymbolPath(classSp, "fp2_10"), fintintT);
		struct.addVirtualMethod(40, -1, new SymbolPath(classSp, "fp2_10"), fintvoidT);
		struct.addVirtualMethod(24, -1, new SymbolPath(classSp, "fq1_3"), fintintT);
		struct.addVirtualMethod(64, -1, new SymbolPath(classSp, "fq2_3"), fintintT);
		return struct;
	}
Class to create the vftm 64-bit program and mock PDB
Ghidra/Features/PDB/src/test/java/ghidra/app/util/pdb/Vftm64ProgramCreator.java