public static ByteProvider extractDylib(DyldCacheEntry entry, SplitDyldCache splitDyldCache,
			Map<DyldCacheMappingInfo, Map<Long, DyldFixup>> slideFixupMap, FSRL fsrl,
			TaskMonitor monitor) throws IOException, MachException, CancelledException {
		long dylibOffset = entry.rangeSet().asRanges().iterator().next().lowerEndpoint() -
			splitDyldCache.getDyldCacheHeader(entry.splitCacheIndex()).getBaseAddress();
		ExtractedMacho extractedMacho = new DyldPackedSegments(dylibOffset, splitDyldCache,
			entry.splitCacheIndex(), FOOTER_V1, slideFixupMap, monitor);
		extractedMacho.pack();
		return extractedMacho.getByteProvider(fsrl);
	}
Gets a {@link ByteProvider} that contains a DYLIB from a {@link DyldCacheFileSystem}.  The
DYLIB's header will be altered to account for its segment bytes being packed down.   

@param entry The mapping's {@link DyldCacheEntry}
@param splitDyldCache The {@link SplitDyldCache}
@param slideFixupMap A {@link Map} of {@link DyldFixup}s to perform
@param fsrl {@link FSRL} to assign to the resulting {@link ByteProvider}
@param monitor {@link TaskMonitor}
@return {@link ByteProvider} containing the bytes of the DYLIB
@throws MachException If there was an error parsing the DYLIB headers
@throws IOException If there was an IO-related issue with extracting the DYLIB
@throws CancelledException If the user cancelled the operation
Ghidra/Features/FileFormats/src/main/java/ghidra/file/formats/ios/dyldcache/DyldCacheExtractor.java