private void analyzeMachoFunctionStarts(Program program, ByteProvider provider,
			AddressSetView set, TaskMonitor monitor, MessageLog log)
			throws MachException, IOException, CancelledException {
		MachHeader header = new MachHeader(provider);
		header.parse();
		monitor.setIndeterminate(true);
		monitor.setMessage("Analyzing function starts...");
		analyzeFunctionStarts(program, header, set, monitor);
	}
Finds and creates new functions in the given Mach-O using the LC_FUNCTION_STARTS load command

@param program The {@link Program}
@param provider The {@link ByteProvider} that contains the original file bytes
@param set The set of addresses to find new functions at
@param monitor A cancellable monitor
@param log The log
@throws MachException If there was an issue parsing the headers
@throws IOException If an IO-related issue occurred
@throws CancelledException If the user cancelled
Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/analysis/MachoFunctionStartsAnalyzer.java