public static uint CalculateCrc(byte[] buffer, int length) { uint num = uint.MaxValue; uint polynomial = 3988292384u; bool flag = SupportClass.crcLookupTable == null; if (flag) { SupportClass.crcLookupTable = SupportClass.InitializeTable(polynomial); } for (int i = 0; i < length; i++) { num = (num >> 8 ^ SupportClass.crcLookupTable[(int)((uint)buffer[i] ^ (num & 255u))]); } return(num); }