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


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

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

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

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