@Override
	protected void load(ByteProvider provider, LoadSpec loadSpec, List<Option> options,
			Program program, TaskMonitor monitor, MessageLog log)
			throws IOException, CancelledException {


		try {
			CoffFileHeader header = new CoffFileHeader(provider);
			header.parse(monitor);

			Map<CoffSectionHeader, Address> sectionsMap = new HashMap<>();
			Map<CoffSymbol, Symbol> symbolsMap = new HashMap<>();

			FileBytes fileBytes = MemoryBlockUtils.createFileBytes(program, provider, monitor);
			processSectionHeaders(provider, header, program, fileBytes, monitor, log, sectionsMap,
				performFakeLinking(options));
			processSymbols(header, program, monitor, log, sectionsMap, symbolsMap);
			processEntryPoint(header, program, monitor, log);
			processRelocations(header, program, sectionsMap, symbolsMap, log, monitor);
			markupHeaders(header, program, fileBytes, log, monitor);
		}
		catch (CoffException | AddressOverflowException e) {
			throw new IOException(e);
		}
	}
Checks to see if the COFF is CLI.

@param header The COFF's headers.
@return True if the COFF is CLI; otherwise, false.
Ghidra/Features/Base/src/main/java/ghidra/app/util/opinion/CoffLoader.java