raaz-0.3.0: libverse/sha512/c/portable.c
#include <stdint.h>
#include <verse.h>
#define XOR ^
void verse_sha512_c_portable(uint64_t(*bPtr)[16], uint64_t cTr, uint64_t v0[8])
{
auto uint64_t v1;
auto uint64_t v2;
auto uint64_t v3;
auto uint64_t v4;
auto uint64_t v5;
auto uint64_t v6;
auto uint64_t v7;
auto uint64_t v8;
auto uint64_t v9;
auto uint64_t v10;
auto uint64_t v11;
auto uint64_t v12;
auto uint64_t v13;
auto uint64_t v14;
auto uint64_t v15;
auto uint64_t v16;
auto uint64_t v17;
auto uint64_t v18;
auto uint64_t v19;
auto uint64_t v20;
auto uint64_t v21;
auto uint64_t v22;
auto uint64_t v23;
auto uint64_t v24;
auto uint64_t v25;
v17 = v0[0];
v18 = v0[1];
v19 = v0[2];
v20 = v0[3];
v21 = v0[4];
v22 = v0[5];
v23 = v0[6];
v24 = v0[7];
while (cTr > 0) {
v1 = verse_from_be64((*bPtr)[0]);
v2 = verse_from_be64((*bPtr)[1]);
v3 = verse_from_be64((*bPtr)[2]);
v4 = verse_from_be64((*bPtr)[3]);
v5 = verse_from_be64((*bPtr)[4]);
v6 = verse_from_be64((*bPtr)[5]);
v7 = verse_from_be64((*bPtr)[6]);
v8 = verse_from_be64((*bPtr)[7]);
v9 = verse_from_be64((*bPtr)[8]);
v10 = verse_from_be64((*bPtr)[9]);
v11 = verse_from_be64((*bPtr)[10]);
v12 = verse_from_be64((*bPtr)[11]);
v13 = verse_from_be64((*bPtr)[12]);
v14 = verse_from_be64((*bPtr)[13]);
v15 = verse_from_be64((*bPtr)[14]);
v16 = verse_from_be64((*bPtr)[15]);
v25 =
v24 + 0x428a2f98d728ae22ULL + v1 +
(v23 XOR v21 & (v22 XOR v23)) +
(verse_rotR64(v21, 41) XOR verse_rotR64(v21, 18)
XOR verse_rotR64(v21, 14));
v20 += v25;
v24 = v25 + (verse_rotR64(v17, 39) XOR verse_rotR64(v17, 34)
XOR verse_rotR64(v17,
28)) +
(v17 & v18 | v19 & (v18 | v17));
v1 +=
v10 +
(verse_rotR64(v2, 8) XOR verse_rotR64(v2, 1) XOR v2 >> 7) +
(verse_rotR64(v15, 61) XOR verse_rotR64(v15, 19) XOR v15 >>
6);
v25 =
v23 + 0x7137449123ef65cdULL + v2 +
(v22 XOR v20 & (v21 XOR v22)) +
(verse_rotR64(v20, 41) XOR verse_rotR64(v20, 18)
XOR verse_rotR64(v20, 14));
v19 += v25;
v23 = v25 + (verse_rotR64(v24, 39) XOR verse_rotR64(v24, 34)
XOR verse_rotR64(v24,
28)) +
(v24 & v17 | v18 & (v17 | v24));
v2 +=
v11 +
(verse_rotR64(v3, 8) XOR verse_rotR64(v3, 1) XOR v3 >> 7) +
(verse_rotR64(v16, 61) XOR verse_rotR64(v16, 19) XOR v16 >>
6);
v25 =
v22 + 0xb5c0fbcfec4d3b2fULL + v3 +
(v21 XOR v19 & (v20 XOR v21)) +
(verse_rotR64(v19, 41) XOR verse_rotR64(v19, 18)
XOR verse_rotR64(v19, 14));
v18 += v25;
v22 = v25 + (verse_rotR64(v23, 39) XOR verse_rotR64(v23, 34)
XOR verse_rotR64(v23,
28)) +
(v23 & v24 | v17 & (v24 | v23));
v3 +=
v12 +
(verse_rotR64(v4, 8) XOR verse_rotR64(v4, 1) XOR v4 >> 7) +
(verse_rotR64(v1, 61) XOR verse_rotR64(v1, 19) XOR v1 >> 6);
v25 =
v21 + 0xe9b5dba58189dbbcULL + v4 +
(v20 XOR v18 & (v19 XOR v20)) +
(verse_rotR64(v18, 41) XOR verse_rotR64(v18, 18)
XOR verse_rotR64(v18, 14));
v17 += v25;
v21 = v25 + (verse_rotR64(v22, 39) XOR verse_rotR64(v22, 34)
XOR verse_rotR64(v22,
28)) +
(v22 & v23 | v24 & (v23 | v22));
v4 +=
v13 +
(verse_rotR64(v5, 8) XOR verse_rotR64(v5, 1) XOR v5 >> 7) +
(verse_rotR64(v2, 61) XOR verse_rotR64(v2, 19) XOR v2 >> 6);
v25 =
v20 + 0x3956c25bf348b538ULL + v5 +
(v19 XOR v17 & (v18 XOR v19)) +
(verse_rotR64(v17, 41) XOR verse_rotR64(v17, 18)
XOR verse_rotR64(v17, 14));
v24 += v25;
v20 = v25 + (verse_rotR64(v21, 39) XOR verse_rotR64(v21, 34)
XOR verse_rotR64(v21,
28)) +
(v21 & v22 | v23 & (v22 | v21));
v5 +=
v14 +
(verse_rotR64(v6, 8) XOR verse_rotR64(v6, 1) XOR v6 >> 7) +
(verse_rotR64(v3, 61) XOR verse_rotR64(v3, 19) XOR v3 >> 6);
v25 =
v19 + 0x59f111f1b605d019ULL + v6 +
(v18 XOR v24 & (v17 XOR v18)) +
(verse_rotR64(v24, 41) XOR verse_rotR64(v24, 18)
XOR verse_rotR64(v24, 14));
v23 += v25;
v19 = v25 + (verse_rotR64(v20, 39) XOR verse_rotR64(v20, 34)
XOR verse_rotR64(v20,
28)) +
(v20 & v21 | v22 & (v21 | v20));
v6 +=
v15 +
(verse_rotR64(v7, 8) XOR verse_rotR64(v7, 1) XOR v7 >> 7) +
(verse_rotR64(v4, 61) XOR verse_rotR64(v4, 19) XOR v4 >> 6);
v25 =
v18 + 0x923f82a4af194f9bULL + v7 +
(v17 XOR v23 & (v24 XOR v17)) +
(verse_rotR64(v23, 41) XOR verse_rotR64(v23, 18)
XOR verse_rotR64(v23, 14));
v22 += v25;
v18 = v25 + (verse_rotR64(v19, 39) XOR verse_rotR64(v19, 34)
XOR verse_rotR64(v19,
28)) +
(v19 & v20 | v21 & (v20 | v19));
v7 +=
v16 +
(verse_rotR64(v8, 8) XOR verse_rotR64(v8, 1) XOR v8 >> 7) +
(verse_rotR64(v5, 61) XOR verse_rotR64(v5, 19) XOR v5 >> 6);
v25 =
v17 + 0xab1c5ed5da6d8118ULL + v8 +
(v24 XOR v22 & (v23 XOR v24)) +
(verse_rotR64(v22, 41) XOR verse_rotR64(v22, 18)
XOR verse_rotR64(v22, 14));
v21 += v25;
v17 = v25 + (verse_rotR64(v18, 39) XOR verse_rotR64(v18, 34)
XOR verse_rotR64(v18,
28)) +
(v18 & v19 | v20 & (v19 | v18));
v8 +=
v1 +
(verse_rotR64(v9, 8) XOR verse_rotR64(v9, 1) XOR v9 >> 7) +
(verse_rotR64(v6, 61) XOR verse_rotR64(v6, 19) XOR v6 >> 6);
v25 =
v24 + 0xd807aa98a3030242ULL + v9 +
(v23 XOR v21 & (v22 XOR v23)) +
(verse_rotR64(v21, 41) XOR verse_rotR64(v21, 18)
XOR verse_rotR64(v21, 14));
v20 += v25;
v24 = v25 + (verse_rotR64(v17, 39) XOR verse_rotR64(v17, 34)
XOR verse_rotR64(v17,
28)) +
(v17 & v18 | v19 & (v18 | v17));
v9 +=
v2 +
(verse_rotR64(v10, 8) XOR verse_rotR64(v10, 1) XOR v10 >> 7)
+
(verse_rotR64(v7, 61) XOR verse_rotR64(v7, 19) XOR v7 >> 6);
v25 =
v23 + 0x12835b0145706fbeULL + v10 +
(v22 XOR v20 & (v21 XOR v22)) +
(verse_rotR64(v20, 41) XOR verse_rotR64(v20, 18)
XOR verse_rotR64(v20, 14));
v19 += v25;
v23 = v25 + (verse_rotR64(v24, 39) XOR verse_rotR64(v24, 34)
XOR verse_rotR64(v24,
28)) +
(v24 & v17 | v18 & (v17 | v24));
v10 +=
v3 +
(verse_rotR64(v11, 8) XOR verse_rotR64(v11, 1) XOR v11 >> 7)
+
(verse_rotR64(v8, 61) XOR verse_rotR64(v8, 19) XOR v8 >> 6);
v25 =
v22 + 0x243185be4ee4b28cULL + v11 +
(v21 XOR v19 & (v20 XOR v21)) +
(verse_rotR64(v19, 41) XOR verse_rotR64(v19, 18)
XOR verse_rotR64(v19, 14));
v18 += v25;
v22 = v25 + (verse_rotR64(v23, 39) XOR verse_rotR64(v23, 34)
XOR verse_rotR64(v23,
28)) +
(v23 & v24 | v17 & (v24 | v23));
v11 +=
v4 +
(verse_rotR64(v12, 8) XOR verse_rotR64(v12, 1) XOR v12 >> 7)
+
(verse_rotR64(v9, 61) XOR verse_rotR64(v9, 19) XOR v9 >> 6);
v25 =
v21 + 0x550c7dc3d5ffb4e2ULL + v12 +
(v20 XOR v18 & (v19 XOR v20)) +
(verse_rotR64(v18, 41) XOR verse_rotR64(v18, 18)
XOR verse_rotR64(v18, 14));
v17 += v25;
v21 = v25 + (verse_rotR64(v22, 39) XOR verse_rotR64(v22, 34)
XOR verse_rotR64(v22,
28)) +
(v22 & v23 | v24 & (v23 | v22));
v12 +=
v5 +
(verse_rotR64(v13, 8) XOR verse_rotR64(v13, 1) XOR v13 >> 7)
+
(verse_rotR64(v10, 61) XOR verse_rotR64(v10, 19) XOR v10 >>
6);
v25 =
v20 + 0x72be5d74f27b896fULL + v13 +
(v19 XOR v17 & (v18 XOR v19)) +
(verse_rotR64(v17, 41) XOR verse_rotR64(v17, 18)
XOR verse_rotR64(v17, 14));
v24 += v25;
v20 = v25 + (verse_rotR64(v21, 39) XOR verse_rotR64(v21, 34)
XOR verse_rotR64(v21,
28)) +
(v21 & v22 | v23 & (v22 | v21));
v13 +=
v6 +
(verse_rotR64(v14, 8) XOR verse_rotR64(v14, 1) XOR v14 >> 7)
+
(verse_rotR64(v11, 61) XOR verse_rotR64(v11, 19) XOR v11 >>
6);
v25 =
v19 + 0x80deb1fe3b1696b1ULL + v14 +
(v18 XOR v24 & (v17 XOR v18)) +
(verse_rotR64(v24, 41) XOR verse_rotR64(v24, 18)
XOR verse_rotR64(v24, 14));
v23 += v25;
v19 = v25 + (verse_rotR64(v20, 39) XOR verse_rotR64(v20, 34)
XOR verse_rotR64(v20,
28)) +
(v20 & v21 | v22 & (v21 | v20));
v14 +=
v7 +
(verse_rotR64(v15, 8) XOR verse_rotR64(v15, 1) XOR v15 >> 7)
+
(verse_rotR64(v12, 61) XOR verse_rotR64(v12, 19) XOR v12 >>
6);
v25 =
v18 + 0x9bdc06a725c71235ULL + v15 +
(v17 XOR v23 & (v24 XOR v17)) +
(verse_rotR64(v23, 41) XOR verse_rotR64(v23, 18)
XOR verse_rotR64(v23, 14));
v22 += v25;
v18 = v25 + (verse_rotR64(v19, 39) XOR verse_rotR64(v19, 34)
XOR verse_rotR64(v19,
28)) +
(v19 & v20 | v21 & (v20 | v19));
v15 +=
v8 +
(verse_rotR64(v16, 8) XOR verse_rotR64(v16, 1) XOR v16 >> 7)
+
(verse_rotR64(v13, 61) XOR verse_rotR64(v13, 19) XOR v13 >>
6);
v25 =
v17 + 0xc19bf174cf692694ULL + v16 +
(v24 XOR v22 & (v23 XOR v24)) +
(verse_rotR64(v22, 41) XOR verse_rotR64(v22, 18)
XOR verse_rotR64(v22, 14));
v21 += v25;
v17 = v25 + (verse_rotR64(v18, 39) XOR verse_rotR64(v18, 34)
XOR verse_rotR64(v18,
28)) +
(v18 & v19 | v20 & (v19 | v18));
v16 +=
v9 +
(verse_rotR64(v1, 8) XOR verse_rotR64(v1, 1) XOR v1 >> 7) +
(verse_rotR64(v14, 61) XOR verse_rotR64(v14, 19) XOR v14 >>
6);
v25 =
v24 + 0xe49b69c19ef14ad2ULL + v1 +
(v23 XOR v21 & (v22 XOR v23)) +
(verse_rotR64(v21, 41) XOR verse_rotR64(v21, 18)
XOR verse_rotR64(v21, 14));
v20 += v25;
v24 = v25 + (verse_rotR64(v17, 39) XOR verse_rotR64(v17, 34)
XOR verse_rotR64(v17,
28)) +
(v17 & v18 | v19 & (v18 | v17));
v1 +=
v10 +
(verse_rotR64(v2, 8) XOR verse_rotR64(v2, 1) XOR v2 >> 7) +
(verse_rotR64(v15, 61) XOR verse_rotR64(v15, 19) XOR v15 >>
6);
v25 =
v23 + 0xefbe4786384f25e3ULL + v2 +
(v22 XOR v20 & (v21 XOR v22)) +
(verse_rotR64(v20, 41) XOR verse_rotR64(v20, 18)
XOR verse_rotR64(v20, 14));
v19 += v25;
v23 = v25 + (verse_rotR64(v24, 39) XOR verse_rotR64(v24, 34)
XOR verse_rotR64(v24,
28)) +
(v24 & v17 | v18 & (v17 | v24));
v2 +=
v11 +
(verse_rotR64(v3, 8) XOR verse_rotR64(v3, 1) XOR v3 >> 7) +
(verse_rotR64(v16, 61) XOR verse_rotR64(v16, 19) XOR v16 >>
6);
v25 =
v22 + 0x0fc19dc68b8cd5b5ULL + v3 +
(v21 XOR v19 & (v20 XOR v21)) +
(verse_rotR64(v19, 41) XOR verse_rotR64(v19, 18)
XOR verse_rotR64(v19, 14));
v18 += v25;
v22 = v25 + (verse_rotR64(v23, 39) XOR verse_rotR64(v23, 34)
XOR verse_rotR64(v23,
28)) +
(v23 & v24 | v17 & (v24 | v23));
v3 +=
v12 +
(verse_rotR64(v4, 8) XOR verse_rotR64(v4, 1) XOR v4 >> 7) +
(verse_rotR64(v1, 61) XOR verse_rotR64(v1, 19) XOR v1 >> 6);
v25 =
v21 + 0x240ca1cc77ac9c65ULL + v4 +
(v20 XOR v18 & (v19 XOR v20)) +
(verse_rotR64(v18, 41) XOR verse_rotR64(v18, 18)
XOR verse_rotR64(v18, 14));
v17 += v25;
v21 = v25 + (verse_rotR64(v22, 39) XOR verse_rotR64(v22, 34)
XOR verse_rotR64(v22,
28)) +
(v22 & v23 | v24 & (v23 | v22));
v4 +=
v13 +
(verse_rotR64(v5, 8) XOR verse_rotR64(v5, 1) XOR v5 >> 7) +
(verse_rotR64(v2, 61) XOR verse_rotR64(v2, 19) XOR v2 >> 6);
v25 =
v20 + 0x2de92c6f592b0275ULL + v5 +
(v19 XOR v17 & (v18 XOR v19)) +
(verse_rotR64(v17, 41) XOR verse_rotR64(v17, 18)
XOR verse_rotR64(v17, 14));
v24 += v25;
v20 = v25 + (verse_rotR64(v21, 39) XOR verse_rotR64(v21, 34)
XOR verse_rotR64(v21,
28)) +
(v21 & v22 | v23 & (v22 | v21));
v5 +=
v14 +
(verse_rotR64(v6, 8) XOR verse_rotR64(v6, 1) XOR v6 >> 7) +
(verse_rotR64(v3, 61) XOR verse_rotR64(v3, 19) XOR v3 >> 6);
v25 =
v19 + 0x4a7484aa6ea6e483ULL + v6 +
(v18 XOR v24 & (v17 XOR v18)) +
(verse_rotR64(v24, 41) XOR verse_rotR64(v24, 18)
XOR verse_rotR64(v24, 14));
v23 += v25;
v19 = v25 + (verse_rotR64(v20, 39) XOR verse_rotR64(v20, 34)
XOR verse_rotR64(v20,
28)) +
(v20 & v21 | v22 & (v21 | v20));
v6 +=
v15 +
(verse_rotR64(v7, 8) XOR verse_rotR64(v7, 1) XOR v7 >> 7) +
(verse_rotR64(v4, 61) XOR verse_rotR64(v4, 19) XOR v4 >> 6);
v25 =
v18 + 0x5cb0a9dcbd41fbd4ULL + v7 +
(v17 XOR v23 & (v24 XOR v17)) +
(verse_rotR64(v23, 41) XOR verse_rotR64(v23, 18)
XOR verse_rotR64(v23, 14));
v22 += v25;
v18 = v25 + (verse_rotR64(v19, 39) XOR verse_rotR64(v19, 34)
XOR verse_rotR64(v19,
28)) +
(v19 & v20 | v21 & (v20 | v19));
v7 +=
v16 +
(verse_rotR64(v8, 8) XOR verse_rotR64(v8, 1) XOR v8 >> 7) +
(verse_rotR64(v5, 61) XOR verse_rotR64(v5, 19) XOR v5 >> 6);
v25 =
v17 + 0x76f988da831153b5ULL + v8 +
(v24 XOR v22 & (v23 XOR v24)) +
(verse_rotR64(v22, 41) XOR verse_rotR64(v22, 18)
XOR verse_rotR64(v22, 14));
v21 += v25;
v17 = v25 + (verse_rotR64(v18, 39) XOR verse_rotR64(v18, 34)
XOR verse_rotR64(v18,
28)) +
(v18 & v19 | v20 & (v19 | v18));
v8 +=
v1 +
(verse_rotR64(v9, 8) XOR verse_rotR64(v9, 1) XOR v9 >> 7) +
(verse_rotR64(v6, 61) XOR verse_rotR64(v6, 19) XOR v6 >> 6);
v25 =
v24 + 0x983e5152ee66dfabULL + v9 +
(v23 XOR v21 & (v22 XOR v23)) +
(verse_rotR64(v21, 41) XOR verse_rotR64(v21, 18)
XOR verse_rotR64(v21, 14));
v20 += v25;
v24 = v25 + (verse_rotR64(v17, 39) XOR verse_rotR64(v17, 34)
XOR verse_rotR64(v17,
28)) +
(v17 & v18 | v19 & (v18 | v17));
v9 +=
v2 +
(verse_rotR64(v10, 8) XOR verse_rotR64(v10, 1) XOR v10 >> 7)
+
(verse_rotR64(v7, 61) XOR verse_rotR64(v7, 19) XOR v7 >> 6);
v25 =
v23 + 0xa831c66d2db43210ULL + v10 +
(v22 XOR v20 & (v21 XOR v22)) +
(verse_rotR64(v20, 41) XOR verse_rotR64(v20, 18)
XOR verse_rotR64(v20, 14));
v19 += v25;
v23 = v25 + (verse_rotR64(v24, 39) XOR verse_rotR64(v24, 34)
XOR verse_rotR64(v24,
28)) +
(v24 & v17 | v18 & (v17 | v24));
v10 +=
v3 +
(verse_rotR64(v11, 8) XOR verse_rotR64(v11, 1) XOR v11 >> 7)
+
(verse_rotR64(v8, 61) XOR verse_rotR64(v8, 19) XOR v8 >> 6);
v25 =
v22 + 0xb00327c898fb213fULL + v11 +
(v21 XOR v19 & (v20 XOR v21)) +
(verse_rotR64(v19, 41) XOR verse_rotR64(v19, 18)
XOR verse_rotR64(v19, 14));
v18 += v25;
v22 = v25 + (verse_rotR64(v23, 39) XOR verse_rotR64(v23, 34)
XOR verse_rotR64(v23,
28)) +
(v23 & v24 | v17 & (v24 | v23));
v11 +=
v4 +
(verse_rotR64(v12, 8) XOR verse_rotR64(v12, 1) XOR v12 >> 7)
+
(verse_rotR64(v9, 61) XOR verse_rotR64(v9, 19) XOR v9 >> 6);
v25 =
v21 + 0xbf597fc7beef0ee4ULL + v12 +
(v20 XOR v18 & (v19 XOR v20)) +
(verse_rotR64(v18, 41) XOR verse_rotR64(v18, 18)
XOR verse_rotR64(v18, 14));
v17 += v25;
v21 = v25 + (verse_rotR64(v22, 39) XOR verse_rotR64(v22, 34)
XOR verse_rotR64(v22,
28)) +
(v22 & v23 | v24 & (v23 | v22));
v12 +=
v5 +
(verse_rotR64(v13, 8) XOR verse_rotR64(v13, 1) XOR v13 >> 7)
+
(verse_rotR64(v10, 61) XOR verse_rotR64(v10, 19) XOR v10 >>
6);
v25 =
v20 + 0xc6e00bf33da88fc2ULL + v13 +
(v19 XOR v17 & (v18 XOR v19)) +
(verse_rotR64(v17, 41) XOR verse_rotR64(v17, 18)
XOR verse_rotR64(v17, 14));
v24 += v25;
v20 = v25 + (verse_rotR64(v21, 39) XOR verse_rotR64(v21, 34)
XOR verse_rotR64(v21,
28)) +
(v21 & v22 | v23 & (v22 | v21));
v13 +=
v6 +
(verse_rotR64(v14, 8) XOR verse_rotR64(v14, 1) XOR v14 >> 7)
+
(verse_rotR64(v11, 61) XOR verse_rotR64(v11, 19) XOR v11 >>
6);
v25 =
v19 + 0xd5a79147930aa725ULL + v14 +
(v18 XOR v24 & (v17 XOR v18)) +
(verse_rotR64(v24, 41) XOR verse_rotR64(v24, 18)
XOR verse_rotR64(v24, 14));
v23 += v25;
v19 = v25 + (verse_rotR64(v20, 39) XOR verse_rotR64(v20, 34)
XOR verse_rotR64(v20,
28)) +
(v20 & v21 | v22 & (v21 | v20));
v14 +=
v7 +
(verse_rotR64(v15, 8) XOR verse_rotR64(v15, 1) XOR v15 >> 7)
+
(verse_rotR64(v12, 61) XOR verse_rotR64(v12, 19) XOR v12 >>
6);
v25 =
v18 + 0x06ca6351e003826fULL + v15 +
(v17 XOR v23 & (v24 XOR v17)) +
(verse_rotR64(v23, 41) XOR verse_rotR64(v23, 18)
XOR verse_rotR64(v23, 14));
v22 += v25;
v18 = v25 + (verse_rotR64(v19, 39) XOR verse_rotR64(v19, 34)
XOR verse_rotR64(v19,
28)) +
(v19 & v20 | v21 & (v20 | v19));
v15 +=
v8 +
(verse_rotR64(v16, 8) XOR verse_rotR64(v16, 1) XOR v16 >> 7)
+
(verse_rotR64(v13, 61) XOR verse_rotR64(v13, 19) XOR v13 >>
6);
v25 =
v17 + 0x142929670a0e6e70ULL + v16 +
(v24 XOR v22 & (v23 XOR v24)) +
(verse_rotR64(v22, 41) XOR verse_rotR64(v22, 18)
XOR verse_rotR64(v22, 14));
v21 += v25;
v17 = v25 + (verse_rotR64(v18, 39) XOR verse_rotR64(v18, 34)
XOR verse_rotR64(v18,
28)) +
(v18 & v19 | v20 & (v19 | v18));
v16 +=
v9 +
(verse_rotR64(v1, 8) XOR verse_rotR64(v1, 1) XOR v1 >> 7) +
(verse_rotR64(v14, 61) XOR verse_rotR64(v14, 19) XOR v14 >>
6);
v25 =
v24 + 0x27b70a8546d22ffcULL + v1 +
(v23 XOR v21 & (v22 XOR v23)) +
(verse_rotR64(v21, 41) XOR verse_rotR64(v21, 18)
XOR verse_rotR64(v21, 14));
v20 += v25;
v24 = v25 + (verse_rotR64(v17, 39) XOR verse_rotR64(v17, 34)
XOR verse_rotR64(v17,
28)) +
(v17 & v18 | v19 & (v18 | v17));
v1 +=
v10 +
(verse_rotR64(v2, 8) XOR verse_rotR64(v2, 1) XOR v2 >> 7) +
(verse_rotR64(v15, 61) XOR verse_rotR64(v15, 19) XOR v15 >>
6);
v25 =
v23 + 0x2e1b21385c26c926ULL + v2 +
(v22 XOR v20 & (v21 XOR v22)) +
(verse_rotR64(v20, 41) XOR verse_rotR64(v20, 18)
XOR verse_rotR64(v20, 14));
v19 += v25;
v23 = v25 + (verse_rotR64(v24, 39) XOR verse_rotR64(v24, 34)
XOR verse_rotR64(v24,
28)) +
(v24 & v17 | v18 & (v17 | v24));
v2 +=
v11 +
(verse_rotR64(v3, 8) XOR verse_rotR64(v3, 1) XOR v3 >> 7) +
(verse_rotR64(v16, 61) XOR verse_rotR64(v16, 19) XOR v16 >>
6);
v25 =
v22 + 0x4d2c6dfc5ac42aedULL + v3 +
(v21 XOR v19 & (v20 XOR v21)) +
(verse_rotR64(v19, 41) XOR verse_rotR64(v19, 18)
XOR verse_rotR64(v19, 14));
v18 += v25;
v22 = v25 + (verse_rotR64(v23, 39) XOR verse_rotR64(v23, 34)
XOR verse_rotR64(v23,
28)) +
(v23 & v24 | v17 & (v24 | v23));
v3 +=
v12 +
(verse_rotR64(v4, 8) XOR verse_rotR64(v4, 1) XOR v4 >> 7) +
(verse_rotR64(v1, 61) XOR verse_rotR64(v1, 19) XOR v1 >> 6);
v25 =
v21 + 0x53380d139d95b3dfULL + v4 +
(v20 XOR v18 & (v19 XOR v20)) +
(verse_rotR64(v18, 41) XOR verse_rotR64(v18, 18)
XOR verse_rotR64(v18, 14));
v17 += v25;
v21 = v25 + (verse_rotR64(v22, 39) XOR verse_rotR64(v22, 34)
XOR verse_rotR64(v22,
28)) +
(v22 & v23 | v24 & (v23 | v22));
v4 +=
v13 +
(verse_rotR64(v5, 8) XOR verse_rotR64(v5, 1) XOR v5 >> 7) +
(verse_rotR64(v2, 61) XOR verse_rotR64(v2, 19) XOR v2 >> 6);
v25 =
v20 + 0x650a73548baf63deULL + v5 +
(v19 XOR v17 & (v18 XOR v19)) +
(verse_rotR64(v17, 41) XOR verse_rotR64(v17, 18)
XOR verse_rotR64(v17, 14));
v24 += v25;
v20 = v25 + (verse_rotR64(v21, 39) XOR verse_rotR64(v21, 34)
XOR verse_rotR64(v21,
28)) +
(v21 & v22 | v23 & (v22 | v21));
v5 +=
v14 +
(verse_rotR64(v6, 8) XOR verse_rotR64(v6, 1) XOR v6 >> 7) +
(verse_rotR64(v3, 61) XOR verse_rotR64(v3, 19) XOR v3 >> 6);
v25 =
v19 + 0x766a0abb3c77b2a8ULL + v6 +
(v18 XOR v24 & (v17 XOR v18)) +
(verse_rotR64(v24, 41) XOR verse_rotR64(v24, 18)
XOR verse_rotR64(v24, 14));
v23 += v25;
v19 = v25 + (verse_rotR64(v20, 39) XOR verse_rotR64(v20, 34)
XOR verse_rotR64(v20,
28)) +
(v20 & v21 | v22 & (v21 | v20));
v6 +=
v15 +
(verse_rotR64(v7, 8) XOR verse_rotR64(v7, 1) XOR v7 >> 7) +
(verse_rotR64(v4, 61) XOR verse_rotR64(v4, 19) XOR v4 >> 6);
v25 =
v18 + 0x81c2c92e47edaee6ULL + v7 +
(v17 XOR v23 & (v24 XOR v17)) +
(verse_rotR64(v23, 41) XOR verse_rotR64(v23, 18)
XOR verse_rotR64(v23, 14));
v22 += v25;
v18 = v25 + (verse_rotR64(v19, 39) XOR verse_rotR64(v19, 34)
XOR verse_rotR64(v19,
28)) +
(v19 & v20 | v21 & (v20 | v19));
v7 +=
v16 +
(verse_rotR64(v8, 8) XOR verse_rotR64(v8, 1) XOR v8 >> 7) +
(verse_rotR64(v5, 61) XOR verse_rotR64(v5, 19) XOR v5 >> 6);
v25 =
v17 + 0x92722c851482353bULL + v8 +
(v24 XOR v22 & (v23 XOR v24)) +
(verse_rotR64(v22, 41) XOR verse_rotR64(v22, 18)
XOR verse_rotR64(v22, 14));
v21 += v25;
v17 = v25 + (verse_rotR64(v18, 39) XOR verse_rotR64(v18, 34)
XOR verse_rotR64(v18,
28)) +
(v18 & v19 | v20 & (v19 | v18));
v8 +=
v1 +
(verse_rotR64(v9, 8) XOR verse_rotR64(v9, 1) XOR v9 >> 7) +
(verse_rotR64(v6, 61) XOR verse_rotR64(v6, 19) XOR v6 >> 6);
v25 =
v24 + 0xa2bfe8a14cf10364ULL + v9 +
(v23 XOR v21 & (v22 XOR v23)) +
(verse_rotR64(v21, 41) XOR verse_rotR64(v21, 18)
XOR verse_rotR64(v21, 14));
v20 += v25;
v24 = v25 + (verse_rotR64(v17, 39) XOR verse_rotR64(v17, 34)
XOR verse_rotR64(v17,
28)) +
(v17 & v18 | v19 & (v18 | v17));
v9 +=
v2 +
(verse_rotR64(v10, 8) XOR verse_rotR64(v10, 1) XOR v10 >> 7)
+
(verse_rotR64(v7, 61) XOR verse_rotR64(v7, 19) XOR v7 >> 6);
v25 =
v23 + 0xa81a664bbc423001ULL + v10 +
(v22 XOR v20 & (v21 XOR v22)) +
(verse_rotR64(v20, 41) XOR verse_rotR64(v20, 18)
XOR verse_rotR64(v20, 14));
v19 += v25;
v23 = v25 + (verse_rotR64(v24, 39) XOR verse_rotR64(v24, 34)
XOR verse_rotR64(v24,
28)) +
(v24 & v17 | v18 & (v17 | v24));
v10 +=
v3 +
(verse_rotR64(v11, 8) XOR verse_rotR64(v11, 1) XOR v11 >> 7)
+
(verse_rotR64(v8, 61) XOR verse_rotR64(v8, 19) XOR v8 >> 6);
v25 =
v22 + 0xc24b8b70d0f89791ULL + v11 +
(v21 XOR v19 & (v20 XOR v21)) +
(verse_rotR64(v19, 41) XOR verse_rotR64(v19, 18)
XOR verse_rotR64(v19, 14));
v18 += v25;
v22 = v25 + (verse_rotR64(v23, 39) XOR verse_rotR64(v23, 34)
XOR verse_rotR64(v23,
28)) +
(v23 & v24 | v17 & (v24 | v23));
v11 +=
v4 +
(verse_rotR64(v12, 8) XOR verse_rotR64(v12, 1) XOR v12 >> 7)
+
(verse_rotR64(v9, 61) XOR verse_rotR64(v9, 19) XOR v9 >> 6);
v25 =
v21 + 0xc76c51a30654be30ULL + v12 +
(v20 XOR v18 & (v19 XOR v20)) +
(verse_rotR64(v18, 41) XOR verse_rotR64(v18, 18)
XOR verse_rotR64(v18, 14));
v17 += v25;
v21 = v25 + (verse_rotR64(v22, 39) XOR verse_rotR64(v22, 34)
XOR verse_rotR64(v22,
28)) +
(v22 & v23 | v24 & (v23 | v22));
v12 +=
v5 +
(verse_rotR64(v13, 8) XOR verse_rotR64(v13, 1) XOR v13 >> 7)
+
(verse_rotR64(v10, 61) XOR verse_rotR64(v10, 19) XOR v10 >>
6);
v25 =
v20 + 0xd192e819d6ef5218ULL + v13 +
(v19 XOR v17 & (v18 XOR v19)) +
(verse_rotR64(v17, 41) XOR verse_rotR64(v17, 18)
XOR verse_rotR64(v17, 14));
v24 += v25;
v20 = v25 + (verse_rotR64(v21, 39) XOR verse_rotR64(v21, 34)
XOR verse_rotR64(v21,
28)) +
(v21 & v22 | v23 & (v22 | v21));
v13 +=
v6 +
(verse_rotR64(v14, 8) XOR verse_rotR64(v14, 1) XOR v14 >> 7)
+
(verse_rotR64(v11, 61) XOR verse_rotR64(v11, 19) XOR v11 >>
6);
v25 =
v19 + 0xd69906245565a910ULL + v14 +
(v18 XOR v24 & (v17 XOR v18)) +
(verse_rotR64(v24, 41) XOR verse_rotR64(v24, 18)
XOR verse_rotR64(v24, 14));
v23 += v25;
v19 = v25 + (verse_rotR64(v20, 39) XOR verse_rotR64(v20, 34)
XOR verse_rotR64(v20,
28)) +
(v20 & v21 | v22 & (v21 | v20));
v14 +=
v7 +
(verse_rotR64(v15, 8) XOR verse_rotR64(v15, 1) XOR v15 >> 7)
+
(verse_rotR64(v12, 61) XOR verse_rotR64(v12, 19) XOR v12 >>
6);
v25 =
v18 + 0xf40e35855771202aULL + v15 +
(v17 XOR v23 & (v24 XOR v17)) +
(verse_rotR64(v23, 41) XOR verse_rotR64(v23, 18)
XOR verse_rotR64(v23, 14));
v22 += v25;
v18 = v25 + (verse_rotR64(v19, 39) XOR verse_rotR64(v19, 34)
XOR verse_rotR64(v19,
28)) +
(v19 & v20 | v21 & (v20 | v19));
v15 +=
v8 +
(verse_rotR64(v16, 8) XOR verse_rotR64(v16, 1) XOR v16 >> 7)
+
(verse_rotR64(v13, 61) XOR verse_rotR64(v13, 19) XOR v13 >>
6);
v25 =
v17 + 0x106aa07032bbd1b8ULL + v16 +
(v24 XOR v22 & (v23 XOR v24)) +
(verse_rotR64(v22, 41) XOR verse_rotR64(v22, 18)
XOR verse_rotR64(v22, 14));
v21 += v25;
v17 = v25 + (verse_rotR64(v18, 39) XOR verse_rotR64(v18, 34)
XOR verse_rotR64(v18,
28)) +
(v18 & v19 | v20 & (v19 | v18));
v16 +=
v9 +
(verse_rotR64(v1, 8) XOR verse_rotR64(v1, 1) XOR v1 >> 7) +
(verse_rotR64(v14, 61) XOR verse_rotR64(v14, 19) XOR v14 >>
6);
v25 =
v24 + 0x19a4c116b8d2d0c8ULL + v1 +
(v23 XOR v21 & (v22 XOR v23)) +
(verse_rotR64(v21, 41) XOR verse_rotR64(v21, 18)
XOR verse_rotR64(v21, 14));
v20 += v25;
v24 = v25 + (verse_rotR64(v17, 39) XOR verse_rotR64(v17, 34)
XOR verse_rotR64(v17,
28)) +
(v17 & v18 | v19 & (v18 | v17));
v1 +=
v10 +
(verse_rotR64(v2, 8) XOR verse_rotR64(v2, 1) XOR v2 >> 7) +
(verse_rotR64(v15, 61) XOR verse_rotR64(v15, 19) XOR v15 >>
6);
v25 =
v23 + 0x1e376c085141ab53ULL + v2 +
(v22 XOR v20 & (v21 XOR v22)) +
(verse_rotR64(v20, 41) XOR verse_rotR64(v20, 18)
XOR verse_rotR64(v20, 14));
v19 += v25;
v23 = v25 + (verse_rotR64(v24, 39) XOR verse_rotR64(v24, 34)
XOR verse_rotR64(v24,
28)) +
(v24 & v17 | v18 & (v17 | v24));
v2 +=
v11 +
(verse_rotR64(v3, 8) XOR verse_rotR64(v3, 1) XOR v3 >> 7) +
(verse_rotR64(v16, 61) XOR verse_rotR64(v16, 19) XOR v16 >>
6);
v25 =
v22 + 0x2748774cdf8eeb99ULL + v3 +
(v21 XOR v19 & (v20 XOR v21)) +
(verse_rotR64(v19, 41) XOR verse_rotR64(v19, 18)
XOR verse_rotR64(v19, 14));
v18 += v25;
v22 = v25 + (verse_rotR64(v23, 39) XOR verse_rotR64(v23, 34)
XOR verse_rotR64(v23,
28)) +
(v23 & v24 | v17 & (v24 | v23));
v3 +=
v12 +
(verse_rotR64(v4, 8) XOR verse_rotR64(v4, 1) XOR v4 >> 7) +
(verse_rotR64(v1, 61) XOR verse_rotR64(v1, 19) XOR v1 >> 6);
v25 =
v21 + 0x34b0bcb5e19b48a8ULL + v4 +
(v20 XOR v18 & (v19 XOR v20)) +
(verse_rotR64(v18, 41) XOR verse_rotR64(v18, 18)
XOR verse_rotR64(v18, 14));
v17 += v25;
v21 = v25 + (verse_rotR64(v22, 39) XOR verse_rotR64(v22, 34)
XOR verse_rotR64(v22,
28)) +
(v22 & v23 | v24 & (v23 | v22));
v4 +=
v13 +
(verse_rotR64(v5, 8) XOR verse_rotR64(v5, 1) XOR v5 >> 7) +
(verse_rotR64(v2, 61) XOR verse_rotR64(v2, 19) XOR v2 >> 6);
v25 =
v20 + 0x391c0cb3c5c95a63ULL + v5 +
(v19 XOR v17 & (v18 XOR v19)) +
(verse_rotR64(v17, 41) XOR verse_rotR64(v17, 18)
XOR verse_rotR64(v17, 14));
v24 += v25;
v20 = v25 + (verse_rotR64(v21, 39) XOR verse_rotR64(v21, 34)
XOR verse_rotR64(v21,
28)) +
(v21 & v22 | v23 & (v22 | v21));
v5 +=
v14 +
(verse_rotR64(v6, 8) XOR verse_rotR64(v6, 1) XOR v6 >> 7) +
(verse_rotR64(v3, 61) XOR verse_rotR64(v3, 19) XOR v3 >> 6);
v25 =
v19 + 0x4ed8aa4ae3418acbULL + v6 +
(v18 XOR v24 & (v17 XOR v18)) +
(verse_rotR64(v24, 41) XOR verse_rotR64(v24, 18)
XOR verse_rotR64(v24, 14));
v23 += v25;
v19 = v25 + (verse_rotR64(v20, 39) XOR verse_rotR64(v20, 34)
XOR verse_rotR64(v20,
28)) +
(v20 & v21 | v22 & (v21 | v20));
v6 +=
v15 +
(verse_rotR64(v7, 8) XOR verse_rotR64(v7, 1) XOR v7 >> 7) +
(verse_rotR64(v4, 61) XOR verse_rotR64(v4, 19) XOR v4 >> 6);
v25 =
v18 + 0x5b9cca4f7763e373ULL + v7 +
(v17 XOR v23 & (v24 XOR v17)) +
(verse_rotR64(v23, 41) XOR verse_rotR64(v23, 18)
XOR verse_rotR64(v23, 14));
v22 += v25;
v18 = v25 + (verse_rotR64(v19, 39) XOR verse_rotR64(v19, 34)
XOR verse_rotR64(v19,
28)) +
(v19 & v20 | v21 & (v20 | v19));
v7 +=
v16 +
(verse_rotR64(v8, 8) XOR verse_rotR64(v8, 1) XOR v8 >> 7) +
(verse_rotR64(v5, 61) XOR verse_rotR64(v5, 19) XOR v5 >> 6);
v25 =
v17 + 0x682e6ff3d6b2b8a3ULL + v8 +
(v24 XOR v22 & (v23 XOR v24)) +
(verse_rotR64(v22, 41) XOR verse_rotR64(v22, 18)
XOR verse_rotR64(v22, 14));
v21 += v25;
v17 = v25 + (verse_rotR64(v18, 39) XOR verse_rotR64(v18, 34)
XOR verse_rotR64(v18,
28)) +
(v18 & v19 | v20 & (v19 | v18));
v8 +=
v1 +
(verse_rotR64(v9, 8) XOR verse_rotR64(v9, 1) XOR v9 >> 7) +
(verse_rotR64(v6, 61) XOR verse_rotR64(v6, 19) XOR v6 >> 6);
v25 =
v24 + 0x748f82ee5defb2fcULL + v9 +
(v23 XOR v21 & (v22 XOR v23)) +
(verse_rotR64(v21, 41) XOR verse_rotR64(v21, 18)
XOR verse_rotR64(v21, 14));
v20 += v25;
v24 = v25 + (verse_rotR64(v17, 39) XOR verse_rotR64(v17, 34)
XOR verse_rotR64(v17,
28)) +
(v17 & v18 | v19 & (v18 | v17));
v9 +=
v2 +
(verse_rotR64(v10, 8) XOR verse_rotR64(v10, 1) XOR v10 >> 7)
+
(verse_rotR64(v7, 61) XOR verse_rotR64(v7, 19) XOR v7 >> 6);
v25 =
v23 + 0x78a5636f43172f60ULL + v10 +
(v22 XOR v20 & (v21 XOR v22)) +
(verse_rotR64(v20, 41) XOR verse_rotR64(v20, 18)
XOR verse_rotR64(v20, 14));
v19 += v25;
v23 = v25 + (verse_rotR64(v24, 39) XOR verse_rotR64(v24, 34)
XOR verse_rotR64(v24,
28)) +
(v24 & v17 | v18 & (v17 | v24));
v10 +=
v3 +
(verse_rotR64(v11, 8) XOR verse_rotR64(v11, 1) XOR v11 >> 7)
+
(verse_rotR64(v8, 61) XOR verse_rotR64(v8, 19) XOR v8 >> 6);
v25 =
v22 + 0x84c87814a1f0ab72ULL + v11 +
(v21 XOR v19 & (v20 XOR v21)) +
(verse_rotR64(v19, 41) XOR verse_rotR64(v19, 18)
XOR verse_rotR64(v19, 14));
v18 += v25;
v22 = v25 + (verse_rotR64(v23, 39) XOR verse_rotR64(v23, 34)
XOR verse_rotR64(v23,
28)) +
(v23 & v24 | v17 & (v24 | v23));
v11 +=
v4 +
(verse_rotR64(v12, 8) XOR verse_rotR64(v12, 1) XOR v12 >> 7)
+
(verse_rotR64(v9, 61) XOR verse_rotR64(v9, 19) XOR v9 >> 6);
v25 =
v21 + 0x8cc702081a6439ecULL + v12 +
(v20 XOR v18 & (v19 XOR v20)) +
(verse_rotR64(v18, 41) XOR verse_rotR64(v18, 18)
XOR verse_rotR64(v18, 14));
v17 += v25;
v21 = v25 + (verse_rotR64(v22, 39) XOR verse_rotR64(v22, 34)
XOR verse_rotR64(v22,
28)) +
(v22 & v23 | v24 & (v23 | v22));
v12 +=
v5 +
(verse_rotR64(v13, 8) XOR verse_rotR64(v13, 1) XOR v13 >> 7)
+
(verse_rotR64(v10, 61) XOR verse_rotR64(v10, 19) XOR v10 >>
6);
v25 =
v20 + 0x90befffa23631e28ULL + v13 +
(v19 XOR v17 & (v18 XOR v19)) +
(verse_rotR64(v17, 41) XOR verse_rotR64(v17, 18)
XOR verse_rotR64(v17, 14));
v24 += v25;
v20 = v25 + (verse_rotR64(v21, 39) XOR verse_rotR64(v21, 34)
XOR verse_rotR64(v21,
28)) +
(v21 & v22 | v23 & (v22 | v21));
v13 +=
v6 +
(verse_rotR64(v14, 8) XOR verse_rotR64(v14, 1) XOR v14 >> 7)
+
(verse_rotR64(v11, 61) XOR verse_rotR64(v11, 19) XOR v11 >>
6);
v25 =
v19 + 0xa4506cebde82bde9ULL + v14 +
(v18 XOR v24 & (v17 XOR v18)) +
(verse_rotR64(v24, 41) XOR verse_rotR64(v24, 18)
XOR verse_rotR64(v24, 14));
v23 += v25;
v19 = v25 + (verse_rotR64(v20, 39) XOR verse_rotR64(v20, 34)
XOR verse_rotR64(v20,
28)) +
(v20 & v21 | v22 & (v21 | v20));
v14 +=
v7 +
(verse_rotR64(v15, 8) XOR verse_rotR64(v15, 1) XOR v15 >> 7)
+
(verse_rotR64(v12, 61) XOR verse_rotR64(v12, 19) XOR v12 >>
6);
v25 =
v18 + 0xbef9a3f7b2c67915ULL + v15 +
(v17 XOR v23 & (v24 XOR v17)) +
(verse_rotR64(v23, 41) XOR verse_rotR64(v23, 18)
XOR verse_rotR64(v23, 14));
v22 += v25;
v18 = v25 + (verse_rotR64(v19, 39) XOR verse_rotR64(v19, 34)
XOR verse_rotR64(v19,
28)) +
(v19 & v20 | v21 & (v20 | v19));
v15 +=
v8 +
(verse_rotR64(v16, 8) XOR verse_rotR64(v16, 1) XOR v16 >> 7)
+
(verse_rotR64(v13, 61) XOR verse_rotR64(v13, 19) XOR v13 >>
6);
v25 =
v17 + 0xc67178f2e372532bULL + v16 +
(v24 XOR v22 & (v23 XOR v24)) +
(verse_rotR64(v22, 41) XOR verse_rotR64(v22, 18)
XOR verse_rotR64(v22, 14));
v21 += v25;
v17 = v25 + (verse_rotR64(v18, 39) XOR verse_rotR64(v18, 34)
XOR verse_rotR64(v18,
28)) +
(v18 & v19 | v20 & (v19 | v18));
v16 +=
v9 +
(verse_rotR64(v1, 8) XOR verse_rotR64(v1, 1) XOR v1 >> 7) +
(verse_rotR64(v14, 61) XOR verse_rotR64(v14, 19) XOR v14 >>
6);
v25 =
v24 + 0xca273eceea26619cULL + v1 +
(v23 XOR v21 & (v22 XOR v23)) +
(verse_rotR64(v21, 41) XOR verse_rotR64(v21, 18)
XOR verse_rotR64(v21, 14));
v20 += v25;
v24 = v25 + (verse_rotR64(v17, 39) XOR verse_rotR64(v17, 34)
XOR verse_rotR64(v17,
28)) +
(v17 & v18 | v19 & (v18 | v17));
v25 =
v23 + 0xd186b8c721c0c207ULL + v2 +
(v22 XOR v20 & (v21 XOR v22)) +
(verse_rotR64(v20, 41) XOR verse_rotR64(v20, 18)
XOR verse_rotR64(v20, 14));
v19 += v25;
v23 = v25 + (verse_rotR64(v24, 39) XOR verse_rotR64(v24, 34)
XOR verse_rotR64(v24,
28)) +
(v24 & v17 | v18 & (v17 | v24));
v25 =
v22 + 0xeada7dd6cde0eb1eULL + v3 +
(v21 XOR v19 & (v20 XOR v21)) +
(verse_rotR64(v19, 41) XOR verse_rotR64(v19, 18)
XOR verse_rotR64(v19, 14));
v18 += v25;
v22 = v25 + (verse_rotR64(v23, 39) XOR verse_rotR64(v23, 34)
XOR verse_rotR64(v23,
28)) +
(v23 & v24 | v17 & (v24 | v23));
v25 =
v21 + 0xf57d4f7fee6ed178ULL + v4 +
(v20 XOR v18 & (v19 XOR v20)) +
(verse_rotR64(v18, 41) XOR verse_rotR64(v18, 18)
XOR verse_rotR64(v18, 14));
v17 += v25;
v21 = v25 + (verse_rotR64(v22, 39) XOR verse_rotR64(v22, 34)
XOR verse_rotR64(v22,
28)) +
(v22 & v23 | v24 & (v23 | v22));
v25 =
v20 + 0x06f067aa72176fbaULL + v5 +
(v19 XOR v17 & (v18 XOR v19)) +
(verse_rotR64(v17, 41) XOR verse_rotR64(v17, 18)
XOR verse_rotR64(v17, 14));
v24 += v25;
v20 = v25 + (verse_rotR64(v21, 39) XOR verse_rotR64(v21, 34)
XOR verse_rotR64(v21,
28)) +
(v21 & v22 | v23 & (v22 | v21));
v25 =
v19 + 0x0a637dc5a2c898a6ULL + v6 +
(v18 XOR v24 & (v17 XOR v18)) +
(verse_rotR64(v24, 41) XOR verse_rotR64(v24, 18)
XOR verse_rotR64(v24, 14));
v23 += v25;
v19 = v25 + (verse_rotR64(v20, 39) XOR verse_rotR64(v20, 34)
XOR verse_rotR64(v20,
28)) +
(v20 & v21 | v22 & (v21 | v20));
v25 =
v18 + 0x113f9804bef90daeULL + v7 +
(v17 XOR v23 & (v24 XOR v17)) +
(verse_rotR64(v23, 41) XOR verse_rotR64(v23, 18)
XOR verse_rotR64(v23, 14));
v22 += v25;
v18 = v25 + (verse_rotR64(v19, 39) XOR verse_rotR64(v19, 34)
XOR verse_rotR64(v19,
28)) +
(v19 & v20 | v21 & (v20 | v19));
v25 =
v17 + 0x1b710b35131c471bULL + v8 +
(v24 XOR v22 & (v23 XOR v24)) +
(verse_rotR64(v22, 41) XOR verse_rotR64(v22, 18)
XOR verse_rotR64(v22, 14));
v21 += v25;
v17 = v25 + (verse_rotR64(v18, 39) XOR verse_rotR64(v18, 34)
XOR verse_rotR64(v18,
28)) +
(v18 & v19 | v20 & (v19 | v18));
v25 =
v24 + 0x28db77f523047d84ULL + v9 +
(v23 XOR v21 & (v22 XOR v23)) +
(verse_rotR64(v21, 41) XOR verse_rotR64(v21, 18)
XOR verse_rotR64(v21, 14));
v20 += v25;
v24 = v25 + (verse_rotR64(v17, 39) XOR verse_rotR64(v17, 34)
XOR verse_rotR64(v17,
28)) +
(v17 & v18 | v19 & (v18 | v17));
v25 =
v23 + 0x32caab7b40c72493ULL + v10 +
(v22 XOR v20 & (v21 XOR v22)) +
(verse_rotR64(v20, 41) XOR verse_rotR64(v20, 18)
XOR verse_rotR64(v20, 14));
v19 += v25;
v23 = v25 + (verse_rotR64(v24, 39) XOR verse_rotR64(v24, 34)
XOR verse_rotR64(v24,
28)) +
(v24 & v17 | v18 & (v17 | v24));
v25 =
v22 + 0x3c9ebe0a15c9bebcULL + v11 +
(v21 XOR v19 & (v20 XOR v21)) +
(verse_rotR64(v19, 41) XOR verse_rotR64(v19, 18)
XOR verse_rotR64(v19, 14));
v18 += v25;
v22 = v25 + (verse_rotR64(v23, 39) XOR verse_rotR64(v23, 34)
XOR verse_rotR64(v23,
28)) +
(v23 & v24 | v17 & (v24 | v23));
v25 =
v21 + 0x431d67c49c100d4cULL + v12 +
(v20 XOR v18 & (v19 XOR v20)) +
(verse_rotR64(v18, 41) XOR verse_rotR64(v18, 18)
XOR verse_rotR64(v18, 14));
v17 += v25;
v21 = v25 + (verse_rotR64(v22, 39) XOR verse_rotR64(v22, 34)
XOR verse_rotR64(v22,
28)) +
(v22 & v23 | v24 & (v23 | v22));
v25 =
v20 + 0x4cc5d4becb3e42b6ULL + v13 +
(v19 XOR v17 & (v18 XOR v19)) +
(verse_rotR64(v17, 41) XOR verse_rotR64(v17, 18)
XOR verse_rotR64(v17, 14));
v24 += v25;
v20 = v25 + (verse_rotR64(v21, 39) XOR verse_rotR64(v21, 34)
XOR verse_rotR64(v21,
28)) +
(v21 & v22 | v23 & (v22 | v21));
v25 =
v19 + 0x597f299cfc657e2aULL + v14 +
(v18 XOR v24 & (v17 XOR v18)) +
(verse_rotR64(v24, 41) XOR verse_rotR64(v24, 18)
XOR verse_rotR64(v24, 14));
v23 += v25;
v19 = v25 + (verse_rotR64(v20, 39) XOR verse_rotR64(v20, 34)
XOR verse_rotR64(v20,
28)) +
(v20 & v21 | v22 & (v21 | v20));
v25 =
v18 + 0x5fcb6fab3ad6faecULL + v15 +
(v17 XOR v23 & (v24 XOR v17)) +
(verse_rotR64(v23, 41) XOR verse_rotR64(v23, 18)
XOR verse_rotR64(v23, 14));
v22 += v25;
v18 = v25 + (verse_rotR64(v19, 39) XOR verse_rotR64(v19, 34)
XOR verse_rotR64(v19,
28)) +
(v19 & v20 | v21 & (v20 | v19));
v25 =
v17 + 0x6c44198c4a475817ULL + v16 +
(v24 XOR v22 & (v23 XOR v24)) +
(verse_rotR64(v22, 41) XOR verse_rotR64(v22, 18)
XOR verse_rotR64(v22, 14));
v21 += v25;
v17 = v25 + (verse_rotR64(v18, 39) XOR verse_rotR64(v18, 34)
XOR verse_rotR64(v18,
28)) +
(v18 & v19 | v20 & (v19 | v18));
v17 += v0[0];
v18 += v0[1];
v19 += v0[2];
v20 += v0[3];
v21 += v0[4];
v22 += v0[5];
v23 += v0[6];
v24 += v0[7];
v0[0] = v17;
v0[1] = v18;
v0[2] = v19;
v0[3] = v20;
v0[4] = v21;
v0[5] = v22;
v0[6] = v23;
v0[7] = v24;
++bPtr;
--cTr;
};
}