public static BinaryReader decompress(BinaryReader reader, ArtCompression compression,
			TaskMonitor monitor) throws IOException {
		if (compression.getStorageMode() == ArtStorageMode.kStorageModeUncompressed) {
			return reader;//no need to decompress...
		}
		OverlayByteProvider provider = new OverlayByteProvider(reader.getByteProvider());
		BinaryReader decompressedReader = new BinaryReader(provider, reader.isLittleEndian());
		byte[] compressedBytes = reader.readByteArray(compression.getCompressedOffset(),
			compression.getCompressedSize());
		byte[] decompressedBytes = Decompressor.decompress(compression.getStorageMode(),
			compressedBytes, compression.getDecompressedSize(), monitor);
		provider.addRange(new OverlayRange(compression.getDecompressedOffset(), decompressedBytes));
		return decompressedReader;
	}
Decompress the bytes and pipe into a new binary reader.
Required to allow reading of the remainder of the ART header. 
@param reader binary reader containing compressed bytes
@param compression type of compression
@param monitor task monitor for controlling the task
@return binary reader containing decompressed bytes
@throws IOException should an error occur reading the bytes
Ghidra/Features/FileFormats/src/main/java/ghidra/file/formats/android/util/DecompressionManager.java