OK, you're comfortable with the fact that the uncompressed file is much bigger. Your real question is how 32 MB can hold 33,558,528 bytes.
MOST of this is the definition of "MB". You are thinking that it means 32,000,000 bytes. NO. Most computer sizes are done in powers of 2. A KB is 1024 bytes. A MB is 1024 times that, or 1,048,576 bytes. So 32 MB is 32 times that, or 33,554,432 bytes. VERY likely THAT is the actual capacity of the memory chip for your BIOS, so what the update process will do is completely write all of that info from the new file into your chip so there is NO old data left after the update.
Now, that file still appears to be too large by 4,096 bytes. BUT that larger number you got is the amount of space the file takes up on your hard drive, and that is always some multiple of 256 bytes. ONE Sector of an HDD is 256 bytes. BUT the HDD does NOT allocate space to a file by single Sectors. Instead it manages space in Blocks of Sectors, and in your case it appears it uses a Block of 16 Sectors (2^4) for 4,096 bytes of data storage in ONE allocation Block. I would bet that the actual file you got contains a small amount of housekeeping data at its beginning for use by the updating software tool that is NOT part of what will be written to the actual memory chip, and that there also is some completely unused space in that first Block of 4,096 bytes just so that the actual data to be written begins at the start of the SECOND block of the file on your hard disk.
Go ahead and do your BIOS Update. It WILL fit in your chip.