private static uint crc(byte[] buf) { return update_crc(0xffffffffU, buf, 0, buf.Length) ^ 0xffffffffU; }