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


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

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

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

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