public void separateInlinedConstructorDestructors(List<RecoveredClass> recoveredClasses)
			throws CancelledException {

		for (RecoveredClass recoveredClass : recoveredClasses) {
			monitor.checkCancelled();
			List<Function> indeterminateFunctions = recoveredClass.getIndeterminateList();
			Iterator<Function> indeterminateIterator = indeterminateFunctions.iterator();
			while (indeterminateIterator.hasNext()) {
				monitor.checkCancelled();
				Function indeterminateFunction = indeterminateIterator.next();

				List<Address> vftableReferenceList = getVftableReferences(indeterminateFunction);
				if (vftableReferenceList == null) {
					continue;
				}

				// if inline, put on separate list and remove from indeterminate list
				// process later
				if (callsOwnConstructorOrDestructor(recoveredClass, indeterminateFunction)) {
					recoveredClass.addIndeterminateInline(indeterminateFunction);
					indeterminateIterator.remove();
					continue;
				}

				if (vftableReferenceList.size() > 1) {
					if (!areVftablesInSameClass(vftableReferenceList)) {
						recoveredClass.addIndeterminateInline(indeterminateFunction);
						indeterminateIterator.remove();
					}
				}
			}
		}
	}
Method to remove functions from the class constructor/destructor lists (and the overall list)
that are not self-contained constructor/destructor functions. Add them to the list of
functions that contain inlined constructors or destructors.
NOTE: this must be called after the global const/dest list is created but before
functions get added to the other class lists
@param recoveredClasses list of classes to process
@throws CancelledException if cancelled
Ghidra/Features/Decompiler/ghidra_scripts/classrecovery/RecoveredClassHelper.java