void MD5Transform(unsigned int state[4], const unsigned char block[64]) {
  unsigned int a = state[0], b = state[1], c = state[2], d = state[3], x[16];
  memcpy(x, block, 64);
  {
    (a) += ((((b)) & ((c))) | ((~(b)) & ((d)))) + (x[0]) +
           (unsigned int)(0xd76aa478);
    (a) = ((((a)) << ((7))) | (((a)) >> (32 - ((7)))));
    (a) += (b);
  };
  {
    (d) += ((((a)) & ((b))) | ((~(a)) & ((c)))) + (x[1]) +
           (unsigned int)(0xe8c7b756);
    (d) = ((((d)) << ((12))) | (((d)) >> (32 - ((12)))));
    (d) += (a);
  };
  {
    (c) += ((((d)) & ((a))) | ((~(d)) & ((b)))) + (x[2]) +
           (unsigned int)(0x242070db);
    (c) = ((((c)) << ((17))) | (((c)) >> (32 - ((17)))));
    (c) += (d);
  };
  {
    (b) += ((((c)) & ((d))) | ((~(c)) & ((a)))) + (x[3]) +
           (unsigned int)(0xc1bdceee);
    (b) = ((((b)) << ((22))) | (((b)) >> (32 - ((22)))));
    (b) += (c);
  };
  {
    (a) += ((((b)) & ((c))) | ((~(b)) & ((d)))) + (x[4]) +
           (unsigned int)(0xf57c0faf);
    (a) = ((((a)) << ((7))) | (((a)) >> (32 - ((7)))));
    (a) += (b);
  };
  {
    (d) += ((((a)) & ((b))) | ((~(a)) & ((c)))) + (x[5]) +
           (unsigned int)(0x4787c62a);
    (d) = ((((d)) << ((12))) | (((d)) >> (32 - ((12)))));
    (d) += (a);
  };
  {
    (c) += ((((d)) & ((a))) | ((~(d)) & ((b)))) + (x[6]) +
           (unsigned int)(0xa8304613);
    (c) = ((((c)) << ((17))) | (((c)) >> (32 - ((17)))));
    (c) += (d);
  };
  {
    (b) += ((((c)) & ((d))) | ((~(c)) & ((a)))) + (x[7]) +
           (unsigned int)(0xfd469501);
    (b) = ((((b)) << ((22))) | (((b)) >> (32 - ((22)))));
    (b) += (c);
  };
  {
    (a) += ((((b)) & ((c))) | ((~(b)) & ((d)))) + (x[8]) +
           (unsigned int)(0x698098d8);
    (a) = ((((a)) << ((7))) | (((a)) >> (32 - ((7)))));
    (a) += (b);
  };
  {
    (d) += ((((a)) & ((b))) | ((~(a)) & ((c)))) + (x[9]) +
           (unsigned int)(0x8b44f7af);
    (d) = ((((d)) << ((12))) | (((d)) >> (32 - ((12)))));
    (d) += (a);
  };
  {
    (c) += ((((d)) & ((a))) | ((~(d)) & ((b)))) + (x[10]) +
           (unsigned int)(0xffff5bb1);
    (c) = ((((c)) << ((17))) | (((c)) >> (32 - ((17)))));
    (c) += (d);
  };
  {
    (b) += ((((c)) & ((d))) | ((~(c)) & ((a)))) + (x[11]) +
           (unsigned int)(0x895cd7be);
    (b) = ((((b)) << ((22))) | (((b)) >> (32 - ((22)))));
    (b) += (c);
  };
  {
    (a) += ((((b)) & ((c))) | ((~(b)) & ((d)))) + (x[12]) +
           (unsigned int)(0x6b901122);
    (a) = ((((a)) << ((7))) | (((a)) >> (32 - ((7)))));
    (a) += (b);
  };
  {
    (d) += ((((a)) & ((b))) | ((~(a)) & ((c)))) + (x[13]) +
           (unsigned int)(0xfd987193);
    (d) = ((((d)) << ((12))) | (((d)) >> (32 - ((12)))));
    (d) += (a);
  };
  {
    (c) += ((((d)) & ((a))) | ((~(d)) & ((b)))) + (x[14]) +
           (unsigned int)(0xa679438e);
    (c) = ((((c)) << ((17))) | (((c)) >> (32 - ((17)))));
    (c) += (d);
  };
  {
    (b) += ((((c)) & ((d))) | ((~(c)) & ((a)))) + (x[15]) +
           (unsigned int)(0x49b40821);
    (b) = ((((b)) << ((22))) | (((b)) >> (32 - ((22)))));
    (b) += (c);
  };
  {
    (a) += ((((b)) & ((d))) | (((c)) & (~(d)))) + (x[1]) +
           (unsigned int)(0xf61e2562);
    (a) = ((((a)) << ((5))) | (((a)) >> (32 - ((5)))));
    (a) += (b);
  };
  {
    (d) += ((((a)) & ((c))) | (((b)) & (~(c)))) + (x[6]) +
           (unsigned int)(0xc040b340);
    (d) = ((((d)) << ((9))) | (((d)) >> (32 - ((9)))));
    (d) += (a);
  };
  {
    (c) += ((((d)) & ((b))) | (((a)) & (~(b)))) + (x[11]) +
           (unsigned int)(0x265e5a51);
    (c) = ((((c)) << ((14))) | (((c)) >> (32 - ((14)))));
    (c) += (d);
  };
  {
    (b) += ((((c)) & ((a))) | (((d)) & (~(a)))) + (x[0]) +
           (unsigned int)(0xe9b6c7aa);
    (b) = ((((b)) << ((20))) | (((b)) >> (32 - ((20)))));
    (b) += (c);
  };
  {
    (a) += ((((b)) & ((d))) | (((c)) & (~(d)))) + (x[5]) +
           (unsigned int)(0xd62f105d);
    (a) = ((((a)) << ((5))) | (((a)) >> (32 - ((5)))));
    (a) += (b);
  };
  {
    (d) += ((((a)) & ((c))) | (((b)) & (~(c)))) + (x[10]) +
           (unsigned int)(0x2441453);
    (d) = ((((d)) << ((9))) | (((d)) >> (32 - ((9)))));
    (d) += (a);
  };
  {
    (c) += ((((d)) & ((b))) | (((a)) & (~(b)))) + (x[15]) +
           (unsigned int)(0xd8a1e681);
    (c) = ((((c)) << ((14))) | (((c)) >> (32 - ((14)))));
    (c) += (d);
  };
  {
    (b) += ((((c)) & ((a))) | (((d)) & (~(a)))) + (x[4]) +
           (unsigned int)(0xe7d3fbc8);
    (b) = ((((b)) << ((20))) | (((b)) >> (32 - ((20)))));
    (b) += (c);
  };
  {
    (a) += ((((b)) & ((d))) | (((c)) & (~(d)))) + (x[9]) +
           (unsigned int)(0x21e1cde6);
    (a) = ((((a)) << ((5))) | (((a)) >> (32 - ((5)))));
    (a) += (b);
  };
  {
    (d) += ((((a)) & ((c))) | (((b)) & (~(c)))) + (x[14]) +
           (unsigned int)(0xc33707d6);
    (d) = ((((d)) << ((9))) | (((d)) >> (32 - ((9)))));
    (d) += (a);
  };
  {
    (c) += ((((d)) & ((b))) | (((a)) & (~(b)))) + (x[3]) +
           (unsigned int)(0xf4d50d87);
    (c) = ((((c)) << ((14))) | (((c)) >> (32 - ((14)))));
    (c) += (d);
  };
  {
    (b) += ((((c)) & ((a))) | (((d)) & (~(a)))) + (x[8]) +
           (unsigned int)(0x455a14ed);
    (b) = ((((b)) << ((20))) | (((b)) >> (32 - ((20)))));
    (b) += (c);
  };
  {
    (a) += ((((b)) & ((d))) | (((c)) & (~(d)))) + (x[13]) +
           (unsigned int)(0xa9e3e905);
    (a) = ((((a)) << ((5))) | (((a)) >> (32 - ((5)))));
    (a) += (b);
  };
  {
    (d) += ((((a)) & ((c))) | (((b)) & (~(c)))) + (x[2]) +
           (unsigned int)(0xfcefa3f8);
    (d) = ((((d)) << ((9))) | (((d)) >> (32 - ((9)))));
    (d) += (a);
  };
  {
    (c) += ((((d)) & ((b))) | (((a)) & (~(b)))) + (x[7]) +
           (unsigned int)(0x676f02d9);
    (c) = ((((c)) << ((14))) | (((c)) >> (32 - ((14)))));
    (c) += (d);
  };
  {
    (b) += ((((c)) & ((a))) | (((d)) & (~(a)))) + (x[12]) +
           (unsigned int)(0x8d2a4c8a);
    (b) = ((((b)) << ((20))) | (((b)) >> (32 - ((20)))));
    (b) += (c);
  };
  {
    (a) += (((b)) ^ ((c)) ^ ((d))) + (x[5]) + (unsigned int)(0xfffa3942);
    (a) = ((((a)) << ((4))) | (((a)) >> (32 - ((4)))));
    (a) += (b);
  };
  {
    (d) += (((a)) ^ ((b)) ^ ((c))) + (x[8]) + (unsigned int)(0x8771f681);
    (d) = ((((d)) << ((11))) | (((d)) >> (32 - ((11)))));
    (d) += (a);
  };
  {
    (c) += (((d)) ^ ((a)) ^ ((b))) + (x[11]) + (unsigned int)(0x6d9d6122);
    (c) = ((((c)) << ((16))) | (((c)) >> (32 - ((16)))));
    (c) += (d);
  };
  {
    (b) += (((c)) ^ ((d)) ^ ((a))) + (x[14]) + (unsigned int)(0xfde5380c);
    (b) = ((((b)) << ((23))) | (((b)) >> (32 - ((23)))));
    (b) += (c);
  };
  {
    (a) += (((b)) ^ ((c)) ^ ((d))) + (x[1]) + (unsigned int)(0xa4beea44);
    (a) = ((((a)) << ((4))) | (((a)) >> (32 - ((4)))));
    (a) += (b);
  };
  {
    (d) += (((a)) ^ ((b)) ^ ((c))) + (x[4]) + (unsigned int)(0x4bdecfa9);
    (d) = ((((d)) << ((11))) | (((d)) >> (32 - ((11)))));
    (d) += (a);
  };
  {
    (c) += (((d)) ^ ((a)) ^ ((b))) + (x[7]) + (unsigned int)(0xf6bb4b60);
    (c) = ((((c)) << ((16))) | (((c)) >> (32 - ((16)))));
    (c) += (d);
  };
  {
    (b) += (((c)) ^ ((d)) ^ ((a))) + (x[10]) + (unsigned int)(0xbebfbc70);
    (b) = ((((b)) << ((23))) | (((b)) >> (32 - ((23)))));
    (b) += (c);
  };
  {
    (a) += (((b)) ^ ((c)) ^ ((d))) + (x[13]) + (unsigned int)(0x289b7ec6);
    (a) = ((((a)) << ((4))) | (((a)) >> (32 - ((4)))));
    (a) += (b);
  };
  {
    (d) += (((a)) ^ ((b)) ^ ((c))) + (x[0]) + (unsigned int)(0xeaa127fa);
    (d) = ((((d)) << ((11))) | (((d)) >> (32 - ((11)))));
    (d) += (a);
  };
  {
    (c) += (((d)) ^ ((a)) ^ ((b))) + (x[3]) + (unsigned int)(0xd4ef3085);
    (c) = ((((c)) << ((16))) | (((c)) >> (32 - ((16)))));
    (c) += (d);
  };
  {
    (b) += (((c)) ^ ((d)) ^ ((a))) + (x[6]) + (unsigned int)(0x4881d05);
    (b) = ((((b)) << ((23))) | (((b)) >> (32 - ((23)))));
    (b) += (c);
  };
  {
    (a) += (((b)) ^ ((c)) ^ ((d))) + (x[9]) + (unsigned int)(0xd9d4d039);
    (a) = ((((a)) << ((4))) | (((a)) >> (32 - ((4)))));
    (a) += (b);
  };
  {
    (d) += (((a)) ^ ((b)) ^ ((c))) + (x[12]) + (unsigned int)(0xe6db99e5);
    (d) = ((((d)) << ((11))) | (((d)) >> (32 - ((11)))));
    (d) += (a);
  };
  {
    (c) += (((d)) ^ ((a)) ^ ((b))) + (x[15]) + (unsigned int)(0x1fa27cf8);
    (c) = ((((c)) << ((16))) | (((c)) >> (32 - ((16)))));
    (c) += (d);
  };
  {
    (b) += (((c)) ^ ((d)) ^ ((a))) + (x[2]) + (unsigned int)(0xc4ac5665);
    (b) = ((((b)) << ((23))) | (((b)) >> (32 - ((23)))));
    (b) += (c);
  };
  {
    (a) += (((c)) ^ (((b)) | (~(d)))) + (x[0]) + (unsigned int)(0xf4292244);
    (a) = ((((a)) << ((6))) | (((a)) >> (32 - ((6)))));
    (a) += (b);
  };
  {
    (d) += (((b)) ^ (((a)) | (~(c)))) + (x[7]) + (unsigned int)(0x432aff97);
    (d) = ((((d)) << ((10))) | (((d)) >> (32 - ((10)))));
    (d) += (a);
  };
  {
    (c) += (((a)) ^ (((d)) | (~(b)))) + (x[14]) + (unsigned int)(0xab9423a7);
    (c) = ((((c)) << ((15))) | (((c)) >> (32 - ((15)))));
    (c) += (d);
  };
  {
    (b) += (((d)) ^ (((c)) | (~(a)))) + (x[5]) + (unsigned int)(0xfc93a039);
    (b) = ((((b)) << ((21))) | (((b)) >> (32 - ((21)))));
    (b) += (c);
  };
  {
    (a) += (((c)) ^ (((b)) | (~(d)))) + (x[12]) + (unsigned int)(0x655b59c3);
    (a) = ((((a)) << ((6))) | (((a)) >> (32 - ((6)))));
    (a) += (b);
  };
  {
    (d) += (((b)) ^ (((a)) | (~(c)))) + (x[3]) + (unsigned int)(0x8f0ccc92);
    (d) = ((((d)) << ((10))) | (((d)) >> (32 - ((10)))));
    (d) += (a);
  };
  {
    (c) += (((a)) ^ (((d)) | (~(b)))) + (x[10]) + (unsigned int)(0xffeff47d);
    (c) = ((((c)) << ((15))) | (((c)) >> (32 - ((15)))));
    (c) += (d);
  };
  {
    (b) += (((d)) ^ (((c)) | (~(a)))) + (x[1]) + (unsigned int)(0x85845dd1);
    (b) = ((((b)) << ((21))) | (((b)) >> (32 - ((21)))));
    (b) += (c);
  };
  {
    (a) += (((c)) ^ (((b)) | (~(d)))) + (x[8]) + (unsigned int)(0x6fa87e4f);
    (a) = ((((a)) << ((6))) | (((a)) >> (32 - ((6)))));
    (a) += (b);
  };
  {
    (d) += (((b)) ^ (((a)) | (~(c)))) + (x[15]) + (unsigned int)(0xfe2ce6e0);
    (d) = ((((d)) << ((10))) | (((d)) >> (32 - ((10)))));
    (d) += (a);
  };
  {
    (c) += (((a)) ^ (((d)) | (~(b)))) + (x[6]) + (unsigned int)(0xa3014314);
    (c) = ((((c)) << ((15))) | (((c)) >> (32 - ((15)))));
    (c) += (d);
  };
  {
    (b) += (((d)) ^ (((c)) | (~(a)))) + (x[13]) + (unsigned int)(0x4e0811a1);
    (b) = ((((b)) << ((21))) | (((b)) >> (32 - ((21)))));
    (b) += (c);
  };
  {
    (a) += (((c)) ^ (((b)) | (~(d)))) + (x[4]) + (unsigned int)(0xf7537e82);
    (a) = ((((a)) << ((6))) | (((a)) >> (32 - ((6)))));
    (a) += (b);
  };
  {
    (d) += (((b)) ^ (((a)) | (~(c)))) + (x[11]) + (unsigned int)(0xbd3af235);
    (d) = ((((d)) << ((10))) | (((d)) >> (32 - ((10)))));
    (d) += (a);
  };
  {
    (c) += (((a)) ^ (((d)) | (~(b)))) + (x[2]) + (unsigned int)(0x2ad7d2bb);
    (c) = ((((c)) << ((15))) | (((c)) >> (32 - ((15)))));
    (c) += (d);
  };
  {
    (b) += (((d)) ^ (((c)) | (~(a)))) + (x[9]) + (unsigned int)(0xeb86d391);
    (b) = ((((b)) << ((21))) | (((b)) >> (32 - ((21)))));
    (b) += (c);
  };
  state[0] += a;
  state[1] += b;
  state[2] += c;
  state[3] += d;
  memset((void *)x, 0, sizeof(x));
}


x86 assembly (clang, -O0):
<MD5Transform>:
push   %rbp
mov    %rsp,%rbp
sub    $0x60,%rsp
mov    %rdi,-0x8(%rbp)
mov    %rsi,-0x10(%rbp)
mov    -0x8(%rbp),%rax
mov    (%rax),%eax
mov    %eax,-0x14(%rbp)
mov    -0x8(%rbp),%rax
mov    0x4(%rax),%eax
mov    %eax,-0x18(%rbp)
mov    -0x8(%rbp),%rax
mov    0x8(%rax),%eax
mov    %eax,-0x1c(%rbp)
mov    -0x8(%rbp),%rax
mov    0xc(%rax),%eax
mov    %eax,-0x20(%rbp)
lea    -0x60(%rbp),%rdi
mov    -0x10(%rbp),%rsi
mov    $0x40,%edx
call   1040 <memcpy@plt>
mov    -0x18(%rbp),%eax
and    -0x1c(%rbp),%eax
mov    -0x18(%rbp),%ecx
xor    $0xffffffff,%ecx
and    -0x20(%rbp),%ecx
or     %ecx,%eax
add    -0x60(%rbp),%eax
add    $0xd76aa478,%eax
add    -0x14(%rbp),%eax
mov    %eax,-0x14(%rbp)
mov    -0x14(%rbp),%eax
shl    $0x7,%eax
mov    -0x14(%rbp),%ecx
shr    $0x19,%ecx
or     %ecx,%eax
mov    %eax,-0x14(%rbp)
mov    -0x18(%rbp),%eax
add    -0x14(%rbp),%eax
mov    %eax,-0x14(%rbp)
mov    -0x14(%rbp),%eax
and    -0x18(%rbp),%eax
mov    -0x14(%rbp),%ecx
xor    $0xffffffff,%ecx
and    -0x1c(%rbp),%ecx
or     %ecx,%eax
add    -0x5c(%rbp),%eax
add    $0xe8c7b756,%eax
add    -0x20(%rbp),%eax
mov    %eax,-0x20(%rbp)
mov    -0x20(%rbp),%eax
shl    $0xc,%eax
mov    -0x20(%rbp),%ecx
shr    $0x14,%ecx
or     %ecx,%eax
mov    %eax,-0x20(%rbp)
mov    -0x14(%rbp),%eax
add    -0x20(%rbp),%eax
mov    %eax,-0x20(%rbp)
mov    -0x20(%rbp),%eax
and    -0x14(%rbp),%eax
mov    -0x20(%rbp),%ecx
xor    $0xffffffff,%ecx
and    -0x18(%rbp),%ecx
or     %ecx,%eax
add    -0x58(%rbp),%eax
add    $0x242070db,%eax
add    -0x1c(%rbp),%eax
mov    %eax,-0x1c(%rbp)
mov    -0x1c(%rbp),%eax
shl    $0x11,%eax
mov    -0x1c(%rbp),%ecx
shr    $0xf,%ecx
or     %ecx,%eax
mov    %eax,-0x1c(%rbp)
mov    -0x20(%rbp),%eax
add    -0x1c(%rbp),%eax
mov    %eax,-0x1c(%rbp)
mov    -0x1c(%rbp),%eax
and    -0x20(%rbp),%eax
mov    -0x1c(%rbp),%ecx
xor    $0xffffffff,%ecx
and    -0x14(%rbp),%ecx
or     %ecx,%eax
add    -0x54(%rbp),%eax
add    $0xc1bdceee,%eax
add    -0x18(%rbp),%eax
mov    %eax,-0x18(%rbp)
mov    -0x18(%rbp),%eax
shl    $0x16,%eax
mov    -0x18(%rbp),%ecx
shr    $0xa,%ecx
or     %ecx,%eax
mov    %eax,-0x18(%rbp)
mov    -0x1c(%rbp),%eax
add    -0x18(%rbp),%eax
mov    %eax,-0x18(%rbp)
mov    -0x18(%rbp),%eax
and    -0x1c(%rbp),%eax
mov    -0x18(%rbp),%ecx
xor    $0xffffffff,%ecx
and    -0x20(%rbp),%ecx
or     %ecx,%eax
add    -0x50(%rbp),%eax
add    $0xf57c0faf,%eax
add    -0x14(%rbp),%eax
mov    %eax,-0x14(%rbp)
mov    -0x14(%rbp),%eax
shl    $0x7,%eax
mov    -0x14(%rbp),%ecx
shr    $0x19,%ecx
or     %ecx,%eax
mov    %eax,-0x14(%rbp)
mov    -0x18(%rbp),%eax
add    -0x14(%rbp),%eax
mov    %eax,-0x14(%rbp)
mov    -0x14(%rbp),%eax
and    -0x18(%rbp),%eax
mov    -0x14(%rbp),%ecx
xor    $0xffffffff,%ecx
and    -0x1c(%rbp),%ecx
or     %ecx,%eax
add    -0x4c(%rbp),%eax
add    $0x4787c62a,%eax
add    -0x20(%rbp),%eax
mov    %eax,-0x20(%rbp)
mov    -0x20(%rbp),%eax
shl    $0xc,%eax
mov    -0x20(%rbp),%ecx
shr    $0x14,%ecx
or     %ecx,%eax
mov    %eax,-0x20(%rbp)
mov    -0x14(%rbp),%eax
add    -0x20(%rbp),%eax
mov    %eax,-0x20(%rbp)
mov    -0x20(%rbp),%eax
and    -0x14(%rbp),%eax
mov    -0x20(%rbp),%ecx
xor    $0xffffffff,%ecx
and    -0x18(%rbp),%ecx
or     %ecx,%eax
add    -0x48(%rbp),%eax
add    $0xa8304613,%eax
add    -0x1c(%rbp),%eax
mov    %eax,-0x1c(%rbp)
mov    -0x1c(%rbp),%eax
shl    $0x11,%eax
mov    -0x1c(%rbp),%ecx
shr    $0xf,%ecx
or     %ecx,%eax
mov    %eax,-0x1c(%rbp)
mov    -0x20(%rbp),%eax
add    -0x1c(%rbp),%eax
mov    %eax,-0x1c(%rbp)
mov    -0x1c(%rbp),%eax
and    -0x20(%rbp),%eax
mov    -0x1c(%rbp),%ecx
xor    $0xffffffff,%ecx
and    -0x14(%rbp),%ecx
or     %ecx,%eax
add    -0x44(%rbp),%eax
add    $0xfd469501,%eax
add    -0x18(%rbp),%eax
mov    %eax,-0x18(%rbp)
mov    -0x18(%rbp),%eax
shl    $0x16,%eax
mov    -0x18(%rbp),%ecx
shr    $0xa,%ecx
or     %ecx,%eax
mov    %eax,-0x18(%rbp)
mov    -0x1c(%rbp),%eax
add    -0x18(%rbp),%eax
mov    %eax,-0x18(%rbp)
mov    -0x18(%rbp),%eax
and    -0x1c(%rbp),%eax
mov    -0x18(%rbp),%ecx
xor    $0xffffffff,%ecx
and    -0x20(%rbp),%ecx
or     %ecx,%eax
add    -0x40(%rbp),%eax
add    $0x698098d8,%eax
add    -0x14(%rbp),%eax
mov    %eax,-0x14(%rbp)
mov    -0x14(%rbp),%eax
shl    $0x7,%eax
mov    -0x14(%rbp),%ecx
shr    $0x19,%ecx
or     %ecx,%eax
mov    %eax,-0x14(%rbp)
mov    -0x18(%rbp),%eax
add    -0x14(%rbp),%eax
mov    %eax,-0x14(%rbp)
mov    -0x14(%rbp),%eax
and    -0x18(%rbp),%eax
mov    -0x14(%rbp),%ecx
xor    $0xffffffff,%ecx
and    -0x1c(%rbp),%ecx
or     %ecx,%eax
add    -0x3c(%rbp),%eax
add    $0x8b44f7af,%eax
add    -0x20(%rbp),%eax
mov    %eax,-0x20(%rbp)
mov    -0x20(%rbp),%eax
shl    $0xc,%eax
mov    -0x20(%rbp),%ecx
shr    $0x14,%ecx
or     %ecx,%eax
mov    %eax,-0x20(%rbp)
mov    -0x14(%rbp),%eax
add    -0x20(%rbp),%eax
mov    %eax,-0x20(%rbp)
mov    -0x20(%rbp),%eax
and    -0x14(%rbp),%eax
mov    -0x20(%rbp),%ecx
xor    $0xffffffff,%ecx
and    -0x18(%rbp),%ecx
or     %ecx,%eax
add    -0x38(%rbp),%eax
add    $0xffff5bb1,%eax
add    -0x1c(%rbp),%eax
mov    %eax,-0x1c(%rbp)
mov    -0x1c(%rbp),%eax
shl    $0x11,%eax
mov    -0x1c(%rbp),%ecx
shr    $0xf,%ecx
or     %ecx,%eax
mov    %eax,-0x1c(%rbp)
mov    -0x20(%rbp),%eax
add    -0x1c(%rbp),%eax
mov    %eax,-0x1c(%rbp)
mov    -0x1c(%rbp),%eax
and    -0x20(%rbp),%eax
mov    -0x1c(%rbp),%ecx
xor    $0xffffffff,%ecx
and    -0x14(%rbp),%ecx
or     %ecx,%eax
add    -0x34(%rbp),%eax
add    $0x895cd7be,%eax
add    -0x18(%rbp),%eax
mov    %eax,-0x18(%rbp)
mov    -0x18(%rbp),%eax
shl    $0x16,%eax
mov    -0x18(%rbp),%ecx
shr    $0xa,%ecx
or     %ecx,%eax
mov    %eax,-0x18(%rbp)
mov    -0x1c(%rbp),%eax
add    -0x18(%rbp),%eax
mov    %eax,-0x18(%rbp)
mov    -0x18(%rbp),%eax
and    -0x1c(%rbp),%eax
mov    -0x18(%rbp),%ecx
xor    $0xffffffff,%ecx
and    -0x20(%rbp),%ecx
or     %ecx,%eax
add    -0x30(%rbp),%eax
add    $0x6b901122,%eax
add    -0x14(%rbp),%eax
mov    %eax,-0x14(%rbp)
mov    -0x14(%rbp),%eax
shl    $0x7,%eax
mov    -0x14(%rbp),%ecx
shr    $0x19,%ecx
or     %ecx,%eax
mov    %eax,-0x14(%rbp)
mov    -0x18(%rbp),%eax
add    -0x14(%rbp),%eax
mov    %eax,-0x14(%rbp)
mov    -0x14(%rbp),%eax
and    -0x18(%rbp),%eax
mov    -0x14(%rbp),%ecx
xor    $0xffffffff,%ecx
and    -0x1c(%rbp),%ecx
or     %ecx,%eax
add    -0x2c(%rbp),%eax
add    $0xfd987193,%eax
add    -0x20(%rbp),%eax
mov    %eax,-0x20(%rbp)
mov    -0x20(%rbp),%eax
shl    $0xc,%eax
mov    -0x20(%rbp),%ecx
shr    $0x14,%ecx
or     %ecx,%eax
mov    %eax,-0x20(%rbp)
mov    -0x14(%rbp),%eax
add    -0x20(%rbp),%eax
mov    %eax,-0x20(%rbp)
mov    -0x20(%rbp),%eax
and    -0x14(%rbp),%eax
mov    -0x20(%rbp),%ecx
xor    $0xffffffff,%ecx
and    -0x18(%rbp),%ecx
or     %ecx,%eax
add    -0x28(%rbp),%eax
add    $0xa679438e,%eax
add    -0x1c(%rbp),%eax
mov    %eax,-0x1c(%rbp)
mov    -0x1c(%rbp),%eax
shl    $0x11,%eax
mov    -0x1c(%rbp),%ecx
shr    $0xf,%ecx
or     %ecx,%eax
mov    %eax,-0x1c(%rbp)
mov    -0x20(%rbp),%eax
add    -0x1c(%rbp),%eax
mov    %eax,-0x1c(%rbp)
mov    -0x1c(%rbp),%eax
and    -0x20(%rbp),%eax
mov    -0x1c(%rbp),%ecx
xor    $0xffffffff,%ecx
and    -0x14(%rbp),%ecx
or     %ecx,%eax
add    -0x24(%rbp),%eax
add    $0x49b40821,%eax
add    -0x18(%rbp),%eax
mov    %eax,-0x18(%rbp)
mov    -0x18(%rbp),%eax
shl    $0x16,%eax
mov    -0x18(%rbp),%ecx
shr    $0xa,%ecx
or     %ecx,%eax
mov    %eax,-0x18(%rbp)
mov    -0x1c(%rbp),%eax
add    -0x18(%rbp),%eax
mov    %eax,-0x18(%rbp)
mov    -0x18(%rbp),%eax
and    -0x20(%rbp),%eax
mov    -0x1c(%rbp),%ecx
mov    -0x20(%rbp),%edx
xor    $0xffffffff,%edx
and    %edx,%ecx
or     %ecx,%eax
add    -0x5c(%rbp),%eax
add    $0xf61e2562,%eax
add    -0x14(%rbp),%eax
mov    %eax,-0x14(%rbp)
mov    -0x14(%rbp),%eax
shl    $0x5,%eax
mov    -0x14(%rbp),%ecx
shr    $0x1b,%ecx
or     %ecx,%eax
mov    %eax,-0x14(%rbp)
mov    -0x18(%rbp),%eax
add    -0x14(%rbp),%eax
mov    %eax,-0x14(%rbp)
mov    -0x14(%rbp),%eax
and    -0x1c(%rbp),%eax
mov    -0x18(%rbp),%ecx
mov    -0x1c(%rbp),%edx
xor    $0xffffffff,%edx
and    %edx,%ecx
or     %ecx,%eax
add    -0x48(%rbp),%eax
add    $0xc040b340,%eax
add    -0x20(%rbp),%eax
mov    %eax,-0x20(%rbp)
mov    -0x20(%rbp),%eax
shl    $0x9,%eax
mov    -0x20(%rbp),%ecx
shr    $0x17,%ecx
or     %ecx,%eax
mov    %eax,-0x20(%rbp)
mov    -0x14(%rbp),%eax
add    -0x20(%rbp),%eax
mov    %eax,-0x20(%rbp)
mov    -0x20(%rbp),%eax
and    -0x18(%rbp),%eax
mov    -0x14(%rbp),%ecx
mov    -0x18(%rbp),%edx
xor    $0xffffffff,%edx
and    %edx,%ecx
or     %ecx,%eax
add    -0x34(%rbp),%eax
add    $0x265e5a51,%eax
add    -0x1c(%rbp),%eax
mov    %eax,-0x1c(%rbp)
mov    -0x1c(%rbp),%eax
shl    $0xe,%eax
mov    -0x1c(%rbp),%ecx
shr    $0x12,%ecx
or     %ecx,%eax
mov    %eax,-0x1c(%rbp)
mov    -0x20(%rbp),%eax
add    -0x1c(%rbp),%eax
mov    %eax,-0x1c(%rbp)
mov    -0x1c(%rbp),%eax
and    -0x14(%rbp),%eax
mov    -0x20(%rbp),%ecx
mov    -0x14(%rbp),%edx
xor    $0xffffffff,%edx
and    %edx,%ecx
or     %ecx,%eax
add    -0x60(%rbp),%eax
add    $0xe9b6c7aa,%eax
add    -0x18(%rbp),%eax
mov    %eax,-0x18(%rbp)
mov    -0x18(%rbp),%eax
shl    $0x14,%eax
mov    -0x18(%rbp),%ecx
shr    $0xc,%ecx
or     %ecx,%eax
mov    %eax,-0x18(%rbp)
mov    -0x1c(%rbp),%eax
add    -0x18(%rbp),%eax
mov    %eax,-0x18(%rbp)
mov    -0x18(%rbp),%eax
and    -0x20(%rbp),%eax
mov    -0x1c(%rbp),%ecx
mov    -0x20(%rbp),%edx
xor    $0xffffffff,%edx
and    %edx,%ecx
or     %ecx,%eax
add    -0x4c(%rbp),%eax
add    $0xd62f105d,%eax
add    -0x14(%rbp),%eax
mov    %eax,-0x14(%rbp)
mov    -0x14(%rbp),%eax
shl    $0x5,%eax
mov    -0x14(%rbp),%ecx
shr    $0x1b,%ecx
or     %ecx,%eax
mov    %eax,-0x14(%rbp)
mov    -0x18(%rbp),%eax
add    -0x14(%rbp),%eax
mov    %eax,-0x14(%rbp)
mov    -0x14(%rbp),%eax
and    -0x1c(%rbp),%eax
mov    -0x18(%rbp),%ecx
mov    -0x1c(%rbp),%edx
xor    $0xffffffff,%edx
and    %edx,%ecx
or     %ecx,%eax
add    -0x38(%rbp),%eax
add    $0x2441453,%eax
add    -0x20(%rbp),%eax
mov    %eax,-0x20(%rbp)
mov    -0x20(%rbp),%eax
shl    $0x9,%eax
mov    -0x20(%rbp),%ecx
shr    $0x17,%ecx
or     %ecx,%eax
mov    %eax,-0x20(%rbp)
mov    -0x14(%rbp),%eax
add    -0x20(%rbp),%eax
mov    %eax,-0x20(%rbp)
mov    -0x20(%rbp),%eax
and    -0x18(%rbp),%eax
mov    -0x14(%rbp),%ecx
mov    -0x18(%rbp),%edx
xor    $0xffffffff,%edx
and    %edx,%ecx
or     %ecx,%eax
add    -0x24(%rbp),%eax
add    $0xd8a1e681,%eax
add    -0x1c(%rbp),%eax
mov    %eax,-0x1c(%rbp)
mov    -0x1c(%rbp),%eax
shl    $0xe,%eax
mov    -0x1c(%rbp),%ecx
shr    $0x12,%ecx
or     %ecx,%eax
mov    %eax,-0x1c(%rbp)
mov    -0x20(%rbp),%eax
add    -0x1c(%rbp),%eax
mov    %eax,-0x1c(%rbp)
mov    -0x1c(%rbp),%eax
and    -0x14(%rbp),%eax
mov    -0x20(%rbp),%ecx
mov    -0x14(%rbp),%edx
xor    $0xffffffff,%edx
and    %edx,%ecx
or     %ecx,%eax
add    -0x50(%rbp),%eax
add    $0xe7d3fbc8,%eax
add    -0x18(%rbp),%eax
mov    %eax,-0x18(%rbp)
mov    -0x18(%rbp),%eax
shl    $0x14,%eax
mov    -0x18(%rbp),%ecx
shr    $0xc,%ecx
or     %ecx,%eax
mov    %eax,-0x18(%rbp)
mov    -0x1c(%rbp),%eax
add    -0x18(%rbp),%eax
mov    %eax,-0x18(%rbp)
mov    -0x18(%rbp),%eax
and    -0x20(%rbp),%eax
mov    -0x1c(%rbp),%ecx
mov    -0x20(%rbp),%edx
xor    $0xffffffff,%edx
and    %edx,%ecx
or     %ecx,%eax
add    -0x3c(%rbp),%eax
add    $0x21e1cde6,%eax
add    -0x14(%rbp),%eax
mov    %eax,-0x14(%rbp)
mov    -0x14(%rbp),%eax
shl    $0x5,%eax
mov    -0x14(%rbp),%ecx
shr    $0x1b,%ecx
or     %ecx,%eax
mov    %eax,-0x14(%rbp)
mov    -0x18(%rbp),%eax
add    -0x14(%rbp),%eax
mov    %eax,-0x14(%rbp)
mov    -0x14(%rbp),%eax
and    -0x1c(%rbp),%eax
mov    -0x18(%rbp),%ecx
mov    -0x1c(%rbp),%edx
xor    $0xffffffff,%edx
and    %edx,%ecx
or     %ecx,%eax
add    -0x28(%rbp),%eax
add    $0xc33707d6,%eax
add    -0x20(%rbp),%eax
mov    %eax,-0x20(%rbp)
mov    -0x20(%rbp),%eax
shl    $0x9,%eax
mov    -0x20(%rbp),%ecx
shr    $0x17,%ecx
or     %ecx,%eax
mov    %eax,-0x20(%rbp)
mov    -0x14(%rbp),%eax
add    -0x20(%rbp),%eax
mov    %eax,-0x20(%rbp)
mov    -0x20(%rbp),%eax
and    -0x18(%rbp),%eax
mov    -0x14(%rbp),%ecx
mov    -0x18(%rbp),%edx
xor    $0xffffffff,%edx
and    %edx,%ecx
or     %ecx,%eax
add    -0x54(%rbp),%eax
add    $0xf4d50d87,%eax
add    -0x1c(%rbp),%eax
mov    %eax,-0x1c(%rbp)
mov    -0x1c(%rbp),%eax
shl    $0xe,%eax
mov    -0x1c(%rbp),%ecx
shr    $0x12,%ecx
or     %ecx,%eax
mov    %eax,-0x1c(%rbp)
mov    -0x20(%rbp),%eax
add    -0x1c(%rbp),%eax
mov    %eax,-0x1c(%rbp)
mov    -0x1c(%rbp),%eax
and    -0x14(%rbp),%eax
mov    -0x20(%rbp),%ecx
mov    -0x14(%rbp),%edx
xor    $0xffffffff,%edx
and    %edx,%ecx
or     %ecx,%eax
add    -0x40(%rbp),%eax
add    $0x455a14ed,%eax
add    -0x18(%rbp),%eax
mov    %eax,-0x18(%rbp)
mov    -0x18(%rbp),%eax
shl    $0x14,%eax
mov    -0x18(%rbp),%ecx
shr    $0xc,%ecx
or     %ecx,%eax
mov    %eax,-0x18(%rbp)
mov    -0x1c(%rbp),%eax
add    -0x18(%rbp),%eax
mov    %eax,-0x18(%rbp)
mov    -0x18(%rbp),%eax
and    -0x20(%rbp),%eax
mov    -0x1c(%rbp),%ecx
mov    -0x20(%rbp),%edx
xor    $0xffffffff,%edx
and    %edx,%ecx
or     %ecx,%eax
add    -0x2c(%rbp),%eax
add    $0xa9e3e905,%eax
add    -0x14(%rbp),%eax
mov    %eax,-0x14(%rbp)
mov    -0x14(%rbp),%eax
shl    $0x5,%eax
mov    -0x14(%rbp),%ecx
shr    $0x1b,%ecx
or     %ecx,%eax
mov    %eax,-0x14(%rbp)
mov    -0x18(%rbp),%eax
add    -0x14(%rbp),%eax
mov    %eax,-0x14(%rbp)
mov    -0x14(%rbp),%eax
and    -0x1c(%rbp),%eax
mov    -0x18(%rbp),%ecx
mov    -0x1c(%rbp),%edx
xor    $0xffffffff,%edx
and    %edx,%ecx
or     %ecx,%eax
add    -0x58(%rbp),%eax
add    $0xfcefa3f8,%eax
add    -0x20(%rbp),%eax
mov    %eax,-0x20(%rbp)
mov    -0x20(%rbp),%eax
shl    $0x9,%eax
mov    -0x20(%rbp),%ecx
shr    $0x17,%ecx
or     %ecx,%eax
mov    %eax,-0x20(%rbp)
mov    -0x14(%rbp),%eax
add    -0x20(%rbp),%eax
mov    %eax,-0x20(%rbp)
mov    -0x20(%rbp),%eax
and    -0x18(%rbp),%eax
mov    -0x14(%rbp),%ecx
mov    -0x18(%rbp),%edx
xor    $0xffffffff,%edx
and    %edx,%ecx
or     %ecx,%eax
add    -0x44(%rbp),%eax
add    $0x676f02d9,%eax
add    -0x1c(%rbp),%eax
mov    %eax,-0x1c(%rbp)
mov    -0x1c(%rbp),%eax
shl    $0xe,%eax
mov    -0x1c(%rbp),%ecx
shr    $0x12,%ecx
or     %ecx,%eax
mov    %eax,-0x1c(%rbp)
mov    -0x20(%rbp),%eax
add    -0x1c(%rbp),%eax
mov    %eax,-0x1c(%rbp)
mov    -0x1c(%rbp),%eax
and    -0x14(%rbp),%eax
mov    -0x20(%rbp),%ecx
mov    -0x14(%rbp),%edx
xor    $0xffffffff,%edx
and    %edx,%ecx
or     %ecx,%eax
add    -0x30(%rbp),%eax
add    $0x8d2a4c8a,%eax
add    -0x18(%rbp),%eax
mov    %eax,-0x18(%rbp)
mov    -0x18(%rbp),%eax
shl    $0x14,%eax
mov    -0x18(%rbp),%ecx
shr    $0xc,%ecx
or     %ecx,%eax
mov    %eax,-0x18(%rbp)
mov    -0x1c(%rbp),%eax
add    -0x18(%rbp),%eax
mov    %eax,-0x18(%rbp)
mov    -0x18(%rbp),%eax
xor    -0x1c(%rbp),%eax
xor    -0x20(%rbp),%eax
add    -0x4c(%rbp),%eax
add    $0xfffa3942,%eax
add    -0x14(%rbp),%eax
mov    %eax,-0x14(%rbp)
mov    -0x14(%rbp),%eax
shl    $0x4,%eax
mov    -0x14(%rbp),%ecx
shr    $0x1c,%ecx
or     %ecx,%eax
mov    %eax,-0x14(%rbp)
mov    -0x18(%rbp),%eax
add    -0x14(%rbp),%eax
mov    %eax,-0x14(%rbp)
mov    -0x14(%rbp),%eax
xor    -0x18(%rbp),%eax
xor    -0x1c(%rbp),%eax
add    -0x40(%rbp),%eax
add    $0x8771f681,%eax
add    -0x20(%rbp),%eax
mov    %eax,-0x20(%rbp)
mov    -0x20(%rbp),%eax
shl    $0xb,%eax
mov    -0x20(%rbp),%ecx
shr    $0x15,%ecx
or     %ecx,%eax
mov    %eax,-0x20(%rbp)
mov    -0x14(%rbp),%eax
add    -0x20(%rbp),%eax
mov    %eax,-0x20(%rbp)
mov    -0x20(%rbp),%eax
xor    -0x14(%rbp),%eax
xor    -0x18(%rbp),%eax
add    -0x34(%rbp),%eax
add    $0x6d9d6122,%eax
add    -0x1c(%rbp),%eax
mov    %eax,-0x1c(%rbp)
mov    -0x1c(%rbp),%eax
shl    $0x10,%eax
mov    -0x1c(%rbp),%ecx
shr    $0x10,%ecx
or     %ecx,%eax
mov    %eax,-0x1c(%rbp)
mov    -0x20(%rbp),%eax
add    -0x1c(%rbp),%eax
mov    %eax,-0x1c(%rbp)
mov    -0x1c(%rbp),%eax
xor    -0x20(%rbp),%eax
xor    -0x14(%rbp),%eax
add    -0x28(%rbp),%eax
add    $0xfde5380c,%eax
add    -0x18(%rbp),%eax
mov    %eax,-0x18(%rbp)
mov    -0x18(%rbp),%eax
shl    $0x17,%eax
mov    -0x18(%rbp),%ecx
shr    $0x9,%ecx
or     %ecx,%eax
mov    %eax,-0x18(%rbp)
mov    -0x1c(%rbp),%eax
add    -0x18(%rbp),%eax
mov    %eax,-0x18(%rbp)
mov    -0x18(%rbp),%eax
xor    -0x1c(%rbp),%eax
xor    -0x20(%rbp),%eax
add    -0x5c(%rbp),%eax
add    $0xa4beea44,%eax
add    -0x14(%rbp),%eax
mov    %eax,-0x14(%rbp)
mov    -0x14(%rbp),%eax
shl    $0x4,%eax
mov    -0x14(%rbp),%ecx
shr    $0x1c,%ecx
or     %ecx,%eax
mov    %eax,-0x14(%rbp)
mov    -0x18(%rbp),%eax
add    -0x14(%rbp),%eax
mov    %eax,-0x14(%rbp)
mov    -0x14(%rbp),%eax
xor    -0x18(%rbp),%eax
xor    -0x1c(%rbp),%eax
add    -0x50(%rbp),%eax
add    $0x4bdecfa9,%eax
add    -0x20(%rbp),%eax
mov    %eax,-0x20(%rbp)
mov    -0x20(%rbp),%eax
shl    $0xb,%eax
mov    -0x20(%rbp),%ecx
shr    $0x15,%ecx
or     %ecx,%eax
mov    %eax,-0x20(%rbp)
mov    -0x14(%rbp),%eax
add    -0x20(%rbp),%eax
mov    %eax,-0x20(%rbp)
mov    -0x20(%rbp),%eax
xor    -0x14(%rbp),%eax
xor    -0x18(%rbp),%eax
add    -0x44(%rbp),%eax
add    $0xf6bb4b60,%eax
add    -0x1c(%rbp),%eax
mov    %eax,-0x1c(%rbp)
mov    -0x1c(%rbp),%eax
shl    $0x10,%eax
mov    -0x1c(%rbp),%ecx
shr    $0x10,%ecx
or     %ecx,%eax
mov    %eax,-0x1c(%rbp)
mov    -0x20(%rbp),%eax
add    -0x1c(%rbp),%eax
mov    %eax,-0x1c(%rbp)
mov    -0x1c(%rbp),%eax
xor    -0x20(%rbp),%eax
xor    -0x14(%rbp),%eax
add    -0x38(%rbp),%eax
add    $0xbebfbc70,%eax
add    -0x18(%rbp),%eax
mov    %eax,-0x18(%rbp)
mov    -0x18(%rbp),%eax
shl    $0x17,%eax
mov    -0x18(%rbp),%ecx
shr    $0x9,%ecx
or     %ecx,%eax
mov    %eax,-0x18(%rbp)
mov    -0x1c(%rbp),%eax
add    -0x18(%rbp),%eax
mov    %eax,-0x18(%rbp)
mov    -0x18(%rbp),%eax
xor    -0x1c(%rbp),%eax
xor    -0x20(%rbp),%eax
add    -0x2c(%rbp),%eax
add    $0x289b7ec6,%eax
add    -0x14(%rbp),%eax
mov    %eax,-0x14(%rbp)
mov    -0x14(%rbp),%eax
shl    $0x4,%eax
mov    -0x14(%rbp),%ecx
shr    $0x1c,%ecx
or     %ecx,%eax
mov    %eax,-0x14(%rbp)
mov    -0x18(%rbp),%eax
add    -0x14(%rbp),%eax
mov    %eax,-0x14(%rbp)
mov    -0x14(%rbp),%eax
xor    -0x18(%rbp),%eax
xor    -0x1c(%rbp),%eax
add    -0x60(%rbp),%eax
add    $0xeaa127fa,%eax
add    -0x20(%rbp),%eax
mov    %eax,-0x20(%rbp)
mov    -0x20(%rbp),%eax
shl    $0xb,%eax
mov    -0x20(%rbp),%ecx
shr    $0x15,%ecx
or     %ecx,%eax
mov    %eax,-0x20(%rbp)
mov    -0x14(%rbp),%eax
add    -0x20(%rbp),%eax
mov    %eax,-0x20(%rbp)
mov    -0x20(%rbp),%eax
xor    -0x14(%rbp),%eax
xor    -0x18(%rbp),%eax
add    -0x54(%rbp),%eax
add    $0xd4ef3085,%eax
add    -0x1c(%rbp),%eax
mov    %eax,-0x1c(%rbp)
mov    -0x1c(%rbp),%eax
shl    $0x10,%eax
mov    -0x1c(%rbp),%ecx
shr    $0x10,%ecx
or     %ecx,%eax
mov    %eax,-0x1c(%rbp)
mov    -0x20(%rbp),%eax
add    -0x1c(%rbp),%eax
mov    %eax,-0x1c(%rbp)
mov    -0x1c(%rbp),%eax
xor    -0x20(%rbp),%eax
xor    -0x14(%rbp),%eax
add    -0x48(%rbp),%eax
add    $0x4881d05,%eax
add    -0x18(%rbp),%eax
mov    %eax,-0x18(%rbp)
mov    -0x18(%rbp),%eax
shl    $0x17,%eax
mov    -0x18(%rbp),%ecx
shr    $0x9,%ecx
or     %ecx,%eax
mov    %eax,-0x18(%rbp)
mov    -0x1c(%rbp),%eax
add    -0x18(%rbp),%eax
mov    %eax,-0x18(%rbp)
mov    -0x18(%rbp),%eax
xor    -0x1c(%rbp),%eax
xor    -0x20(%rbp),%eax
add    -0x3c(%rbp),%eax
add    $0xd9d4d039,%eax
add    -0x14(%rbp),%eax
mov    %eax,-0x14(%rbp)
mov    -0x14(%rbp),%eax
shl    $0x4,%eax
mov    -0x14(%rbp),%ecx
shr    $0x1c,%ecx
or     %ecx,%eax
mov    %eax,-0x14(%rbp)
mov    -0x18(%rbp),%eax
add    -0x14(%rbp),%eax
mov    %eax,-0x14(%rbp)
mov    -0x14(%rbp),%eax
xor    -0x18(%rbp),%eax
xor    -0x1c(%rbp),%eax
add    -0x30(%rbp),%eax
add    $0xe6db99e5,%eax
add    -0x20(%rbp),%eax
mov    %eax,-0x20(%rbp)
mov    -0x20(%rbp),%eax
shl    $0xb,%eax
mov    -0x20(%rbp),%ecx
shr    $0x15,%ecx
or     %ecx,%eax
mov    %eax,-0x20(%rbp)
mov    -0x14(%rbp),%eax
add    -0x20(%rbp),%eax
mov    %eax,-0x20(%rbp)
mov    -0x20(%rbp),%eax
xor    -0x14(%rbp),%eax
xor    -0x18(%rbp),%eax
add    -0x24(%rbp),%eax
add    $0x1fa27cf8,%eax
add    -0x1c(%rbp),%eax
mov    %eax,-0x1c(%rbp)
mov    -0x1c(%rbp),%eax
shl    $0x10,%eax
mov    -0x1c(%rbp),%ecx
shr    $0x10,%ecx
or     %ecx,%eax
mov    %eax,-0x1c(%rbp)
mov    -0x20(%rbp),%eax
add    -0x1c(%rbp),%eax
mov    %eax,-0x1c(%rbp)
mov    -0x1c(%rbp),%eax
xor    -0x20(%rbp),%eax
xor    -0x14(%rbp),%eax
add    -0x58(%rbp),%eax
add    $0xc4ac5665,%eax
add    -0x18(%rbp),%eax
mov    %eax,-0x18(%rbp)
mov    -0x18(%rbp),%eax
shl    $0x17,%eax
mov    -0x18(%rbp),%ecx
shr    $0x9,%ecx
or     %ecx,%eax
mov    %eax,-0x18(%rbp)
mov    -0x1c(%rbp),%eax
add    -0x18(%rbp),%eax
mov    %eax,-0x18(%rbp)
mov    -0x1c(%rbp),%eax
mov    -0x18(%rbp),%ecx
mov    -0x20(%rbp),%edx
xor    $0xffffffff,%edx
or     %edx,%ecx
xor    %ecx,%eax
add    -0x60(%rbp),%eax
add    $0xf4292244,%eax
add    -0x14(%rbp),%eax
mov    %eax,-0x14(%rbp)
mov    -0x14(%rbp),%eax
shl    $0x6,%eax
mov    -0x14(%rbp),%ecx
shr    $0x1a,%ecx
or     %ecx,%eax
mov    %eax,-0x14(%rbp)
mov    -0x18(%rbp),%eax
add    -0x14(%rbp),%eax
mov    %eax,-0x14(%rbp)
mov    -0x18(%rbp),%eax
mov    -0x14(%rbp),%ecx
mov    -0x1c(%rbp),%edx
xor    $0xffffffff,%edx
or     %edx,%ecx
xor    %ecx,%eax
add    -0x44(%rbp),%eax
add    $0x432aff97,%eax
add    -0x20(%rbp),%eax
mov    %eax,-0x20(%rbp)
mov    -0x20(%rbp),%eax
shl    $0xa,%eax
mov    -0x20(%rbp),%ecx
shr    $0x16,%ecx
or     %ecx,%eax
mov    %eax,-0x20(%rbp)
mov    -0x14(%rbp),%eax
add    -0x20(%rbp),%eax
mov    %eax,-0x20(%rbp)
mov    -0x14(%rbp),%eax
mov    -0x20(%rbp),%ecx
mov    -0x18(%rbp),%edx
xor    $0xffffffff,%edx
or     %edx,%ecx
xor    %ecx,%eax
add    -0x28(%rbp),%eax
add    $0xab9423a7,%eax
add    -0x1c(%rbp),%eax
mov    %eax,-0x1c(%rbp)
mov    -0x1c(%rbp),%eax
shl    $0xf,%eax
mov    -0x1c(%rbp),%ecx
shr    $0x11,%ecx
or     %ecx,%eax
mov    %eax,-0x1c(%rbp)
mov    -0x20(%rbp),%eax
add    -0x1c(%rbp),%eax
mov    %eax,-0x1c(%rbp)
mov    -0x20(%rbp),%eax
mov    -0x1c(%rbp),%ecx
mov    -0x14(%rbp),%edx
xor    $0xffffffff,%edx
or     %edx,%ecx
xor    %ecx,%eax
add    -0x4c(%rbp),%eax
add    $0xfc93a039,%eax
add    -0x18(%rbp),%eax
mov    %eax,-0x18(%rbp)
mov    -0x18(%rbp),%eax
shl    $0x15,%eax
mov    -0x18(%rbp),%ecx
shr    $0xb,%ecx
or     %ecx,%eax
mov    %eax,-0x18(%rbp)
mov    -0x1c(%rbp),%eax
add    -0x18(%rbp),%eax
mov    %eax,-0x18(%rbp)
mov    -0x1c(%rbp),%eax
mov    -0x18(%rbp),%ecx
mov    -0x20(%rbp),%edx
xor    $0xffffffff,%edx
or     %edx,%ecx
xor    %ecx,%eax
add    -0x30(%rbp),%eax
add    $0x655b59c3,%eax
add    -0x14(%rbp),%eax
mov    %eax,-0x14(%rbp)
mov    -0x14(%rbp),%eax
shl    $0x6,%eax
mov    -0x14(%rbp),%ecx
shr    $0x1a,%ecx
or     %ecx,%eax
mov    %eax,-0x14(%rbp)
mov    -0x18(%rbp),%eax
add    -0x14(%rbp),%eax
mov    %eax,-0x14(%rbp)
mov    -0x18(%rbp),%eax
mov    -0x14(%rbp),%ecx
mov    -0x1c(%rbp),%edx
xor    $0xffffffff,%edx
or     %edx,%ecx
xor    %ecx,%eax
add    -0x54(%rbp),%eax
add    $0x8f0ccc92,%eax
add    -0x20(%rbp),%eax
mov    %eax,-0x20(%rbp)
mov    -0x20(%rbp),%eax
shl    $0xa,%eax
mov    -0x20(%rbp),%ecx
shr    $0x16,%ecx
or     %ecx,%eax
mov    %eax,-0x20(%rbp)
mov    -0x14(%rbp),%eax
add    -0x20(%rbp),%eax
mov    %eax,-0x20(%rbp)
mov    -0x14(%rbp),%eax
mov    -0x20(%rbp),%ecx
mov    -0x18(%rbp),%edx
xor    $0xffffffff,%edx
or     %edx,%ecx
xor    %ecx,%eax
add    -0x38(%rbp),%eax
add    $0xffeff47d,%eax
add    -0x1c(%rbp),%eax
mov    %eax,-0x1c(%rbp)
mov    -0x1c(%rbp),%eax
shl    $0xf,%eax
mov    -0x1c(%rbp),%ecx
shr    $0x11,%ecx
or     %ecx,%eax
mov    %eax,-0x1c(%rbp)
mov    -0x20(%rbp),%eax
add    -0x1c(%rbp),%eax
mov    %eax,-0x1c(%rbp)
mov    -0x20(%rbp),%eax
mov    -0x1c(%rbp),%ecx
mov    -0x14(%rbp),%edx
xor    $0xffffffff,%edx
or     %edx,%ecx
xor    %ecx,%eax
add    -0x5c(%rbp),%eax
add    $0x85845dd1,%eax
add    -0x18(%rbp),%eax
mov    %eax,-0x18(%rbp)
mov    -0x18(%rbp),%eax
shl    $0x15,%eax
mov    -0x18(%rbp),%ecx
shr    $0xb,%ecx
or     %ecx,%eax
mov    %eax,-0x18(%rbp)
mov    -0x1c(%rbp),%eax
add    -0x18(%rbp),%eax
mov    %eax,-0x18(%rbp)
mov    -0x1c(%rbp),%eax
mov    -0x18(%rbp),%ecx
mov    -0x20(%rbp),%edx
xor    $0xffffffff,%edx
or     %edx,%ecx
xor    %ecx,%eax
add    -0x40(%rbp),%eax
add    $0x6fa87e4f,%eax
add    -0x14(%rbp),%eax
mov    %eax,-0x14(%rbp)
mov    -0x14(%rbp),%eax
shl    $0x6,%eax
mov    -0x14(%rbp),%ecx
shr    $0x1a,%ecx
or     %ecx,%eax
mov    %eax,-0x14(%rbp)
mov    -0x18(%rbp),%eax
add    -0x14(%rbp),%eax
mov    %eax,-0x14(%rbp)
mov    -0x18(%rbp),%eax
mov    -0x14(%rbp),%ecx
mov    -0x1c(%rbp),%edx
xor    $0xffffffff,%edx
or     %edx,%ecx
xor    %ecx,%eax
add    -0x24(%rbp),%eax
add    $0xfe2ce6e0,%eax
add    -0x20(%rbp),%eax
mov    %eax,-0x20(%rbp)
mov    -0x20(%rbp),%eax
shl    $0xa,%eax
mov    -0x20(%rbp),%ecx
shr    $0x16,%ecx
or     %ecx,%eax
mov    %eax,-0x20(%rbp)
mov    -0x14(%rbp),%eax
add    -0x20(%rbp),%eax
mov    %eax,-0x20(%rbp)
mov    -0x14(%rbp),%eax
mov    -0x20(%rbp),%ecx
mov    -0x18(%rbp),%edx
xor    $0xffffffff,%edx
or     %edx,%ecx
xor    %ecx,%eax
add    -0x48(%rbp),%eax
add    $0xa3014314,%eax
add    -0x1c(%rbp),%eax
mov    %eax,-0x1c(%rbp)
mov    -0x1c(%rbp),%eax
shl    $0xf,%eax
mov    -0x1c(%rbp),%ecx
shr    $0x11,%ecx
or     %ecx,%eax
mov    %eax,-0x1c(%rbp)
mov    -0x20(%rbp),%eax
add    -0x1c(%rbp),%eax
mov    %eax,-0x1c(%rbp)
mov    -0x20(%rbp),%eax
mov    -0x1c(%rbp),%ecx
mov    -0x14(%rbp),%edx
xor    $0xffffffff,%edx
or     %edx,%ecx
xor    %ecx,%eax
add    -0x2c(%rbp),%eax
add    $0x4e0811a1,%eax
add    -0x18(%rbp),%eax
mov    %eax,-0x18(%rbp)
mov    -0x18(%rbp),%eax
shl    $0x15,%eax
mov    -0x18(%rbp),%ecx
shr    $0xb,%ecx
or     %ecx,%eax
mov    %eax,-0x18(%rbp)
mov    -0x1c(%rbp),%eax
add    -0x18(%rbp),%eax
mov    %eax,-0x18(%rbp)
mov    -0x1c(%rbp),%eax
mov    -0x18(%rbp),%ecx
mov    -0x20(%rbp),%edx
xor    $0xffffffff,%edx
or     %edx,%ecx
xor    %ecx,%eax
add    -0x50(%rbp),%eax
add    $0xf7537e82,%eax
add    -0x14(%rbp),%eax
mov    %eax,-0x14(%rbp)
mov    -0x14(%rbp),%eax
shl    $0x6,%eax
mov    -0x14(%rbp),%ecx
shr    $0x1a,%ecx
or     %ecx,%eax
mov    %eax,-0x14(%rbp)
mov    -0x18(%rbp),%eax
add    -0x14(%rbp),%eax
mov    %eax,-0x14(%rbp)
mov    -0x18(%rbp),%eax
mov    -0x14(%rbp),%ecx
mov    -0x1c(%rbp),%edx
xor    $0xffffffff,%edx
or     %edx,%ecx
xor    %ecx,%eax
add    -0x34(%rbp),%eax
add    $0xbd3af235,%eax
add    -0x20(%rbp),%eax
mov    %eax,-0x20(%rbp)
mov    -0x20(%rbp),%eax
shl    $0xa,%eax
mov    -0x20(%rbp),%ecx
shr    $0x16,%ecx
or     %ecx,%eax
mov    %eax,-0x20(%rbp)
mov    -0x14(%rbp),%eax
add    -0x20(%rbp),%eax
mov    %eax,-0x20(%rbp)
mov    -0x14(%rbp),%eax
mov    -0x20(%rbp),%ecx
mov    -0x18(%rbp),%edx
xor    $0xffffffff,%edx
or     %edx,%ecx
xor    %ecx,%eax
add    -0x58(%rbp),%eax
add    $0x2ad7d2bb,%eax
add    -0x1c(%rbp),%eax
mov    %eax,-0x1c(%rbp)
mov    -0x1c(%rbp),%eax
shl    $0xf,%eax
mov    -0x1c(%rbp),%ecx
shr    $0x11,%ecx
or     %ecx,%eax
mov    %eax,-0x1c(%rbp)
mov    -0x20(%rbp),%eax
add    -0x1c(%rbp),%eax
mov    %eax,-0x1c(%rbp)
mov    -0x20(%rbp),%eax
mov    -0x1c(%rbp),%ecx
mov    -0x14(%rbp),%edx
xor    $0xffffffff,%edx
or     %edx,%ecx
xor    %ecx,%eax
add    -0x3c(%rbp),%eax
add    $0xeb86d391,%eax
add    -0x18(%rbp),%eax
mov    %eax,-0x18(%rbp)
mov    -0x18(%rbp),%eax
shl    $0x15,%eax
mov    -0x18(%rbp),%ecx
shr    $0xb,%ecx
or     %ecx,%eax
mov    %eax,-0x18(%rbp)
mov    -0x1c(%rbp),%eax
add    -0x18(%rbp),%eax
mov    %eax,-0x18(%rbp)
mov    -0x14(%rbp),%ecx
mov    -0x8(%rbp),%rax
add    (%rax),%ecx
mov    %ecx,(%rax)
mov    -0x18(%rbp),%ecx
mov    -0x8(%rbp),%rax
add    0x4(%rax),%ecx
mov    %ecx,0x4(%rax)
mov    -0x1c(%rbp),%ecx
mov    -0x8(%rbp),%rax
add    0x8(%rax),%ecx
mov    %ecx,0x8(%rax)
mov    -0x20(%rbp),%ecx
mov    -0x8(%rbp),%rax
add    0xc(%rax),%ecx
mov    %ecx,0xc(%rax)
lea    -0x60(%rbp),%rdi
xor    %esi,%esi
mov    $0x40,%edx
call   1030 <memset@plt>
add    $0x60,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<MD5Transform>:
push   %rbp
push   %r15
push   %r14
push   %r13
push   %r12
push   %rbx
mov    %rdi,-0x18(%rsp)
mov    (%rdi),%ebx
mov    %ebx,-0x54(%rsp)
mov    0x4(%rdi),%ebp
mov    0x8(%rdi),%ecx
mov    0xc(%rdi),%edx
mov    (%rsi),%edi
mov    %rdi,-0x40(%rsp)
mov    0x4(%rsi),%r15d
mov    0x8(%rsi),%r9d
mov    %r9,-0x20(%rsp)
mov    %ecx,%eax
mov    %rcx,%r8
and    %ebp,%eax
mov    %ebp,%ecx
not    %ecx
and    %edx,%ecx
mov    %rdx,-0x8(%rsp)
add    %ebx,%eax
add    %ecx,%eax
lea    (%rdi,%rax,1),%ebx
add    $0xd76aa478,%ebx
rol    $0x7,%ebx
mov    0xc(%rsi),%r10d
mov    %r10,-0x28(%rsp)
add    %ebp,%ebx
mov    %ebx,%eax
and    %ebp,%eax
mov    %rbp,%rdi
mov    %ebx,%ecx
not    %ecx
mov    %r8,%rbp
mov    %r8,-0x10(%rsp)
and    %ebp,%ecx
add    %r15d,%edx
mov    %r15,-0x48(%rsp)
add    %edx,%ecx
lea    (%rax,%rcx,1),%r8d
add    $0xe8c7b756,%r8d
rol    $0xc,%r8d
add    %ebx,%r8d
mov    %r8d,%eax
and    %ebx,%eax
mov    %r8d,%ecx
not    %ecx
and    %edi,%ecx
mov    %rdi,-0x30(%rsp)
add    %ebp,%ecx
add    %r9d,%ecx
lea    (%rax,%rcx,1),%ebp
add    $0x242070db,%ebp
rol    $0x11,%ebp
add    %r8d,%ebp
mov    %ebp,%eax
not    %eax
and    %ebx,%eax
add    %edi,%eax
add    %r10d,%eax
mov    %ebp,%ecx
and    %r8d,%ecx
add    %ecx,%eax
add    $0xc1bdceee,%eax
rol    $0x16,%eax
add    %ebp,%eax
mov    %eax,%ecx
not    %ecx
and    %r8d,%ecx
mov    0x10(%rsi),%edx
add    %edx,%ebx
mov    %edx,%r13d
add    %ecx,%ebx
mov    %eax,%ecx
and    %ebp,%ecx
add    %ebx,%ecx
add    $0xf57c0faf,%ecx
rol    $0x7,%ecx
add    %eax,%ecx
mov    %ecx,%edx
not    %edx
and    %ebp,%edx
mov    0x14(%rsi),%edi
mov    %rdi,-0x50(%rsp)
add    %edi,%r8d
add    %edx,%r8d
mov    %ecx,%edx
and    %eax,%edx
add    %edx,%r8d
add    $0x4787c62a,%r8d
rol    $0xc,%r8d
add    %ecx,%r8d
mov    %r8d,%edx
not    %edx
and    %eax,%edx
mov    0x18(%rsi),%r10d
add    %r10d,%ebp
mov    %r10d,-0x58(%rsp)
add    %edx,%ebp
mov    %r8d,%edx
and    %ecx,%edx
lea    (%rdx,%rbp,1),%r11d
add    $0xa8304613,%r11d
rol    $0x11,%r11d
add    %r8d,%r11d
mov    %r11d,%edx
not    %edx
and    %ecx,%edx
mov    0x1c(%rsi),%edi
mov    %edi,-0x5c(%rsp)
add    %edi,%eax
add    %edx,%eax
mov    %r11d,%edx
and    %r8d,%edx
add    %edx,%eax
add    $0xfd469501,%eax
rol    $0x16,%eax
add    %r11d,%eax
mov    %eax,%edx
not    %edx
and    %r8d,%edx
mov    0x20(%rsi),%edi
mov    %edi,-0x78(%rsp)
add    %edi,%ecx
add    %edx,%ecx
mov    %eax,%edx
and    %r11d,%edx
lea    (%rdx,%rcx,1),%r14d
add    $0x698098d8,%r14d
rol    $0x7,%r14d
add    %eax,%r14d
mov    %r14d,%ecx
not    %ecx
and    %r11d,%ecx
mov    0x24(%rsi),%edx
mov    %edx,-0x6c(%rsp)
add    %edx,%r8d
add    %ecx,%r8d
mov    %r14d,%ecx
and    %eax,%ecx
add    %ecx,%r8d
add    $0x8b44f7af,%r8d
rol    $0xc,%r8d
add    %r14d,%r8d
mov    %r8d,%ecx
not    %ecx
and    %eax,%ecx
mov    0x28(%rsi),%edx
add    %edx,%r11d
mov    %edx,%r12d
mov    %edx,-0x68(%rsp)
add    %ecx,%r11d
mov    %r8d,%ecx
and    %r14d,%ecx
lea    (%rcx,%r11,1),%edx
add    $0xffff5bb1,%edx
rol    $0x11,%edx
add    %r8d,%edx
mov    %edx,%ecx
not    %ecx
and    %r14d,%ecx
mov    0x2c(%rsi),%edi
add    %edi,%eax
mov    %edi,%ebx
mov    %edi,-0x74(%rsp)
add    %ecx,%eax
mov    %edx,%ecx
and    %r8d,%ecx
add    %eax,%ecx
add    $0x895cd7be,%ecx
rol    $0x16,%ecx
add    %edx,%ecx
mov    %ecx,%eax
not    %eax
and    %r8d,%eax
mov    0x30(%rsi),%edi
mov    %edi,-0x64(%rsp)
add    %edi,%r14d
add    %eax,%r14d
mov    %ecx,%eax
and    %edx,%eax
add    %r14d,%eax
add    $0x6b901122,%eax
rol    $0x7,%eax
add    %ecx,%eax
mov    %eax,%edi
not    %edi
and    %edx,%edi
mov    0x34(%rsi),%ebp
mov    %ebp,-0x7c(%rsp)
add    %ebp,%r8d
add    %edi,%r8d
mov    %eax,%edi
and    %ecx,%edi
lea    (%rdi,%r8,1),%r11d
add    $0xfd987193,%r11d
mov    0x38(%rsi),%ebp
mov    0x3c(%rsi),%edi
rol    $0xc,%r11d
add    %eax,%r11d
mov    %r11d,%esi
not    %esi
lea    (%rdi,%rcx,1),%r9d
mov    %rdi,%r14
mov    %rdi,-0x38(%rsp)
and    %esi,%ecx
add    %ebp,%edx
add    %ecx,%edx
mov    %r11d,%ecx
and    %eax,%ecx
add    %ecx,%edx
add    $0xa679438e,%edx
rol    $0x11,%edx
add    %r11d,%edx
mov    %edx,%edi
not    %edi
lea    (%r15,%rax,1),%r8d
and    %edi,%eax
add    %r9d,%eax
mov    %edx,%ecx
and    %r11d,%ecx
add    %ecx,%eax
add    $0x49b40821,%eax
and    %edx,%esi
add    %r8d,%esi
rol    $0x16,%eax
add    %edx,%eax
mov    %eax,%ecx
and    %r11d,%ecx
add    %esi,%ecx
add    $0xf61e2562,%ecx
and    %eax,%edi
add    %r10d,%r11d
add    %edi,%r11d
rol    $0x5,%ecx
add    %eax,%ecx
mov    %ecx,%esi
and    %edx,%esi
add    %r11d,%esi
add    $0xc040b340,%esi
rol    $0x9,%esi
mov    %eax,%edi
not    %edi
and    %ecx,%edi
add    %ebx,%edx
add    %edi,%edx
add    %ecx,%esi
mov    %esi,%edi
and    %eax,%edi
lea    (%rdi,%rdx,1),%r11d
add    $0x265e5a51,%r11d
mov    %ecx,%edx
not    %edx
and    %esi,%edx
add    -0x40(%rsp),%eax
add    %edx,%eax
rol    $0xe,%r11d
add    %esi,%r11d
mov    %r11d,%edx
and    %ecx,%edx
lea    (%rdx,%rax,1),%edi
add    $0xe9b6c7aa,%edi
mov    %esi,%eax
not    %eax
and    %r11d,%eax
mov    -0x50(%rsp),%r10
add    %r10d,%ecx
add    %eax,%ecx
rol    $0x14,%edi
add    %r11d,%edi
mov    %edi,%eax
and    %esi,%eax
lea    (%rax,%rcx,1),%edx
add    $0xd62f105d,%edx
rol    $0x5,%edx
mov    %r11d,%eax
not    %eax
and    %edi,%eax
add    %r12d,%esi
add    %eax,%esi
add    %edi,%edx
mov    %edx,%eax
and    %r11d,%eax
add    %esi,%eax
add    $0x2441453,%eax
mov    %edi,%ecx
not    %ecx
and    %edx,%ecx
add    %r14d,%r11d
add    %ecx,%r11d
rol    $0x9,%eax
add    %edx,%eax
mov    %eax,%ecx
and    %edi,%ecx
add    %ecx,%r11d
add    $0xd8a1e681,%r11d
mov    %edx,%ecx
not    %ecx
and    %eax,%ecx
mov    %r13d,%r14d
mov    %r13d,-0x60(%rsp)
add    %r13d,%edi
add    %ecx,%edi
rol    $0xe,%r11d
add    %eax,%r11d
mov    %r11d,%ecx
and    %edx,%ecx
add    %edi,%ecx
add    $0xe7d3fbc8,%ecx
rol    $0x14,%ecx
mov    %eax,%esi
not    %esi
and    %r11d,%esi
mov    -0x6c(%rsp),%r13d
add    %r13d,%edx
add    %esi,%edx
add    %r11d,%ecx
mov    %ecx,%esi
and    %eax,%esi
add    %esi,%edx
add    $0x21e1cde6,%edx
mov    %r11d,%esi
not    %esi
and    %ecx,%esi
add    %ebp,%eax
mov    %ebp,%ebx
mov    %ebp,-0x70(%rsp)
add    %esi,%eax
rol    $0x5,%edx
add    %ecx,%edx
mov    %edx,%esi
and    %r11d,%esi
add    %esi,%eax
add    $0xc33707d6,%eax
mov    %ecx,%esi
not    %esi
and    %edx,%esi
mov    -0x28(%rsp),%r15
add    %r15d,%r11d
add    %esi,%r11d
rol    $0x9,%eax
add    %edx,%eax
mov    %eax,%esi
and    %ecx,%esi
add    %esi,%r11d
add    $0xf4d50d87,%r11d
rol    $0xe,%r11d
mov    %edx,%esi
not    %esi
and    %eax,%esi
mov    -0x78(%rsp),%ebp
add    %ebp,%ecx
add    %esi,%ecx
add    %eax,%r11d
mov    %r11d,%esi
and    %edx,%esi
add    %esi,%ecx
add    $0x455a14ed,%ecx
mov    %eax,%esi
not    %esi
and    %r11d,%esi
mov    -0x7c(%rsp),%r8d
add    %r8d,%edx
add    %esi,%edx
rol    $0x14,%ecx
add    %r11d,%ecx
mov    %ecx,%esi
and    %eax,%esi
add    %edx,%esi
add    $0xa9e3e905,%esi
mov    %r11d,%edx
not    %edx
and    %ecx,%edx
mov    -0x20(%rsp),%r12
add    %r12d,%eax
add    %edx,%eax
rol    $0x5,%esi
add    %ecx,%esi
mov    %esi,%edx
and    %r11d,%edx
add    %edx,%eax
add    $0xfcefa3f8,%eax
rol    $0x9,%eax
mov    %ecx,%edx
not    %edx
and    %esi,%edx
mov    -0x5c(%rsp),%r9d
add    %r9d,%r11d
add    %edx,%r11d
add    %esi,%eax
mov    %eax,%edx
and    %ecx,%edx
add    %edx,%r11d
add    $0x676f02d9,%r11d
rol    $0xe,%r11d
add    %eax,%r11d
mov    %r11d,%edx
and    %esi,%edx
lea    (%r10,%rsi,1),%edi
not    %esi
and    %eax,%esi
mov    -0x64(%rsp),%r10d
add    %r10d,%ecx
add    %esi,%ecx
add    %ecx,%edx
add    $0x8d2a4c8a,%edx
rol    $0x14,%edx
add    %r11d,%edx
mov    %edx,%ecx
xor    %r11d,%ecx
mov    %ecx,%esi
xor    %eax,%esi
add    %edi,%esi
add    $0xfffa3942,%esi
rol    $0x4,%esi
add    %edx,%esi
xor    %esi,%ecx
add    %ebp,%eax
add    %ecx,%eax
add    $0x8771f681,%eax
rol    $0xb,%eax
add    %esi,%eax
mov    %esi,%ecx
xor    %edx,%ecx
xor    %eax,%ecx
add    -0x74(%rsp),%r11d
add    %r11d,%ecx
add    $0x6d9d6122,%ecx
rol    $0x10,%ecx
add    %eax,%ecx
mov    %eax,%edi
xor    %esi,%edi
xor    %ecx,%edi
add    %ebx,%edx
add    %edi,%edx
add    $0xfde5380c,%edx
rol    $0x17,%edx
add    %ecx,%edx
mov    %ecx,%edi
xor    %eax,%edi
xor    %edx,%edi
add    -0x48(%rsp),%esi
add    %edi,%esi
add    $0xa4beea44,%esi
rol    $0x4,%esi
add    %edx,%esi
mov    %edx,%edi
xor    %ecx,%edi
xor    %esi,%edi
add    %r14d,%eax
add    %edi,%eax
add    $0x4bdecfa9,%eax
rol    $0xb,%eax
add    %esi,%eax
mov    %esi,%edi
xor    %edx,%edi
xor    %eax,%edi
add    %r9d,%ecx
add    %edi,%ecx
add    $0xf6bb4b60,%ecx
rol    $0x10,%ecx
add    %eax,%ecx
mov    %eax,%edi
xor    %esi,%edi
xor    %ecx,%edi
mov    -0x68(%rsp),%ebp
add    %ebp,%edx
add    %edi,%edx
add    $0xbebfbc70,%edx
rol    $0x17,%edx
add    %ecx,%edx
mov    %ecx,%edi
xor    %eax,%edi
xor    %edx,%edi
add    %r8d,%esi
add    %edi,%esi
add    $0x289b7ec6,%esi
rol    $0x4,%esi
add    %edx,%esi
mov    %edx,%edi
xor    %ecx,%edi
xor    %esi,%edi
mov    -0x40(%rsp),%r8
add    %r8d,%eax
add    %edi,%eax
add    $0xeaa127fa,%eax
rol    $0xb,%eax
add    %esi,%eax
mov    %esi,%edi
xor    %edx,%edi
xor    %eax,%edi
add    %r15d,%ecx
mov    %r15,%rbx
add    %edi,%ecx
add    $0xd4ef3085,%ecx
rol    $0x10,%ecx
add    %eax,%ecx
mov    %eax,%edi
xor    %esi,%edi
xor    %ecx,%edi
mov    -0x58(%rsp),%r14d
add    %r14d,%edx
lea    (%rdi,%rdx,1),%r11d
add    $0x4881d05,%r11d
rol    $0x17,%r11d
add    %ecx,%r11d
mov    %ecx,%edx
xor    %eax,%edx
xor    %r11d,%edx
add    %r13d,%esi
add    %edx,%esi
add    $0xd9d4d039,%esi
rol    $0x4,%esi
add    %r11d,%esi
mov    %r11d,%edx
xor    %ecx,%edx
xor    %esi,%edx
mov    %r10d,%edi
add    %r10d,%eax
add    %eax,%edx
add    $0xe6db99e5,%edx
rol    $0xb,%edx
add    %esi,%edx
mov    %esi,%eax
xor    %r11d,%eax
xor    %edx,%eax
mov    -0x38(%rsp),%r10
add    %r10d,%ecx
add    %ecx,%eax
add    $0x1fa27cf8,%eax
rol    $0x10,%eax
add    %edx,%eax
mov    %edx,%ecx
xor    %esi,%ecx
xor    %eax,%ecx
add    %r12d,%r11d
add    %ecx,%r11d
add    $0xc4ac5665,%r11d
add    %r8d,%esi
rol    $0x17,%r11d
add    %eax,%r11d
mov    %edx,%ecx
not    %ecx
or     %r11d,%ecx
xor    %eax,%ecx
add    %esi,%ecx
add    $0xf4292244,%ecx
add    %r9d,%edx
rol    $0x6,%ecx
add    %r11d,%ecx
mov    %eax,%esi
not    %esi
or     %ecx,%esi
xor    %r11d,%esi
add    %esi,%edx
add    $0x432aff97,%edx
add    -0x70(%rsp),%eax
rol    $0xa,%edx
add    %ecx,%edx
mov    %r11d,%esi
not    %esi
or     %edx,%esi
xor    %ecx,%esi
add    %eax,%esi
add    $0xab9423a7,%esi
add    -0x50(%rsp),%r11d
rol    $0xf,%esi
add    %edx,%esi
mov    %ecx,%eax
not    %eax
or     %esi,%eax
xor    %edx,%eax
add    %r11d,%eax
add    $0xfc93a039,%eax
add    %edi,%ecx
rol    $0x15,%eax
add    %esi,%eax
mov    %edx,%edi
not    %edi
or     %eax,%edi
xor    %esi,%edi
add    %edi,%ecx
add    $0x655b59c3,%ecx
add    %ebx,%edx
rol    $0x6,%ecx
add    %eax,%ecx
mov    %esi,%edi
not    %edi
or     %ecx,%edi
xor    %eax,%edi
add    %edi,%edx
add    $0x8f0ccc92,%edx
add    %ebp,%esi
rol    $0xa,%edx
add    %ecx,%edx
mov    %eax,%edi
not    %edi
or     %edx,%edi
xor    %ecx,%edi
add    %edi,%esi
add    $0xffeff47d,%esi
add    -0x48(%rsp),%eax
rol    $0xf,%esi
add    %edx,%esi
mov    %ecx,%edi
not    %edi
or     %esi,%edi
xor    %edx,%edi
lea    (%rdi,%rax,1),%ebp
add    $0x85845dd1,%ebp
add    -0x78(%rsp),%ecx
rol    $0x15,%ebp
add    %esi,%ebp
mov    %edx,%eax
not    %eax
or     %ebp,%eax
xor    %esi,%eax
lea    (%rax,%rcx,1),%ebx
add    $0x6fa87e4f,%ebx
add    %r10d,%edx
rol    $0x6,%ebx
add    %ebp,%ebx
mov    %esi,%eax
not    %eax
or     %ebx,%eax
xor    %ebp,%eax
add    %eax,%edx
add    $0xfe2ce6e0,%edx
rol    $0xa,%edx
add    %ebx,%edx
add    %r14d,%esi
mov    %ebp,%eax
not    %eax
or     %edx,%eax
xor    %ebx,%eax
add    %esi,%eax
add    $0xa3014314,%eax
rol    $0xf,%eax
add    %edx,%eax
add    -0x7c(%rsp),%ebp
mov    %ebx,%ecx
not    %ecx
or     %eax,%ecx
xor    %edx,%ecx
add    %ebp,%ecx
add    $0x4e0811a1,%ecx
rol    $0x15,%ecx
add    %eax,%ecx
add    -0x60(%rsp),%ebx
mov    %edx,%esi
not    %esi
or     %ecx,%esi
xor    %eax,%esi
add    %ebx,%esi
add    $0xf7537e82,%esi
rol    $0x6,%esi
add    %ecx,%esi
add    -0x74(%rsp),%edx
mov    %eax,%edi
not    %edi
or     %esi,%edi
xor    %ecx,%edi
add    %edi,%edx
add    $0xbd3af235,%edx
rol    $0xa,%edx
add    %esi,%edx
add    %r12d,%eax
mov    %ecx,%edi
not    %edi
or     %edx,%edi
xor    %esi,%edi
add    %edi,%eax
add    $0x2ad7d2bb,%eax
rol    $0xf,%eax
add    %edx,%eax
add    %r13d,%ecx
mov    %esi,%edi
not    %edi
or     %eax,%edi
xor    %edx,%edi
add    %edi,%ecx
add    $0xeb86d391,%ecx
add    -0x54(%rsp),%esi
rol    $0x15,%ecx
mov    -0x18(%rsp),%rdi
mov    %esi,(%rdi)
mov    -0x30(%rsp),%rsi
add    %eax,%esi
add    %ecx,%esi
mov    %esi,0x4(%rdi)
add    -0x10(%rsp),%eax
mov    %eax,0x8(%rdi)
add    -0x8(%rsp),%edx
mov    %edx,0xc(%rdi)
pop    %rbx
pop    %r12
pop    %r13
pop    %r14
pop    %r15
pop    %rbp
ret

LLVM IR (-O0):
define void @MD5Transform(i32* %0, i8* %1) {
%3 = alloca i32*
%4 = alloca i8*
%5 = alloca i32
%6 = alloca i32
%7 = alloca i32
%8 = alloca i32
%9 = alloca [16 x i32]
store i32* %0, i32** %3
store i8* %1, i8** %4
%10 = load i32*, i32** %3
%11 = getelementptr inbounds i32, i32* %10, i64 0
%12 = load i32, i32* %11
store i32 %12, i32* %5
%13 = load i32*, i32** %3
%14 = getelementptr inbounds i32, i32* %13, i64 1
%15 = load i32, i32* %14
store i32 %15, i32* %6
%16 = load i32*, i32** %3
%17 = getelementptr inbounds i32, i32* %16, i64 2
%18 = load i32, i32* %17
store i32 %18, i32* %7
%19 = load i32*, i32** %3
%20 = getelementptr inbounds i32, i32* %19, i64 3
%21 = load i32, i32* %20
store i32 %21, i32* %8
%22 = getelementptr inbounds [16 x i32], [16 x i32]* %9, i64 0, i64 0
%23 = bitcast i32* %22 to i8*
%24 = load i8*, i8** %4
%25 = load i32, i32* %6
%26 = load i32, i32* %7
%27 = and i32 %25, %26
%28 = load i32, i32* %6
%29 = xor i32 %28, -1
%30 = load i32, i32* %8
%31 = and i32 %29, %30
%32 = or i32 %27, %31
%33 = getelementptr inbounds [16 x i32], [16 x i32]* %9, i64 0, i64 0
%34 = load i32, i32* %33
%35 = add i32 %32, %34
%36 = add i32 %35, -680876936
%37 = load i32, i32* %5
%38 = add i32 %37, %36
store i32 %38, i32* %5
%39 = load i32, i32* %5
%40 = shl i32 %39, 7
%41 = load i32, i32* %5
%42 = lshr i32 %41, 25
%43 = or i32 %40, %42
store i32 %43, i32* %5
%44 = load i32, i32* %6
%45 = load i32, i32* %5
%46 = add i32 %45, %44
store i32 %46, i32* %5
%47 = load i32, i32* %5
%48 = load i32, i32* %6
%49 = and i32 %47, %48
%50 = load i32, i32* %5
%51 = xor i32 %50, -1
%52 = load i32, i32* %7
%53 = and i32 %51, %52
%54 = or i32 %49, %53
%55 = getelementptr inbounds [16 x i32], [16 x i32]* %9, i64 0, i64 1
%56 = load i32, i32* %55
%57 = add i32 %54, %56
%58 = add i32 %57, -389564586
%59 = load i32, i32* %8
%60 = add i32 %59, %58
store i32 %60, i32* %8
%61 = load i32, i32* %8
%62 = shl i32 %61, 12
%63 = load i32, i32* %8
%64 = lshr i32 %63, 20
%65 = or i32 %62, %64
store i32 %65, i32* %8
%66 = load i32, i32* %5
%67 = load i32, i32* %8
%68 = add i32 %67, %66
store i32 %68, i32* %8
%69 = load i32, i32* %8
%70 = load i32, i32* %5
%71 = and i32 %69, %70
%72 = load i32, i32* %8
%73 = xor i32 %72, -1
%74 = load i32, i32* %6
%75 = and i32 %73, %74
%76 = or i32 %71, %75
%77 = getelementptr inbounds [16 x i32], [16 x i32]* %9, i64 0, i64 2
%78 = load i32, i32* %77
%79 = add i32 %76, %78
%80 = add i32 %79, 606105819
%81 = load i32, i32* %7
%82 = add i32 %81, %80
store i32 %82, i32* %7
%83 = load i32, i32* %7
%84 = shl i32 %83, 17
%85 = load i32, i32* %7
%86 = lshr i32 %85, 15
%87 = or i32 %84, %86
store i32 %87, i32* %7
%88 = load i32, i32* %8
%89 = load i32, i32* %7
%90 = add i32 %89, %88
store i32 %90, i32* %7
%91 = load i32, i32* %7
%92 = load i32, i32* %8
%93 = and i32 %91, %92
%94 = load i32, i32* %7
%95 = xor i32 %94, -1
%96 = load i32, i32* %5
%97 = and i32 %95, %96
%98 = or i32 %93, %97
%99 = getelementptr inbounds [16 x i32], [16 x i32]* %9, i64 0, i64 3
%100 = load i32, i32* %99
%101 = add i32 %98, %100
%102 = add i32 %101, -1044525330
%103 = load i32, i32* %6
%104 = add i32 %103, %102
store i32 %104, i32* %6
%105 = load i32, i32* %6
%106 = shl i32 %105, 22
%107 = load i32, i32* %6
%108 = lshr i32 %107, 10
%109 = or i32 %106, %108
store i32 %109, i32* %6
%110 = load i32, i32* %7
%111 = load i32, i32* %6
%112 = add i32 %111, %110
store i32 %112, i32* %6
%113 = load i32, i32* %6
%114 = load i32, i32* %7
%115 = and i32 %113, %114
%116 = load i32, i32* %6
%117 = xor i32 %116, -1
%118 = load i32, i32* %8
%119 = and i32 %117, %118
%120 = or i32 %115, %119
%121 = getelementptr inbounds [16 x i32], [16 x i32]* %9, i64 0, i64 4
%122 = load i32, i32* %121
%123 = add i32 %120, %122
%124 = add i32 %123, -176418897
%125 = load i32, i32* %5
%126 = add i32 %125, %124
store i32 %126, i32* %5
%127 = load i32, i32* %5
%128 = shl i32 %127, 7
%129 = load i32, i32* %5
%130 = lshr i32 %129, 25
%131 = or i32 %128, %130
store i32 %131, i32* %5
%132 = load i32, i32* %6
%133 = load i32, i32* %5
%134 = add i32 %133, %132
store i32 %134, i32* %5
%135 = load i32, i32* %5
%136 = load i32, i32* %6
%137 = and i32 %135, %136
%138 = load i32, i32* %5
%139 = xor i32 %138, -1
%140 = load i32, i32* %7
%141 = and i32 %139, %140
%142 = or i32 %137, %141
%143 = getelementptr inbounds [16 x i32], [16 x i32]* %9, i64 0, i64 5
%144 = load i32, i32* %143
%145 = add i32 %142, %144
%146 = add i32 %145, 1200080426
%147 = load i32, i32* %8
%148 = add i32 %147, %146
store i32 %148, i32* %8
%149 = load i32, i32* %8
%150 = shl i32 %149, 12
%151 = load i32, i32* %8
%152 = lshr i32 %151, 20
%153 = or i32 %150, %152
store i32 %153, i32* %8
%154 = load i32, i32* %5
%155 = load i32, i32* %8
%156 = add i32 %155, %154
store i32 %156, i32* %8
%157 = load i32, i32* %8
%158 = load i32, i32* %5
%159 = and i32 %157, %158
%160 = load i32, i32* %8
%161 = xor i32 %160, -1
%162 = load i32, i32* %6
%163 = and i32 %161, %162
%164 = or i32 %159, %163
%165 = getelementptr inbounds [16 x i32], [16 x i32]* %9, i64 0, i64 6
%166 = load i32, i32* %165
%167 = add i32 %164, %166
%168 = add i32 %167, -1473231341
%169 = load i32, i32* %7
%170 = add i32 %169, %168
store i32 %170, i32* %7
%171 = load i32, i32* %7
%172 = shl i32 %171, 17
%173 = load i32, i32* %7
%174 = lshr i32 %173, 15
%175 = or i32 %172, %174
store i32 %175, i32* %7
%176 = load i32, i32* %8
%177 = load i32, i32* %7
%178 = add i32 %177, %176
store i32 %178, i32* %7
%179 = load i32, i32* %7
%180 = load i32, i32* %8
%181 = and i32 %179, %180
%182 = load i32, i32* %7
%183 = xor i32 %182, -1
%184 = load i32, i32* %5
%185 = and i32 %183, %184
%186 = or i32 %181, %185
%187 = getelementptr inbounds [16 x i32], [16 x i32]* %9, i64 0, i64 7
%188 = load i32, i32* %187
%189 = add i32 %186, %188
%190 = add i32 %189, -45705983
%191 = load i32, i32* %6
%192 = add i32 %191, %190
store i32 %192, i32* %6
%193 = load i32, i32* %6
%194 = shl i32 %193, 22
%195 = load i32, i32* %6
%196 = lshr i32 %195, 10
%197 = or i32 %194, %196
store i32 %197, i32* %6
%198 = load i32, i32* %7
%199 = load i32, i32* %6
%200 = add i32 %199, %198
store i32 %200, i32* %6
%201 = load i32, i32* %6
%202 = load i32, i32* %7
%203 = and i32 %201, %202
%204 = load i32, i32* %6
%205 = xor i32 %204, -1
%206 = load i32, i32* %8
%207 = and i32 %205, %206
%208 = or i32 %203, %207
%209 = getelementptr inbounds [16 x i32], [16 x i32]* %9, i64 0, i64 8
%210 = load i32, i32* %209
%211 = add i32 %208, %210
%212 = add i32 %211, 1770035416
%213 = load i32, i32* %5
%214 = add i32 %213, %212
store i32 %214, i32* %5
%215 = load i32, i32* %5
%216 = shl i32 %215, 7
%217 = load i32, i32* %5
%218 = lshr i32 %217, 25
%219 = or i32 %216, %218
store i32 %219, i32* %5
%220 = load i32, i32* %6
%221 = load i32, i32* %5
%222 = add i32 %221, %220
store i32 %222, i32* %5
%223 = load i32, i32* %5
%224 = load i32, i32* %6
%225 = and i32 %223, %224
%226 = load i32, i32* %5
%227 = xor i32 %226, -1
%228 = load i32, i32* %7
%229 = and i32 %227, %228
%230 = or i32 %225, %229
%231 = getelementptr inbounds [16 x i32], [16 x i32]* %9, i64 0, i64 9
%232 = load i32, i32* %231
%233 = add i32 %230, %232
%234 = add i32 %233, -1958414417
%235 = load i32, i32* %8
%236 = add i32 %235, %234
store i32 %236, i32* %8
%237 = load i32, i32* %8
%238 = shl i32 %237, 12
%239 = load i32, i32* %8
%240 = lshr i32 %239, 20
%241 = or i32 %238, %240
store i32 %241, i32* %8
%242 = load i32, i32* %5
%243 = load i32, i32* %8
%244 = add i32 %243, %242
store i32 %244, i32* %8
%245 = load i32, i32* %8
%246 = load i32, i32* %5
%247 = and i32 %245, %246
%248 = load i32, i32* %8
%249 = xor i32 %248, -1
%250 = load i32, i32* %6
%251 = and i32 %249, %250
%252 = or i32 %247, %251
%253 = getelementptr inbounds [16 x i32], [16 x i32]* %9, i64 0, i64 10
%254 = load i32, i32* %253
%255 = add i32 %252, %254
%256 = add i32 %255, -42063
%257 = load i32, i32* %7
%258 = add i32 %257, %256
store i32 %258, i32* %7
%259 = load i32, i32* %7
%260 = shl i32 %259, 17
%261 = load i32, i32* %7
%262 = lshr i32 %261, 15
%263 = or i32 %260, %262
store i32 %263, i32* %7
%264 = load i32, i32* %8
%265 = load i32, i32* %7
%266 = add i32 %265, %264
store i32 %266, i32* %7
%267 = load i32, i32* %7
%268 = load i32, i32* %8
%269 = and i32 %267, %268
%270 = load i32, i32* %7
%271 = xor i32 %270, -1
%272 = load i32, i32* %5
%273 = and i32 %271, %272
%274 = or i32 %269, %273
%275 = getelementptr inbounds [16 x i32], [16 x i32]* %9, i64 0, i64 11
%276 = load i32, i32* %275
%277 = add i32 %274, %276
%278 = add i32 %277, -1990404162
%279 = load i32, i32* %6
%280 = add i32 %279, %278
store i32 %280, i32* %6
%281 = load i32, i32* %6
%282 = shl i32 %281, 22
%283 = load i32, i32* %6
%284 = lshr i32 %283, 10
%285 = or i32 %282, %284
store i32 %285, i32* %6
%286 = load i32, i32* %7
%287 = load i32, i32* %6
%288 = add i32 %287, %286
store i32 %288, i32* %6
%289 = load i32, i32* %6
%290 = load i32, i32* %7
%291 = and i32 %289, %290
%292 = load i32, i32* %6
%293 = xor i32 %292, -1
%294 = load i32, i32* %8
%295 = and i32 %293, %294
%296 = or i32 %291, %295
%297 = getelementptr inbounds [16 x i32], [16 x i32]* %9, i64 0, i64 12
%298 = load i32, i32* %297
%299 = add i32 %296, %298
%300 = add i32 %299, 1804603682
%301 = load i32, i32* %5
%302 = add i32 %301, %300
store i32 %302, i32* %5
%303 = load i32, i32* %5
%304 = shl i32 %303, 7
%305 = load i32, i32* %5
%306 = lshr i32 %305, 25
%307 = or i32 %304, %306
store i32 %307, i32* %5
%308 = load i32, i32* %6
%309 = load i32, i32* %5
%310 = add i32 %309, %308
store i32 %310, i32* %5
%311 = load i32, i32* %5
%312 = load i32, i32* %6
%313 = and i32 %311, %312
%314 = load i32, i32* %5
%315 = xor i32 %314, -1
%316 = load i32, i32* %7
%317 = and i32 %315, %316
%318 = or i32 %313, %317
%319 = getelementptr inbounds [16 x i32], [16 x i32]* %9, i64 0, i64 13
%320 = load i32, i32* %319
%321 = add i32 %318, %320
%322 = add i32 %321, -40341101
%323 = load i32, i32* %8
%324 = add i32 %323, %322
store i32 %324, i32* %8
%325 = load i32, i32* %8
%326 = shl i32 %325, 12
%327 = load i32, i32* %8
%328 = lshr i32 %327, 20
%329 = or i32 %326, %328
store i32 %329, i32* %8
%330 = load i32, i32* %5
%331 = load i32, i32* %8
%332 = add i32 %331, %330
store i32 %332, i32* %8
%333 = load i32, i32* %8
%334 = load i32, i32* %5
%335 = and i32 %333, %334
%336 = load i32, i32* %8
%337 = xor i32 %336, -1
%338 = load i32, i32* %6
%339 = and i32 %337, %338
%340 = or i32 %335, %339
%341 = getelementptr inbounds [16 x i32], [16 x i32]* %9, i64 0, i64 14
%342 = load i32, i32* %341
%343 = add i32 %340, %342
%344 = add i32 %343, -1502002290
%345 = load i32, i32* %7
%346 = add i32 %345, %344
store i32 %346, i32* %7
%347 = load i32, i32* %7
%348 = shl i32 %347, 17
%349 = load i32, i32* %7
%350 = lshr i32 %349, 15
%351 = or i32 %348, %350
store i32 %351, i32* %7
%352 = load i32, i32* %8
%353 = load i32, i32* %7
%354 = add i32 %353, %352
store i32 %354, i32* %7
%355 = load i32, i32* %7
%356 = load i32, i32* %8
%357 = and i32 %355, %356
%358 = load i32, i32* %7
%359 = xor i32 %358, -1
%360 = load i32, i32* %5
%361 = and i32 %359, %360
%362 = or i32 %357, %361
%363 = getelementptr inbounds [16 x i32], [16 x i32]* %9, i64 0, i64 15
%364 = load i32, i32* %363
%365 = add i32 %362, %364
%366 = add i32 %365, 1236535329
%367 = load i32, i32* %6
%368 = add i32 %367, %366
store i32 %368, i32* %6
%369 = load i32, i32* %6
%370 = shl i32 %369, 22
%371 = load i32, i32* %6
%372 = lshr i32 %371, 10
%373 = or i32 %370, %372
store i32 %373, i32* %6
%374 = load i32, i32* %7
%375 = load i32, i32* %6
%376 = add i32 %375, %374
store i32 %376, i32* %6
%377 = load i32, i32* %6
%378 = load i32, i32* %8
%379 = and i32 %377, %378
%380 = load i32, i32* %7
%381 = load i32, i32* %8
%382 = xor i32 %381, -1
%383 = and i32 %380, %382
%384 = or i32 %379, %383
%385 = getelementptr inbounds [16 x i32], [16 x i32]* %9, i64 0, i64 1
%386 = load i32, i32* %385
%387 = add i32 %384, %386
%388 = add i32 %387, -165796510
%389 = load i32, i32* %5
%390 = add i32 %389, %388
store i32 %390, i32* %5
%391 = load i32, i32* %5
%392 = shl i32 %391, 5
%393 = load i32, i32* %5
%394 = lshr i32 %393, 27
%395 = or i32 %392, %394
store i32 %395, i32* %5
%396 = load i32, i32* %6
%397 = load i32, i32* %5
%398 = add i32 %397, %396
store i32 %398, i32* %5
%399 = load i32, i32* %5
%400 = load i32, i32* %7
%401 = and i32 %399, %400
%402 = load i32, i32* %6
%403 = load i32, i32* %7
%404 = xor i32 %403, -1
%405 = and i32 %402, %404
%406 = or i32 %401, %405
%407 = getelementptr inbounds [16 x i32], [16 x i32]* %9, i64 0, i64 6
%408 = load i32, i32* %407
%409 = add i32 %406, %408
%410 = add i32 %409, -1069501632
%411 = load i32, i32* %8
%412 = add i32 %411, %410
store i32 %412, i32* %8
%413 = load i32, i32* %8
%414 = shl i32 %413, 9
%415 = load i32, i32* %8
%416 = lshr i32 %415, 23
%417 = or i32 %414, %416
store i32 %417, i32* %8
%418 = load i32, i32* %5
%419 = load i32, i32* %8
%420 = add i32 %419, %418
store i32 %420, i32* %8
%421 = load i32, i32* %8
%422 = load i32, i32* %6
%423 = and i32 %421, %422
%424 = load i32, i32* %5
%425 = load i32, i32* %6
%426 = xor i32 %425, -1
%427 = and i32 %424, %426
%428 = or i32 %423, %427
%429 = getelementptr inbounds [16 x i32], [16 x i32]* %9, i64 0, i64 11
%430 = load i32, i32* %429
%431 = add i32 %428, %430
%432 = add i32 %431, 643717713
%433 = load i32, i32* %7
%434 = add i32 %433, %432
store i32 %434, i32* %7
%435 = load i32, i32* %7
%436 = shl i32 %435, 14
%437 = load i32, i32* %7
%438 = lshr i32 %437, 18
%439 = or i32 %436, %438
store i32 %439, i32* %7
%440 = load i32, i32* %8
%441 = load i32, i32* %7
%442 = add i32 %441, %440
store i32 %442, i32* %7
%443 = load i32, i32* %7
%444 = load i32, i32* %5
%445 = and i32 %443, %444
%446 = load i32, i32* %8
%447 = load i32, i32* %5
%448 = xor i32 %447, -1
%449 = and i32 %446, %448
%450 = or i32 %445, %449
%451 = getelementptr inbounds [16 x i32], [16 x i32]* %9, i64 0, i64 0
%452 = load i32, i32* %451
%453 = add i32 %450, %452
%454 = add i32 %453, -373897302
%455 = load i32, i32* %6
%456 = add i32 %455, %454
store i32 %456, i32* %6
%457 = load i32, i32* %6
%458 = shl i32 %457, 20
%459 = load i32, i32* %6
%460 = lshr i32 %459, 12
%461 = or i32 %458, %460
store i32 %461, i32* %6
%462 = load i32, i32* %7
%463 = load i32, i32* %6
%464 = add i32 %463, %462
store i32 %464, i32* %6
%465 = load i32, i32* %6
%466 = load i32, i32* %8
%467 = and i32 %465, %466
%468 = load i32, i32* %7
%469 = load i32, i32* %8
%470 = xor i32 %469, -1
%471 = and i32 %468, %470
%472 = or i32 %467, %471
%473 = getelementptr inbounds [16 x i32], [16 x i32]* %9, i64 0, i64 5
%474 = load i32, i32* %473
%475 = add i32 %472, %474
%476 = add i32 %475, -701558691
%477 = load i32, i32* %5
%478 = add i32 %477, %476
store i32 %478, i32* %5
%479 = load i32, i32* %5
%480 = shl i32 %479, 5
%481 = load i32, i32* %5
%482 = lshr i32 %481, 27
%483 = or i32 %480, %482
store i32 %483, i32* %5
%484 = load i32, i32* %6
%485 = load i32, i32* %5
%486 = add i32 %485, %484
store i32 %486, i32* %5
%487 = load i32, i32* %5
%488 = load i32, i32* %7
%489 = and i32 %487, %488
%490 = load i32, i32* %6
%491 = load i32, i32* %7
%492 = xor i32 %491, -1
%493 = and i32 %490, %492
%494 = or i32 %489, %493
%495 = getelementptr inbounds [16 x i32], [16 x i32]* %9, i64 0, i64 10
%496 = load i32, i32* %495
%497 = add i32 %494, %496
%498 = add i32 %497, 38016083
%499 = load i32, i32* %8
%500 = add i32 %499, %498
store i32 %500, i32* %8
%501 = load i32, i32* %8
%502 = shl i32 %501, 9
%503 = load i32, i32* %8
%504 = lshr i32 %503, 23
%505 = or i32 %502, %504
store i32 %505, i32* %8
%506 = load i32, i32* %5
%507 = load i32, i32* %8
%508 = add i32 %507, %506
store i32 %508, i32* %8
%509 = load i32, i32* %8
%510 = load i32, i32* %6
%511 = and i32 %509, %510
%512 = load i32, i32* %5
%513 = load i32, i32* %6
%514 = xor i32 %513, -1
%515 = and i32 %512, %514
%516 = or i32 %511, %515
%517 = getelementptr inbounds [16 x i32], [16 x i32]* %9, i64 0, i64 15
%518 = load i32, i32* %517
%519 = add i32 %516, %518
%520 = add i32 %519, -660478335
%521 = load i32, i32* %7
%522 = add i32 %521, %520
store i32 %522, i32* %7
%523 = load i32, i32* %7
%524 = shl i32 %523, 14
%525 = load i32, i32* %7
%526 = lshr i32 %525, 18
%527 = or i32 %524, %526
store i32 %527, i32* %7
%528 = load i32, i32* %8
%529 = load i32, i32* %7
%530 = add i32 %529, %528
store i32 %530, i32* %7
%531 = load i32, i32* %7
%532 = load i32, i32* %5
%533 = and i32 %531, %532
%534 = load i32, i32* %8
%535 = load i32, i32* %5
%536 = xor i32 %535, -1
%537 = and i32 %534, %536
%538 = or i32 %533, %537
%539 = getelementptr inbounds [16 x i32], [16 x i32]* %9, i64 0, i64 4
%540 = load i32, i32* %539
%541 = add i32 %538, %540
%542 = add i32 %541, -405537848
%543 = load i32, i32* %6
%544 = add i32 %543, %542
store i32 %544, i32* %6
%545 = load i32, i32* %6
%546 = shl i32 %545, 20
%547 = load i32, i32* %6
%548 = lshr i32 %547, 12
%549 = or i32 %546, %548
store i32 %549, i32* %6
%550 = load i32, i32* %7
%551 = load i32, i32* %6
%552 = add i32 %551, %550
store i32 %552, i32* %6
%553 = load i32, i32* %6
%554 = load i32, i32* %8
%555 = and i32 %553, %554
%556 = load i32, i32* %7
%557 = load i32, i32* %8
%558 = xor i32 %557, -1
%559 = and i32 %556, %558
%560 = or i32 %555, %559
%561 = getelementptr inbounds [16 x i32], [16 x i32]* %9, i64 0, i64 9
%562 = load i32, i32* %561
%563 = add i32 %560, %562
%564 = add i32 %563, 568446438
%565 = load i32, i32* %5
%566 = add i32 %565, %564
store i32 %566, i32* %5
%567 = load i32, i32* %5
%568 = shl i32 %567, 5
%569 = load i32, i32* %5
%570 = lshr i32 %569, 27
%571 = or i32 %568, %570
store i32 %571, i32* %5
%572 = load i32, i32* %6
%573 = load i32, i32* %5
%574 = add i32 %573, %572
store i32 %574, i32* %5
%575 = load i32, i32* %5
%576 = load i32, i32* %7
%577 = and i32 %575, %576
%578 = load i32, i32* %6
%579 = load i32, i32* %7
%580 = xor i32 %579, -1
%581 = and i32 %578, %580
%582 = or i32 %577, %581
%583 = getelementptr inbounds [16 x i32], [16 x i32]* %9, i64 0, i64 14
%584 = load i32, i32* %583
%585 = add i32 %582, %584
%586 = add i32 %585, -1019803690
%587 = load i32, i32* %8
%588 = add i32 %587, %586
store i32 %588, i32* %8
%589 = load i32, i32* %8
%590 = shl i32 %589, 9
%591 = load i32, i32* %8
%592 = lshr i32 %591, 23
%593 = or i32 %590, %592
store i32 %593, i32* %8
%594 = load i32, i32* %5
%595 = load i32, i32* %8
%596 = add i32 %595, %594
store i32 %596, i32* %8
%597 = load i32, i32* %8
%598 = load i32, i32* %6
%599 = and i32 %597, %598
%600 = load i32, i32* %5
%601 = load i32, i32* %6
%602 = xor i32 %601, -1
%603 = and i32 %600, %602
%604 = or i32 %599, %603
%605 = getelementptr inbounds [16 x i32], [16 x i32]* %9, i64 0, i64 3
%606 = load i32, i32* %605
%607 = add i32 %604, %606
%608 = add i32 %607, -187363961
%609 = load i32, i32* %7
%610 = add i32 %609, %608
store i32 %610, i32* %7
%611 = load i32, i32* %7
%612 = shl i32 %611, 14
%613 = load i32, i32* %7
%614 = lshr i32 %613, 18
%615 = or i32 %612, %614
store i32 %615, i32* %7
%616 = load i32, i32* %8
%617 = load i32, i32* %7
%618 = add i32 %617, %616
store i32 %618, i32* %7
%619 = load i32, i32* %7
%620 = load i32, i32* %5
%621 = and i32 %619, %620
%622 = load i32, i32* %8
%623 = load i32, i32* %5
%624 = xor i32 %623, -1
%625 = and i32 %622, %624
%626 = or i32 %621, %625
%627 = getelementptr inbounds [16 x i32], [16 x i32]* %9, i64 0, i64 8
%628 = load i32, i32* %627
%629 = add i32 %626, %628
%630 = add i32 %629, 1163531501
%631 = load i32, i32* %6
%632 = add i32 %631, %630
store i32 %632, i32* %6
%633 = load i32, i32* %6
%634 = shl i32 %633, 20
%635 = load i32, i32* %6
%636 = lshr i32 %635, 12
%637 = or i32 %634, %636
store i32 %637, i32* %6
%638 = load i32, i32* %7
%639 = load i32, i32* %6
%640 = add i32 %639, %638
store i32 %640, i32* %6
%641 = load i32, i32* %6
%642 = load i32, i32* %8
%643 = and i32 %641, %642
%644 = load i32, i32* %7
%645 = load i32, i32* %8
%646 = xor i32 %645, -1
%647 = and i32 %644, %646
%648 = or i32 %643, %647
%649 = getelementptr inbounds [16 x i32], [16 x i32]* %9, i64 0, i64 13
%650 = load i32, i32* %649
%651 = add i32 %648, %650
%652 = add i32 %651, -1444681467
%653 = load i32, i32* %5
%654 = add i32 %653, %652
store i32 %654, i32* %5
%655 = load i32, i32* %5
%656 = shl i32 %655, 5
%657 = load i32, i32* %5
%658 = lshr i32 %657, 27
%659 = or i32 %656, %658
store i32 %659, i32* %5
%660 = load i32, i32* %6
%661 = load i32, i32* %5
%662 = add i32 %661, %660
store i32 %662, i32* %5
%663 = load i32, i32* %5
%664 = load i32, i32* %7
%665 = and i32 %663, %664
%666 = load i32, i32* %6
%667 = load i32, i32* %7
%668 = xor i32 %667, -1
%669 = and i32 %666, %668
%670 = or i32 %665, %669
%671 = getelementptr inbounds [16 x i32], [16 x i32]* %9, i64 0, i64 2
%672 = load i32, i32* %671
%673 = add i32 %670, %672
%674 = add i32 %673, -51403784
%675 = load i32, i32* %8
%676 = add i32 %675, %674
store i32 %676, i32* %8
%677 = load i32, i32* %8
%678 = shl i32 %677, 9
%679 = load i32, i32* %8
%680 = lshr i32 %679, 23
%681 = or i32 %678, %680
store i32 %681, i32* %8
%682 = load i32, i32* %5
%683 = load i32, i32* %8
%684 = add i32 %683, %682
store i32 %684, i32* %8
%685 = load i32, i32* %8
%686 = load i32, i32* %6
%687 = and i32 %685, %686
%688 = load i32, i32* %5
%689 = load i32, i32* %6
%690 = xor i32 %689, -1
%691 = and i32 %688, %690
%692 = or i32 %687, %691
%693 = getelementptr inbounds [16 x i32], [16 x i32]* %9, i64 0, i64 7
%694 = load i32, i32* %693
%695 = add i32 %692, %694
%696 = add i32 %695, 1735328473
%697 = load i32, i32* %7
%698 = add i32 %697, %696
store i32 %698, i32* %7
%699 = load i32, i32* %7
%700 = shl i32 %699, 14
%701 = load i32, i32* %7
%702 = lshr i32 %701, 18
%703 = or i32 %700, %702
store i32 %703, i32* %7
%704 = load i32, i32* %8
%705 = load i32, i32* %7
%706 = add i32 %705, %704
store i32 %706, i32* %7
%707 = load i32, i32* %7
%708 = load i32, i32* %5
%709 = and i32 %707, %708
%710 = load i32, i32* %8
%711 = load i32, i32* %5
%712 = xor i32 %711, -1
%713 = and i32 %710, %712
%714 = or i32 %709, %713
%715 = getelementptr inbounds [16 x i32], [16 x i32]* %9, i64 0, i64 12
%716 = load i32, i32* %715
%717 = add i32 %714, %716
%718 = add i32 %717, -1926607734
%719 = load i32, i32* %6
%720 = add i32 %719, %718
store i32 %720, i32* %6
%721 = load i32, i32* %6
%722 = shl i32 %721, 20
%723 = load i32, i32* %6
%724 = lshr i32 %723, 12
%725 = or i32 %722, %724
store i32 %725, i32* %6
%726 = load i32, i32* %7
%727 = load i32, i32* %6
%728 = add i32 %727, %726
store i32 %728, i32* %6
%729 = load i32, i32* %6
%730 = load i32, i32* %7
%731 = xor i32 %729, %730
%732 = load i32, i32* %8
%733 = xor i32 %731, %732
%734 = getelementptr inbounds [16 x i32], [16 x i32]* %9, i64 0, i64 5
%735 = load i32, i32* %734
%736 = add i32 %733, %735
%737 = add i32 %736, -378558
%738 = load i32, i32* %5
%739 = add i32 %738, %737
store i32 %739, i32* %5
%740 = load i32, i32* %5
%741 = shl i32 %740, 4
%742 = load i32, i32* %5
%743 = lshr i32 %742, 28
%744 = or i32 %741, %743
store i32 %744, i32* %5
%745 = load i32, i32* %6
%746 = load i32, i32* %5
%747 = add i32 %746, %745
store i32 %747, i32* %5
%748 = load i32, i32* %5
%749 = load i32, i32* %6
%750 = xor i32 %748, %749
%751 = load i32, i32* %7
%752 = xor i32 %750, %751
%753 = getelementptr inbounds [16 x i32], [16 x i32]* %9, i64 0, i64 8
%754 = load i32, i32* %753
%755 = add i32 %752, %754
%756 = add i32 %755, -2022574463
%757 = load i32, i32* %8
%758 = add i32 %757, %756
store i32 %758, i32* %8
%759 = load i32, i32* %8
%760 = shl i32 %759, 11
%761 = load i32, i32* %8
%762 = lshr i32 %761, 21
%763 = or i32 %760, %762
store i32 %763, i32* %8
%764 = load i32, i32* %5
%765 = load i32, i32* %8
%766 = add i32 %765, %764
store i32 %766, i32* %8
%767 = load i32, i32* %8
%768 = load i32, i32* %5
%769 = xor i32 %767, %768
%770 = load i32, i32* %6
%771 = xor i32 %769, %770
%772 = getelementptr inbounds [16 x i32], [16 x i32]* %9, i64 0, i64 11
%773 = load i32, i32* %772
%774 = add i32 %771, %773
%775 = add i32 %774, 1839030562
%776 = load i32, i32* %7
%777 = add i32 %776, %775
store i32 %777, i32* %7
%778 = load i32, i32* %7
%779 = shl i32 %778, 16
%780 = load i32, i32* %7
%781 = lshr i32 %780, 16
%782 = or i32 %779, %781
store i32 %782, i32* %7
%783 = load i32, i32* %8
%784 = load i32, i32* %7
%785 = add i32 %784, %783
store i32 %785, i32* %7
%786 = load i32, i32* %7
%787 = load i32, i32* %8
%788 = xor i32 %786, %787
%789 = load i32, i32* %5
%790 = xor i32 %788, %789
%791 = getelementptr inbounds [16 x i32], [16 x i32]* %9, i64 0, i64 14
%792 = load i32, i32* %791
%793 = add i32 %790, %792
%794 = add i32 %793, -35309556
%795 = load i32, i32* %6
%796 = add i32 %795, %794
store i32 %796, i32* %6
%797 = load i32, i32* %6
%798 = shl i32 %797, 23
%799 = load i32, i32* %6
%800 = lshr i32 %799, 9
%801 = or i32 %798, %800
store i32 %801, i32* %6
%802 = load i32, i32* %7
%803 = load i32, i32* %6
%804 = add i32 %803, %802
store i32 %804, i32* %6
%805 = load i32, i32* %6
%806 = load i32, i32* %7
%807 = xor i32 %805, %806
%808 = load i32, i32* %8
%809 = xor i32 %807, %808
%810 = getelementptr inbounds [16 x i32], [16 x i32]* %9, i64 0, i64 1
%811 = load i32, i32* %810
%812 = add i32 %809, %811
%813 = add i32 %812, -1530992060
%814 = load i32, i32* %5
%815 = add i32 %814, %813
store i32 %815, i32* %5
%816 = load i32, i32* %5
%817 = shl i32 %816, 4
%818 = load i32, i32* %5
%819 = lshr i32 %818, 28
%820 = or i32 %817, %819
store i32 %820, i32* %5
%821 = load i32, i32* %6
%822 = load i32, i32* %5
%823 = add i32 %822, %821
store i32 %823, i32* %5
%824 = load i32, i32* %5
%825 = load i32, i32* %6
%826 = xor i32 %824, %825
%827 = load i32, i32* %7
%828 = xor i32 %826, %827
%829 = getelementptr inbounds [16 x i32], [16 x i32]* %9, i64 0, i64 4
%830 = load i32, i32* %829
%831 = add i32 %828, %830
%832 = add i32 %831, 1272893353
%833 = load i32, i32* %8
%834 = add i32 %833, %832
store i32 %834, i32* %8
%835 = load i32, i32* %8
%836 = shl i32 %835, 11
%837 = load i32, i32* %8
%838 = lshr i32 %837, 21
%839 = or i32 %836, %838
store i32 %839, i32* %8
%840 = load i32, i32* %5
%841 = load i32, i32* %8
%842 = add i32 %841, %840
store i32 %842, i32* %8
%843 = load i32, i32* %8
%844 = load i32, i32* %5
%845 = xor i32 %843, %844
%846 = load i32, i32* %6
%847 = xor i32 %845, %846
%848 = getelementptr inbounds [16 x i32], [16 x i32]* %9, i64 0, i64 7
%849 = load i32, i32* %848
%850 = add i32 %847, %849
%851 = add i32 %850, -155497632
%852 = load i32, i32* %7
%853 = add i32 %852, %851
store i32 %853, i32* %7
%854 = load i32, i32* %7
%855 = shl i32 %854, 16
%856 = load i32, i32* %7
%857 = lshr i32 %856, 16
%858 = or i32 %855, %857
store i32 %858, i32* %7
%859 = load i32, i32* %8
%860 = load i32, i32* %7
%861 = add i32 %860, %859
store i32 %861, i32* %7
%862 = load i32, i32* %7
%863 = load i32, i32* %8
%864 = xor i32 %862, %863
%865 = load i32, i32* %5
%866 = xor i32 %864, %865
%867 = getelementptr inbounds [16 x i32], [16 x i32]* %9, i64 0, i64 10
%868 = load i32, i32* %867
%869 = add i32 %866, %868
%870 = add i32 %869, -1094730640
%871 = load i32, i32* %6
%872 = add i32 %871, %870
store i32 %872, i32* %6
%873 = load i32, i32* %6
%874 = shl i32 %873, 23
%875 = load i32, i32* %6
%876 = lshr i32 %875, 9
%877 = or i32 %874, %876
store i32 %877, i32* %6
%878 = load i32, i32* %7
%879 = load i32, i32* %6
%880 = add i32 %879, %878
store i32 %880, i32* %6
%881 = load i32, i32* %6
%882 = load i32, i32* %7
%883 = xor i32 %881, %882
%884 = load i32, i32* %8
%885 = xor i32 %883, %884
%886 = getelementptr inbounds [16 x i32], [16 x i32]* %9, i64 0, i64 13
%887 = load i32, i32* %886
%888 = add i32 %885, %887
%889 = add i32 %888, 681279174
%890 = load i32, i32* %5
%891 = add i32 %890, %889
store i32 %891, i32* %5
%892 = load i32, i32* %5
%893 = shl i32 %892, 4
%894 = load i32, i32* %5
%895 = lshr i32 %894, 28
%896 = or i32 %893, %895
store i32 %896, i32* %5
%897 = load i32, i32* %6
%898 = load i32, i32* %5
%899 = add i32 %898, %897
store i32 %899, i32* %5
%900 = load i32, i32* %5
%901 = load i32, i32* %6
%902 = xor i32 %900, %901
%903 = load i32, i32* %7
%904 = xor i32 %902, %903
%905 = getelementptr inbounds [16 x i32], [16 x i32]* %9, i64 0, i64 0
%906 = load i32, i32* %905
%907 = add i32 %904, %906
%908 = add i32 %907, -358537222
%909 = load i32, i32* %8
%910 = add i32 %909, %908
store i32 %910, i32* %8
%911 = load i32, i32* %8
%912 = shl i32 %911, 11
%913 = load i32, i32* %8
%914 = lshr i32 %913, 21
%915 = or i32 %912, %914
store i32 %915, i32* %8
%916 = load i32, i32* %5
%917 = load i32, i32* %8
%918 = add i32 %917, %916
store i32 %918, i32* %8
%919 = load i32, i32* %8
%920 = load i32, i32* %5
%921 = xor i32 %919, %920
%922 = load i32, i32* %6
%923 = xor i32 %921, %922
%924 = getelementptr inbounds [16 x i32], [16 x i32]* %9, i64 0, i64 3
%925 = load i32, i32* %924
%926 = add i32 %923, %925
%927 = add i32 %926, -722521979
%928 = load i32, i32* %7
%929 = add i32 %928, %927
store i32 %929, i32* %7
%930 = load i32, i32* %7
%931 = shl i32 %930, 16
%932 = load i32, i32* %7
%933 = lshr i32 %932, 16
%934 = or i32 %931, %933
store i32 %934, i32* %7
%935 = load i32, i32* %8
%936 = load i32, i32* %7
%937 = add i32 %936, %935
store i32 %937, i32* %7
%938 = load i32, i32* %7
%939 = load i32, i32* %8
%940 = xor i32 %938, %939
%941 = load i32, i32* %5
%942 = xor i32 %940, %941
%943 = getelementptr inbounds [16 x i32], [16 x i32]* %9, i64 0, i64 6
%944 = load i32, i32* %943
%945 = add i32 %942, %944
%946 = add i32 %945, 76029189
%947 = load i32, i32* %6
%948 = add i32 %947, %946
store i32 %948, i32* %6
%949 = load i32, i32* %6
%950 = shl i32 %949, 23
%951 = load i32, i32* %6
%952 = lshr i32 %951, 9
%953 = or i32 %950, %952
store i32 %953, i32* %6
%954 = load i32, i32* %7
%955 = load i32, i32* %6
%956 = add i32 %955, %954
store i32 %956, i32* %6
%957 = load i32, i32* %6
%958 = load i32, i32* %7
%959 = xor i32 %957, %958
%960 = load i32, i32* %8
%961 = xor i32 %959, %960
%962 = getelementptr inbounds [16 x i32], [16 x i32]* %9, i64 0, i64 9
%963 = load i32, i32* %962
%964 = add i32 %961, %963
%965 = add i32 %964, -640364487
%966 = load i32, i32* %5
%967 = add i32 %966, %965
store i32 %967, i32* %5
%968 = load i32, i32* %5
%969 = shl i32 %968, 4
%970 = load i32, i32* %5
%971 = lshr i32 %970, 28
%972 = or i32 %969, %971
store i32 %972, i32* %5
%973 = load i32, i32* %6
%974 = load i32, i32* %5
%975 = add i32 %974, %973
store i32 %975, i32* %5
%976 = load i32, i32* %5
%977 = load i32, i32* %6
%978 = xor i32 %976, %977
%979 = load i32, i32* %7
%980 = xor i32 %978, %979
%981 = getelementptr inbounds [16 x i32], [16 x i32]* %9, i64 0, i64 12
%982 = load i32, i32* %981
%983 = add i32 %980, %982
%984 = add i32 %983, -421815835
%985 = load i32, i32* %8
%986 = add i32 %985, %984
store i32 %986, i32* %8
%987 = load i32, i32* %8
%988 = shl i32 %987, 11
%989 = load i32, i32* %8
%990 = lshr i32 %989, 21
%991 = or i32 %988, %990
store i32 %991, i32* %8
%992 = load i32, i32* %5
%993 = load i32, i32* %8
%994 = add i32 %993, %992
store i32 %994, i32* %8
%995 = load i32, i32* %8
%996 = load i32, i32* %5
%997 = xor i32 %995, %996
%998 = load i32, i32* %6
%999 = xor i32 %997, %998
%1000 = getelementptr inbounds [16 x i32], [16 x i32]* %9, i64 0, i64 15
%1001 = load i32, i32* %1000
%1002 = add i32 %999, %1001
%1003 = add i32 %1002, 530742520
%1004 = load i32, i32* %7
%1005 = add i32 %1004, %1003
store i32 %1005, i32* %7
%1006 = load i32, i32* %7
%1007 = shl i32 %1006, 16
%1008 = load i32, i32* %7
%1009 = lshr i32 %1008, 16
%1010 = or i32 %1007, %1009
store i32 %1010, i32* %7
%1011 = load i32, i32* %8
%1012 = load i32, i32* %7
%1013 = add i32 %1012, %1011
store i32 %1013, i32* %7
%1014 = load i32, i32* %7
%1015 = load i32, i32* %8
%1016 = xor i32 %1014, %1015
%1017 = load i32, i32* %5
%1018 = xor i32 %1016, %1017
%1019 = getelementptr inbounds [16 x i32], [16 x i32]* %9, i64 0, i64 2
%1020 = load i32, i32* %1019
%1021 = add i32 %1018, %1020
%1022 = add i32 %1021, -995338651
%1023 = load i32, i32* %6
%1024 = add i32 %1023, %1022
store i32 %1024, i32* %6
%1025 = load i32, i32* %6
%1026 = shl i32 %1025, 23
%1027 = load i32, i32* %6
%1028 = lshr i32 %1027, 9
%1029 = or i32 %1026, %1028
store i32 %1029, i32* %6
%1030 = load i32, i32* %7
%1031 = load i32, i32* %6
%1032 = add i32 %1031, %1030
store i32 %1032, i32* %6
%1033 = load i32, i32* %7
%1034 = load i32, i32* %6
%1035 = load i32, i32* %8
%1036 = xor i32 %1035, -1
%1037 = or i32 %1034, %1036
%1038 = xor i32 %1033, %1037
%1039 = getelementptr inbounds [16 x i32], [16 x i32]* %9, i64 0, i64 0
%1040 = load i32, i32* %1039
%1041 = add i32 %1038, %1040
%1042 = add i32 %1041, -198630844
%1043 = load i32, i32* %5
%1044 = add i32 %1043, %1042
store i32 %1044, i32* %5
%1045 = load i32, i32* %5
%1046 = shl i32 %1045, 6
%1047 = load i32, i32* %5
%1048 = lshr i32 %1047, 26
%1049 = or i32 %1046, %1048
store i32 %1049, i32* %5
%1050 = load i32, i32* %6
%1051 = load i32, i32* %5
%1052 = add i32 %1051, %1050
store i32 %1052, i32* %5
%1053 = load i32, i32* %6
%1054 = load i32, i32* %5
%1055 = load i32, i32* %7
%1056 = xor i32 %1055, -1
%1057 = or i32 %1054, %1056
%1058 = xor i32 %1053, %1057
%1059 = getelementptr inbounds [16 x i32], [16 x i32]* %9, i64 0, i64 7
%1060 = load i32, i32* %1059
%1061 = add i32 %1058, %1060
%1062 = add i32 %1061, 1126891415
%1063 = load i32, i32* %8
%1064 = add i32 %1063, %1062
store i32 %1064, i32* %8
%1065 = load i32, i32* %8
%1066 = shl i32 %1065, 10
%1067 = load i32, i32* %8
%1068 = lshr i32 %1067, 22
%1069 = or i32 %1066, %1068
store i32 %1069, i32* %8
%1070 = load i32, i32* %5
%1071 = load i32, i32* %8
%1072 = add i32 %1071, %1070
store i32 %1072, i32* %8
%1073 = load i32, i32* %5
%1074 = load i32, i32* %8
%1075 = load i32, i32* %6
%1076 = xor i32 %1075, -1
%1077 = or i32 %1074, %1076
%1078 = xor i32 %1073, %1077
%1079 = getelementptr inbounds [16 x i32], [16 x i32]* %9, i64 0, i64 14
%1080 = load i32, i32* %1079
%1081 = add i32 %1078, %1080
%1082 = add i32 %1081, -1416354905
%1083 = load i32, i32* %7
%1084 = add i32 %1083, %1082
store i32 %1084, i32* %7
%1085 = load i32, i32* %7
%1086 = shl i32 %1085, 15
%1087 = load i32, i32* %7
%1088 = lshr i32 %1087, 17
%1089 = or i32 %1086, %1088
store i32 %1089, i32* %7
%1090 = load i32, i32* %8
%1091 = load i32, i32* %7
%1092 = add i32 %1091, %1090
store i32 %1092, i32* %7
%1093 = load i32, i32* %8
%1094 = load i32, i32* %7
%1095 = load i32, i32* %5
%1096 = xor i32 %1095, -1
%1097 = or i32 %1094, %1096
%1098 = xor i32 %1093, %1097
%1099 = getelementptr inbounds [16 x i32], [16 x i32]* %9, i64 0, i64 5
%1100 = load i32, i32* %1099
%1101 = add i32 %1098, %1100
%1102 = add i32 %1101, -57434055
%1103 = load i32, i32* %6
%1104 = add i32 %1103, %1102
store i32 %1104, i32* %6
%1105 = load i32, i32* %6
%1106 = shl i32 %1105, 21
%1107 = load i32, i32* %6
%1108 = lshr i32 %1107, 11
%1109 = or i32 %1106, %1108
store i32 %1109, i32* %6
%1110 = load i32, i32* %7
%1111 = load i32, i32* %6
%1112 = add i32 %1111, %1110
store i32 %1112, i32* %6
%1113 = load i32, i32* %7
%1114 = load i32, i32* %6
%1115 = load i32, i32* %8
%1116 = xor i32 %1115, -1
%1117 = or i32 %1114, %1116
%1118 = xor i32 %1113, %1117
%1119 = getelementptr inbounds [16 x i32], [16 x i32]* %9, i64 0, i64 12
%1120 = load i32, i32* %1119
%1121 = add i32 %1118, %1120
%1122 = add i32 %1121, 1700485571
%1123 = load i32, i32* %5
%1124 = add i32 %1123, %1122
store i32 %1124, i32* %5
%1125 = load i32, i32* %5
%1126 = shl i32 %1125, 6
%1127 = load i32, i32* %5
%1128 = lshr i32 %1127, 26
%1129 = or i32 %1126, %1128
store i32 %1129, i32* %5
%1130 = load i32, i32* %6
%1131 = load i32, i32* %5
%1132 = add i32 %1131, %1130
store i32 %1132, i32* %5
%1133 = load i32, i32* %6
%1134 = load i32, i32* %5
%1135 = load i32, i32* %7
%1136 = xor i32 %1135, -1
%1137 = or i32 %1134, %1136
%1138 = xor i32 %1133, %1137
%1139 = getelementptr inbounds [16 x i32], [16 x i32]* %9, i64 0, i64 3
%1140 = load i32, i32* %1139
%1141 = add i32 %1138, %1140
%1142 = add i32 %1141, -1894986606
%1143 = load i32, i32* %8
%1144 = add i32 %1143, %1142
store i32 %1144, i32* %8
%1145 = load i32, i32* %8
%1146 = shl i32 %1145, 10
%1147 = load i32, i32* %8
%1148 = lshr i32 %1147, 22
%1149 = or i32 %1146, %1148
store i32 %1149, i32* %8
%1150 = load i32, i32* %5
%1151 = load i32, i32* %8
%1152 = add i32 %1151, %1150
store i32 %1152, i32* %8
%1153 = load i32, i32* %5
%1154 = load i32, i32* %8
%1155 = load i32, i32* %6
%1156 = xor i32 %1155, -1
%1157 = or i32 %1154, %1156
%1158 = xor i32 %1153, %1157
%1159 = getelementptr inbounds [16 x i32], [16 x i32]* %9, i64 0, i64 10
%1160 = load i32, i32* %1159
%1161 = add i32 %1158, %1160
%1162 = add i32 %1161, -1051523
%1163 = load i32, i32* %7
%1164 = add i32 %1163, %1162
store i32 %1164, i32* %7
%1165 = load i32, i32* %7
%1166 = shl i32 %1165, 15
%1167 = load i32, i32* %7
%1168 = lshr i32 %1167, 17
%1169 = or i32 %1166, %1168
store i32 %1169, i32* %7
%1170 = load i32, i32* %8
%1171 = load i32, i32* %7
%1172 = add i32 %1171, %1170
store i32 %1172, i32* %7
%1173 = load i32, i32* %8
%1174 = load i32, i32* %7
%1175 = load i32, i32* %5
%1176 = xor i32 %1175, -1
%1177 = or i32 %1174, %1176
%1178 = xor i32 %1173, %1177
%1179 = getelementptr inbounds [16 x i32], [16 x i32]* %9, i64 0, i64 1
%1180 = load i32, i32* %1179
%1181 = add i32 %1178, %1180
%1182 = add i32 %1181, -2054922799
%1183 = load i32, i32* %6
%1184 = add i32 %1183, %1182
store i32 %1184, i32* %6
%1185 = load i32, i32* %6
%1186 = shl i32 %1185, 21
%1187 = load i32, i32* %6
%1188 = lshr i32 %1187, 11
%1189 = or i32 %1186, %1188
store i32 %1189, i32* %6
%1190 = load i32, i32* %7
%1191 = load i32, i32* %6
%1192 = add i32 %1191, %1190
store i32 %1192, i32* %6
%1193 = load i32, i32* %7
%1194 = load i32, i32* %6
%1195 = load i32, i32* %8
%1196 = xor i32 %1195, -1
%1197 = or i32 %1194, %1196
%1198 = xor i32 %1193, %1197
%1199 = getelementptr inbounds [16 x i32], [16 x i32]* %9, i64 0, i64 8
%1200 = load i32, i32* %1199
%1201 = add i32 %1198, %1200
%1202 = add i32 %1201, 1873313359
%1203 = load i32, i32* %5
%1204 = add i32 %1203, %1202
store i32 %1204, i32* %5
%1205 = load i32, i32* %5
%1206 = shl i32 %1205, 6
%1207 = load i32, i32* %5
%1208 = lshr i32 %1207, 26
%1209 = or i32 %1206, %1208
store i32 %1209, i32* %5
%1210 = load i32, i32* %6
%1211 = load i32, i32* %5
%1212 = add i32 %1211, %1210
store i32 %1212, i32* %5
%1213 = load i32, i32* %6
%1214 = load i32, i32* %5
%1215 = load i32, i32* %7
%1216 = xor i32 %1215, -1
%1217 = or i32 %1214, %1216
%1218 = xor i32 %1213, %1217
%1219 = getelementptr inbounds [16 x i32], [16 x i32]* %9, i64 0, i64 15
%1220 = load i32, i32* %1219
%1221 = add i32 %1218, %1220
%1222 = add i32 %1221, -30611744
%1223 = load i32, i32* %8
%1224 = add i32 %1223, %1222
store i32 %1224, i32* %8
%1225 = load i32, i32* %8
%1226 = shl i32 %1225, 10
%1227 = load i32, i32* %8
%1228 = lshr i32 %1227, 22
%1229 = or i32 %1226, %1228
store i32 %1229, i32* %8
%1230 = load i32, i32* %5
%1231 = load i32, i32* %8
%1232 = add i32 %1231, %1230
store i32 %1232, i32* %8
%1233 = load i32, i32* %5
%1234 = load i32, i32* %8
%1235 = load i32, i32* %6
%1236 = xor i32 %1235, -1
%1237 = or i32 %1234, %1236
%1238 = xor i32 %1233, %1237
%1239 = getelementptr inbounds [16 x i32], [16 x i32]* %9, i64 0, i64 6
%1240 = load i32, i32* %1239
%1241 = add i32 %1238, %1240
%1242 = add i32 %1241, -1560198380
%1243 = load i32, i32* %7
%1244 = add i32 %1243, %1242
store i32 %1244, i32* %7
%1245 = load i32, i32* %7
%1246 = shl i32 %1245, 15
%1247 = load i32, i32* %7
%1248 = lshr i32 %1247, 17
%1249 = or i32 %1246, %1248
store i32 %1249, i32* %7
%1250 = load i32, i32* %8
%1251 = load i32, i32* %7
%1252 = add i32 %1251, %1250
store i32 %1252, i32* %7
%1253 = load i32, i32* %8
%1254 = load i32, i32* %7
%1255 = load i32, i32* %5
%1256 = xor i32 %1255, -1
%1257 = or i32 %1254, %1256
%1258 = xor i32 %1253, %1257
%1259 = getelementptr inbounds [16 x i32], [16 x i32]* %9, i64 0, i64 13
%1260 = load i32, i32* %1259
%1261 = add i32 %1258, %1260
%1262 = add i32 %1261, 1309151649
%1263 = load i32, i32* %6
%1264 = add i32 %1263, %1262
store i32 %1264, i32* %6
%1265 = load i32, i32* %6
%1266 = shl i32 %1265, 21
%1267 = load i32, i32* %6
%1268 = lshr i32 %1267, 11
%1269 = or i32 %1266, %1268
store i32 %1269, i32* %6
%1270 = load i32, i32* %7
%1271 = load i32, i32* %6
%1272 = add i32 %1271, %1270
store i32 %1272, i32* %6
%1273 = load i32, i32* %7
%1274 = load i32, i32* %6
%1275 = load i32, i32* %8
%1276 = xor i32 %1275, -1
%1277 = or i32 %1274, %1276
%1278 = xor i32 %1273, %1277
%1279 = getelementptr inbounds [16 x i32], [16 x i32]* %9, i64 0, i64 4
%1280 = load i32, i32* %1279
%1281 = add i32 %1278, %1280
%1282 = add i32 %1281, -145523070
%1283 = load i32, i32* %5
%1284 = add i32 %1283, %1282
store i32 %1284, i32* %5
%1285 = load i32, i32* %5
%1286 = shl i32 %1285, 6
%1287 = load i32, i32* %5
%1288 = lshr i32 %1287, 26
%1289 = or i32 %1286, %1288
store i32 %1289, i32* %5
%1290 = load i32, i32* %6
%1291 = load i32, i32* %5
%1292 = add i32 %1291, %1290
store i32 %1292, i32* %5
%1293 = load i32, i32* %6
%1294 = load i32, i32* %5
%1295 = load i32, i32* %7
%1296 = xor i32 %1295, -1
%1297 = or i32 %1294, %1296
%1298 = xor i32 %1293, %1297
%1299 = getelementptr inbounds [16 x i32], [16 x i32]* %9, i64 0, i64 11
%1300 = load i32, i32* %1299
%1301 = add i32 %1298, %1300
%1302 = add i32 %1301, -1120210379
%1303 = load i32, i32* %8
%1304 = add i32 %1303, %1302
store i32 %1304, i32* %8
%1305 = load i32, i32* %8
%1306 = shl i32 %1305, 10
%1307 = load i32, i32* %8
%1308 = lshr i32 %1307, 22
%1309 = or i32 %1306, %1308
store i32 %1309, i32* %8
%1310 = load i32, i32* %5
%1311 = load i32, i32* %8
%1312 = add i32 %1311, %1310
store i32 %1312, i32* %8
%1313 = load i32, i32* %5
%1314 = load i32, i32* %8
%1315 = load i32, i32* %6
%1316 = xor i32 %1315, -1
%1317 = or i32 %1314, %1316
%1318 = xor i32 %1313, %1317
%1319 = getelementptr inbounds [16 x i32], [16 x i32]* %9, i64 0, i64 2
%1320 = load i32, i32* %1319
%1321 = add i32 %1318, %1320
%1322 = add i32 %1321, 718787259
%1323 = load i32, i32* %7
%1324 = add i32 %1323, %1322
store i32 %1324, i32* %7
%1325 = load i32, i32* %7
%1326 = shl i32 %1325, 15
%1327 = load i32, i32* %7
%1328 = lshr i32 %1327, 17
%1329 = or i32 %1326, %1328
store i32 %1329, i32* %7
%1330 = load i32, i32* %8
%1331 = load i32, i32* %7
%1332 = add i32 %1331, %1330
store i32 %1332, i32* %7
%1333 = load i32, i32* %8
%1334 = load i32, i32* %7
%1335 = load i32, i32* %5
%1336 = xor i32 %1335, -1
%1337 = or i32 %1334, %1336
%1338 = xor i32 %1333, %1337
%1339 = getelementptr inbounds [16 x i32], [16 x i32]* %9, i64 0, i64 9
%1340 = load i32, i32* %1339
%1341 = add i32 %1338, %1340
%1342 = add i32 %1341, -343485551
%1343 = load i32, i32* %6
%1344 = add i32 %1343, %1342
store i32 %1344, i32* %6
%1345 = load i32, i32* %6
%1346 = shl i32 %1345, 21
%1347 = load i32, i32* %6
%1348 = lshr i32 %1347, 11
%1349 = or i32 %1346, %1348
store i32 %1349, i32* %6
%1350 = load i32, i32* %7
%1351 = load i32, i32* %6
%1352 = add i32 %1351, %1350
store i32 %1352, i32* %6
%1353 = load i32, i32* %5
%1354 = load i32*, i32** %3
%1355 = getelementptr inbounds i32, i32* %1354, i64 0
%1356 = load i32, i32* %1355
%1357 = add i32 %1356, %1353
store i32 %1357, i32* %1355
%1358 = load i32, i32* %6
%1359 = load i32*, i32** %3
%1360 = getelementptr inbounds i32, i32* %1359, i64 1
%1361 = load i32, i32* %1360
%1362 = add i32 %1361, %1358
store i32 %1362, i32* %1360
%1363 = load i32, i32* %7
%1364 = load i32*, i32** %3
%1365 = getelementptr inbounds i32, i32* %1364, i64 2
%1366 = load i32, i32* %1365
%1367 = add i32 %1366, %1363
store i32 %1367, i32* %1365
%1368 = load i32, i32* %8
%1369 = load i32*, i32** %3
%1370 = getelementptr inbounds i32, i32* %1369, i64 3
%1371 = load i32, i32* %1370
%1372 = add i32 %1371, %1368
store i32 %1372, i32* %1370
%1373 = getelementptr inbounds [16 x i32], [16 x i32]* %9, i64 0, i64 0
%1374 = bitcast i32* %1373 to i8*
ret void
}

LLVM IR (-O2):
define void @MD5Transform(i32* nocapture %0, i8* nocapture %1) {
%3 = load i32, i32* %0
%4 = getelementptr inbounds i32, i32* %0, i64 1
%5 = load i32, i32* %4
%6 = getelementptr inbounds i32, i32* %0, i64 2
%7 = load i32, i32* %6
%8 = getelementptr inbounds i32, i32* %0, i64 3
%9 = load i32, i32* %8
%10 = bitcast i8* %1 to i32*
%11 = load i32, i32* %10
%12 = getelementptr inbounds i8, i8* %1, i64 4
%13 = bitcast i8* %12 to i32*
%14 = load i32, i32* %13
%15 = getelementptr inbounds i8, i8* %1, i64 8
%16 = bitcast i8* %15 to i32*
%17 = load i32, i32* %16
%18 = getelementptr inbounds i8, i8* %1, i64 12
%19 = bitcast i8* %18 to i32*
%20 = load i32, i32* %19
%21 = getelementptr inbounds i8, i8* %1, i64 16
%22 = bitcast i8* %21 to i32*
%23 = load i32, i32* %22
%24 = getelementptr inbounds i8, i8* %1, i64 20
%25 = bitcast i8* %24 to i32*
%26 = load i32, i32* %25
%27 = getelementptr inbounds i8, i8* %1, i64 24
%28 = bitcast i8* %27 to i32*
%29 = load i32, i32* %28
%30 = getelementptr inbounds i8, i8* %1, i64 28
%31 = bitcast i8* %30 to i32*
%32 = load i32, i32* %31
%33 = getelementptr inbounds i8, i8* %1, i64 32
%34 = bitcast i8* %33 to i32*
%35 = load i32, i32* %34
%36 = getelementptr inbounds i8, i8* %1, i64 36
%37 = bitcast i8* %36 to i32*
%38 = load i32, i32* %37
%39 = getelementptr inbounds i8, i8* %1, i64 40
%40 = bitcast i8* %39 to i32*
%41 = load i32, i32* %40
%42 = getelementptr inbounds i8, i8* %1, i64 44
%43 = bitcast i8* %42 to i32*
%44 = load i32, i32* %43
%45 = getelementptr inbounds i8, i8* %1, i64 48
%46 = bitcast i8* %45 to i32*
%47 = load i32, i32* %46
%48 = getelementptr inbounds i8, i8* %1, i64 52
%49 = bitcast i8* %48 to i32*
%50 = load i32, i32* %49
%51 = getelementptr inbounds i8, i8* %1, i64 56
%52 = bitcast i8* %51 to i32*
%53 = load i32, i32* %52
%54 = getelementptr inbounds i8, i8* %1, i64 60
%55 = bitcast i8* %54 to i32*
%56 = load i32, i32* %55
%57 = and i32 %7, %5
%58 = xor i32 %5, -1
%59 = and i32 %9, %58
%60 = add i32 %3, -680876936
%61 = add i32 %60, %57
%62 = add i32 %61, %59
%63 = add i32 %62, %11
%64 = tail call i32 @llvm.fshl.i32(i32 %63, i32 %63, i32 7)
%65 = add i32 %64, %5
%66 = and i32 %65, %5
%67 = xor i32 %65, -1
%68 = and i32 %7, %67
%69 = add i32 %9, -389564586
%70 = add i32 %69, %14
%71 = add i32 %70, %68
%72 = add i32 %71, %66
%73 = tail call i32 @llvm.fshl.i32(i32 %72, i32 %72, i32 12)
%74 = add i32 %73, %65
%75 = and i32 %74, %65
%76 = xor i32 %74, -1
%77 = and i32 %5, %76
%78 = add i32 %7, 606105819
%79 = add i32 %78, %17
%80 = add i32 %79, %77
%81 = add i32 %80, %75
%82 = tail call i32 @llvm.fshl.i32(i32 %81, i32 %81, i32 17)
%83 = add i32 %82, %74
%84 = and i32 %83, %74
%85 = xor i32 %83, -1
%86 = and i32 %65, %85
%87 = add i32 %5, -1044525330
%88 = add i32 %87, %20
%89 = add i32 %88, %86
%90 = add i32 %89, %84
%91 = tail call i32 @llvm.fshl.i32(i32 %90, i32 %90, i32 22)
%92 = add i32 %91, %83
%93 = and i32 %92, %83
%94 = xor i32 %92, -1
%95 = and i32 %74, %94
%96 = add i32 %23, -176418897
%97 = add i32 %96, %65
%98 = add i32 %97, %95
%99 = add i32 %98, %93
%100 = tail call i32 @llvm.fshl.i32(i32 %99, i32 %99, i32 7)
%101 = add i32 %100, %92
%102 = and i32 %101, %92
%103 = xor i32 %101, -1
%104 = and i32 %83, %103
%105 = add i32 %26, 1200080426
%106 = add i32 %105, %74
%107 = add i32 %106, %104
%108 = add i32 %107, %102
%109 = tail call i32 @llvm.fshl.i32(i32 %108, i32 %108, i32 12)
%110 = add i32 %109, %101
%111 = and i32 %110, %101
%112 = xor i32 %110, -1
%113 = and i32 %92, %112
%114 = add i32 %29, -1473231341
%115 = add i32 %114, %83
%116 = add i32 %115, %113
%117 = add i32 %116, %111
%118 = tail call i32 @llvm.fshl.i32(i32 %117, i32 %117, i32 17)
%119 = add i32 %118, %110
%120 = and i32 %119, %110
%121 = xor i32 %119, -1
%122 = and i32 %101, %121
%123 = add i32 %32, -45705983
%124 = add i32 %123, %92
%125 = add i32 %124, %122
%126 = add i32 %125, %120
%127 = tail call i32 @llvm.fshl.i32(i32 %126, i32 %126, i32 22)
%128 = add i32 %127, %119
%129 = and i32 %128, %119
%130 = xor i32 %128, -1
%131 = and i32 %110, %130
%132 = add i32 %35, 1770035416
%133 = add i32 %132, %101
%134 = add i32 %133, %131
%135 = add i32 %134, %129
%136 = tail call i32 @llvm.fshl.i32(i32 %135, i32 %135, i32 7)
%137 = add i32 %136, %128
%138 = and i32 %137, %128
%139 = xor i32 %137, -1
%140 = and i32 %119, %139
%141 = add i32 %38, -1958414417
%142 = add i32 %141, %110
%143 = add i32 %142, %140
%144 = add i32 %143, %138
%145 = tail call i32 @llvm.fshl.i32(i32 %144, i32 %144, i32 12)
%146 = add i32 %145, %137
%147 = and i32 %146, %137
%148 = xor i32 %146, -1
%149 = and i32 %128, %148
%150 = add i32 %41, -42063
%151 = add i32 %150, %119
%152 = add i32 %151, %149
%153 = add i32 %152, %147
%154 = tail call i32 @llvm.fshl.i32(i32 %153, i32 %153, i32 17)
%155 = add i32 %154, %146
%156 = and i32 %155, %146
%157 = xor i32 %155, -1
%158 = and i32 %137, %157
%159 = add i32 %44, -1990404162
%160 = add i32 %159, %128
%161 = add i32 %160, %158
%162 = add i32 %161, %156
%163 = tail call i32 @llvm.fshl.i32(i32 %162, i32 %162, i32 22)
%164 = add i32 %163, %155
%165 = and i32 %164, %155
%166 = xor i32 %164, -1
%167 = and i32 %146, %166
%168 = add i32 %47, 1804603682
%169 = add i32 %168, %137
%170 = add i32 %169, %167
%171 = add i32 %170, %165
%172 = tail call i32 @llvm.fshl.i32(i32 %171, i32 %171, i32 7)
%173 = add i32 %172, %164
%174 = and i32 %173, %164
%175 = xor i32 %173, -1
%176 = and i32 %155, %175
%177 = add i32 %50, -40341101
%178 = add i32 %177, %146
%179 = add i32 %178, %176
%180 = add i32 %179, %174
%181 = tail call i32 @llvm.fshl.i32(i32 %180, i32 %180, i32 12)
%182 = add i32 %181, %173
%183 = and i32 %182, %173
%184 = xor i32 %182, -1
%185 = and i32 %164, %184
%186 = add i32 %53, -1502002290
%187 = add i32 %186, %155
%188 = add i32 %187, %185
%189 = add i32 %188, %183
%190 = tail call i32 @llvm.fshl.i32(i32 %189, i32 %189, i32 17)
%191 = add i32 %190, %182
%192 = and i32 %191, %182
%193 = xor i32 %191, -1
%194 = and i32 %173, %193
%195 = add i32 %56, 1236535329
%196 = add i32 %195, %164
%197 = add i32 %196, %194
%198 = add i32 %197, %192
%199 = tail call i32 @llvm.fshl.i32(i32 %198, i32 %198, i32 22)
%200 = add i32 %199, %191
%201 = and i32 %200, %182
%202 = and i32 %191, %184
%203 = add i32 %14, -165796510
%204 = add i32 %203, %173
%205 = add i32 %204, %202
%206 = add i32 %205, %201
%207 = tail call i32 @llvm.fshl.i32(i32 %206, i32 %206, i32 5)
%208 = add i32 %207, %200
%209 = and i32 %208, %191
%210 = and i32 %200, %193
%211 = add i32 %29, -1069501632
%212 = add i32 %211, %182
%213 = add i32 %212, %210
%214 = add i32 %213, %209
%215 = tail call i32 @llvm.fshl.i32(i32 %214, i32 %214, i32 9)
%216 = add i32 %215, %208
%217 = and i32 %216, %200
%218 = xor i32 %200, -1
%219 = and i32 %208, %218
%220 = add i32 %44, 643717713
%221 = add i32 %220, %191
%222 = add i32 %221, %219
%223 = add i32 %222, %217
%224 = tail call i32 @llvm.fshl.i32(i32 %223, i32 %223, i32 14)
%225 = add i32 %224, %216
%226 = and i32 %225, %208
%227 = xor i32 %208, -1
%228 = and i32 %216, %227
%229 = add i32 %11, -373897302
%230 = add i32 %229, %200
%231 = add i32 %230, %228
%232 = add i32 %231, %226
%233 = tail call i32 @llvm.fshl.i32(i32 %232, i32 %232, i32 20)
%234 = add i32 %233, %225
%235 = and i32 %234, %216
%236 = xor i32 %216, -1
%237 = and i32 %225, %236
%238 = add i32 %26, -701558691
%239 = add i32 %238, %208
%240 = add i32 %239, %237
%241 = add i32 %240, %235
%242 = tail call i32 @llvm.fshl.i32(i32 %241, i32 %241, i32 5)
%243 = add i32 %242, %234
%244 = and i32 %243, %225
%245 = xor i32 %225, -1
%246 = and i32 %234, %245
%247 = add i32 %41, 38016083
%248 = add i32 %247, %216
%249 = add i32 %248, %246
%250 = add i32 %249, %244
%251 = tail call i32 @llvm.fshl.i32(i32 %250, i32 %250, i32 9)
%252 = add i32 %251, %243
%253 = and i32 %252, %234
%254 = xor i32 %234, -1
%255 = and i32 %243, %254
%256 = add i32 %56, -660478335
%257 = add i32 %256, %225
%258 = add i32 %257, %255
%259 = add i32 %258, %253
%260 = tail call i32 @llvm.fshl.i32(i32 %259, i32 %259, i32 14)
%261 = add i32 %260, %252
%262 = and i32 %261, %243
%263 = xor i32 %243, -1
%264 = and i32 %252, %263
%265 = add i32 %23, -405537848
%266 = add i32 %265, %234
%267 = add i32 %266, %264
%268 = add i32 %267, %262
%269 = tail call i32 @llvm.fshl.i32(i32 %268, i32 %268, i32 20)
%270 = add i32 %269, %261
%271 = and i32 %270, %252
%272 = xor i32 %252, -1
%273 = and i32 %261, %272
%274 = add i32 %38, 568446438
%275 = add i32 %274, %243
%276 = add i32 %275, %273
%277 = add i32 %276, %271
%278 = tail call i32 @llvm.fshl.i32(i32 %277, i32 %277, i32 5)
%279 = add i32 %278, %270
%280 = and i32 %279, %261
%281 = xor i32 %261, -1
%282 = and i32 %270, %281
%283 = add i32 %53, -1019803690
%284 = add i32 %283, %252
%285 = add i32 %284, %282
%286 = add i32 %285, %280
%287 = tail call i32 @llvm.fshl.i32(i32 %286, i32 %286, i32 9)
%288 = add i32 %287, %279
%289 = and i32 %288, %270
%290 = xor i32 %270, -1
%291 = and i32 %279, %290
%292 = add i32 %20, -187363961
%293 = add i32 %292, %261
%294 = add i32 %293, %291
%295 = add i32 %294, %289
%296 = tail call i32 @llvm.fshl.i32(i32 %295, i32 %295, i32 14)
%297 = add i32 %296, %288
%298 = and i32 %297, %279
%299 = xor i32 %279, -1
%300 = and i32 %288, %299
%301 = add i32 %35, 1163531501
%302 = add i32 %301, %270
%303 = add i32 %302, %300
%304 = add i32 %303, %298
%305 = tail call i32 @llvm.fshl.i32(i32 %304, i32 %304, i32 20)
%306 = add i32 %305, %297
%307 = and i32 %306, %288
%308 = xor i32 %288, -1
%309 = and i32 %297, %308
%310 = add i32 %50, -1444681467
%311 = add i32 %310, %279
%312 = add i32 %311, %309
%313 = add i32 %312, %307
%314 = tail call i32 @llvm.fshl.i32(i32 %313, i32 %313, i32 5)
%315 = add i32 %314, %306
%316 = and i32 %315, %297
%317 = xor i32 %297, -1
%318 = and i32 %306, %317
%319 = add i32 %17, -51403784
%320 = add i32 %319, %288
%321 = add i32 %320, %318
%322 = add i32 %321, %316
%323 = tail call i32 @llvm.fshl.i32(i32 %322, i32 %322, i32 9)
%324 = add i32 %323, %315
%325 = and i32 %324, %306
%326 = xor i32 %306, -1
%327 = and i32 %315, %326
%328 = add i32 %32, 1735328473
%329 = add i32 %328, %297
%330 = add i32 %329, %327
%331 = add i32 %330, %325
%332 = tail call i32 @llvm.fshl.i32(i32 %331, i32 %331, i32 14)
%333 = add i32 %332, %324
%334 = and i32 %333, %315
%335 = xor i32 %315, -1
%336 = and i32 %324, %335
%337 = add i32 %47, -1926607734
%338 = add i32 %337, %306
%339 = add i32 %338, %336
%340 = add i32 %339, %334
%341 = tail call i32 @llvm.fshl.i32(i32 %340, i32 %340, i32 20)
%342 = add i32 %341, %333
%343 = xor i32 %342, %333
%344 = xor i32 %343, %324
%345 = add i32 %26, -378558
%346 = add i32 %345, %315
%347 = add i32 %346, %344
%348 = tail call i32 @llvm.fshl.i32(i32 %347, i32 %347, i32 4)
%349 = add i32 %348, %342
%350 = xor i32 %343, %349
%351 = add i32 %35, -2022574463
%352 = add i32 %351, %324
%353 = add i32 %352, %350
%354 = tail call i32 @llvm.fshl.i32(i32 %353, i32 %353, i32 11)
%355 = add i32 %354, %349
%356 = xor i32 %349, %342
%357 = xor i32 %356, %355
%358 = add i32 %44, 1839030562
%359 = add i32 %358, %333
%360 = add i32 %359, %357
%361 = tail call i32 @llvm.fshl.i32(i32 %360, i32 %360, i32 16)
%362 = add i32 %361, %355
%363 = xor i32 %355, %349
%364 = xor i32 %363, %362
%365 = add i32 %53, -35309556
%366 = add i32 %365, %342
%367 = add i32 %366, %364
%368 = tail call i32 @llvm.fshl.i32(i32 %367, i32 %367, i32 23)
%369 = add i32 %368, %362
%370 = xor i32 %362, %355
%371 = xor i32 %370, %369
%372 = add i32 %14, -1530992060
%373 = add i32 %372, %349
%374 = add i32 %373, %371
%375 = tail call i32 @llvm.fshl.i32(i32 %374, i32 %374, i32 4)
%376 = add i32 %375, %369
%377 = xor i32 %369, %362
%378 = xor i32 %377, %376
%379 = add i32 %23, 1272893353
%380 = add i32 %379, %355
%381 = add i32 %380, %378
%382 = tail call i32 @llvm.fshl.i32(i32 %381, i32 %381, i32 11)
%383 = add i32 %382, %376
%384 = xor i32 %376, %369
%385 = xor i32 %384, %383
%386 = add i32 %32, -155497632
%387 = add i32 %386, %362
%388 = add i32 %387, %385
%389 = tail call i32 @llvm.fshl.i32(i32 %388, i32 %388, i32 16)
%390 = add i32 %389, %383
%391 = xor i32 %383, %376
%392 = xor i32 %391, %390
%393 = add i32 %41, -1094730640
%394 = add i32 %393, %369
%395 = add i32 %394, %392
%396 = tail call i32 @llvm.fshl.i32(i32 %395, i32 %395, i32 23)
%397 = add i32 %396, %390
%398 = xor i32 %390, %383
%399 = xor i32 %398, %397
%400 = add i32 %50, 681279174
%401 = add i32 %400, %376
%402 = add i32 %401, %399
%403 = tail call i32 @llvm.fshl.i32(i32 %402, i32 %402, i32 4)
%404 = add i32 %403, %397
%405 = xor i32 %397, %390
%406 = xor i32 %405, %404
%407 = add i32 %11, -358537222
%408 = add i32 %407, %383
%409 = add i32 %408, %406
%410 = tail call i32 @llvm.fshl.i32(i32 %409, i32 %409, i32 11)
%411 = add i32 %410, %404
%412 = xor i32 %404, %397
%413 = xor i32 %412, %411
%414 = add i32 %20, -722521979
%415 = add i32 %414, %390
%416 = add i32 %415, %413
%417 = tail call i32 @llvm.fshl.i32(i32 %416, i32 %416, i32 16)
%418 = add i32 %417, %411
%419 = xor i32 %411, %404
%420 = xor i32 %419, %418
%421 = add i32 %29, 76029189
%422 = add i32 %421, %397
%423 = add i32 %422, %420
%424 = tail call i32 @llvm.fshl.i32(i32 %423, i32 %423, i32 23)
%425 = add i32 %424, %418
%426 = xor i32 %418, %411
%427 = xor i32 %426, %425
%428 = add i32 %38, -640364487
%429 = add i32 %428, %404
%430 = add i32 %429, %427
%431 = tail call i32 @llvm.fshl.i32(i32 %430, i32 %430, i32 4)
%432 = add i32 %431, %425
%433 = xor i32 %425, %418
%434 = xor i32 %433, %432
%435 = add i32 %47, -421815835
%436 = add i32 %435, %411
%437 = add i32 %436, %434
%438 = tail call i32 @llvm.fshl.i32(i32 %437, i32 %437, i32 11)
%439 = add i32 %438, %432
%440 = xor i32 %432, %425
%441 = xor i32 %440, %439
%442 = add i32 %56, 530742520
%443 = add i32 %442, %418
%444 = add i32 %443, %441
%445 = tail call i32 @llvm.fshl.i32(i32 %444, i32 %444, i32 16)
%446 = add i32 %445, %439
%447 = xor i32 %439, %432
%448 = xor i32 %447, %446
%449 = add i32 %17, -995338651
%450 = add i32 %449, %425
%451 = add i32 %450, %448
%452 = tail call i32 @llvm.fshl.i32(i32 %451, i32 %451, i32 23)
%453 = add i32 %452, %446
%454 = xor i32 %439, -1
%455 = or i32 %453, %454
%456 = xor i32 %455, %446
%457 = add i32 %11, -198630844
%458 = add i32 %457, %432
%459 = add i32 %458, %456
%460 = tail call i32 @llvm.fshl.i32(i32 %459, i32 %459, i32 6)
%461 = add i32 %460, %453
%462 = xor i32 %446, -1
%463 = or i32 %461, %462
%464 = xor i32 %463, %453
%465 = add i32 %32, 1126891415
%466 = add i32 %465, %439
%467 = add i32 %466, %464
%468 = tail call i32 @llvm.fshl.i32(i32 %467, i32 %467, i32 10)
%469 = add i32 %468, %461
%470 = xor i32 %453, -1
%471 = or i32 %469, %470
%472 = xor i32 %471, %461
%473 = add i32 %53, -1416354905
%474 = add i32 %473, %446
%475 = add i32 %474, %472
%476 = tail call i32 @llvm.fshl.i32(i32 %475, i32 %475, i32 15)
%477 = add i32 %476, %469
%478 = xor i32 %461, -1
%479 = or i32 %477, %478
%480 = xor i32 %479, %469
%481 = add i32 %26, -57434055
%482 = add i32 %481, %453
%483 = add i32 %482, %480
%484 = tail call i32 @llvm.fshl.i32(i32 %483, i32 %483, i32 21)
%485 = add i32 %484, %477
%486 = xor i32 %469, -1
%487 = or i32 %485, %486
%488 = xor i32 %487, %477
%489 = add i32 %47, 1700485571
%490 = add i32 %489, %461
%491 = add i32 %490, %488
%492 = tail call i32 @llvm.fshl.i32(i32 %491, i32 %491, i32 6)
%493 = add i32 %492, %485
%494 = xor i32 %477, -1
%495 = or i32 %493, %494
%496 = xor i32 %495, %485
%497 = add i32 %20, -1894986606
%498 = add i32 %497, %469
%499 = add i32 %498, %496
%500 = tail call i32 @llvm.fshl.i32(i32 %499, i32 %499, i32 10)
%501 = add i32 %500, %493
%502 = xor i32 %485, -1
%503 = or i32 %501, %502
%504 = xor i32 %503, %493
%505 = add i32 %41, -1051523
%506 = add i32 %505, %477
%507 = add i32 %506, %504
%508 = tail call i32 @llvm.fshl.i32(i32 %507, i32 %507, i32 15)
%509 = add i32 %508, %501
%510 = xor i32 %493, -1
%511 = or i32 %509, %510
%512 = xor i32 %511, %501
%513 = add i32 %14, -2054922799
%514 = add i32 %513, %485
%515 = add i32 %514, %512
%516 = tail call i32 @llvm.fshl.i32(i32 %515, i32 %515, i32 21)
%517 = add i32 %516, %509
%518 = xor i32 %501, -1
%519 = or i32 %517, %518
%520 = xor i32 %519, %509
%521 = add i32 %35, 1873313359
%522 = add i32 %521, %493
%523 = add i32 %522, %520
%524 = tail call i32 @llvm.fshl.i32(i32 %523, i32 %523, i32 6)
%525 = add i32 %524, %517
%526 = xor i32 %509, -1
%527 = or i32 %525, %526
%528 = xor i32 %527, %517
%529 = add i32 %56, -30611744
%530 = add i32 %529, %501
%531 = add i32 %530, %528
%532 = tail call i32 @llvm.fshl.i32(i32 %531, i32 %531, i32 10)
%533 = add i32 %532, %525
%534 = xor i32 %517, -1
%535 = or i32 %533, %534
%536 = xor i32 %535, %525
%537 = add i32 %29, -1560198380
%538 = add i32 %537, %509
%539 = add i32 %538, %536
%540 = tail call i32 @llvm.fshl.i32(i32 %539, i32 %539, i32 15)
%541 = add i32 %540, %533
%542 = xor i32 %525, -1
%543 = or i32 %541, %542
%544 = xor i32 %543, %533
%545 = add i32 %50, 1309151649
%546 = add i32 %545, %517
%547 = add i32 %546, %544
%548 = tail call i32 @llvm.fshl.i32(i32 %547, i32 %547, i32 21)
%549 = add i32 %548, %541
%550 = xor i32 %533, -1
%551 = or i32 %549, %550
%552 = xor i32 %551, %541
%553 = add i32 %23, -145523070
%554 = add i32 %553, %525
%555 = add i32 %554, %552
%556 = tail call i32 @llvm.fshl.i32(i32 %555, i32 %555, i32 6)
%557 = add i32 %556, %549
%558 = xor i32 %541, -1
%559 = or i32 %557, %558
%560 = xor i32 %559, %549
%561 = add i32 %44, -1120210379
%562 = add i32 %561, %533
%563 = add i32 %562, %560
%564 = tail call i32 @llvm.fshl.i32(i32 %563, i32 %563, i32 10)
%565 = add i32 %564, %557
%566 = xor i32 %549, -1
%567 = or i32 %565, %566
%568 = xor i32 %567, %557
%569 = add i32 %17, 718787259
%570 = add i32 %569, %541
%571 = add i32 %570, %568
%572 = tail call i32 @llvm.fshl.i32(i32 %571, i32 %571, i32 15)
%573 = add i32 %572, %565
%574 = xor i32 %557, -1
%575 = or i32 %573, %574
%576 = xor i32 %575, %565
%577 = add i32 %38, -343485551
%578 = add i32 %577, %549
%579 = add i32 %578, %576
%580 = tail call i32 @llvm.fshl.i32(i32 %579, i32 %579, i32 21)
%581 = add i32 %557, %3
store i32 %581, i32* %0
%582 = add i32 %573, %5
%583 = add i32 %582, %580
store i32 %583, i32* %4
%584 = add i32 %573, %7
store i32 %584, i32* %6
%585 = add i32 %565, %9
store i32 %585, i32* %8
ret void
}