in reply to CRC off-by-one

This is only a stab, but shouldn't you be adding 0x0020 rather than 32 decimal? Could your loop be incrementing by 32 hex rather than decimal? Is it possible that you're reading too much?

Useless trivia: In the 2004 Las Vegas phone book there are approximately 28 pages of ads for massage, but almost 200 for lawyers.