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


x86 assembly (clang, -O0):
<MD5Transform>:
push   %rbp
mov    %rsp,%rbp
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)
mov    -0x20(%rbp),%eax
mov    -0x18(%rbp),%ecx
mov    -0x1c(%rbp),%edx
xor    -0x20(%rbp),%edx
and    %edx,%ecx
xor    %ecx,%eax
mov    -0x10(%rbp),%rcx
add    (%rcx),%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)
jmp    1173 <MD5Transform+0x73>
mov    -0x1c(%rbp),%eax
mov    -0x14(%rbp),%ecx
mov    -0x18(%rbp),%edx
xor    -0x1c(%rbp),%edx
and    %edx,%ecx
xor    %ecx,%eax
mov    -0x10(%rbp),%rcx
add    0x4(%rcx),%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)
jmp    11b4 <MD5Transform+0xb4>
mov    -0x18(%rbp),%eax
mov    -0x20(%rbp),%ecx
mov    -0x14(%rbp),%edx
xor    -0x18(%rbp),%edx
and    %edx,%ecx
xor    %ecx,%eax
mov    -0x10(%rbp),%rcx
add    0x8(%rcx),%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)
jmp    11f5 <MD5Transform+0xf5>
mov    -0x14(%rbp),%eax
mov    -0x1c(%rbp),%ecx
mov    -0x20(%rbp),%edx
xor    -0x14(%rbp),%edx
and    %edx,%ecx
xor    %ecx,%eax
mov    -0x10(%rbp),%rcx
add    0xc(%rcx),%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)
jmp    1236 <MD5Transform+0x136>
mov    -0x20(%rbp),%eax
mov    -0x18(%rbp),%ecx
mov    -0x1c(%rbp),%edx
xor    -0x20(%rbp),%edx
and    %edx,%ecx
xor    %ecx,%eax
mov    -0x10(%rbp),%rcx
add    0x10(%rcx),%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)
jmp    1277 <MD5Transform+0x177>
mov    -0x1c(%rbp),%eax
mov    -0x14(%rbp),%ecx
mov    -0x18(%rbp),%edx
xor    -0x1c(%rbp),%edx
and    %edx,%ecx
xor    %ecx,%eax
mov    -0x10(%rbp),%rcx
add    0x14(%rcx),%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)
jmp    12b8 <MD5Transform+0x1b8>
mov    -0x18(%rbp),%eax
mov    -0x20(%rbp),%ecx
mov    -0x14(%rbp),%edx
xor    -0x18(%rbp),%edx
and    %edx,%ecx
xor    %ecx,%eax
mov    -0x10(%rbp),%rcx
add    0x18(%rcx),%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)
jmp    12f9 <MD5Transform+0x1f9>
mov    -0x14(%rbp),%eax
mov    -0x1c(%rbp),%ecx
mov    -0x20(%rbp),%edx
xor    -0x14(%rbp),%edx
and    %edx,%ecx
xor    %ecx,%eax
mov    -0x10(%rbp),%rcx
add    0x1c(%rcx),%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)
jmp    133a <MD5Transform+0x23a>
mov    -0x20(%rbp),%eax
mov    -0x18(%rbp),%ecx
mov    -0x1c(%rbp),%edx
xor    -0x20(%rbp),%edx
and    %edx,%ecx
xor    %ecx,%eax
mov    -0x10(%rbp),%rcx
add    0x20(%rcx),%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)
jmp    137b <MD5Transform+0x27b>
mov    -0x1c(%rbp),%eax
mov    -0x14(%rbp),%ecx
mov    -0x18(%rbp),%edx
xor    -0x1c(%rbp),%edx
and    %edx,%ecx
xor    %ecx,%eax
mov    -0x10(%rbp),%rcx
add    0x24(%rcx),%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)
jmp    13bc <MD5Transform+0x2bc>
mov    -0x18(%rbp),%eax
mov    -0x20(%rbp),%ecx
mov    -0x14(%rbp),%edx
xor    -0x18(%rbp),%edx
and    %edx,%ecx
xor    %ecx,%eax
mov    -0x10(%rbp),%rcx
add    0x28(%rcx),%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)
jmp    13fd <MD5Transform+0x2fd>
mov    -0x14(%rbp),%eax
mov    -0x1c(%rbp),%ecx
mov    -0x20(%rbp),%edx
xor    -0x14(%rbp),%edx
and    %edx,%ecx
xor    %ecx,%eax
mov    -0x10(%rbp),%rcx
add    0x2c(%rcx),%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)
jmp    143e <MD5Transform+0x33e>
mov    -0x20(%rbp),%eax
mov    -0x18(%rbp),%ecx
mov    -0x1c(%rbp),%edx
xor    -0x20(%rbp),%edx
and    %edx,%ecx
xor    %ecx,%eax
mov    -0x10(%rbp),%rcx
add    0x30(%rcx),%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)
jmp    147f <MD5Transform+0x37f>
mov    -0x1c(%rbp),%eax
mov    -0x14(%rbp),%ecx
mov    -0x18(%rbp),%edx
xor    -0x1c(%rbp),%edx
and    %edx,%ecx
xor    %ecx,%eax
mov    -0x10(%rbp),%rcx
add    0x34(%rcx),%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)
jmp    14c0 <MD5Transform+0x3c0>
mov    -0x18(%rbp),%eax
mov    -0x20(%rbp),%ecx
mov    -0x14(%rbp),%edx
xor    -0x18(%rbp),%edx
and    %edx,%ecx
xor    %ecx,%eax
mov    -0x10(%rbp),%rcx
add    0x38(%rcx),%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)
jmp    1501 <MD5Transform+0x401>
mov    -0x14(%rbp),%eax
mov    -0x1c(%rbp),%ecx
mov    -0x20(%rbp),%edx
xor    -0x14(%rbp),%edx
and    %edx,%ecx
xor    %ecx,%eax
mov    -0x10(%rbp),%rcx
add    0x3c(%rcx),%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)
jmp    1542 <MD5Transform+0x442>
mov    -0x1c(%rbp),%eax
mov    -0x20(%rbp),%ecx
mov    -0x18(%rbp),%edx
xor    -0x1c(%rbp),%edx
and    %edx,%ecx
xor    %ecx,%eax
mov    -0x10(%rbp),%rcx
add    0x4(%rcx),%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)
jmp    1583 <MD5Transform+0x483>
mov    -0x18(%rbp),%eax
mov    -0x1c(%rbp),%ecx
mov    -0x14(%rbp),%edx
xor    -0x18(%rbp),%edx
and    %edx,%ecx
xor    %ecx,%eax
mov    -0x10(%rbp),%rcx
add    0x18(%rcx),%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)
jmp    15c4 <MD5Transform+0x4c4>
mov    -0x14(%rbp),%eax
mov    -0x18(%rbp),%ecx
mov    -0x20(%rbp),%edx
xor    -0x14(%rbp),%edx
and    %edx,%ecx
xor    %ecx,%eax
mov    -0x10(%rbp),%rcx
add    0x2c(%rcx),%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)
jmp    1605 <MD5Transform+0x505>
mov    -0x20(%rbp),%eax
mov    -0x14(%rbp),%ecx
mov    -0x1c(%rbp),%edx
xor    -0x20(%rbp),%edx
and    %edx,%ecx
xor    %ecx,%eax
mov    -0x10(%rbp),%rcx
add    (%rcx),%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)
jmp    1645 <MD5Transform+0x545>
mov    -0x1c(%rbp),%eax
mov    -0x20(%rbp),%ecx
mov    -0x18(%rbp),%edx
xor    -0x1c(%rbp),%edx
and    %edx,%ecx
xor    %ecx,%eax
mov    -0x10(%rbp),%rcx
add    0x14(%rcx),%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)
jmp    1686 <MD5Transform+0x586>
mov    -0x18(%rbp),%eax
mov    -0x1c(%rbp),%ecx
mov    -0x14(%rbp),%edx
xor    -0x18(%rbp),%edx
and    %edx,%ecx
xor    %ecx,%eax
mov    -0x10(%rbp),%rcx
add    0x28(%rcx),%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)
jmp    16c7 <MD5Transform+0x5c7>
mov    -0x14(%rbp),%eax
mov    -0x18(%rbp),%ecx
mov    -0x20(%rbp),%edx
xor    -0x14(%rbp),%edx
and    %edx,%ecx
xor    %ecx,%eax
mov    -0x10(%rbp),%rcx
add    0x3c(%rcx),%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)
jmp    1708 <MD5Transform+0x608>
mov    -0x20(%rbp),%eax
mov    -0x14(%rbp),%ecx
mov    -0x1c(%rbp),%edx
xor    -0x20(%rbp),%edx
and    %edx,%ecx
xor    %ecx,%eax
mov    -0x10(%rbp),%rcx
add    0x10(%rcx),%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)
jmp    1749 <MD5Transform+0x649>
mov    -0x1c(%rbp),%eax
mov    -0x20(%rbp),%ecx
mov    -0x18(%rbp),%edx
xor    -0x1c(%rbp),%edx
and    %edx,%ecx
xor    %ecx,%eax
mov    -0x10(%rbp),%rcx
add    0x24(%rcx),%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)
jmp    178a <MD5Transform+0x68a>
mov    -0x18(%rbp),%eax
mov    -0x1c(%rbp),%ecx
mov    -0x14(%rbp),%edx
xor    -0x18(%rbp),%edx
and    %edx,%ecx
xor    %ecx,%eax
mov    -0x10(%rbp),%rcx
add    0x38(%rcx),%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)
jmp    17cb <MD5Transform+0x6cb>
mov    -0x14(%rbp),%eax
mov    -0x18(%rbp),%ecx
mov    -0x20(%rbp),%edx
xor    -0x14(%rbp),%edx
and    %edx,%ecx
xor    %ecx,%eax
mov    -0x10(%rbp),%rcx
add    0xc(%rcx),%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)
jmp    180c <MD5Transform+0x70c>
mov    -0x20(%rbp),%eax
mov    -0x14(%rbp),%ecx
mov    -0x1c(%rbp),%edx
xor    -0x20(%rbp),%edx
and    %edx,%ecx
xor    %ecx,%eax
mov    -0x10(%rbp),%rcx
add    0x20(%rcx),%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)
jmp    184d <MD5Transform+0x74d>
mov    -0x1c(%rbp),%eax
mov    -0x20(%rbp),%ecx
mov    -0x18(%rbp),%edx
xor    -0x1c(%rbp),%edx
and    %edx,%ecx
xor    %ecx,%eax
mov    -0x10(%rbp),%rcx
add    0x34(%rcx),%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)
jmp    188e <MD5Transform+0x78e>
mov    -0x18(%rbp),%eax
mov    -0x1c(%rbp),%ecx
mov    -0x14(%rbp),%edx
xor    -0x18(%rbp),%edx
and    %edx,%ecx
xor    %ecx,%eax
mov    -0x10(%rbp),%rcx
add    0x8(%rcx),%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)
jmp    18cf <MD5Transform+0x7cf>
mov    -0x14(%rbp),%eax
mov    -0x18(%rbp),%ecx
mov    -0x20(%rbp),%edx
xor    -0x14(%rbp),%edx
and    %edx,%ecx
xor    %ecx,%eax
mov    -0x10(%rbp),%rcx
add    0x1c(%rcx),%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)
jmp    1910 <MD5Transform+0x810>
mov    -0x20(%rbp),%eax
mov    -0x14(%rbp),%ecx
mov    -0x1c(%rbp),%edx
xor    -0x20(%rbp),%edx
and    %edx,%ecx
xor    %ecx,%eax
mov    -0x10(%rbp),%rcx
add    0x30(%rcx),%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)
jmp    1951 <MD5Transform+0x851>
mov    -0x18(%rbp),%eax
xor    -0x1c(%rbp),%eax
xor    -0x20(%rbp),%eax
mov    -0x10(%rbp),%rcx
add    0x14(%rcx),%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)
jmp    198b <MD5Transform+0x88b>
mov    -0x14(%rbp),%eax
xor    -0x18(%rbp),%eax
xor    -0x1c(%rbp),%eax
mov    -0x10(%rbp),%rcx
add    0x20(%rcx),%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)
jmp    19c5 <MD5Transform+0x8c5>
mov    -0x20(%rbp),%eax
xor    -0x14(%rbp),%eax
xor    -0x18(%rbp),%eax
mov    -0x10(%rbp),%rcx
add    0x2c(%rcx),%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)
jmp    19ff <MD5Transform+0x8ff>
mov    -0x1c(%rbp),%eax
xor    -0x20(%rbp),%eax
xor    -0x14(%rbp),%eax
mov    -0x10(%rbp),%rcx
add    0x38(%rcx),%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)
jmp    1a39 <MD5Transform+0x939>
mov    -0x18(%rbp),%eax
xor    -0x1c(%rbp),%eax
xor    -0x20(%rbp),%eax
mov    -0x10(%rbp),%rcx
add    0x4(%rcx),%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)
jmp    1a73 <MD5Transform+0x973>
mov    -0x14(%rbp),%eax
xor    -0x18(%rbp),%eax
xor    -0x1c(%rbp),%eax
mov    -0x10(%rbp),%rcx
add    0x10(%rcx),%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)
jmp    1aad <MD5Transform+0x9ad>
mov    -0x20(%rbp),%eax
xor    -0x14(%rbp),%eax
xor    -0x18(%rbp),%eax
mov    -0x10(%rbp),%rcx
add    0x1c(%rcx),%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)
jmp    1ae7 <MD5Transform+0x9e7>
mov    -0x1c(%rbp),%eax
xor    -0x20(%rbp),%eax
xor    -0x14(%rbp),%eax
mov    -0x10(%rbp),%rcx
add    0x28(%rcx),%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)
jmp    1b21 <MD5Transform+0xa21>
mov    -0x18(%rbp),%eax
xor    -0x1c(%rbp),%eax
xor    -0x20(%rbp),%eax
mov    -0x10(%rbp),%rcx
add    0x34(%rcx),%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)
jmp    1b5b <MD5Transform+0xa5b>
mov    -0x14(%rbp),%eax
xor    -0x18(%rbp),%eax
xor    -0x1c(%rbp),%eax
mov    -0x10(%rbp),%rcx
add    (%rcx),%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)
jmp    1b94 <MD5Transform+0xa94>
mov    -0x20(%rbp),%eax
xor    -0x14(%rbp),%eax
xor    -0x18(%rbp),%eax
mov    -0x10(%rbp),%rcx
add    0xc(%rcx),%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)
jmp    1bce <MD5Transform+0xace>
mov    -0x1c(%rbp),%eax
xor    -0x20(%rbp),%eax
xor    -0x14(%rbp),%eax
mov    -0x10(%rbp),%rcx
add    0x18(%rcx),%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)
jmp    1c08 <MD5Transform+0xb08>
mov    -0x18(%rbp),%eax
xor    -0x1c(%rbp),%eax
xor    -0x20(%rbp),%eax
mov    -0x10(%rbp),%rcx
add    0x24(%rcx),%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)
jmp    1c42 <MD5Transform+0xb42>
mov    -0x14(%rbp),%eax
xor    -0x18(%rbp),%eax
xor    -0x1c(%rbp),%eax
mov    -0x10(%rbp),%rcx
add    0x30(%rcx),%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)
jmp    1c7c <MD5Transform+0xb7c>
mov    -0x20(%rbp),%eax
xor    -0x14(%rbp),%eax
xor    -0x18(%rbp),%eax
mov    -0x10(%rbp),%rcx
add    0x3c(%rcx),%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)
jmp    1cb6 <MD5Transform+0xbb6>
mov    -0x1c(%rbp),%eax
xor    -0x20(%rbp),%eax
xor    -0x14(%rbp),%eax
mov    -0x10(%rbp),%rcx
add    0x8(%rcx),%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)
jmp    1cf0 <MD5Transform+0xbf0>
mov    -0x1c(%rbp),%eax
mov    -0x18(%rbp),%ecx
mov    -0x20(%rbp),%edx
xor    $0xffffffff,%edx
or     %edx,%ecx
xor    %ecx,%eax
mov    -0x10(%rbp),%rcx
add    (%rcx),%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)
jmp    1d30 <MD5Transform+0xc30>
mov    -0x18(%rbp),%eax
mov    -0x14(%rbp),%ecx
mov    -0x1c(%rbp),%edx
xor    $0xffffffff,%edx
or     %edx,%ecx
xor    %ecx,%eax
mov    -0x10(%rbp),%rcx
add    0x1c(%rcx),%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)
jmp    1d71 <MD5Transform+0xc71>
mov    -0x14(%rbp),%eax
mov    -0x20(%rbp),%ecx
mov    -0x18(%rbp),%edx
xor    $0xffffffff,%edx
or     %edx,%ecx
xor    %ecx,%eax
mov    -0x10(%rbp),%rcx
add    0x38(%rcx),%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)
jmp    1db2 <MD5Transform+0xcb2>
mov    -0x20(%rbp),%eax
mov    -0x1c(%rbp),%ecx
mov    -0x14(%rbp),%edx
xor    $0xffffffff,%edx
or     %edx,%ecx
xor    %ecx,%eax
mov    -0x10(%rbp),%rcx
add    0x14(%rcx),%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)
jmp    1df3 <MD5Transform+0xcf3>
mov    -0x1c(%rbp),%eax
mov    -0x18(%rbp),%ecx
mov    -0x20(%rbp),%edx
xor    $0xffffffff,%edx
or     %edx,%ecx
xor    %ecx,%eax
mov    -0x10(%rbp),%rcx
add    0x30(%rcx),%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)
jmp    1e34 <MD5Transform+0xd34>
mov    -0x18(%rbp),%eax
mov    -0x14(%rbp),%ecx
mov    -0x1c(%rbp),%edx
xor    $0xffffffff,%edx
or     %edx,%ecx
xor    %ecx,%eax
mov    -0x10(%rbp),%rcx
add    0xc(%rcx),%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)
jmp    1e75 <MD5Transform+0xd75>
mov    -0x14(%rbp),%eax
mov    -0x20(%rbp),%ecx
mov    -0x18(%rbp),%edx
xor    $0xffffffff,%edx
or     %edx,%ecx
xor    %ecx,%eax
mov    -0x10(%rbp),%rcx
add    0x28(%rcx),%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)
jmp    1eb6 <MD5Transform+0xdb6>
mov    -0x20(%rbp),%eax
mov    -0x1c(%rbp),%ecx
mov    -0x14(%rbp),%edx
xor    $0xffffffff,%edx
or     %edx,%ecx
xor    %ecx,%eax
mov    -0x10(%rbp),%rcx
add    0x4(%rcx),%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)
jmp    1ef7 <MD5Transform+0xdf7>
mov    -0x1c(%rbp),%eax
mov    -0x18(%rbp),%ecx
mov    -0x20(%rbp),%edx
xor    $0xffffffff,%edx
or     %edx,%ecx
xor    %ecx,%eax
mov    -0x10(%rbp),%rcx
add    0x20(%rcx),%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)
jmp    1f38 <MD5Transform+0xe38>
mov    -0x18(%rbp),%eax
mov    -0x14(%rbp),%ecx
mov    -0x1c(%rbp),%edx
xor    $0xffffffff,%edx
or     %edx,%ecx
xor    %ecx,%eax
mov    -0x10(%rbp),%rcx
add    0x3c(%rcx),%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)
jmp    1f79 <MD5Transform+0xe79>
mov    -0x14(%rbp),%eax
mov    -0x20(%rbp),%ecx
mov    -0x18(%rbp),%edx
xor    $0xffffffff,%edx
or     %edx,%ecx
xor    %ecx,%eax
mov    -0x10(%rbp),%rcx
add    0x18(%rcx),%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)
jmp    1fba <MD5Transform+0xeba>
mov    -0x20(%rbp),%eax
mov    -0x1c(%rbp),%ecx
mov    -0x14(%rbp),%edx
xor    $0xffffffff,%edx
or     %edx,%ecx
xor    %ecx,%eax
mov    -0x10(%rbp),%rcx
add    0x34(%rcx),%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)
jmp    1ffb <MD5Transform+0xefb>
mov    -0x1c(%rbp),%eax
mov    -0x18(%rbp),%ecx
mov    -0x20(%rbp),%edx
xor    $0xffffffff,%edx
or     %edx,%ecx
xor    %ecx,%eax
mov    -0x10(%rbp),%rcx
add    0x10(%rcx),%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)
jmp    203c <MD5Transform+0xf3c>
mov    -0x18(%rbp),%eax
mov    -0x14(%rbp),%ecx
mov    -0x1c(%rbp),%edx
xor    $0xffffffff,%edx
or     %edx,%ecx
xor    %ecx,%eax
mov    -0x10(%rbp),%rcx
add    0x2c(%rcx),%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)
jmp    207d <MD5Transform+0xf7d>
mov    -0x14(%rbp),%eax
mov    -0x20(%rbp),%ecx
mov    -0x18(%rbp),%edx
xor    $0xffffffff,%edx
or     %edx,%ecx
xor    %ecx,%eax
mov    -0x10(%rbp),%rcx
add    0x8(%rcx),%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)
jmp    20be <MD5Transform+0xfbe>
mov    -0x20(%rbp),%eax
mov    -0x1c(%rbp),%ecx
mov    -0x14(%rbp),%edx
xor    $0xffffffff,%edx
or     %edx,%ecx
xor    %ecx,%eax
mov    -0x10(%rbp),%rcx
add    0x24(%rcx),%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)
pop    %rbp
ret

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

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

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