user: What would the C source look like for the assembly code provided here:

```asm
<md4_process_block>:
  endbr64
  mov    0x8(%rdi),%r9d
  mov    0xc(%rdi),%edx
  mov    %rsi,%rax
  push   %r15
  mov    0x4(%rdi),%esi
  mov    (%rdi),%r8d
  push   %r14
  mov    %r9d,%ecx
  push   %r13
  xor    %edx,%ecx
  push   %r12
  push   %rbp
  and    %esi,%ecx
  push   %rbx
  mov    (%rax),%r13d
  xor    %edx,%ecx
  mov    0x4(%rax),%ebx
  mov    0x8(%rax),%r11d
  add    %r13d,%r8d
  mov    0x10(%rax),%ebp
  mov    0x18(%rax),%r12d
  add    %r8d,%ecx
  mov    %esi,%r8d
  add    %ebx,%edx
  mov    %ebx,-0x28(%rsp)
  rol    $0x3,%ecx
  xor    %r9d,%r8d
  mov    0x1c(%rax),%ebx
  mov    %r12d,-0x10(%rsp)
  and    %ecx,%r8d
  mov    %ecx,%r10d
  mov    %r11d,-0x24(%rsp)
  xor    %r9d,%r8d
  add    %r11d,%r9d
  mov    %ebx,-0xc(%rsp)
  add    %edx,%r8d
  mov    %ecx,%edx
  rol    $0x7,%r8d
  xor    %esi,%edx
  and    %r8d,%edx
  xor    %r8d,%r10d
  xor    %esi,%edx
  add    %r9d,%edx
  mov    0xc(%rax),%r9d
  rol    $0xb,%edx
  and    %edx,%r10d
  add    %r9d,%esi
  mov    %r9d,-0x20(%rsp)
  xor    %ecx,%r10d
  add    %esi,%r10d
  lea    0x0(%rbp,%rcx,1),%esi
  mov    %r8d,%ecx
  ror    $0xd,%r10d
  xor    %edx,%ecx
  and    %r10d,%ecx
  xor    %r8d,%ecx
  add    %esi,%ecx
  mov    0x14(%rax),%esi
  rol    $0x3,%ecx
  mov    %esi,-0x14(%rsp)
  add    %r8d,%esi
  mov    %edx,%r8d
  xor    %r10d,%r8d
  and    %ecx,%r8d
  xor    %edx,%r8d
  add    %esi,%r8d
  lea    (%r12,%rdx,1),%esi
  mov    %r10d,%edx
  mov    0x20(%rax),%r12d
  rol    $0x7,%r8d
  xor    %ecx,%edx
  and    %r8d,%edx
  mov    %r8d,%r9d
  xor    %r10d,%edx
  add    %esi,%edx
  lea    (%rbx,%r10,1),%esi
  mov    %ecx,%r10d
  mov    0x30(%rax),%ebx
  rol    $0xb,%edx
  xor    %r8d,%r10d
  and    %edx,%r10d
  xor    %edx,%r9d
  xor    %ecx,%r10d
  add    %r12d,%ecx
  add    %esi,%r10d
  mov    %r9d,%esi
  mov    0x2c(%rax),%r9d
  ror    $0xd,%r10d
  and    %r10d,%esi
  xor    %r8d,%esi
  add    %ecx,%esi
  mov    0x24(%rax),%ecx
  rol    $0x3,%esi
  mov    %ecx,-0x1c(%rsp)
  add    %ecx,%r8d
  mov    %edx,%ecx
  xor    %r10d,%ecx
  and    %esi,%ecx
  xor    %edx,%ecx
  add    %r8d,%ecx
  mov    0x28(%rax),%r8d
  rol    $0x7,%ecx
  mov    %r8d,-0x18(%rsp)
  add    %r8d,%edx
  mov    %r10d,%r8d
  xor    %esi,%r8d
  and    %ecx,%r8d
  xor    %r10d,%r8d
  add    %r9d,%r10d
  add    %edx,%r8d
  mov    %esi,%edx
  rol    $0xb,%r8d
  xor    %ecx,%edx
  and    %r8d,%edx
  mov    %r8d,%r11d
  xor    %esi,%edx
  add    %ebx,%esi
  add    %r10d,%edx
  mov    %ecx,%r10d
  xor    %r8d,%r10d
  ror    $0xd,%edx
  mov    %r10d,%r14d
  xor    %edx,%r11d
  mov    0x34(%rax),%r10d
  and    %edx,%r14d
  xor    %ecx,%r14d
  add    %r10d,%ecx
  add    %esi,%r14d
  mov    %r11d,%esi
  mov    0x38(%rax),%r11d
  movdqu (%rdi),%xmm4
  rol    $0x3,%r14d
  and    %r14d,%esi
  xor    %r8d,%esi
  add    %r11d,%r8d
  add    %ecx,%esi
  mov    %edx,%ecx
  rol    $0x7,%esi
  xor    %r14d,%ecx
  and    %esi,%ecx
  xor    %edx,%ecx
  add    %r8d,%ecx
  mov    0x3c(%rax),%r8d
  mov    %r14d,%eax
  rol    $0xb,%ecx
  xor    %esi,%eax
  and    %ecx,%eax
  lea    (%r8,%rdx,1),%r15d
  xor    %r14d,%eax
  lea    0x5a827999(%r13,%r14,1),%r14d
  lea    (%rax,%r15,1),%edx
  mov    %esi,%eax
  mov    %esi,%r15d
  ror    $0xd,%edx
  or     %ecx,%eax
  and    %ecx,%r15d
  and    %edx,%eax
  or     %r15d,%eax
  mov    %ecx,%r15d
  add    %r14d,%eax
  lea    0x5a827999(%rbp,%rsi,1),%r14d
  mov    %ecx,%esi
  rol    $0x3,%eax
  or     %edx,%esi
  and    %edx,%r15d
  and    %eax,%esi
  or     %r15d,%esi
  mov    %edx,%r15d
  add    %r14d,%esi
  lea    0x5a827999(%r12,%rcx,1),%r14d
  mov    %edx,%ecx
  and    %eax,%r15d
  rol    $0x5,%esi
  or     %eax,%ecx
  and    %esi,%ecx
  or     %r15d,%ecx
  mov    %eax,%r15d
  add    %r14d,%ecx
  lea    0x5a827999(%rbx,%rdx,1),%r14d
  mov    %eax,%edx
  and    %esi,%r15d
  rol    $0x9,%ecx
  or     %esi,%edx
  and    %ecx,%edx
  or     %r15d,%edx
  mov    -0x28(%rsp),%r15d
  add    %r14d,%edx
  lea    0x5a827999(%r15,%rax,1),%r14d
  mov    %esi,%eax
  rol    $0xd,%edx
  mov    %esi,%r15d
  or     %ecx,%eax
  and    %ecx,%r15d
  and    %edx,%eax
  or     %r15d,%eax
  mov    %ecx,%r15d
  add    %r14d,%eax
  mov    -0x14(%rsp),%r14d
  and    %edx,%r15d
  rol    $0x3,%eax
  lea    0x5a827999(%r14,%rsi,1),%r14d
  mov    %ecx,%esi
  or     %edx,%esi
  and    %eax,%esi
  or     %r15d,%esi
  mov    -0x1c(%rsp),%r15d
  add    %r14d,%esi
  lea    0x5a827999(%r15,%rcx,1),%r14d
  mov    %edx,%ecx
  rol    $0x5,%esi
  mov    %edx,%r15d
  or     %eax,%ecx
  and    %esi,%ecx
  and    %eax,%r15d
  or     %r15d,%ecx
  mov    %eax,%r15d
  add    %r14d,%ecx
  lea    0x5a827999(%r10,%rdx,1),%r14d
  mov    %eax,%edx
  and    %esi,%r15d
  rol    $0x9,%ecx
  or     %esi,%edx
  and    %ecx,%edx
  or     %r15d,%edx
  mov    %esi,%r15d
  add    %r14d,%edx
  mov    -0x24(%rsp),%r14d
  and    %ecx,%r15d
  rol    $0xd,%edx
  lea    0x5a827999(%r14,%rax,1),%r14d
  mov    %esi,%eax
  or     %ecx,%eax
  and    %edx,%eax
  or     %r15d,%eax
  mov    -0x10(%rsp),%r15d
  add    %r14d,%eax
  lea    0x5a827999(%r15,%rsi,1),%r14d
  mov    %ecx,%esi
  rol    $0x3,%eax
  mov    %ecx,%r15d
  or     %edx,%esi
  and    %edx,%r15d
  and    %eax,%esi
  or     %r15d,%esi
  mov    -0x18(%rsp),%r15d
  add    %r14d,%esi
  lea    0x5a827999(%r15,%rcx,1),%r14d
  mov    %edx,%ecx
  rol    $0x5,%esi
  mov    %edx,%r15d
  or     %eax,%ecx
  and    %eax,%r15d
  and    %esi,%ecx
  or     %r15d,%ecx
  mov    %eax,%r15d
  add    %r14d,%ecx
  lea    0x5a827999(%r11,%rdx,1),%r14d
  mov    %eax,%edx
  and    %esi,%r15d
  rol    $0x9,%ecx
  or     %esi,%edx
  and    %ecx,%edx
  or     %r15d,%edx
  mov    -0x20(%rsp),%r15d
  add    %r14d,%edx
  lea    0x5a827999(%r15,%rax,1),%r14d
  mov    %esi,%eax
  rol    $0xd,%edx
  mov    %esi,%r15d
  or     %ecx,%eax
  and    %ecx,%r15d
  and    %edx,%eax
  or     %r15d,%eax
  mov    %ecx,%r15d
  add    %r14d,%eax
  mov    -0xc(%rsp),%r14d
  and    %edx,%r15d
  rol    $0x3,%eax
  lea    0x5a827999(%r14,%rsi,1),%r14d
  mov    %ecx,%esi
  lea    0x6ed9eba1(%r13,%rax,1),%r13d
  or     %edx,%esi
  and    %eax,%esi
  or     %r15d,%esi
  mov    %edx,%r15d
  add    %r14d,%esi
  lea    0x5a827999(%r9,%rcx,1),%r14d
  mov    %edx,%ecx
  and    %eax,%r15d
  rol    $0x5,%esi
  or     %eax,%ecx
  and    %esi,%ecx
  lea    0x6ed9eba1(%r12,%rsi,1),%r12d
  or     %r15d,%ecx
  mov    %eax,%r15d
  add    %r14d,%ecx
  lea    0x5a827999(%r8,%rdx,1),%r14d
  mov    %eax,%edx
  and    %esi,%r15d
  rol    $0x9,%ecx
  or     %esi,%edx
  mov    %esi,%eax
  and    %ecx,%edx
  xor    %ecx,%eax
  lea    0x6ed9eba1(%rbp,%rcx,1),%ebp
  or     %r15d,%edx
  mov    -0x28(%rsp),%r15d
  add    %r14d,%edx
  mov    -0x24(%rsp),%r14d
  rol    $0xd,%edx
  xor    %edx,%eax
  lea    0x6ed9eba1(%rbx,%rdx,1),%ebx
  add    %r13d,%eax
  mov    %ecx,%r13d
  mov    %edx,%ecx
  xor    %edx,%r13d
  rol    $0x3,%eax
  mov    %r13d,%esi
  mov    %eax,%edx
  xor    %eax,%esi
  xor    %eax,%ecx
  add    %r12d,%esi
  mov    -0x10(%rsp),%r12d
  rol    $0x9,%esi
  xor    %esi,%ecx
  xor    %esi,%edx
  add    %ebp,%ecx
  mov    -0x18(%rsp),%ebp
  rol    $0xb,%ecx
  xor    %ecx,%edx
  add    %ebx,%edx
  lea    0x6ed9eba1(%r14,%rax,1),%ebx
  mov    %esi,%eax
  mov    -0x14(%rsp),%r14d
  rol    $0xf,%edx
  xor    %ecx,%eax
  xor    %edx,%eax
  add    %ebx,%eax
  lea    0x6ed9eba1(%rbp,%rsi,1),%ebx
  mov    %ecx,%ebp
  xor    %edx,%ebp
  rol    $0x3,%eax
  mov    %ebp,%esi
  xor    %eax,%esi
  add    %ebx,%esi
  lea    0x6ed9eba1(%r12,%rcx,1),%ebx
  mov    %edx,%ecx
  rol    $0x9,%esi
  xor    %eax,%ecx
  lea    0x6ed9eba1(%r11,%rdx,1),%edx
  mov    %eax,%r11d
  xor    %esi,%ecx
  xor    %esi,%r11d
  add    %ebx,%ecx
  rol    $0xb,%ecx
  xor    %ecx,%r11d
  mov    %ecx,%ebp
  add    %edx,%r11d
  lea    0x6ed9eba1(%r15,%rax,1),%edx
  mov    %esi,%eax
  mov    -0x20(%rsp),%r15d
  rol    $0xf,%r11d
  xor    %ecx,%eax
  lea    0x6ed9eba1(%r14,%rcx,1),%ecx
  mov    -0xc(%rsp),%r14d
  xor    %r11d,%eax
  xor    %r11d,%ebp
  lea    0x6ed9eba1(%r10,%r11,1),%r10d
  add    %edx,%eax
  mov    -0x1c(%rsp),%edx
  pop    %rbx
  rol    $0x3,%eax
  lea    0x6ed9eba1(%rdx,%rsi,1),%edx
  mov    %ebp,%esi
  pop    %rbp
  pop    %r12
  xor    %eax,%esi
  pop    %r13
  add    %edx,%esi
  mov    %r11d,%edx
  rol    $0x9,%esi
  xor    %eax,%edx
  xor    %esi,%edx
  lea    0x6ed9eba1(%r9,%rsi,1),%r9d
  add    %ecx,%edx
  mov    %eax,%ecx
  rol    $0xb,%edx
  xor    %esi,%ecx
  xor    %edx,%ecx
  add    %r10d,%ecx
  lea    0x6ed9eba1(%r15,%rax,1),%r10d
  mov    %esi,%eax
  mov    %edx,%esi
  rol    $0xf,%ecx
  xor    %edx,%eax
  xor    %ecx,%eax
  xor    %ecx,%esi
  lea    0x6ed9eba1(%r8,%rcx,1),%r8d
  add    %r10d,%eax
  rol    $0x3,%eax
  xor    %eax,%esi
  movd   %eax,%xmm0
  add    %r9d,%esi
  lea    0x6ed9eba1(%r14,%rdx,1),%r9d
  mov    %ecx,%edx
  mov    %eax,%ecx
  rol    $0x9,%esi
  xor    %eax,%edx
  pop    %r14
  pop    %r15
  xor    %esi,%edx
  xor    %esi,%ecx
  movd   %esi,%xmm2
  add    %r9d,%edx
  rol    $0xb,%edx
  xor    %edx,%ecx
  movd   %edx,%xmm1
  add    %r8d,%ecx
  punpckldq %xmm2,%xmm1
  rol    $0xf,%ecx
  movd   %ecx,%xmm3
  punpckldq %xmm3,%xmm0
  punpcklqdq %xmm1,%xmm0
  paddd  %xmm4,%xmm0
  movups %xmm0,(%rdi)
  ret
```

assistant: ```c
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;
}
```