u_int32_t crc = 0;
while (len--) {
crc = CRCTABLE[(crc ^ *data++) & 0xffL] ^ (crc >> 8);
crc = CRCTABLE[(int)((crc ^ *data++) & 0xffL)] ^ (crc >> 8);
}
return crc;