private boolean hasValidVbaseDestructor(RecoveredClass recoveredClass)
			throws CancelledException {
		Function vBaseDestructor = recoveredClass.getVBaseDestructor();

		StringBuffer string = new StringBuffer();
		string.append(recoveredClass.getName());

		if (vBaseDestructor == null) {
			return false;
		}
		if (recoveredClass.getDestructorList().size() != 1) {
			return false;
		}

		if (!hasNonVirtualFunctionAncestor(recoveredClass)) {
			return false;
		}

		if (!recoveredClass.hasChildClass() || hasChildWithVBaseAndDestructor(recoveredClass)) {
			return true;
		}
		return false;
	}
Method to determine if a class's identified vbase_destructor is valid or not
If the class has both a vbase destructor and a regular destructor and the class has
a non-virtual ancestor, and either the class is the lowest child or has a child with a
vbase_destructor then it is a valid vbase_destructor. Otherwise, it isn't.
@param recoveredClass the given class object
@return true if class has a vbase destructor, false if not
Ghidra/Features/Decompiler/ghidra_scripts/classrecovery/RecoveredClassHelper.java