user: 提供的汇编代码用C语言表示会是什么样子：

```asm
<md4_process_block>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  push   %r14
  push   %r13
  push   %r12
  push   %rbx
  mov    %rdi,-0x28(%rbp)
  mov    %rsi,-0x30(%rbp)
  mov    -0x28(%rbp),%rax
  mov    (%rax),%r14d
  mov    -0x28(%rbp),%rax
  mov    0x4(%rax),%r13d
  mov    -0x28(%rbp),%rax
  mov    0x8(%rax),%r12d
  mov    -0x28(%rbp),%rax
  mov    0xc(%rax),%ebx
  mov    %r12d,%eax
  xor    %ebx,%eax
  and    %r13d,%eax
  xor    %ebx,%eax
  mov    %eax,%edx
  mov    -0x30(%rbp),%rax
  mov    (%rax),%eax
  add    %edx,%eax
  add    %eax,%r14d
  rol    $0x3,%r14d
  mov    %r13d,%eax
  xor    %r12d,%eax
  and    %r14d,%eax
  xor    %r12d,%eax
  mov    %eax,%edx
  mov    -0x30(%rbp),%rax
  add    $0x4,%rax
  mov    (%rax),%eax
  add    %edx,%eax
  add    %eax,%ebx
  rol    $0x7,%ebx
  mov    %r14d,%eax
  xor    %r13d,%eax
  and    %ebx,%eax
  xor    %r13d,%eax
  mov    %eax,%edx
  mov    -0x30(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%eax
  add    %edx,%eax
  add    %eax,%r12d
  rol    $0xb,%r12d
  mov    %ebx,%eax
  xor    %r14d,%eax
  and    %r12d,%eax
  xor    %r14d,%eax
  mov    %eax,%edx
  mov    -0x30(%rbp),%rax
  add    $0xc,%rax
  mov    (%rax),%eax
  add    %edx,%eax
  add    %eax,%r13d
  ror    $0xd,%r13d
  mov    %r12d,%eax
  xor    %ebx,%eax
  and    %r13d,%eax
  xor    %ebx,%eax
  mov    %eax,%edx
  mov    -0x30(%rbp),%rax
  add    $0x10,%rax
  mov    (%rax),%eax
  add    %edx,%eax
  add    %eax,%r14d
  rol    $0x3,%r14d
  mov    %r13d,%eax
  xor    %r12d,%eax
  and    %r14d,%eax
  xor    %r12d,%eax
  mov    %eax,%edx
  mov    -0x30(%rbp),%rax
  add    $0x14,%rax
  mov    (%rax),%eax
  add    %edx,%eax
  add    %eax,%ebx
  rol    $0x7,%ebx
  mov    %r14d,%eax
  xor    %r13d,%eax
  and    %ebx,%eax
  xor    %r13d,%eax
  mov    %eax,%edx
  mov    -0x30(%rbp),%rax
  add    $0x18,%rax
  mov    (%rax),%eax
  add    %edx,%eax
  add    %eax,%r12d
  rol    $0xb,%r12d
  mov    %ebx,%eax
  xor    %r14d,%eax
  and    %r12d,%eax
  xor    %r14d,%eax
  mov    %eax,%edx
  mov    -0x30(%rbp),%rax
  add    $0x1c,%rax
  mov    (%rax),%eax
  add    %edx,%eax
  add    %eax,%r13d
  ror    $0xd,%r13d
  mov    %r12d,%eax
  xor    %ebx,%eax
  and    %r13d,%eax
  xor    %ebx,%eax
  mov    %eax,%edx
  mov    -0x30(%rbp),%rax
  add    $0x20,%rax
  mov    (%rax),%eax
  add    %edx,%eax
  add    %eax,%r14d
  rol    $0x3,%r14d
  mov    %r13d,%eax
  xor    %r12d,%eax
  and    %r14d,%eax
  xor    %r12d,%eax
  mov    %eax,%edx
  mov    -0x30(%rbp),%rax
  add    $0x24,%rax
  mov    (%rax),%eax
  add    %edx,%eax
  add    %eax,%ebx
  rol    $0x7,%ebx
  mov    %r14d,%eax
  xor    %r13d,%eax
  and    %ebx,%eax
  xor    %r13d,%eax
  mov    %eax,%edx
  mov    -0x30(%rbp),%rax
  add    $0x28,%rax
  mov    (%rax),%eax
  add    %edx,%eax
  add    %eax,%r12d
  rol    $0xb,%r12d
  mov    %ebx,%eax
  xor    %r14d,%eax
  and    %r12d,%eax
  xor    %r14d,%eax
  mov    %eax,%edx
  mov    -0x30(%rbp),%rax
  add    $0x2c,%rax
  mov    (%rax),%eax
  add    %edx,%eax
  add    %eax,%r13d
  ror    $0xd,%r13d
  mov    %r12d,%eax
  xor    %ebx,%eax
  and    %r13d,%eax
  xor    %ebx,%eax
  mov    %eax,%edx
  mov    -0x30(%rbp),%rax
  add    $0x30,%rax
  mov    (%rax),%eax
  add    %edx,%eax
  add    %eax,%r14d
  rol    $0x3,%r14d
  mov    %r13d,%eax
  xor    %r12d,%eax
  and    %r14d,%eax
  xor    %r12d,%eax
  mov    %eax,%edx
  mov    -0x30(%rbp),%rax
  add    $0x34,%rax
  mov    (%rax),%eax
  add    %edx,%eax
  add    %eax,%ebx
  rol    $0x7,%ebx
  mov    %r14d,%eax
  xor    %r13d,%eax
  and    %ebx,%eax
  xor    %r13d,%eax
  mov    %eax,%edx
  mov    -0x30(%rbp),%rax
  add    $0x38,%rax
  mov    (%rax),%eax
  add    %edx,%eax
  add    %eax,%r12d
  rol    $0xb,%r12d
  mov    %ebx,%eax
  xor    %r14d,%eax
  and    %r12d,%eax
  xor    %r14d,%eax
  mov    %eax,%edx
  mov    -0x30(%rbp),%rax
  add    $0x3c,%rax
  mov    (%rax),%eax
  add    %edx,%eax
  add    %eax,%r13d
  ror    $0xd,%r13d
  mov    %r12d,%eax
  or     %ebx,%eax
  and    %r13d,%eax
  mov    %eax,%edx
  mov    %r12d,%eax
  and    %ebx,%eax
  or     %eax,%edx
  mov    -0x30(%rbp),%rax
  mov    (%rax),%eax
  add    %edx,%eax
  add    %r14d,%eax
  lea    0x5a827999(%rax),%r14d
  rol    $0x3,%r14d
  mov    %r13d,%eax
  or     %r12d,%eax
  and    %r14d,%eax
  mov    %eax,%edx
  mov    %r13d,%eax
  and    %r12d,%eax
  or     %eax,%edx
  mov    -0x30(%rbp),%rax
  add    $0x10,%rax
  mov    (%rax),%eax
  add    %edx,%eax
  add    %ebx,%eax
  lea    0x5a827999(%rax),%ebx
  rol    $0x5,%ebx
  mov    %r14d,%eax
  or     %r13d,%eax
  and    %ebx,%eax
  mov    %eax,%edx
  mov    %r14d,%eax
  and    %r13d,%eax
  or     %eax,%edx
  mov    -0x30(%rbp),%rax
  add    $0x20,%rax
  mov    (%rax),%eax
  add    %edx,%eax
  add    %r12d,%eax
  lea    0x5a827999(%rax),%r12d
  rol    $0x9,%r12d
  mov    %ebx,%eax
  or     %r14d,%eax
  and    %r12d,%eax
  mov    %eax,%edx
  mov    %ebx,%eax
  and    %r14d,%eax
  or     %eax,%edx
  mov    -0x30(%rbp),%rax
  add    $0x30,%rax
  mov    (%rax),%eax
  add    %edx,%eax
  add    %r13d,%eax
  lea    0x5a827999(%rax),%r13d
  rol    $0xd,%r13d
  mov    %r12d,%eax
  or     %ebx,%eax
  and    %r13d,%eax
  mov    %eax,%edx
  mov    %r12d,%eax
  and    %ebx,%eax
  or     %eax,%edx
  mov    -0x30(%rbp),%rax
  add    $0x4,%rax
  mov    (%rax),%eax
  add    %edx,%eax
  add    %r14d,%eax
  lea    0x5a827999(%rax),%r14d
  rol    $0x3,%r14d
  mov    %r13d,%eax
  or     %r12d,%eax
  and    %r14d,%eax
  mov    %eax,%edx
  mov    %r13d,%eax
  and    %r12d,%eax
  or     %eax,%edx
  mov    -0x30(%rbp),%rax
  add    $0x14,%rax
  mov    (%rax),%eax
  add    %edx,%eax
  add    %ebx,%eax
  lea    0x5a827999(%rax),%ebx
  rol    $0x5,%ebx
  mov    %r14d,%eax
  or     %r13d,%eax
  and    %ebx,%eax
  mov    %eax,%edx
  mov    %r14d,%eax
  and    %r13d,%eax
  or     %eax,%edx
  mov    -0x30(%rbp),%rax
  add    $0x24,%rax
  mov    (%rax),%eax
  add    %edx,%eax
  add    %r12d,%eax
  lea    0x5a827999(%rax),%r12d
  rol    $0x9,%r12d
  mov    %ebx,%eax
  or     %r14d,%eax
  and    %r12d,%eax
  mov    %eax,%edx
  mov    %ebx,%eax
  and    %r14d,%eax
  or     %eax,%edx
  mov    -0x30(%rbp),%rax
  add    $0x34,%rax
  mov    (%rax),%eax
  add    %edx,%eax
  add    %r13d,%eax
  lea    0x5a827999(%rax),%r13d
  rol    $0xd,%r13d
  mov    %r12d,%eax
  or     %ebx,%eax
  and    %r13d,%eax
  mov    %eax,%edx
  mov    %r12d,%eax
  and    %ebx,%eax
  or     %eax,%edx
  mov    -0x30(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%eax
  add    %edx,%eax
  add    %r14d,%eax
  lea    0x5a827999(%rax),%r14d
  rol    $0x3,%r14d
  mov    %r13d,%eax
  or     %r12d,%eax
  and    %r14d,%eax
  mov    %eax,%edx
  mov    %r13d,%eax
  and    %r12d,%eax
  or     %eax,%edx
  mov    -0x30(%rbp),%rax
  add    $0x18,%rax
  mov    (%rax),%eax
  add    %edx,%eax
  add    %ebx,%eax
  lea    0x5a827999(%rax),%ebx
  rol    $0x5,%ebx
  mov    %r14d,%eax
  or     %r13d,%eax
  and    %ebx,%eax
  mov    %eax,%edx
  mov    %r14d,%eax
  and    %r13d,%eax
  or     %eax,%edx
  mov    -0x30(%rbp),%rax
  add    $0x28,%rax
  mov    (%rax),%eax
  add    %edx,%eax
  add    %r12d,%eax
  lea    0x5a827999(%rax),%r12d
  rol    $0x9,%r12d
  mov    %ebx,%eax
  or     %r14d,%eax
  and    %r12d,%eax
  mov    %eax,%edx
  mov    %ebx,%eax
  and    %r14d,%eax
  or     %eax,%edx
  mov    -0x30(%rbp),%rax
  add    $0x38,%rax
  mov    (%rax),%eax
  add    %edx,%eax
  add    %r13d,%eax
  lea    0x5a827999(%rax),%r13d
  rol    $0xd,%r13d
  mov    %r12d,%eax
  or     %ebx,%eax
  and    %r13d,%eax
  mov    %eax,%edx
  mov    %r12d,%eax
  and    %ebx,%eax
  or     %eax,%edx
  mov    -0x30(%rbp),%rax
  add    $0xc,%rax
  mov    (%rax),%eax
  add    %edx,%eax
  add    %r14d,%eax
  lea    0x5a827999(%rax),%r14d
  rol    $0x3,%r14d
  mov    %r13d,%eax
  or     %r12d,%eax
  and    %r14d,%eax
  mov    %eax,%edx
  mov    %r13d,%eax
  and    %r12d,%eax
  or     %eax,%edx
  mov    -0x30(%rbp),%rax
  add    $0x1c,%rax
  mov    (%rax),%eax
  add    %edx,%eax
  add    %ebx,%eax
  lea    0x5a827999(%rax),%ebx
  rol    $0x5,%ebx
  mov    %r14d,%eax
  or     %r13d,%eax
  and    %ebx,%eax
  mov    %eax,%edx
  mov    %r14d,%eax
  and    %r13d,%eax
  or     %eax,%edx
  mov    -0x30(%rbp),%rax
  add    $0x2c,%rax
  mov    (%rax),%eax
  add    %edx,%eax
  add    %r12d,%eax
  lea    0x5a827999(%rax),%r12d
  rol    $0x9,%r12d
  mov    %ebx,%eax
  or     %r14d,%eax
  and    %r12d,%eax
  mov    %eax,%edx
  mov    %ebx,%eax
  and    %r14d,%eax
  or     %eax,%edx
  mov    -0x30(%rbp),%rax
  add    $0x3c,%rax
  mov    (%rax),%eax
  add    %edx,%eax
  add    %r13d,%eax
  lea    0x5a827999(%rax),%r13d
  rol    $0xd,%r13d
  mov    %r13d,%eax
  xor    %r12d,%eax
  xor    %ebx,%eax
  mov    %eax,%edx
  mov    -0x30(%rbp),%rax
  mov    (%rax),%eax
  add    %edx,%eax
  add    %r14d,%eax
  lea    0x6ed9eba1(%rax),%r14d
  rol    $0x3,%r14d
  mov    %r14d,%eax
  xor    %r13d,%eax
  xor    %r12d,%eax
  mov    %eax,%edx
  mov    -0x30(%rbp),%rax
  add    $0x20,%rax
  mov    (%rax),%eax
  add    %edx,%eax
  add    %ebx,%eax
  lea    0x6ed9eba1(%rax),%ebx
  rol    $0x9,%ebx
  mov    %ebx,%eax
  xor    %r14d,%eax
  xor    %r13d,%eax
  mov    %eax,%edx
  mov    -0x30(%rbp),%rax
  add    $0x10,%rax
  mov    (%rax),%eax
  add    %edx,%eax
  add    %r12d,%eax
  lea    0x6ed9eba1(%rax),%r12d
  rol    $0xb,%r12d
  mov    %r12d,%eax
  xor    %ebx,%eax
  xor    %r14d,%eax
  mov    %eax,%edx
  mov    -0x30(%rbp),%rax
  add    $0x30,%rax
  mov    (%rax),%eax
  add    %edx,%eax
  add    %r13d,%eax
  lea    0x6ed9eba1(%rax),%r13d
  rol    $0xf,%r13d
  mov    %r13d,%eax
  xor    %r12d,%eax
  xor    %ebx,%eax
  mov    %eax,%edx
  mov    -0x30(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%eax
  add    %edx,%eax
  add    %r14d,%eax
  lea    0x6ed9eba1(%rax),%r14d
  rol    $0x3,%r14d
  mov    %r14d,%eax
  xor    %r13d,%eax
  xor    %r12d,%eax
  mov    %eax,%edx
  mov    -0x30(%rbp),%rax
  add    $0x28,%rax
  mov    (%rax),%eax
  add    %edx,%eax
  add    %ebx,%eax
  lea    0x6ed9eba1(%rax),%ebx
  rol    $0x9,%ebx
  mov    %ebx,%eax
  xor    %r14d,%eax
  xor    %r13d,%eax
  mov    %eax,%edx
  mov    -0x30(%rbp),%rax
  add    $0x18,%rax
  mov    (%rax),%eax
  add    %edx,%eax
  add    %r12d,%eax
  lea    0x6ed9eba1(%rax),%r12d
  rol    $0xb,%r12d
  mov    %r12d,%eax
  xor    %ebx,%eax
  xor    %r14d,%eax
  mov    %eax,%edx
  mov    -0x30(%rbp),%rax
  add    $0x38,%rax
  mov    (%rax),%eax
  add    %edx,%eax
  add    %r13d,%eax
  lea    0x6ed9eba1(%rax),%r13d
  rol    $0xf,%r13d
  mov    %r13d,%eax
  xor    %r12d,%eax
  xor    %ebx,%eax
  mov    %eax,%edx
  mov    -0x30(%rbp),%rax
  add    $0x4,%rax
  mov    (%rax),%eax
  add    %edx,%eax
  add    %r14d,%eax
  lea    0x6ed9eba1(%rax),%r14d
  rol    $0x3,%r14d
  mov    %r14d,%eax
  xor    %r13d,%eax
  xor    %r12d,%eax
  mov    %eax,%edx
  mov    -0x30(%rbp),%rax
  add    $0x24,%rax
  mov    (%rax),%eax
  add    %edx,%eax
  add    %ebx,%eax
  lea    0x6ed9eba1(%rax),%ebx
  rol    $0x9,%ebx
  mov    %ebx,%eax
  xor    %r14d,%eax
  xor    %r13d,%eax
  mov    %eax,%edx
  mov    -0x30(%rbp),%rax
  add    $0x14,%rax
  mov    (%rax),%eax
  add    %edx,%eax
  add    %r12d,%eax
  lea    0x6ed9eba1(%rax),%r12d
  rol    $0xb,%r12d
  mov    %r12d,%eax
  xor    %ebx,%eax
  xor    %r14d,%eax
  mov    %eax,%edx
  mov    -0x30(%rbp),%rax
  add    $0x34,%rax
  mov    (%rax),%eax
  add    %edx,%eax
  add    %r13d,%eax
  lea    0x6ed9eba1(%rax),%r13d
  rol    $0xf,%r13d
  mov    %r13d,%eax
  xor    %r12d,%eax
  xor    %ebx,%eax
  mov    %eax,%edx
  mov    -0x30(%rbp),%rax
  add    $0xc,%rax
  mov    (%rax),%eax
  add    %edx,%eax
  add    %r14d,%eax
  lea    0x6ed9eba1(%rax),%r14d
  rol    $0x3,%r14d
  mov    %r14d,%eax
  xor    %r13d,%eax
  xor    %r12d,%eax
  mov    %eax,%edx
  mov    -0x30(%rbp),%rax
  add    $0x2c,%rax
  mov    (%rax),%eax
  add    %edx,%eax
  add    %ebx,%eax
  lea    0x6ed9eba1(%rax),%ebx
  rol    $0x9,%ebx
  mov    %ebx,%eax
  xor    %r14d,%eax
  xor    %r13d,%eax
  mov    %eax,%edx
  mov    -0x30(%rbp),%rax
  add    $0x1c,%rax
  mov    (%rax),%eax
  add    %edx,%eax
  add    %r12d,%eax
  lea    0x6ed9eba1(%rax),%r12d
  rol    $0xb,%r12d
  mov    %r12d,%eax
  xor    %ebx,%eax
  xor    %r14d,%eax
  mov    %eax,%edx
  mov    -0x30(%rbp),%rax
  add    $0x3c,%rax
  mov    (%rax),%eax
  add    %edx,%eax
  add    %r13d,%eax
  lea    0x6ed9eba1(%rax),%r13d
  rol    $0xf,%r13d
  mov    -0x28(%rbp),%rax
  mov    (%rax),%eax
  lea    (%r14,%rax,1),%edx
  mov    -0x28(%rbp),%rax
  mov    %edx,(%rax)
  mov    -0x28(%rbp),%rax
  add    $0x4,%rax
  mov    (%rax),%edx
  mov    -0x28(%rbp),%rax
  add    $0x4,%rax
  add    %r13d,%edx
  mov    %edx,(%rax)
  mov    -0x28(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%edx
  mov    -0x28(%rbp),%rax
  add    $0x8,%rax
  add    %r12d,%edx
  mov    %edx,(%rax)
  mov    -0x28(%rbp),%rax
  add    $0xc,%rax
  mov    (%rax),%edx
  mov    -0x28(%rbp),%rax
  add    $0xc,%rax
  add    %ebx,%edx
  mov    %edx,(%rax)
  nop
  pop    %rbx
  pop    %r12
  pop    %r13
  pop    %r14
  pop    %rbp
  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;
}
```