protected static void ImplMultiply(ulong[] x, ulong[] y, ulong[] zz) { ulong[] array = new ulong[5]; ulong[] array2 = new ulong[5]; SecT283Field.ImplExpand(x, array); SecT283Field.ImplExpand(y, array2); ulong[] array3 = new ulong[26]; SecT283Field.ImplMulw(array[0], array2[0], array3, 0); SecT283Field.ImplMulw(array[1], array2[1], array3, 2); SecT283Field.ImplMulw(array[2], array2[2], array3, 4); SecT283Field.ImplMulw(array[3], array2[3], array3, 6); SecT283Field.ImplMulw(array[4], array2[4], array3, 8); ulong num = array[0] ^ array[1]; ulong num2 = array2[0] ^ array2[1]; ulong num3 = array[0] ^ array[2]; ulong num4 = array2[0] ^ array2[2]; ulong num5 = array[2] ^ array[4]; ulong num6 = array2[2] ^ array2[4]; ulong num7 = array[3] ^ array[4]; ulong num8 = array2[3] ^ array2[4]; SecT283Field.ImplMulw(num3 ^ array[3], num4 ^ array2[3], array3, 18); SecT283Field.ImplMulw(num5 ^ array[1], num6 ^ array2[1], array3, 20); ulong num9 = num ^ num7; ulong num10 = num2 ^ num8; ulong x2 = num9 ^ array[2]; ulong y2 = num10 ^ array2[2]; SecT283Field.ImplMulw(num9, num10, array3, 22); SecT283Field.ImplMulw(x2, y2, array3, 24); SecT283Field.ImplMulw(num, num2, array3, 10); SecT283Field.ImplMulw(num3, num4, array3, 12); SecT283Field.ImplMulw(num5, num6, array3, 14); SecT283Field.ImplMulw(num7, num8, array3, 16); zz[0] = array3[0]; zz[9] = array3[9]; ulong num11 = array3[0] ^ array3[1]; ulong num12 = num11 ^ array3[2]; ulong num13 = num12 ^ array3[10]; zz[1] = num13; ulong num14 = array3[3] ^ array3[4]; ulong num15 = array3[11] ^ array3[12]; ulong num16 = num14 ^ num15; ulong num17 = num12 ^ num16; zz[2] = num17; ulong num18 = num11 ^ num14; ulong num19 = array3[5] ^ array3[6]; ulong num20 = num18 ^ num19; ulong num21 = num20 ^ array3[8]; ulong num22 = array3[13] ^ array3[14]; ulong num23 = num21 ^ num22; ulong num24 = array3[18] ^ array3[22]; ulong num25 = num24 ^ array3[24]; ulong num26 = num23 ^ num25; zz[3] = num26; ulong num27 = array3[7] ^ array3[8]; ulong num28 = num27 ^ array3[9]; ulong num29 = num28 ^ array3[17]; zz[8] = num29; ulong num30 = num28 ^ num19; ulong num31 = array3[15] ^ array3[16]; ulong num32 = num30 ^ num31; zz[7] = num32; ulong num33 = num32 ^ num13; ulong num34 = array3[19] ^ array3[20]; ulong num35 = array3[25] ^ array3[24]; ulong num36 = array3[18] ^ array3[23]; ulong num37 = num34 ^ num35; ulong num38 = num37 ^ num36; ulong num39 = num38 ^ num33; zz[4] = num39; ulong num40 = num17 ^ num29; ulong num41 = num37 ^ num40; ulong num42 = array3[21] ^ array3[22]; ulong num43 = num41 ^ num42; zz[5] = num43; ulong num44 = num21 ^ array3[0]; ulong num45 = num44 ^ array3[9]; ulong num46 = num45 ^ num22; ulong num47 = num46 ^ array3[21]; ulong num48 = num47 ^ array3[23]; ulong num49 = num48 ^ array3[25]; zz[6] = num49; SecT283Field.ImplCompactExt(zz); }