modified crc32 code