boolean isValidFunctionStart(TaskMonitor monitor, Address address) {
		// instruction above falls into this one
		//   could be non-returning function, but we can't tell now
		Instruction instrBefore = getInstructionBefore(address);
		if (instrBefore != null && address.equals(instrBefore.getFallThrough())) {
			return false;
		}

		// check if part of a larger code-block
		ReferenceIterator referencesTo = program.getReferenceManager().getReferencesTo(address);
		for (Reference reference : referencesTo) {
			RefType referenceType = reference.getReferenceType();

			if (referenceType.isCall()) {
				continue;
			}
			// if a function already existed here, then a jump to here would be OK
			//   but that would be handled by another analyzer
			if (referenceType.isJump()) {
				return false;
			}
		}

		return true;
	}
Check that the symbol looks like it is at the start of a function.
There can be internal symbols that may match a function name.

@param monitor if need to cancel
@param address location of the potential symbol
@return true if the symbol is at the start of a function flow
Ghidra/Features/Base/src/main/java/ghidra/app/cmd/function/ApplyFunctionDataTypesCmd.java