private String findNameOfKext(MachHeader header, TaskMonitor monitor) {
		try {
			SegmentCommand dataSegment = header.getSegment(SegmentNames.SEG_DATA);
			if (dataSegment != null) {
				Section dataSection = dataSegment.getSectionByName(SectionNames.DATA);
				if (dataSection != null) {
					if (dataSection.getSize() < 0x1000000) {//don't load too many bytes
						try (InputStream dataStream = dataSection.getDataStream(header)) {
							byte[] bytes = new byte[(int) dataSection.getSize()];
							dataStream.read(bytes);
							String string = new String(bytes);
							int index = string.indexOf("com.apple");
							String kmodNameString = string.substring(index, index + 64).trim();
							StringBuffer buffer = new StringBuffer();
							for (int i = 0; i < kmodNameString.length(); i++) {
								char c = kmodNameString.charAt(i);
								if (LocalFileSystem.isValidNameCharacter(c)) {
									buffer.append(c);
								}
								else {
									buffer.append('_');
								}
							}
							return buffer.toString();
						}
					}
				}
			}
		}
		catch (Exception e) {
			// Fall through and return null to treat the error as not being able to find the name
			Msg.debug(this, "Exception occurred while trying to find the name of kext", e);
		}
		return null;
	}
Processes PRELINK and Macho-O offsets in order to map files to their Mach-O offsets in the 
providers.

@param prelinkList The list of discovered {@link MachoPrelinkMap}s.
@param machoHeaderOffsets The list of provider offsets where prelinked Mach-O headers start.
@param monitor A monitor
@throws IOException if an IO-related problem occurred.
@throws MachException if there was a problem parsing Mach-O headers.
Ghidra/Features/FileFormats/src/main/java/ghidra/file/formats/ios/prelink/MachoPrelinkFileSystem.java