@Override
	public byte[] readBytes(long index, long length) throws IOException {
		if (length < 0 || length > Integer.MAX_VALUE) {
			throw new IllegalArgumentException("unsupported length");
		}
		if (index < 0) {
			throw new IllegalArgumentException("invalid index");
		}
		byte[] ret = new byte[(int) length];
		monitor.initialize(length, "Reading " + name);
		// TODO: spped this up by using super.readBytes() to read the chunks that don't contain fixups
		for (int i = 0; i < length; i++) {
			monitor.incrementProgress();
			ret[i] = readByte(index + i);
		}
		return ret;
	}
Creates a new {@link DyldCacheSlidProvider}

@param mappingInfo The {@link DyldCacheMappingInfo} that is being requested
@param splitDyldCache The {@link SplitDyldCache}
@param splitCacheIndex The mapping's {@link SplitDyldCache} index
@param slideFixupMap A {@link Map} of {@link DyldFixup}s to perform
@param monitor A {@link TaskMonitor} to monitor the reads
Ghidra/Features/FileFormats/src/main/java/ghidra/file/formats/ios/dyldcache/DyldCacheSlidProvider.java