@Override
		protected ByteProvider getSegmentProvider(SegmentCommand segment) throws IOException {
			for (int i = 0; i < splitDyldCache.size(); i++) {
				DyldCacheHeader dyldCacheheader = splitDyldCache.getDyldCacheHeader(i);
				for (DyldCacheMappingInfo mappingInfo : dyldCacheheader.getMappingInfos()) {
					if (mappingInfo.contains(segment.getVMaddress(), true)) {
						return new DyldCacheSlidProvider(mappingInfo, splitDyldCache, i,
							slideFixupMap, monitor);
					}
				}
			}
			throw new IOException(
				"Failed to find provider for segment: " + segment.getSegmentName());
		}
Creates a new {@link DyldPackedSegments} object

@param dylibOffset The offset of the DYLIB in the given provider
@param splitDyldCache The {@link SplitDyldCache}
@param index The DYLIB's {@link SplitDyldCache} index
@param footer A footer that gets appended to the end of every extracted component so 
  Ghidra can identify them and treat them special when imported
@param slideFixupMap A {@link Map} of {@link DyldFixup}s to perform
@param monitor {@link TaskMonitor}
@throws MachException If there was an error parsing the DYLIB headers
@throws IOException If there was an IO-related error
@throws CancelledException If the user cancelled the operation
Ghidra/Features/FileFormats/src/main/java/ghidra/file/formats/ios/dyldcache/DyldCacheExtractor.java