static CRC32C() { #if NETCOREAPP3_0_OR_GREATER || NETCOREAPP3_1 || NET5_0 if (Sse42.IsSupported) { return; } #endif #if NET5_0_OR_GREATER || NET5_0 if (Crc32.IsSupported) { return; } #endif Table = NetUtils.AllocatePinnedUninitializedArray <uint>(16 * 256); for (uint i = 0; i < 256; i++) { uint res = i; for (int t = 0; t < 16; t++) { for (int k = 0; k < 8; k++) { res = (res & 1) == 1 ? Poly ^ (res >> 1) : (res >> 1); } Table[t * 256 + i] = res; } } }