e += s1(a, b, c, d,w[ 0]); b = rotateLeft( b, 30); d += s1(e, a, b, c,w[ 1]); a = rotateLeft( a, 30); c += s1(d, e, a, b,w[ 2]); e = rotateLeft( e, 30); b += s1(c, d, e, a,w[ 3]); d = rotateLeft( d, 30); a += s1(b, c, d, e,w[ 4]); c = rotateLeft( c, 30); e += s1(a, b, c, d,w[ 5]); b = rotateLeft( b, 30); d += s1(e, a, b, c,w[ 6]); a = rotateLeft( a, 30); c += s1(d, e, a, b,w[ 7]); e = rotateLeft( e, 30); b += s1(c, d, e, a,w[ 8]); d = rotateLeft( d, 30); a += s1(b, c, d, e,w[ 9]); c = rotateLeft( c, 30); e += s1(a, b, c, d,w[ 10]); b = rotateLeft( b, 30); d += s1(e, a, b, c,w[ 11]); a = rotateLeft( a, 30); c += s1(d, e, a, b,w[ 12]); e = rotateLeft( e, 30); b += s1(c, d, e, a,w[ 13]); d = rotateLeft( d, 30); a += s1(b, c, d, e,w[ 14]); c = rotateLeft( c, 30); e += s1(a, b, c, d,w[ 15]); b = rotateLeft( b, 30); d += s1(e, a, b, c,w[ 16]); a = rotateLeft( a, 30); c += s1(d, e, a, b,w[ 17]); e = rotateLeft( e, 30); b += s1(c, d, e, a,w[ 18]); d = rotateLeft( d, 30); a += s1(b, c, d, e,w[ 19]); c = rotateLeft( c, 30);
{ b = rotateRight( b, 30); e -= s2(a, b, c, d,w2[ 20]);} { c = rotateRight( c, 30); a -= s1(b, c, d, e,w2[ 19]);} { d = rotateRight( d, 30); b -= s1(c, d, e, a,w2[ 18]);} { e = rotateRight( e, 30); c -= s1(d, e, a, b,w2[ 17]);} { a = rotateRight( a, 30); d -= s1(e, a, b, c,w2[ 16]);} { b = rotateRight( b, 30); e -= s1(a, b, c, d,w2[ 15]);} { c = rotateRight( c, 30); a -= s1(b, c, d, e,w2[ 14]);} { d = rotateRight( d, 30); b -= s1(c, d, e, a,w2[ 13]);} { e = rotateRight( e, 30); c -= s1(d, e, a, b,w2[ 12]);} { a = rotateRight( a, 30); d -= s1(e, a, b, c,w2[ 11]);} { b = rotateRight( b, 30); e -= s1(a, b, c, d,w2[ 10]);} { c = rotateRight( c, 30); a -= s1(b, c, d, e,w2[ 9]);} { d = rotateRight( d, 30); b -= s1(c, d, e, a,w2[ 8]);} { e = rotateRight( e, 30); c -= s1(d, e, a, b,w2[ 7]);} { a = rotateRight( a, 30); d -= s1(e, a, b, c,w2[ 6]);} { b = rotateRight( b, 30); e -= s1(a, b, c, d,w2[ 5]);} { c = rotateRight( c, 30); a -= s1(b, c, d, e,w2[ 4]);} { d = rotateRight( d, 30); b -= s1(c, d, e, a,w2[ 3]);} { e = rotateRight( e, 30); c -= s1(d, e, a, b,w2[ 2]);} { a = rotateRight( a, 30); d -= s1(e, a, b, c,w2[ 1]);} { b = rotateRight( b, 30); e -= s1(a, b, c, d,w2[ 0]);}
e += s1(a, b, c, d,w[ 0]); b = rotateLeft( b, 30); d += s1(e, a, b, c,w[ 1]); a = rotateLeft( a, 30); c += s1(d, e, a, b,w[ 2]); e = rotateLeft( e, 30); b += s1(c, d, e, a,w[ 3]); d = rotateLeft( d, 30); a += s1(b, c, d, e,w[ 4]); c = rotateLeft( c, 30); e += s1(a, b, c, d,w[ 5]); b = rotateLeft( b, 30); d += s1(e, a, b, c,w[ 6]); a = rotateLeft( a, 30); c += s1(d, e, a, b,w[ 7]); e = rotateLeft( e, 30); b += s1(c, d, e, a,w[ 8]); d = rotateLeft( d, 30); a += s1(b, c, d, e,w[ 9]); c = rotateLeft( c, 30); e += s1(a, b, c, d,w[ 10]); b = rotateLeft( b, 30); d += s1(e, a, b, c,w[ 11]); a = rotateLeft( a, 30); c += s1(d, e, a, b,w[ 12]); e = rotateLeft( e, 30); b += s1(c, d, e, a,w[ 13]); d = rotateLeft( d, 30); a += s1(b, c, d, e,w[ 14]); c = rotateLeft( c, 30); e += s1(a, b, c, d,w[ 15]); b = rotateLeft( b, 30); d += s1(e, a, b, c,w[ 16]); a = rotateLeft( a, 30); c += s1(d, e, a, b,w[ 17]); e = rotateLeft( e, 30); b += s1(c, d, e, a,w[ 18]); d = rotateLeft( d, 30); a += s1(b, c, d, e,w[ 19]); c = rotateLeft( c, 30);
{ b = rotateRight( b, 30); e -= s2(a, b, c, d,w2[ 20]);} { c = rotateRight( c, 30); a -= s1(b, c, d, e,w2[ 19]);} { d = rotateRight( d, 30); b -= s1(c, d, e, a,w2[ 18]);} { e = rotateRight( e, 30); c -= s1(d, e, a, b,w2[ 17]);} { a = rotateRight( a, 30); d -= s1(e, a, b, c,w2[ 16]);} { b = rotateRight( b, 30); e -= s1(a, b, c, d,w2[ 15]);} { c = rotateRight( c, 30); a -= s1(b, c, d, e,w2[ 14]);} { d = rotateRight( d, 30); b -= s1(c, d, e, a,w2[ 13]);} { e = rotateRight( e, 30); c -= s1(d, e, a, b,w2[ 12]);} { a = rotateRight( a, 30); d -= s1(e, a, b, c,w2[ 11]);} { b = rotateRight( b, 30); e -= s1(a, b, c, d,w2[ 10]);} { c = rotateRight( c, 30); a -= s1(b, c, d, e,w2[ 9]);} { d = rotateRight( d, 30); b -= s1(c, d, e, a,w2[ 8]);} { e = rotateRight( e, 30); c -= s1(d, e, a, b,w2[ 7]);} { a = rotateRight( a, 30); d -= s1(e, a, b, c,w2[ 6]);} { b = rotateRight( b, 30); e -= s1(a, b, c, d,w2[ 5]);} { c = rotateRight( c, 30); a -= s1(b, c, d, e,w2[ 4]);} { d = rotateRight( d, 30); b -= s1(c, d, e, a,w2[ 3]);} { e = rotateRight( e, 30); c -= s1(d, e, a, b,w2[ 2]);} { a = rotateRight( a, 30); d -= s1(e, a, b, c,w2[ 1]);} { b = rotateRight( b, 30); e -= s1(a, b, c, d,w2[ 0]);}