void md4_process_block(unsigned state[4], const unsigned *x) {
  register unsigned a, b, c, d;
  a = state[0];
  b = state[1];
  c = state[2];
  d = state[3];
  {
    (a) += (((((c)) ^ ((d))) & ((b))) ^ ((d))) + (x[0]);
    (a) = (((a)) << ((3)) ^ (((a)) >> (32 - ((3)))));
  };
  {
    (d) += (((((b)) ^ ((c))) & ((a))) ^ ((c))) + (x[1]);
    (d) = (((d)) << ((7)) ^ (((d)) >> (32 - ((7)))));
  };
  {
    (c) += (((((a)) ^ ((b))) & ((d))) ^ ((b))) + (x[2]);
    (c) = (((c)) << ((11)) ^ (((c)) >> (32 - ((11)))));
  };
  {
    (b) += (((((d)) ^ ((a))) & ((c))) ^ ((a))) + (x[3]);
    (b) = (((b)) << ((19)) ^ (((b)) >> (32 - ((19)))));
  };
  {
    (a) += (((((c)) ^ ((d))) & ((b))) ^ ((d))) + (x[4]);
    (a) = (((a)) << ((3)) ^ (((a)) >> (32 - ((3)))));
  };
  {
    (d) += (((((b)) ^ ((c))) & ((a))) ^ ((c))) + (x[5]);
    (d) = (((d)) << ((7)) ^ (((d)) >> (32 - ((7)))));
  };
  {
    (c) += (((((a)) ^ ((b))) & ((d))) ^ ((b))) + (x[6]);
    (c) = (((c)) << ((11)) ^ (((c)) >> (32 - ((11)))));
  };
  {
    (b) += (((((d)) ^ ((a))) & ((c))) ^ ((a))) + (x[7]);
    (b) = (((b)) << ((19)) ^ (((b)) >> (32 - ((19)))));
  };
  {
    (a) += (((((c)) ^ ((d))) & ((b))) ^ ((d))) + (x[8]);
    (a) = (((a)) << ((3)) ^ (((a)) >> (32 - ((3)))));
  };
  {
    (d) += (((((b)) ^ ((c))) & ((a))) ^ ((c))) + (x[9]);
    (d) = (((d)) << ((7)) ^ (((d)) >> (32 - ((7)))));
  };
  {
    (c) += (((((a)) ^ ((b))) & ((d))) ^ ((b))) + (x[10]);
    (c) = (((c)) << ((11)) ^ (((c)) >> (32 - ((11)))));
  };
  {
    (b) += (((((d)) ^ ((a))) & ((c))) ^ ((a))) + (x[11]);
    (b) = (((b)) << ((19)) ^ (((b)) >> (32 - ((19)))));
  };
  {
    (a) += (((((c)) ^ ((d))) & ((b))) ^ ((d))) + (x[12]);
    (a) = (((a)) << ((3)) ^ (((a)) >> (32 - ((3)))));
  };
  {
    (d) += (((((b)) ^ ((c))) & ((a))) ^ ((c))) + (x[13]);
    (d) = (((d)) << ((7)) ^ (((d)) >> (32 - ((7)))));
  };
  {
    (c) += (((((a)) ^ ((b))) & ((d))) ^ ((b))) + (x[14]);
    (c) = (((c)) << ((11)) ^ (((c)) >> (32 - ((11)))));
  };
  {
    (b) += (((((d)) ^ ((a))) & ((c))) ^ ((a))) + (x[15]);
    (b) = (((b)) << ((19)) ^ (((b)) >> (32 - ((19)))));
  };
  {
    (a) += ((((b)) & ((c))) | (((b)) & ((d))) | (((c)) & ((d)))) + (x[0]) +
           0x5a827999;
    (a) = (((a)) << ((3)) ^ (((a)) >> (32 - ((3)))));
  };
  {
    (d) += ((((a)) & ((b))) | (((a)) & ((c))) | (((b)) & ((c)))) + (x[4]) +
           0x5a827999;
    (d) = (((d)) << ((5)) ^ (((d)) >> (32 - ((5)))));
  };
  {
    (c) += ((((d)) & ((a))) | (((d)) & ((b))) | (((a)) & ((b)))) + (x[8]) +
           0x5a827999;
    (c) = (((c)) << ((9)) ^ (((c)) >> (32 - ((9)))));
  };
  {
    (b) += ((((c)) & ((d))) | (((c)) & ((a))) | (((d)) & ((a)))) + (x[12]) +
           0x5a827999;
    (b) = (((b)) << ((13)) ^ (((b)) >> (32 - ((13)))));
  };
  {
    (a) += ((((b)) & ((c))) | (((b)) & ((d))) | (((c)) & ((d)))) + (x[1]) +
           0x5a827999;
    (a) = (((a)) << ((3)) ^ (((a)) >> (32 - ((3)))));
  };
  {
    (d) += ((((a)) & ((b))) | (((a)) & ((c))) | (((b)) & ((c)))) + (x[5]) +
           0x5a827999;
    (d) = (((d)) << ((5)) ^ (((d)) >> (32 - ((5)))));
  };
  {
    (c) += ((((d)) & ((a))) | (((d)) & ((b))) | (((a)) & ((b)))) + (x[9]) +
           0x5a827999;
    (c) = (((c)) << ((9)) ^ (((c)) >> (32 - ((9)))));
  };
  {
    (b) += ((((c)) & ((d))) | (((c)) & ((a))) | (((d)) & ((a)))) + (x[13]) +
           0x5a827999;
    (b) = (((b)) << ((13)) ^ (((b)) >> (32 - ((13)))));
  };
  {
    (a) += ((((b)) & ((c))) | (((b)) & ((d))) | (((c)) & ((d)))) + (x[2]) +
           0x5a827999;
    (a) = (((a)) << ((3)) ^ (((a)) >> (32 - ((3)))));
  };
  {
    (d) += ((((a)) & ((b))) | (((a)) & ((c))) | (((b)) & ((c)))) + (x[6]) +
           0x5a827999;
    (d) = (((d)) << ((5)) ^ (((d)) >> (32 - ((5)))));
  };
  {
    (c) += ((((d)) & ((a))) | (((d)) & ((b))) | (((a)) & ((b)))) + (x[10]) +
           0x5a827999;
    (c) = (((c)) << ((9)) ^ (((c)) >> (32 - ((9)))));
  };
  {
    (b) += ((((c)) & ((d))) | (((c)) & ((a))) | (((d)) & ((a)))) + (x[14]) +
           0x5a827999;
    (b) = (((b)) << ((13)) ^ (((b)) >> (32 - ((13)))));
  };
  {
    (a) += ((((b)) & ((c))) | (((b)) & ((d))) | (((c)) & ((d)))) + (x[3]) +
           0x5a827999;
    (a) = (((a)) << ((3)) ^ (((a)) >> (32 - ((3)))));
  };
  {
    (d) += ((((a)) & ((b))) | (((a)) & ((c))) | (((b)) & ((c)))) + (x[7]) +
           0x5a827999;
    (d) = (((d)) << ((5)) ^ (((d)) >> (32 - ((5)))));
  };
  {
    (c) += ((((d)) & ((a))) | (((d)) & ((b))) | (((a)) & ((b)))) + (x[11]) +
           0x5a827999;
    (c) = (((c)) << ((9)) ^ (((c)) >> (32 - ((9)))));
  };
  {
    (b) += ((((c)) & ((d))) | (((c)) & ((a))) | (((d)) & ((a)))) + (x[15]) +
           0x5a827999;
    (b) = (((b)) << ((13)) ^ (((b)) >> (32 - ((13)))));
  };
  {
    (a) += (((b)) ^ ((c)) ^ ((d))) + (x[0]) + 0x6ed9eba1;
    (a) = (((a)) << ((3)) ^ (((a)) >> (32 - ((3)))));
  };
  {
    (d) += (((a)) ^ ((b)) ^ ((c))) + (x[8]) + 0x6ed9eba1;
    (d) = (((d)) << ((9)) ^ (((d)) >> (32 - ((9)))));
  };
  {
    (c) += (((d)) ^ ((a)) ^ ((b))) + (x[4]) + 0x6ed9eba1;
    (c) = (((c)) << ((11)) ^ (((c)) >> (32 - ((11)))));
  };
  {
    (b) += (((c)) ^ ((d)) ^ ((a))) + (x[12]) + 0x6ed9eba1;
    (b) = (((b)) << ((15)) ^ (((b)) >> (32 - ((15)))));
  };
  {
    (a) += (((b)) ^ ((c)) ^ ((d))) + (x[2]) + 0x6ed9eba1;
    (a) = (((a)) << ((3)) ^ (((a)) >> (32 - ((3)))));
  };
  {
    (d) += (((a)) ^ ((b)) ^ ((c))) + (x[10]) + 0x6ed9eba1;
    (d) = (((d)) << ((9)) ^ (((d)) >> (32 - ((9)))));
  };
  {
    (c) += (((d)) ^ ((a)) ^ ((b))) + (x[6]) + 0x6ed9eba1;
    (c) = (((c)) << ((11)) ^ (((c)) >> (32 - ((11)))));
  };
  {
    (b) += (((c)) ^ ((d)) ^ ((a))) + (x[14]) + 0x6ed9eba1;
    (b) = (((b)) << ((15)) ^ (((b)) >> (32 - ((15)))));
  };
  {
    (a) += (((b)) ^ ((c)) ^ ((d))) + (x[1]) + 0x6ed9eba1;
    (a) = (((a)) << ((3)) ^ (((a)) >> (32 - ((3)))));
  };
  {
    (d) += (((a)) ^ ((b)) ^ ((c))) + (x[9]) + 0x6ed9eba1;
    (d) = (((d)) << ((9)) ^ (((d)) >> (32 - ((9)))));
  };
  {
    (c) += (((d)) ^ ((a)) ^ ((b))) + (x[5]) + 0x6ed9eba1;
    (c) = (((c)) << ((11)) ^ (((c)) >> (32 - ((11)))));
  };
  {
    (b) += (((c)) ^ ((d)) ^ ((a))) + (x[13]) + 0x6ed9eba1;
    (b) = (((b)) << ((15)) ^ (((b)) >> (32 - ((15)))));
  };
  {
    (a) += (((b)) ^ ((c)) ^ ((d))) + (x[3]) + 0x6ed9eba1;
    (a) = (((a)) << ((3)) ^ (((a)) >> (32 - ((3)))));
  };
  {
    (d) += (((a)) ^ ((b)) ^ ((c))) + (x[11]) + 0x6ed9eba1;
    (d) = (((d)) << ((9)) ^ (((d)) >> (32 - ((9)))));
  };
  {
    (c) += (((d)) ^ ((a)) ^ ((b))) + (x[7]) + 0x6ed9eba1;
    (c) = (((c)) << ((11)) ^ (((c)) >> (32 - ((11)))));
  };
  {
    (b) += (((c)) ^ ((d)) ^ ((a))) + (x[15]) + 0x6ed9eba1;
    (b) = (((b)) << ((15)) ^ (((b)) >> (32 - ((15)))));
  };
  state[0] += a;
  state[1] += b;
  state[2] += c;
  state[3] += d;
}


x86 assembly (clang, -O0):
<md4_process_block>:
push   %rbp
mov    %rsp,%rbp
mov    %rdi,-0x8(%rbp)
mov    %rsi,-0x10(%rbp)
mov    -0x8(%rbp),%rax
mov    (%rax),%eax
mov    %eax,-0x14(%rbp)
mov    -0x8(%rbp),%rax
mov    0x4(%rax),%eax
mov    %eax,-0x18(%rbp)
mov    -0x8(%rbp),%rax
mov    0x8(%rax),%eax
mov    %eax,-0x1c(%rbp)
mov    -0x8(%rbp),%rax
mov    0xc(%rax),%eax
mov    %eax,-0x20(%rbp)
mov    -0x1c(%rbp),%eax
xor    -0x20(%rbp),%eax
and    -0x18(%rbp),%eax
xor    -0x20(%rbp),%eax
mov    -0x10(%rbp),%rcx
add    (%rcx),%eax
add    -0x14(%rbp),%eax
mov    %eax,-0x14(%rbp)
mov    -0x14(%rbp),%eax
shl    $0x3,%eax
mov    -0x14(%rbp),%ecx
shr    $0x1d,%ecx
xor    %ecx,%eax
mov    %eax,-0x14(%rbp)
mov    -0x18(%rbp),%eax
xor    -0x1c(%rbp),%eax
and    -0x14(%rbp),%eax
xor    -0x1c(%rbp),%eax
mov    -0x10(%rbp),%rcx
add    0x4(%rcx),%eax
add    -0x20(%rbp),%eax
mov    %eax,-0x20(%rbp)
mov    -0x20(%rbp),%eax
shl    $0x7,%eax
mov    -0x20(%rbp),%ecx
shr    $0x19,%ecx
xor    %ecx,%eax
mov    %eax,-0x20(%rbp)
mov    -0x14(%rbp),%eax
xor    -0x18(%rbp),%eax
and    -0x20(%rbp),%eax
xor    -0x18(%rbp),%eax
mov    -0x10(%rbp),%rcx
add    0x8(%rcx),%eax
add    -0x1c(%rbp),%eax
mov    %eax,-0x1c(%rbp)
mov    -0x1c(%rbp),%eax
shl    $0xb,%eax
mov    -0x1c(%rbp),%ecx
shr    $0x15,%ecx
xor    %ecx,%eax
mov    %eax,-0x1c(%rbp)
mov    -0x20(%rbp),%eax
xor    -0x14(%rbp),%eax
and    -0x1c(%rbp),%eax
xor    -0x14(%rbp),%eax
mov    -0x10(%rbp),%rcx
add    0xc(%rcx),%eax
add    -0x18(%rbp),%eax
mov    %eax,-0x18(%rbp)
mov    -0x18(%rbp),%eax
shl    $0x13,%eax
mov    -0x18(%rbp),%ecx
shr    $0xd,%ecx
xor    %ecx,%eax
mov    %eax,-0x18(%rbp)
mov    -0x1c(%rbp),%eax
xor    -0x20(%rbp),%eax
and    -0x18(%rbp),%eax
xor    -0x20(%rbp),%eax
mov    -0x10(%rbp),%rcx
add    0x10(%rcx),%eax
add    -0x14(%rbp),%eax
mov    %eax,-0x14(%rbp)
mov    -0x14(%rbp),%eax
shl    $0x3,%eax
mov    -0x14(%rbp),%ecx
shr    $0x1d,%ecx
xor    %ecx,%eax
mov    %eax,-0x14(%rbp)
mov    -0x18(%rbp),%eax
xor    -0x1c(%rbp),%eax
and    -0x14(%rbp),%eax
xor    -0x1c(%rbp),%eax
mov    -0x10(%rbp),%rcx
add    0x14(%rcx),%eax
add    -0x20(%rbp),%eax
mov    %eax,-0x20(%rbp)
mov    -0x20(%rbp),%eax
shl    $0x7,%eax
mov    -0x20(%rbp),%ecx
shr    $0x19,%ecx
xor    %ecx,%eax
mov    %eax,-0x20(%rbp)
mov    -0x14(%rbp),%eax
xor    -0x18(%rbp),%eax
and    -0x20(%rbp),%eax
xor    -0x18(%rbp),%eax
mov    -0x10(%rbp),%rcx
add    0x18(%rcx),%eax
add    -0x1c(%rbp),%eax
mov    %eax,-0x1c(%rbp)
mov    -0x1c(%rbp),%eax
shl    $0xb,%eax
mov    -0x1c(%rbp),%ecx
shr    $0x15,%ecx
xor    %ecx,%eax
mov    %eax,-0x1c(%rbp)
mov    -0x20(%rbp),%eax
xor    -0x14(%rbp),%eax
and    -0x1c(%rbp),%eax
xor    -0x14(%rbp),%eax
mov    -0x10(%rbp),%rcx
add    0x1c(%rcx),%eax
add    -0x18(%rbp),%eax
mov    %eax,-0x18(%rbp)
mov    -0x18(%rbp),%eax
shl    $0x13,%eax
mov    -0x18(%rbp),%ecx
shr    $0xd,%ecx
xor    %ecx,%eax
mov    %eax,-0x18(%rbp)
mov    -0x1c(%rbp),%eax
xor    -0x20(%rbp),%eax
and    -0x18(%rbp),%eax
xor    -0x20(%rbp),%eax
mov    -0x10(%rbp),%rcx
add    0x20(%rcx),%eax
add    -0x14(%rbp),%eax
mov    %eax,-0x14(%rbp)
mov    -0x14(%rbp),%eax
shl    $0x3,%eax
mov    -0x14(%rbp),%ecx
shr    $0x1d,%ecx
xor    %ecx,%eax
mov    %eax,-0x14(%rbp)
mov    -0x18(%rbp),%eax
xor    -0x1c(%rbp),%eax
and    -0x14(%rbp),%eax
xor    -0x1c(%rbp),%eax
mov    -0x10(%rbp),%rcx
add    0x24(%rcx),%eax
add    -0x20(%rbp),%eax
mov    %eax,-0x20(%rbp)
mov    -0x20(%rbp),%eax
shl    $0x7,%eax
mov    -0x20(%rbp),%ecx
shr    $0x19,%ecx
xor    %ecx,%eax
mov    %eax,-0x20(%rbp)
mov    -0x14(%rbp),%eax
xor    -0x18(%rbp),%eax
and    -0x20(%rbp),%eax
xor    -0x18(%rbp),%eax
mov    -0x10(%rbp),%rcx
add    0x28(%rcx),%eax
add    -0x1c(%rbp),%eax
mov    %eax,-0x1c(%rbp)
mov    -0x1c(%rbp),%eax
shl    $0xb,%eax
mov    -0x1c(%rbp),%ecx
shr    $0x15,%ecx
xor    %ecx,%eax
mov    %eax,-0x1c(%rbp)
mov    -0x20(%rbp),%eax
xor    -0x14(%rbp),%eax
and    -0x1c(%rbp),%eax
xor    -0x14(%rbp),%eax
mov    -0x10(%rbp),%rcx
add    0x2c(%rcx),%eax
add    -0x18(%rbp),%eax
mov    %eax,-0x18(%rbp)
mov    -0x18(%rbp),%eax
shl    $0x13,%eax
mov    -0x18(%rbp),%ecx
shr    $0xd,%ecx
xor    %ecx,%eax
mov    %eax,-0x18(%rbp)
mov    -0x1c(%rbp),%eax
xor    -0x20(%rbp),%eax
and    -0x18(%rbp),%eax
xor    -0x20(%rbp),%eax
mov    -0x10(%rbp),%rcx
add    0x30(%rcx),%eax
add    -0x14(%rbp),%eax
mov    %eax,-0x14(%rbp)
mov    -0x14(%rbp),%eax
shl    $0x3,%eax
mov    -0x14(%rbp),%ecx
shr    $0x1d,%ecx
xor    %ecx,%eax
mov    %eax,-0x14(%rbp)
mov    -0x18(%rbp),%eax
xor    -0x1c(%rbp),%eax
and    -0x14(%rbp),%eax
xor    -0x1c(%rbp),%eax
mov    -0x10(%rbp),%rcx
add    0x34(%rcx),%eax
add    -0x20(%rbp),%eax
mov    %eax,-0x20(%rbp)
mov    -0x20(%rbp),%eax
shl    $0x7,%eax
mov    -0x20(%rbp),%ecx
shr    $0x19,%ecx
xor    %ecx,%eax
mov    %eax,-0x20(%rbp)
mov    -0x14(%rbp),%eax
xor    -0x18(%rbp),%eax
and    -0x20(%rbp),%eax
xor    -0x18(%rbp),%eax
mov    -0x10(%rbp),%rcx
add    0x38(%rcx),%eax
add    -0x1c(%rbp),%eax
mov    %eax,-0x1c(%rbp)
mov    -0x1c(%rbp),%eax
shl    $0xb,%eax
mov    -0x1c(%rbp),%ecx
shr    $0x15,%ecx
xor    %ecx,%eax
mov    %eax,-0x1c(%rbp)
mov    -0x20(%rbp),%eax
xor    -0x14(%rbp),%eax
and    -0x1c(%rbp),%eax
xor    -0x14(%rbp),%eax
mov    -0x10(%rbp),%rcx
add    0x3c(%rcx),%eax
add    -0x18(%rbp),%eax
mov    %eax,-0x18(%rbp)
mov    -0x18(%rbp),%eax
shl    $0x13,%eax
mov    -0x18(%rbp),%ecx
shr    $0xd,%ecx
xor    %ecx,%eax
mov    %eax,-0x18(%rbp)
mov    -0x18(%rbp),%eax
and    -0x1c(%rbp),%eax
mov    -0x18(%rbp),%ecx
and    -0x20(%rbp),%ecx
or     %ecx,%eax
mov    -0x1c(%rbp),%ecx
and    -0x20(%rbp),%ecx
or     %ecx,%eax
mov    -0x10(%rbp),%rcx
add    (%rcx),%eax
add    $0x5a827999,%eax
add    -0x14(%rbp),%eax
mov    %eax,-0x14(%rbp)
mov    -0x14(%rbp),%eax
shl    $0x3,%eax
mov    -0x14(%rbp),%ecx
shr    $0x1d,%ecx
xor    %ecx,%eax
mov    %eax,-0x14(%rbp)
mov    -0x14(%rbp),%eax
and    -0x18(%rbp),%eax
mov    -0x14(%rbp),%ecx
and    -0x1c(%rbp),%ecx
or     %ecx,%eax
mov    -0x18(%rbp),%ecx
and    -0x1c(%rbp),%ecx
or     %ecx,%eax
mov    -0x10(%rbp),%rcx
add    0x10(%rcx),%eax
add    $0x5a827999,%eax
add    -0x20(%rbp),%eax
mov    %eax,-0x20(%rbp)
mov    -0x20(%rbp),%eax
shl    $0x5,%eax
mov    -0x20(%rbp),%ecx
shr    $0x1b,%ecx
xor    %ecx,%eax
mov    %eax,-0x20(%rbp)
mov    -0x20(%rbp),%eax
and    -0x14(%rbp),%eax
mov    -0x20(%rbp),%ecx
and    -0x18(%rbp),%ecx
or     %ecx,%eax
mov    -0x14(%rbp),%ecx
and    -0x18(%rbp),%ecx
or     %ecx,%eax
mov    -0x10(%rbp),%rcx
add    0x20(%rcx),%eax
add    $0x5a827999,%eax
add    -0x1c(%rbp),%eax
mov    %eax,-0x1c(%rbp)
mov    -0x1c(%rbp),%eax
shl    $0x9,%eax
mov    -0x1c(%rbp),%ecx
shr    $0x17,%ecx
xor    %ecx,%eax
mov    %eax,-0x1c(%rbp)
mov    -0x1c(%rbp),%eax
and    -0x20(%rbp),%eax
mov    -0x1c(%rbp),%ecx
and    -0x14(%rbp),%ecx
or     %ecx,%eax
mov    -0x20(%rbp),%ecx
and    -0x14(%rbp),%ecx
or     %ecx,%eax
mov    -0x10(%rbp),%rcx
add    0x30(%rcx),%eax
add    $0x5a827999,%eax
add    -0x18(%rbp),%eax
mov    %eax,-0x18(%rbp)
mov    -0x18(%rbp),%eax
shl    $0xd,%eax
mov    -0x18(%rbp),%ecx
shr    $0x13,%ecx
xor    %ecx,%eax
mov    %eax,-0x18(%rbp)
mov    -0x18(%rbp),%eax
and    -0x1c(%rbp),%eax
mov    -0x18(%rbp),%ecx
and    -0x20(%rbp),%ecx
or     %ecx,%eax
mov    -0x1c(%rbp),%ecx
and    -0x20(%rbp),%ecx
or     %ecx,%eax
mov    -0x10(%rbp),%rcx
add    0x4(%rcx),%eax
add    $0x5a827999,%eax
add    -0x14(%rbp),%eax
mov    %eax,-0x14(%rbp)
mov    -0x14(%rbp),%eax
shl    $0x3,%eax
mov    -0x14(%rbp),%ecx
shr    $0x1d,%ecx
xor    %ecx,%eax
mov    %eax,-0x14(%rbp)
mov    -0x14(%rbp),%eax
and    -0x18(%rbp),%eax
mov    -0x14(%rbp),%ecx
and    -0x1c(%rbp),%ecx
or     %ecx,%eax
mov    -0x18(%rbp),%ecx
and    -0x1c(%rbp),%ecx
or     %ecx,%eax
mov    -0x10(%rbp),%rcx
add    0x14(%rcx),%eax
add    $0x5a827999,%eax
add    -0x20(%rbp),%eax
mov    %eax,-0x20(%rbp)
mov    -0x20(%rbp),%eax
shl    $0x5,%eax
mov    -0x20(%rbp),%ecx
shr    $0x1b,%ecx
xor    %ecx,%eax
mov    %eax,-0x20(%rbp)
mov    -0x20(%rbp),%eax
and    -0x14(%rbp),%eax
mov    -0x20(%rbp),%ecx
and    -0x18(%rbp),%ecx
or     %ecx,%eax
mov    -0x14(%rbp),%ecx
and    -0x18(%rbp),%ecx
or     %ecx,%eax
mov    -0x10(%rbp),%rcx
add    0x24(%rcx),%eax
add    $0x5a827999,%eax
add    -0x1c(%rbp),%eax
mov    %eax,-0x1c(%rbp)
mov    -0x1c(%rbp),%eax
shl    $0x9,%eax
mov    -0x1c(%rbp),%ecx
shr    $0x17,%ecx
xor    %ecx,%eax
mov    %eax,-0x1c(%rbp)
mov    -0x1c(%rbp),%eax
and    -0x20(%rbp),%eax
mov    -0x1c(%rbp),%ecx
and    -0x14(%rbp),%ecx
or     %ecx,%eax
mov    -0x20(%rbp),%ecx
and    -0x14(%rbp),%ecx
or     %ecx,%eax
mov    -0x10(%rbp),%rcx
add    0x34(%rcx),%eax
add    $0x5a827999,%eax
add    -0x18(%rbp),%eax
mov    %eax,-0x18(%rbp)
mov    -0x18(%rbp),%eax
shl    $0xd,%eax
mov    -0x18(%rbp),%ecx
shr    $0x13,%ecx
xor    %ecx,%eax
mov    %eax,-0x18(%rbp)
mov    -0x18(%rbp),%eax
and    -0x1c(%rbp),%eax
mov    -0x18(%rbp),%ecx
and    -0x20(%rbp),%ecx
or     %ecx,%eax
mov    -0x1c(%rbp),%ecx
and    -0x20(%rbp),%ecx
or     %ecx,%eax
mov    -0x10(%rbp),%rcx
add    0x8(%rcx),%eax
add    $0x5a827999,%eax
add    -0x14(%rbp),%eax
mov    %eax,-0x14(%rbp)
mov    -0x14(%rbp),%eax
shl    $0x3,%eax
mov    -0x14(%rbp),%ecx
shr    $0x1d,%ecx
xor    %ecx,%eax
mov    %eax,-0x14(%rbp)
mov    -0x14(%rbp),%eax
and    -0x18(%rbp),%eax
mov    -0x14(%rbp),%ecx
and    -0x1c(%rbp),%ecx
or     %ecx,%eax
mov    -0x18(%rbp),%ecx
and    -0x1c(%rbp),%ecx
or     %ecx,%eax
mov    -0x10(%rbp),%rcx
add    0x18(%rcx),%eax
add    $0x5a827999,%eax
add    -0x20(%rbp),%eax
mov    %eax,-0x20(%rbp)
mov    -0x20(%rbp),%eax
shl    $0x5,%eax
mov    -0x20(%rbp),%ecx
shr    $0x1b,%ecx
xor    %ecx,%eax
mov    %eax,-0x20(%rbp)
mov    -0x20(%rbp),%eax
and    -0x14(%rbp),%eax
mov    -0x20(%rbp),%ecx
and    -0x18(%rbp),%ecx
or     %ecx,%eax
mov    -0x14(%rbp),%ecx
and    -0x18(%rbp),%ecx
or     %ecx,%eax
mov    -0x10(%rbp),%rcx
add    0x28(%rcx),%eax
add    $0x5a827999,%eax
add    -0x1c(%rbp),%eax
mov    %eax,-0x1c(%rbp)
mov    -0x1c(%rbp),%eax
shl    $0x9,%eax
mov    -0x1c(%rbp),%ecx
shr    $0x17,%ecx
xor    %ecx,%eax
mov    %eax,-0x1c(%rbp)
mov    -0x1c(%rbp),%eax
and    -0x20(%rbp),%eax
mov    -0x1c(%rbp),%ecx
and    -0x14(%rbp),%ecx
or     %ecx,%eax
mov    -0x20(%rbp),%ecx
and    -0x14(%rbp),%ecx
or     %ecx,%eax
mov    -0x10(%rbp),%rcx
add    0x38(%rcx),%eax
add    $0x5a827999,%eax
add    -0x18(%rbp),%eax
mov    %eax,-0x18(%rbp)
mov    -0x18(%rbp),%eax
shl    $0xd,%eax
mov    -0x18(%rbp),%ecx
shr    $0x13,%ecx
xor    %ecx,%eax
mov    %eax,-0x18(%rbp)
mov    -0x18(%rbp),%eax
and    -0x1c(%rbp),%eax
mov    -0x18(%rbp),%ecx
and    -0x20(%rbp),%ecx
or     %ecx,%eax
mov    -0x1c(%rbp),%ecx
and    -0x20(%rbp),%ecx
or     %ecx,%eax
mov    -0x10(%rbp),%rcx
add    0xc(%rcx),%eax
add    $0x5a827999,%eax
add    -0x14(%rbp),%eax
mov    %eax,-0x14(%rbp)
mov    -0x14(%rbp),%eax
shl    $0x3,%eax
mov    -0x14(%rbp),%ecx
shr    $0x1d,%ecx
xor    %ecx,%eax
mov    %eax,-0x14(%rbp)
mov    -0x14(%rbp),%eax
and    -0x18(%rbp),%eax
mov    -0x14(%rbp),%ecx
and    -0x1c(%rbp),%ecx
or     %ecx,%eax
mov    -0x18(%rbp),%ecx
and    -0x1c(%rbp),%ecx
or     %ecx,%eax
mov    -0x10(%rbp),%rcx
add    0x1c(%rcx),%eax
add    $0x5a827999,%eax
add    -0x20(%rbp),%eax
mov    %eax,-0x20(%rbp)
mov    -0x20(%rbp),%eax
shl    $0x5,%eax
mov    -0x20(%rbp),%ecx
shr    $0x1b,%ecx
xor    %ecx,%eax
mov    %eax,-0x20(%rbp)
mov    -0x20(%rbp),%eax
and    -0x14(%rbp),%eax
mov    -0x20(%rbp),%ecx
and    -0x18(%rbp),%ecx
or     %ecx,%eax
mov    -0x14(%rbp),%ecx
and    -0x18(%rbp),%ecx
or     %ecx,%eax
mov    -0x10(%rbp),%rcx
add    0x2c(%rcx),%eax
add    $0x5a827999,%eax
add    -0x1c(%rbp),%eax
mov    %eax,-0x1c(%rbp)
mov    -0x1c(%rbp),%eax
shl    $0x9,%eax
mov    -0x1c(%rbp),%ecx
shr    $0x17,%ecx
xor    %ecx,%eax
mov    %eax,-0x1c(%rbp)
mov    -0x1c(%rbp),%eax
and    -0x20(%rbp),%eax
mov    -0x1c(%rbp),%ecx
and    -0x14(%rbp),%ecx
or     %ecx,%eax
mov    -0x20(%rbp),%ecx
and    -0x14(%rbp),%ecx
or     %ecx,%eax
mov    -0x10(%rbp),%rcx
add    0x3c(%rcx),%eax
add    $0x5a827999,%eax
add    -0x18(%rbp),%eax
mov    %eax,-0x18(%rbp)
mov    -0x18(%rbp),%eax
shl    $0xd,%eax
mov    -0x18(%rbp),%ecx
shr    $0x13,%ecx
xor    %ecx,%eax
mov    %eax,-0x18(%rbp)
mov    -0x18(%rbp),%eax
xor    -0x1c(%rbp),%eax
xor    -0x20(%rbp),%eax
mov    -0x10(%rbp),%rcx
add    (%rcx),%eax
add    $0x6ed9eba1,%eax
add    -0x14(%rbp),%eax
mov    %eax,-0x14(%rbp)
mov    -0x14(%rbp),%eax
shl    $0x3,%eax
mov    -0x14(%rbp),%ecx
shr    $0x1d,%ecx
xor    %ecx,%eax
mov    %eax,-0x14(%rbp)
mov    -0x14(%rbp),%eax
xor    -0x18(%rbp),%eax
xor    -0x1c(%rbp),%eax
mov    -0x10(%rbp),%rcx
add    0x20(%rcx),%eax
add    $0x6ed9eba1,%eax
add    -0x20(%rbp),%eax
mov    %eax,-0x20(%rbp)
mov    -0x20(%rbp),%eax
shl    $0x9,%eax
mov    -0x20(%rbp),%ecx
shr    $0x17,%ecx
xor    %ecx,%eax
mov    %eax,-0x20(%rbp)
mov    -0x20(%rbp),%eax
xor    -0x14(%rbp),%eax
xor    -0x18(%rbp),%eax
mov    -0x10(%rbp),%rcx
add    0x10(%rcx),%eax
add    $0x6ed9eba1,%eax
add    -0x1c(%rbp),%eax
mov    %eax,-0x1c(%rbp)
mov    -0x1c(%rbp),%eax
shl    $0xb,%eax
mov    -0x1c(%rbp),%ecx
shr    $0x15,%ecx
xor    %ecx,%eax
mov    %eax,-0x1c(%rbp)
mov    -0x1c(%rbp),%eax
xor    -0x20(%rbp),%eax
xor    -0x14(%rbp),%eax
mov    -0x10(%rbp),%rcx
add    0x30(%rcx),%eax
add    $0x6ed9eba1,%eax
add    -0x18(%rbp),%eax
mov    %eax,-0x18(%rbp)
mov    -0x18(%rbp),%eax
shl    $0xf,%eax
mov    -0x18(%rbp),%ecx
shr    $0x11,%ecx
xor    %ecx,%eax
mov    %eax,-0x18(%rbp)
mov    -0x18(%rbp),%eax
xor    -0x1c(%rbp),%eax
xor    -0x20(%rbp),%eax
mov    -0x10(%rbp),%rcx
add    0x8(%rcx),%eax
add    $0x6ed9eba1,%eax
add    -0x14(%rbp),%eax
mov    %eax,-0x14(%rbp)
mov    -0x14(%rbp),%eax
shl    $0x3,%eax
mov    -0x14(%rbp),%ecx
shr    $0x1d,%ecx
xor    %ecx,%eax
mov    %eax,-0x14(%rbp)
mov    -0x14(%rbp),%eax
xor    -0x18(%rbp),%eax
xor    -0x1c(%rbp),%eax
mov    -0x10(%rbp),%rcx
add    0x28(%rcx),%eax
add    $0x6ed9eba1,%eax
add    -0x20(%rbp),%eax
mov    %eax,-0x20(%rbp)
mov    -0x20(%rbp),%eax
shl    $0x9,%eax
mov    -0x20(%rbp),%ecx
shr    $0x17,%ecx
xor    %ecx,%eax
mov    %eax,-0x20(%rbp)
mov    -0x20(%rbp),%eax
xor    -0x14(%rbp),%eax
xor    -0x18(%rbp),%eax
mov    -0x10(%rbp),%rcx
add    0x18(%rcx),%eax
add    $0x6ed9eba1,%eax
add    -0x1c(%rbp),%eax
mov    %eax,-0x1c(%rbp)
mov    -0x1c(%rbp),%eax
shl    $0xb,%eax
mov    -0x1c(%rbp),%ecx
shr    $0x15,%ecx
xor    %ecx,%eax
mov    %eax,-0x1c(%rbp)
mov    -0x1c(%rbp),%eax
xor    -0x20(%rbp),%eax
xor    -0x14(%rbp),%eax
mov    -0x10(%rbp),%rcx
add    0x38(%rcx),%eax
add    $0x6ed9eba1,%eax
add    -0x18(%rbp),%eax
mov    %eax,-0x18(%rbp)
mov    -0x18(%rbp),%eax
shl    $0xf,%eax
mov    -0x18(%rbp),%ecx
shr    $0x11,%ecx
xor    %ecx,%eax
mov    %eax,-0x18(%rbp)
mov    -0x18(%rbp),%eax
xor    -0x1c(%rbp),%eax
xor    -0x20(%rbp),%eax
mov    -0x10(%rbp),%rcx
add    0x4(%rcx),%eax
add    $0x6ed9eba1,%eax
add    -0x14(%rbp),%eax
mov    %eax,-0x14(%rbp)
mov    -0x14(%rbp),%eax
shl    $0x3,%eax
mov    -0x14(%rbp),%ecx
shr    $0x1d,%ecx
xor    %ecx,%eax
mov    %eax,-0x14(%rbp)
mov    -0x14(%rbp),%eax
xor    -0x18(%rbp),%eax
xor    -0x1c(%rbp),%eax
mov    -0x10(%rbp),%rcx
add    0x24(%rcx),%eax
add    $0x6ed9eba1,%eax
add    -0x20(%rbp),%eax
mov    %eax,-0x20(%rbp)
mov    -0x20(%rbp),%eax
shl    $0x9,%eax
mov    -0x20(%rbp),%ecx
shr    $0x17,%ecx
xor    %ecx,%eax
mov    %eax,-0x20(%rbp)
mov    -0x20(%rbp),%eax
xor    -0x14(%rbp),%eax
xor    -0x18(%rbp),%eax
mov    -0x10(%rbp),%rcx
add    0x14(%rcx),%eax
add    $0x6ed9eba1,%eax
add    -0x1c(%rbp),%eax
mov    %eax,-0x1c(%rbp)
mov    -0x1c(%rbp),%eax
shl    $0xb,%eax
mov    -0x1c(%rbp),%ecx
shr    $0x15,%ecx
xor    %ecx,%eax
mov    %eax,-0x1c(%rbp)
mov    -0x1c(%rbp),%eax
xor    -0x20(%rbp),%eax
xor    -0x14(%rbp),%eax
mov    -0x10(%rbp),%rcx
add    0x34(%rcx),%eax
add    $0x6ed9eba1,%eax
add    -0x18(%rbp),%eax
mov    %eax,-0x18(%rbp)
mov    -0x18(%rbp),%eax
shl    $0xf,%eax
mov    -0x18(%rbp),%ecx
shr    $0x11,%ecx
xor    %ecx,%eax
mov    %eax,-0x18(%rbp)
mov    -0x18(%rbp),%eax
xor    -0x1c(%rbp),%eax
xor    -0x20(%rbp),%eax
mov    -0x10(%rbp),%rcx
add    0xc(%rcx),%eax
add    $0x6ed9eba1,%eax
add    -0x14(%rbp),%eax
mov    %eax,-0x14(%rbp)
mov    -0x14(%rbp),%eax
shl    $0x3,%eax
mov    -0x14(%rbp),%ecx
shr    $0x1d,%ecx
xor    %ecx,%eax
mov    %eax,-0x14(%rbp)
mov    -0x14(%rbp),%eax
xor    -0x18(%rbp),%eax
xor    -0x1c(%rbp),%eax
mov    -0x10(%rbp),%rcx
add    0x2c(%rcx),%eax
add    $0x6ed9eba1,%eax
add    -0x20(%rbp),%eax
mov    %eax,-0x20(%rbp)
mov    -0x20(%rbp),%eax
shl    $0x9,%eax
mov    -0x20(%rbp),%ecx
shr    $0x17,%ecx
xor    %ecx,%eax
mov    %eax,-0x20(%rbp)
mov    -0x20(%rbp),%eax
xor    -0x14(%rbp),%eax
xor    -0x18(%rbp),%eax
mov    -0x10(%rbp),%rcx
add    0x1c(%rcx),%eax
add    $0x6ed9eba1,%eax
add    -0x1c(%rbp),%eax
mov    %eax,-0x1c(%rbp)
mov    -0x1c(%rbp),%eax
shl    $0xb,%eax
mov    -0x1c(%rbp),%ecx
shr    $0x15,%ecx
xor    %ecx,%eax
mov    %eax,-0x1c(%rbp)
mov    -0x1c(%rbp),%eax
xor    -0x20(%rbp),%eax
xor    -0x14(%rbp),%eax
mov    -0x10(%rbp),%rcx
add    0x3c(%rcx),%eax
add    $0x6ed9eba1,%eax
add    -0x18(%rbp),%eax
mov    %eax,-0x18(%rbp)
mov    -0x18(%rbp),%eax
shl    $0xf,%eax
mov    -0x18(%rbp),%ecx
shr    $0x11,%ecx
xor    %ecx,%eax
mov    %eax,-0x18(%rbp)
mov    -0x14(%rbp),%ecx
mov    -0x8(%rbp),%rax
add    (%rax),%ecx
mov    %ecx,(%rax)
mov    -0x18(%rbp),%ecx
mov    -0x8(%rbp),%rax
add    0x4(%rax),%ecx
mov    %ecx,0x4(%rax)
mov    -0x1c(%rbp),%ecx
mov    -0x8(%rbp),%rax
add    0x8(%rax),%ecx
mov    %ecx,0x8(%rax)
mov    -0x20(%rbp),%ecx
mov    -0x8(%rbp),%rax
add    0xc(%rax),%ecx
mov    %ecx,0xc(%rax)
pop    %rbp
ret

x86 assembly (clang, -O2):
<md4_process_block>:
push   %rbp
push   %r15
push   %r14
push   %r13
push   %r12
push   %rbx
mov    %rsi,%r8
mov    %rdi,-0x28(%rsp)
mov    (%rdi),%ecx
mov    %rcx,-0x8(%rsp)
mov    0x4(%rdi),%ebx
mov    0x8(%rdi),%r9d
mov    0xc(%rdi),%eax
mov    %eax,%esi
xor    %r9d,%esi
and    %ebx,%esi
xor    %eax,%esi
mov    %rax,-0x10(%rsp)
mov    (%r8),%r12d
mov    0x4(%r8),%edx
mov    %rdx,-0x48(%rsp)
add    %r12d,%ecx
mov    %r12,-0x40(%rsp)
add    %ecx,%esi
rol    $0x3,%esi
mov    %r9,%rcx
mov    %ecx,%r14d
xor    %ebx,%r14d
and    %esi,%r14d
xor    %ecx,%r14d
mov    %r9,-0x18(%rsp)
add    %edx,%r14d
add    %eax,%r14d
rol    $0x7,%r14d
mov    %esi,%ecx
xor    %ebx,%ecx
and    %r14d,%ecx
xor    %ebx,%ecx
mov    %rbx,-0x20(%rsp)
mov    0x8(%r8),%eax
mov    %rax,-0x38(%rsp)
add    %eax,%ecx
add    %r9d,%ecx
rol    $0xb,%ecx
mov    %r14d,%edx
xor    %esi,%edx
and    %ecx,%edx
xor    %esi,%edx
mov    0xc(%r8),%eax
mov    %rax,-0x30(%rsp)
add    %eax,%edx
add    %ebx,%edx
rol    $0x13,%edx
mov    %ecx,%ebp
xor    %r14d,%ebp
and    %edx,%ebp
xor    %r14d,%ebp
mov    0x10(%r8),%ebx
add    %ebx,%esi
mov    %ebx,-0x60(%rsp)
add    %ebp,%esi
rol    $0x3,%esi
mov    %edx,%ebp
xor    %ecx,%ebp
and    %esi,%ebp
xor    %ecx,%ebp
mov    0x14(%r8),%r13d
add    %r13d,%r14d
mov    %r13d,-0x54(%rsp)
add    %ebp,%r14d
rol    $0x7,%r14d
mov    %esi,%ebp
xor    %edx,%ebp
and    %r14d,%ebp
xor    %edx,%ebp
mov    0x18(%r8),%eax
mov    %eax,-0x6c(%rsp)
add    %eax,%ecx
add    %ebp,%ecx
rol    $0xb,%ecx
mov    %r14d,%ebp
xor    %esi,%ebp
and    %ecx,%ebp
xor    %esi,%ebp
mov    0x1c(%r8),%eax
mov    %eax,-0x4c(%rsp)
add    %eax,%edx
add    %ebp,%edx
rol    $0x13,%edx
mov    %ecx,%ebp
xor    %r14d,%ebp
and    %edx,%ebp
xor    %r14d,%ebp
mov    0x20(%r8),%r11d
add    %r11d,%esi
add    %ebp,%esi
rol    $0x3,%esi
mov    %edx,%ebp
xor    %ecx,%ebp
and    %esi,%ebp
xor    %ecx,%ebp
mov    0x24(%r8),%r15d
add    %r15d,%r14d
mov    %r15d,-0x5c(%rsp)
add    %ebp,%r14d
rol    $0x7,%r14d
mov    %esi,%ebp
xor    %edx,%ebp
and    %r14d,%ebp
xor    %edx,%ebp
mov    0x28(%r8),%eax
mov    %eax,-0x68(%rsp)
add    %eax,%ecx
add    %ebp,%ecx
rol    $0xb,%ecx
mov    %r14d,%ebp
xor    %esi,%ebp
and    %ecx,%ebp
xor    %esi,%ebp
mov    0x2c(%r8),%eax
mov    %eax,-0x50(%rsp)
add    %eax,%edx
add    %ebp,%edx
rol    $0x13,%edx
mov    %ecx,%ebp
xor    %r14d,%ebp
and    %edx,%ebp
xor    %r14d,%ebp
mov    0x30(%r8),%edi
add    %edi,%esi
add    %ebp,%esi
rol    $0x3,%esi
mov    %edx,%r9d
xor    %ecx,%r9d
and    %esi,%r9d
xor    %ecx,%r9d
mov    0x34(%r8),%r10d
add    %r10d,%r14d
mov    %r10d,-0x58(%rsp)
add    %r9d,%r14d
rol    $0x7,%r14d
mov    %esi,%eax
xor    %edx,%eax
and    %r14d,%eax
xor    %edx,%eax
mov    0x38(%r8),%ebp
add    %ebp,%ecx
add    %eax,%ecx
rol    $0xb,%ecx
mov    %r14d,%eax
xor    %esi,%eax
and    %ecx,%eax
xor    %esi,%eax
mov    0x3c(%r8),%r8d
mov    %r8d,-0x64(%rsp)
add    %r8d,%edx
add    %eax,%edx
rol    $0x13,%edx
mov    %edx,%r8d
and    %ecx,%r8d
mov    %edx,%eax
or     %ecx,%eax
and    %r14d,%eax
or     %r8d,%eax
add    %r12d,%esi
add    %esi,%eax
add    $0x5a827999,%eax
rol    $0x3,%eax
mov    %eax,%esi
and    %ecx,%esi
or     %r8d,%esi
mov    %eax,%r8d
and    %edx,%r8d
or     %r8d,%esi
add    %ebx,%r14d
add    %esi,%r14d
add    $0x5a827999,%r14d
rol    $0x5,%r14d
mov    %r14d,%esi
and    %edx,%esi
or     %r8d,%esi
mov    %r14d,%r8d
and    %eax,%r8d
or     %r8d,%esi
add    %r11d,%ecx
add    %esi,%ecx
add    $0x5a827999,%ecx
rol    $0x9,%ecx
mov    %ecx,%esi
and    %eax,%esi
or     %r8d,%esi
mov    %ecx,%r8d
and    %r14d,%r8d
or     %r8d,%esi
add    %edi,%edx
mov    %edi,%ebx
add    %esi,%edx
add    $0x5a827999,%edx
rol    $0xd,%edx
mov    %edx,%esi
and    %r14d,%esi
or     %r8d,%esi
mov    %edx,%r8d
and    %ecx,%r8d
or     %r8d,%esi
add    -0x48(%rsp),%eax
add    %esi,%eax
add    $0x5a827999,%eax
rol    $0x3,%eax
mov    %eax,%esi
and    %ecx,%esi
or     %r8d,%esi
mov    %eax,%r8d
and    %edx,%r8d
or     %r8d,%esi
add    %r13d,%r14d
add    %esi,%r14d
add    $0x5a827999,%r14d
rol    $0x5,%r14d
mov    %r14d,%esi
and    %edx,%esi
or     %r8d,%esi
mov    %r14d,%r8d
and    %eax,%r8d
or     %r8d,%esi
add    %r15d,%ecx
add    %esi,%ecx
add    $0x5a827999,%ecx
rol    $0x9,%ecx
mov    %ecx,%esi
and    %eax,%esi
or     %r8d,%esi
mov    %ecx,%r8d
and    %r14d,%r8d
or     %r8d,%esi
add    %r10d,%edx
add    %esi,%edx
add    $0x5a827999,%edx
rol    $0xd,%edx
mov    %edx,%esi
and    %r14d,%esi
or     %r8d,%esi
mov    %edx,%r8d
and    %ecx,%r8d
or     %r8d,%esi
mov    -0x38(%rsp),%r9
add    %r9d,%eax
add    %esi,%eax
add    $0x5a827999,%eax
rol    $0x3,%eax
mov    %eax,%esi
and    %ecx,%esi
or     %r8d,%esi
mov    %eax,%r8d
and    %edx,%r8d
or     %r8d,%esi
add    -0x6c(%rsp),%r14d
add    %esi,%r14d
add    $0x5a827999,%r14d
rol    $0x5,%r14d
mov    %r14d,%esi
and    %edx,%esi
or     %r8d,%esi
mov    %r14d,%r8d
and    %eax,%r8d
or     %r8d,%esi
mov    -0x68(%rsp),%edi
add    %edi,%ecx
add    %esi,%ecx
add    $0x5a827999,%ecx
rol    $0x9,%ecx
mov    %ecx,%esi
and    %eax,%esi
or     %r8d,%esi
mov    %ecx,%r8d
and    %r14d,%r8d
or     %r8d,%esi
add    %ebp,%edx
add    %esi,%edx
add    $0x5a827999,%edx
rol    $0xd,%edx
mov    %edx,%esi
and    %r14d,%esi
or     %r8d,%esi
mov    %edx,%r8d
and    %ecx,%r8d
or     %r8d,%esi
mov    -0x30(%rsp),%r15
add    %r15d,%eax
add    %esi,%eax
add    $0x5a827999,%eax
rol    $0x3,%eax
mov    %eax,%esi
and    %ecx,%esi
or     %r8d,%esi
mov    %eax,%r8d
and    %edx,%r8d
or     %r8d,%esi
mov    -0x4c(%rsp),%r12d
add    %r12d,%r14d
add    %esi,%r14d
add    $0x5a827999,%r14d
rol    $0x5,%r14d
mov    %r14d,%esi
and    %edx,%esi
or     %r8d,%esi
mov    %r14d,%r8d
and    %eax,%r8d
or     %r8d,%esi
mov    -0x50(%rsp),%r10d
add    %r10d,%ecx
add    %esi,%ecx
add    $0x5a827999,%ecx
rol    $0x9,%ecx
mov    %r14d,%esi
or     %eax,%esi
and    %ecx,%esi
or     %r8d,%esi
mov    -0x64(%rsp),%r13d
add    %r13d,%edx
lea    (%rsi,%rdx,1),%r8d
add    $0x5a827999,%r8d
add    -0x40(%rsp),%eax
rol    $0xd,%r8d
mov    %r8d,%edx
xor    %ecx,%edx
mov    %edx,%esi
xor    %r14d,%esi
add    %esi,%eax
add    $0x6ed9eba1,%eax
add    %r11d,%r14d
rol    $0x3,%eax
xor    %eax,%edx
lea    (%rdx,%r14,1),%r11d
add    $0x6ed9eba1,%r11d
rol    $0x9,%r11d
add    -0x60(%rsp),%ecx
mov    %eax,%edx
xor    %r8d,%edx
xor    %r11d,%edx
add    %edx,%ecx
add    $0x6ed9eba1,%ecx
add    %ebx,%r8d
rol    $0xb,%ecx
mov    %r11d,%edx
xor    %eax,%edx
xor    %ecx,%edx
add    %r8d,%edx
add    $0x6ed9eba1,%edx
rol    $0xf,%edx
add    %r9d,%eax
mov    %ecx,%esi
xor    %r11d,%esi
xor    %edx,%esi
lea    (%rsi,%rax,1),%r8d
add    $0x6ed9eba1,%r8d
add    %edi,%r11d
rol    $0x3,%r8d
mov    %edx,%eax
xor    %ecx,%eax
xor    %r8d,%eax
add    %r11d,%eax
add    $0x6ed9eba1,%eax
rol    $0x9,%eax
add    -0x6c(%rsp),%ecx
mov    %r8d,%esi
xor    %edx,%esi
xor    %eax,%esi
add    %esi,%ecx
add    $0x6ed9eba1,%ecx
add    %ebp,%edx
rol    $0xb,%ecx
mov    %eax,%esi
xor    %r8d,%esi
xor    %ecx,%esi
add    %esi,%edx
add    $0x6ed9eba1,%edx
rol    $0xf,%edx
add    -0x48(%rsp),%r8d
mov    %ecx,%esi
xor    %eax,%esi
xor    %edx,%esi
lea    (%rsi,%r8,1),%ebx
add    $0x6ed9eba1,%ebx
add    -0x5c(%rsp),%eax
rol    $0x3,%ebx
mov    %edx,%esi
xor    %ecx,%esi
xor    %ebx,%esi
add    %esi,%eax
add    $0x6ed9eba1,%eax
rol    $0x9,%eax
add    -0x54(%rsp),%ecx
mov    %ebx,%esi
xor    %edx,%esi
xor    %eax,%esi
add    %esi,%ecx
add    $0x6ed9eba1,%ecx
rol    $0xb,%ecx
add    -0x58(%rsp),%edx
mov    %eax,%esi
xor    %ebx,%esi
xor    %ecx,%esi
add    %esi,%edx
add    $0x6ed9eba1,%edx
rol    $0xf,%edx
add    %r15d,%ebx
mov    %ecx,%esi
xor    %eax,%esi
xor    %edx,%esi
lea    (%rsi,%rbx,1),%ebp
add    $0x6ed9eba1,%ebp
rol    $0x3,%ebp
add    %r10d,%eax
mov    %edx,%esi
xor    %ecx,%esi
xor    %ebp,%esi
add    %esi,%eax
add    $0x6ed9eba1,%eax
rol    $0x9,%eax
add    %r12d,%ecx
mov    %ebp,%esi
xor    %edx,%esi
xor    %eax,%esi
add    %esi,%ecx
add    $0x6ed9eba1,%ecx
rol    $0xb,%ecx
add    %r13d,%edx
mov    %eax,%esi
xor    %ebp,%esi
xor    %ecx,%esi
add    %esi,%edx
add    $0x6ed9eba1,%edx
add    -0x8(%rsp),%ebp
mov    -0x28(%rsp),%rsi
mov    %ebp,(%rsi)
rol    $0xf,%edx
add    -0x20(%rsp),%edx
mov    %edx,0x4(%rsi)
add    -0x18(%rsp),%ecx
mov    %ecx,0x8(%rsi)
add    -0x10(%rsp),%eax
mov    %eax,0xc(%rsi)
pop    %rbx
pop    %r12
pop    %r13
pop    %r14
pop    %r15
pop    %rbp
ret

LLVM IR (-O0):
define void @md4_process_block(i32* %0, i32* %1) {
%3 = alloca i32*
%4 = alloca i32*
%5 = alloca i32
%6 = alloca i32
%7 = alloca i32
%8 = alloca i32
store i32* %0, i32** %3
store i32* %1, i32** %4
%9 = load i32*, i32** %3
%10 = getelementptr inbounds i32, i32* %9, i64 0
%11 = load i32, i32* %10
store i32 %11, i32* %5
%12 = load i32*, i32** %3
%13 = getelementptr inbounds i32, i32* %12, i64 1
%14 = load i32, i32* %13
store i32 %14, i32* %6
%15 = load i32*, i32** %3
%16 = getelementptr inbounds i32, i32* %15, i64 2
%17 = load i32, i32* %16
store i32 %17, i32* %7
%18 = load i32*, i32** %3
%19 = getelementptr inbounds i32, i32* %18, i64 3
%20 = load i32, i32* %19
store i32 %20, i32* %8
%21 = load i32, i32* %7
%22 = load i32, i32* %8
%23 = xor i32 %21, %22
%24 = load i32, i32* %6
%25 = and i32 %23, %24
%26 = load i32, i32* %8
%27 = xor i32 %25, %26
%28 = load i32*, i32** %4
%29 = getelementptr inbounds i32, i32* %28, i64 0
%30 = load i32, i32* %29
%31 = add i32 %27, %30
%32 = load i32, i32* %5
%33 = add i32 %32, %31
store i32 %33, i32* %5
%34 = load i32, i32* %5
%35 = shl i32 %34, 3
%36 = load i32, i32* %5
%37 = lshr i32 %36, 29
%38 = xor i32 %35, %37
store i32 %38, i32* %5
%39 = load i32, i32* %6
%40 = load i32, i32* %7
%41 = xor i32 %39, %40
%42 = load i32, i32* %5
%43 = and i32 %41, %42
%44 = load i32, i32* %7
%45 = xor i32 %43, %44
%46 = load i32*, i32** %4
%47 = getelementptr inbounds i32, i32* %46, i64 1
%48 = load i32, i32* %47
%49 = add i32 %45, %48
%50 = load i32, i32* %8
%51 = add i32 %50, %49
store i32 %51, i32* %8
%52 = load i32, i32* %8
%53 = shl i32 %52, 7
%54 = load i32, i32* %8
%55 = lshr i32 %54, 25
%56 = xor i32 %53, %55
store i32 %56, i32* %8
%57 = load i32, i32* %5
%58 = load i32, i32* %6
%59 = xor i32 %57, %58
%60 = load i32, i32* %8
%61 = and i32 %59, %60
%62 = load i32, i32* %6
%63 = xor i32 %61, %62
%64 = load i32*, i32** %4
%65 = getelementptr inbounds i32, i32* %64, i64 2
%66 = load i32, i32* %65
%67 = add i32 %63, %66
%68 = load i32, i32* %7
%69 = add i32 %68, %67
store i32 %69, i32* %7
%70 = load i32, i32* %7
%71 = shl i32 %70, 11
%72 = load i32, i32* %7
%73 = lshr i32 %72, 21
%74 = xor i32 %71, %73
store i32 %74, i32* %7
%75 = load i32, i32* %8
%76 = load i32, i32* %5
%77 = xor i32 %75, %76
%78 = load i32, i32* %7
%79 = and i32 %77, %78
%80 = load i32, i32* %5
%81 = xor i32 %79, %80
%82 = load i32*, i32** %4
%83 = getelementptr inbounds i32, i32* %82, i64 3
%84 = load i32, i32* %83
%85 = add i32 %81, %84
%86 = load i32, i32* %6
%87 = add i32 %86, %85
store i32 %87, i32* %6
%88 = load i32, i32* %6
%89 = shl i32 %88, 19
%90 = load i32, i32* %6
%91 = lshr i32 %90, 13
%92 = xor i32 %89, %91
store i32 %92, i32* %6
%93 = load i32, i32* %7
%94 = load i32, i32* %8
%95 = xor i32 %93, %94
%96 = load i32, i32* %6
%97 = and i32 %95, %96
%98 = load i32, i32* %8
%99 = xor i32 %97, %98
%100 = load i32*, i32** %4
%101 = getelementptr inbounds i32, i32* %100, i64 4
%102 = load i32, i32* %101
%103 = add i32 %99, %102
%104 = load i32, i32* %5
%105 = add i32 %104, %103
store i32 %105, i32* %5
%106 = load i32, i32* %5
%107 = shl i32 %106, 3
%108 = load i32, i32* %5
%109 = lshr i32 %108, 29
%110 = xor i32 %107, %109
store i32 %110, i32* %5
%111 = load i32, i32* %6
%112 = load i32, i32* %7
%113 = xor i32 %111, %112
%114 = load i32, i32* %5
%115 = and i32 %113, %114
%116 = load i32, i32* %7
%117 = xor i32 %115, %116
%118 = load i32*, i32** %4
%119 = getelementptr inbounds i32, i32* %118, i64 5
%120 = load i32, i32* %119
%121 = add i32 %117, %120
%122 = load i32, i32* %8
%123 = add i32 %122, %121
store i32 %123, i32* %8
%124 = load i32, i32* %8
%125 = shl i32 %124, 7
%126 = load i32, i32* %8
%127 = lshr i32 %126, 25
%128 = xor i32 %125, %127
store i32 %128, i32* %8
%129 = load i32, i32* %5
%130 = load i32, i32* %6
%131 = xor i32 %129, %130
%132 = load i32, i32* %8
%133 = and i32 %131, %132
%134 = load i32, i32* %6
%135 = xor i32 %133, %134
%136 = load i32*, i32** %4
%137 = getelementptr inbounds i32, i32* %136, i64 6
%138 = load i32, i32* %137
%139 = add i32 %135, %138
%140 = load i32, i32* %7
%141 = add i32 %140, %139
store i32 %141, i32* %7
%142 = load i32, i32* %7
%143 = shl i32 %142, 11
%144 = load i32, i32* %7
%145 = lshr i32 %144, 21
%146 = xor i32 %143, %145
store i32 %146, i32* %7
%147 = load i32, i32* %8
%148 = load i32, i32* %5
%149 = xor i32 %147, %148
%150 = load i32, i32* %7
%151 = and i32 %149, %150
%152 = load i32, i32* %5
%153 = xor i32 %151, %152
%154 = load i32*, i32** %4
%155 = getelementptr inbounds i32, i32* %154, i64 7
%156 = load i32, i32* %155
%157 = add i32 %153, %156
%158 = load i32, i32* %6
%159 = add i32 %158, %157
store i32 %159, i32* %6
%160 = load i32, i32* %6
%161 = shl i32 %160, 19
%162 = load i32, i32* %6
%163 = lshr i32 %162, 13
%164 = xor i32 %161, %163
store i32 %164, i32* %6
%165 = load i32, i32* %7
%166 = load i32, i32* %8
%167 = xor i32 %165, %166
%168 = load i32, i32* %6
%169 = and i32 %167, %168
%170 = load i32, i32* %8
%171 = xor i32 %169, %170
%172 = load i32*, i32** %4
%173 = getelementptr inbounds i32, i32* %172, i64 8
%174 = load i32, i32* %173
%175 = add i32 %171, %174
%176 = load i32, i32* %5
%177 = add i32 %176, %175
store i32 %177, i32* %5
%178 = load i32, i32* %5
%179 = shl i32 %178, 3
%180 = load i32, i32* %5
%181 = lshr i32 %180, 29
%182 = xor i32 %179, %181
store i32 %182, i32* %5
%183 = load i32, i32* %6
%184 = load i32, i32* %7
%185 = xor i32 %183, %184
%186 = load i32, i32* %5
%187 = and i32 %185, %186
%188 = load i32, i32* %7
%189 = xor i32 %187, %188
%190 = load i32*, i32** %4
%191 = getelementptr inbounds i32, i32* %190, i64 9
%192 = load i32, i32* %191
%193 = add i32 %189, %192
%194 = load i32, i32* %8
%195 = add i32 %194, %193
store i32 %195, i32* %8
%196 = load i32, i32* %8
%197 = shl i32 %196, 7
%198 = load i32, i32* %8
%199 = lshr i32 %198, 25
%200 = xor i32 %197, %199
store i32 %200, i32* %8
%201 = load i32, i32* %5
%202 = load i32, i32* %6
%203 = xor i32 %201, %202
%204 = load i32, i32* %8
%205 = and i32 %203, %204
%206 = load i32, i32* %6
%207 = xor i32 %205, %206
%208 = load i32*, i32** %4
%209 = getelementptr inbounds i32, i32* %208, i64 10
%210 = load i32, i32* %209
%211 = add i32 %207, %210
%212 = load i32, i32* %7
%213 = add i32 %212, %211
store i32 %213, i32* %7
%214 = load i32, i32* %7
%215 = shl i32 %214, 11
%216 = load i32, i32* %7
%217 = lshr i32 %216, 21
%218 = xor i32 %215, %217
store i32 %218, i32* %7
%219 = load i32, i32* %8
%220 = load i32, i32* %5
%221 = xor i32 %219, %220
%222 = load i32, i32* %7
%223 = and i32 %221, %222
%224 = load i32, i32* %5
%225 = xor i32 %223, %224
%226 = load i32*, i32** %4
%227 = getelementptr inbounds i32, i32* %226, i64 11
%228 = load i32, i32* %227
%229 = add i32 %225, %228
%230 = load i32, i32* %6
%231 = add i32 %230, %229
store i32 %231, i32* %6
%232 = load i32, i32* %6
%233 = shl i32 %232, 19
%234 = load i32, i32* %6
%235 = lshr i32 %234, 13
%236 = xor i32 %233, %235
store i32 %236, i32* %6
%237 = load i32, i32* %7
%238 = load i32, i32* %8
%239 = xor i32 %237, %238
%240 = load i32, i32* %6
%241 = and i32 %239, %240
%242 = load i32, i32* %8
%243 = xor i32 %241, %242
%244 = load i32*, i32** %4
%245 = getelementptr inbounds i32, i32* %244, i64 12
%246 = load i32, i32* %245
%247 = add i32 %243, %246
%248 = load i32, i32* %5
%249 = add i32 %248, %247
store i32 %249, i32* %5
%250 = load i32, i32* %5
%251 = shl i32 %250, 3
%252 = load i32, i32* %5
%253 = lshr i32 %252, 29
%254 = xor i32 %251, %253
store i32 %254, i32* %5
%255 = load i32, i32* %6
%256 = load i32, i32* %7
%257 = xor i32 %255, %256
%258 = load i32, i32* %5
%259 = and i32 %257, %258
%260 = load i32, i32* %7
%261 = xor i32 %259, %260
%262 = load i32*, i32** %4
%263 = getelementptr inbounds i32, i32* %262, i64 13
%264 = load i32, i32* %263
%265 = add i32 %261, %264
%266 = load i32, i32* %8
%267 = add i32 %266, %265
store i32 %267, i32* %8
%268 = load i32, i32* %8
%269 = shl i32 %268, 7
%270 = load i32, i32* %8
%271 = lshr i32 %270, 25
%272 = xor i32 %269, %271
store i32 %272, i32* %8
%273 = load i32, i32* %5
%274 = load i32, i32* %6
%275 = xor i32 %273, %274
%276 = load i32, i32* %8
%277 = and i32 %275, %276
%278 = load i32, i32* %6
%279 = xor i32 %277, %278
%280 = load i32*, i32** %4
%281 = getelementptr inbounds i32, i32* %280, i64 14
%282 = load i32, i32* %281
%283 = add i32 %279, %282
%284 = load i32, i32* %7
%285 = add i32 %284, %283
store i32 %285, i32* %7
%286 = load i32, i32* %7
%287 = shl i32 %286, 11
%288 = load i32, i32* %7
%289 = lshr i32 %288, 21
%290 = xor i32 %287, %289
store i32 %290, i32* %7
%291 = load i32, i32* %8
%292 = load i32, i32* %5
%293 = xor i32 %291, %292
%294 = load i32, i32* %7
%295 = and i32 %293, %294
%296 = load i32, i32* %5
%297 = xor i32 %295, %296
%298 = load i32*, i32** %4
%299 = getelementptr inbounds i32, i32* %298, i64 15
%300 = load i32, i32* %299
%301 = add i32 %297, %300
%302 = load i32, i32* %6
%303 = add i32 %302, %301
store i32 %303, i32* %6
%304 = load i32, i32* %6
%305 = shl i32 %304, 19
%306 = load i32, i32* %6
%307 = lshr i32 %306, 13
%308 = xor i32 %305, %307
store i32 %308, i32* %6
%309 = load i32, i32* %6
%310 = load i32, i32* %7
%311 = and i32 %309, %310
%312 = load i32, i32* %6
%313 = load i32, i32* %8
%314 = and i32 %312, %313
%315 = or i32 %311, %314
%316 = load i32, i32* %7
%317 = load i32, i32* %8
%318 = and i32 %316, %317
%319 = or i32 %315, %318
%320 = load i32*, i32** %4
%321 = getelementptr inbounds i32, i32* %320, i64 0
%322 = load i32, i32* %321
%323 = add i32 %319, %322
%324 = add i32 %323, 1518500249
%325 = load i32, i32* %5
%326 = add i32 %325, %324
store i32 %326, i32* %5
%327 = load i32, i32* %5
%328 = shl i32 %327, 3
%329 = load i32, i32* %5
%330 = lshr i32 %329, 29
%331 = xor i32 %328, %330
store i32 %331, i32* %5
%332 = load i32, i32* %5
%333 = load i32, i32* %6
%334 = and i32 %332, %333
%335 = load i32, i32* %5
%336 = load i32, i32* %7
%337 = and i32 %335, %336
%338 = or i32 %334, %337
%339 = load i32, i32* %6
%340 = load i32, i32* %7
%341 = and i32 %339, %340
%342 = or i32 %338, %341
%343 = load i32*, i32** %4
%344 = getelementptr inbounds i32, i32* %343, i64 4
%345 = load i32, i32* %344
%346 = add i32 %342, %345
%347 = add i32 %346, 1518500249
%348 = load i32, i32* %8
%349 = add i32 %348, %347
store i32 %349, i32* %8
%350 = load i32, i32* %8
%351 = shl i32 %350, 5
%352 = load i32, i32* %8
%353 = lshr i32 %352, 27
%354 = xor i32 %351, %353
store i32 %354, i32* %8
%355 = load i32, i32* %8
%356 = load i32, i32* %5
%357 = and i32 %355, %356
%358 = load i32, i32* %8
%359 = load i32, i32* %6
%360 = and i32 %358, %359
%361 = or i32 %357, %360
%362 = load i32, i32* %5
%363 = load i32, i32* %6
%364 = and i32 %362, %363
%365 = or i32 %361, %364
%366 = load i32*, i32** %4
%367 = getelementptr inbounds i32, i32* %366, i64 8
%368 = load i32, i32* %367
%369 = add i32 %365, %368
%370 = add i32 %369, 1518500249
%371 = load i32, i32* %7
%372 = add i32 %371, %370
store i32 %372, i32* %7
%373 = load i32, i32* %7
%374 = shl i32 %373, 9
%375 = load i32, i32* %7
%376 = lshr i32 %375, 23
%377 = xor i32 %374, %376
store i32 %377, i32* %7
%378 = load i32, i32* %7
%379 = load i32, i32* %8
%380 = and i32 %378, %379
%381 = load i32, i32* %7
%382 = load i32, i32* %5
%383 = and i32 %381, %382
%384 = or i32 %380, %383
%385 = load i32, i32* %8
%386 = load i32, i32* %5
%387 = and i32 %385, %386
%388 = or i32 %384, %387
%389 = load i32*, i32** %4
%390 = getelementptr inbounds i32, i32* %389, i64 12
%391 = load i32, i32* %390
%392 = add i32 %388, %391
%393 = add i32 %392, 1518500249
%394 = load i32, i32* %6
%395 = add i32 %394, %393
store i32 %395, i32* %6
%396 = load i32, i32* %6
%397 = shl i32 %396, 13
%398 = load i32, i32* %6
%399 = lshr i32 %398, 19
%400 = xor i32 %397, %399
store i32 %400, i32* %6
%401 = load i32, i32* %6
%402 = load i32, i32* %7
%403 = and i32 %401, %402
%404 = load i32, i32* %6
%405 = load i32, i32* %8
%406 = and i32 %404, %405
%407 = or i32 %403, %406
%408 = load i32, i32* %7
%409 = load i32, i32* %8
%410 = and i32 %408, %409
%411 = or i32 %407, %410
%412 = load i32*, i32** %4
%413 = getelementptr inbounds i32, i32* %412, i64 1
%414 = load i32, i32* %413
%415 = add i32 %411, %414
%416 = add i32 %415, 1518500249
%417 = load i32, i32* %5
%418 = add i32 %417, %416
store i32 %418, i32* %5
%419 = load i32, i32* %5
%420 = shl i32 %419, 3
%421 = load i32, i32* %5
%422 = lshr i32 %421, 29
%423 = xor i32 %420, %422
store i32 %423, i32* %5
%424 = load i32, i32* %5
%425 = load i32, i32* %6
%426 = and i32 %424, %425
%427 = load i32, i32* %5
%428 = load i32, i32* %7
%429 = and i32 %427, %428
%430 = or i32 %426, %429
%431 = load i32, i32* %6
%432 = load i32, i32* %7
%433 = and i32 %431, %432
%434 = or i32 %430, %433
%435 = load i32*, i32** %4
%436 = getelementptr inbounds i32, i32* %435, i64 5
%437 = load i32, i32* %436
%438 = add i32 %434, %437
%439 = add i32 %438, 1518500249
%440 = load i32, i32* %8
%441 = add i32 %440, %439
store i32 %441, i32* %8
%442 = load i32, i32* %8
%443 = shl i32 %442, 5
%444 = load i32, i32* %8
%445 = lshr i32 %444, 27
%446 = xor i32 %443, %445
store i32 %446, i32* %8
%447 = load i32, i32* %8
%448 = load i32, i32* %5
%449 = and i32 %447, %448
%450 = load i32, i32* %8
%451 = load i32, i32* %6
%452 = and i32 %450, %451
%453 = or i32 %449, %452
%454 = load i32, i32* %5
%455 = load i32, i32* %6
%456 = and i32 %454, %455
%457 = or i32 %453, %456
%458 = load i32*, i32** %4
%459 = getelementptr inbounds i32, i32* %458, i64 9
%460 = load i32, i32* %459
%461 = add i32 %457, %460
%462 = add i32 %461, 1518500249
%463 = load i32, i32* %7
%464 = add i32 %463, %462
store i32 %464, i32* %7
%465 = load i32, i32* %7
%466 = shl i32 %465, 9
%467 = load i32, i32* %7
%468 = lshr i32 %467, 23
%469 = xor i32 %466, %468
store i32 %469, i32* %7
%470 = load i32, i32* %7
%471 = load i32, i32* %8
%472 = and i32 %470, %471
%473 = load i32, i32* %7
%474 = load i32, i32* %5
%475 = and i32 %473, %474
%476 = or i32 %472, %475
%477 = load i32, i32* %8
%478 = load i32, i32* %5
%479 = and i32 %477, %478
%480 = or i32 %476, %479
%481 = load i32*, i32** %4
%482 = getelementptr inbounds i32, i32* %481, i64 13
%483 = load i32, i32* %482
%484 = add i32 %480, %483
%485 = add i32 %484, 1518500249
%486 = load i32, i32* %6
%487 = add i32 %486, %485
store i32 %487, i32* %6
%488 = load i32, i32* %6
%489 = shl i32 %488, 13
%490 = load i32, i32* %6
%491 = lshr i32 %490, 19
%492 = xor i32 %489, %491
store i32 %492, i32* %6
%493 = load i32, i32* %6
%494 = load i32, i32* %7
%495 = and i32 %493, %494
%496 = load i32, i32* %6
%497 = load i32, i32* %8
%498 = and i32 %496, %497
%499 = or i32 %495, %498
%500 = load i32, i32* %7
%501 = load i32, i32* %8
%502 = and i32 %500, %501
%503 = or i32 %499, %502
%504 = load i32*, i32** %4
%505 = getelementptr inbounds i32, i32* %504, i64 2
%506 = load i32, i32* %505
%507 = add i32 %503, %506
%508 = add i32 %507, 1518500249
%509 = load i32, i32* %5
%510 = add i32 %509, %508
store i32 %510, i32* %5
%511 = load i32, i32* %5
%512 = shl i32 %511, 3
%513 = load i32, i32* %5
%514 = lshr i32 %513, 29
%515 = xor i32 %512, %514
store i32 %515, i32* %5
%516 = load i32, i32* %5
%517 = load i32, i32* %6
%518 = and i32 %516, %517
%519 = load i32, i32* %5
%520 = load i32, i32* %7
%521 = and i32 %519, %520
%522 = or i32 %518, %521
%523 = load i32, i32* %6
%524 = load i32, i32* %7
%525 = and i32 %523, %524
%526 = or i32 %522, %525
%527 = load i32*, i32** %4
%528 = getelementptr inbounds i32, i32* %527, i64 6
%529 = load i32, i32* %528
%530 = add i32 %526, %529
%531 = add i32 %530, 1518500249
%532 = load i32, i32* %8
%533 = add i32 %532, %531
store i32 %533, i32* %8
%534 = load i32, i32* %8
%535 = shl i32 %534, 5
%536 = load i32, i32* %8
%537 = lshr i32 %536, 27
%538 = xor i32 %535, %537
store i32 %538, i32* %8
%539 = load i32, i32* %8
%540 = load i32, i32* %5
%541 = and i32 %539, %540
%542 = load i32, i32* %8
%543 = load i32, i32* %6
%544 = and i32 %542, %543
%545 = or i32 %541, %544
%546 = load i32, i32* %5
%547 = load i32, i32* %6
%548 = and i32 %546, %547
%549 = or i32 %545, %548
%550 = load i32*, i32** %4
%551 = getelementptr inbounds i32, i32* %550, i64 10
%552 = load i32, i32* %551
%553 = add i32 %549, %552
%554 = add i32 %553, 1518500249
%555 = load i32, i32* %7
%556 = add i32 %555, %554
store i32 %556, i32* %7
%557 = load i32, i32* %7
%558 = shl i32 %557, 9
%559 = load i32, i32* %7
%560 = lshr i32 %559, 23
%561 = xor i32 %558, %560
store i32 %561, i32* %7
%562 = load i32, i32* %7
%563 = load i32, i32* %8
%564 = and i32 %562, %563
%565 = load i32, i32* %7
%566 = load i32, i32* %5
%567 = and i32 %565, %566
%568 = or i32 %564, %567
%569 = load i32, i32* %8
%570 = load i32, i32* %5
%571 = and i32 %569, %570
%572 = or i32 %568, %571
%573 = load i32*, i32** %4
%574 = getelementptr inbounds i32, i32* %573, i64 14
%575 = load i32, i32* %574
%576 = add i32 %572, %575
%577 = add i32 %576, 1518500249
%578 = load i32, i32* %6
%579 = add i32 %578, %577
store i32 %579, i32* %6
%580 = load i32, i32* %6
%581 = shl i32 %580, 13
%582 = load i32, i32* %6
%583 = lshr i32 %582, 19
%584 = xor i32 %581, %583
store i32 %584, i32* %6
%585 = load i32, i32* %6
%586 = load i32, i32* %7
%587 = and i32 %585, %586
%588 = load i32, i32* %6
%589 = load i32, i32* %8
%590 = and i32 %588, %589
%591 = or i32 %587, %590
%592 = load i32, i32* %7
%593 = load i32, i32* %8
%594 = and i32 %592, %593
%595 = or i32 %591, %594
%596 = load i32*, i32** %4
%597 = getelementptr inbounds i32, i32* %596, i64 3
%598 = load i32, i32* %597
%599 = add i32 %595, %598
%600 = add i32 %599, 1518500249
%601 = load i32, i32* %5
%602 = add i32 %601, %600
store i32 %602, i32* %5
%603 = load i32, i32* %5
%604 = shl i32 %603, 3
%605 = load i32, i32* %5
%606 = lshr i32 %605, 29
%607 = xor i32 %604, %606
store i32 %607, i32* %5
%608 = load i32, i32* %5
%609 = load i32, i32* %6
%610 = and i32 %608, %609
%611 = load i32, i32* %5
%612 = load i32, i32* %7
%613 = and i32 %611, %612
%614 = or i32 %610, %613
%615 = load i32, i32* %6
%616 = load i32, i32* %7
%617 = and i32 %615, %616
%618 = or i32 %614, %617
%619 = load i32*, i32** %4
%620 = getelementptr inbounds i32, i32* %619, i64 7
%621 = load i32, i32* %620
%622 = add i32 %618, %621
%623 = add i32 %622, 1518500249
%624 = load i32, i32* %8
%625 = add i32 %624, %623
store i32 %625, i32* %8
%626 = load i32, i32* %8
%627 = shl i32 %626, 5
%628 = load i32, i32* %8
%629 = lshr i32 %628, 27
%630 = xor i32 %627, %629
store i32 %630, i32* %8
%631 = load i32, i32* %8
%632 = load i32, i32* %5
%633 = and i32 %631, %632
%634 = load i32, i32* %8
%635 = load i32, i32* %6
%636 = and i32 %634, %635
%637 = or i32 %633, %636
%638 = load i32, i32* %5
%639 = load i32, i32* %6
%640 = and i32 %638, %639
%641 = or i32 %637, %640
%642 = load i32*, i32** %4
%643 = getelementptr inbounds i32, i32* %642, i64 11
%644 = load i32, i32* %643
%645 = add i32 %641, %644
%646 = add i32 %645, 1518500249
%647 = load i32, i32* %7
%648 = add i32 %647, %646
store i32 %648, i32* %7
%649 = load i32, i32* %7
%650 = shl i32 %649, 9
%651 = load i32, i32* %7
%652 = lshr i32 %651, 23
%653 = xor i32 %650, %652
store i32 %653, i32* %7
%654 = load i32, i32* %7
%655 = load i32, i32* %8
%656 = and i32 %654, %655
%657 = load i32, i32* %7
%658 = load i32, i32* %5
%659 = and i32 %657, %658
%660 = or i32 %656, %659
%661 = load i32, i32* %8
%662 = load i32, i32* %5
%663 = and i32 %661, %662
%664 = or i32 %660, %663
%665 = load i32*, i32** %4
%666 = getelementptr inbounds i32, i32* %665, i64 15
%667 = load i32, i32* %666
%668 = add i32 %664, %667
%669 = add i32 %668, 1518500249
%670 = load i32, i32* %6
%671 = add i32 %670, %669
store i32 %671, i32* %6
%672 = load i32, i32* %6
%673 = shl i32 %672, 13
%674 = load i32, i32* %6
%675 = lshr i32 %674, 19
%676 = xor i32 %673, %675
store i32 %676, i32* %6
%677 = load i32, i32* %6
%678 = load i32, i32* %7
%679 = xor i32 %677, %678
%680 = load i32, i32* %8
%681 = xor i32 %679, %680
%682 = load i32*, i32** %4
%683 = getelementptr inbounds i32, i32* %682, i64 0
%684 = load i32, i32* %683
%685 = add i32 %681, %684
%686 = add i32 %685, 1859775393
%687 = load i32, i32* %5
%688 = add i32 %687, %686
store i32 %688, i32* %5
%689 = load i32, i32* %5
%690 = shl i32 %689, 3
%691 = load i32, i32* %5
%692 = lshr i32 %691, 29
%693 = xor i32 %690, %692
store i32 %693, i32* %5
%694 = load i32, i32* %5
%695 = load i32, i32* %6
%696 = xor i32 %694, %695
%697 = load i32, i32* %7
%698 = xor i32 %696, %697
%699 = load i32*, i32** %4
%700 = getelementptr inbounds i32, i32* %699, i64 8
%701 = load i32, i32* %700
%702 = add i32 %698, %701
%703 = add i32 %702, 1859775393
%704 = load i32, i32* %8
%705 = add i32 %704, %703
store i32 %705, i32* %8
%706 = load i32, i32* %8
%707 = shl i32 %706, 9
%708 = load i32, i32* %8
%709 = lshr i32 %708, 23
%710 = xor i32 %707, %709
store i32 %710, i32* %8
%711 = load i32, i32* %8
%712 = load i32, i32* %5
%713 = xor i32 %711, %712
%714 = load i32, i32* %6
%715 = xor i32 %713, %714
%716 = load i32*, i32** %4
%717 = getelementptr inbounds i32, i32* %716, i64 4
%718 = load i32, i32* %717
%719 = add i32 %715, %718
%720 = add i32 %719, 1859775393
%721 = load i32, i32* %7
%722 = add i32 %721, %720
store i32 %722, i32* %7
%723 = load i32, i32* %7
%724 = shl i32 %723, 11
%725 = load i32, i32* %7
%726 = lshr i32 %725, 21
%727 = xor i32 %724, %726
store i32 %727, i32* %7
%728 = load i32, i32* %7
%729 = load i32, i32* %8
%730 = xor i32 %728, %729
%731 = load i32, i32* %5
%732 = xor i32 %730, %731
%733 = load i32*, i32** %4
%734 = getelementptr inbounds i32, i32* %733, i64 12
%735 = load i32, i32* %734
%736 = add i32 %732, %735
%737 = add i32 %736, 1859775393
%738 = load i32, i32* %6
%739 = add i32 %738, %737
store i32 %739, i32* %6
%740 = load i32, i32* %6
%741 = shl i32 %740, 15
%742 = load i32, i32* %6
%743 = lshr i32 %742, 17
%744 = xor i32 %741, %743
store i32 %744, i32* %6
%745 = load i32, i32* %6
%746 = load i32, i32* %7
%747 = xor i32 %745, %746
%748 = load i32, i32* %8
%749 = xor i32 %747, %748
%750 = load i32*, i32** %4
%751 = getelementptr inbounds i32, i32* %750, i64 2
%752 = load i32, i32* %751
%753 = add i32 %749, %752
%754 = add i32 %753, 1859775393
%755 = load i32, i32* %5
%756 = add i32 %755, %754
store i32 %756, i32* %5
%757 = load i32, i32* %5
%758 = shl i32 %757, 3
%759 = load i32, i32* %5
%760 = lshr i32 %759, 29
%761 = xor i32 %758, %760
store i32 %761, i32* %5
%762 = load i32, i32* %5
%763 = load i32, i32* %6
%764 = xor i32 %762, %763
%765 = load i32, i32* %7
%766 = xor i32 %764, %765
%767 = load i32*, i32** %4
%768 = getelementptr inbounds i32, i32* %767, i64 10
%769 = load i32, i32* %768
%770 = add i32 %766, %769
%771 = add i32 %770, 1859775393
%772 = load i32, i32* %8
%773 = add i32 %772, %771
store i32 %773, i32* %8
%774 = load i32, i32* %8
%775 = shl i32 %774, 9
%776 = load i32, i32* %8
%777 = lshr i32 %776, 23
%778 = xor i32 %775, %777
store i32 %778, i32* %8
%779 = load i32, i32* %8
%780 = load i32, i32* %5
%781 = xor i32 %779, %780
%782 = load i32, i32* %6
%783 = xor i32 %781, %782
%784 = load i32*, i32** %4
%785 = getelementptr inbounds i32, i32* %784, i64 6
%786 = load i32, i32* %785
%787 = add i32 %783, %786
%788 = add i32 %787, 1859775393
%789 = load i32, i32* %7
%790 = add i32 %789, %788
store i32 %790, i32* %7
%791 = load i32, i32* %7
%792 = shl i32 %791, 11
%793 = load i32, i32* %7
%794 = lshr i32 %793, 21
%795 = xor i32 %792, %794
store i32 %795, i32* %7
%796 = load i32, i32* %7
%797 = load i32, i32* %8
%798 = xor i32 %796, %797
%799 = load i32, i32* %5
%800 = xor i32 %798, %799
%801 = load i32*, i32** %4
%802 = getelementptr inbounds i32, i32* %801, i64 14
%803 = load i32, i32* %802
%804 = add i32 %800, %803
%805 = add i32 %804, 1859775393
%806 = load i32, i32* %6
%807 = add i32 %806, %805
store i32 %807, i32* %6
%808 = load i32, i32* %6
%809 = shl i32 %808, 15
%810 = load i32, i32* %6
%811 = lshr i32 %810, 17
%812 = xor i32 %809, %811
store i32 %812, i32* %6
%813 = load i32, i32* %6
%814 = load i32, i32* %7
%815 = xor i32 %813, %814
%816 = load i32, i32* %8
%817 = xor i32 %815, %816
%818 = load i32*, i32** %4
%819 = getelementptr inbounds i32, i32* %818, i64 1
%820 = load i32, i32* %819
%821 = add i32 %817, %820
%822 = add i32 %821, 1859775393
%823 = load i32, i32* %5
%824 = add i32 %823, %822
store i32 %824, i32* %5
%825 = load i32, i32* %5
%826 = shl i32 %825, 3
%827 = load i32, i32* %5
%828 = lshr i32 %827, 29
%829 = xor i32 %826, %828
store i32 %829, i32* %5
%830 = load i32, i32* %5
%831 = load i32, i32* %6
%832 = xor i32 %830, %831
%833 = load i32, i32* %7
%834 = xor i32 %832, %833
%835 = load i32*, i32** %4
%836 = getelementptr inbounds i32, i32* %835, i64 9
%837 = load i32, i32* %836
%838 = add i32 %834, %837
%839 = add i32 %838, 1859775393
%840 = load i32, i32* %8
%841 = add i32 %840, %839
store i32 %841, i32* %8
%842 = load i32, i32* %8
%843 = shl i32 %842, 9
%844 = load i32, i32* %8
%845 = lshr i32 %844, 23
%846 = xor i32 %843, %845
store i32 %846, i32* %8
%847 = load i32, i32* %8
%848 = load i32, i32* %5
%849 = xor i32 %847, %848
%850 = load i32, i32* %6
%851 = xor i32 %849, %850
%852 = load i32*, i32** %4
%853 = getelementptr inbounds i32, i32* %852, i64 5
%854 = load i32, i32* %853
%855 = add i32 %851, %854
%856 = add i32 %855, 1859775393
%857 = load i32, i32* %7
%858 = add i32 %857, %856
store i32 %858, i32* %7
%859 = load i32, i32* %7
%860 = shl i32 %859, 11
%861 = load i32, i32* %7
%862 = lshr i32 %861, 21
%863 = xor i32 %860, %862
store i32 %863, i32* %7
%864 = load i32, i32* %7
%865 = load i32, i32* %8
%866 = xor i32 %864, %865
%867 = load i32, i32* %5
%868 = xor i32 %866, %867
%869 = load i32*, i32** %4
%870 = getelementptr inbounds i32, i32* %869, i64 13
%871 = load i32, i32* %870
%872 = add i32 %868, %871
%873 = add i32 %872, 1859775393
%874 = load i32, i32* %6
%875 = add i32 %874, %873
store i32 %875, i32* %6
%876 = load i32, i32* %6
%877 = shl i32 %876, 15
%878 = load i32, i32* %6
%879 = lshr i32 %878, 17
%880 = xor i32 %877, %879
store i32 %880, i32* %6
%881 = load i32, i32* %6
%882 = load i32, i32* %7
%883 = xor i32 %881, %882
%884 = load i32, i32* %8
%885 = xor i32 %883, %884
%886 = load i32*, i32** %4
%887 = getelementptr inbounds i32, i32* %886, i64 3
%888 = load i32, i32* %887
%889 = add i32 %885, %888
%890 = add i32 %889, 1859775393
%891 = load i32, i32* %5
%892 = add i32 %891, %890
store i32 %892, i32* %5
%893 = load i32, i32* %5
%894 = shl i32 %893, 3
%895 = load i32, i32* %5
%896 = lshr i32 %895, 29
%897 = xor i32 %894, %896
store i32 %897, i32* %5
%898 = load i32, i32* %5
%899 = load i32, i32* %6
%900 = xor i32 %898, %899
%901 = load i32, i32* %7
%902 = xor i32 %900, %901
%903 = load i32*, i32** %4
%904 = getelementptr inbounds i32, i32* %903, i64 11
%905 = load i32, i32* %904
%906 = add i32 %902, %905
%907 = add i32 %906, 1859775393
%908 = load i32, i32* %8
%909 = add i32 %908, %907
store i32 %909, i32* %8
%910 = load i32, i32* %8
%911 = shl i32 %910, 9
%912 = load i32, i32* %8
%913 = lshr i32 %912, 23
%914 = xor i32 %911, %913
store i32 %914, i32* %8
%915 = load i32, i32* %8
%916 = load i32, i32* %5
%917 = xor i32 %915, %916
%918 = load i32, i32* %6
%919 = xor i32 %917, %918
%920 = load i32*, i32** %4
%921 = getelementptr inbounds i32, i32* %920, i64 7
%922 = load i32, i32* %921
%923 = add i32 %919, %922
%924 = add i32 %923, 1859775393
%925 = load i32, i32* %7
%926 = add i32 %925, %924
store i32 %926, i32* %7
%927 = load i32, i32* %7
%928 = shl i32 %927, 11
%929 = load i32, i32* %7
%930 = lshr i32 %929, 21
%931 = xor i32 %928, %930
store i32 %931, i32* %7
%932 = load i32, i32* %7
%933 = load i32, i32* %8
%934 = xor i32 %932, %933
%935 = load i32, i32* %5
%936 = xor i32 %934, %935
%937 = load i32*, i32** %4
%938 = getelementptr inbounds i32, i32* %937, i64 15
%939 = load i32, i32* %938
%940 = add i32 %936, %939
%941 = add i32 %940, 1859775393
%942 = load i32, i32* %6
%943 = add i32 %942, %941
store i32 %943, i32* %6
%944 = load i32, i32* %6
%945 = shl i32 %944, 15
%946 = load i32, i32* %6
%947 = lshr i32 %946, 17
%948 = xor i32 %945, %947
store i32 %948, i32* %6
%949 = load i32, i32* %5
%950 = load i32*, i32** %3
%951 = getelementptr inbounds i32, i32* %950, i64 0
%952 = load i32, i32* %951
%953 = add i32 %952, %949
store i32 %953, i32* %951
%954 = load i32, i32* %6
%955 = load i32*, i32** %3
%956 = getelementptr inbounds i32, i32* %955, i64 1
%957 = load i32, i32* %956
%958 = add i32 %957, %954
store i32 %958, i32* %956
%959 = load i32, i32* %7
%960 = load i32*, i32** %3
%961 = getelementptr inbounds i32, i32* %960, i64 2
%962 = load i32, i32* %961
%963 = add i32 %962, %959
store i32 %963, i32* %961
%964 = load i32, i32* %8
%965 = load i32*, i32** %3
%966 = getelementptr inbounds i32, i32* %965, i64 3
%967 = load i32, i32* %966
%968 = add i32 %967, %964
store i32 %968, i32* %966
ret void
}

LLVM IR (-O2):
define void @md4_process_block(i32* nocapture %0, i32* nocapture %1) {
%3 = load i32, i32* %0
%4 = getelementptr inbounds i32, i32* %0, i64 1
%5 = load i32, i32* %4
%6 = getelementptr inbounds i32, i32* %0, i64 2
%7 = load i32, i32* %6
%8 = getelementptr inbounds i32, i32* %0, i64 3
%9 = load i32, i32* %8
%10 = xor i32 %9, %7
%11 = and i32 %10, %5
%12 = xor i32 %11, %9
%13 = load i32, i32* %1
%14 = add i32 %13, %3
%15 = add i32 %14, %12
%16 = tail call i32 @llvm.fshl.i32(i32 %15, i32 %15, i32 3)
%17 = xor i32 %7, %5
%18 = and i32 %16, %17
%19 = xor i32 %18, %7
%20 = getelementptr inbounds i32, i32* %1, i64 1
%21 = load i32, i32* %20
%22 = add i32 %21, %9
%23 = add i32 %22, %19
%24 = tail call i32 @llvm.fshl.i32(i32 %23, i32 %23, i32 7)
%25 = xor i32 %16, %5
%26 = and i32 %24, %25
%27 = xor i32 %26, %5
%28 = getelementptr inbounds i32, i32* %1, i64 2
%29 = load i32, i32* %28
%30 = add i32 %29, %7
%31 = add i32 %30, %27
%32 = tail call i32 @llvm.fshl.i32(i32 %31, i32 %31, i32 11)
%33 = xor i32 %24, %16
%34 = and i32 %32, %33
%35 = xor i32 %34, %16
%36 = getelementptr inbounds i32, i32* %1, i64 3
%37 = load i32, i32* %36
%38 = add i32 %37, %5
%39 = add i32 %38, %35
%40 = tail call i32 @llvm.fshl.i32(i32 %39, i32 %39, i32 19)
%41 = xor i32 %32, %24
%42 = and i32 %40, %41
%43 = xor i32 %42, %24
%44 = getelementptr inbounds i32, i32* %1, i64 4
%45 = load i32, i32* %44
%46 = add i32 %16, %45
%47 = add i32 %46, %43
%48 = tail call i32 @llvm.fshl.i32(i32 %47, i32 %47, i32 3)
%49 = xor i32 %40, %32
%50 = and i32 %48, %49
%51 = xor i32 %50, %32
%52 = getelementptr inbounds i32, i32* %1, i64 5
%53 = load i32, i32* %52
%54 = add i32 %24, %53
%55 = add i32 %54, %51
%56 = tail call i32 @llvm.fshl.i32(i32 %55, i32 %55, i32 7)
%57 = xor i32 %48, %40
%58 = and i32 %56, %57
%59 = xor i32 %58, %40
%60 = getelementptr inbounds i32, i32* %1, i64 6
%61 = load i32, i32* %60
%62 = add i32 %32, %61
%63 = add i32 %62, %59
%64 = tail call i32 @llvm.fshl.i32(i32 %63, i32 %63, i32 11)
%65 = xor i32 %56, %48
%66 = and i32 %64, %65
%67 = xor i32 %66, %48
%68 = getelementptr inbounds i32, i32* %1, i64 7
%69 = load i32, i32* %68
%70 = add i32 %40, %69
%71 = add i32 %70, %67
%72 = tail call i32 @llvm.fshl.i32(i32 %71, i32 %71, i32 19)
%73 = xor i32 %64, %56
%74 = and i32 %72, %73
%75 = xor i32 %74, %56
%76 = getelementptr inbounds i32, i32* %1, i64 8
%77 = load i32, i32* %76
%78 = add i32 %48, %77
%79 = add i32 %78, %75
%80 = tail call i32 @llvm.fshl.i32(i32 %79, i32 %79, i32 3)
%81 = xor i32 %72, %64
%82 = and i32 %80, %81
%83 = xor i32 %82, %64
%84 = getelementptr inbounds i32, i32* %1, i64 9
%85 = load i32, i32* %84
%86 = add i32 %56, %85
%87 = add i32 %86, %83
%88 = tail call i32 @llvm.fshl.i32(i32 %87, i32 %87, i32 7)
%89 = xor i32 %80, %72
%90 = and i32 %88, %89
%91 = xor i32 %90, %72
%92 = getelementptr inbounds i32, i32* %1, i64 10
%93 = load i32, i32* %92
%94 = add i32 %64, %93
%95 = add i32 %94, %91
%96 = tail call i32 @llvm.fshl.i32(i32 %95, i32 %95, i32 11)
%97 = xor i32 %88, %80
%98 = and i32 %96, %97
%99 = xor i32 %98, %80
%100 = getelementptr inbounds i32, i32* %1, i64 11
%101 = load i32, i32* %100
%102 = add i32 %72, %101
%103 = add i32 %102, %99
%104 = tail call i32 @llvm.fshl.i32(i32 %103, i32 %103, i32 19)
%105 = xor i32 %96, %88
%106 = and i32 %104, %105
%107 = xor i32 %106, %88
%108 = getelementptr inbounds i32, i32* %1, i64 12
%109 = load i32, i32* %108
%110 = add i32 %80, %109
%111 = add i32 %110, %107
%112 = tail call i32 @llvm.fshl.i32(i32 %111, i32 %111, i32 3)
%113 = xor i32 %104, %96
%114 = and i32 %112, %113
%115 = xor i32 %114, %96
%116 = getelementptr inbounds i32, i32* %1, i64 13
%117 = load i32, i32* %116
%118 = add i32 %88, %117
%119 = add i32 %118, %115
%120 = tail call i32 @llvm.fshl.i32(i32 %119, i32 %119, i32 7)
%121 = xor i32 %112, %104
%122 = and i32 %120, %121
%123 = xor i32 %122, %104
%124 = getelementptr inbounds i32, i32* %1, i64 14
%125 = load i32, i32* %124
%126 = add i32 %96, %125
%127 = add i32 %126, %123
%128 = tail call i32 @llvm.fshl.i32(i32 %127, i32 %127, i32 11)
%129 = xor i32 %120, %112
%130 = and i32 %128, %129
%131 = xor i32 %130, %112
%132 = getelementptr inbounds i32, i32* %1, i64 15
%133 = load i32, i32* %132
%134 = add i32 %104, %133
%135 = add i32 %134, %131
%136 = tail call i32 @llvm.fshl.i32(i32 %135, i32 %135, i32 19)
%137 = and i32 %136, %128
%138 = or i32 %136, %128
%139 = and i32 %138, %120
%140 = or i32 %139, %137
%141 = add i32 %13, 1518500249
%142 = add i32 %141, %112
%143 = add i32 %142, %140
%144 = tail call i32 @llvm.fshl.i32(i32 %143, i32 %143, i32 3)
%145 = and i32 %144, %136
%146 = and i32 %144, %128
%147 = or i32 %146, %137
%148 = or i32 %147, %145
%149 = add i32 %45, 1518500249
%150 = add i32 %149, %120
%151 = add i32 %150, %148
%152 = tail call i32 @llvm.fshl.i32(i32 %151, i32 %151, i32 5)
%153 = and i32 %152, %144
%154 = and i32 %152, %136
%155 = or i32 %154, %145
%156 = or i32 %155, %153
%157 = add i32 %77, 1518500249
%158 = add i32 %157, %128
%159 = add i32 %158, %156
%160 = tail call i32 @llvm.fshl.i32(i32 %159, i32 %159, i32 9)
%161 = and i32 %160, %152
%162 = and i32 %160, %144
%163 = or i32 %162, %153
%164 = or i32 %163, %161
%165 = add i32 %109, 1518500249
%166 = add i32 %165, %136
%167 = add i32 %166, %164
%168 = tail call i32 @llvm.fshl.i32(i32 %167, i32 %167, i32 13)
%169 = and i32 %168, %160
%170 = and i32 %168, %152
%171 = or i32 %170, %161
%172 = or i32 %171, %169
%173 = add i32 %21, 1518500249
%174 = add i32 %173, %144
%175 = add i32 %174, %172
%176 = tail call i32 @llvm.fshl.i32(i32 %175, i32 %175, i32 3)
%177 = and i32 %176, %168
%178 = and i32 %176, %160
%179 = or i32 %178, %169
%180 = or i32 %179, %177
%181 = add i32 %53, 1518500249
%182 = add i32 %181, %152
%183 = add i32 %182, %180
%184 = tail call i32 @llvm.fshl.i32(i32 %183, i32 %183, i32 5)
%185 = and i32 %184, %176
%186 = and i32 %184, %168
%187 = or i32 %186, %177
%188 = or i32 %187, %185
%189 = add i32 %85, 1518500249
%190 = add i32 %189, %160
%191 = add i32 %190, %188
%192 = tail call i32 @llvm.fshl.i32(i32 %191, i32 %191, i32 9)
%193 = and i32 %192, %184
%194 = and i32 %192, %176
%195 = or i32 %194, %185
%196 = or i32 %195, %193
%197 = add i32 %117, 1518500249
%198 = add i32 %197, %168
%199 = add i32 %198, %196
%200 = tail call i32 @llvm.fshl.i32(i32 %199, i32 %199, i32 13)
%201 = and i32 %200, %192
%202 = and i32 %200, %184
%203 = or i32 %202, %193
%204 = or i32 %203, %201
%205 = add i32 %29, 1518500249
%206 = add i32 %205, %176
%207 = add i32 %206, %204
%208 = tail call i32 @llvm.fshl.i32(i32 %207, i32 %207, i32 3)
%209 = and i32 %208, %200
%210 = and i32 %208, %192
%211 = or i32 %210, %201
%212 = or i32 %211, %209
%213 = add i32 %61, 1518500249
%214 = add i32 %213, %184
%215 = add i32 %214, %212
%216 = tail call i32 @llvm.fshl.i32(i32 %215, i32 %215, i32 5)
%217 = and i32 %216, %208
%218 = and i32 %216, %200
%219 = or i32 %218, %209
%220 = or i32 %219, %217
%221 = add i32 %93, 1518500249
%222 = add i32 %221, %192
%223 = add i32 %222, %220
%224 = tail call i32 @llvm.fshl.i32(i32 %223, i32 %223, i32 9)
%225 = and i32 %224, %216
%226 = and i32 %224, %208
%227 = or i32 %226, %217
%228 = or i32 %227, %225
%229 = add i32 %125, 1518500249
%230 = add i32 %229, %200
%231 = add i32 %230, %228
%232 = tail call i32 @llvm.fshl.i32(i32 %231, i32 %231, i32 13)
%233 = and i32 %232, %224
%234 = and i32 %232, %216
%235 = or i32 %234, %225
%236 = or i32 %235, %233
%237 = add i32 %37, 1518500249
%238 = add i32 %237, %208
%239 = add i32 %238, %236
%240 = tail call i32 @llvm.fshl.i32(i32 %239, i32 %239, i32 3)
%241 = and i32 %240, %232
%242 = and i32 %240, %224
%243 = or i32 %242, %233
%244 = or i32 %243, %241
%245 = add i32 %69, 1518500249
%246 = add i32 %245, %216
%247 = add i32 %246, %244
%248 = tail call i32 @llvm.fshl.i32(i32 %247, i32 %247, i32 5)
%249 = and i32 %248, %240
%250 = and i32 %248, %232
%251 = or i32 %250, %241
%252 = or i32 %251, %249
%253 = add i32 %101, 1518500249
%254 = add i32 %253, %224
%255 = add i32 %254, %252
%256 = tail call i32 @llvm.fshl.i32(i32 %255, i32 %255, i32 9)
%257 = or i32 %248, %240
%258 = and i32 %256, %257
%259 = or i32 %258, %249
%260 = add i32 %133, 1518500249
%261 = add i32 %260, %232
%262 = add i32 %261, %259
%263 = tail call i32 @llvm.fshl.i32(i32 %262, i32 %262, i32 13)
%264 = xor i32 %263, %256
%265 = xor i32 %264, %248
%266 = add i32 %13, 1859775393
%267 = add i32 %266, %240
%268 = add i32 %267, %265
%269 = tail call i32 @llvm.fshl.i32(i32 %268, i32 %268, i32 3)
%270 = xor i32 %264, %269
%271 = add i32 %77, 1859775393
%272 = add i32 %271, %248
%273 = add i32 %272, %270
%274 = tail call i32 @llvm.fshl.i32(i32 %273, i32 %273, i32 9)
%275 = xor i32 %269, %263
%276 = xor i32 %275, %274
%277 = add i32 %45, 1859775393
%278 = add i32 %277, %256
%279 = add i32 %278, %276
%280 = tail call i32 @llvm.fshl.i32(i32 %279, i32 %279, i32 11)
%281 = xor i32 %274, %269
%282 = xor i32 %281, %280
%283 = add i32 %109, 1859775393
%284 = add i32 %283, %263
%285 = add i32 %284, %282
%286 = tail call i32 @llvm.fshl.i32(i32 %285, i32 %285, i32 15)
%287 = xor i32 %280, %274
%288 = xor i32 %287, %286
%289 = add i32 %29, 1859775393
%290 = add i32 %289, %269
%291 = add i32 %290, %288
%292 = tail call i32 @llvm.fshl.i32(i32 %291, i32 %291, i32 3)
%293 = xor i32 %286, %280
%294 = xor i32 %293, %292
%295 = add i32 %93, 1859775393
%296 = add i32 %295, %274
%297 = add i32 %296, %294
%298 = tail call i32 @llvm.fshl.i32(i32 %297, i32 %297, i32 9)
%299 = xor i32 %292, %286
%300 = xor i32 %299, %298
%301 = add i32 %61, 1859775393
%302 = add i32 %301, %280
%303 = add i32 %302, %300
%304 = tail call i32 @llvm.fshl.i32(i32 %303, i32 %303, i32 11)
%305 = xor i32 %298, %292
%306 = xor i32 %305, %304
%307 = add i32 %125, 1859775393
%308 = add i32 %307, %286
%309 = add i32 %308, %306
%310 = tail call i32 @llvm.fshl.i32(i32 %309, i32 %309, i32 15)
%311 = xor i32 %304, %298
%312 = xor i32 %311, %310
%313 = add i32 %21, 1859775393
%314 = add i32 %313, %292
%315 = add i32 %314, %312
%316 = tail call i32 @llvm.fshl.i32(i32 %315, i32 %315, i32 3)
%317 = xor i32 %310, %304
%318 = xor i32 %317, %316
%319 = add i32 %85, 1859775393
%320 = add i32 %319, %298
%321 = add i32 %320, %318
%322 = tail call i32 @llvm.fshl.i32(i32 %321, i32 %321, i32 9)
%323 = xor i32 %316, %310
%324 = xor i32 %323, %322
%325 = add i32 %53, 1859775393
%326 = add i32 %325, %304
%327 = add i32 %326, %324
%328 = tail call i32 @llvm.fshl.i32(i32 %327, i32 %327, i32 11)
%329 = xor i32 %322, %316
%330 = xor i32 %329, %328
%331 = add i32 %117, 1859775393
%332 = add i32 %331, %310
%333 = add i32 %332, %330
%334 = tail call i32 @llvm.fshl.i32(i32 %333, i32 %333, i32 15)
%335 = xor i32 %328, %322
%336 = xor i32 %335, %334
%337 = add i32 %37, 1859775393
%338 = add i32 %337, %316
%339 = add i32 %338, %336
%340 = tail call i32 @llvm.fshl.i32(i32 %339, i32 %339, i32 3)
%341 = xor i32 %334, %328
%342 = xor i32 %341, %340
%343 = add i32 %101, 1859775393
%344 = add i32 %343, %322
%345 = add i32 %344, %342
%346 = tail call i32 @llvm.fshl.i32(i32 %345, i32 %345, i32 9)
%347 = xor i32 %340, %334
%348 = xor i32 %347, %346
%349 = add i32 %69, 1859775393
%350 = add i32 %349, %328
%351 = add i32 %350, %348
%352 = tail call i32 @llvm.fshl.i32(i32 %351, i32 %351, i32 11)
%353 = xor i32 %346, %340
%354 = xor i32 %353, %352
%355 = add i32 %133, 1859775393
%356 = add i32 %355, %334
%357 = add i32 %356, %354
%358 = tail call i32 @llvm.fshl.i32(i32 %357, i32 %357, i32 15)
%359 = add i32 %340, %3
store i32 %359, i32* %0
%360 = add i32 %358, %5
store i32 %360, i32* %4
%361 = add i32 %352, %7
store i32 %361, i32* %6
%362 = add i32 %346, %9
store i32 %362, i32* %8
ret void
}