public List<Function> getPossibleParentDestructors(Function function)
			throws CancelledException {

		List<Function> possibleParentDestructors = new ArrayList<Function>();

		List<Address> vftableReferenceList = getVftableReferences(function);
		if (vftableReferenceList == null) {
			return possibleParentDestructors;
		}

		Collections.sort(vftableReferenceList, Collections.reverseOrder());
		Address maxVftableReference = vftableReferenceList.get(0);

		InstructionIterator instructions =
			function.getProgram().getListing().getInstructions(function.getBody(), true);
		while (instructions.hasNext()) {
			monitor.checkCancelled();
			Instruction instruction = instructions.next();

			if (instruction.getMinAddress().compareTo(maxVftableReference) <= 0) {
				continue;
			}

			if (instruction.getFlowType().isCall()) {

				Function calledFunction =
					extendedFlatAPI.getReferencedFunction(instruction.getMinAddress(), true);
				if (calledFunction == null) {
					continue;
				}

				if (getVftableReferences(calledFunction) == null) {
					continue;
				}

				possibleParentDestructors.add(calledFunction);
			}
		}

		return possibleParentDestructors;
	}
Method to retrieve a list of possible parent class destructors to the given function
@param function the given function
@return a list of possible parent class destructors to the given function
@throws CancelledException if cancelled
Ghidra/Features/Decompiler/ghidra_scripts/classrecovery/RecoveredClassHelper.java