protected boolean processExports(MachHeader header) throws Exception {
		List<ExportEntry> exports = new ArrayList<>();

		// Old way - export tree in DyldInfoCommand
		List<DyldInfoCommand> dyldInfoCommands = header.getLoadCommands(DyldInfoCommand.class);
		for (DyldInfoCommand dyldInfoCommand : dyldInfoCommands) {
			exports.addAll(dyldInfoCommand.getExportTrie().getExports(e -> !e.isReExport()));

		}

		// New way - export tree in DyldExportsTrieCommand
		List<DyldExportsTrieCommand> dyldExportsTrieCommands =
			header.getLoadCommands(DyldExportsTrieCommand.class);
		for (DyldExportsTrieCommand dyldExportsTreeCommand : dyldExportsTrieCommands) {
			exports.addAll(dyldExportsTreeCommand.getExportTrie().getExports(e -> !e.isReExport()));
		}

		if (exports.isEmpty()) {
			return false;
		}

		SegmentCommand textSegment = header.getSegment(SegmentNames.SEG_TEXT);
		if (textSegment == null) {
			log.appendMsg("Cannot process exports, __TEXT segment not found!");
			return false;
		}

		Address baseAddr = space.getAddress(textSegment.getVMaddress());
		monitor.initialize(exports.size(), "Processing exports...");
		for (ExportEntry export : exports) {
			monitor.increment();
			String name = SymbolUtilities.replaceInvalidChars(export.name(), true);
			try {
				processNewExport(baseAddr, export, name);
			}
			catch (AddressOutOfBoundsException e) {
				log.appendMsg("Failed to process export '" + export + "': " + e.getMessage());
			}
			catch (Exception e) {
				log.appendMsg("Unable to create symbol: " + e.getMessage());
			}
		}

		return !exports.isEmpty();
	}
Attempts to discover and set the entry point.
<p>
A program may declare multiple entry points to, for example, confuse static analysis tools.
We will sort the discovered entry points by priorities assigned to each type of load
command, and only use the one with the highest priority.

@param source A name that represents where the memory blocks came from.
@throws Exception If there was a problem discovering or setting the entry point.
Ghidra/Features/Base/src/main/java/ghidra/app/util/opinion/MachoProgramBuilder.java