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