private static UInt32 CalculateHash(UInt32[] table, UInt32 seed, byte[] buffer, int start, int size) { UInt32 crc = seed; for (int i = start; i < size; i++) unchecked { crc = (crc >> 8) ^ table[buffer[i] ^ crc & 0xff]; } return crc; }