#include #include #define XOR ^ void verse_chacha20_c_portable(uint32_t(*bPtr)[16], uint64_t cTr, uint32_t v0[8], uint32_t v1[3], 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; v4 = *v2; while (cTr > 0) { v5 = 0x61707865UL; v6 = 0x3320646eUL; v7 = 0x79622d32UL; v8 = 0x6b206574UL; v9 = v0[0]; v10 = v0[1]; v11 = v0[2]; v12 = v0[3]; v13 = v0[4]; v14 = v0[5]; v15 = v0[6]; v16 = v0[7]; v17 = v4; v18 = v1[0]; v19 = v1[1]; v20 = v1[2]; v5 += v9; v17 ^= v5; v17 = verse_rotL32(v17, 16); v13 += v17; v9 ^= v13; v9 = verse_rotL32(v9, 12); v5 += v9; v17 ^= v5; v17 = verse_rotL32(v17, 8); v13 += v17; v9 ^= v13; v9 = verse_rotL32(v9, 7); v6 += v10; v18 ^= v6; v18 = verse_rotL32(v18, 16); v14 += v18; v10 ^= v14; v10 = verse_rotL32(v10, 12); v6 += v10; v18 ^= v6; v18 = verse_rotL32(v18, 8); v14 += v18; v10 ^= v14; v10 = verse_rotL32(v10, 7); v7 += v11; v19 ^= v7; v19 = verse_rotL32(v19, 16); v15 += v19; v11 ^= v15; v11 = verse_rotL32(v11, 12); v7 += v11; v19 ^= v7; v19 = verse_rotL32(v19, 8); v15 += v19; v11 ^= v15; v11 = verse_rotL32(v11, 7); v8 += v12; v20 ^= v8; v20 = verse_rotL32(v20, 16); v16 += v20; v12 ^= v16; v12 = verse_rotL32(v12, 12); v8 += v12; v20 ^= v8; v20 = verse_rotL32(v20, 8); v16 += v20; v12 ^= v16; v12 = verse_rotL32(v12, 7); v5 += v10; v20 ^= v5; v20 = verse_rotL32(v20, 16); v15 += v20; v10 ^= v15; v10 = verse_rotL32(v10, 12); v5 += v10; v20 ^= v5; v20 = verse_rotL32(v20, 8); v15 += v20; v10 ^= v15; v10 = verse_rotL32(v10, 7); v6 += v11; v17 ^= v6; v17 = verse_rotL32(v17, 16); v16 += v17; v11 ^= v16; v11 = verse_rotL32(v11, 12); v6 += v11; v17 ^= v6; v17 = verse_rotL32(v17, 8); v16 += v17; v11 ^= v16; v11 = verse_rotL32(v11, 7); v7 += v12; v18 ^= v7; v18 = verse_rotL32(v18, 16); v13 += v18; v12 ^= v13; v12 = verse_rotL32(v12, 12); v7 += v12; v18 ^= v7; v18 = verse_rotL32(v18, 8); v13 += v18; v12 ^= v13; v12 = verse_rotL32(v12, 7); v8 += v9; v19 ^= v8; v19 = verse_rotL32(v19, 16); v14 += v19; v9 ^= v14; v9 = verse_rotL32(v9, 12); v8 += v9; v19 ^= v8; v19 = verse_rotL32(v19, 8); v14 += v19; v9 ^= v14; v9 = verse_rotL32(v9, 7); v5 += v9; v17 ^= v5; v17 = verse_rotL32(v17, 16); v13 += v17; v9 ^= v13; v9 = verse_rotL32(v9, 12); v5 += v9; v17 ^= v5; v17 = verse_rotL32(v17, 8); v13 += v17; v9 ^= v13; v9 = verse_rotL32(v9, 7); v6 += v10; v18 ^= v6; v18 = verse_rotL32(v18, 16); v14 += v18; v10 ^= v14; v10 = verse_rotL32(v10, 12); v6 += v10; v18 ^= v6; v18 = verse_rotL32(v18, 8); v14 += v18; v10 ^= v14; v10 = verse_rotL32(v10, 7); v7 += v11; v19 ^= v7; v19 = verse_rotL32(v19, 16); v15 += v19; v11 ^= v15; v11 = verse_rotL32(v11, 12); v7 += v11; v19 ^= v7; v19 = verse_rotL32(v19, 8); v15 += v19; v11 ^= v15; v11 = verse_rotL32(v11, 7); v8 += v12; v20 ^= v8; v20 = verse_rotL32(v20, 16); v16 += v20; v12 ^= v16; v12 = verse_rotL32(v12, 12); v8 += v12; v20 ^= v8; v20 = verse_rotL32(v20, 8); v16 += v20; v12 ^= v16; v12 = verse_rotL32(v12, 7); v5 += v10; v20 ^= v5; v20 = verse_rotL32(v20, 16); v15 += v20; v10 ^= v15; v10 = verse_rotL32(v10, 12); v5 += v10; v20 ^= v5; v20 = verse_rotL32(v20, 8); v15 += v20; v10 ^= v15; v10 = verse_rotL32(v10, 7); v6 += v11; v17 ^= v6; v17 = verse_rotL32(v17, 16); v16 += v17; v11 ^= v16; v11 = verse_rotL32(v11, 12); v6 += v11; v17 ^= v6; v17 = verse_rotL32(v17, 8); v16 += v17; v11 ^= v16; v11 = verse_rotL32(v11, 7); v7 += v12; v18 ^= v7; v18 = verse_rotL32(v18, 16); v13 += v18; v12 ^= v13; v12 = verse_rotL32(v12, 12); v7 += v12; v18 ^= v7; v18 = verse_rotL32(v18, 8); v13 += v18; v12 ^= v13; v12 = verse_rotL32(v12, 7); v8 += v9; v19 ^= v8; v19 = verse_rotL32(v19, 16); v14 += v19; v9 ^= v14; v9 = verse_rotL32(v9, 12); v8 += v9; v19 ^= v8; v19 = verse_rotL32(v19, 8); v14 += v19; v9 ^= v14; v9 = verse_rotL32(v9, 7); v5 += v9; v17 ^= v5; v17 = verse_rotL32(v17, 16); v13 += v17; v9 ^= v13; v9 = verse_rotL32(v9, 12); v5 += v9; v17 ^= v5; v17 = verse_rotL32(v17, 8); v13 += v17; v9 ^= v13; v9 = verse_rotL32(v9, 7); v6 += v10; v18 ^= v6; v18 = verse_rotL32(v18, 16); v14 += v18; v10 ^= v14; v10 = verse_rotL32(v10, 12); v6 += v10; v18 ^= v6; v18 = verse_rotL32(v18, 8); v14 += v18; v10 ^= v14; v10 = verse_rotL32(v10, 7); v7 += v11; v19 ^= v7; v19 = verse_rotL32(v19, 16); v15 += v19; v11 ^= v15; v11 = verse_rotL32(v11, 12); v7 += v11; v19 ^= v7; v19 = verse_rotL32(v19, 8); v15 += v19; v11 ^= v15; v11 = verse_rotL32(v11, 7); v8 += v12; v20 ^= v8; v20 = verse_rotL32(v20, 16); v16 += v20; v12 ^= v16; v12 = verse_rotL32(v12, 12); v8 += v12; v20 ^= v8; v20 = verse_rotL32(v20, 8); v16 += v20; v12 ^= v16; v12 = verse_rotL32(v12, 7); v5 += v10; v20 ^= v5; v20 = verse_rotL32(v20, 16); v15 += v20; v10 ^= v15; v10 = verse_rotL32(v10, 12); v5 += v10; v20 ^= v5; v20 = verse_rotL32(v20, 8); v15 += v20; v10 ^= v15; v10 = verse_rotL32(v10, 7); v6 += v11; v17 ^= v6; v17 = verse_rotL32(v17, 16); v16 += v17; v11 ^= v16; v11 = verse_rotL32(v11, 12); v6 += v11; v17 ^= v6; v17 = verse_rotL32(v17, 8); v16 += v17; v11 ^= v16; v11 = verse_rotL32(v11, 7); v7 += v12; v18 ^= v7; v18 = verse_rotL32(v18, 16); v13 += v18; v12 ^= v13; v12 = verse_rotL32(v12, 12); v7 += v12; v18 ^= v7; v18 = verse_rotL32(v18, 8); v13 += v18; v12 ^= v13; v12 = verse_rotL32(v12, 7); v8 += v9; v19 ^= v8; v19 = verse_rotL32(v19, 16); v14 += v19; v9 ^= v14; v9 = verse_rotL32(v9, 12); v8 += v9; v19 ^= v8; v19 = verse_rotL32(v19, 8); v14 += v19; v9 ^= v14; v9 = verse_rotL32(v9, 7); v5 += v9; v17 ^= v5; v17 = verse_rotL32(v17, 16); v13 += v17; v9 ^= v13; v9 = verse_rotL32(v9, 12); v5 += v9; v17 ^= v5; v17 = verse_rotL32(v17, 8); v13 += v17; v9 ^= v13; v9 = verse_rotL32(v9, 7); v6 += v10; v18 ^= v6; v18 = verse_rotL32(v18, 16); v14 += v18; v10 ^= v14; v10 = verse_rotL32(v10, 12); v6 += v10; v18 ^= v6; v18 = verse_rotL32(v18, 8); v14 += v18; v10 ^= v14; v10 = verse_rotL32(v10, 7); v7 += v11; v19 ^= v7; v19 = verse_rotL32(v19, 16); v15 += v19; v11 ^= v15; v11 = verse_rotL32(v11, 12); v7 += v11; v19 ^= v7; v19 = verse_rotL32(v19, 8); v15 += v19; v11 ^= v15; v11 = verse_rotL32(v11, 7); v8 += v12; v20 ^= v8; v20 = verse_rotL32(v20, 16); v16 += v20; v12 ^= v16; v12 = verse_rotL32(v12, 12); v8 += v12; v20 ^= v8; v20 = verse_rotL32(v20, 8); v16 += v20; v12 ^= v16; v12 = verse_rotL32(v12, 7); v5 += v10; v20 ^= v5; v20 = verse_rotL32(v20, 16); v15 += v20; v10 ^= v15; v10 = verse_rotL32(v10, 12); v5 += v10; v20 ^= v5; v20 = verse_rotL32(v20, 8); v15 += v20; v10 ^= v15; v10 = verse_rotL32(v10, 7); v6 += v11; v17 ^= v6; v17 = verse_rotL32(v17, 16); v16 += v17; v11 ^= v16; v11 = verse_rotL32(v11, 12); v6 += v11; v17 ^= v6; v17 = verse_rotL32(v17, 8); v16 += v17; v11 ^= v16; v11 = verse_rotL32(v11, 7); v7 += v12; v18 ^= v7; v18 = verse_rotL32(v18, 16); v13 += v18; v12 ^= v13; v12 = verse_rotL32(v12, 12); v7 += v12; v18 ^= v7; v18 = verse_rotL32(v18, 8); v13 += v18; v12 ^= v13; v12 = verse_rotL32(v12, 7); v8 += v9; v19 ^= v8; v19 = verse_rotL32(v19, 16); v14 += v19; v9 ^= v14; v9 = verse_rotL32(v9, 12); v8 += v9; v19 ^= v8; v19 = verse_rotL32(v19, 8); v14 += v19; v9 ^= v14; v9 = verse_rotL32(v9, 7); v5 += v9; v17 ^= v5; v17 = verse_rotL32(v17, 16); v13 += v17; v9 ^= v13; v9 = verse_rotL32(v9, 12); v5 += v9; v17 ^= v5; v17 = verse_rotL32(v17, 8); v13 += v17; v9 ^= v13; v9 = verse_rotL32(v9, 7); v6 += v10; v18 ^= v6; v18 = verse_rotL32(v18, 16); v14 += v18; v10 ^= v14; v10 = verse_rotL32(v10, 12); v6 += v10; v18 ^= v6; v18 = verse_rotL32(v18, 8); v14 += v18; v10 ^= v14; v10 = verse_rotL32(v10, 7); v7 += v11; v19 ^= v7; v19 = verse_rotL32(v19, 16); v15 += v19; v11 ^= v15; v11 = verse_rotL32(v11, 12); v7 += v11; v19 ^= v7; v19 = verse_rotL32(v19, 8); v15 += v19; v11 ^= v15; v11 = verse_rotL32(v11, 7); v8 += v12; v20 ^= v8; v20 = verse_rotL32(v20, 16); v16 += v20; v12 ^= v16; v12 = verse_rotL32(v12, 12); v8 += v12; v20 ^= v8; v20 = verse_rotL32(v20, 8); v16 += v20; v12 ^= v16; v12 = verse_rotL32(v12, 7); v5 += v10; v20 ^= v5; v20 = verse_rotL32(v20, 16); v15 += v20; v10 ^= v15; v10 = verse_rotL32(v10, 12); v5 += v10; v20 ^= v5; v20 = verse_rotL32(v20, 8); v15 += v20; v10 ^= v15; v10 = verse_rotL32(v10, 7); v6 += v11; v17 ^= v6; v17 = verse_rotL32(v17, 16); v16 += v17; v11 ^= v16; v11 = verse_rotL32(v11, 12); v6 += v11; v17 ^= v6; v17 = verse_rotL32(v17, 8); v16 += v17; v11 ^= v16; v11 = verse_rotL32(v11, 7); v7 += v12; v18 ^= v7; v18 = verse_rotL32(v18, 16); v13 += v18; v12 ^= v13; v12 = verse_rotL32(v12, 12); v7 += v12; v18 ^= v7; v18 = verse_rotL32(v18, 8); v13 += v18; v12 ^= v13; v12 = verse_rotL32(v12, 7); v8 += v9; v19 ^= v8; v19 = verse_rotL32(v19, 16); v14 += v19; v9 ^= v14; v9 = verse_rotL32(v9, 12); v8 += v9; v19 ^= v8; v19 = verse_rotL32(v19, 8); v14 += v19; v9 ^= v14; v9 = verse_rotL32(v9, 7); v5 += v9; v17 ^= v5; v17 = verse_rotL32(v17, 16); v13 += v17; v9 ^= v13; v9 = verse_rotL32(v9, 12); v5 += v9; v17 ^= v5; v17 = verse_rotL32(v17, 8); v13 += v17; v9 ^= v13; v9 = verse_rotL32(v9, 7); v6 += v10; v18 ^= v6; v18 = verse_rotL32(v18, 16); v14 += v18; v10 ^= v14; v10 = verse_rotL32(v10, 12); v6 += v10; v18 ^= v6; v18 = verse_rotL32(v18, 8); v14 += v18; v10 ^= v14; v10 = verse_rotL32(v10, 7); v7 += v11; v19 ^= v7; v19 = verse_rotL32(v19, 16); v15 += v19; v11 ^= v15; v11 = verse_rotL32(v11, 12); v7 += v11; v19 ^= v7; v19 = verse_rotL32(v19, 8); v15 += v19; v11 ^= v15; v11 = verse_rotL32(v11, 7); v8 += v12; v20 ^= v8; v20 = verse_rotL32(v20, 16); v16 += v20; v12 ^= v16; v12 = verse_rotL32(v12, 12); v8 += v12; v20 ^= v8; v20 = verse_rotL32(v20, 8); v16 += v20; v12 ^= v16; v12 = verse_rotL32(v12, 7); v5 += v10; v20 ^= v5; v20 = verse_rotL32(v20, 16); v15 += v20; v10 ^= v15; v10 = verse_rotL32(v10, 12); v5 += v10; v20 ^= v5; v20 = verse_rotL32(v20, 8); v15 += v20; v10 ^= v15; v10 = verse_rotL32(v10, 7); v6 += v11; v17 ^= v6; v17 = verse_rotL32(v17, 16); v16 += v17; v11 ^= v16; v11 = verse_rotL32(v11, 12); v6 += v11; v17 ^= v6; v17 = verse_rotL32(v17, 8); v16 += v17; v11 ^= v16; v11 = verse_rotL32(v11, 7); v7 += v12; v18 ^= v7; v18 = verse_rotL32(v18, 16); v13 += v18; v12 ^= v13; v12 = verse_rotL32(v12, 12); v7 += v12; v18 ^= v7; v18 = verse_rotL32(v18, 8); v13 += v18; v12 ^= v13; v12 = verse_rotL32(v12, 7); v8 += v9; v19 ^= v8; v19 = verse_rotL32(v19, 16); v14 += v19; v9 ^= v14; v9 = verse_rotL32(v9, 12); v8 += v9; v19 ^= v8; v19 = verse_rotL32(v19, 8); v14 += v19; v9 ^= v14; v9 = verse_rotL32(v9, 7); v5 += v9; v17 ^= v5; v17 = verse_rotL32(v17, 16); v13 += v17; v9 ^= v13; v9 = verse_rotL32(v9, 12); v5 += v9; v17 ^= v5; v17 = verse_rotL32(v17, 8); v13 += v17; v9 ^= v13; v9 = verse_rotL32(v9, 7); v6 += v10; v18 ^= v6; v18 = verse_rotL32(v18, 16); v14 += v18; v10 ^= v14; v10 = verse_rotL32(v10, 12); v6 += v10; v18 ^= v6; v18 = verse_rotL32(v18, 8); v14 += v18; v10 ^= v14; v10 = verse_rotL32(v10, 7); v7 += v11; v19 ^= v7; v19 = verse_rotL32(v19, 16); v15 += v19; v11 ^= v15; v11 = verse_rotL32(v11, 12); v7 += v11; v19 ^= v7; v19 = verse_rotL32(v19, 8); v15 += v19; v11 ^= v15; v11 = verse_rotL32(v11, 7); v8 += v12; v20 ^= v8; v20 = verse_rotL32(v20, 16); v16 += v20; v12 ^= v16; v12 = verse_rotL32(v12, 12); v8 += v12; v20 ^= v8; v20 = verse_rotL32(v20, 8); v16 += v20; v12 ^= v16; v12 = verse_rotL32(v12, 7); v5 += v10; v20 ^= v5; v20 = verse_rotL32(v20, 16); v15 += v20; v10 ^= v15; v10 = verse_rotL32(v10, 12); v5 += v10; v20 ^= v5; v20 = verse_rotL32(v20, 8); v15 += v20; v10 ^= v15; v10 = verse_rotL32(v10, 7); v6 += v11; v17 ^= v6; v17 = verse_rotL32(v17, 16); v16 += v17; v11 ^= v16; v11 = verse_rotL32(v11, 12); v6 += v11; v17 ^= v6; v17 = verse_rotL32(v17, 8); v16 += v17; v11 ^= v16; v11 = verse_rotL32(v11, 7); v7 += v12; v18 ^= v7; v18 = verse_rotL32(v18, 16); v13 += v18; v12 ^= v13; v12 = verse_rotL32(v12, 12); v7 += v12; v18 ^= v7; v18 = verse_rotL32(v18, 8); v13 += v18; v12 ^= v13; v12 = verse_rotL32(v12, 7); v8 += v9; v19 ^= v8; v19 = verse_rotL32(v19, 16); v14 += v19; v9 ^= v14; v9 = verse_rotL32(v9, 12); v8 += v9; v19 ^= v8; v19 = verse_rotL32(v19, 8); v14 += v19; v9 ^= v14; v9 = verse_rotL32(v9, 7); v5 += v9; v17 ^= v5; v17 = verse_rotL32(v17, 16); v13 += v17; v9 ^= v13; v9 = verse_rotL32(v9, 12); v5 += v9; v17 ^= v5; v17 = verse_rotL32(v17, 8); v13 += v17; v9 ^= v13; v9 = verse_rotL32(v9, 7); v6 += v10; v18 ^= v6; v18 = verse_rotL32(v18, 16); v14 += v18; v10 ^= v14; v10 = verse_rotL32(v10, 12); v6 += v10; v18 ^= v6; v18 = verse_rotL32(v18, 8); v14 += v18; v10 ^= v14; v10 = verse_rotL32(v10, 7); v7 += v11; v19 ^= v7; v19 = verse_rotL32(v19, 16); v15 += v19; v11 ^= v15; v11 = verse_rotL32(v11, 12); v7 += v11; v19 ^= v7; v19 = verse_rotL32(v19, 8); v15 += v19; v11 ^= v15; v11 = verse_rotL32(v11, 7); v8 += v12; v20 ^= v8; v20 = verse_rotL32(v20, 16); v16 += v20; v12 ^= v16; v12 = verse_rotL32(v12, 12); v8 += v12; v20 ^= v8; v20 = verse_rotL32(v20, 8); v16 += v20; v12 ^= v16; v12 = verse_rotL32(v12, 7); v5 += v10; v20 ^= v5; v20 = verse_rotL32(v20, 16); v15 += v20; v10 ^= v15; v10 = verse_rotL32(v10, 12); v5 += v10; v20 ^= v5; v20 = verse_rotL32(v20, 8); v15 += v20; v10 ^= v15; v10 = verse_rotL32(v10, 7); v6 += v11; v17 ^= v6; v17 = verse_rotL32(v17, 16); v16 += v17; v11 ^= v16; v11 = verse_rotL32(v11, 12); v6 += v11; v17 ^= v6; v17 = verse_rotL32(v17, 8); v16 += v17; v11 ^= v16; v11 = verse_rotL32(v11, 7); v7 += v12; v18 ^= v7; v18 = verse_rotL32(v18, 16); v13 += v18; v12 ^= v13; v12 = verse_rotL32(v12, 12); v7 += v12; v18 ^= v7; v18 = verse_rotL32(v18, 8); v13 += v18; v12 ^= v13; v12 = verse_rotL32(v12, 7); v8 += v9; v19 ^= v8; v19 = verse_rotL32(v19, 16); v14 += v19; v9 ^= v14; v9 = verse_rotL32(v9, 12); v8 += v9; v19 ^= v8; v19 = verse_rotL32(v19, 8); v14 += v19; v9 ^= v14; v9 = verse_rotL32(v9, 7); v5 += v9; v17 ^= v5; v17 = verse_rotL32(v17, 16); v13 += v17; v9 ^= v13; v9 = verse_rotL32(v9, 12); v5 += v9; v17 ^= v5; v17 = verse_rotL32(v17, 8); v13 += v17; v9 ^= v13; v9 = verse_rotL32(v9, 7); v6 += v10; v18 ^= v6; v18 = verse_rotL32(v18, 16); v14 += v18; v10 ^= v14; v10 = verse_rotL32(v10, 12); v6 += v10; v18 ^= v6; v18 = verse_rotL32(v18, 8); v14 += v18; v10 ^= v14; v10 = verse_rotL32(v10, 7); v7 += v11; v19 ^= v7; v19 = verse_rotL32(v19, 16); v15 += v19; v11 ^= v15; v11 = verse_rotL32(v11, 12); v7 += v11; v19 ^= v7; v19 = verse_rotL32(v19, 8); v15 += v19; v11 ^= v15; v11 = verse_rotL32(v11, 7); v8 += v12; v20 ^= v8; v20 = verse_rotL32(v20, 16); v16 += v20; v12 ^= v16; v12 = verse_rotL32(v12, 12); v8 += v12; v20 ^= v8; v20 = verse_rotL32(v20, 8); v16 += v20; v12 ^= v16; v12 = verse_rotL32(v12, 7); v5 += v10; v20 ^= v5; v20 = verse_rotL32(v20, 16); v15 += v20; v10 ^= v15; v10 = verse_rotL32(v10, 12); v5 += v10; v20 ^= v5; v20 = verse_rotL32(v20, 8); v15 += v20; v10 ^= v15; v10 = verse_rotL32(v10, 7); v6 += v11; v17 ^= v6; v17 = verse_rotL32(v17, 16); v16 += v17; v11 ^= v16; v11 = verse_rotL32(v11, 12); v6 += v11; v17 ^= v6; v17 = verse_rotL32(v17, 8); v16 += v17; v11 ^= v16; v11 = verse_rotL32(v11, 7); v7 += v12; v18 ^= v7; v18 = verse_rotL32(v18, 16); v13 += v18; v12 ^= v13; v12 = verse_rotL32(v12, 12); v7 += v12; v18 ^= v7; v18 = verse_rotL32(v18, 8); v13 += v18; v12 ^= v13; v12 = verse_rotL32(v12, 7); v8 += v9; v19 ^= v8; v19 = verse_rotL32(v19, 16); v14 += v19; v9 ^= v14; v9 = verse_rotL32(v9, 12); v8 += v9; v19 ^= v8; v19 = verse_rotL32(v19, 8); v14 += v19; v9 ^= v14; v9 = verse_rotL32(v9, 7); v5 += v9; v17 ^= v5; v17 = verse_rotL32(v17, 16); v13 += v17; v9 ^= v13; v9 = verse_rotL32(v9, 12); v5 += v9; v17 ^= v5; v17 = verse_rotL32(v17, 8); v13 += v17; v9 ^= v13; v9 = verse_rotL32(v9, 7); v6 += v10; v18 ^= v6; v18 = verse_rotL32(v18, 16); v14 += v18; v10 ^= v14; v10 = verse_rotL32(v10, 12); v6 += v10; v18 ^= v6; v18 = verse_rotL32(v18, 8); v14 += v18; v10 ^= v14; v10 = verse_rotL32(v10, 7); v7 += v11; v19 ^= v7; v19 = verse_rotL32(v19, 16); v15 += v19; v11 ^= v15; v11 = verse_rotL32(v11, 12); v7 += v11; v19 ^= v7; v19 = verse_rotL32(v19, 8); v15 += v19; v11 ^= v15; v11 = verse_rotL32(v11, 7); v8 += v12; v20 ^= v8; v20 = verse_rotL32(v20, 16); v16 += v20; v12 ^= v16; v12 = verse_rotL32(v12, 12); v8 += v12; v20 ^= v8; v20 = verse_rotL32(v20, 8); v16 += v20; v12 ^= v16; v12 = verse_rotL32(v12, 7); v5 += v10; v20 ^= v5; v20 = verse_rotL32(v20, 16); v15 += v20; v10 ^= v15; v10 = verse_rotL32(v10, 12); v5 += v10; v20 ^= v5; v20 = verse_rotL32(v20, 8); v15 += v20; v10 ^= v15; v10 = verse_rotL32(v10, 7); v6 += v11; v17 ^= v6; v17 = verse_rotL32(v17, 16); v16 += v17; v11 ^= v16; v11 = verse_rotL32(v11, 12); v6 += v11; v17 ^= v6; v17 = verse_rotL32(v17, 8); v16 += v17; v11 ^= v16; v11 = verse_rotL32(v11, 7); v7 += v12; v18 ^= v7; v18 = verse_rotL32(v18, 16); v13 += v18; v12 ^= v13; v12 = verse_rotL32(v12, 12); v7 += v12; v18 ^= v7; v18 = verse_rotL32(v18, 8); v13 += v18; v12 ^= v13; v12 = verse_rotL32(v12, 7); v8 += v9; v19 ^= v8; v19 = verse_rotL32(v19, 16); v14 += v19; v9 ^= v14; v9 = verse_rotL32(v9, 12); v8 += v9; v19 ^= v8; v19 = verse_rotL32(v19, 8); v14 += v19; v9 ^= v14; v9 = verse_rotL32(v9, 7); v5 += 0x61707865UL; v6 += 0x3320646eUL; v7 += 0x79622d32UL; v8 += 0x6b206574UL; v9 += v0[0]; v10 += v0[1]; v11 += v0[2]; v12 += v0[3]; v13 += v0[4]; v14 += v0[5]; v15 += v0[6]; v16 += v0[7]; v17 += v4; v18 += v1[0]; v19 += v1[1]; v20 += v1[2]; v3 = verse_from_le32((*bPtr)[0]); v3 ^= v5; (*bPtr)[0] = verse_to_le32(v3); v3 = verse_from_le32((*bPtr)[1]); v3 ^= v6; (*bPtr)[1] = verse_to_le32(v3); v3 = verse_from_le32((*bPtr)[2]); v3 ^= v7; (*bPtr)[2] = verse_to_le32(v3); v3 = verse_from_le32((*bPtr)[3]); v3 ^= v8; (*bPtr)[3] = verse_to_le32(v3); v3 = verse_from_le32((*bPtr)[4]); v3 ^= v9; (*bPtr)[4] = verse_to_le32(v3); v3 = verse_from_le32((*bPtr)[5]); v3 ^= v10; (*bPtr)[5] = verse_to_le32(v3); v3 = verse_from_le32((*bPtr)[6]); v3 ^= v11; (*bPtr)[6] = verse_to_le32(v3); v3 = verse_from_le32((*bPtr)[7]); v3 ^= v12; (*bPtr)[7] = verse_to_le32(v3); v3 = verse_from_le32((*bPtr)[8]); v3 ^= v13; (*bPtr)[8] = verse_to_le32(v3); v3 = verse_from_le32((*bPtr)[9]); v3 ^= v14; (*bPtr)[9] = verse_to_le32(v3); v3 = verse_from_le32((*bPtr)[10]); v3 ^= v15; (*bPtr)[10] = verse_to_le32(v3); v3 = verse_from_le32((*bPtr)[11]); v3 ^= v16; (*bPtr)[11] = verse_to_le32(v3); v3 = verse_from_le32((*bPtr)[12]); v3 ^= v17; (*bPtr)[12] = verse_to_le32(v3); v3 = verse_from_le32((*bPtr)[13]); v3 ^= v18; (*bPtr)[13] = verse_to_le32(v3); v3 = verse_from_le32((*bPtr)[14]); v3 ^= v19; (*bPtr)[14] = verse_to_le32(v3); v3 = verse_from_le32((*bPtr)[15]); v3 ^= v20; (*bPtr)[15] = verse_to_le32(v3); v4 += 0x00000001UL; ++bPtr; --cTr; }; v2[0] = v4; } void verse_hchacha20_c_portable(uint32_t v0[8], uint32_t v1, uint32_t v2, uint32_t v3, 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; v5 = 0x61707865UL; v6 = 0x3320646eUL; v7 = 0x79622d32UL; v8 = 0x6b206574UL; v9 = v0[0]; v10 = v0[1]; v11 = v0[2]; v12 = v0[3]; v13 = v0[4]; v14 = v0[5]; v15 = v0[6]; v16 = v0[7]; v17 = v1; v18 = v2; v19 = v3; v20 = v4; v5 += v9; v17 ^= v5; v17 = verse_rotL32(v17, 16); v13 += v17; v9 ^= v13; v9 = verse_rotL32(v9, 12); v5 += v9; v17 ^= v5; v17 = verse_rotL32(v17, 8); v13 += v17; v9 ^= v13; v9 = verse_rotL32(v9, 7); v6 += v10; v18 ^= v6; v18 = verse_rotL32(v18, 16); v14 += v18; v10 ^= v14; v10 = verse_rotL32(v10, 12); v6 += v10; v18 ^= v6; v18 = verse_rotL32(v18, 8); v14 += v18; v10 ^= v14; v10 = verse_rotL32(v10, 7); v7 += v11; v19 ^= v7; v19 = verse_rotL32(v19, 16); v15 += v19; v11 ^= v15; v11 = verse_rotL32(v11, 12); v7 += v11; v19 ^= v7; v19 = verse_rotL32(v19, 8); v15 += v19; v11 ^= v15; v11 = verse_rotL32(v11, 7); v8 += v12; v20 ^= v8; v20 = verse_rotL32(v20, 16); v16 += v20; v12 ^= v16; v12 = verse_rotL32(v12, 12); v8 += v12; v20 ^= v8; v20 = verse_rotL32(v20, 8); v16 += v20; v12 ^= v16; v12 = verse_rotL32(v12, 7); v5 += v10; v20 ^= v5; v20 = verse_rotL32(v20, 16); v15 += v20; v10 ^= v15; v10 = verse_rotL32(v10, 12); v5 += v10; v20 ^= v5; v20 = verse_rotL32(v20, 8); v15 += v20; v10 ^= v15; v10 = verse_rotL32(v10, 7); v6 += v11; v17 ^= v6; v17 = verse_rotL32(v17, 16); v16 += v17; v11 ^= v16; v11 = verse_rotL32(v11, 12); v6 += v11; v17 ^= v6; v17 = verse_rotL32(v17, 8); v16 += v17; v11 ^= v16; v11 = verse_rotL32(v11, 7); v7 += v12; v18 ^= v7; v18 = verse_rotL32(v18, 16); v13 += v18; v12 ^= v13; v12 = verse_rotL32(v12, 12); v7 += v12; v18 ^= v7; v18 = verse_rotL32(v18, 8); v13 += v18; v12 ^= v13; v12 = verse_rotL32(v12, 7); v8 += v9; v19 ^= v8; v19 = verse_rotL32(v19, 16); v14 += v19; v9 ^= v14; v9 = verse_rotL32(v9, 12); v8 += v9; v19 ^= v8; v19 = verse_rotL32(v19, 8); v14 += v19; v9 ^= v14; v9 = verse_rotL32(v9, 7); v5 += v9; v17 ^= v5; v17 = verse_rotL32(v17, 16); v13 += v17; v9 ^= v13; v9 = verse_rotL32(v9, 12); v5 += v9; v17 ^= v5; v17 = verse_rotL32(v17, 8); v13 += v17; v9 ^= v13; v9 = verse_rotL32(v9, 7); v6 += v10; v18 ^= v6; v18 = verse_rotL32(v18, 16); v14 += v18; v10 ^= v14; v10 = verse_rotL32(v10, 12); v6 += v10; v18 ^= v6; v18 = verse_rotL32(v18, 8); v14 += v18; v10 ^= v14; v10 = verse_rotL32(v10, 7); v7 += v11; v19 ^= v7; v19 = verse_rotL32(v19, 16); v15 += v19; v11 ^= v15; v11 = verse_rotL32(v11, 12); v7 += v11; v19 ^= v7; v19 = verse_rotL32(v19, 8); v15 += v19; v11 ^= v15; v11 = verse_rotL32(v11, 7); v8 += v12; v20 ^= v8; v20 = verse_rotL32(v20, 16); v16 += v20; v12 ^= v16; v12 = verse_rotL32(v12, 12); v8 += v12; v20 ^= v8; v20 = verse_rotL32(v20, 8); v16 += v20; v12 ^= v16; v12 = verse_rotL32(v12, 7); v5 += v10; v20 ^= v5; v20 = verse_rotL32(v20, 16); v15 += v20; v10 ^= v15; v10 = verse_rotL32(v10, 12); v5 += v10; v20 ^= v5; v20 = verse_rotL32(v20, 8); v15 += v20; v10 ^= v15; v10 = verse_rotL32(v10, 7); v6 += v11; v17 ^= v6; v17 = verse_rotL32(v17, 16); v16 += v17; v11 ^= v16; v11 = verse_rotL32(v11, 12); v6 += v11; v17 ^= v6; v17 = verse_rotL32(v17, 8); v16 += v17; v11 ^= v16; v11 = verse_rotL32(v11, 7); v7 += v12; v18 ^= v7; v18 = verse_rotL32(v18, 16); v13 += v18; v12 ^= v13; v12 = verse_rotL32(v12, 12); v7 += v12; v18 ^= v7; v18 = verse_rotL32(v18, 8); v13 += v18; v12 ^= v13; v12 = verse_rotL32(v12, 7); v8 += v9; v19 ^= v8; v19 = verse_rotL32(v19, 16); v14 += v19; v9 ^= v14; v9 = verse_rotL32(v9, 12); v8 += v9; v19 ^= v8; v19 = verse_rotL32(v19, 8); v14 += v19; v9 ^= v14; v9 = verse_rotL32(v9, 7); v5 += v9; v17 ^= v5; v17 = verse_rotL32(v17, 16); v13 += v17; v9 ^= v13; v9 = verse_rotL32(v9, 12); v5 += v9; v17 ^= v5; v17 = verse_rotL32(v17, 8); v13 += v17; v9 ^= v13; v9 = verse_rotL32(v9, 7); v6 += v10; v18 ^= v6; v18 = verse_rotL32(v18, 16); v14 += v18; v10 ^= v14; v10 = verse_rotL32(v10, 12); v6 += v10; v18 ^= v6; v18 = verse_rotL32(v18, 8); v14 += v18; v10 ^= v14; v10 = verse_rotL32(v10, 7); v7 += v11; v19 ^= v7; v19 = verse_rotL32(v19, 16); v15 += v19; v11 ^= v15; v11 = verse_rotL32(v11, 12); v7 += v11; v19 ^= v7; v19 = verse_rotL32(v19, 8); v15 += v19; v11 ^= v15; v11 = verse_rotL32(v11, 7); v8 += v12; v20 ^= v8; v20 = verse_rotL32(v20, 16); v16 += v20; v12 ^= v16; v12 = verse_rotL32(v12, 12); v8 += v12; v20 ^= v8; v20 = verse_rotL32(v20, 8); v16 += v20; v12 ^= v16; v12 = verse_rotL32(v12, 7); v5 += v10; v20 ^= v5; v20 = verse_rotL32(v20, 16); v15 += v20; v10 ^= v15; v10 = verse_rotL32(v10, 12); v5 += v10; v20 ^= v5; v20 = verse_rotL32(v20, 8); v15 += v20; v10 ^= v15; v10 = verse_rotL32(v10, 7); v6 += v11; v17 ^= v6; v17 = verse_rotL32(v17, 16); v16 += v17; v11 ^= v16; v11 = verse_rotL32(v11, 12); v6 += v11; v17 ^= v6; v17 = verse_rotL32(v17, 8); v16 += v17; v11 ^= v16; v11 = verse_rotL32(v11, 7); v7 += v12; v18 ^= v7; v18 = verse_rotL32(v18, 16); v13 += v18; v12 ^= v13; v12 = verse_rotL32(v12, 12); v7 += v12; v18 ^= v7; v18 = verse_rotL32(v18, 8); v13 += v18; v12 ^= v13; v12 = verse_rotL32(v12, 7); v8 += v9; v19 ^= v8; v19 = verse_rotL32(v19, 16); v14 += v19; v9 ^= v14; v9 = verse_rotL32(v9, 12); v8 += v9; v19 ^= v8; v19 = verse_rotL32(v19, 8); v14 += v19; v9 ^= v14; v9 = verse_rotL32(v9, 7); v5 += v9; v17 ^= v5; v17 = verse_rotL32(v17, 16); v13 += v17; v9 ^= v13; v9 = verse_rotL32(v9, 12); v5 += v9; v17 ^= v5; v17 = verse_rotL32(v17, 8); v13 += v17; v9 ^= v13; v9 = verse_rotL32(v9, 7); v6 += v10; v18 ^= v6; v18 = verse_rotL32(v18, 16); v14 += v18; v10 ^= v14; v10 = verse_rotL32(v10, 12); v6 += v10; v18 ^= v6; v18 = verse_rotL32(v18, 8); v14 += v18; v10 ^= v14; v10 = verse_rotL32(v10, 7); v7 += v11; v19 ^= v7; v19 = verse_rotL32(v19, 16); v15 += v19; v11 ^= v15; v11 = verse_rotL32(v11, 12); v7 += v11; v19 ^= v7; v19 = verse_rotL32(v19, 8); v15 += v19; v11 ^= v15; v11 = verse_rotL32(v11, 7); v8 += v12; v20 ^= v8; v20 = verse_rotL32(v20, 16); v16 += v20; v12 ^= v16; v12 = verse_rotL32(v12, 12); v8 += v12; v20 ^= v8; v20 = verse_rotL32(v20, 8); v16 += v20; v12 ^= v16; v12 = verse_rotL32(v12, 7); v5 += v10; v20 ^= v5; v20 = verse_rotL32(v20, 16); v15 += v20; v10 ^= v15; v10 = verse_rotL32(v10, 12); v5 += v10; v20 ^= v5; v20 = verse_rotL32(v20, 8); v15 += v20; v10 ^= v15; v10 = verse_rotL32(v10, 7); v6 += v11; v17 ^= v6; v17 = verse_rotL32(v17, 16); v16 += v17; v11 ^= v16; v11 = verse_rotL32(v11, 12); v6 += v11; v17 ^= v6; v17 = verse_rotL32(v17, 8); v16 += v17; v11 ^= v16; v11 = verse_rotL32(v11, 7); v7 += v12; v18 ^= v7; v18 = verse_rotL32(v18, 16); v13 += v18; v12 ^= v13; v12 = verse_rotL32(v12, 12); v7 += v12; v18 ^= v7; v18 = verse_rotL32(v18, 8); v13 += v18; v12 ^= v13; v12 = verse_rotL32(v12, 7); v8 += v9; v19 ^= v8; v19 = verse_rotL32(v19, 16); v14 += v19; v9 ^= v14; v9 = verse_rotL32(v9, 12); v8 += v9; v19 ^= v8; v19 = verse_rotL32(v19, 8); v14 += v19; v9 ^= v14; v9 = verse_rotL32(v9, 7); v5 += v9; v17 ^= v5; v17 = verse_rotL32(v17, 16); v13 += v17; v9 ^= v13; v9 = verse_rotL32(v9, 12); v5 += v9; v17 ^= v5; v17 = verse_rotL32(v17, 8); v13 += v17; v9 ^= v13; v9 = verse_rotL32(v9, 7); v6 += v10; v18 ^= v6; v18 = verse_rotL32(v18, 16); v14 += v18; v10 ^= v14; v10 = verse_rotL32(v10, 12); v6 += v10; v18 ^= v6; v18 = verse_rotL32(v18, 8); v14 += v18; v10 ^= v14; v10 = verse_rotL32(v10, 7); v7 += v11; v19 ^= v7; v19 = verse_rotL32(v19, 16); v15 += v19; v11 ^= v15; v11 = verse_rotL32(v11, 12); v7 += v11; v19 ^= v7; v19 = verse_rotL32(v19, 8); v15 += v19; v11 ^= v15; v11 = verse_rotL32(v11, 7); v8 += v12; v20 ^= v8; v20 = verse_rotL32(v20, 16); v16 += v20; v12 ^= v16; v12 = verse_rotL32(v12, 12); v8 += v12; v20 ^= v8; v20 = verse_rotL32(v20, 8); v16 += v20; v12 ^= v16; v12 = verse_rotL32(v12, 7); v5 += v10; v20 ^= v5; v20 = verse_rotL32(v20, 16); v15 += v20; v10 ^= v15; v10 = verse_rotL32(v10, 12); v5 += v10; v20 ^= v5; v20 = verse_rotL32(v20, 8); v15 += v20; v10 ^= v15; v10 = verse_rotL32(v10, 7); v6 += v11; v17 ^= v6; v17 = verse_rotL32(v17, 16); v16 += v17; v11 ^= v16; v11 = verse_rotL32(v11, 12); v6 += v11; v17 ^= v6; v17 = verse_rotL32(v17, 8); v16 += v17; v11 ^= v16; v11 = verse_rotL32(v11, 7); v7 += v12; v18 ^= v7; v18 = verse_rotL32(v18, 16); v13 += v18; v12 ^= v13; v12 = verse_rotL32(v12, 12); v7 += v12; v18 ^= v7; v18 = verse_rotL32(v18, 8); v13 += v18; v12 ^= v13; v12 = verse_rotL32(v12, 7); v8 += v9; v19 ^= v8; v19 = verse_rotL32(v19, 16); v14 += v19; v9 ^= v14; v9 = verse_rotL32(v9, 12); v8 += v9; v19 ^= v8; v19 = verse_rotL32(v19, 8); v14 += v19; v9 ^= v14; v9 = verse_rotL32(v9, 7); v5 += v9; v17 ^= v5; v17 = verse_rotL32(v17, 16); v13 += v17; v9 ^= v13; v9 = verse_rotL32(v9, 12); v5 += v9; v17 ^= v5; v17 = verse_rotL32(v17, 8); v13 += v17; v9 ^= v13; v9 = verse_rotL32(v9, 7); v6 += v10; v18 ^= v6; v18 = verse_rotL32(v18, 16); v14 += v18; v10 ^= v14; v10 = verse_rotL32(v10, 12); v6 += v10; v18 ^= v6; v18 = verse_rotL32(v18, 8); v14 += v18; v10 ^= v14; v10 = verse_rotL32(v10, 7); v7 += v11; v19 ^= v7; v19 = verse_rotL32(v19, 16); v15 += v19; v11 ^= v15; v11 = verse_rotL32(v11, 12); v7 += v11; v19 ^= v7; v19 = verse_rotL32(v19, 8); v15 += v19; v11 ^= v15; v11 = verse_rotL32(v11, 7); v8 += v12; v20 ^= v8; v20 = verse_rotL32(v20, 16); v16 += v20; v12 ^= v16; v12 = verse_rotL32(v12, 12); v8 += v12; v20 ^= v8; v20 = verse_rotL32(v20, 8); v16 += v20; v12 ^= v16; v12 = verse_rotL32(v12, 7); v5 += v10; v20 ^= v5; v20 = verse_rotL32(v20, 16); v15 += v20; v10 ^= v15; v10 = verse_rotL32(v10, 12); v5 += v10; v20 ^= v5; v20 = verse_rotL32(v20, 8); v15 += v20; v10 ^= v15; v10 = verse_rotL32(v10, 7); v6 += v11; v17 ^= v6; v17 = verse_rotL32(v17, 16); v16 += v17; v11 ^= v16; v11 = verse_rotL32(v11, 12); v6 += v11; v17 ^= v6; v17 = verse_rotL32(v17, 8); v16 += v17; v11 ^= v16; v11 = verse_rotL32(v11, 7); v7 += v12; v18 ^= v7; v18 = verse_rotL32(v18, 16); v13 += v18; v12 ^= v13; v12 = verse_rotL32(v12, 12); v7 += v12; v18 ^= v7; v18 = verse_rotL32(v18, 8); v13 += v18; v12 ^= v13; v12 = verse_rotL32(v12, 7); v8 += v9; v19 ^= v8; v19 = verse_rotL32(v19, 16); v14 += v19; v9 ^= v14; v9 = verse_rotL32(v9, 12); v8 += v9; v19 ^= v8; v19 = verse_rotL32(v19, 8); v14 += v19; v9 ^= v14; v9 = verse_rotL32(v9, 7); v5 += v9; v17 ^= v5; v17 = verse_rotL32(v17, 16); v13 += v17; v9 ^= v13; v9 = verse_rotL32(v9, 12); v5 += v9; v17 ^= v5; v17 = verse_rotL32(v17, 8); v13 += v17; v9 ^= v13; v9 = verse_rotL32(v9, 7); v6 += v10; v18 ^= v6; v18 = verse_rotL32(v18, 16); v14 += v18; v10 ^= v14; v10 = verse_rotL32(v10, 12); v6 += v10; v18 ^= v6; v18 = verse_rotL32(v18, 8); v14 += v18; v10 ^= v14; v10 = verse_rotL32(v10, 7); v7 += v11; v19 ^= v7; v19 = verse_rotL32(v19, 16); v15 += v19; v11 ^= v15; v11 = verse_rotL32(v11, 12); v7 += v11; v19 ^= v7; v19 = verse_rotL32(v19, 8); v15 += v19; v11 ^= v15; v11 = verse_rotL32(v11, 7); v8 += v12; v20 ^= v8; v20 = verse_rotL32(v20, 16); v16 += v20; v12 ^= v16; v12 = verse_rotL32(v12, 12); v8 += v12; v20 ^= v8; v20 = verse_rotL32(v20, 8); v16 += v20; v12 ^= v16; v12 = verse_rotL32(v12, 7); v5 += v10; v20 ^= v5; v20 = verse_rotL32(v20, 16); v15 += v20; v10 ^= v15; v10 = verse_rotL32(v10, 12); v5 += v10; v20 ^= v5; v20 = verse_rotL32(v20, 8); v15 += v20; v10 ^= v15; v10 = verse_rotL32(v10, 7); v6 += v11; v17 ^= v6; v17 = verse_rotL32(v17, 16); v16 += v17; v11 ^= v16; v11 = verse_rotL32(v11, 12); v6 += v11; v17 ^= v6; v17 = verse_rotL32(v17, 8); v16 += v17; v11 ^= v16; v11 = verse_rotL32(v11, 7); v7 += v12; v18 ^= v7; v18 = verse_rotL32(v18, 16); v13 += v18; v12 ^= v13; v12 = verse_rotL32(v12, 12); v7 += v12; v18 ^= v7; v18 = verse_rotL32(v18, 8); v13 += v18; v12 ^= v13; v12 = verse_rotL32(v12, 7); v8 += v9; v19 ^= v8; v19 = verse_rotL32(v19, 16); v14 += v19; v9 ^= v14; v9 = verse_rotL32(v9, 12); v8 += v9; v19 ^= v8; v19 = verse_rotL32(v19, 8); v14 += v19; v9 ^= v14; v9 = verse_rotL32(v9, 7); v5 += v9; v17 ^= v5; v17 = verse_rotL32(v17, 16); v13 += v17; v9 ^= v13; v9 = verse_rotL32(v9, 12); v5 += v9; v17 ^= v5; v17 = verse_rotL32(v17, 8); v13 += v17; v9 ^= v13; v9 = verse_rotL32(v9, 7); v6 += v10; v18 ^= v6; v18 = verse_rotL32(v18, 16); v14 += v18; v10 ^= v14; v10 = verse_rotL32(v10, 12); v6 += v10; v18 ^= v6; v18 = verse_rotL32(v18, 8); v14 += v18; v10 ^= v14; v10 = verse_rotL32(v10, 7); v7 += v11; v19 ^= v7; v19 = verse_rotL32(v19, 16); v15 += v19; v11 ^= v15; v11 = verse_rotL32(v11, 12); v7 += v11; v19 ^= v7; v19 = verse_rotL32(v19, 8); v15 += v19; v11 ^= v15; v11 = verse_rotL32(v11, 7); v8 += v12; v20 ^= v8; v20 = verse_rotL32(v20, 16); v16 += v20; v12 ^= v16; v12 = verse_rotL32(v12, 12); v8 += v12; v20 ^= v8; v20 = verse_rotL32(v20, 8); v16 += v20; v12 ^= v16; v12 = verse_rotL32(v12, 7); v5 += v10; v20 ^= v5; v20 = verse_rotL32(v20, 16); v15 += v20; v10 ^= v15; v10 = verse_rotL32(v10, 12); v5 += v10; v20 ^= v5; v20 = verse_rotL32(v20, 8); v15 += v20; v10 ^= v15; v10 = verse_rotL32(v10, 7); v6 += v11; v17 ^= v6; v17 = verse_rotL32(v17, 16); v16 += v17; v11 ^= v16; v11 = verse_rotL32(v11, 12); v6 += v11; v17 ^= v6; v17 = verse_rotL32(v17, 8); v16 += v17; v11 ^= v16; v11 = verse_rotL32(v11, 7); v7 += v12; v18 ^= v7; v18 = verse_rotL32(v18, 16); v13 += v18; v12 ^= v13; v12 = verse_rotL32(v12, 12); v7 += v12; v18 ^= v7; v18 = verse_rotL32(v18, 8); v13 += v18; v12 ^= v13; v12 = verse_rotL32(v12, 7); v8 += v9; v19 ^= v8; v19 = verse_rotL32(v19, 16); v14 += v19; v9 ^= v14; v9 = verse_rotL32(v9, 12); v8 += v9; v19 ^= v8; v19 = verse_rotL32(v19, 8); v14 += v19; v9 ^= v14; v9 = verse_rotL32(v9, 7); v5 += v9; v17 ^= v5; v17 = verse_rotL32(v17, 16); v13 += v17; v9 ^= v13; v9 = verse_rotL32(v9, 12); v5 += v9; v17 ^= v5; v17 = verse_rotL32(v17, 8); v13 += v17; v9 ^= v13; v9 = verse_rotL32(v9, 7); v6 += v10; v18 ^= v6; v18 = verse_rotL32(v18, 16); v14 += v18; v10 ^= v14; v10 = verse_rotL32(v10, 12); v6 += v10; v18 ^= v6; v18 = verse_rotL32(v18, 8); v14 += v18; v10 ^= v14; v10 = verse_rotL32(v10, 7); v7 += v11; v19 ^= v7; v19 = verse_rotL32(v19, 16); v15 += v19; v11 ^= v15; v11 = verse_rotL32(v11, 12); v7 += v11; v19 ^= v7; v19 = verse_rotL32(v19, 8); v15 += v19; v11 ^= v15; v11 = verse_rotL32(v11, 7); v8 += v12; v20 ^= v8; v20 = verse_rotL32(v20, 16); v16 += v20; v12 ^= v16; v12 = verse_rotL32(v12, 12); v8 += v12; v20 ^= v8; v20 = verse_rotL32(v20, 8); v16 += v20; v12 ^= v16; v12 = verse_rotL32(v12, 7); v5 += v10; v20 ^= v5; v20 = verse_rotL32(v20, 16); v15 += v20; v10 ^= v15; v10 = verse_rotL32(v10, 12); v5 += v10; v20 ^= v5; v20 = verse_rotL32(v20, 8); v15 += v20; v10 ^= v15; v10 = verse_rotL32(v10, 7); v6 += v11; v17 ^= v6; v17 = verse_rotL32(v17, 16); v16 += v17; v11 ^= v16; v11 = verse_rotL32(v11, 12); v6 += v11; v17 ^= v6; v17 = verse_rotL32(v17, 8); v16 += v17; v11 ^= v16; v11 = verse_rotL32(v11, 7); v7 += v12; v18 ^= v7; v18 = verse_rotL32(v18, 16); v13 += v18; v12 ^= v13; v12 = verse_rotL32(v12, 12); v7 += v12; v18 ^= v7; v18 = verse_rotL32(v18, 8); v13 += v18; v12 ^= v13; v12 = verse_rotL32(v12, 7); v8 += v9; v19 ^= v8; v19 = verse_rotL32(v19, 16); v14 += v19; v9 ^= v14; v9 = verse_rotL32(v9, 12); v8 += v9; v19 ^= v8; v19 = verse_rotL32(v19, 8); v14 += v19; v9 ^= v14; v9 = verse_rotL32(v9, 7); v5 += v9; v17 ^= v5; v17 = verse_rotL32(v17, 16); v13 += v17; v9 ^= v13; v9 = verse_rotL32(v9, 12); v5 += v9; v17 ^= v5; v17 = verse_rotL32(v17, 8); v13 += v17; v9 ^= v13; v9 = verse_rotL32(v9, 7); v6 += v10; v18 ^= v6; v18 = verse_rotL32(v18, 16); v14 += v18; v10 ^= v14; v10 = verse_rotL32(v10, 12); v6 += v10; v18 ^= v6; v18 = verse_rotL32(v18, 8); v14 += v18; v10 ^= v14; v10 = verse_rotL32(v10, 7); v7 += v11; v19 ^= v7; v19 = verse_rotL32(v19, 16); v15 += v19; v11 ^= v15; v11 = verse_rotL32(v11, 12); v7 += v11; v19 ^= v7; v19 = verse_rotL32(v19, 8); v15 += v19; v11 ^= v15; v11 = verse_rotL32(v11, 7); v8 += v12; v20 ^= v8; v20 = verse_rotL32(v20, 16); v16 += v20; v12 ^= v16; v12 = verse_rotL32(v12, 12); v8 += v12; v20 ^= v8; v20 = verse_rotL32(v20, 8); v16 += v20; v12 ^= v16; v12 = verse_rotL32(v12, 7); v5 += v10; v20 ^= v5; v20 = verse_rotL32(v20, 16); v15 += v20; v10 ^= v15; v10 = verse_rotL32(v10, 12); v5 += v10; v20 ^= v5; v20 = verse_rotL32(v20, 8); v15 += v20; v10 ^= v15; v10 = verse_rotL32(v10, 7); v6 += v11; v17 ^= v6; v17 = verse_rotL32(v17, 16); v16 += v17; v11 ^= v16; v11 = verse_rotL32(v11, 12); v6 += v11; v17 ^= v6; v17 = verse_rotL32(v17, 8); v16 += v17; v11 ^= v16; v11 = verse_rotL32(v11, 7); v7 += v12; v18 ^= v7; v18 = verse_rotL32(v18, 16); v13 += v18; v12 ^= v13; v12 = verse_rotL32(v12, 12); v7 += v12; v18 ^= v7; v18 = verse_rotL32(v18, 8); v13 += v18; v12 ^= v13; v12 = verse_rotL32(v12, 7); v8 += v9; v19 ^= v8; v19 = verse_rotL32(v19, 16); v14 += v19; v9 ^= v14; v9 = verse_rotL32(v9, 12); v8 += v9; v19 ^= v8; v19 = verse_rotL32(v19, 8); v14 += v19; v9 ^= v14; v9 = verse_rotL32(v9, 7); v0[0] = v5; v0[1] = v6; v0[2] = v7; v0[3] = v8; v0[4] = v17; v0[5] = v18; v0[6] = v19; v0[7] = v20; } void verse_chacha20csprg_c_portable(uint32_t(*bPtr)[16], uint64_t cTr, uint32_t v0[8], uint32_t v1[3], 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; v3 = *v2; while (cTr > 0) { v4 = 0x61707865UL; v5 = 0x3320646eUL; v6 = 0x79622d32UL; v7 = 0x6b206574UL; v8 = v0[0]; v9 = v0[1]; v10 = v0[2]; v11 = v0[3]; v12 = v0[4]; v13 = v0[5]; v14 = v0[6]; v15 = v0[7]; v16 = v3; v17 = v1[0]; v18 = v1[1]; v19 = v1[2]; v4 += v8; v16 ^= v4; v16 = verse_rotL32(v16, 16); v12 += v16; v8 ^= v12; v8 = verse_rotL32(v8, 12); v4 += v8; v16 ^= v4; v16 = verse_rotL32(v16, 8); v12 += v16; v8 ^= v12; v8 = verse_rotL32(v8, 7); v5 += v9; v17 ^= v5; v17 = verse_rotL32(v17, 16); v13 += v17; v9 ^= v13; v9 = verse_rotL32(v9, 12); v5 += v9; v17 ^= v5; v17 = verse_rotL32(v17, 8); v13 += v17; v9 ^= v13; v9 = verse_rotL32(v9, 7); v6 += v10; v18 ^= v6; v18 = verse_rotL32(v18, 16); v14 += v18; v10 ^= v14; v10 = verse_rotL32(v10, 12); v6 += v10; v18 ^= v6; v18 = verse_rotL32(v18, 8); v14 += v18; v10 ^= v14; v10 = verse_rotL32(v10, 7); v7 += v11; v19 ^= v7; v19 = verse_rotL32(v19, 16); v15 += v19; v11 ^= v15; v11 = verse_rotL32(v11, 12); v7 += v11; v19 ^= v7; v19 = verse_rotL32(v19, 8); v15 += v19; v11 ^= v15; v11 = verse_rotL32(v11, 7); v4 += v9; v19 ^= v4; v19 = verse_rotL32(v19, 16); v14 += v19; v9 ^= v14; v9 = verse_rotL32(v9, 12); v4 += v9; v19 ^= v4; v19 = verse_rotL32(v19, 8); v14 += v19; v9 ^= v14; v9 = verse_rotL32(v9, 7); v5 += v10; v16 ^= v5; v16 = verse_rotL32(v16, 16); v15 += v16; v10 ^= v15; v10 = verse_rotL32(v10, 12); v5 += v10; v16 ^= v5; v16 = verse_rotL32(v16, 8); v15 += v16; v10 ^= v15; v10 = verse_rotL32(v10, 7); v6 += v11; v17 ^= v6; v17 = verse_rotL32(v17, 16); v12 += v17; v11 ^= v12; v11 = verse_rotL32(v11, 12); v6 += v11; v17 ^= v6; v17 = verse_rotL32(v17, 8); v12 += v17; v11 ^= v12; v11 = verse_rotL32(v11, 7); v7 += v8; v18 ^= v7; v18 = verse_rotL32(v18, 16); v13 += v18; v8 ^= v13; v8 = verse_rotL32(v8, 12); v7 += v8; v18 ^= v7; v18 = verse_rotL32(v18, 8); v13 += v18; v8 ^= v13; v8 = verse_rotL32(v8, 7); v4 += v8; v16 ^= v4; v16 = verse_rotL32(v16, 16); v12 += v16; v8 ^= v12; v8 = verse_rotL32(v8, 12); v4 += v8; v16 ^= v4; v16 = verse_rotL32(v16, 8); v12 += v16; v8 ^= v12; v8 = verse_rotL32(v8, 7); v5 += v9; v17 ^= v5; v17 = verse_rotL32(v17, 16); v13 += v17; v9 ^= v13; v9 = verse_rotL32(v9, 12); v5 += v9; v17 ^= v5; v17 = verse_rotL32(v17, 8); v13 += v17; v9 ^= v13; v9 = verse_rotL32(v9, 7); v6 += v10; v18 ^= v6; v18 = verse_rotL32(v18, 16); v14 += v18; v10 ^= v14; v10 = verse_rotL32(v10, 12); v6 += v10; v18 ^= v6; v18 = verse_rotL32(v18, 8); v14 += v18; v10 ^= v14; v10 = verse_rotL32(v10, 7); v7 += v11; v19 ^= v7; v19 = verse_rotL32(v19, 16); v15 += v19; v11 ^= v15; v11 = verse_rotL32(v11, 12); v7 += v11; v19 ^= v7; v19 = verse_rotL32(v19, 8); v15 += v19; v11 ^= v15; v11 = verse_rotL32(v11, 7); v4 += v9; v19 ^= v4; v19 = verse_rotL32(v19, 16); v14 += v19; v9 ^= v14; v9 = verse_rotL32(v9, 12); v4 += v9; v19 ^= v4; v19 = verse_rotL32(v19, 8); v14 += v19; v9 ^= v14; v9 = verse_rotL32(v9, 7); v5 += v10; v16 ^= v5; v16 = verse_rotL32(v16, 16); v15 += v16; v10 ^= v15; v10 = verse_rotL32(v10, 12); v5 += v10; v16 ^= v5; v16 = verse_rotL32(v16, 8); v15 += v16; v10 ^= v15; v10 = verse_rotL32(v10, 7); v6 += v11; v17 ^= v6; v17 = verse_rotL32(v17, 16); v12 += v17; v11 ^= v12; v11 = verse_rotL32(v11, 12); v6 += v11; v17 ^= v6; v17 = verse_rotL32(v17, 8); v12 += v17; v11 ^= v12; v11 = verse_rotL32(v11, 7); v7 += v8; v18 ^= v7; v18 = verse_rotL32(v18, 16); v13 += v18; v8 ^= v13; v8 = verse_rotL32(v8, 12); v7 += v8; v18 ^= v7; v18 = verse_rotL32(v18, 8); v13 += v18; v8 ^= v13; v8 = verse_rotL32(v8, 7); v4 += v8; v16 ^= v4; v16 = verse_rotL32(v16, 16); v12 += v16; v8 ^= v12; v8 = verse_rotL32(v8, 12); v4 += v8; v16 ^= v4; v16 = verse_rotL32(v16, 8); v12 += v16; v8 ^= v12; v8 = verse_rotL32(v8, 7); v5 += v9; v17 ^= v5; v17 = verse_rotL32(v17, 16); v13 += v17; v9 ^= v13; v9 = verse_rotL32(v9, 12); v5 += v9; v17 ^= v5; v17 = verse_rotL32(v17, 8); v13 += v17; v9 ^= v13; v9 = verse_rotL32(v9, 7); v6 += v10; v18 ^= v6; v18 = verse_rotL32(v18, 16); v14 += v18; v10 ^= v14; v10 = verse_rotL32(v10, 12); v6 += v10; v18 ^= v6; v18 = verse_rotL32(v18, 8); v14 += v18; v10 ^= v14; v10 = verse_rotL32(v10, 7); v7 += v11; v19 ^= v7; v19 = verse_rotL32(v19, 16); v15 += v19; v11 ^= v15; v11 = verse_rotL32(v11, 12); v7 += v11; v19 ^= v7; v19 = verse_rotL32(v19, 8); v15 += v19; v11 ^= v15; v11 = verse_rotL32(v11, 7); v4 += v9; v19 ^= v4; v19 = verse_rotL32(v19, 16); v14 += v19; v9 ^= v14; v9 = verse_rotL32(v9, 12); v4 += v9; v19 ^= v4; v19 = verse_rotL32(v19, 8); v14 += v19; v9 ^= v14; v9 = verse_rotL32(v9, 7); v5 += v10; v16 ^= v5; v16 = verse_rotL32(v16, 16); v15 += v16; v10 ^= v15; v10 = verse_rotL32(v10, 12); v5 += v10; v16 ^= v5; v16 = verse_rotL32(v16, 8); v15 += v16; v10 ^= v15; v10 = verse_rotL32(v10, 7); v6 += v11; v17 ^= v6; v17 = verse_rotL32(v17, 16); v12 += v17; v11 ^= v12; v11 = verse_rotL32(v11, 12); v6 += v11; v17 ^= v6; v17 = verse_rotL32(v17, 8); v12 += v17; v11 ^= v12; v11 = verse_rotL32(v11, 7); v7 += v8; v18 ^= v7; v18 = verse_rotL32(v18, 16); v13 += v18; v8 ^= v13; v8 = verse_rotL32(v8, 12); v7 += v8; v18 ^= v7; v18 = verse_rotL32(v18, 8); v13 += v18; v8 ^= v13; v8 = verse_rotL32(v8, 7); v4 += v8; v16 ^= v4; v16 = verse_rotL32(v16, 16); v12 += v16; v8 ^= v12; v8 = verse_rotL32(v8, 12); v4 += v8; v16 ^= v4; v16 = verse_rotL32(v16, 8); v12 += v16; v8 ^= v12; v8 = verse_rotL32(v8, 7); v5 += v9; v17 ^= v5; v17 = verse_rotL32(v17, 16); v13 += v17; v9 ^= v13; v9 = verse_rotL32(v9, 12); v5 += v9; v17 ^= v5; v17 = verse_rotL32(v17, 8); v13 += v17; v9 ^= v13; v9 = verse_rotL32(v9, 7); v6 += v10; v18 ^= v6; v18 = verse_rotL32(v18, 16); v14 += v18; v10 ^= v14; v10 = verse_rotL32(v10, 12); v6 += v10; v18 ^= v6; v18 = verse_rotL32(v18, 8); v14 += v18; v10 ^= v14; v10 = verse_rotL32(v10, 7); v7 += v11; v19 ^= v7; v19 = verse_rotL32(v19, 16); v15 += v19; v11 ^= v15; v11 = verse_rotL32(v11, 12); v7 += v11; v19 ^= v7; v19 = verse_rotL32(v19, 8); v15 += v19; v11 ^= v15; v11 = verse_rotL32(v11, 7); v4 += v9; v19 ^= v4; v19 = verse_rotL32(v19, 16); v14 += v19; v9 ^= v14; v9 = verse_rotL32(v9, 12); v4 += v9; v19 ^= v4; v19 = verse_rotL32(v19, 8); v14 += v19; v9 ^= v14; v9 = verse_rotL32(v9, 7); v5 += v10; v16 ^= v5; v16 = verse_rotL32(v16, 16); v15 += v16; v10 ^= v15; v10 = verse_rotL32(v10, 12); v5 += v10; v16 ^= v5; v16 = verse_rotL32(v16, 8); v15 += v16; v10 ^= v15; v10 = verse_rotL32(v10, 7); v6 += v11; v17 ^= v6; v17 = verse_rotL32(v17, 16); v12 += v17; v11 ^= v12; v11 = verse_rotL32(v11, 12); v6 += v11; v17 ^= v6; v17 = verse_rotL32(v17, 8); v12 += v17; v11 ^= v12; v11 = verse_rotL32(v11, 7); v7 += v8; v18 ^= v7; v18 = verse_rotL32(v18, 16); v13 += v18; v8 ^= v13; v8 = verse_rotL32(v8, 12); v7 += v8; v18 ^= v7; v18 = verse_rotL32(v18, 8); v13 += v18; v8 ^= v13; v8 = verse_rotL32(v8, 7); v4 += v8; v16 ^= v4; v16 = verse_rotL32(v16, 16); v12 += v16; v8 ^= v12; v8 = verse_rotL32(v8, 12); v4 += v8; v16 ^= v4; v16 = verse_rotL32(v16, 8); v12 += v16; v8 ^= v12; v8 = verse_rotL32(v8, 7); v5 += v9; v17 ^= v5; v17 = verse_rotL32(v17, 16); v13 += v17; v9 ^= v13; v9 = verse_rotL32(v9, 12); v5 += v9; v17 ^= v5; v17 = verse_rotL32(v17, 8); v13 += v17; v9 ^= v13; v9 = verse_rotL32(v9, 7); v6 += v10; v18 ^= v6; v18 = verse_rotL32(v18, 16); v14 += v18; v10 ^= v14; v10 = verse_rotL32(v10, 12); v6 += v10; v18 ^= v6; v18 = verse_rotL32(v18, 8); v14 += v18; v10 ^= v14; v10 = verse_rotL32(v10, 7); v7 += v11; v19 ^= v7; v19 = verse_rotL32(v19, 16); v15 += v19; v11 ^= v15; v11 = verse_rotL32(v11, 12); v7 += v11; v19 ^= v7; v19 = verse_rotL32(v19, 8); v15 += v19; v11 ^= v15; v11 = verse_rotL32(v11, 7); v4 += v9; v19 ^= v4; v19 = verse_rotL32(v19, 16); v14 += v19; v9 ^= v14; v9 = verse_rotL32(v9, 12); v4 += v9; v19 ^= v4; v19 = verse_rotL32(v19, 8); v14 += v19; v9 ^= v14; v9 = verse_rotL32(v9, 7); v5 += v10; v16 ^= v5; v16 = verse_rotL32(v16, 16); v15 += v16; v10 ^= v15; v10 = verse_rotL32(v10, 12); v5 += v10; v16 ^= v5; v16 = verse_rotL32(v16, 8); v15 += v16; v10 ^= v15; v10 = verse_rotL32(v10, 7); v6 += v11; v17 ^= v6; v17 = verse_rotL32(v17, 16); v12 += v17; v11 ^= v12; v11 = verse_rotL32(v11, 12); v6 += v11; v17 ^= v6; v17 = verse_rotL32(v17, 8); v12 += v17; v11 ^= v12; v11 = verse_rotL32(v11, 7); v7 += v8; v18 ^= v7; v18 = verse_rotL32(v18, 16); v13 += v18; v8 ^= v13; v8 = verse_rotL32(v8, 12); v7 += v8; v18 ^= v7; v18 = verse_rotL32(v18, 8); v13 += v18; v8 ^= v13; v8 = verse_rotL32(v8, 7); v4 += v8; v16 ^= v4; v16 = verse_rotL32(v16, 16); v12 += v16; v8 ^= v12; v8 = verse_rotL32(v8, 12); v4 += v8; v16 ^= v4; v16 = verse_rotL32(v16, 8); v12 += v16; v8 ^= v12; v8 = verse_rotL32(v8, 7); v5 += v9; v17 ^= v5; v17 = verse_rotL32(v17, 16); v13 += v17; v9 ^= v13; v9 = verse_rotL32(v9, 12); v5 += v9; v17 ^= v5; v17 = verse_rotL32(v17, 8); v13 += v17; v9 ^= v13; v9 = verse_rotL32(v9, 7); v6 += v10; v18 ^= v6; v18 = verse_rotL32(v18, 16); v14 += v18; v10 ^= v14; v10 = verse_rotL32(v10, 12); v6 += v10; v18 ^= v6; v18 = verse_rotL32(v18, 8); v14 += v18; v10 ^= v14; v10 = verse_rotL32(v10, 7); v7 += v11; v19 ^= v7; v19 = verse_rotL32(v19, 16); v15 += v19; v11 ^= v15; v11 = verse_rotL32(v11, 12); v7 += v11; v19 ^= v7; v19 = verse_rotL32(v19, 8); v15 += v19; v11 ^= v15; v11 = verse_rotL32(v11, 7); v4 += v9; v19 ^= v4; v19 = verse_rotL32(v19, 16); v14 += v19; v9 ^= v14; v9 = verse_rotL32(v9, 12); v4 += v9; v19 ^= v4; v19 = verse_rotL32(v19, 8); v14 += v19; v9 ^= v14; v9 = verse_rotL32(v9, 7); v5 += v10; v16 ^= v5; v16 = verse_rotL32(v16, 16); v15 += v16; v10 ^= v15; v10 = verse_rotL32(v10, 12); v5 += v10; v16 ^= v5; v16 = verse_rotL32(v16, 8); v15 += v16; v10 ^= v15; v10 = verse_rotL32(v10, 7); v6 += v11; v17 ^= v6; v17 = verse_rotL32(v17, 16); v12 += v17; v11 ^= v12; v11 = verse_rotL32(v11, 12); v6 += v11; v17 ^= v6; v17 = verse_rotL32(v17, 8); v12 += v17; v11 ^= v12; v11 = verse_rotL32(v11, 7); v7 += v8; v18 ^= v7; v18 = verse_rotL32(v18, 16); v13 += v18; v8 ^= v13; v8 = verse_rotL32(v8, 12); v7 += v8; v18 ^= v7; v18 = verse_rotL32(v18, 8); v13 += v18; v8 ^= v13; v8 = verse_rotL32(v8, 7); v4 += v8; v16 ^= v4; v16 = verse_rotL32(v16, 16); v12 += v16; v8 ^= v12; v8 = verse_rotL32(v8, 12); v4 += v8; v16 ^= v4; v16 = verse_rotL32(v16, 8); v12 += v16; v8 ^= v12; v8 = verse_rotL32(v8, 7); v5 += v9; v17 ^= v5; v17 = verse_rotL32(v17, 16); v13 += v17; v9 ^= v13; v9 = verse_rotL32(v9, 12); v5 += v9; v17 ^= v5; v17 = verse_rotL32(v17, 8); v13 += v17; v9 ^= v13; v9 = verse_rotL32(v9, 7); v6 += v10; v18 ^= v6; v18 = verse_rotL32(v18, 16); v14 += v18; v10 ^= v14; v10 = verse_rotL32(v10, 12); v6 += v10; v18 ^= v6; v18 = verse_rotL32(v18, 8); v14 += v18; v10 ^= v14; v10 = verse_rotL32(v10, 7); v7 += v11; v19 ^= v7; v19 = verse_rotL32(v19, 16); v15 += v19; v11 ^= v15; v11 = verse_rotL32(v11, 12); v7 += v11; v19 ^= v7; v19 = verse_rotL32(v19, 8); v15 += v19; v11 ^= v15; v11 = verse_rotL32(v11, 7); v4 += v9; v19 ^= v4; v19 = verse_rotL32(v19, 16); v14 += v19; v9 ^= v14; v9 = verse_rotL32(v9, 12); v4 += v9; v19 ^= v4; v19 = verse_rotL32(v19, 8); v14 += v19; v9 ^= v14; v9 = verse_rotL32(v9, 7); v5 += v10; v16 ^= v5; v16 = verse_rotL32(v16, 16); v15 += v16; v10 ^= v15; v10 = verse_rotL32(v10, 12); v5 += v10; v16 ^= v5; v16 = verse_rotL32(v16, 8); v15 += v16; v10 ^= v15; v10 = verse_rotL32(v10, 7); v6 += v11; v17 ^= v6; v17 = verse_rotL32(v17, 16); v12 += v17; v11 ^= v12; v11 = verse_rotL32(v11, 12); v6 += v11; v17 ^= v6; v17 = verse_rotL32(v17, 8); v12 += v17; v11 ^= v12; v11 = verse_rotL32(v11, 7); v7 += v8; v18 ^= v7; v18 = verse_rotL32(v18, 16); v13 += v18; v8 ^= v13; v8 = verse_rotL32(v8, 12); v7 += v8; v18 ^= v7; v18 = verse_rotL32(v18, 8); v13 += v18; v8 ^= v13; v8 = verse_rotL32(v8, 7); v4 += v8; v16 ^= v4; v16 = verse_rotL32(v16, 16); v12 += v16; v8 ^= v12; v8 = verse_rotL32(v8, 12); v4 += v8; v16 ^= v4; v16 = verse_rotL32(v16, 8); v12 += v16; v8 ^= v12; v8 = verse_rotL32(v8, 7); v5 += v9; v17 ^= v5; v17 = verse_rotL32(v17, 16); v13 += v17; v9 ^= v13; v9 = verse_rotL32(v9, 12); v5 += v9; v17 ^= v5; v17 = verse_rotL32(v17, 8); v13 += v17; v9 ^= v13; v9 = verse_rotL32(v9, 7); v6 += v10; v18 ^= v6; v18 = verse_rotL32(v18, 16); v14 += v18; v10 ^= v14; v10 = verse_rotL32(v10, 12); v6 += v10; v18 ^= v6; v18 = verse_rotL32(v18, 8); v14 += v18; v10 ^= v14; v10 = verse_rotL32(v10, 7); v7 += v11; v19 ^= v7; v19 = verse_rotL32(v19, 16); v15 += v19; v11 ^= v15; v11 = verse_rotL32(v11, 12); v7 += v11; v19 ^= v7; v19 = verse_rotL32(v19, 8); v15 += v19; v11 ^= v15; v11 = verse_rotL32(v11, 7); v4 += v9; v19 ^= v4; v19 = verse_rotL32(v19, 16); v14 += v19; v9 ^= v14; v9 = verse_rotL32(v9, 12); v4 += v9; v19 ^= v4; v19 = verse_rotL32(v19, 8); v14 += v19; v9 ^= v14; v9 = verse_rotL32(v9, 7); v5 += v10; v16 ^= v5; v16 = verse_rotL32(v16, 16); v15 += v16; v10 ^= v15; v10 = verse_rotL32(v10, 12); v5 += v10; v16 ^= v5; v16 = verse_rotL32(v16, 8); v15 += v16; v10 ^= v15; v10 = verse_rotL32(v10, 7); v6 += v11; v17 ^= v6; v17 = verse_rotL32(v17, 16); v12 += v17; v11 ^= v12; v11 = verse_rotL32(v11, 12); v6 += v11; v17 ^= v6; v17 = verse_rotL32(v17, 8); v12 += v17; v11 ^= v12; v11 = verse_rotL32(v11, 7); v7 += v8; v18 ^= v7; v18 = verse_rotL32(v18, 16); v13 += v18; v8 ^= v13; v8 = verse_rotL32(v8, 12); v7 += v8; v18 ^= v7; v18 = verse_rotL32(v18, 8); v13 += v18; v8 ^= v13; v8 = verse_rotL32(v8, 7); v4 += v8; v16 ^= v4; v16 = verse_rotL32(v16, 16); v12 += v16; v8 ^= v12; v8 = verse_rotL32(v8, 12); v4 += v8; v16 ^= v4; v16 = verse_rotL32(v16, 8); v12 += v16; v8 ^= v12; v8 = verse_rotL32(v8, 7); v5 += v9; v17 ^= v5; v17 = verse_rotL32(v17, 16); v13 += v17; v9 ^= v13; v9 = verse_rotL32(v9, 12); v5 += v9; v17 ^= v5; v17 = verse_rotL32(v17, 8); v13 += v17; v9 ^= v13; v9 = verse_rotL32(v9, 7); v6 += v10; v18 ^= v6; v18 = verse_rotL32(v18, 16); v14 += v18; v10 ^= v14; v10 = verse_rotL32(v10, 12); v6 += v10; v18 ^= v6; v18 = verse_rotL32(v18, 8); v14 += v18; v10 ^= v14; v10 = verse_rotL32(v10, 7); v7 += v11; v19 ^= v7; v19 = verse_rotL32(v19, 16); v15 += v19; v11 ^= v15; v11 = verse_rotL32(v11, 12); v7 += v11; v19 ^= v7; v19 = verse_rotL32(v19, 8); v15 += v19; v11 ^= v15; v11 = verse_rotL32(v11, 7); v4 += v9; v19 ^= v4; v19 = verse_rotL32(v19, 16); v14 += v19; v9 ^= v14; v9 = verse_rotL32(v9, 12); v4 += v9; v19 ^= v4; v19 = verse_rotL32(v19, 8); v14 += v19; v9 ^= v14; v9 = verse_rotL32(v9, 7); v5 += v10; v16 ^= v5; v16 = verse_rotL32(v16, 16); v15 += v16; v10 ^= v15; v10 = verse_rotL32(v10, 12); v5 += v10; v16 ^= v5; v16 = verse_rotL32(v16, 8); v15 += v16; v10 ^= v15; v10 = verse_rotL32(v10, 7); v6 += v11; v17 ^= v6; v17 = verse_rotL32(v17, 16); v12 += v17; v11 ^= v12; v11 = verse_rotL32(v11, 12); v6 += v11; v17 ^= v6; v17 = verse_rotL32(v17, 8); v12 += v17; v11 ^= v12; v11 = verse_rotL32(v11, 7); v7 += v8; v18 ^= v7; v18 = verse_rotL32(v18, 16); v13 += v18; v8 ^= v13; v8 = verse_rotL32(v8, 12); v7 += v8; v18 ^= v7; v18 = verse_rotL32(v18, 8); v13 += v18; v8 ^= v13; v8 = verse_rotL32(v8, 7); v4 += v8; v16 ^= v4; v16 = verse_rotL32(v16, 16); v12 += v16; v8 ^= v12; v8 = verse_rotL32(v8, 12); v4 += v8; v16 ^= v4; v16 = verse_rotL32(v16, 8); v12 += v16; v8 ^= v12; v8 = verse_rotL32(v8, 7); v5 += v9; v17 ^= v5; v17 = verse_rotL32(v17, 16); v13 += v17; v9 ^= v13; v9 = verse_rotL32(v9, 12); v5 += v9; v17 ^= v5; v17 = verse_rotL32(v17, 8); v13 += v17; v9 ^= v13; v9 = verse_rotL32(v9, 7); v6 += v10; v18 ^= v6; v18 = verse_rotL32(v18, 16); v14 += v18; v10 ^= v14; v10 = verse_rotL32(v10, 12); v6 += v10; v18 ^= v6; v18 = verse_rotL32(v18, 8); v14 += v18; v10 ^= v14; v10 = verse_rotL32(v10, 7); v7 += v11; v19 ^= v7; v19 = verse_rotL32(v19, 16); v15 += v19; v11 ^= v15; v11 = verse_rotL32(v11, 12); v7 += v11; v19 ^= v7; v19 = verse_rotL32(v19, 8); v15 += v19; v11 ^= v15; v11 = verse_rotL32(v11, 7); v4 += v9; v19 ^= v4; v19 = verse_rotL32(v19, 16); v14 += v19; v9 ^= v14; v9 = verse_rotL32(v9, 12); v4 += v9; v19 ^= v4; v19 = verse_rotL32(v19, 8); v14 += v19; v9 ^= v14; v9 = verse_rotL32(v9, 7); v5 += v10; v16 ^= v5; v16 = verse_rotL32(v16, 16); v15 += v16; v10 ^= v15; v10 = verse_rotL32(v10, 12); v5 += v10; v16 ^= v5; v16 = verse_rotL32(v16, 8); v15 += v16; v10 ^= v15; v10 = verse_rotL32(v10, 7); v6 += v11; v17 ^= v6; v17 = verse_rotL32(v17, 16); v12 += v17; v11 ^= v12; v11 = verse_rotL32(v11, 12); v6 += v11; v17 ^= v6; v17 = verse_rotL32(v17, 8); v12 += v17; v11 ^= v12; v11 = verse_rotL32(v11, 7); v7 += v8; v18 ^= v7; v18 = verse_rotL32(v18, 16); v13 += v18; v8 ^= v13; v8 = verse_rotL32(v8, 12); v7 += v8; v18 ^= v7; v18 = verse_rotL32(v18, 8); v13 += v18; v8 ^= v13; v8 = verse_rotL32(v8, 7); v4 += 0x61707865UL; v5 += 0x3320646eUL; v6 += 0x79622d32UL; v7 += 0x6b206574UL; v8 += v0[0]; v9 += v0[1]; v10 += v0[2]; v11 += v0[3]; v12 += v0[4]; v13 += v0[5]; v14 += v0[6]; v15 += v0[7]; v16 += v3; v17 += v1[0]; v18 += v1[1]; v19 += v1[2]; (*bPtr)[0] = v4; (*bPtr)[1] = v5; (*bPtr)[2] = v6; (*bPtr)[3] = v7; (*bPtr)[4] = v8; (*bPtr)[5] = v9; (*bPtr)[6] = v10; (*bPtr)[7] = v11; (*bPtr)[8] = v12; (*bPtr)[9] = v13; (*bPtr)[10] = v14; (*bPtr)[11] = v15; (*bPtr)[12] = v16; (*bPtr)[13] = v17; (*bPtr)[14] = v18; (*bPtr)[15] = v19; v3 += 0x00000001UL; ++bPtr; --cTr; }; v2[0] = v3; }