a += s3(b, c, d, e,w[ 59]); c = rotateLeft( c, 30); e += s4(a, b, c, d,w[ 60]); b = rotateLeft( b, 30); d += s4(e, a, b, c,w[ 61]); a = rotateLeft( a, 30); c += s4(d, e, a, b,w[ 62]); e = rotateLeft( e, 30); b += s4(c, d, e, a,w[ 63]); d = rotateLeft( d, 30); a += s4(b, c, d, e,w[ 64]); c = rotateLeft( c, 30); state65.save(a, b, c, d, e); e += s4(a, b, c, d,w[ 65]); b = rotateLeft( b, 30); d += s4(e, a, b, c,w[ 66]); a = rotateLeft( a, 30); c += s4(d, e, a, b,w[ 67]); e = rotateLeft( e, 30); b += s4(c, d, e, a,w[ 68]); d = rotateLeft( d, 30); a += s4(b, c, d, e,w[ 69]); c = rotateLeft( c, 30); e += s4(a, b, c, d,w[ 70]); b = rotateLeft( b, 30); d += s4(e, a, b, c,w[ 71]); a = rotateLeft( a, 30); c += s4(d, e, a, b,w[ 72]); e = rotateLeft( e, 30); b += s4(c, d, e, a,w[ 73]); d = rotateLeft( d, 30); a += s4(b, c, d, e,w[ 74]); c = rotateLeft( c, 30); e += s4(a, b, c, d,w[ 75]); b = rotateLeft( b, 30); d += s4(e, a, b, c,w[ 76]); a = rotateLeft( a, 30); c += s4(d, e, a, b,w[ 77]); e = rotateLeft( e, 30); b += s4(c, d, e, a,w[ 78]); d = rotateLeft( d, 30); a += s4(b, c, d, e,w[ 79]); c = rotateLeft( c, 30);
{ c = rotateRight( c, 30); a -= s4(b, c, d, e,w2[ 64]);} { d = rotateRight( d, 30); b -= s4(c, d, e, a,w2[ 63]);} { e = rotateRight( e, 30); c -= s4(d, e, a, b,w2[ 62]);} { a = rotateRight( a, 30); d -= s4(e, a, b, c,w2[ 61]);} { b = rotateRight( b, 30); e -= s4(a, b, c, d,w2[ 60]);} { e += s4(a, b, c, d,w2[ 60]); b = rotateLeft( b, 30);} { d += s4(e, a, b, c,w2[ 61]); a = rotateLeft( a, 30);} { c += s4(d, e, a, b,w2[ 62]); e = rotateLeft( e, 30);} { b += s4(c, d, e, a,w2[ 63]); d = rotateLeft( d, 30);} { a += s4(b, c, d, e,w2[ 64]); c = rotateLeft( c, 30);} { e += s4(a, b, c, d,w2[ 65]); b = rotateLeft( b, 30);} { d += s4(e, a, b, c,w2[ 66]); a = rotateLeft( a, 30);} { c += s4(d, e, a, b,w2[ 67]); e = rotateLeft( e, 30);} { b += s4(c, d, e, a,w2[ 68]); d = rotateLeft( d, 30);} { a += s4(b, c, d, e,w2[ 69]); c = rotateLeft( c, 30);} { e += s4(a, b, c, d,w2[ 70]); b = rotateLeft( b, 30);} { d += s4(e, a, b, c,w2[ 71]); a = rotateLeft( a, 30);} { c += s4(d, e, a, b,w2[ 72]); e = rotateLeft( e, 30);} { b += s4(c, d, e, a,w2[ 73]); d = rotateLeft( d, 30);} { a += s4(b, c, d, e,w2[ 74]); c = rotateLeft( c, 30);} { e += s4(a, b, c, d,w2[ 75]); b = rotateLeft( b, 30);} { d += s4(e, a, b, c,w2[ 76]); a = rotateLeft( a, 30);} { c += s4(d, e, a, b,w2[ 77]); e = rotateLeft( e, 30);} { b += s4(c, d, e, a,w2[ 78]); d = rotateLeft( d, 30);} { a += s4(b, c, d, e,w2[ 79]); c = rotateLeft( c, 30);}
a += s3(b, c, d, e,w[ 59]); c = rotateLeft( c, 30); e += s4(a, b, c, d,w[ 60]); b = rotateLeft( b, 30); d += s4(e, a, b, c,w[ 61]); a = rotateLeft( a, 30); c += s4(d, e, a, b,w[ 62]); e = rotateLeft( e, 30); b += s4(c, d, e, a,w[ 63]); d = rotateLeft( d, 30); a += s4(b, c, d, e,w[ 64]); c = rotateLeft( c, 30); state65.save(a, b, c, d, e); e += s4(a, b, c, d,w[ 65]); b = rotateLeft( b, 30); d += s4(e, a, b, c,w[ 66]); a = rotateLeft( a, 30); c += s4(d, e, a, b,w[ 67]); e = rotateLeft( e, 30); b += s4(c, d, e, a,w[ 68]); d = rotateLeft( d, 30); a += s4(b, c, d, e,w[ 69]); c = rotateLeft( c, 30); e += s4(a, b, c, d,w[ 70]); b = rotateLeft( b, 30); d += s4(e, a, b, c,w[ 71]); a = rotateLeft( a, 30); c += s4(d, e, a, b,w[ 72]); e = rotateLeft( e, 30); b += s4(c, d, e, a,w[ 73]); d = rotateLeft( d, 30); a += s4(b, c, d, e,w[ 74]); c = rotateLeft( c, 30); e += s4(a, b, c, d,w[ 75]); b = rotateLeft( b, 30); d += s4(e, a, b, c,w[ 76]); a = rotateLeft( a, 30); c += s4(d, e, a, b,w[ 77]); e = rotateLeft( e, 30); b += s4(c, d, e, a,w[ 78]); d = rotateLeft( d, 30); a += s4(b, c, d, e,w[ 79]); c = rotateLeft( c, 30);
{ c = rotateRight( c, 30); a -= s4(b, c, d, e,w2[ 64]);} { d = rotateRight( d, 30); b -= s4(c, d, e, a,w2[ 63]);} { e = rotateRight( e, 30); c -= s4(d, e, a, b,w2[ 62]);} { a = rotateRight( a, 30); d -= s4(e, a, b, c,w2[ 61]);} { b = rotateRight( b, 30); e -= s4(a, b, c, d,w2[ 60]);} { e += s4(a, b, c, d,w2[ 60]); b = rotateLeft( b, 30);} { d += s4(e, a, b, c,w2[ 61]); a = rotateLeft( a, 30);} { c += s4(d, e, a, b,w2[ 62]); e = rotateLeft( e, 30);} { b += s4(c, d, e, a,w2[ 63]); d = rotateLeft( d, 30);} { a += s4(b, c, d, e,w2[ 64]); c = rotateLeft( c, 30);} { e += s4(a, b, c, d,w2[ 65]); b = rotateLeft( b, 30);} { d += s4(e, a, b, c,w2[ 66]); a = rotateLeft( a, 30);} { c += s4(d, e, a, b,w2[ 67]); e = rotateLeft( e, 30);} { b += s4(c, d, e, a,w2[ 68]); d = rotateLeft( d, 30);} { a += s4(b, c, d, e,w2[ 69]); c = rotateLeft( c, 30);} { e += s4(a, b, c, d,w2[ 70]); b = rotateLeft( b, 30);} { d += s4(e, a, b, c,w2[ 71]); a = rotateLeft( a, 30);} { c += s4(d, e, a, b,w2[ 72]); e = rotateLeft( e, 30);} { b += s4(c, d, e, a,w2[ 73]); d = rotateLeft( d, 30);} { a += s4(b, c, d, e,w2[ 74]); c = rotateLeft( c, 30);} { e += s4(a, b, c, d,w2[ 75]); b = rotateLeft( b, 30);} { d += s4(e, a, b, c,w2[ 76]); a = rotateLeft( a, 30);} { c += s4(d, e, a, b,w2[ 77]); e = rotateLeft( e, 30);} { b += s4(c, d, e, a,w2[ 78]); d = rotateLeft( d, 30);} { a += s4(b, c, d, e,w2[ 79]); c = rotateLeft( c, 30);}