private ParentageNode getOrAddParentageNode(CategoryPath categoryPath, ParentageNode root,
			DemanglerResults demanglerResults) {

		ParentageNode node = root;
		OwnerAndParentage ownerAndParentage = demanglerResults.ownerAndParentage();

		ClassID owner = ownerAndParentage.owner(); // owner should be same as first on list
		List<ClassID> parentage = ownerAndParentage.parentage();
		node = node.getOrAddBranch(owner.getSymbolPath().toString());
		for (ClassID id : parentage) {
			node = node.getOrAddBranch(id.getSymbolPath().toString());
		}
		return node;
	}
Creates a virtual function or base table for the mangled symbol and its associated
memory address

@param categoryPath the base category path used for the collection of class-related
types
@param mangled the mangled name of the type
@param address the address associated with the mangled name
@param monitor the task monitor
@return {@code true} if successful
Ghidra/Features/PDB/src/main/java/ghidra/app/util/pdb/classtype/MsVxtManager.java