FspFsvolReadCached takes care not to read beyond the end of the file.
However, the offset check uses a 32 bit comparison, which fails for
files >= 4G. As a result, reads on a large file will skip blocks at
offset (filesize % 4G), and those blocks will zero-filled.