B = GG(B, C, D, A, tmp[15], 13); A = HH(A, B, C, D, tmp[0], 3); D = HH(D, A, B, C, tmp[8], 9); C = HH(C, D, A, B, tmp[4], 11); B = HH(B, C, D, A, tmp[12], 15); A = HH(A, B, C, D, tmp[2], 3); D = HH(D, A, B, C, tmp[10], 9); C = HH(C, D, A, B, tmp[6], 11); B = HH(B, C, D, A, tmp[14], 15); A = HH(A, B, C, D, tmp[1], 3); D = HH(D, A, B, C, tmp[9], 9); C = HH(C, D, A, B, tmp[5], 11); B = HH(B, C, D, A, tmp[13], 15); A = HH(A, B, C, D, tmp[3], 3); D = HH(D, A, B, C, tmp[11], 9); C = HH(C, D, A, B, tmp[7], 11); B = HH(B, C, D, A, tmp[15], 15);
B = GG(B, C, D, A, tmp[15], 13); A = HH(A, B, C, D, tmp[0], 3); D = HH(D, A, B, C, tmp[8], 9); C = HH(C, D, A, B, tmp[4], 11); B = HH(B, C, D, A, tmp[12], 15); A = HH(A, B, C, D, tmp[2], 3); D = HH(D, A, B, C, tmp[10], 9); C = HH(C, D, A, B, tmp[6], 11); B = HH(B, C, D, A, tmp[14], 15); A = HH(A, B, C, D, tmp[1], 3); D = HH(D, A, B, C, tmp[9], 9); C = HH(C, D, A, B, tmp[5], 11); B = HH(B, C, D, A, tmp[13], 15); A = HH(A, B, C, D, tmp[3], 3); D = HH(D, A, B, C, tmp[11], 9); C = HH(C, D, A, B, tmp[7], 11); B = HH(B, C, D, A, tmp[15], 15);
B = GG(B, C, D, A, tmp[15], 13); A = HH(A, B, C, D, tmp[0], 3); D = HH(D, A, B, C, tmp[8], 9); C = HH(C, D, A, B, tmp[4], 11); B = HH(B, C, D, A, tmp[12], 15); A = HH(A, B, C, D, tmp[2], 3); D = HH(D, A, B, C, tmp[10], 9); C = HH(C, D, A, B, tmp[6], 11); B = HH(B, C, D, A, tmp[14], 15); A = HH(A, B, C, D, tmp[1], 3); D = HH(D, A, B, C, tmp[9], 9); C = HH(C, D, A, B, tmp[5], 11); B = HH(B, C, D, A, tmp[13], 15); A = HH(A, B, C, D, tmp[3], 3); D = HH(D, A, B, C, tmp[11], 9); C = HH(C, D, A, B, tmp[7], 11); B = HH(B, C, D, A, tmp[15], 15);
B = GG(B, C, D, A, tmp[15], 13); A = HH(A, B, C, D, tmp[0], 3); D = HH(D, A, B, C, tmp[8], 9); C = HH(C, D, A, B, tmp[4], 11); B = HH(B, C, D, A, tmp[12], 15); A = HH(A, B, C, D, tmp[2], 3); D = HH(D, A, B, C, tmp[10], 9); C = HH(C, D, A, B, tmp[6], 11); B = HH(B, C, D, A, tmp[14], 15); A = HH(A, B, C, D, tmp[1], 3); D = HH(D, A, B, C, tmp[9], 9); C = HH(C, D, A, B, tmp[5], 11); B = HH(B, C, D, A, tmp[13], 15); A = HH(A, B, C, D, tmp[3], 3); D = HH(D, A, B, C, tmp[11], 9); C = HH(C, D, A, B, tmp[7], 11); B = HH(B, C, D, A, tmp[15], 15);
B = GG(B, C, D, A, tmp[15], 13); A = HH(A, B, C, D, tmp[0], 3); D = HH(D, A, B, C, tmp[8], 9); C = HH(C, D, A, B, tmp[4], 11); B = HH(B, C, D, A, tmp[12], 15); A = HH(A, B, C, D, tmp[2], 3); D = HH(D, A, B, C, tmp[10], 9); C = HH(C, D, A, B, tmp[6], 11); B = HH(B, C, D, A, tmp[14], 15); A = HH(A, B, C, D, tmp[1], 3); D = HH(D, A, B, C, tmp[9], 9); C = HH(C, D, A, B, tmp[5], 11); B = HH(B, C, D, A, tmp[13], 15); A = HH(A, B, C, D, tmp[3], 3); D = HH(D, A, B, C, tmp[11], 9); C = HH(C, D, A, B, tmp[7], 11); B = HH(B, C, D, A, tmp[15], 15);