private void createFunction(Program program, Address entry, TaskMonitor monitor)
			throws CancelledException {
		if (program.getFunctionManager().getFunctionAt(entry) != null) {
			processFunctionJumpReferences(program, entry, monitor);
		}
		else {
			// check if there could be any fallthru flow to the potential entry point
			if (checkIfCouldHaveFallThruTo(program, entry)) {
				// if there could be, even later in analysis, don't create the function
				return;
			}
			AutoAnalysisManager analysisMgr = AutoAnalysisManager.getAnalysisManager(program);
			analysisMgr.createFunction(entry, false);
		}
	}
Constructor
@param set set of addresses over which destination functions will be
examined for Jump reference to those functions.
@param assumeContiguousFunctions if true it will be assumed that any unconditional
jump over another function will trigger a call-return override and the creation of
@param considerConditionalBranches if true conditional jumps can also be considered for jumping
to another function as a shared return.
a function at the destination.
Ghidra/Features/Base/src/main/java/ghidra/app/cmd/analysis/SharedReturnAnalysisCmd.java