void MD5_transform(unsigned long buf[4], const unsigned long in[16]) {
  register unsigned long a, b, c, d;
  a = buf[0];
  b = buf[1];
  c = buf[2];
  d = buf[3];
  {
    a += (d ^ (b & (c ^ d))) + in[0] + 0xd76aa478UL;
    a = a << 7 | (a & 0xffffffffUL) >> (32 - 7);
    a += b;
  };
  {
    d += (c ^ (a & (b ^ c))) + in[1] + 0xe8c7b756UL;
    d = d << 12 | (d & 0xffffffffUL) >> (32 - 12);
    d += a;
  };
  {
    c += (b ^ (d & (a ^ b))) + in[2] + 0x242070dbUL;
    c = c << 17 | (c & 0xffffffffUL) >> (32 - 17);
    c += d;
  };
  {
    b += (a ^ (c & (d ^ a))) + in[3] + 0xc1bdceeeUL;
    b = b << 22 | (b & 0xffffffffUL) >> (32 - 22);
    b += c;
  };
  {
    a += (d ^ (b & (c ^ d))) + in[4] + 0xf57c0fafUL;
    a = a << 7 | (a & 0xffffffffUL) >> (32 - 7);
    a += b;
  };
  {
    d += (c ^ (a & (b ^ c))) + in[5] + 0x4787c62aUL;
    d = d << 12 | (d & 0xffffffffUL) >> (32 - 12);
    d += a;
  };
  {
    c += (b ^ (d & (a ^ b))) + in[6] + 0xa8304613UL;
    c = c << 17 | (c & 0xffffffffUL) >> (32 - 17);
    c += d;
  };
  {
    b += (a ^ (c & (d ^ a))) + in[7] + 0xfd469501UL;
    b = b << 22 | (b & 0xffffffffUL) >> (32 - 22);
    b += c;
  };
  {
    a += (d ^ (b & (c ^ d))) + in[8] + 0x698098d8UL;
    a = a << 7 | (a & 0xffffffffUL) >> (32 - 7);
    a += b;
  };
  {
    d += (c ^ (a & (b ^ c))) + in[9] + 0x8b44f7afUL;
    d = d << 12 | (d & 0xffffffffUL) >> (32 - 12);
    d += a;
  };
  {
    c += (b ^ (d & (a ^ b))) + in[10] + 0xffff5bb1UL;
    c = c << 17 | (c & 0xffffffffUL) >> (32 - 17);
    c += d;
  };
  {
    b += (a ^ (c & (d ^ a))) + in[11] + 0x895cd7beUL;
    b = b << 22 | (b & 0xffffffffUL) >> (32 - 22);
    b += c;
  };
  {
    a += (d ^ (b & (c ^ d))) + in[12] + 0x6b901122UL;
    a = a << 7 | (a & 0xffffffffUL) >> (32 - 7);
    a += b;
  };
  {
    d += (c ^ (a & (b ^ c))) + in[13] + 0xfd987193UL;
    d = d << 12 | (d & 0xffffffffUL) >> (32 - 12);
    d += a;
  };
  {
    c += (b ^ (d & (a ^ b))) + in[14] + 0xa679438eUL;
    c = c << 17 | (c & 0xffffffffUL) >> (32 - 17);
    c += d;
  };
  {
    b += (a ^ (c & (d ^ a))) + in[15] + 0x49b40821UL;
    b = b << 22 | (b & 0xffffffffUL) >> (32 - 22);
    b += c;
  };
  {
    a += (c ^ (d & (b ^ c))) + in[1] + 0xf61e2562UL;
    a = a << 5 | (a & 0xffffffffUL) >> (32 - 5);
    a += b;
  };
  {
    d += (b ^ (c & (a ^ b))) + in[6] + 0xc040b340UL;
    d = d << 9 | (d & 0xffffffffUL) >> (32 - 9);
    d += a;
  };
  {
    c += (a ^ (b & (d ^ a))) + in[11] + 0x265e5a51UL;
    c = c << 14 | (c & 0xffffffffUL) >> (32 - 14);
    c += d;
  };
  {
    b += (d ^ (a & (c ^ d))) + in[0] + 0xe9b6c7aaUL;
    b = b << 20 | (b & 0xffffffffUL) >> (32 - 20);
    b += c;
  };
  {
    a += (c ^ (d & (b ^ c))) + in[5] + 0xd62f105dUL;
    a = a << 5 | (a & 0xffffffffUL) >> (32 - 5);
    a += b;
  };
  {
    d += (b ^ (c & (a ^ b))) + in[10] + 0x02441453UL;
    d = d << 9 | (d & 0xffffffffUL) >> (32 - 9);
    d += a;
  };
  {
    c += (a ^ (b & (d ^ a))) + in[15] + 0xd8a1e681UL;
    c = c << 14 | (c & 0xffffffffUL) >> (32 - 14);
    c += d;
  };
  {
    b += (d ^ (a & (c ^ d))) + in[4] + 0xe7d3fbc8UL;
    b = b << 20 | (b & 0xffffffffUL) >> (32 - 20);
    b += c;
  };
  {
    a += (c ^ (d & (b ^ c))) + in[9] + 0x21e1cde6UL;
    a = a << 5 | (a & 0xffffffffUL) >> (32 - 5);
    a += b;
  };
  {
    d += (b ^ (c & (a ^ b))) + in[14] + 0xc33707d6UL;
    d = d << 9 | (d & 0xffffffffUL) >> (32 - 9);
    d += a;
  };
  {
    c += (a ^ (b & (d ^ a))) + in[3] + 0xf4d50d87UL;
    c = c << 14 | (c & 0xffffffffUL) >> (32 - 14);
    c += d;
  };
  {
    b += (d ^ (a & (c ^ d))) + in[8] + 0x455a14edUL;
    b = b << 20 | (b & 0xffffffffUL) >> (32 - 20);
    b += c;
  };
  {
    a += (c ^ (d & (b ^ c))) + in[13] + 0xa9e3e905UL;
    a = a << 5 | (a & 0xffffffffUL) >> (32 - 5);
    a += b;
  };
  {
    d += (b ^ (c & (a ^ b))) + in[2] + 0xfcefa3f8UL;
    d = d << 9 | (d & 0xffffffffUL) >> (32 - 9);
    d += a;
  };
  {
    c += (a ^ (b & (d ^ a))) + in[7] + 0x676f02d9UL;
    c = c << 14 | (c & 0xffffffffUL) >> (32 - 14);
    c += d;
  };
  {
    b += (d ^ (a & (c ^ d))) + in[12] + 0x8d2a4c8aUL;
    b = b << 20 | (b & 0xffffffffUL) >> (32 - 20);
    b += c;
  };
  {
    a += (b ^ c ^ d) + in[5] + 0xfffa3942UL;
    a = a << 4 | (a & 0xffffffffUL) >> (32 - 4);
    a += b;
  };
  {
    d += (a ^ b ^ c) + in[8] + 0x8771f681UL;
    d = d << 11 | (d & 0xffffffffUL) >> (32 - 11);
    d += a;
  };
  {
    c += (d ^ a ^ b) + in[11] + 0x6d9d6122UL;
    c = c << 16 | (c & 0xffffffffUL) >> (32 - 16);
    c += d;
  };
  {
    b += (c ^ d ^ a) + in[14] + 0xfde5380cUL;
    b = b << 23 | (b & 0xffffffffUL) >> (32 - 23);
    b += c;
  };
  {
    a += (b ^ c ^ d) + in[1] + 0xa4beea44UL;
    a = a << 4 | (a & 0xffffffffUL) >> (32 - 4);
    a += b;
  };
  {
    d += (a ^ b ^ c) + in[4] + 0x4bdecfa9UL;
    d = d << 11 | (d & 0xffffffffUL) >> (32 - 11);
    d += a;
  };
  {
    c += (d ^ a ^ b) + in[7] + 0xf6bb4b60UL;
    c = c << 16 | (c & 0xffffffffUL) >> (32 - 16);
    c += d;
  };
  {
    b += (c ^ d ^ a) + in[10] + 0xbebfbc70UL;
    b = b << 23 | (b & 0xffffffffUL) >> (32 - 23);
    b += c;
  };
  {
    a += (b ^ c ^ d) + in[13] + 0x289b7ec6UL;
    a = a << 4 | (a & 0xffffffffUL) >> (32 - 4);
    a += b;
  };
  {
    d += (a ^ b ^ c) + in[0] + 0xeaa127faUL;
    d = d << 11 | (d & 0xffffffffUL) >> (32 - 11);
    d += a;
  };
  {
    c += (d ^ a ^ b) + in[3] + 0xd4ef3085UL;
    c = c << 16 | (c & 0xffffffffUL) >> (32 - 16);
    c += d;
  };
  {
    b += (c ^ d ^ a) + in[6] + 0x04881d05UL;
    b = b << 23 | (b & 0xffffffffUL) >> (32 - 23);
    b += c;
  };
  {
    a += (b ^ c ^ d) + in[9] + 0xd9d4d039UL;
    a = a << 4 | (a & 0xffffffffUL) >> (32 - 4);
    a += b;
  };
  {
    d += (a ^ b ^ c) + in[12] + 0xe6db99e5UL;
    d = d << 11 | (d & 0xffffffffUL) >> (32 - 11);
    d += a;
  };
  {
    c += (d ^ a ^ b) + in[15] + 0x1fa27cf8UL;
    c = c << 16 | (c & 0xffffffffUL) >> (32 - 16);
    c += d;
  };
  {
    b += (c ^ d ^ a) + in[2] + 0xc4ac5665UL;
    b = b << 23 | (b & 0xffffffffUL) >> (32 - 23);
    b += c;
  };
  {
    a += (c ^ (b | ~d)) + in[0] + 0xf4292244UL;
    a = a << 6 | (a & 0xffffffffUL) >> (32 - 6);
    a += b;
  };
  {
    d += (b ^ (a | ~c)) + in[7] + 0x432aff97UL;
    d = d << 10 | (d & 0xffffffffUL) >> (32 - 10);
    d += a;
  };
  {
    c += (a ^ (d | ~b)) + in[14] + 0xab9423a7UL;
    c = c << 15 | (c & 0xffffffffUL) >> (32 - 15);
    c += d;
  };
  {
    b += (d ^ (c | ~a)) + in[5] + 0xfc93a039UL;
    b = b << 21 | (b & 0xffffffffUL) >> (32 - 21);
    b += c;
  };
  {
    a += (c ^ (b | ~d)) + in[12] + 0x655b59c3UL;
    a = a << 6 | (a & 0xffffffffUL) >> (32 - 6);
    a += b;
  };
  {
    d += (b ^ (a | ~c)) + in[3] + 0x8f0ccc92UL;
    d = d << 10 | (d & 0xffffffffUL) >> (32 - 10);
    d += a;
  };
  {
    c += (a ^ (d | ~b)) + in[10] + 0xffeff47dUL;
    c = c << 15 | (c & 0xffffffffUL) >> (32 - 15);
    c += d;
  };
  {
    b += (d ^ (c | ~a)) + in[1] + 0x85845dd1UL;
    b = b << 21 | (b & 0xffffffffUL) >> (32 - 21);
    b += c;
  };
  {
    a += (c ^ (b | ~d)) + in[8] + 0x6fa87e4fUL;
    a = a << 6 | (a & 0xffffffffUL) >> (32 - 6);
    a += b;
  };
  {
    d += (b ^ (a | ~c)) + in[15] + 0xfe2ce6e0UL;
    d = d << 10 | (d & 0xffffffffUL) >> (32 - 10);
    d += a;
  };
  {
    c += (a ^ (d | ~b)) + in[6] + 0xa3014314UL;
    c = c << 15 | (c & 0xffffffffUL) >> (32 - 15);
    c += d;
  };
  {
    b += (d ^ (c | ~a)) + in[13] + 0x4e0811a1UL;
    b = b << 21 | (b & 0xffffffffUL) >> (32 - 21);
    b += c;
  };
  {
    a += (c ^ (b | ~d)) + in[4] + 0xf7537e82UL;
    a = a << 6 | (a & 0xffffffffUL) >> (32 - 6);
    a += b;
  };
  {
    d += (b ^ (a | ~c)) + in[11] + 0xbd3af235UL;
    d = d << 10 | (d & 0xffffffffUL) >> (32 - 10);
    d += a;
  };
  {
    c += (a ^ (d | ~b)) + in[2] + 0x2ad7d2bbUL;
    c = c << 15 | (c & 0xffffffffUL) >> (32 - 15);
    c += d;
  };
  {
    b += (d ^ (c | ~a)) + in[9] + 0xeb86d391UL;
    b = b << 21 | (b & 0xffffffffUL) >> (32 - 21);
    b += c;
  };
  buf[0] += a;
  buf[1] += b;
  buf[2] += c;
  buf[3] += d;
}


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

x86 assembly (clang, -O2):
<MD5_transform>:
push   %rbp
push   %r15
push   %r14
push   %r13
push   %r12
push   %rbx
sub    $0x28,%rsp
mov    %rsi,%r9
mov    %rdi,0x8(%rsp)
mov    (%rdi),%rdx
mov    %rdx,0x20(%rsp)
mov    0x8(%rdi),%rbx
mov    0x10(%rdi),%rsi
mov    0x18(%rdi),%rcx
mov    %rcx,%rax
xor    %rsi,%rax
and    %rbx,%rax
xor    %rcx,%rax
mov    %rcx,%rdi
mov    %rcx,0x18(%rsp)
mov    (%r9),%rcx
mov    %rcx,-0x48(%rsp)
mov    0x8(%r9),%rbp
mov    %rbp,-0x80(%rsp)
add    %rdx,%rcx
add    %rcx,%rax
mov    $0x85845dd1,%r14d
add    %r14,%rax
add    $0x51e646a7,%rax
mov    %rax,%rdx
shl    $0x7,%rdx
shr    $0x19,%eax
add    %rbx,%rdx
add    %rax,%rdx
mov    %rsi,%rax
xor    %rbx,%rax
and    %rdx,%rax
xor    %rsi,%rax
mov    %rsi,0x10(%rsp)
add    %rdi,%rax
add    %rbp,%rax
add    %r14,%rax
add    $0x63435985,%rax
mov    %rax,%rbp
shl    $0xc,%rbp
shr    $0x14,%eax
add    %rdx,%rbp
add    %rax,%rbp
mov    %rdx,%rax
xor    %rbx,%rax
and    %rbp,%rax
xor    %rbx,%rax
mov    %rbx,(%rsp)
mov    0x10(%r9),%rcx
mov    %rcx,-0x8(%rsp)
add    %rsi,%rcx
add    %rax,%rcx
add    $0x242070db,%rcx
mov    %rcx,%rax
shl    $0x11,%rax
shr    $0xf,%ecx
add    %rbp,%rax
add    %rcx,%rax
mov    %rbp,%rcx
xor    %rdx,%rcx
and    %rax,%rcx
xor    %rdx,%rcx
mov    0x18(%r9),%rsi
mov    %rsi,-0x50(%rsp)
add    %rbx,%rsi
add    %rsi,%rcx
lea    (%r14,%rcx,1),%rsi
add    $0x3c39711d,%rsi
mov    %rsi,%rcx
shl    $0x16,%rcx
shr    $0xa,%esi
add    %rax,%rcx
add    %rsi,%rcx
mov    %rax,%rsi
xor    %rbp,%rsi
and    %rcx,%rsi
xor    %rbp,%rsi
mov    0x20(%r9),%rdi
mov    %rdi,-0x58(%rsp)
add    %rdi,%rdx
add    %rsi,%rdx
lea    (%r14,%rdx,1),%rsi
add    $0x6ff7b1de,%rsi
mov    %rsi,%rdx
shl    $0x7,%rdx
shr    $0x19,%esi
add    %rcx,%rdx
add    %rsi,%rdx
mov    %rcx,%rsi
xor    %rax,%rsi
and    %rdx,%rsi
xor    %rax,%rsi
mov    0x28(%r9),%rdi
mov    %rdi,-0x70(%rsp)
add    %rdi,%rbp
add    %rbp,%rsi
add    $0x4787c62a,%rsi
mov    %rsi,%r8
shl    $0xc,%r8
shr    $0x14,%esi
add    %rdx,%r8
add    %rsi,%r8
mov    %rdx,%rsi
xor    %rcx,%rsi
and    %r8,%rsi
xor    %rcx,%rsi
mov    0x30(%r9),%r12
add    %r12,%rax
mov    %r12,-0x10(%rsp)
add    %rsi,%rax
add    %r14,%rax
add    $0x22abe842,%rax
mov    %rax,%r11
shl    $0x11,%r11
shr    $0xf,%eax
add    %r8,%r11
add    %rax,%r11
mov    %r8,%rax
xor    %rdx,%rax
and    %r11,%rax
xor    %rdx,%rax
mov    0x38(%r9),%rsi
mov    %rsi,-0x18(%rsp)
add    %rsi,%rcx
add    %rax,%rcx
lea    (%r14,%rcx,1),%rax
add    $0x77c23730,%rax
mov    %rax,%rcx
shl    $0x16,%rcx
shr    $0xa,%eax
add    %r11,%rcx
add    %rax,%rcx
mov    %r11,%rax
xor    %r8,%rax
and    %rcx,%rax
xor    %r8,%rax
mov    0x40(%r9),%rsi
mov    %rsi,-0x60(%rsp)
add    %rsi,%rdx
add    %rdx,%rax
add    $0x698098d8,%rax
mov    %rax,%r15
shl    $0x7,%r15
shr    $0x19,%eax
add    %rcx,%r15
add    %rax,%r15
mov    %rcx,%rax
xor    %r11,%rax
and    %r15,%rax
xor    %r11,%rax
mov    0x48(%r9),%r10
add    %r10,%r8
add    %rax,%r8
lea    (%r14,%r8,1),%rdx
add    $0x5c099de,%rdx
mov    %rdx,%rax
shl    $0xc,%rax
shr    $0x14,%edx
add    %r15,%rax
add    %rdx,%rax
mov    %r15,%rdx
xor    %rcx,%rdx
and    %rax,%rdx
xor    %rcx,%rdx
mov    0x50(%r9),%rsi
add    %rsi,%r11
mov    %rsi,%rbp
mov    %rsi,-0x38(%rsp)
add    %rdx,%r11
lea    (%r14,%r11,1),%rdx
add    $0x7a7afde0,%rdx
mov    %rdx,%r11
shl    $0x11,%r11
shr    $0xf,%edx
add    %rax,%r11
add    %rdx,%r11
mov    %rax,%rdx
xor    %r15,%rdx
and    %r11,%rdx
xor    %r15,%rdx
mov    0x58(%r9),%rsi
add    %rsi,%rcx
mov    %rsi,%r8
mov    %rsi,-0x40(%rsp)
add    %rdx,%rcx
add    %r14,%rcx
add    $0x3d879ed,%rcx
mov    %rcx,%rdx
shl    $0x16,%rdx
shr    $0xa,%ecx
add    %r11,%rdx
add    %rcx,%rdx
mov    %r11,%rcx
xor    %rax,%rcx
and    %rdx,%rcx
xor    %rax,%rcx
mov    0x60(%r9),%rsi
mov    %rsi,-0x28(%rsp)
add    %rsi,%r15
lea    (%rcx,%r15,1),%rsi
add    $0x6b901122,%rsi
mov    %rsi,%rcx
shl    $0x7,%rcx
shr    $0x19,%esi
add    %rdx,%rcx
add    %rsi,%rcx
mov    %rdx,%rsi
xor    %r11,%rsi
and    %rcx,%rsi
xor    %r11,%rsi
mov    0x68(%r9),%r13
add    %r13,%rax
add    %rsi,%rax
lea    (%r14,%rax,1),%rsi
add    $0x781413c2,%rsi
mov    %rsi,%rax
shl    $0xc,%rax
shr    $0x14,%esi
add    %rcx,%rax
add    %rsi,%rax
mov    %rcx,%rsi
xor    %rdx,%rsi
and    %rax,%rsi
xor    %rdx,%rsi
mov    0x70(%r9),%rdi
mov    %rdi,-0x78(%rsp)
add    %rdi,%r11
add    %rsi,%r11
lea    (%r14,%r11,1),%rdi
add    $0x20f4e5bd,%rdi
mov    %rdi,%rsi
shl    $0x11,%rsi
shr    $0xf,%edi
add    %rax,%rsi
add    %rdi,%rsi
mov    %rax,%rdi
xor    %rcx,%rdi
and    %rsi,%rdi
xor    %rcx,%rdi
mov    0x78(%r9),%rbx
add    %rbx,%rdx
mov    %rbx,-0x20(%rsp)
add    %rdx,%rdi
add    $0x49b40821,%rdi
mov    %rdi,%rdx
shl    $0x16,%rdx
shr    $0xa,%edi
add    %rsi,%rdx
add    %rdi,%rdx
mov    %rdx,%rdi
xor    %rsi,%rdi
and    %rax,%rdi
xor    %rsi,%rdi
add    -0x80(%rsp),%rcx
add    %rdi,%rcx
lea    (%r14,%rcx,1),%rdi
add    $0x7099c791,%rdi
mov    %rdi,%rcx
shl    $0x5,%rcx
shr    $0x1b,%edi
add    %rdx,%rcx
add    %rdi,%rcx
mov    %rcx,%rdi
xor    %rdx,%rdi
and    %rsi,%rdi
xor    %rdx,%rdi
add    %r12,%rax
add    %rdi,%rax
add    %r14,%rax
add    $0x3abc556f,%rax
mov    %rax,%r9
shl    $0x9,%r9
shr    $0x17,%eax
add    %rcx,%r9
add    %rax,%r9
mov    %r9,%rax
xor    %rcx,%rax
and    %rdx,%rax
xor    %rcx,%rax
add    %r8,%rsi
add    %rax,%rsi
add    $0x265e5a51,%rsi
mov    %rsi,%rax
shl    $0xe,%rax
shr    $0x12,%esi
add    %r9,%rax
add    %rsi,%rax
mov    %rax,%rsi
xor    %r9,%rsi
and    %rcx,%rsi
xor    %r9,%rsi
add    -0x48(%rsp),%rdx
add    %rsi,%rdx
lea    (%r14,%rdx,1),%rsi
add    $0x643269d9,%rsi
mov    %rsi,%rdx
shl    $0x14,%rdx
shr    $0xc,%esi
add    %rax,%rdx
add    %rsi,%rdx
mov    %rdx,%rsi
xor    %rax,%rsi
and    %r9,%rsi
xor    %rax,%rsi
mov    -0x70(%rsp),%r11
add    %r11,%rcx
add    %rsi,%rcx
add    %r14,%rcx
add    $0x50aab28c,%rcx
mov    %rcx,%rsi
shl    $0x5,%rsi
shr    $0x1b,%ecx
add    %rdx,%rsi
add    %rcx,%rsi
mov    %rsi,%rcx
xor    %rdx,%rcx
and    %rax,%rcx
xor    %rdx,%rcx
add    %rbp,%r9
lea    (%rcx,%r9,1),%rdi
add    $0x2441453,%rdi
mov    %rdi,%rcx
shl    $0x9,%rcx
shr    $0x17,%edi
add    %rsi,%rcx
add    %rdi,%rcx
mov    %rcx,%rdi
xor    %rsi,%rdi
and    %rdx,%rdi
xor    %rsi,%rdi
add    %rbx,%rax
add    %rdi,%rax
lea    (%r14,%rax,1),%rdi
add    $0x531d88b0,%rdi
mov    %rdi,%rax
shl    $0xe,%rax
shr    $0x12,%edi
add    %rcx,%rax
add    %rdi,%rax
mov    %rax,%rdi
xor    %rcx,%rdi
and    %rsi,%rdi
xor    %rcx,%rdi
mov    -0x58(%rsp),%r15
add    %r15,%rdx
add    %rdi,%rdx
add    %r14,%rdx
add    $0x624f9df7,%rdx
mov    %rdx,%r9
shl    $0x14,%r9
shr    $0xc,%edx
add    %rax,%r9
add    %rdx,%r9
mov    %r9,%rdx
xor    %rax,%rdx
and    %rcx,%rdx
xor    %rax,%rdx
mov    %r10,-0x68(%rsp)
add    %r10,%rsi
add    %rdx,%rsi
add    $0x21e1cde6,%rsi
mov    %rsi,%rdx
shl    $0x5,%rdx
shr    $0x1b,%esi
add    %r9,%rdx
add    %rsi,%rdx
mov    %rdx,%rsi
xor    %r9,%rsi
and    %rax,%rsi
xor    %r9,%rsi
mov    -0x78(%rsp),%r10
add    %r10,%rcx
add    %rsi,%rcx
lea    (%r14,%rcx,1),%rsi
add    $0x3db2aa05,%rsi
mov    %rsi,%rcx
shl    $0x9,%rcx
shr    $0x17,%esi
add    %rdx,%rcx
add    %rsi,%rcx
mov    %rcx,%rsi
xor    %rdx,%rsi
and    %r9,%rsi
xor    %rdx,%rsi
add    -0x50(%rsp),%rax
add    %rsi,%rax
add    %r14,%rax
add    $0x6f50afb6,%rax
mov    %rax,%rsi
shl    $0xe,%rsi
shr    $0x12,%eax
add    %rcx,%rsi
add    %rax,%rsi
mov    %rsi,%rax
xor    %rcx,%rax
and    %rdx,%rax
xor    %rcx,%rax
mov    -0x60(%rsp),%rbx
add    %rbx,%r9
lea    (%rax,%r9,1),%rdi
add    $0x455a14ed,%rdi
mov    %rdi,%rax
shl    $0x14,%rax
shr    $0xc,%edi
add    %rsi,%rax
add    %rdi,%rax
mov    %rax,%rdi
xor    %rsi,%rdi
and    %rcx,%rdi
xor    %rsi,%rdi
add    %r13,%rdx
mov    %r13,-0x30(%rsp)
add    %rdi,%rdx
lea    (%r14,%rdx,1),%rdi
add    $0x245f8b34,%rdi
mov    %rdi,%rdx
shl    $0x5,%rdx
shr    $0x1b,%edi
add    %rax,%rdx
add    %rdi,%rdx
mov    %rdx,%rdi
xor    %rax,%rdi
and    %rsi,%rdi
xor    %rax,%rdi
mov    -0x8(%rsp),%r12
add    %r12,%rcx
add    %rdi,%rcx
lea    (%r14,%rcx,1),%rdi
add    $0x776b4627,%rdi
mov    %rdi,%rcx
shl    $0x9,%rcx
shr    $0x17,%edi
add    %rdx,%rcx
add    %rdi,%rcx
mov    %rcx,%rdi
xor    %rdx,%rdi
and    %rax,%rdi
xor    %rdx,%rdi
mov    -0x18(%rsp),%r8
add    %r8,%rsi
add    %rdi,%rsi
add    $0x676f02d9,%rsi
mov    %rsi,%r9
shl    $0xe,%r9
shr    $0x12,%esi
add    %rcx,%r9
add    %rsi,%r9
mov    %r9,%rdi
xor    %rcx,%rdi
mov    %rdi,%rsi
and    %rdx,%rsi
xor    %rcx,%rsi
mov    -0x28(%rsp),%rbp
add    %rbp,%rax
add    %rsi,%rax
add    %r14,%rax
add    $0x7a5eeb9,%rax
mov    %rax,%rsi
shl    $0x14,%rsi
shr    $0xc,%eax
add    %r9,%rsi
add    %rax,%rsi
xor    %rsi,%rdi
add    %r11,%rdx
add    %rdi,%rdx
add    %r14,%rdx
add    $0x7a75db71,%rdx
mov    %rdx,%rax
shl    $0x4,%rax
shr    $0x1c,%edx
add    %rsi,%rax
add    %rdx,%rax
mov    %rsi,%rdx
xor    %r9,%rdx
xor    %rax,%rdx
add    %rbx,%rcx
add    %rdx,%rcx
add    %r14,%rcx
add    $0x1ed98b0,%rcx
mov    %rcx,%rdi
shl    $0xb,%rdi
shr    $0x15,%ecx
add    %rax,%rdi
add    %rcx,%rdi
mov    %rax,%rcx
xor    %rsi,%rcx
xor    %rdi,%rcx
add    -0x40(%rsp),%r9
lea    (%rcx,%r9,1),%rdx
add    $0x6d9d6122,%rdx
mov    %rdx,%rcx
shl    $0x10,%rcx
shr    $0x10,%edx
add    %rdi,%rcx
add    %rdx,%rcx
mov    %rdi,%rdx
xor    %rax,%rdx
xor    %rcx,%rdx
add    %r10,%rsi
add    %rdx,%rsi
add    %r14,%rsi
add    $0x7860da3b,%rsi
mov    %rsi,%rdx
shl    $0x17,%rdx
shr    $0x9,%esi
add    %rcx,%rdx
add    %rsi,%rdx
mov    %rcx,%rsi
xor    %rdi,%rsi
xor    %rdx,%rsi
add    -0x80(%rsp),%rax
add    %rsi,%rax
add    %r14,%rax
add    $0x1f3a8c73,%rax
mov    %rax,%rsi
shl    $0x4,%rsi
shr    $0x1c,%eax
add    %rdx,%rsi
add    %rax,%rsi
mov    %rdx,%rax
xor    %rcx,%rax
xor    %rsi,%rax
add    %r15,%rdi
add    %rax,%rdi
add    $0x4bdecfa9,%rdi
mov    %rdi,%rax
shl    $0xb,%rax
shr    $0x15,%edi
add    %rsi,%rax
add    %rdi,%rax
mov    %rsi,%rdi
xor    %rdx,%rdi
xor    %rax,%rdi
add    %r8,%rcx
add    %rdi,%rcx
lea    (%r14,%rcx,1),%rdi
add    $0x7136ed8f,%rdi
mov    %rdi,%rcx
shl    $0x10,%rcx
shr    $0x10,%edi
add    %rax,%rcx
add    %rdi,%rcx
mov    %rax,%rdi
xor    %rsi,%rdi
xor    %rcx,%rdi
mov    -0x38(%rsp),%r11
add    %r11,%rdx
add    %rdi,%rdx
add    %r14,%rdx
add    $0x393b5e9f,%rdx
mov    %rdx,%rdi
shl    $0x17,%rdi
shr    $0x9,%edx
add    %rcx,%rdi
add    %rdx,%rdi
mov    %rcx,%rdx
xor    %rax,%rdx
xor    %rdi,%rdx
add    %r13,%rsi
add    %rdx,%rsi
add    $0x289b7ec6,%rsi
mov    %rsi,%rdx
shl    $0x4,%rdx
shr    $0x1c,%esi
add    %rdi,%rdx
add    %rsi,%rdx
mov    %rdi,%rsi
xor    %rcx,%rsi
xor    %rdx,%rsi
mov    -0x48(%rsp),%rbx
add    %rbx,%rax
add    %rsi,%rax
lea    (%r14,%rax,1),%rsi
add    $0x651cca29,%rsi
mov    %rsi,%rax
shl    $0xb,%rax
shr    $0x15,%esi
add    %rdx,%rax
add    %rsi,%rax
mov    %rdx,%rsi
xor    %rdi,%rsi
xor    %rax,%rsi
mov    -0x50(%rsp),%r15
add    %r15,%rcx
add    %rsi,%rcx
lea    (%r14,%rcx,1),%rsi
add    $0x4f6ad2b4,%rsi
mov    %rsi,%rcx
shl    $0x10,%rcx
shr    $0x10,%esi
add    %rax,%rcx
add    %rsi,%rcx
mov    %rax,%rsi
xor    %rdx,%rsi
xor    %rcx,%rsi
mov    -0x10(%rsp),%r10
add    %r10,%rdi
add    %rsi,%rdi
add    $0x4881d05,%rdi
mov    %rdi,%rsi
shl    $0x17,%rsi
shr    $0x9,%edi
add    %rcx,%rsi
add    %rdi,%rsi
mov    %rcx,%rdi
xor    %rax,%rdi
xor    %rsi,%rdi
add    -0x68(%rsp),%rdx
add    %rdi,%rdx
add    %r14,%rdx
add    $0x54507268,%rdx
mov    %rdx,%r9
shl    $0x4,%r9
shr    $0x1c,%edx
add    %rsi,%r9
add    %rdx,%r9
mov    %rsi,%rdx
xor    %rcx,%rdx
xor    %r9,%rdx
mov    %rbp,%rdi
add    %rbp,%rax
add    %rdx,%rax
add    %r14,%rax
add    $0x61573c14,%rax
mov    %rax,%rdx
shl    $0xb,%rdx
shr    $0x15,%eax
add    %r9,%rdx
add    %rax,%rdx
mov    %r9,%rax
xor    %rsi,%rax
xor    %rdx,%rax
mov    -0x20(%rsp),%rbp
add    %rbp,%rcx
add    %rcx,%rax
add    $0x1fa27cf8,%rax
mov    %rax,%rcx
shl    $0x10,%rcx
shr    $0x10,%eax
add    %rdx,%rcx
add    %rax,%rcx
mov    %rdx,%rax
xor    %r9,%rax
xor    %rcx,%rax
add    %r12,%rsi
add    %rax,%rsi
add    %r14,%rsi
add    $0x3f27f894,%rsi
mov    %rsi,%rax
shl    $0x17,%rax
shr    $0x9,%esi
add    %rcx,%rax
add    %rsi,%rax
add    %rbx,%r9
mov    %rdx,%rsi
not    %rsi
or     %rax,%rsi
xor    %rcx,%rsi
add    %rsi,%r9
lea    (%r14,%r9,1),%rsi
add    $0x6ea4c473,%rsi
mov    %rsi,%r9
shl    $0x6,%r9
shr    $0x1a,%esi
add    %rax,%r9
add    %rsi,%r9
add    %r8,%rdx
mov    %rcx,%rsi
not    %rsi
or     %r9,%rsi
xor    %rax,%rsi
add    %rdx,%rsi
add    $0x432aff97,%rsi
mov    %rsi,%rdx
shl    $0xa,%rdx
shr    $0x16,%esi
add    %r9,%rdx
add    %rsi,%rdx
add    -0x78(%rsp),%rcx
mov    %rax,%rsi
not    %rsi
or     %rdx,%rsi
xor    %r9,%rsi
add    %rsi,%rcx
add    %r14,%rcx
add    $0x260fc5d6,%rcx
mov    %rcx,%rsi
shl    $0xf,%rsi
shr    $0x11,%ecx
add    %rdx,%rsi
add    %rcx,%rsi
add    -0x70(%rsp),%rax
mov    %r9,%rcx
not    %rcx
or     %rsi,%rcx
xor    %rdx,%rcx
add    %rcx,%rax
add    %r14,%rax
add    $0x770f4268,%rax
mov    %rax,%rcx
shl    $0x15,%rcx
shr    $0xb,%eax
add    %rsi,%rcx
add    %rax,%rcx
add    %rdi,%r9
mov    %rdx,%rax
not    %rax
or     %rcx,%rax
xor    %rsi,%rax
lea    (%rax,%r9,1),%rdi
add    $0x655b59c3,%rdi
mov    %rdi,%rax
shl    $0x6,%rax
shr    $0x1a,%edi
add    %rcx,%rax
add    %rdi,%rax
add    %r15,%rdx
mov    %rsi,%rdi
not    %rdi
or     %rax,%rdi
xor    %rcx,%rdi
add    %rdi,%rdx
lea    (%r14,%rdx,1),%rdi
add    $0x9886ec1,%rdi
mov    %rdi,%rdx
shl    $0xa,%rdx
shr    $0x16,%edi
add    %rax,%rdx
add    %rdi,%rdx
add    %r11,%rsi
mov    %rcx,%rdi
not    %rdi
or     %rdx,%rdi
xor    %rax,%rdi
add    %rdi,%rsi
add    %r14,%rsi
add    $0x7a6b96ac,%rsi
mov    %rsi,%rbx
shl    $0xf,%rbx
shr    $0x11,%esi
add    %rdx,%rbx
add    %rsi,%rbx
add    -0x80(%rsp),%rcx
mov    %rax,%rsi
not    %rsi
or     %rbx,%rsi
xor    %rdx,%rsi
add    %rsi,%rcx
add    %r14,%rcx
mov    %rcx,%rsi
shl    $0x15,%rsi
shr    $0xb,%ecx
add    %rbx,%rsi
add    %rcx,%rsi
add    -0x60(%rsp),%rax
mov    %rdx,%rcx
not    %rcx
or     %rsi,%rcx
xor    %rbx,%rcx
add    %rcx,%rax
add    $0x6fa87e4f,%rax
mov    %rax,%rcx
shl    $0x6,%rcx
shr    $0x1a,%eax
add    %rsi,%rcx
add    %rax,%rcx
add    %rbp,%rdx
mov    %rbx,%rax
not    %rax
or     %rcx,%rax
xor    %rsi,%rax
add    %rax,%rdx
add    %r14,%rdx
add    $0x78a8890f,%rdx
mov    %rdx,%rax
shl    $0xa,%rax
shr    $0x16,%edx
add    %rcx,%rax
add    %rdx,%rax
add    %r10,%rbx
mov    %rsi,%rdx
not    %rdx
or     %rax,%rdx
xor    %rcx,%rdx
add    %rdx,%rbx
lea    (%r14,%rbx,1),%rdx
add    $0x1d7ce543,%rdx
mov    %rdx,%rbp
shl    $0xf,%rbp
shr    $0x11,%edx
add    %rax,%rbp
add    %rdx,%rbp
add    -0x30(%rsp),%rsi
mov    %rcx,%rdx
not    %rdx
or     %rbp,%rdx
xor    %rax,%rdx
add    %rdx,%rsi
add    $0x4e0811a1,%rsi
mov    %rsi,%rdx
shl    $0x15,%rdx
shr    $0xb,%esi
add    %rbp,%rdx
add    %rsi,%rdx
add    -0x58(%rsp),%rcx
mov    %rax,%rsi
not    %rsi
or     %rdx,%rsi
xor    %rbp,%rsi
add    %rsi,%rcx
lea    (%r14,%rcx,1),%rsi
add    $0x71cf20b1,%rsi
mov    %rsi,%rcx
shl    $0x6,%rcx
shr    $0x1a,%esi
add    %rdx,%rcx
add    %rsi,%rcx
add    -0x40(%rsp),%rax
mov    %rbp,%rsi
not    %rsi
or     %rcx,%rsi
xor    %rdx,%rsi
add    %rsi,%rax
lea    (%r14,%rax,1),%rsi
add    $0x37b69464,%rsi
mov    %rsi,%rax
shl    $0xa,%rax
shr    $0x16,%esi
add    %rcx,%rax
add    %rsi,%rax
add    %r12,%rbp
mov    %rdx,%rsi
not    %rsi
or     %rax,%rsi
xor    %rcx,%rsi
lea    (%rsi,%rbp,1),%rdi
add    $0x2ad7d2bb,%rdi
mov    %rdi,%rsi
shl    $0xf,%rsi
shr    $0x11,%edi
add    %rax,%rsi
add    %rdi,%rsi
add    -0x68(%rsp),%rdx
mov    %rcx,%rdi
not    %rdi
or     %rsi,%rdi
xor    %rax,%rdi
add    %rdi,%rdx
add    %r14,%rdx
add    $0x660275c0,%rdx
add    0x20(%rsp),%rcx
mov    0x8(%rsp),%rdi
mov    %rcx,(%rdi)
mov    %rdx,%rcx
shl    $0x15,%rcx
mov    (%rsp),%rbp
add    %rsi,%rbp
add    %rcx,%rbp
shr    $0xb,%edx
add    %rdx,%rbp
mov    %rbp,0x8(%rdi)
add    0x10(%rsp),%rsi
mov    %rsi,0x10(%rdi)
add    0x18(%rsp),%rax
mov    %rax,0x18(%rdi)
add    $0x28,%rsp
pop    %rbx
pop    %r12
pop    %r13
pop    %r14
pop    %r15
pop    %rbp
ret

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

LLVM IR (-O2):
define void @MD5_transform(i64* nocapture %0, i64* nocapture %1) {
%3 = load i64, i64* %0
%4 = getelementptr inbounds i64, i64* %0, i64 1
%5 = load i64, i64* %4
%6 = getelementptr inbounds i64, i64* %0, i64 2
%7 = load i64, i64* %6
%8 = getelementptr inbounds i64, i64* %0, i64 3
%9 = load i64, i64* %8
%10 = xor i64 %9, %7
%11 = and i64 %10, %5
%12 = xor i64 %11, %9
%13 = load i64, i64* %1
%14 = add i64 %3, 3614090360
%15 = add i64 %14, %13
%16 = add i64 %15, %12
%17 = shl i64 %16, 7
%18 = lshr i64 %16, 25
%19 = and i64 %18, 127
%20 = add i64 %17, %5
%21 = add i64 %20, %19
%22 = xor i64 %7, %5
%23 = and i64 %21, %22
%24 = xor i64 %23, %7
%25 = getelementptr inbounds i64, i64* %1, i64 1
%26 = load i64, i64* %25
%27 = add i64 %9, 3905402710
%28 = add i64 %27, %26
%29 = add i64 %28, %24
%30 = shl i64 %29, 12
%31 = lshr i64 %29, 20
%32 = and i64 %31, 4095
%33 = add i64 %30, %21
%34 = add i64 %33, %32
%35 = xor i64 %21, %5
%36 = and i64 %34, %35
%37 = xor i64 %36, %5
%38 = getelementptr inbounds i64, i64* %1, i64 2
%39 = load i64, i64* %38
%40 = add i64 %7, 606105819
%41 = add i64 %40, %39
%42 = add i64 %41, %37
%43 = shl i64 %42, 17
%44 = lshr i64 %42, 15
%45 = and i64 %44, 131071
%46 = add i64 %43, %34
%47 = add i64 %46, %45
%48 = xor i64 %34, %21
%49 = and i64 %47, %48
%50 = xor i64 %49, %21
%51 = getelementptr inbounds i64, i64* %1, i64 3
%52 = load i64, i64* %51
%53 = add i64 %5, 3250441966
%54 = add i64 %53, %52
%55 = add i64 %54, %50
%56 = shl i64 %55, 22
%57 = lshr i64 %55, 10
%58 = and i64 %57, 4194303
%59 = add i64 %56, %47
%60 = add i64 %59, %58
%61 = xor i64 %47, %34
%62 = and i64 %60, %61
%63 = xor i64 %62, %34
%64 = getelementptr inbounds i64, i64* %1, i64 4
%65 = load i64, i64* %64
%66 = add i64 %65, 4118548399
%67 = add i64 %66, %21
%68 = add i64 %67, %63
%69 = shl i64 %68, 7
%70 = lshr i64 %68, 25
%71 = and i64 %70, 127
%72 = add i64 %69, %60
%73 = add i64 %72, %71
%74 = xor i64 %60, %47
%75 = and i64 %73, %74
%76 = xor i64 %75, %47
%77 = getelementptr inbounds i64, i64* %1, i64 5
%78 = load i64, i64* %77
%79 = add i64 %78, 1200080426
%80 = add i64 %79, %34
%81 = add i64 %80, %76
%82 = shl i64 %81, 12
%83 = lshr i64 %81, 20
%84 = and i64 %83, 4095
%85 = add i64 %82, %73
%86 = add i64 %85, %84
%87 = xor i64 %73, %60
%88 = and i64 %86, %87
%89 = xor i64 %88, %60
%90 = getelementptr inbounds i64, i64* %1, i64 6
%91 = load i64, i64* %90
%92 = add i64 %91, 2821735955
%93 = add i64 %92, %47
%94 = add i64 %93, %89
%95 = shl i64 %94, 17
%96 = lshr i64 %94, 15
%97 = and i64 %96, 131071
%98 = add i64 %95, %86
%99 = add i64 %98, %97
%100 = xor i64 %86, %73
%101 = and i64 %99, %100
%102 = xor i64 %101, %73
%103 = getelementptr inbounds i64, i64* %1, i64 7
%104 = load i64, i64* %103
%105 = add i64 %104, 4249261313
%106 = add i64 %105, %60
%107 = add i64 %106, %102
%108 = shl i64 %107, 22
%109 = lshr i64 %107, 10
%110 = and i64 %109, 4194303
%111 = add i64 %108, %99
%112 = add i64 %111, %110
%113 = xor i64 %99, %86
%114 = and i64 %112, %113
%115 = xor i64 %114, %86
%116 = getelementptr inbounds i64, i64* %1, i64 8
%117 = load i64, i64* %116
%118 = add i64 %117, 1770035416
%119 = add i64 %118, %73
%120 = add i64 %119, %115
%121 = shl i64 %120, 7
%122 = lshr i64 %120, 25
%123 = and i64 %122, 127
%124 = add i64 %121, %112
%125 = add i64 %124, %123
%126 = xor i64 %112, %99
%127 = and i64 %125, %126
%128 = xor i64 %127, %99
%129 = getelementptr inbounds i64, i64* %1, i64 9
%130 = load i64, i64* %129
%131 = add i64 %130, 2336552879
%132 = add i64 %131, %86
%133 = add i64 %132, %128
%134 = shl i64 %133, 12
%135 = lshr i64 %133, 20
%136 = and i64 %135, 4095
%137 = add i64 %134, %125
%138 = add i64 %137, %136
%139 = xor i64 %125, %112
%140 = and i64 %138, %139
%141 = xor i64 %140, %112
%142 = getelementptr inbounds i64, i64* %1, i64 10
%143 = load i64, i64* %142
%144 = add i64 %143, 4294925233
%145 = add i64 %144, %99
%146 = add i64 %145, %141
%147 = shl i64 %146, 17
%148 = lshr i64 %146, 15
%149 = and i64 %148, 131071
%150 = add i64 %147, %138
%151 = add i64 %150, %149
%152 = xor i64 %138, %125
%153 = and i64 %151, %152
%154 = xor i64 %153, %125
%155 = getelementptr inbounds i64, i64* %1, i64 11
%156 = load i64, i64* %155
%157 = add i64 %156, 2304563134
%158 = add i64 %157, %112
%159 = add i64 %158, %154
%160 = shl i64 %159, 22
%161 = lshr i64 %159, 10
%162 = and i64 %161, 4194303
%163 = add i64 %160, %151
%164 = add i64 %163, %162
%165 = xor i64 %151, %138
%166 = and i64 %164, %165
%167 = xor i64 %166, %138
%168 = getelementptr inbounds i64, i64* %1, i64 12
%169 = load i64, i64* %168
%170 = add i64 %169, 1804603682
%171 = add i64 %170, %125
%172 = add i64 %171, %167
%173 = shl i64 %172, 7
%174 = lshr i64 %172, 25
%175 = and i64 %174, 127
%176 = add i64 %173, %164
%177 = add i64 %176, %175
%178 = xor i64 %164, %151
%179 = and i64 %177, %178
%180 = xor i64 %179, %151
%181 = getelementptr inbounds i64, i64* %1, i64 13
%182 = load i64, i64* %181
%183 = add i64 %182, 4254626195
%184 = add i64 %183, %138
%185 = add i64 %184, %180
%186 = shl i64 %185, 12
%187 = lshr i64 %185, 20
%188 = and i64 %187, 4095
%189 = add i64 %186, %177
%190 = add i64 %189, %188
%191 = xor i64 %177, %164
%192 = and i64 %190, %191
%193 = xor i64 %192, %164
%194 = getelementptr inbounds i64, i64* %1, i64 14
%195 = load i64, i64* %194
%196 = add i64 %195, 2792965006
%197 = add i64 %196, %151
%198 = add i64 %197, %193
%199 = shl i64 %198, 17
%200 = lshr i64 %198, 15
%201 = and i64 %200, 131071
%202 = add i64 %199, %190
%203 = add i64 %202, %201
%204 = xor i64 %190, %177
%205 = and i64 %203, %204
%206 = xor i64 %205, %177
%207 = getelementptr inbounds i64, i64* %1, i64 15
%208 = load i64, i64* %207
%209 = add i64 %208, 1236535329
%210 = add i64 %209, %164
%211 = add i64 %210, %206
%212 = shl i64 %211, 22
%213 = lshr i64 %211, 10
%214 = and i64 %213, 4194303
%215 = add i64 %212, %203
%216 = add i64 %215, %214
%217 = xor i64 %216, %203
%218 = and i64 %217, %190
%219 = xor i64 %218, %203
%220 = add i64 %26, 4129170786
%221 = add i64 %220, %177
%222 = add i64 %221, %219
%223 = shl i64 %222, 5
%224 = lshr i64 %222, 27
%225 = and i64 %224, 31
%226 = add i64 %223, %216
%227 = add i64 %226, %225
%228 = xor i64 %227, %216
%229 = and i64 %228, %203
%230 = xor i64 %229, %216
%231 = add i64 %91, 3225465664
%232 = add i64 %231, %190
%233 = add i64 %232, %230
%234 = shl i64 %233, 9
%235 = lshr i64 %233, 23
%236 = and i64 %235, 511
%237 = add i64 %234, %227
%238 = add i64 %237, %236
%239 = xor i64 %238, %227
%240 = and i64 %239, %216
%241 = xor i64 %240, %227
%242 = add i64 %156, 643717713
%243 = add i64 %242, %203
%244 = add i64 %243, %241
%245 = shl i64 %244, 14
%246 = lshr i64 %244, 18
%247 = and i64 %246, 16383
%248 = add i64 %245, %238
%249 = add i64 %248, %247
%250 = xor i64 %249, %238
%251 = and i64 %250, %227
%252 = xor i64 %251, %238
%253 = add i64 %13, 3921069994
%254 = add i64 %253, %216
%255 = add i64 %254, %252
%256 = shl i64 %255, 20
%257 = lshr i64 %255, 12
%258 = and i64 %257, 1048575
%259 = add i64 %256, %249
%260 = add i64 %259, %258
%261 = xor i64 %260, %249
%262 = and i64 %261, %238
%263 = xor i64 %262, %249
%264 = add i64 %78, 3593408605
%265 = add i64 %264, %227
%266 = add i64 %265, %263
%267 = shl i64 %266, 5
%268 = lshr i64 %266, 27
%269 = and i64 %268, 31
%270 = add i64 %267, %260
%271 = add i64 %270, %269
%272 = xor i64 %271, %260
%273 = and i64 %272, %249
%274 = xor i64 %273, %260
%275 = add i64 %143, 38016083
%276 = add i64 %275, %238
%277 = add i64 %276, %274
%278 = shl i64 %277, 9
%279 = lshr i64 %277, 23
%280 = and i64 %279, 511
%281 = add i64 %278, %271
%282 = add i64 %281, %280
%283 = xor i64 %282, %271
%284 = and i64 %283, %260
%285 = xor i64 %284, %271
%286 = add i64 %208, 3634488961
%287 = add i64 %286, %249
%288 = add i64 %287, %285
%289 = shl i64 %288, 14
%290 = lshr i64 %288, 18
%291 = and i64 %290, 16383
%292 = add i64 %289, %282
%293 = add i64 %292, %291
%294 = xor i64 %293, %282
%295 = and i64 %294, %271
%296 = xor i64 %295, %282
%297 = add i64 %65, 3889429448
%298 = add i64 %297, %260
%299 = add i64 %298, %296
%300 = shl i64 %299, 20
%301 = lshr i64 %299, 12
%302 = and i64 %301, 1048575
%303 = add i64 %300, %293
%304 = add i64 %303, %302
%305 = xor i64 %304, %293
%306 = and i64 %305, %282
%307 = xor i64 %306, %293
%308 = add i64 %130, 568446438
%309 = add i64 %308, %271
%310 = add i64 %309, %307
%311 = shl i64 %310, 5
%312 = lshr i64 %310, 27
%313 = and i64 %312, 31
%314 = add i64 %311, %304
%315 = add i64 %314, %313
%316 = xor i64 %315, %304
%317 = and i64 %316, %293
%318 = xor i64 %317, %304
%319 = add i64 %195, 3275163606
%320 = add i64 %319, %282
%321 = add i64 %320, %318
%322 = shl i64 %321, 9
%323 = lshr i64 %321, 23
%324 = and i64 %323, 511
%325 = add i64 %322, %315
%326 = add i64 %325, %324
%327 = xor i64 %326, %315
%328 = and i64 %327, %304
%329 = xor i64 %328, %315
%330 = add i64 %52, 4107603335
%331 = add i64 %330, %293
%332 = add i64 %331, %329
%333 = shl i64 %332, 14
%334 = lshr i64 %332, 18
%335 = and i64 %334, 16383
%336 = add i64 %333, %326
%337 = add i64 %336, %335
%338 = xor i64 %337, %326
%339 = and i64 %338, %315
%340 = xor i64 %339, %326
%341 = add i64 %117, 1163531501
%342 = add i64 %341, %304
%343 = add i64 %342, %340
%344 = shl i64 %343, 20
%345 = lshr i64 %343, 12
%346 = and i64 %345, 1048575
%347 = add i64 %344, %337
%348 = add i64 %347, %346
%349 = xor i64 %348, %337
%350 = and i64 %349, %326
%351 = xor i64 %350, %337
%352 = add i64 %182, 2850285829
%353 = add i64 %352, %315
%354 = add i64 %353, %351
%355 = shl i64 %354, 5
%356 = lshr i64 %354, 27
%357 = and i64 %356, 31
%358 = add i64 %355, %348
%359 = add i64 %358, %357
%360 = xor i64 %359, %348
%361 = and i64 %360, %337
%362 = xor i64 %361, %348
%363 = add i64 %39, 4243563512
%364 = add i64 %363, %326
%365 = add i64 %364, %362
%366 = shl i64 %365, 9
%367 = lshr i64 %365, 23
%368 = and i64 %367, 511
%369 = add i64 %366, %359
%370 = add i64 %369, %368
%371 = xor i64 %370, %359
%372 = and i64 %371, %348
%373 = xor i64 %372, %359
%374 = add i64 %104, 1735328473
%375 = add i64 %374, %337
%376 = add i64 %375, %373
%377 = shl i64 %376, 14
%378 = lshr i64 %376, 18
%379 = and i64 %378, 16383
%380 = add i64 %377, %370
%381 = add i64 %380, %379
%382 = xor i64 %381, %370
%383 = and i64 %382, %359
%384 = xor i64 %383, %370
%385 = add i64 %169, 2368359562
%386 = add i64 %385, %348
%387 = add i64 %386, %384
%388 = shl i64 %387, 20
%389 = lshr i64 %387, 12
%390 = and i64 %389, 1048575
%391 = add i64 %388, %381
%392 = add i64 %391, %390
%393 = xor i64 %382, %392
%394 = add i64 %78, 4294588738
%395 = add i64 %394, %359
%396 = add i64 %395, %393
%397 = shl i64 %396, 4
%398 = lshr i64 %396, 28
%399 = and i64 %398, 15
%400 = add i64 %397, %392
%401 = add i64 %400, %399
%402 = xor i64 %392, %381
%403 = xor i64 %402, %401
%404 = add i64 %117, 2272392833
%405 = add i64 %404, %370
%406 = add i64 %405, %403
%407 = shl i64 %406, 11
%408 = lshr i64 %406, 21
%409 = and i64 %408, 2047
%410 = add i64 %407, %401
%411 = add i64 %410, %409
%412 = xor i64 %401, %392
%413 = xor i64 %412, %411
%414 = add i64 %156, 1839030562
%415 = add i64 %414, %381
%416 = add i64 %415, %413
%417 = shl i64 %416, 16
%418 = lshr i64 %416, 16
%419 = and i64 %418, 65535
%420 = add i64 %417, %411
%421 = add i64 %420, %419
%422 = xor i64 %411, %401
%423 = xor i64 %422, %421
%424 = add i64 %195, 4259657740
%425 = add i64 %424, %392
%426 = add i64 %425, %423
%427 = shl i64 %426, 23
%428 = lshr i64 %426, 9
%429 = and i64 %428, 8388607
%430 = add i64 %427, %421
%431 = add i64 %430, %429
%432 = xor i64 %421, %411
%433 = xor i64 %432, %431
%434 = add i64 %26, 2763975236
%435 = add i64 %434, %401
%436 = add i64 %435, %433
%437 = shl i64 %436, 4
%438 = lshr i64 %436, 28
%439 = and i64 %438, 15
%440 = add i64 %437, %431
%441 = add i64 %440, %439
%442 = xor i64 %431, %421
%443 = xor i64 %442, %441
%444 = add i64 %65, 1272893353
%445 = add i64 %444, %411
%446 = add i64 %445, %443
%447 = shl i64 %446, 11
%448 = lshr i64 %446, 21
%449 = and i64 %448, 2047
%450 = add i64 %447, %441
%451 = add i64 %450, %449
%452 = xor i64 %441, %431
%453 = xor i64 %452, %451
%454 = add i64 %104, 4139469664
%455 = add i64 %454, %421
%456 = add i64 %455, %453
%457 = shl i64 %456, 16
%458 = lshr i64 %456, 16
%459 = and i64 %458, 65535
%460 = add i64 %457, %451
%461 = add i64 %460, %459
%462 = xor i64 %451, %441
%463 = xor i64 %462, %461
%464 = add i64 %143, 3200236656
%465 = add i64 %464, %431
%466 = add i64 %465, %463
%467 = shl i64 %466, 23
%468 = lshr i64 %466, 9
%469 = and i64 %468, 8388607
%470 = add i64 %467, %461
%471 = add i64 %470, %469
%472 = xor i64 %461, %451
%473 = xor i64 %472, %471
%474 = add i64 %182, 681279174
%475 = add i64 %474, %441
%476 = add i64 %475, %473
%477 = shl i64 %476, 4
%478 = lshr i64 %476, 28
%479 = and i64 %478, 15
%480 = add i64 %477, %471
%481 = add i64 %480, %479
%482 = xor i64 %471, %461
%483 = xor i64 %482, %481
%484 = add i64 %13, 3936430074
%485 = add i64 %484, %451
%486 = add i64 %485, %483
%487 = shl i64 %486, 11
%488 = lshr i64 %486, 21
%489 = and i64 %488, 2047
%490 = add i64 %487, %481
%491 = add i64 %490, %489
%492 = xor i64 %481, %471
%493 = xor i64 %492, %491
%494 = add i64 %52, 3572445317
%495 = add i64 %494, %461
%496 = add i64 %495, %493
%497 = shl i64 %496, 16
%498 = lshr i64 %496, 16
%499 = and i64 %498, 65535
%500 = add i64 %497, %491
%501 = add i64 %500, %499
%502 = xor i64 %491, %481
%503 = xor i64 %502, %501
%504 = add i64 %91, 76029189
%505 = add i64 %504, %471
%506 = add i64 %505, %503
%507 = shl i64 %506, 23
%508 = lshr i64 %506, 9
%509 = and i64 %508, 8388607
%510 = add i64 %507, %501
%511 = add i64 %510, %509
%512 = xor i64 %501, %491
%513 = xor i64 %512, %511
%514 = add i64 %130, 3654602809
%515 = add i64 %514, %481
%516 = add i64 %515, %513
%517 = shl i64 %516, 4
%518 = lshr i64 %516, 28
%519 = and i64 %518, 15
%520 = add i64 %517, %511
%521 = add i64 %520, %519
%522 = xor i64 %511, %501
%523 = xor i64 %522, %521
%524 = add i64 %169, 3873151461
%525 = add i64 %524, %491
%526 = add i64 %525, %523
%527 = shl i64 %526, 11
%528 = lshr i64 %526, 21
%529 = and i64 %528, 2047
%530 = add i64 %527, %521
%531 = add i64 %530, %529
%532 = xor i64 %521, %511
%533 = xor i64 %532, %531
%534 = add i64 %208, 530742520
%535 = add i64 %534, %501
%536 = add i64 %535, %533
%537 = shl i64 %536, 16
%538 = lshr i64 %536, 16
%539 = and i64 %538, 65535
%540 = add i64 %537, %531
%541 = add i64 %540, %539
%542 = xor i64 %531, %521
%543 = xor i64 %542, %541
%544 = add i64 %39, 3299628645
%545 = add i64 %544, %511
%546 = add i64 %545, %543
%547 = shl i64 %546, 23
%548 = lshr i64 %546, 9
%549 = and i64 %548, 8388607
%550 = add i64 %547, %541
%551 = add i64 %550, %549
%552 = xor i64 %531, -1
%553 = or i64 %551, %552
%554 = xor i64 %553, %541
%555 = add i64 %13, 4096336452
%556 = add i64 %555, %521
%557 = add i64 %556, %554
%558 = shl i64 %557, 6
%559 = lshr i64 %557, 26
%560 = and i64 %559, 63
%561 = add i64 %558, %551
%562 = add i64 %561, %560
%563 = xor i64 %541, -1
%564 = or i64 %562, %563
%565 = xor i64 %564, %551
%566 = add i64 %104, 1126891415
%567 = add i64 %566, %531
%568 = add i64 %567, %565
%569 = shl i64 %568, 10
%570 = lshr i64 %568, 22
%571 = and i64 %570, 1023
%572 = add i64 %569, %562
%573 = add i64 %572, %571
%574 = xor i64 %551, -1
%575 = or i64 %573, %574
%576 = xor i64 %575, %562
%577 = add i64 %195, 2878612391
%578 = add i64 %577, %541
%579 = add i64 %578, %576
%580 = shl i64 %579, 15
%581 = lshr i64 %579, 17
%582 = and i64 %581, 32767
%583 = add i64 %580, %573
%584 = add i64 %583, %582
%585 = xor i64 %562, -1
%586 = or i64 %584, %585
%587 = xor i64 %586, %573
%588 = add i64 %78, 4237533241
%589 = add i64 %588, %551
%590 = add i64 %589, %587
%591 = shl i64 %590, 21
%592 = lshr i64 %590, 11
%593 = and i64 %592, 2097151
%594 = add i64 %591, %584
%595 = add i64 %594, %593
%596 = xor i64 %573, -1
%597 = or i64 %595, %596
%598 = xor i64 %597, %584
%599 = add i64 %169, 1700485571
%600 = add i64 %599, %562
%601 = add i64 %600, %598
%602 = shl i64 %601, 6
%603 = lshr i64 %601, 26
%604 = and i64 %603, 63
%605 = add i64 %602, %595
%606 = add i64 %605, %604
%607 = xor i64 %584, -1
%608 = or i64 %606, %607
%609 = xor i64 %608, %595
%610 = add i64 %52, 2399980690
%611 = add i64 %610, %573
%612 = add i64 %611, %609
%613 = shl i64 %612, 10
%614 = lshr i64 %612, 22
%615 = and i64 %614, 1023
%616 = add i64 %613, %606
%617 = add i64 %616, %615
%618 = xor i64 %595, -1
%619 = or i64 %617, %618
%620 = xor i64 %619, %606
%621 = add i64 %143, 4293915773
%622 = add i64 %621, %584
%623 = add i64 %622, %620
%624 = shl i64 %623, 15
%625 = lshr i64 %623, 17
%626 = and i64 %625, 32767
%627 = add i64 %624, %617
%628 = add i64 %627, %626
%629 = xor i64 %606, -1
%630 = or i64 %628, %629
%631 = xor i64 %630, %617
%632 = add i64 %26, 2240044497
%633 = add i64 %632, %595
%634 = add i64 %633, %631
%635 = shl i64 %634, 21
%636 = lshr i64 %634, 11
%637 = and i64 %636, 2097151
%638 = add i64 %635, %628
%639 = add i64 %638, %637
%640 = xor i64 %617, -1
%641 = or i64 %639, %640
%642 = xor i64 %641, %628
%643 = add i64 %117, 1873313359
%644 = add i64 %643, %606
%645 = add i64 %644, %642
%646 = shl i64 %645, 6
%647 = lshr i64 %645, 26
%648 = and i64 %647, 63
%649 = add i64 %646, %639
%650 = add i64 %649, %648
%651 = xor i64 %628, -1
%652 = or i64 %650, %651
%653 = xor i64 %652, %639
%654 = add i64 %208, 4264355552
%655 = add i64 %654, %617
%656 = add i64 %655, %653
%657 = shl i64 %656, 10
%658 = lshr i64 %656, 22
%659 = and i64 %658, 1023
%660 = add i64 %657, %650
%661 = add i64 %660, %659
%662 = xor i64 %639, -1
%663 = or i64 %661, %662
%664 = xor i64 %663, %650
%665 = add i64 %91, 2734768916
%666 = add i64 %665, %628
%667 = add i64 %666, %664
%668 = shl i64 %667, 15
%669 = lshr i64 %667, 17
%670 = and i64 %669, 32767
%671 = add i64 %668, %661
%672 = add i64 %671, %670
%673 = xor i64 %650, -1
%674 = or i64 %672, %673
%675 = xor i64 %674, %661
%676 = add i64 %182, 1309151649
%677 = add i64 %676, %639
%678 = add i64 %677, %675
%679 = shl i64 %678, 21
%680 = lshr i64 %678, 11
%681 = and i64 %680, 2097151
%682 = add i64 %679, %672
%683 = add i64 %682, %681
%684 = xor i64 %661, -1
%685 = or i64 %683, %684
%686 = xor i64 %685, %672
%687 = add i64 %65, 4149444226
%688 = add i64 %687, %650
%689 = add i64 %688, %686
%690 = shl i64 %689, 6
%691 = lshr i64 %689, 26
%692 = and i64 %691, 63
%693 = add i64 %690, %683
%694 = add i64 %693, %692
%695 = xor i64 %672, -1
%696 = or i64 %694, %695
%697 = xor i64 %696, %683
%698 = add i64 %156, 3174756917
%699 = add i64 %698, %661
%700 = add i64 %699, %697
%701 = shl i64 %700, 10
%702 = lshr i64 %700, 22
%703 = and i64 %702, 1023
%704 = add i64 %701, %694
%705 = add i64 %704, %703
%706 = xor i64 %683, -1
%707 = or i64 %705, %706
%708 = xor i64 %707, %694
%709 = add i64 %39, 718787259
%710 = add i64 %709, %672
%711 = add i64 %710, %708
%712 = shl i64 %711, 15
%713 = lshr i64 %711, 17
%714 = and i64 %713, 32767
%715 = add i64 %712, %705
%716 = add i64 %715, %714
%717 = xor i64 %694, -1
%718 = or i64 %716, %717
%719 = xor i64 %718, %705
%720 = add i64 %130, 3951481745
%721 = add i64 %720, %683
%722 = add i64 %721, %719
%723 = shl i64 %722, 21
%724 = lshr i64 %722, 11
%725 = and i64 %724, 2097151
%726 = add i64 %694, %3
store i64 %726, i64* %0
%727 = add i64 %716, %5
%728 = add i64 %727, %723
%729 = add i64 %728, %725
store i64 %729, i64* %4
%730 = add i64 %716, %7
store i64 %730, i64* %6
%731 = add i64 %705, %9
store i64 %731, i64* %8
ret void
}