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