static boolean validateMangledCompositeName(String mangledCompositeTypeName, ClassKey key) {
		if (mangledCompositeTypeName == null) {
			return false;
		}
		if (!mangledCompositeTypeName.startsWith(".?")) {
			return false;
		}
		if (mangledCompositeTypeName.length() < 7) {
			return false;
		}
		if (mangledCompositeTypeName.charAt(2) != 'A') {
			PdbLog.message("Mangled composite type name not plain 'A'");
		}
		switch (mangledCompositeTypeName.charAt(3)) {
			case 'T':
				if ((key.compareTo(ClassKey.UNION) != 0) &&
					(key.compareTo(ClassKey.UNKNOWN) != 0)) {
					PdbLog.message("Warning: Mismatched complex type 'T' for " + key);
				}
				break;
			case 'U':
				if ((key.compareTo(ClassKey.STRUCT) != 0) &&
					(key.compareTo(ClassKey.UNKNOWN) != 0)) {
					PdbLog.message("Warning: Mismatched complex type 'U' for " + key);
				}
				break;
			case 'V':
				if ((key.compareTo(ClassKey.CLASS) != 0) &&
					(key.compareTo(ClassKey.UNKNOWN) != 0)) {
					PdbLog.message("Warning: Mismatched complex type 'V' for " + key);
				}
				break;
			default:
				PdbLog.message("Not composite");
				return false;
		}
		return true;

	}
Validates the mangled name against the class key
@param mangledCompositeTypeName the mangled name
@param key the key
@return {@code true} if passed validation
Ghidra/Features/PDB/src/main/java/ghidra/app/util/pdb/pdbapplicator/CppCompositeType.java