public Set<Function> getAllClassFunctionsWithVtableRef(List<Address> vftables)
			throws CancelledException {

		Set<Function> allFunctionsThatReferenceVftables = new HashSet<Function>();

		if (vftables.isEmpty()) {
			return allFunctionsThatReferenceVftables;
		}

		for (Address vftableAddress : vftables) {

			monitor.checkCancelled();

			List<Function> functionsThatReferenceVftable =
				geFunctionsThatReferenceAddress(vftableAddress);

			if (functionsThatReferenceVftable.isEmpty()) {
				continue;
			}

			for (Function function : functionsThatReferenceVftable) {
				monitor.checkCancelled();

				allFunctionsThatReferenceVftables.add(function);
			}

		}
		return allFunctionsThatReferenceVftables;

	}
Method to create a map of calling address to called function for the given function.
@param function the given function
@param getThunkedFunction if true, use the thunked function in the map, if false use the 
directly called function from the calling function even if it is a thunk
@param visited the set of function entry point addresses already processed
@return a map of the given functions calling addresses to the called functions 
@throws CancelledException if cancelled
Ghidra/Features/Decompiler/ghidra_scripts/classrecovery/RecoveredClassHelper.java