sha512_round
sha512_round(&a, &b, &c, &d, &e, &f, &g, &h, K512[0], W[0]);
sha512_round(&a, &b, &c, &d, &e, &f, &g, &h, K512[1], W[1]);
sha512_round(&a, &b, &c, &d, &e, &f, &g, &h, K512[2], W[2]);
sha512_round(&a, &b, &c, &d, &e, &f, &g, &h, K512[3], W[3]);
sha512_round(&a, &b, &c, &d, &e, &f, &g, &h, K512[4], W[4]);
sha512_round(&a, &b, &c, &d, &e, &f, &g, &h, K512[5], W[5]);
sha512_round(&a, &b, &c, &d, &e, &f, &g, &h, K512[6], W[6]);
sha512_round(&a, &b, &c, &d, &e, &f, &g, &h, K512[7], W[7]);
sha512_round(&a, &b, &c, &d, &e, &f, &g, &h, K512[8], W[8]);
sha512_round(&a, &b, &c, &d, &e, &f, &g, &h, K512[9], W[9]);
sha512_round(&a, &b, &c, &d, &e, &f, &g, &h, K512[10], W[10]);
sha512_round(&a, &b, &c, &d, &e, &f, &g, &h, K512[11], W[11]);
sha512_round(&a, &b, &c, &d, &e, &f, &g, &h, K512[12], W[12]);
sha512_round(&a, &b, &c, &d, &e, &f, &g, &h, K512[13], W[13]);
sha512_round(&a, &b, &c, &d, &e, &f, &g, &h, K512[14], W[14]);
sha512_round(&a, &b, &c, &d, &e, &f, &g, &h, K512[15], W[15]);
sha512_round(&a, &b, &c, &d, &e, &f, &g, &h, K512[i + 0], W[0]);
sha512_round(&a, &b, &c, &d, &e, &f, &g, &h, K512[i + 1], W[1]);
sha512_round(&a, &b, &c, &d, &e, &f, &g, &h, K512[i + 2], W[2]);
sha512_round(&a, &b, &c, &d, &e, &f, &g, &h, K512[i + 3], W[3]);
sha512_round(&a, &b, &c, &d, &e, &f, &g, &h, K512[i + 4], W[4]);
sha512_round(&a, &b, &c, &d, &e, &f, &g, &h, K512[i + 5], W[5]);
sha512_round(&a, &b, &c, &d, &e, &f, &g, &h, K512[i + 6], W[6]);
sha512_round(&a, &b, &c, &d, &e, &f, &g, &h, K512[i + 7], W[7]);
sha512_round(&a, &b, &c, &d, &e, &f, &g, &h, K512[i + 8], W[8]);
sha512_round(&a, &b, &c, &d, &e, &f, &g, &h, K512[i + 9], W[9]);
sha512_round(&a, &b, &c, &d, &e, &f, &g, &h, K512[i + 10], W[10]);
sha512_round(&a, &b, &c, &d, &e, &f, &g, &h, K512[i + 11], W[11]);
sha512_round(&a, &b, &c, &d, &e, &f, &g, &h, K512[i + 12], W[12]);
sha512_round(&a, &b, &c, &d, &e, &f, &g, &h, K512[i + 13], W[13]);
sha512_round(&a, &b, &c, &d, &e, &f, &g, &h, K512[i + 14], W[14]);
sha512_round(&a, &b, &c, &d, &e, &f, &g, &h, K512[i + 15], W[15]);
sha512_round(&a, &b, &c, &d, &e, &f, &g, &h, K512[i], W[i % 16]);
sha512_round(&a, &b, &c, &d, &e, &f, &g, &h, K512[0], X[0]);
sha512_round(&a, &b, &c, &d, &e, &f, &g, &h, K512[1], X[1]);
sha512_round(&a, &b, &c, &d, &e, &f, &g, &h, K512[2], X[2]);
sha512_round(&a, &b, &c, &d, &e, &f, &g, &h, K512[3], X[3]);
sha512_round(&a, &b, &c, &d, &e, &f, &g, &h, K512[4], X[4]);
sha512_round(&a, &b, &c, &d, &e, &f, &g, &h, K512[5], X[5]);
sha512_round(&a, &b, &c, &d, &e, &f, &g, &h, K512[6], X[6]);
sha512_round(&a, &b, &c, &d, &e, &f, &g, &h, K512[7], X[7]);
sha512_round(&a, &b, &c, &d, &e, &f, &g, &h, K512[8], X[8]);
sha512_round(&a, &b, &c, &d, &e, &f, &g, &h, K512[9], X[9]);
sha512_round(&a, &b, &c, &d, &e, &f, &g, &h, K512[10], X[10]);
sha512_round(&a, &b, &c, &d, &e, &f, &g, &h, K512[11], X[11]);
sha512_round(&a, &b, &c, &d, &e, &f, &g, &h, K512[12], X[12]);
sha512_round(&a, &b, &c, &d, &e, &f, &g, &h, K512[13], X[13]);
sha512_round(&a, &b, &c, &d, &e, &f, &g, &h, K512[14], X[14]);
sha512_round(&a, &b, &c, &d, &e, &f, &g, &h, K512[15], X[15]);
sha512_round(&a, &b, &c, &d, &e, &f, &g, &h, K512[i + 0], X[0]);
sha512_round(&a, &b, &c, &d, &e, &f, &g, &h, K512[i + 1], X[1]);
sha512_round(&a, &b, &c, &d, &e, &f, &g, &h, K512[i + 2], X[2]);
sha512_round(&a, &b, &c, &d, &e, &f, &g, &h, K512[i + 3], X[3]);
sha512_round(&a, &b, &c, &d, &e, &f, &g, &h, K512[i + 4], X[4]);
sha512_round(&a, &b, &c, &d, &e, &f, &g, &h, K512[i + 5], X[5]);
sha512_round(&a, &b, &c, &d, &e, &f, &g, &h, K512[i + 6], X[6]);
sha512_round(&a, &b, &c, &d, &e, &f, &g, &h, K512[i + 7], X[7]);
sha512_round(&a, &b, &c, &d, &e, &f, &g, &h, K512[i + 8], X[8]);
sha512_round(&a, &b, &c, &d, &e, &f, &g, &h, K512[i + 9], X[9]);
sha512_round(&a, &b, &c, &d, &e, &f, &g, &h, K512[i + 10], X[10]);
sha512_round(&a, &b, &c, &d, &e, &f, &g, &h, K512[i + 11], X[11]);
sha512_round(&a, &b, &c, &d, &e, &f, &g, &h, K512[i + 12], X[12]);
sha512_round(&a, &b, &c, &d, &e, &f, &g, &h, K512[i + 13], X[13]);
sha512_round(&a, &b, &c, &d, &e, &f, &g, &h, K512[i + 14], X[14]);
sha512_round(&a, &b, &c, &d, &e, &f, &g, &h, K512[i + 15], X[15]);