#define NULL ((void *)0)
typedef unsigned long size_t; // Customize by platform.
typedef long intptr_t;
typedef unsigned long uintptr_t;
typedef long scalar_t__; // Either arithmetic or pointer type.
/* By default, we understand bool (as a convenience). */
typedef int bool;
#define false 0
#define true 1

/* Forward declarations */

/* Type definitions */
typedef int uint32_t;

/* Variables and functions */
void MD5Transform(uint32_t buf[4], uint32_t in[16]) {
  uint32_t 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
sar    $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
sar    $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
sar    $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
sar    $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
sar    $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
sar    $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
sar    $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
sar    $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
sar    $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
sar    $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
sar    $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
sar    $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
sar    $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
sar    $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
sar    $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
sar    $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
sar    $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
sar    $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
sar    $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
sar    $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
sar    $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
sar    $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
sar    $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
sar    $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
sar    $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
sar    $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
sar    $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
sar    $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
sar    $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
sar    $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
sar    $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
sar    $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
sar    $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
sar    $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
sar    $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
sar    $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
sar    $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
sar    $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
sar    $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
sar    $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
sar    $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
sar    $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
sar    $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
sar    $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
sar    $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
sar    $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
sar    $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
sar    $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
sar    $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
sar    $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
sar    $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
sar    $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
sar    $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
sar    $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
sar    $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
sar    $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
sar    $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
sar    $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
sar    $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
sar    $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
sar    $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
sar    $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
sar    $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
sar    $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
mov    %r8d,%eax
shl    $0x7,%eax
sar    $0x19,%r8d
or     %eax,%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
mov    %r9d,%eax
shl    $0xc,%eax
sar    $0x14,%r9d
or     %eax,%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
mov    %ebp,%eax
shl    $0x11,%eax
sar    $0xf,%ebp
or     %eax,%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
mov    %eax,%ecx
shl    $0x16,%ecx
sar    $0xa,%eax
or     %ecx,%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
mov    %ecx,%edx
shl    $0x7,%edx
sar    $0x19,%ecx
or     %edx,%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
mov    %r9d,%edx
shl    $0xc,%edx
sar    $0x14,%r9d
or     %edx,%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
mov    %r10d,%edx
shl    $0x11,%edx
sar    $0xf,%r10d
or     %edx,%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
mov    %eax,%edx
shl    $0x16,%edx
sar    $0xa,%eax
or     %edx,%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
mov    %ecx,%edx
shl    $0x7,%edx
sar    $0x19,%ecx
or     %edx,%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
mov    %edx,%esi
shl    $0xc,%esi
sar    $0x14,%edx
or     %esi,%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
mov    %esi,%edi
shl    $0x11,%edi
sar    $0xf,%esi
or     %edi,%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
mov    %edi,%eax
shl    $0x16,%eax
sar    $0xa,%edi
or     %eax,%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
mov    %eax,%ecx
shl    $0x7,%ecx
sar    $0x19,%eax
or     %ecx,%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
mov    %ecx,%edx
shl    $0xc,%edx
sar    $0x14,%ecx
or     %edx,%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
mov    %esi,%edx
shl    $0x11,%edx
sar    $0xf,%esi
or     %edx,%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
mov    %edi,%edx
shl    $0x16,%edx
sar    $0xa,%edi
or     %edx,%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
mov    %eax,%edx
shl    $0x5,%edx
sar    $0x1b,%eax
or     %edx,%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
mov    %ecx,%edx
shl    $0x9,%edx
sar    $0x17,%ecx
or     %edx,%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
mov    %esi,%edx
shl    $0xe,%edx
sar    $0x12,%esi
or     %edx,%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
mov    %edi,%edx
shl    $0x14,%edx
sar    $0xc,%edi
or     %edx,%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
mov    %eax,%edx
shl    $0x5,%edx
sar    $0x1b,%eax
or     %edx,%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
mov    %ecx,%edx
shl    $0x9,%edx
sar    $0x17,%ecx
or     %edx,%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
mov    %esi,%edx
shl    $0xe,%edx
sar    $0x12,%esi
or     %edx,%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
mov    %edi,%edx
shl    $0x14,%edx
sar    $0xc,%edi
or     %edx,%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
mov    %eax,%edx
shl    $0x5,%edx
sar    $0x1b,%eax
or     %edx,%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
mov    %ecx,%edx
shl    $0x9,%edx
sar    $0x17,%ecx
or     %edx,%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
mov    %esi,%edx
shl    $0xe,%edx
sar    $0x12,%esi
or     %edx,%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
mov    %edi,%edx
shl    $0x14,%edx
sar    $0xc,%edi
or     %edx,%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
mov    %eax,%edx
shl    $0x5,%edx
sar    $0x1b,%eax
or     %edx,%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
mov    %ecx,%edx
shl    $0x9,%edx
sar    $0x17,%ecx
or     %edx,%ecx
add    %eax,%ecx
mov    %ecx,%edx
xor    %eax,%edx
and    %edi,%edx
xor    %eax,%edx
mov    -0x60(%rsp),%r10d
add    %r10d,%esi
add    %edx,%esi
add    $0x676f02d9,%esi
mov    %esi,%edx
shl    $0xe,%edx
sar    $0x12,%esi
or     %edx,%esi
add    %ecx,%esi
mov    %esi,%r8d
xor    %ecx,%r8d
mov    %r8d,%edx
and    %eax,%edx
xor    %ecx,%edx
mov    -0x4c(%rsp),%r13d
add    %r13d,%edi
add    %edi,%edx
add    $0x8d2a4c8a,%edx
mov    %edx,%edi
shl    $0x14,%edi
sar    $0xc,%edx
or     %edi,%edx
add    %esi,%edx
xor    %edx,%r8d
add    %r11d,%eax
add    %r8d,%eax
add    $0xfffa3942,%eax
mov    %eax,%edi
shl    $0x4,%edi
sar    $0x1c,%eax
or     %edi,%eax
add    %edx,%eax
mov    %edx,%edi
xor    %esi,%edi
xor    %eax,%edi
add    %r9d,%ecx
add    %edi,%ecx
add    $0x8771f681,%ecx
mov    %ecx,%edi
shl    $0xb,%edi
sar    $0x15,%ecx
or     %edi,%ecx
add    %eax,%ecx
mov    %eax,%edi
xor    %edx,%edi
xor    %ecx,%edi
add    -0x5c(%rsp),%esi
add    %edi,%esi
add    $0x6d9d6122,%esi
mov    %esi,%edi
shl    $0x10,%edi
sar    $0x10,%esi
or     %edi,%esi
add    %ecx,%esi
mov    %ecx,%edi
xor    %eax,%edi
xor    %esi,%edi
add    %ebp,%edx
add    %edx,%edi
add    $0xfde5380c,%edi
mov    %edi,%edx
shl    $0x17,%edx
sar    $0x9,%edi
or     %edx,%edi
add    %esi,%edi
mov    %esi,%edx
xor    %ecx,%edx
xor    %edi,%edx
add    -0x40(%rsp),%eax
add    %edx,%eax
add    $0xa4beea44,%eax
mov    %eax,%edx
shl    $0x4,%edx
sar    $0x1c,%eax
or     %edx,%eax
add    %edi,%eax
mov    %edi,%edx
xor    %esi,%edx
xor    %eax,%edx
add    %ebx,%ecx
add    %edx,%ecx
add    $0x4bdecfa9,%ecx
mov    %ecx,%edx
shl    $0xb,%edx
sar    $0x15,%ecx
or     %edx,%ecx
add    %eax,%ecx
mov    %eax,%edx
xor    %edi,%edx
xor    %ecx,%edx
add    %r10d,%esi
add    %edx,%esi
add    $0xf6bb4b60,%esi
mov    %esi,%edx
shl    $0x10,%edx
sar    $0x10,%esi
or     %edx,%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
mov    %edi,%edx
shl    $0x17,%edx
sar    $0x9,%edi
or     %edx,%edi
add    %esi,%edi
mov    %esi,%edx
xor    %ecx,%edx
xor    %edi,%edx
add    %r15d,%eax
add    %edx,%eax
add    $0x289b7ec6,%eax
mov    %eax,%edx
shl    $0x4,%edx
sar    $0x1c,%eax
or     %edx,%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
mov    %ecx,%edx
shl    $0xb,%edx
sar    $0x15,%ecx
or     %edx,%ecx
add    %eax,%ecx
mov    %eax,%edx
xor    %edi,%edx
xor    %ecx,%edx
add    %r14d,%esi
lea    (%rdx,%rsi,1),%r8d
add    $0xd4ef3085,%r8d
mov    %r8d,%edx
shl    $0x10,%edx
sar    $0x10,%r8d
or     %edx,%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
mov    %edx,%esi
shl    $0x17,%esi
sar    $0x9,%edx
or     %esi,%edx
add    %r8d,%edx
mov    %r8d,%esi
xor    %ecx,%esi
xor    %edx,%esi
add    -0x58(%rsp),%eax
add    %esi,%eax
add    $0xd9d4d039,%eax
mov    %eax,%esi
shl    $0x4,%esi
sar    $0x1c,%eax
or     %esi,%eax
add    %edx,%eax
mov    %edx,%esi
xor    %r8d,%esi
xor    %eax,%esi
add    %r13d,%ecx
add    %ecx,%esi
add    $0xe6db99e5,%esi
mov    %esi,%ecx
shl    $0xb,%ecx
sar    $0x15,%esi
or     %ecx,%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
mov    %edi,%ecx
shl    $0x10,%ecx
sar    $0x10,%edi
or     %ecx,%edi
add    %esi,%edi
mov    %esi,%ecx
xor    %eax,%ecx
xor    %edi,%ecx
add    %r12d,%edx
lea    (%rcx,%rdx,1),%r8d
add    $0xc4ac5665,%r8d
mov    %r8d,%ecx
shl    $0x17,%ecx
sar    $0x9,%r8d
or     %ecx,%r8d
add    %r9d,%eax
add    %edi,%r8d
mov    %esi,%ecx
not    %ecx
or     %r8d,%ecx
xor    %edi,%ecx
add    %eax,%ecx
add    $0xf4292244,%ecx
mov    %ecx,%eax
shl    $0x6,%eax
sar    $0x1a,%ecx
or     %eax,%ecx
add    -0x60(%rsp),%esi
add    %r8d,%ecx
mov    %edi,%eax
not    %eax
or     %ecx,%eax
xor    %r8d,%eax
add    %eax,%esi
add    $0x432aff97,%esi
mov    %esi,%eax
shl    $0xa,%eax
sar    $0x16,%esi
or     %eax,%esi
add    -0x54(%rsp),%edi
add    %ecx,%esi
mov    %r8d,%eax
not    %eax
or     %esi,%eax
xor    %ecx,%eax
lea    (%rax,%rdi,1),%edx
add    $0xab9423a7,%edx
mov    %edx,%eax
shl    $0xf,%eax
sar    $0x11,%edx
or     %eax,%edx
add    -0x6c(%rsp),%r8d
add    %esi,%edx
mov    %ecx,%eax
not    %eax
or     %edx,%eax
xor    %esi,%eax
add    %r8d,%eax
add    $0xfc93a039,%eax
mov    %eax,%edi
shl    $0x15,%edi
sar    $0xb,%eax
or     %edi,%eax
add    %r13d,%ecx
add    %edx,%eax
mov    %esi,%edi
not    %edi
or     %eax,%edi
xor    %edx,%edi
add    %edi,%ecx
add    $0x655b59c3,%ecx
mov    %ecx,%edi
shl    $0x6,%edi
sar    $0x1a,%ecx
or     %edi,%ecx
add    -0x38(%rsp),%esi
add    %eax,%ecx
mov    %edx,%edi
not    %edi
or     %ecx,%edi
xor    %eax,%edi
add    %edi,%esi
add    $0x8f0ccc92,%esi
mov    %esi,%edi
shl    $0xa,%edi
sar    $0x16,%esi
or     %edi,%esi
add    %ebx,%edx
add    %ecx,%esi
mov    %eax,%edi
not    %edi
or     %esi,%edi
xor    %ecx,%edi
add    %edi,%edx
add    $0xffeff47d,%edx
mov    %edx,%edi
shl    $0xf,%edi
sar    $0x11,%edx
or     %edi,%edx
add    -0x40(%rsp),%eax
add    %esi,%edx
mov    %ecx,%edi
not    %edi
or     %edx,%edi
xor    %esi,%edi
add    %eax,%edi
add    $0x85845dd1,%edi
mov    %edi,%eax
shl    $0x15,%eax
sar    $0xb,%edi
or     %eax,%edi
add    -0x68(%rsp),%ecx
add    %edx,%edi
mov    %esi,%eax
not    %eax
or     %edi,%eax
xor    %edx,%eax
add    %ecx,%eax
add    $0x6fa87e4f,%eax
mov    %eax,%ecx
shl    $0x6,%ecx
sar    $0x1a,%eax
or     %ecx,%eax
add    %r11d,%esi
add    %edi,%eax
mov    %edx,%ecx
not    %ecx
or     %eax,%ecx
xor    %edi,%ecx
add    %ecx,%esi
add    $0xfe2ce6e0,%esi
mov    %esi,%ecx
shl    $0xa,%ecx
sar    $0x16,%esi
or     %ecx,%esi
add    %eax,%esi
add    %ebp,%edx
mov    %edi,%ecx
not    %ecx
or     %esi,%ecx
xor    %eax,%ecx
add    %ecx,%edx
add    $0xa3014314,%edx
mov    %edx,%ecx
shl    $0xf,%ecx
sar    $0x11,%edx
or     %ecx,%edx
add    %esi,%edx
add    %r15d,%edi
mov    %eax,%ecx
not    %ecx
or     %edx,%ecx
xor    %esi,%ecx
add    %edi,%ecx
add    $0x4e0811a1,%ecx
mov    %ecx,%edi
shl    $0x15,%edi
sar    $0xb,%ecx
or     %edi,%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
mov    %eax,%edi
shl    $0x6,%edi
sar    $0x1a,%eax
or     %edi,%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
mov    %esi,%edi
shl    $0xa,%edi
sar    $0x16,%esi
or     %edi,%esi
add    %eax,%esi
add    %r12d,%edx
mov    %ecx,%edi
not    %edi
or     %esi,%edi
xor    %eax,%edi
add    %edi,%edx
add    $0x2ad7d2bb,%edx
mov    %edx,%edi
shl    $0xf,%edi
sar    $0x11,%edx
or     %edi,%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
mov    %ecx,%edi
shl    $0x15,%edi
sar    $0xb,%ecx
or     %edi,%ecx
add    -0x8(%rsp),%eax
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 nsw 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 = ashr 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 nsw 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 nsw 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 = ashr 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 nsw 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 nsw i32 %71, %74
%76 = add nsw i32 %75, 606105819
%77 = load i32, i32* %7
%78 = add nsw i32 %77, %76
store i32 %78, i32* %7
%79 = load i32, i32* %7
%80 = shl i32 %79, 17
%81 = load i32, i32* %7
%82 = ashr 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 nsw 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 nsw 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 = ashr 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 nsw 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 nsw 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 = ashr 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 nsw 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 nsw i32 %137, %140
%142 = add nsw i32 %141, 1200080426
%143 = load i32, i32* %8
%144 = add nsw i32 %143, %142
store i32 %144, i32* %8
%145 = load i32, i32* %8
%146 = shl i32 %145, 12
%147 = load i32, i32* %8
%148 = ashr 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 nsw 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 nsw 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 = ashr 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 nsw 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 nsw 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 = ashr 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 nsw 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 nsw i32 %203, %206
%208 = add nsw i32 %207, 1770035416
%209 = load i32, i32* %5
%210 = add nsw i32 %209, %208
store i32 %210, i32* %5
%211 = load i32, i32* %5
%212 = shl i32 %211, 7
%213 = load i32, i32* %5
%214 = ashr 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 nsw 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 nsw 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 = ashr 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 nsw 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 nsw 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 = ashr 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 nsw 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 nsw 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 = ashr 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 nsw 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 nsw i32 %291, %294
%296 = add nsw i32 %295, 1804603682
%297 = load i32, i32* %5
%298 = add nsw i32 %297, %296
store i32 %298, i32* %5
%299 = load i32, i32* %5
%300 = shl i32 %299, 7
%301 = load i32, i32* %5
%302 = ashr 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 nsw 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 nsw 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 = ashr 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 nsw 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 nsw 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 = ashr 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 nsw 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 nsw i32 %357, %360
%362 = add nsw i32 %361, 1236535329
%363 = load i32, i32* %6
%364 = add nsw i32 %363, %362
store i32 %364, i32* %6
%365 = load i32, i32* %6
%366 = shl i32 %365, 22
%367 = load i32, i32* %6
%368 = ashr 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 nsw 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 nsw 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 = ashr 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 nsw 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 nsw 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 = ashr 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 nsw 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 nsw i32 %423, %426
%428 = add nsw i32 %427, 643717713
%429 = load i32, i32* %7
%430 = add nsw i32 %429, %428
store i32 %430, i32* %7
%431 = load i32, i32* %7
%432 = shl i32 %431, 14
%433 = load i32, i32* %7
%434 = ashr 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 nsw 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 nsw 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 = ashr 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 nsw 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 nsw 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 = ashr 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 nsw 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 nsw i32 %489, %492
%494 = add nsw i32 %493, 38016083
%495 = load i32, i32* %8
%496 = add nsw i32 %495, %494
store i32 %496, i32* %8
%497 = load i32, i32* %8
%498 = shl i32 %497, 9
%499 = load i32, i32* %8
%500 = ashr 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 nsw 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 nsw 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 = ashr 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 nsw 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 nsw 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 = ashr 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 nsw 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 nsw i32 %555, %558
%560 = add nsw i32 %559, 568446438
%561 = load i32, i32* %5
%562 = add nsw i32 %561, %560
store i32 %562, i32* %5
%563 = load i32, i32* %5
%564 = shl i32 %563, 5
%565 = load i32, i32* %5
%566 = ashr 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 nsw 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 nsw 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 = ashr 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 nsw 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 nsw 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 = ashr 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 nsw 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 nsw i32 %621, %624
%626 = add nsw i32 %625, 1163531501
%627 = load i32, i32* %6
%628 = add nsw i32 %627, %626
store i32 %628, i32* %6
%629 = load i32, i32* %6
%630 = shl i32 %629, 20
%631 = load i32, i32* %6
%632 = ashr 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 nsw 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 nsw 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 = ashr 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 nsw 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 nsw 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 = ashr 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 nsw 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 nsw i32 %687, %690
%692 = add nsw i32 %691, 1735328473
%693 = load i32, i32* %7
%694 = add nsw i32 %693, %692
store i32 %694, i32* %7
%695 = load i32, i32* %7
%696 = shl i32 %695, 14
%697 = load i32, i32* %7
%698 = ashr 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 nsw 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 nsw 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 = ashr 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 nsw 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 nsw 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 = ashr 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 nsw 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 nsw 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 = ashr 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 nsw 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 nsw i32 %769, %772
%774 = add nsw i32 %773, 1839030562
%775 = load i32, i32* %7
%776 = add nsw i32 %775, %774
store i32 %776, i32* %7
%777 = load i32, i32* %7
%778 = shl i32 %777, 16
%779 = load i32, i32* %7
%780 = ashr 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 nsw 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 nsw 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 = ashr 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 nsw 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 nsw 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 = ashr 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 nsw 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 nsw i32 %829, %832
%834 = add nsw i32 %833, 1272893353
%835 = load i32, i32* %8
%836 = add nsw i32 %835, %834
store i32 %836, i32* %8
%837 = load i32, i32* %8
%838 = shl i32 %837, 11
%839 = load i32, i32* %8
%840 = ashr 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 nsw 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 nsw 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 = ashr 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 nsw 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 nsw 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 = ashr 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 nsw 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 nsw i32 %889, %892
%894 = add nsw i32 %893, 681279174
%895 = load i32, i32* %5
%896 = add nsw i32 %895, %894
store i32 %896, i32* %5
%897 = load i32, i32* %5
%898 = shl i32 %897, 4
%899 = load i32, i32* %5
%900 = ashr 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 nsw 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 nsw 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 = ashr 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 nsw 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 nsw 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 = ashr 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 nsw 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 nsw i32 %949, %952
%954 = add nsw i32 %953, 76029189
%955 = load i32, i32* %6
%956 = add nsw i32 %955, %954
store i32 %956, i32* %6
%957 = load i32, i32* %6
%958 = shl i32 %957, 23
%959 = load i32, i32* %6
%960 = ashr 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 nsw 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 nsw 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 = ashr 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 nsw 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 nsw 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 = ashr 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 nsw 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 nsw i32 %1009, %1012
%1014 = add nsw i32 %1013, 530742520
%1015 = load i32, i32* %7
%1016 = add nsw i32 %1015, %1014
store i32 %1016, i32* %7
%1017 = load i32, i32* %7
%1018 = shl i32 %1017, 16
%1019 = load i32, i32* %7
%1020 = ashr 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 nsw 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 nsw 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 = ashr 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 nsw 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 nsw 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 = ashr 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 nsw 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 nsw i32 %1071, %1074
%1076 = add nsw i32 %1075, 1126891415
%1077 = load i32, i32* %8
%1078 = add nsw i32 %1077, %1076
store i32 %1078, i32* %8
%1079 = load i32, i32* %8
%1080 = shl i32 %1079, 10
%1081 = load i32, i32* %8
%1082 = ashr 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 nsw 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 nsw 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 = ashr 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 nsw 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 nsw 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 = ashr 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 nsw 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 nsw i32 %1134, %1137
%1139 = add nsw i32 %1138, 1700485571
%1140 = load i32, i32* %5
%1141 = add nsw i32 %1140, %1139
store i32 %1141, i32* %5
%1142 = load i32, i32* %5
%1143 = shl i32 %1142, 6
%1144 = load i32, i32* %5
%1145 = ashr 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 nsw 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 nsw 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 = ashr 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 nsw 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 nsw 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 = ashr 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 nsw 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 nsw 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 = ashr 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 nsw 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 nsw i32 %1218, %1221
%1223 = add nsw i32 %1222, 1873313359
%1224 = load i32, i32* %5
%1225 = add nsw i32 %1224, %1223
store i32 %1225, i32* %5
%1226 = load i32, i32* %5
%1227 = shl i32 %1226, 6
%1228 = load i32, i32* %5
%1229 = ashr 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 nsw 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 nsw 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 = ashr 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 nsw 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 nsw 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 = ashr 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 nsw 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 nsw i32 %1281, %1284
%1286 = add nsw i32 %1285, 1309151649
%1287 = load i32, i32* %6
%1288 = add nsw i32 %1287, %1286
store i32 %1288, i32* %6
%1289 = load i32, i32* %6
%1290 = shl i32 %1289, 21
%1291 = load i32, i32* %6
%1292 = ashr 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 nsw 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 nsw 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 = ashr 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 nsw 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 nsw 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 = ashr 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 nsw 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 nsw i32 %1344, %1347
%1349 = add nsw i32 %1348, 718787259
%1350 = load i32, i32* %7
%1351 = add nsw i32 %1350, %1349
store i32 %1351, i32* %7
%1352 = load i32, i32* %7
%1353 = shl i32 %1352, 15
%1354 = load i32, i32* %7
%1355 = ashr 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 nsw 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 nsw 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 = ashr 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 nsw 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 nsw 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 nsw 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 nsw 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 nsw 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 = shl i32 %16, 7
%18 = ashr i32 %16, 25
%19 = or i32 %17, %18
%20 = add nsw i32 %19, %5
%21 = xor i32 %7, %5
%22 = and i32 %20, %21
%23 = xor i32 %22, %7
%24 = getelementptr inbounds i32, i32* %1, i64 1
%25 = load i32, i32* %24
%26 = add i32 %9, -389564586
%27 = add i32 %26, %25
%28 = add i32 %27, %23
%29 = shl i32 %28, 12
%30 = ashr i32 %28, 20
%31 = or i32 %29, %30
%32 = add nsw i32 %31, %20
%33 = xor i32 %20, %5
%34 = and i32 %32, %33
%35 = xor i32 %34, %5
%36 = getelementptr inbounds i32, i32* %1, i64 2
%37 = load i32, i32* %36
%38 = add i32 %7, 606105819
%39 = add i32 %38, %37
%40 = add i32 %39, %35
%41 = shl i32 %40, 17
%42 = ashr i32 %40, 15
%43 = or i32 %41, %42
%44 = add nsw i32 %43, %32
%45 = xor i32 %32, %20
%46 = and i32 %44, %45
%47 = xor i32 %46, %20
%48 = getelementptr inbounds i32, i32* %1, i64 3
%49 = load i32, i32* %48
%50 = add i32 %5, -1044525330
%51 = add i32 %50, %49
%52 = add i32 %51, %47
%53 = shl i32 %52, 22
%54 = ashr i32 %52, 10
%55 = or i32 %53, %54
%56 = add nsw i32 %55, %44
%57 = xor i32 %44, %32
%58 = and i32 %56, %57
%59 = xor i32 %58, %32
%60 = getelementptr inbounds i32, i32* %1, i64 4
%61 = load i32, i32* %60
%62 = add i32 %61, -176418897
%63 = add i32 %62, %20
%64 = add i32 %63, %59
%65 = shl i32 %64, 7
%66 = ashr i32 %64, 25
%67 = or i32 %65, %66
%68 = add nsw i32 %67, %56
%69 = xor i32 %56, %44
%70 = and i32 %68, %69
%71 = xor i32 %70, %44
%72 = getelementptr inbounds i32, i32* %1, i64 5
%73 = load i32, i32* %72
%74 = add i32 %73, 1200080426
%75 = add i32 %74, %32
%76 = add i32 %75, %71
%77 = shl i32 %76, 12
%78 = ashr i32 %76, 20
%79 = or i32 %77, %78
%80 = add nsw i32 %79, %68
%81 = xor i32 %68, %56
%82 = and i32 %80, %81
%83 = xor i32 %82, %56
%84 = getelementptr inbounds i32, i32* %1, i64 6
%85 = load i32, i32* %84
%86 = add i32 %85, -1473231341
%87 = add i32 %86, %44
%88 = add i32 %87, %83
%89 = shl i32 %88, 17
%90 = ashr i32 %88, 15
%91 = or i32 %89, %90
%92 = add nsw i32 %91, %80
%93 = xor i32 %80, %68
%94 = and i32 %92, %93
%95 = xor i32 %94, %68
%96 = getelementptr inbounds i32, i32* %1, i64 7
%97 = load i32, i32* %96
%98 = add i32 %97, -45705983
%99 = add i32 %98, %56
%100 = add i32 %99, %95
%101 = shl i32 %100, 22
%102 = ashr i32 %100, 10
%103 = or i32 %101, %102
%104 = add nsw i32 %103, %92
%105 = xor i32 %92, %80
%106 = and i32 %104, %105
%107 = xor i32 %106, %80
%108 = getelementptr inbounds i32, i32* %1, i64 8
%109 = load i32, i32* %108
%110 = add i32 %109, 1770035416
%111 = add i32 %110, %68
%112 = add i32 %111, %107
%113 = shl i32 %112, 7
%114 = ashr i32 %112, 25
%115 = or i32 %113, %114
%116 = add nsw i32 %115, %104
%117 = xor i32 %104, %92
%118 = and i32 %116, %117
%119 = xor i32 %118, %92
%120 = getelementptr inbounds i32, i32* %1, i64 9
%121 = load i32, i32* %120
%122 = add i32 %121, -1958414417
%123 = add i32 %122, %80
%124 = add i32 %123, %119
%125 = shl i32 %124, 12
%126 = ashr i32 %124, 20
%127 = or i32 %125, %126
%128 = add nsw i32 %127, %116
%129 = xor i32 %116, %104
%130 = and i32 %128, %129
%131 = xor i32 %130, %104
%132 = getelementptr inbounds i32, i32* %1, i64 10
%133 = load i32, i32* %132
%134 = add i32 %133, -42063
%135 = add i32 %134, %92
%136 = add i32 %135, %131
%137 = shl i32 %136, 17
%138 = ashr i32 %136, 15
%139 = or i32 %137, %138
%140 = add nsw i32 %139, %128
%141 = xor i32 %128, %116
%142 = and i32 %140, %141
%143 = xor i32 %142, %116
%144 = getelementptr inbounds i32, i32* %1, i64 11
%145 = load i32, i32* %144
%146 = add i32 %145, -1990404162
%147 = add i32 %146, %104
%148 = add i32 %147, %143
%149 = shl i32 %148, 22
%150 = ashr i32 %148, 10
%151 = or i32 %149, %150
%152 = add nsw i32 %151, %140
%153 = xor i32 %140, %128
%154 = and i32 %152, %153
%155 = xor i32 %154, %128
%156 = getelementptr inbounds i32, i32* %1, i64 12
%157 = load i32, i32* %156
%158 = add i32 %157, 1804603682
%159 = add i32 %158, %116
%160 = add i32 %159, %155
%161 = shl i32 %160, 7
%162 = ashr i32 %160, 25
%163 = or i32 %161, %162
%164 = add nsw i32 %163, %152
%165 = xor i32 %152, %140
%166 = and i32 %164, %165
%167 = xor i32 %166, %140
%168 = getelementptr inbounds i32, i32* %1, i64 13
%169 = load i32, i32* %168
%170 = add i32 %169, -40341101
%171 = add i32 %170, %128
%172 = add i32 %171, %167
%173 = shl i32 %172, 12
%174 = ashr i32 %172, 20
%175 = or i32 %173, %174
%176 = add nsw i32 %175, %164
%177 = xor i32 %164, %152
%178 = and i32 %176, %177
%179 = xor i32 %178, %152
%180 = getelementptr inbounds i32, i32* %1, i64 14
%181 = load i32, i32* %180
%182 = add i32 %181, -1502002290
%183 = add i32 %182, %140
%184 = add i32 %183, %179
%185 = shl i32 %184, 17
%186 = ashr i32 %184, 15
%187 = or i32 %185, %186
%188 = add nsw i32 %187, %176
%189 = xor i32 %176, %164
%190 = and i32 %188, %189
%191 = xor i32 %190, %164
%192 = getelementptr inbounds i32, i32* %1, i64 15
%193 = load i32, i32* %192
%194 = add i32 %193, 1236535329
%195 = add i32 %194, %152
%196 = add i32 %195, %191
%197 = shl i32 %196, 22
%198 = ashr i32 %196, 10
%199 = or i32 %197, %198
%200 = add nsw i32 %199, %188
%201 = xor i32 %200, %188
%202 = and i32 %201, %176
%203 = xor i32 %202, %188
%204 = add i32 %25, -165796510
%205 = add i32 %204, %164
%206 = add i32 %205, %203
%207 = shl i32 %206, 5
%208 = ashr i32 %206, 27
%209 = or i32 %207, %208
%210 = add nsw i32 %209, %200
%211 = xor i32 %210, %200
%212 = and i32 %211, %188
%213 = xor i32 %212, %200
%214 = add i32 %85, -1069501632
%215 = add i32 %214, %176
%216 = add i32 %215, %213
%217 = shl i32 %216, 9
%218 = ashr i32 %216, 23
%219 = or i32 %217, %218
%220 = add nsw i32 %219, %210
%221 = xor i32 %220, %210
%222 = and i32 %221, %200
%223 = xor i32 %222, %210
%224 = add i32 %145, 643717713
%225 = add i32 %224, %188
%226 = add i32 %225, %223
%227 = shl i32 %226, 14
%228 = ashr i32 %226, 18
%229 = or i32 %227, %228
%230 = add nsw i32 %229, %220
%231 = xor i32 %230, %220
%232 = and i32 %231, %210
%233 = xor i32 %232, %220
%234 = add i32 %13, -373897302
%235 = add i32 %234, %200
%236 = add i32 %235, %233
%237 = shl i32 %236, 20
%238 = ashr i32 %236, 12
%239 = or i32 %237, %238
%240 = add nsw i32 %239, %230
%241 = xor i32 %240, %230
%242 = and i32 %241, %220
%243 = xor i32 %242, %230
%244 = add i32 %73, -701558691
%245 = add i32 %244, %210
%246 = add i32 %245, %243
%247 = shl i32 %246, 5
%248 = ashr i32 %246, 27
%249 = or i32 %247, %248
%250 = add nsw i32 %249, %240
%251 = xor i32 %250, %240
%252 = and i32 %251, %230
%253 = xor i32 %252, %240
%254 = add i32 %133, 38016083
%255 = add i32 %254, %220
%256 = add i32 %255, %253
%257 = shl i32 %256, 9
%258 = ashr i32 %256, 23
%259 = or i32 %257, %258
%260 = add nsw i32 %259, %250
%261 = xor i32 %260, %250
%262 = and i32 %261, %240
%263 = xor i32 %262, %250
%264 = add i32 %193, -660478335
%265 = add i32 %264, %230
%266 = add i32 %265, %263
%267 = shl i32 %266, 14
%268 = ashr i32 %266, 18
%269 = or i32 %267, %268
%270 = add nsw i32 %269, %260
%271 = xor i32 %270, %260
%272 = and i32 %271, %250
%273 = xor i32 %272, %260
%274 = add i32 %61, -405537848
%275 = add i32 %274, %240
%276 = add i32 %275, %273
%277 = shl i32 %276, 20
%278 = ashr i32 %276, 12
%279 = or i32 %277, %278
%280 = add nsw i32 %279, %270
%281 = xor i32 %280, %270
%282 = and i32 %281, %260
%283 = xor i32 %282, %270
%284 = add i32 %121, 568446438
%285 = add i32 %284, %250
%286 = add i32 %285, %283
%287 = shl i32 %286, 5
%288 = ashr i32 %286, 27
%289 = or i32 %287, %288
%290 = add nsw i32 %289, %280
%291 = xor i32 %290, %280
%292 = and i32 %291, %270
%293 = xor i32 %292, %280
%294 = add i32 %181, -1019803690
%295 = add i32 %294, %260
%296 = add i32 %295, %293
%297 = shl i32 %296, 9
%298 = ashr i32 %296, 23
%299 = or i32 %297, %298
%300 = add nsw i32 %299, %290
%301 = xor i32 %300, %290
%302 = and i32 %301, %280
%303 = xor i32 %302, %290
%304 = add i32 %49, -187363961
%305 = add i32 %304, %270
%306 = add i32 %305, %303
%307 = shl i32 %306, 14
%308 = ashr i32 %306, 18
%309 = or i32 %307, %308
%310 = add nsw i32 %309, %300
%311 = xor i32 %310, %300
%312 = and i32 %311, %290
%313 = xor i32 %312, %300
%314 = add i32 %109, 1163531501
%315 = add i32 %314, %280
%316 = add i32 %315, %313
%317 = shl i32 %316, 20
%318 = ashr i32 %316, 12
%319 = or i32 %317, %318
%320 = add nsw i32 %319, %310
%321 = xor i32 %320, %310
%322 = and i32 %321, %300
%323 = xor i32 %322, %310
%324 = add i32 %169, -1444681467
%325 = add i32 %324, %290
%326 = add i32 %325, %323
%327 = shl i32 %326, 5
%328 = ashr i32 %326, 27
%329 = or i32 %327, %328
%330 = add nsw i32 %329, %320
%331 = xor i32 %330, %320
%332 = and i32 %331, %310
%333 = xor i32 %332, %320
%334 = add i32 %37, -51403784
%335 = add i32 %334, %300
%336 = add i32 %335, %333
%337 = shl i32 %336, 9
%338 = ashr i32 %336, 23
%339 = or i32 %337, %338
%340 = add nsw i32 %339, %330
%341 = xor i32 %340, %330
%342 = and i32 %341, %320
%343 = xor i32 %342, %330
%344 = add i32 %97, 1735328473
%345 = add i32 %344, %310
%346 = add i32 %345, %343
%347 = shl i32 %346, 14
%348 = ashr i32 %346, 18
%349 = or i32 %347, %348
%350 = add nsw i32 %349, %340
%351 = xor i32 %350, %340
%352 = and i32 %351, %330
%353 = xor i32 %352, %340
%354 = add i32 %157, -1926607734
%355 = add i32 %354, %320
%356 = add i32 %355, %353
%357 = shl i32 %356, 20
%358 = ashr i32 %356, 12
%359 = or i32 %357, %358
%360 = add nsw i32 %359, %350
%361 = xor i32 %351, %360
%362 = add i32 %73, -378558
%363 = add i32 %362, %330
%364 = add i32 %363, %361
%365 = shl i32 %364, 4
%366 = ashr i32 %364, 28
%367 = or i32 %365, %366
%368 = add nsw i32 %367, %360
%369 = xor i32 %360, %350
%370 = xor i32 %369, %368
%371 = add i32 %109, -2022574463
%372 = add i32 %371, %340
%373 = add i32 %372, %370
%374 = shl i32 %373, 11
%375 = ashr i32 %373, 21
%376 = or i32 %374, %375
%377 = add nsw i32 %376, %368
%378 = xor i32 %368, %360
%379 = xor i32 %378, %377
%380 = add i32 %145, 1839030562
%381 = add i32 %380, %350
%382 = add i32 %381, %379
%383 = shl i32 %382, 16
%384 = ashr i32 %382, 16
%385 = or i32 %383, %384
%386 = add nsw i32 %385, %377
%387 = xor i32 %377, %368
%388 = xor i32 %387, %386
%389 = add i32 %181, -35309556
%390 = add i32 %389, %360
%391 = add i32 %390, %388
%392 = shl i32 %391, 23
%393 = ashr i32 %391, 9
%394 = or i32 %392, %393
%395 = add nsw i32 %394, %386
%396 = xor i32 %386, %377
%397 = xor i32 %396, %395
%398 = add i32 %25, -1530992060
%399 = add i32 %398, %368
%400 = add i32 %399, %397
%401 = shl i32 %400, 4
%402 = ashr i32 %400, 28
%403 = or i32 %401, %402
%404 = add nsw i32 %403, %395
%405 = xor i32 %395, %386
%406 = xor i32 %405, %404
%407 = add i32 %61, 1272893353
%408 = add i32 %407, %377
%409 = add i32 %408, %406
%410 = shl i32 %409, 11
%411 = ashr i32 %409, 21
%412 = or i32 %410, %411
%413 = add nsw i32 %412, %404
%414 = xor i32 %404, %395
%415 = xor i32 %414, %413
%416 = add i32 %97, -155497632
%417 = add i32 %416, %386
%418 = add i32 %417, %415
%419 = shl i32 %418, 16
%420 = ashr i32 %418, 16
%421 = or i32 %419, %420
%422 = add nsw i32 %421, %413
%423 = xor i32 %413, %404
%424 = xor i32 %423, %422
%425 = add i32 %133, -1094730640
%426 = add i32 %425, %395
%427 = add i32 %426, %424
%428 = shl i32 %427, 23
%429 = ashr i32 %427, 9
%430 = or i32 %428, %429
%431 = add nsw i32 %430, %422
%432 = xor i32 %422, %413
%433 = xor i32 %432, %431
%434 = add i32 %169, 681279174
%435 = add i32 %434, %404
%436 = add i32 %435, %433
%437 = shl i32 %436, 4
%438 = ashr i32 %436, 28
%439 = or i32 %437, %438
%440 = add nsw i32 %439, %431
%441 = xor i32 %431, %422
%442 = xor i32 %441, %440
%443 = add i32 %13, -358537222
%444 = add i32 %443, %413
%445 = add i32 %444, %442
%446 = shl i32 %445, 11
%447 = ashr i32 %445, 21
%448 = or i32 %446, %447
%449 = add nsw i32 %448, %440
%450 = xor i32 %440, %431
%451 = xor i32 %450, %449
%452 = add i32 %49, -722521979
%453 = add i32 %452, %422
%454 = add i32 %453, %451
%455 = shl i32 %454, 16
%456 = ashr i32 %454, 16
%457 = or i32 %455, %456
%458 = add nsw i32 %457, %449
%459 = xor i32 %449, %440
%460 = xor i32 %459, %458
%461 = add i32 %85, 76029189
%462 = add i32 %461, %431
%463 = add i32 %462, %460
%464 = shl i32 %463, 23
%465 = ashr i32 %463, 9
%466 = or i32 %464, %465
%467 = add nsw i32 %466, %458
%468 = xor i32 %458, %449
%469 = xor i32 %468, %467
%470 = add i32 %121, -640364487
%471 = add i32 %470, %440
%472 = add i32 %471, %469
%473 = shl i32 %472, 4
%474 = ashr i32 %472, 28
%475 = or i32 %473, %474
%476 = add nsw i32 %475, %467
%477 = xor i32 %467, %458
%478 = xor i32 %477, %476
%479 = add i32 %157, -421815835
%480 = add i32 %479, %449
%481 = add i32 %480, %478
%482 = shl i32 %481, 11
%483 = ashr i32 %481, 21
%484 = or i32 %482, %483
%485 = add nsw i32 %484, %476
%486 = xor i32 %476, %467
%487 = xor i32 %486, %485
%488 = add i32 %193, 530742520
%489 = add i32 %488, %458
%490 = add i32 %489, %487
%491 = shl i32 %490, 16
%492 = ashr i32 %490, 16
%493 = or i32 %491, %492
%494 = add nsw i32 %493, %485
%495 = xor i32 %485, %476
%496 = xor i32 %495, %494
%497 = add i32 %37, -995338651
%498 = add i32 %497, %467
%499 = add i32 %498, %496
%500 = shl i32 %499, 23
%501 = ashr i32 %499, 9
%502 = or i32 %500, %501
%503 = add nsw i32 %502, %494
%504 = xor i32 %485, -1
%505 = or i32 %503, %504
%506 = xor i32 %505, %494
%507 = add i32 %13, -198630844
%508 = add i32 %507, %476
%509 = add i32 %508, %506
%510 = shl i32 %509, 6
%511 = ashr i32 %509, 26
%512 = or i32 %510, %511
%513 = add nsw i32 %512, %503
%514 = xor i32 %494, -1
%515 = or i32 %513, %514
%516 = xor i32 %515, %503
%517 = add i32 %97, 1126891415
%518 = add i32 %517, %485
%519 = add i32 %518, %516
%520 = shl i32 %519, 10
%521 = ashr i32 %519, 22
%522 = or i32 %520, %521
%523 = add nsw i32 %522, %513
%524 = xor i32 %503, -1
%525 = or i32 %523, %524
%526 = xor i32 %525, %513
%527 = add i32 %181, -1416354905
%528 = add i32 %527, %494
%529 = add i32 %528, %526
%530 = shl i32 %529, 15
%531 = ashr i32 %529, 17
%532 = or i32 %530, %531
%533 = add nsw i32 %532, %523
%534 = xor i32 %513, -1
%535 = or i32 %533, %534
%536 = xor i32 %535, %523
%537 = add i32 %73, -57434055
%538 = add i32 %537, %503
%539 = add i32 %538, %536
%540 = shl i32 %539, 21
%541 = ashr i32 %539, 11
%542 = or i32 %540, %541
%543 = add nsw i32 %542, %533
%544 = xor i32 %523, -1
%545 = or i32 %543, %544
%546 = xor i32 %545, %533
%547 = add i32 %157, 1700485571
%548 = add i32 %547, %513
%549 = add i32 %548, %546
%550 = shl i32 %549, 6
%551 = ashr i32 %549, 26
%552 = or i32 %550, %551
%553 = add nsw i32 %552, %543
%554 = xor i32 %533, -1
%555 = or i32 %553, %554
%556 = xor i32 %555, %543
%557 = add i32 %49, -1894986606
%558 = add i32 %557, %523
%559 = add i32 %558, %556
%560 = shl i32 %559, 10
%561 = ashr i32 %559, 22
%562 = or i32 %560, %561
%563 = add nsw i32 %562, %553
%564 = xor i32 %543, -1
%565 = or i32 %563, %564
%566 = xor i32 %565, %553
%567 = add i32 %133, -1051523
%568 = add i32 %567, %533
%569 = add i32 %568, %566
%570 = shl i32 %569, 15
%571 = ashr i32 %569, 17
%572 = or i32 %570, %571
%573 = add nsw i32 %572, %563
%574 = xor i32 %553, -1
%575 = or i32 %573, %574
%576 = xor i32 %575, %563
%577 = add i32 %25, -2054922799
%578 = add i32 %577, %543
%579 = add i32 %578, %576
%580 = shl i32 %579, 21
%581 = ashr i32 %579, 11
%582 = or i32 %580, %581
%583 = add nsw i32 %582, %573
%584 = xor i32 %563, -1
%585 = or i32 %583, %584
%586 = xor i32 %585, %573
%587 = add i32 %109, 1873313359
%588 = add i32 %587, %553
%589 = add i32 %588, %586
%590 = shl i32 %589, 6
%591 = ashr i32 %589, 26
%592 = or i32 %590, %591
%593 = add nsw i32 %592, %583
%594 = xor i32 %573, -1
%595 = or i32 %593, %594
%596 = xor i32 %595, %583
%597 = add i32 %193, -30611744
%598 = add i32 %597, %563
%599 = add i32 %598, %596
%600 = shl i32 %599, 10
%601 = ashr i32 %599, 22
%602 = or i32 %600, %601
%603 = add nsw i32 %602, %593
%604 = xor i32 %583, -1
%605 = or i32 %603, %604
%606 = xor i32 %605, %593
%607 = add i32 %85, -1560198380
%608 = add i32 %607, %573
%609 = add i32 %608, %606
%610 = shl i32 %609, 15
%611 = ashr i32 %609, 17
%612 = or i32 %610, %611
%613 = add nsw i32 %612, %603
%614 = xor i32 %593, -1
%615 = or i32 %613, %614
%616 = xor i32 %615, %603
%617 = add i32 %169, 1309151649
%618 = add i32 %617, %583
%619 = add i32 %618, %616
%620 = shl i32 %619, 21
%621 = ashr i32 %619, 11
%622 = or i32 %620, %621
%623 = add nsw i32 %622, %613
%624 = xor i32 %603, -1
%625 = or i32 %623, %624
%626 = xor i32 %625, %613
%627 = add i32 %61, -145523070
%628 = add i32 %627, %593
%629 = add i32 %628, %626
%630 = shl i32 %629, 6
%631 = ashr i32 %629, 26
%632 = or i32 %630, %631
%633 = add nsw i32 %632, %623
%634 = xor i32 %613, -1
%635 = or i32 %633, %634
%636 = xor i32 %635, %623
%637 = add i32 %145, -1120210379
%638 = add i32 %637, %603
%639 = add i32 %638, %636
%640 = shl i32 %639, 10
%641 = ashr i32 %639, 22
%642 = or i32 %640, %641
%643 = add nsw i32 %642, %633
%644 = xor i32 %623, -1
%645 = or i32 %643, %644
%646 = xor i32 %645, %633
%647 = add i32 %37, 718787259
%648 = add i32 %647, %613
%649 = add i32 %648, %646
%650 = shl i32 %649, 15
%651 = ashr i32 %649, 17
%652 = or i32 %650, %651
%653 = add nsw i32 %652, %643
%654 = xor i32 %633, -1
%655 = or i32 %653, %654
%656 = xor i32 %655, %643
%657 = add i32 %121, -343485551
%658 = add i32 %657, %623
%659 = add i32 %658, %656
%660 = shl i32 %659, 21
%661 = ashr i32 %659, 11
%662 = or i32 %660, %661
%663 = add nsw i32 %633, %3
store i32 %663, i32* %0
%664 = add i32 %653, %5
%665 = add i32 %664, %662
store i32 %665, i32* %4
%666 = add nsw i32 %653, %7
store i32 %666, i32* %6
%667 = add nsw i32 %643, %9
store i32 %667, i32* %8
ret void
}