private void processFillChunk(int blocks, TaskMonitor monitor)
			throws IOException, CancelledException {

		int fillInt = reader.readNextInt();

		long length = (long) blocks * blockSize;
		int fillBufferSize = (int) Math.min(length, bufferSize);
		byte[] fillBuffer = new byte[fillBufferSize];

		byte[] srcPattern = { (byte) (fillInt >> 24), (byte) (fillInt >> 16), (byte) (fillInt >> 8),
			(byte) (fillInt & 0xff) };
		fillArray(srcPattern, fillBuffer);

		while (length > 0) {
			monitor.checkCancelled();
			int bytesToWrite = (int) Math.min(length, fillBufferSize);
			crc.update(fillBuffer, 0, bytesToWrite);
			tempFos.write(fillBuffer, 0, bytesToWrite);
			length -= bytesToWrite;
		}
	}
Writes a chunk of blocks that are defined by a repeated pattern of 4 bytes.

@param blocks number of blocks to write
@param monitor {@link TaskMonitor} to monitor
@throws IOException if error when writing or reading
@throws CancelledException if user cancels
Ghidra/Features/FileFormats/src/main/java/ghidra/file/formats/sparseimage/SparseImageDecompressor.java