SHA256ROUND
SHA256ROUND(a, b, c, d, e, f, g, h, 0, w0);
SHA256ROUND(h, a, b, c, d, e, f, g, 1, w1);
SHA256ROUND(g, h, a, b, c, d, e, f, 2, w2);
SHA256ROUND(f, g, h, a, b, c, d, e, 3, w3);
SHA256ROUND(e, f, g, h, a, b, c, d, 4, w4);
SHA256ROUND(d, e, f, g, h, a, b, c, 5, w5);
SHA256ROUND(c, d, e, f, g, h, a, b, 6, w6);
SHA256ROUND(b, c, d, e, f, g, h, a, 7, w7);
SHA256ROUND(a, b, c, d, e, f, g, h, 8, w8);
SHA256ROUND(h, a, b, c, d, e, f, g, 9, w9);
SHA256ROUND(g, h, a, b, c, d, e, f, 10, w10);
SHA256ROUND(f, g, h, a, b, c, d, e, 11, w11);
SHA256ROUND(e, f, g, h, a, b, c, d, 12, w12);
SHA256ROUND(d, e, f, g, h, a, b, c, 13, w13);
SHA256ROUND(c, d, e, f, g, h, a, b, 14, w14);
SHA256ROUND(b, c, d, e, f, g, h, a, 15, w15);
SHA256ROUND(a, b, c, d, e, f, g, h, 16, w0);
SHA256ROUND(h, a, b, c, d, e, f, g, 17, w1);
SHA256ROUND(g, h, a, b, c, d, e, f, 18, w2);
SHA256ROUND(f, g, h, a, b, c, d, e, 19, w3);
SHA256ROUND(e, f, g, h, a, b, c, d, 20, w4);
SHA256ROUND(d, e, f, g, h, a, b, c, 21, w5);
SHA256ROUND(c, d, e, f, g, h, a, b, 22, w6);
SHA256ROUND(b, c, d, e, f, g, h, a, 23, w7);
SHA256ROUND(a, b, c, d, e, f, g, h, 24, w8);
SHA256ROUND(h, a, b, c, d, e, f, g, 25, w9);
SHA256ROUND(g, h, a, b, c, d, e, f, 26, w10);
SHA256ROUND(f, g, h, a, b, c, d, e, 27, w11);
SHA256ROUND(e, f, g, h, a, b, c, d, 28, w12);
SHA256ROUND(d, e, f, g, h, a, b, c, 29, w13);
SHA256ROUND(c, d, e, f, g, h, a, b, 30, w14);
SHA256ROUND(b, c, d, e, f, g, h, a, 31, w15);
SHA256ROUND(a, b, c, d, e, f, g, h, 32, w0);
SHA256ROUND(h, a, b, c, d, e, f, g, 33, w1);
SHA256ROUND(g, h, a, b, c, d, e, f, 34, w2);
SHA256ROUND(f, g, h, a, b, c, d, e, 35, w3);
SHA256ROUND(e, f, g, h, a, b, c, d, 36, w4);
SHA256ROUND(d, e, f, g, h, a, b, c, 37, w5);
SHA256ROUND(c, d, e, f, g, h, a, b, 38, w6);
SHA256ROUND(b, c, d, e, f, g, h, a, 39, w7);
SHA256ROUND(a, b, c, d, e, f, g, h, 40, w8);
SHA256ROUND(h, a, b, c, d, e, f, g, 41, w9);
SHA256ROUND(g, h, a, b, c, d, e, f, 42, w10);
SHA256ROUND(f, g, h, a, b, c, d, e, 43, w11);
SHA256ROUND(e, f, g, h, a, b, c, d, 44, w12);
SHA256ROUND(d, e, f, g, h, a, b, c, 45, w13);
SHA256ROUND(c, d, e, f, g, h, a, b, 46, w14);
SHA256ROUND(b, c, d, e, f, g, h, a, 47, w15);
SHA256ROUND(a, b, c, d, e, f, g, h, 48, w0);
SHA256ROUND(h, a, b, c, d, e, f, g, 49, w1);
SHA256ROUND(g, h, a, b, c, d, e, f, 50, w2);
SHA256ROUND(f, g, h, a, b, c, d, e, 51, w3);
SHA256ROUND(e, f, g, h, a, b, c, d, 52, w4);
SHA256ROUND(d, e, f, g, h, a, b, c, 53, w5);
SHA256ROUND(c, d, e, f, g, h, a, b, 54, w6);
SHA256ROUND(b, c, d, e, f, g, h, a, 55, w7);
SHA256ROUND(a, b, c, d, e, f, g, h, 56, w8);
SHA256ROUND(h, a, b, c, d, e, f, g, 57, w9);
SHA256ROUND(g, h, a, b, c, d, e, f, 58, w10);
SHA256ROUND(f, g, h, a, b, c, d, e, 59, w11);
SHA256ROUND(e, f, g, h, a, b, c, d, 60, w12);
SHA256ROUND(d, e, f, g, h, a, b, c, 61, w13);
SHA256ROUND(c, d, e, f, g, h, a, b, 62, w14);
SHA256ROUND(b, c, d, e, f, g, h, a, 63, w15);