a += s1(b, c, d, e,w[ 19]); c = rotateLeft( c, 30); e += s2(a, b, c, d,w[ 20]); b = rotateLeft( b, 30); d += s2(e, a, b, c,w[ 21]); a = rotateLeft( a, 30); c += s2(d, e, a, b,w[ 22]); e = rotateLeft( e, 30); b += s2(c, d, e, a,w[ 23]); d = rotateLeft( d, 30); a += s2(b, c, d, e,w[ 24]); c = rotateLeft( c, 30); e += s2(a, b, c, d,w[ 25]); b = rotateLeft( b, 30); d += s2(e, a, b, c,w[ 26]); a = rotateLeft( a, 30); c += s2(d, e, a, b,w[ 27]); e = rotateLeft( e, 30); b += s2(c, d, e, a,w[ 28]); d = rotateLeft( d, 30); a += s2(b, c, d, e,w[ 29]); c = rotateLeft( c, 30); e += s2(a, b, c, d,w[ 30]); b = rotateLeft( b, 30); d += s2(e, a, b, c,w[ 31]); a = rotateLeft( a, 30); c += s2(d, e, a, b,w[ 32]); e = rotateLeft( e, 30); b += s2(c, d, e, a,w[ 33]); d = rotateLeft( d, 30); a += s2(b, c, d, e,w[ 34]); c = rotateLeft( c, 30); e += s2(a, b, c, d,w[ 35]); b = rotateLeft( b, 30); d += s2(e, a, b, c,w[ 36]); a = rotateLeft( a, 30); c += s2(d, e, a, b,w[ 37]); e = rotateLeft( e, 30); b += s2(c, d, e, a,w[ 38]); d = rotateLeft( d, 30); a += s2(b, c, d, e,w[ 39]); c = rotateLeft( c, 30);
{ b = rotateRight( b, 30); e -= s3(a, b, c, d,w2[ 40]);} { c = rotateRight( c, 30); a -= s2(b, c, d, e,w2[ 39]);} { d = rotateRight( d, 30); b -= s2(c, d, e, a,w2[ 38]);} { e = rotateRight( e, 30); c -= s2(d, e, a, b,w2[ 37]);} { a = rotateRight( a, 30); d -= s2(e, a, b, c,w2[ 36]);} { b = rotateRight( b, 30); e -= s2(a, b, c, d,w2[ 35]);} { c = rotateRight( c, 30); a -= s2(b, c, d, e,w2[ 34]);} { d = rotateRight( d, 30); b -= s2(c, d, e, a,w2[ 33]);} { e = rotateRight( e, 30); c -= s2(d, e, a, b,w2[ 32]);} { a = rotateRight( a, 30); d -= s2(e, a, b, c,w2[ 31]);} { b = rotateRight( b, 30); e -= s2(a, b, c, d,w2[ 30]);} { c = rotateRight( c, 30); a -= s2(b, c, d, e,w2[ 29]);} { d = rotateRight( d, 30); b -= s2(c, d, e, a,w2[ 28]);} { e = rotateRight( e, 30); c -= s2(d, e, a, b,w2[ 27]);} { a = rotateRight( a, 30); d -= s2(e, a, b, c,w2[ 26]);} { b = rotateRight( b, 30); e -= s2(a, b, c, d,w2[ 25]);} { c = rotateRight( c, 30); a -= s2(b, c, d, e,w2[ 24]);} { d = rotateRight( d, 30); b -= s2(c, d, e, a,w2[ 23]);} { e = rotateRight( e, 30); c -= s2(d, e, a, b,w2[ 22]);} { a = rotateRight( a, 30); d -= s2(e, a, b, c,w2[ 21]);} { b = rotateRight( b, 30); e -= s2(a, b, c, d,w2[ 20]);}
a += s1(b, c, d, e,w[ 19]); c = rotateLeft( c, 30); e += s2(a, b, c, d,w[ 20]); b = rotateLeft( b, 30); d += s2(e, a, b, c,w[ 21]); a = rotateLeft( a, 30); c += s2(d, e, a, b,w[ 22]); e = rotateLeft( e, 30); b += s2(c, d, e, a,w[ 23]); d = rotateLeft( d, 30); a += s2(b, c, d, e,w[ 24]); c = rotateLeft( c, 30); e += s2(a, b, c, d,w[ 25]); b = rotateLeft( b, 30); d += s2(e, a, b, c,w[ 26]); a = rotateLeft( a, 30); c += s2(d, e, a, b,w[ 27]); e = rotateLeft( e, 30); b += s2(c, d, e, a,w[ 28]); d = rotateLeft( d, 30); a += s2(b, c, d, e,w[ 29]); c = rotateLeft( c, 30); e += s2(a, b, c, d,w[ 30]); b = rotateLeft( b, 30); d += s2(e, a, b, c,w[ 31]); a = rotateLeft( a, 30); c += s2(d, e, a, b,w[ 32]); e = rotateLeft( e, 30); b += s2(c, d, e, a,w[ 33]); d = rotateLeft( d, 30); a += s2(b, c, d, e,w[ 34]); c = rotateLeft( c, 30); e += s2(a, b, c, d,w[ 35]); b = rotateLeft( b, 30); d += s2(e, a, b, c,w[ 36]); a = rotateLeft( a, 30); c += s2(d, e, a, b,w[ 37]); e = rotateLeft( e, 30); b += s2(c, d, e, a,w[ 38]); d = rotateLeft( d, 30); a += s2(b, c, d, e,w[ 39]); c = rotateLeft( c, 30);
{ b = rotateRight( b, 30); e -= s3(a, b, c, d,w2[ 40]);} { c = rotateRight( c, 30); a -= s2(b, c, d, e,w2[ 39]);} { d = rotateRight( d, 30); b -= s2(c, d, e, a,w2[ 38]);} { e = rotateRight( e, 30); c -= s2(d, e, a, b,w2[ 37]);} { a = rotateRight( a, 30); d -= s2(e, a, b, c,w2[ 36]);} { b = rotateRight( b, 30); e -= s2(a, b, c, d,w2[ 35]);} { c = rotateRight( c, 30); a -= s2(b, c, d, e,w2[ 34]);} { d = rotateRight( d, 30); b -= s2(c, d, e, a,w2[ 33]);} { e = rotateRight( e, 30); c -= s2(d, e, a, b,w2[ 32]);} { a = rotateRight( a, 30); d -= s2(e, a, b, c,w2[ 31]);} { b = rotateRight( b, 30); e -= s2(a, b, c, d,w2[ 30]);} { c = rotateRight( c, 30); a -= s2(b, c, d, e,w2[ 29]);} { d = rotateRight( d, 30); b -= s2(c, d, e, a,w2[ 28]);} { e = rotateRight( e, 30); c -= s2(d, e, a, b,w2[ 27]);} { a = rotateRight( a, 30); d -= s2(e, a, b, c,w2[ 26]);} { b = rotateRight( b, 30); e -= s2(a, b, c, d,w2[ 25]);} { c = rotateRight( c, 30); a -= s2(b, c, d, e,w2[ 24]);} { d = rotateRight( d, 30); b -= s2(c, d, e, a,w2[ 23]);} { e = rotateRight( e, 30); c -= s2(d, e, a, b,w2[ 22]);} { a = rotateRight( a, 30); d -= s2(e, a, b, c,w2[ 21]);} { b = rotateRight( b, 30); e -= s2(a, b, c, d,w2[ 20]);}