raaz-0.3.0: libverse/sha256/c/portable.c
#include <stdint.h>
#include <verse.h>
#define XOR ^
void verse_sha256_c_portable(uint32_t(*bPtr)[16], uint64_t cTr, uint32_t v0[8])
{
auto uint32_t v1;
auto uint32_t v2;
auto uint32_t v3;
auto uint32_t v4;
auto uint32_t v5;
auto uint32_t v6;
auto uint32_t v7;
auto uint32_t v8;
auto uint32_t v9;
auto uint32_t v10;
auto uint32_t v11;
auto uint32_t v12;
auto uint32_t v13;
auto uint32_t v14;
auto uint32_t v15;
auto uint32_t v16;
auto uint32_t v17;
auto uint32_t v18;
auto uint32_t v19;
auto uint32_t v20;
auto uint32_t v21;
auto uint32_t v22;
auto uint32_t v23;
auto uint32_t v24;
auto uint32_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_be32((*bPtr)[0]);
v2 = verse_from_be32((*bPtr)[1]);
v3 = verse_from_be32((*bPtr)[2]);
v4 = verse_from_be32((*bPtr)[3]);
v5 = verse_from_be32((*bPtr)[4]);
v6 = verse_from_be32((*bPtr)[5]);
v7 = verse_from_be32((*bPtr)[6]);
v8 = verse_from_be32((*bPtr)[7]);
v9 = verse_from_be32((*bPtr)[8]);
v10 = verse_from_be32((*bPtr)[9]);
v11 = verse_from_be32((*bPtr)[10]);
v12 = verse_from_be32((*bPtr)[11]);
v13 = verse_from_be32((*bPtr)[12]);
v14 = verse_from_be32((*bPtr)[13]);
v15 = verse_from_be32((*bPtr)[14]);
v16 = verse_from_be32((*bPtr)[15]);
v25 =
v24 + 0x428a2f98UL + v1 + (v23 XOR v21 & (v22 XOR v23)) +
(verse_rotR32(v21, 25) XOR verse_rotR32(v21, 11)
XOR verse_rotR32(v21, 6));
v20 += v25;
v24 = v25 + (verse_rotR32(v17, 22) XOR verse_rotR32(v17, 13)
XOR verse_rotR32(v17,
2)) +
(v17 & v18 | v19 & (v18 | v17));
v1 +=
v10 +
(verse_rotR32(v2, 18) XOR verse_rotR32(v2, 7) XOR v2 >> 3) +
(verse_rotR32(v15, 19) XOR verse_rotR32(v15, 17) XOR v15 >>
10);
v25 =
v23 + 0x71374491UL + v2 + (v22 XOR v20 & (v21 XOR v22)) +
(verse_rotR32(v20, 25) XOR verse_rotR32(v20, 11)
XOR verse_rotR32(v20, 6));
v19 += v25;
v23 = v25 + (verse_rotR32(v24, 22) XOR verse_rotR32(v24, 13)
XOR verse_rotR32(v24,
2)) +
(v24 & v17 | v18 & (v17 | v24));
v2 +=
v11 +
(verse_rotR32(v3, 18) XOR verse_rotR32(v3, 7) XOR v3 >> 3) +
(verse_rotR32(v16, 19) XOR verse_rotR32(v16, 17) XOR v16 >>
10);
v25 =
v22 + 0xb5c0fbcfUL + v3 + (v21 XOR v19 & (v20 XOR v21)) +
(verse_rotR32(v19, 25) XOR verse_rotR32(v19, 11)
XOR verse_rotR32(v19, 6));
v18 += v25;
v22 = v25 + (verse_rotR32(v23, 22) XOR verse_rotR32(v23, 13)
XOR verse_rotR32(v23,
2)) +
(v23 & v24 | v17 & (v24 | v23));
v3 +=
v12 +
(verse_rotR32(v4, 18) XOR verse_rotR32(v4, 7) XOR v4 >> 3) +
(verse_rotR32(v1, 19) XOR verse_rotR32(v1, 17) XOR v1 >>
10);
v25 =
v21 + 0xe9b5dba5UL + v4 + (v20 XOR v18 & (v19 XOR v20)) +
(verse_rotR32(v18, 25) XOR verse_rotR32(v18, 11)
XOR verse_rotR32(v18, 6));
v17 += v25;
v21 = v25 + (verse_rotR32(v22, 22) XOR verse_rotR32(v22, 13)
XOR verse_rotR32(v22,
2)) +
(v22 & v23 | v24 & (v23 | v22));
v4 +=
v13 +
(verse_rotR32(v5, 18) XOR verse_rotR32(v5, 7) XOR v5 >> 3) +
(verse_rotR32(v2, 19) XOR verse_rotR32(v2, 17) XOR v2 >>
10);
v25 =
v20 + 0x3956c25bUL + v5 + (v19 XOR v17 & (v18 XOR v19)) +
(verse_rotR32(v17, 25) XOR verse_rotR32(v17, 11)
XOR verse_rotR32(v17, 6));
v24 += v25;
v20 = v25 + (verse_rotR32(v21, 22) XOR verse_rotR32(v21, 13)
XOR verse_rotR32(v21,
2)) +
(v21 & v22 | v23 & (v22 | v21));
v5 +=
v14 +
(verse_rotR32(v6, 18) XOR verse_rotR32(v6, 7) XOR v6 >> 3) +
(verse_rotR32(v3, 19) XOR verse_rotR32(v3, 17) XOR v3 >>
10);
v25 =
v19 + 0x59f111f1UL + v6 + (v18 XOR v24 & (v17 XOR v18)) +
(verse_rotR32(v24, 25) XOR verse_rotR32(v24, 11)
XOR verse_rotR32(v24, 6));
v23 += v25;
v19 = v25 + (verse_rotR32(v20, 22) XOR verse_rotR32(v20, 13)
XOR verse_rotR32(v20,
2)) +
(v20 & v21 | v22 & (v21 | v20));
v6 +=
v15 +
(verse_rotR32(v7, 18) XOR verse_rotR32(v7, 7) XOR v7 >> 3) +
(verse_rotR32(v4, 19) XOR verse_rotR32(v4, 17) XOR v4 >>
10);
v25 =
v18 + 0x923f82a4UL + v7 + (v17 XOR v23 & (v24 XOR v17)) +
(verse_rotR32(v23, 25) XOR verse_rotR32(v23, 11)
XOR verse_rotR32(v23, 6));
v22 += v25;
v18 = v25 + (verse_rotR32(v19, 22) XOR verse_rotR32(v19, 13)
XOR verse_rotR32(v19,
2)) +
(v19 & v20 | v21 & (v20 | v19));
v7 +=
v16 +
(verse_rotR32(v8, 18) XOR verse_rotR32(v8, 7) XOR v8 >> 3) +
(verse_rotR32(v5, 19) XOR verse_rotR32(v5, 17) XOR v5 >>
10);
v25 =
v17 + 0xab1c5ed5UL + v8 + (v24 XOR v22 & (v23 XOR v24)) +
(verse_rotR32(v22, 25) XOR verse_rotR32(v22, 11)
XOR verse_rotR32(v22, 6));
v21 += v25;
v17 = v25 + (verse_rotR32(v18, 22) XOR verse_rotR32(v18, 13)
XOR verse_rotR32(v18,
2)) +
(v18 & v19 | v20 & (v19 | v18));
v8 +=
v1 +
(verse_rotR32(v9, 18) XOR verse_rotR32(v9, 7) XOR v9 >> 3) +
(verse_rotR32(v6, 19) XOR verse_rotR32(v6, 17) XOR v6 >>
10);
v25 =
v24 + 0xd807aa98UL + v9 + (v23 XOR v21 & (v22 XOR v23)) +
(verse_rotR32(v21, 25) XOR verse_rotR32(v21, 11)
XOR verse_rotR32(v21, 6));
v20 += v25;
v24 = v25 + (verse_rotR32(v17, 22) XOR verse_rotR32(v17, 13)
XOR verse_rotR32(v17,
2)) +
(v17 & v18 | v19 & (v18 | v17));
v9 +=
v2 +
(verse_rotR32(v10, 18) XOR verse_rotR32(v10, 7) XOR v10 >>
3) + (verse_rotR32(v7, 19) XOR verse_rotR32(v7,
17) XOR v7 >>
10);
v25 =
v23 + 0x12835b01UL + v10 + (v22 XOR v20 & (v21 XOR v22)) +
(verse_rotR32(v20, 25) XOR verse_rotR32(v20, 11)
XOR verse_rotR32(v20, 6));
v19 += v25;
v23 = v25 + (verse_rotR32(v24, 22) XOR verse_rotR32(v24, 13)
XOR verse_rotR32(v24,
2)) +
(v24 & v17 | v18 & (v17 | v24));
v10 +=
v3 +
(verse_rotR32(v11, 18) XOR verse_rotR32(v11, 7) XOR v11 >>
3) + (verse_rotR32(v8, 19) XOR verse_rotR32(v8,
17) XOR v8 >>
10);
v25 =
v22 + 0x243185beUL + v11 + (v21 XOR v19 & (v20 XOR v21)) +
(verse_rotR32(v19, 25) XOR verse_rotR32(v19, 11)
XOR verse_rotR32(v19, 6));
v18 += v25;
v22 = v25 + (verse_rotR32(v23, 22) XOR verse_rotR32(v23, 13)
XOR verse_rotR32(v23,
2)) +
(v23 & v24 | v17 & (v24 | v23));
v11 +=
v4 +
(verse_rotR32(v12, 18) XOR verse_rotR32(v12, 7) XOR v12 >>
3) + (verse_rotR32(v9, 19) XOR verse_rotR32(v9,
17) XOR v9 >>
10);
v25 =
v21 + 0x550c7dc3UL + v12 + (v20 XOR v18 & (v19 XOR v20)) +
(verse_rotR32(v18, 25) XOR verse_rotR32(v18, 11)
XOR verse_rotR32(v18, 6));
v17 += v25;
v21 = v25 + (verse_rotR32(v22, 22) XOR verse_rotR32(v22, 13)
XOR verse_rotR32(v22,
2)) +
(v22 & v23 | v24 & (v23 | v22));
v12 +=
v5 +
(verse_rotR32(v13, 18) XOR verse_rotR32(v13, 7) XOR v13 >>
3) + (verse_rotR32(v10, 19) XOR verse_rotR32(v10,
17) XOR v10 >>
10);
v25 =
v20 + 0x72be5d74UL + v13 + (v19 XOR v17 & (v18 XOR v19)) +
(verse_rotR32(v17, 25) XOR verse_rotR32(v17, 11)
XOR verse_rotR32(v17, 6));
v24 += v25;
v20 = v25 + (verse_rotR32(v21, 22) XOR verse_rotR32(v21, 13)
XOR verse_rotR32(v21,
2)) +
(v21 & v22 | v23 & (v22 | v21));
v13 +=
v6 +
(verse_rotR32(v14, 18) XOR verse_rotR32(v14, 7) XOR v14 >>
3) + (verse_rotR32(v11, 19) XOR verse_rotR32(v11,
17) XOR v11 >>
10);
v25 =
v19 + 0x80deb1feUL + v14 + (v18 XOR v24 & (v17 XOR v18)) +
(verse_rotR32(v24, 25) XOR verse_rotR32(v24, 11)
XOR verse_rotR32(v24, 6));
v23 += v25;
v19 = v25 + (verse_rotR32(v20, 22) XOR verse_rotR32(v20, 13)
XOR verse_rotR32(v20,
2)) +
(v20 & v21 | v22 & (v21 | v20));
v14 +=
v7 +
(verse_rotR32(v15, 18) XOR verse_rotR32(v15, 7) XOR v15 >>
3) + (verse_rotR32(v12, 19) XOR verse_rotR32(v12,
17) XOR v12 >>
10);
v25 =
v18 + 0x9bdc06a7UL + v15 + (v17 XOR v23 & (v24 XOR v17)) +
(verse_rotR32(v23, 25) XOR verse_rotR32(v23, 11)
XOR verse_rotR32(v23, 6));
v22 += v25;
v18 = v25 + (verse_rotR32(v19, 22) XOR verse_rotR32(v19, 13)
XOR verse_rotR32(v19,
2)) +
(v19 & v20 | v21 & (v20 | v19));
v15 +=
v8 +
(verse_rotR32(v16, 18) XOR verse_rotR32(v16, 7) XOR v16 >>
3) + (verse_rotR32(v13, 19) XOR verse_rotR32(v13,
17) XOR v13 >>
10);
v25 =
v17 + 0xc19bf174UL + v16 + (v24 XOR v22 & (v23 XOR v24)) +
(verse_rotR32(v22, 25) XOR verse_rotR32(v22, 11)
XOR verse_rotR32(v22, 6));
v21 += v25;
v17 = v25 + (verse_rotR32(v18, 22) XOR verse_rotR32(v18, 13)
XOR verse_rotR32(v18,
2)) +
(v18 & v19 | v20 & (v19 | v18));
v16 +=
v9 +
(verse_rotR32(v1, 18) XOR verse_rotR32(v1, 7) XOR v1 >> 3) +
(verse_rotR32(v14, 19) XOR verse_rotR32(v14, 17) XOR v14 >>
10);
v25 =
v24 + 0xe49b69c1UL + v1 + (v23 XOR v21 & (v22 XOR v23)) +
(verse_rotR32(v21, 25) XOR verse_rotR32(v21, 11)
XOR verse_rotR32(v21, 6));
v20 += v25;
v24 = v25 + (verse_rotR32(v17, 22) XOR verse_rotR32(v17, 13)
XOR verse_rotR32(v17,
2)) +
(v17 & v18 | v19 & (v18 | v17));
v1 +=
v10 +
(verse_rotR32(v2, 18) XOR verse_rotR32(v2, 7) XOR v2 >> 3) +
(verse_rotR32(v15, 19) XOR verse_rotR32(v15, 17) XOR v15 >>
10);
v25 =
v23 + 0xefbe4786UL + v2 + (v22 XOR v20 & (v21 XOR v22)) +
(verse_rotR32(v20, 25) XOR verse_rotR32(v20, 11)
XOR verse_rotR32(v20, 6));
v19 += v25;
v23 = v25 + (verse_rotR32(v24, 22) XOR verse_rotR32(v24, 13)
XOR verse_rotR32(v24,
2)) +
(v24 & v17 | v18 & (v17 | v24));
v2 +=
v11 +
(verse_rotR32(v3, 18) XOR verse_rotR32(v3, 7) XOR v3 >> 3) +
(verse_rotR32(v16, 19) XOR verse_rotR32(v16, 17) XOR v16 >>
10);
v25 =
v22 + 0x0fc19dc6UL + v3 + (v21 XOR v19 & (v20 XOR v21)) +
(verse_rotR32(v19, 25) XOR verse_rotR32(v19, 11)
XOR verse_rotR32(v19, 6));
v18 += v25;
v22 = v25 + (verse_rotR32(v23, 22) XOR verse_rotR32(v23, 13)
XOR verse_rotR32(v23,
2)) +
(v23 & v24 | v17 & (v24 | v23));
v3 +=
v12 +
(verse_rotR32(v4, 18) XOR verse_rotR32(v4, 7) XOR v4 >> 3) +
(verse_rotR32(v1, 19) XOR verse_rotR32(v1, 17) XOR v1 >>
10);
v25 =
v21 + 0x240ca1ccUL + v4 + (v20 XOR v18 & (v19 XOR v20)) +
(verse_rotR32(v18, 25) XOR verse_rotR32(v18, 11)
XOR verse_rotR32(v18, 6));
v17 += v25;
v21 = v25 + (verse_rotR32(v22, 22) XOR verse_rotR32(v22, 13)
XOR verse_rotR32(v22,
2)) +
(v22 & v23 | v24 & (v23 | v22));
v4 +=
v13 +
(verse_rotR32(v5, 18) XOR verse_rotR32(v5, 7) XOR v5 >> 3) +
(verse_rotR32(v2, 19) XOR verse_rotR32(v2, 17) XOR v2 >>
10);
v25 =
v20 + 0x2de92c6fUL + v5 + (v19 XOR v17 & (v18 XOR v19)) +
(verse_rotR32(v17, 25) XOR verse_rotR32(v17, 11)
XOR verse_rotR32(v17, 6));
v24 += v25;
v20 = v25 + (verse_rotR32(v21, 22) XOR verse_rotR32(v21, 13)
XOR verse_rotR32(v21,
2)) +
(v21 & v22 | v23 & (v22 | v21));
v5 +=
v14 +
(verse_rotR32(v6, 18) XOR verse_rotR32(v6, 7) XOR v6 >> 3) +
(verse_rotR32(v3, 19) XOR verse_rotR32(v3, 17) XOR v3 >>
10);
v25 =
v19 + 0x4a7484aaUL + v6 + (v18 XOR v24 & (v17 XOR v18)) +
(verse_rotR32(v24, 25) XOR verse_rotR32(v24, 11)
XOR verse_rotR32(v24, 6));
v23 += v25;
v19 = v25 + (verse_rotR32(v20, 22) XOR verse_rotR32(v20, 13)
XOR verse_rotR32(v20,
2)) +
(v20 & v21 | v22 & (v21 | v20));
v6 +=
v15 +
(verse_rotR32(v7, 18) XOR verse_rotR32(v7, 7) XOR v7 >> 3) +
(verse_rotR32(v4, 19) XOR verse_rotR32(v4, 17) XOR v4 >>
10);
v25 =
v18 + 0x5cb0a9dcUL + v7 + (v17 XOR v23 & (v24 XOR v17)) +
(verse_rotR32(v23, 25) XOR verse_rotR32(v23, 11)
XOR verse_rotR32(v23, 6));
v22 += v25;
v18 = v25 + (verse_rotR32(v19, 22) XOR verse_rotR32(v19, 13)
XOR verse_rotR32(v19,
2)) +
(v19 & v20 | v21 & (v20 | v19));
v7 +=
v16 +
(verse_rotR32(v8, 18) XOR verse_rotR32(v8, 7) XOR v8 >> 3) +
(verse_rotR32(v5, 19) XOR verse_rotR32(v5, 17) XOR v5 >>
10);
v25 =
v17 + 0x76f988daUL + v8 + (v24 XOR v22 & (v23 XOR v24)) +
(verse_rotR32(v22, 25) XOR verse_rotR32(v22, 11)
XOR verse_rotR32(v22, 6));
v21 += v25;
v17 = v25 + (verse_rotR32(v18, 22) XOR verse_rotR32(v18, 13)
XOR verse_rotR32(v18,
2)) +
(v18 & v19 | v20 & (v19 | v18));
v8 +=
v1 +
(verse_rotR32(v9, 18) XOR verse_rotR32(v9, 7) XOR v9 >> 3) +
(verse_rotR32(v6, 19) XOR verse_rotR32(v6, 17) XOR v6 >>
10);
v25 =
v24 + 0x983e5152UL + v9 + (v23 XOR v21 & (v22 XOR v23)) +
(verse_rotR32(v21, 25) XOR verse_rotR32(v21, 11)
XOR verse_rotR32(v21, 6));
v20 += v25;
v24 = v25 + (verse_rotR32(v17, 22) XOR verse_rotR32(v17, 13)
XOR verse_rotR32(v17,
2)) +
(v17 & v18 | v19 & (v18 | v17));
v9 +=
v2 +
(verse_rotR32(v10, 18) XOR verse_rotR32(v10, 7) XOR v10 >>
3) + (verse_rotR32(v7, 19) XOR verse_rotR32(v7,
17) XOR v7 >>
10);
v25 =
v23 + 0xa831c66dUL + v10 + (v22 XOR v20 & (v21 XOR v22)) +
(verse_rotR32(v20, 25) XOR verse_rotR32(v20, 11)
XOR verse_rotR32(v20, 6));
v19 += v25;
v23 = v25 + (verse_rotR32(v24, 22) XOR verse_rotR32(v24, 13)
XOR verse_rotR32(v24,
2)) +
(v24 & v17 | v18 & (v17 | v24));
v10 +=
v3 +
(verse_rotR32(v11, 18) XOR verse_rotR32(v11, 7) XOR v11 >>
3) + (verse_rotR32(v8, 19) XOR verse_rotR32(v8,
17) XOR v8 >>
10);
v25 =
v22 + 0xb00327c8UL + v11 + (v21 XOR v19 & (v20 XOR v21)) +
(verse_rotR32(v19, 25) XOR verse_rotR32(v19, 11)
XOR verse_rotR32(v19, 6));
v18 += v25;
v22 = v25 + (verse_rotR32(v23, 22) XOR verse_rotR32(v23, 13)
XOR verse_rotR32(v23,
2)) +
(v23 & v24 | v17 & (v24 | v23));
v11 +=
v4 +
(verse_rotR32(v12, 18) XOR verse_rotR32(v12, 7) XOR v12 >>
3) + (verse_rotR32(v9, 19) XOR verse_rotR32(v9,
17) XOR v9 >>
10);
v25 =
v21 + 0xbf597fc7UL + v12 + (v20 XOR v18 & (v19 XOR v20)) +
(verse_rotR32(v18, 25) XOR verse_rotR32(v18, 11)
XOR verse_rotR32(v18, 6));
v17 += v25;
v21 = v25 + (verse_rotR32(v22, 22) XOR verse_rotR32(v22, 13)
XOR verse_rotR32(v22,
2)) +
(v22 & v23 | v24 & (v23 | v22));
v12 +=
v5 +
(verse_rotR32(v13, 18) XOR verse_rotR32(v13, 7) XOR v13 >>
3) + (verse_rotR32(v10, 19) XOR verse_rotR32(v10,
17) XOR v10 >>
10);
v25 =
v20 + 0xc6e00bf3UL + v13 + (v19 XOR v17 & (v18 XOR v19)) +
(verse_rotR32(v17, 25) XOR verse_rotR32(v17, 11)
XOR verse_rotR32(v17, 6));
v24 += v25;
v20 = v25 + (verse_rotR32(v21, 22) XOR verse_rotR32(v21, 13)
XOR verse_rotR32(v21,
2)) +
(v21 & v22 | v23 & (v22 | v21));
v13 +=
v6 +
(verse_rotR32(v14, 18) XOR verse_rotR32(v14, 7) XOR v14 >>
3) + (verse_rotR32(v11, 19) XOR verse_rotR32(v11,
17) XOR v11 >>
10);
v25 =
v19 + 0xd5a79147UL + v14 + (v18 XOR v24 & (v17 XOR v18)) +
(verse_rotR32(v24, 25) XOR verse_rotR32(v24, 11)
XOR verse_rotR32(v24, 6));
v23 += v25;
v19 = v25 + (verse_rotR32(v20, 22) XOR verse_rotR32(v20, 13)
XOR verse_rotR32(v20,
2)) +
(v20 & v21 | v22 & (v21 | v20));
v14 +=
v7 +
(verse_rotR32(v15, 18) XOR verse_rotR32(v15, 7) XOR v15 >>
3) + (verse_rotR32(v12, 19) XOR verse_rotR32(v12,
17) XOR v12 >>
10);
v25 =
v18 + 0x06ca6351UL + v15 + (v17 XOR v23 & (v24 XOR v17)) +
(verse_rotR32(v23, 25) XOR verse_rotR32(v23, 11)
XOR verse_rotR32(v23, 6));
v22 += v25;
v18 = v25 + (verse_rotR32(v19, 22) XOR verse_rotR32(v19, 13)
XOR verse_rotR32(v19,
2)) +
(v19 & v20 | v21 & (v20 | v19));
v15 +=
v8 +
(verse_rotR32(v16, 18) XOR verse_rotR32(v16, 7) XOR v16 >>
3) + (verse_rotR32(v13, 19) XOR verse_rotR32(v13,
17) XOR v13 >>
10);
v25 =
v17 + 0x14292967UL + v16 + (v24 XOR v22 & (v23 XOR v24)) +
(verse_rotR32(v22, 25) XOR verse_rotR32(v22, 11)
XOR verse_rotR32(v22, 6));
v21 += v25;
v17 = v25 + (verse_rotR32(v18, 22) XOR verse_rotR32(v18, 13)
XOR verse_rotR32(v18,
2)) +
(v18 & v19 | v20 & (v19 | v18));
v16 +=
v9 +
(verse_rotR32(v1, 18) XOR verse_rotR32(v1, 7) XOR v1 >> 3) +
(verse_rotR32(v14, 19) XOR verse_rotR32(v14, 17) XOR v14 >>
10);
v25 =
v24 + 0x27b70a85UL + v1 + (v23 XOR v21 & (v22 XOR v23)) +
(verse_rotR32(v21, 25) XOR verse_rotR32(v21, 11)
XOR verse_rotR32(v21, 6));
v20 += v25;
v24 = v25 + (verse_rotR32(v17, 22) XOR verse_rotR32(v17, 13)
XOR verse_rotR32(v17,
2)) +
(v17 & v18 | v19 & (v18 | v17));
v1 +=
v10 +
(verse_rotR32(v2, 18) XOR verse_rotR32(v2, 7) XOR v2 >> 3) +
(verse_rotR32(v15, 19) XOR verse_rotR32(v15, 17) XOR v15 >>
10);
v25 =
v23 + 0x2e1b2138UL + v2 + (v22 XOR v20 & (v21 XOR v22)) +
(verse_rotR32(v20, 25) XOR verse_rotR32(v20, 11)
XOR verse_rotR32(v20, 6));
v19 += v25;
v23 = v25 + (verse_rotR32(v24, 22) XOR verse_rotR32(v24, 13)
XOR verse_rotR32(v24,
2)) +
(v24 & v17 | v18 & (v17 | v24));
v2 +=
v11 +
(verse_rotR32(v3, 18) XOR verse_rotR32(v3, 7) XOR v3 >> 3) +
(verse_rotR32(v16, 19) XOR verse_rotR32(v16, 17) XOR v16 >>
10);
v25 =
v22 + 0x4d2c6dfcUL + v3 + (v21 XOR v19 & (v20 XOR v21)) +
(verse_rotR32(v19, 25) XOR verse_rotR32(v19, 11)
XOR verse_rotR32(v19, 6));
v18 += v25;
v22 = v25 + (verse_rotR32(v23, 22) XOR verse_rotR32(v23, 13)
XOR verse_rotR32(v23,
2)) +
(v23 & v24 | v17 & (v24 | v23));
v3 +=
v12 +
(verse_rotR32(v4, 18) XOR verse_rotR32(v4, 7) XOR v4 >> 3) +
(verse_rotR32(v1, 19) XOR verse_rotR32(v1, 17) XOR v1 >>
10);
v25 =
v21 + 0x53380d13UL + v4 + (v20 XOR v18 & (v19 XOR v20)) +
(verse_rotR32(v18, 25) XOR verse_rotR32(v18, 11)
XOR verse_rotR32(v18, 6));
v17 += v25;
v21 = v25 + (verse_rotR32(v22, 22) XOR verse_rotR32(v22, 13)
XOR verse_rotR32(v22,
2)) +
(v22 & v23 | v24 & (v23 | v22));
v4 +=
v13 +
(verse_rotR32(v5, 18) XOR verse_rotR32(v5, 7) XOR v5 >> 3) +
(verse_rotR32(v2, 19) XOR verse_rotR32(v2, 17) XOR v2 >>
10);
v25 =
v20 + 0x650a7354UL + v5 + (v19 XOR v17 & (v18 XOR v19)) +
(verse_rotR32(v17, 25) XOR verse_rotR32(v17, 11)
XOR verse_rotR32(v17, 6));
v24 += v25;
v20 = v25 + (verse_rotR32(v21, 22) XOR verse_rotR32(v21, 13)
XOR verse_rotR32(v21,
2)) +
(v21 & v22 | v23 & (v22 | v21));
v5 +=
v14 +
(verse_rotR32(v6, 18) XOR verse_rotR32(v6, 7) XOR v6 >> 3) +
(verse_rotR32(v3, 19) XOR verse_rotR32(v3, 17) XOR v3 >>
10);
v25 =
v19 + 0x766a0abbUL + v6 + (v18 XOR v24 & (v17 XOR v18)) +
(verse_rotR32(v24, 25) XOR verse_rotR32(v24, 11)
XOR verse_rotR32(v24, 6));
v23 += v25;
v19 = v25 + (verse_rotR32(v20, 22) XOR verse_rotR32(v20, 13)
XOR verse_rotR32(v20,
2)) +
(v20 & v21 | v22 & (v21 | v20));
v6 +=
v15 +
(verse_rotR32(v7, 18) XOR verse_rotR32(v7, 7) XOR v7 >> 3) +
(verse_rotR32(v4, 19) XOR verse_rotR32(v4, 17) XOR v4 >>
10);
v25 =
v18 + 0x81c2c92eUL + v7 + (v17 XOR v23 & (v24 XOR v17)) +
(verse_rotR32(v23, 25) XOR verse_rotR32(v23, 11)
XOR verse_rotR32(v23, 6));
v22 += v25;
v18 = v25 + (verse_rotR32(v19, 22) XOR verse_rotR32(v19, 13)
XOR verse_rotR32(v19,
2)) +
(v19 & v20 | v21 & (v20 | v19));
v7 +=
v16 +
(verse_rotR32(v8, 18) XOR verse_rotR32(v8, 7) XOR v8 >> 3) +
(verse_rotR32(v5, 19) XOR verse_rotR32(v5, 17) XOR v5 >>
10);
v25 =
v17 + 0x92722c85UL + v8 + (v24 XOR v22 & (v23 XOR v24)) +
(verse_rotR32(v22, 25) XOR verse_rotR32(v22, 11)
XOR verse_rotR32(v22, 6));
v21 += v25;
v17 = v25 + (verse_rotR32(v18, 22) XOR verse_rotR32(v18, 13)
XOR verse_rotR32(v18,
2)) +
(v18 & v19 | v20 & (v19 | v18));
v8 +=
v1 +
(verse_rotR32(v9, 18) XOR verse_rotR32(v9, 7) XOR v9 >> 3) +
(verse_rotR32(v6, 19) XOR verse_rotR32(v6, 17) XOR v6 >>
10);
v25 =
v24 + 0xa2bfe8a1UL + v9 + (v23 XOR v21 & (v22 XOR v23)) +
(verse_rotR32(v21, 25) XOR verse_rotR32(v21, 11)
XOR verse_rotR32(v21, 6));
v20 += v25;
v24 = v25 + (verse_rotR32(v17, 22) XOR verse_rotR32(v17, 13)
XOR verse_rotR32(v17,
2)) +
(v17 & v18 | v19 & (v18 | v17));
v9 +=
v2 +
(verse_rotR32(v10, 18) XOR verse_rotR32(v10, 7) XOR v10 >>
3) + (verse_rotR32(v7, 19) XOR verse_rotR32(v7,
17) XOR v7 >>
10);
v25 =
v23 + 0xa81a664bUL + v10 + (v22 XOR v20 & (v21 XOR v22)) +
(verse_rotR32(v20, 25) XOR verse_rotR32(v20, 11)
XOR verse_rotR32(v20, 6));
v19 += v25;
v23 = v25 + (verse_rotR32(v24, 22) XOR verse_rotR32(v24, 13)
XOR verse_rotR32(v24,
2)) +
(v24 & v17 | v18 & (v17 | v24));
v10 +=
v3 +
(verse_rotR32(v11, 18) XOR verse_rotR32(v11, 7) XOR v11 >>
3) + (verse_rotR32(v8, 19) XOR verse_rotR32(v8,
17) XOR v8 >>
10);
v25 =
v22 + 0xc24b8b70UL + v11 + (v21 XOR v19 & (v20 XOR v21)) +
(verse_rotR32(v19, 25) XOR verse_rotR32(v19, 11)
XOR verse_rotR32(v19, 6));
v18 += v25;
v22 = v25 + (verse_rotR32(v23, 22) XOR verse_rotR32(v23, 13)
XOR verse_rotR32(v23,
2)) +
(v23 & v24 | v17 & (v24 | v23));
v11 +=
v4 +
(verse_rotR32(v12, 18) XOR verse_rotR32(v12, 7) XOR v12 >>
3) + (verse_rotR32(v9, 19) XOR verse_rotR32(v9,
17) XOR v9 >>
10);
v25 =
v21 + 0xc76c51a3UL + v12 + (v20 XOR v18 & (v19 XOR v20)) +
(verse_rotR32(v18, 25) XOR verse_rotR32(v18, 11)
XOR verse_rotR32(v18, 6));
v17 += v25;
v21 = v25 + (verse_rotR32(v22, 22) XOR verse_rotR32(v22, 13)
XOR verse_rotR32(v22,
2)) +
(v22 & v23 | v24 & (v23 | v22));
v12 +=
v5 +
(verse_rotR32(v13, 18) XOR verse_rotR32(v13, 7) XOR v13 >>
3) + (verse_rotR32(v10, 19) XOR verse_rotR32(v10,
17) XOR v10 >>
10);
v25 =
v20 + 0xd192e819UL + v13 + (v19 XOR v17 & (v18 XOR v19)) +
(verse_rotR32(v17, 25) XOR verse_rotR32(v17, 11)
XOR verse_rotR32(v17, 6));
v24 += v25;
v20 = v25 + (verse_rotR32(v21, 22) XOR verse_rotR32(v21, 13)
XOR verse_rotR32(v21,
2)) +
(v21 & v22 | v23 & (v22 | v21));
v13 +=
v6 +
(verse_rotR32(v14, 18) XOR verse_rotR32(v14, 7) XOR v14 >>
3) + (verse_rotR32(v11, 19) XOR verse_rotR32(v11,
17) XOR v11 >>
10);
v25 =
v19 + 0xd6990624UL + v14 + (v18 XOR v24 & (v17 XOR v18)) +
(verse_rotR32(v24, 25) XOR verse_rotR32(v24, 11)
XOR verse_rotR32(v24, 6));
v23 += v25;
v19 = v25 + (verse_rotR32(v20, 22) XOR verse_rotR32(v20, 13)
XOR verse_rotR32(v20,
2)) +
(v20 & v21 | v22 & (v21 | v20));
v14 +=
v7 +
(verse_rotR32(v15, 18) XOR verse_rotR32(v15, 7) XOR v15 >>
3) + (verse_rotR32(v12, 19) XOR verse_rotR32(v12,
17) XOR v12 >>
10);
v25 =
v18 + 0xf40e3585UL + v15 + (v17 XOR v23 & (v24 XOR v17)) +
(verse_rotR32(v23, 25) XOR verse_rotR32(v23, 11)
XOR verse_rotR32(v23, 6));
v22 += v25;
v18 = v25 + (verse_rotR32(v19, 22) XOR verse_rotR32(v19, 13)
XOR verse_rotR32(v19,
2)) +
(v19 & v20 | v21 & (v20 | v19));
v15 +=
v8 +
(verse_rotR32(v16, 18) XOR verse_rotR32(v16, 7) XOR v16 >>
3) + (verse_rotR32(v13, 19) XOR verse_rotR32(v13,
17) XOR v13 >>
10);
v25 =
v17 + 0x106aa070UL + v16 + (v24 XOR v22 & (v23 XOR v24)) +
(verse_rotR32(v22, 25) XOR verse_rotR32(v22, 11)
XOR verse_rotR32(v22, 6));
v21 += v25;
v17 = v25 + (verse_rotR32(v18, 22) XOR verse_rotR32(v18, 13)
XOR verse_rotR32(v18,
2)) +
(v18 & v19 | v20 & (v19 | v18));
v16 +=
v9 +
(verse_rotR32(v1, 18) XOR verse_rotR32(v1, 7) XOR v1 >> 3) +
(verse_rotR32(v14, 19) XOR verse_rotR32(v14, 17) XOR v14 >>
10);
v25 =
v24 + 0x19a4c116UL + v1 + (v23 XOR v21 & (v22 XOR v23)) +
(verse_rotR32(v21, 25) XOR verse_rotR32(v21, 11)
XOR verse_rotR32(v21, 6));
v20 += v25;
v24 = v25 + (verse_rotR32(v17, 22) XOR verse_rotR32(v17, 13)
XOR verse_rotR32(v17,
2)) +
(v17 & v18 | v19 & (v18 | v17));
v25 =
v23 + 0x1e376c08UL + v2 + (v22 XOR v20 & (v21 XOR v22)) +
(verse_rotR32(v20, 25) XOR verse_rotR32(v20, 11)
XOR verse_rotR32(v20, 6));
v19 += v25;
v23 = v25 + (verse_rotR32(v24, 22) XOR verse_rotR32(v24, 13)
XOR verse_rotR32(v24,
2)) +
(v24 & v17 | v18 & (v17 | v24));
v25 =
v22 + 0x2748774cUL + v3 + (v21 XOR v19 & (v20 XOR v21)) +
(verse_rotR32(v19, 25) XOR verse_rotR32(v19, 11)
XOR verse_rotR32(v19, 6));
v18 += v25;
v22 = v25 + (verse_rotR32(v23, 22) XOR verse_rotR32(v23, 13)
XOR verse_rotR32(v23,
2)) +
(v23 & v24 | v17 & (v24 | v23));
v25 =
v21 + 0x34b0bcb5UL + v4 + (v20 XOR v18 & (v19 XOR v20)) +
(verse_rotR32(v18, 25) XOR verse_rotR32(v18, 11)
XOR verse_rotR32(v18, 6));
v17 += v25;
v21 = v25 + (verse_rotR32(v22, 22) XOR verse_rotR32(v22, 13)
XOR verse_rotR32(v22,
2)) +
(v22 & v23 | v24 & (v23 | v22));
v25 =
v20 + 0x391c0cb3UL + v5 + (v19 XOR v17 & (v18 XOR v19)) +
(verse_rotR32(v17, 25) XOR verse_rotR32(v17, 11)
XOR verse_rotR32(v17, 6));
v24 += v25;
v20 = v25 + (verse_rotR32(v21, 22) XOR verse_rotR32(v21, 13)
XOR verse_rotR32(v21,
2)) +
(v21 & v22 | v23 & (v22 | v21));
v25 =
v19 + 0x4ed8aa4aUL + v6 + (v18 XOR v24 & (v17 XOR v18)) +
(verse_rotR32(v24, 25) XOR verse_rotR32(v24, 11)
XOR verse_rotR32(v24, 6));
v23 += v25;
v19 = v25 + (verse_rotR32(v20, 22) XOR verse_rotR32(v20, 13)
XOR verse_rotR32(v20,
2)) +
(v20 & v21 | v22 & (v21 | v20));
v25 =
v18 + 0x5b9cca4fUL + v7 + (v17 XOR v23 & (v24 XOR v17)) +
(verse_rotR32(v23, 25) XOR verse_rotR32(v23, 11)
XOR verse_rotR32(v23, 6));
v22 += v25;
v18 = v25 + (verse_rotR32(v19, 22) XOR verse_rotR32(v19, 13)
XOR verse_rotR32(v19,
2)) +
(v19 & v20 | v21 & (v20 | v19));
v25 =
v17 + 0x682e6ff3UL + v8 + (v24 XOR v22 & (v23 XOR v24)) +
(verse_rotR32(v22, 25) XOR verse_rotR32(v22, 11)
XOR verse_rotR32(v22, 6));
v21 += v25;
v17 = v25 + (verse_rotR32(v18, 22) XOR verse_rotR32(v18, 13)
XOR verse_rotR32(v18,
2)) +
(v18 & v19 | v20 & (v19 | v18));
v25 =
v24 + 0x748f82eeUL + v9 + (v23 XOR v21 & (v22 XOR v23)) +
(verse_rotR32(v21, 25) XOR verse_rotR32(v21, 11)
XOR verse_rotR32(v21, 6));
v20 += v25;
v24 = v25 + (verse_rotR32(v17, 22) XOR verse_rotR32(v17, 13)
XOR verse_rotR32(v17,
2)) +
(v17 & v18 | v19 & (v18 | v17));
v25 =
v23 + 0x78a5636fUL + v10 + (v22 XOR v20 & (v21 XOR v22)) +
(verse_rotR32(v20, 25) XOR verse_rotR32(v20, 11)
XOR verse_rotR32(v20, 6));
v19 += v25;
v23 = v25 + (verse_rotR32(v24, 22) XOR verse_rotR32(v24, 13)
XOR verse_rotR32(v24,
2)) +
(v24 & v17 | v18 & (v17 | v24));
v25 =
v22 + 0x84c87814UL + v11 + (v21 XOR v19 & (v20 XOR v21)) +
(verse_rotR32(v19, 25) XOR verse_rotR32(v19, 11)
XOR verse_rotR32(v19, 6));
v18 += v25;
v22 = v25 + (verse_rotR32(v23, 22) XOR verse_rotR32(v23, 13)
XOR verse_rotR32(v23,
2)) +
(v23 & v24 | v17 & (v24 | v23));
v25 =
v21 + 0x8cc70208UL + v12 + (v20 XOR v18 & (v19 XOR v20)) +
(verse_rotR32(v18, 25) XOR verse_rotR32(v18, 11)
XOR verse_rotR32(v18, 6));
v17 += v25;
v21 = v25 + (verse_rotR32(v22, 22) XOR verse_rotR32(v22, 13)
XOR verse_rotR32(v22,
2)) +
(v22 & v23 | v24 & (v23 | v22));
v25 =
v20 + 0x90befffaUL + v13 + (v19 XOR v17 & (v18 XOR v19)) +
(verse_rotR32(v17, 25) XOR verse_rotR32(v17, 11)
XOR verse_rotR32(v17, 6));
v24 += v25;
v20 = v25 + (verse_rotR32(v21, 22) XOR verse_rotR32(v21, 13)
XOR verse_rotR32(v21,
2)) +
(v21 & v22 | v23 & (v22 | v21));
v25 =
v19 + 0xa4506cebUL + v14 + (v18 XOR v24 & (v17 XOR v18)) +
(verse_rotR32(v24, 25) XOR verse_rotR32(v24, 11)
XOR verse_rotR32(v24, 6));
v23 += v25;
v19 = v25 + (verse_rotR32(v20, 22) XOR verse_rotR32(v20, 13)
XOR verse_rotR32(v20,
2)) +
(v20 & v21 | v22 & (v21 | v20));
v25 =
v18 + 0xbef9a3f7UL + v15 + (v17 XOR v23 & (v24 XOR v17)) +
(verse_rotR32(v23, 25) XOR verse_rotR32(v23, 11)
XOR verse_rotR32(v23, 6));
v22 += v25;
v18 = v25 + (verse_rotR32(v19, 22) XOR verse_rotR32(v19, 13)
XOR verse_rotR32(v19,
2)) +
(v19 & v20 | v21 & (v20 | v19));
v25 =
v17 + 0xc67178f2UL + v16 + (v24 XOR v22 & (v23 XOR v24)) +
(verse_rotR32(v22, 25) XOR verse_rotR32(v22, 11)
XOR verse_rotR32(v22, 6));
v21 += v25;
v17 = v25 + (verse_rotR32(v18, 22) XOR verse_rotR32(v18, 13)
XOR verse_rotR32(v18,
2)) +
(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;
};
}