HH
HH(a, b, c, d, x[ 0], S31); /* 33 */
HH(d, a, b, c, x[ 8], S32); /* 34 */
HH(c, d, a, b, x[ 4], S33); /* 35 */
HH(b, c, d, a, x[12], S34); /* 36 */
HH(a, b, c, d, x[ 2], S31); /* 37 */
HH(d, a, b, c, x[10], S32); /* 38 */
HH(c, d, a, b, x[ 6], S33); /* 39 */
HH(b, c, d, a, x[14], S34); /* 40 */
HH(a, b, c, d, x[ 1], S31); /* 41 */
HH(d, a, b, c, x[ 9], S32); /* 42 */
HH(c, d, a, b, x[ 5], S33); /* 43 */
HH(b, c, d, a, x[13], S34); /* 44 */
HH(a, b, c, d, x[ 3], S31); /* 45 */
HH(d, a, b, c, x[11], S32); /* 46 */
HH(c, d, a, b, x[ 7], S33); /* 47 */
HH(b, c, d, a, x[15], S34); /* 48 */
HH(a, b, c, d, x_5, MD5_SHIFT_31, MD5_CONST_e(32)); /* 33 */
HH(d, a, b, c, x_8, MD5_SHIFT_32, MD5_CONST_o(33)); /* 34 */
HH(c, d, a, b, x_11, MD5_SHIFT_33, MD5_CONST_e(34)); /* 35 */
HH(b, c, d, a, x_14, MD5_SHIFT_34, MD5_CONST_o(35)); /* 36 */
HH(a, b, c, d, x_1, MD5_SHIFT_31, MD5_CONST_e(36)); /* 37 */
HH(d, a, b, c, x_4, MD5_SHIFT_32, MD5_CONST_o(37)); /* 38 */
HH(c, d, a, b, x_7, MD5_SHIFT_33, MD5_CONST_e(38)); /* 39 */
HH(b, c, d, a, x_10, MD5_SHIFT_34, MD5_CONST_o(39)); /* 40 */
HH(a, b, c, d, x_13, MD5_SHIFT_31, MD5_CONST_e(40)); /* 41 */
HH(d, a, b, c, x_0, MD5_SHIFT_32, MD5_CONST_o(41)); /* 42 */
HH(c, d, a, b, x_3, MD5_SHIFT_33, MD5_CONST_e(42)); /* 43 */
HH(b, c, d, a, x_6, MD5_SHIFT_34, MD5_CONST_o(43)); /* 44 */
HH(a, b, c, d, x_9, MD5_SHIFT_31, MD5_CONST_e(44)); /* 45 */
HH(d, a, b, c, x_12, MD5_SHIFT_32, MD5_CONST_o(45)); /* 46 */
HH(c, d, a, b, x_15, MD5_SHIFT_33, MD5_CONST_e(46)); /* 47 */
HH(b, c, d, a, x_2, MD5_SHIFT_34, MD5_CONST_o(47)); /* 48 */
HH (a, b, c, d, in[ 5], S31, 4294588738U); /* 33 */
HH (d, a, b, c, in[ 8], S32, 2272392833U); /* 34 */
HH (c, d, a, b, in[11], S33, 1839030562U); /* 35 */
HH (b, c, d, a, in[14], S34, 4259657740U); /* 36 */
HH (a, b, c, d, in[ 1], S31, 2763975236U); /* 37 */
HH (d, a, b, c, in[ 4], S32, 1272893353U); /* 38 */
HH (c, d, a, b, in[ 7], S33, 4139469664U); /* 39 */
HH (b, c, d, a, in[10], S34, 3200236656U); /* 40 */
HH (a, b, c, d, in[13], S31, 681279174U); /* 41 */
HH (d, a, b, c, in[ 0], S32, 3936430074U); /* 42 */
HH (c, d, a, b, in[ 3], S33, 3572445317U); /* 43 */
HH (b, c, d, a, in[ 6], S34, 76029189U); /* 44 */
HH (a, b, c, d, in[ 9], S31, 3654602809U); /* 45 */
HH (d, a, b, c, in[12], S32, 3873151461U); /* 46 */
HH (c, d, a, b, in[15], S33, 530742520U); /* 47 */
HH (b, c, d, a, in[ 2], S34, 3299628645U); /* 48 */
HH (a, b, c, d, in[round3indices[i]], round3consts[i%4]); ROTATE;
HH (a, b, c, d, in[ 0], 3);
HH (d, a, b, c, in[ 8], 9);
HH (c, d, a, b, in[ 4], 11);
HH (b, c, d, a, in[12], 15);
HH (a, b, c, d, in[ 2], 3);
HH (d, a, b, c, in[10], 9);
HH (c, d, a, b, in[ 6], 11);
HH (b, c, d, a, in[14], 15);
HH (a, b, c, d, in[ 1], 3);
HH (d, a, b, c, in[ 9], 9);
HH (c, d, a, b, in[ 5], 11);
HH (b, c, d, a, in[13], 15);
HH (a, b, c, d, in[ 3], 3);
HH (d, a, b, c, in[11], 9);
HH (c, d, a, b, in[ 7], 11);
HH (b, c, d, a, in[15], 15);
HH (a, b, c, d, x[ 5], S31, 0xfffa3942); /* 33 */
HH (d, a, b, c, x[ 8], S32, 0x8771f681); /* 34 */
HH (c, d, a, b, x[11], S33, 0x6d9d6122); /* 35 */
HH (b, c, d, a, x[14], S34, 0xfde5380c); /* 36 */
HH (a, b, c, d, x[ 1], S31, 0xa4beea44); /* 37 */
HH (d, a, b, c, x[ 4], S32, 0x4bdecfa9); /* 38 */
HH (c, d, a, b, x[ 7], S33, 0xf6bb4b60); /* 39 */
HH (b, c, d, a, x[10], S34, 0xbebfbc70); /* 40 */
HH (a, b, c, d, x[13], S31, 0x289b7ec6); /* 41 */
HH (d, a, b, c, x[ 0], S32, 0xeaa127fa); /* 42 */
HH (c, d, a, b, x[ 3], S33, 0xd4ef3085); /* 43 */
HH (b, c, d, a, x[ 6], S34, 0x4881d05); /* 44 */
HH (a, b, c, d, x[ 9], S31, 0xd9d4d039); /* 45 */
HH (d, a, b, c, x[12], S32, 0xe6db99e5); /* 46 */
HH (c, d, a, b, x[15], S33, 0x1fa27cf8); /* 47 */
HH (b, c, d, a, x[ 2], S34, 0xc4ac5665); /* 48 */