user: 请将这段汇编代码片段转换成等效的C代码:

```asm
<sha1_process_part2>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  mov    %rdi,-0x38(%rbp)
  mov    %rsi,-0x40(%rbp)
  mov    -0x38(%rbp),%rax
  mov    (%rax),%eax
  mov    %eax,-0x20(%rbp)
  mov    -0x38(%rbp),%rax
  mov    0x4(%rax),%eax
  mov    %eax,-0x1c(%rbp)
  mov    -0x38(%rbp),%rax
  mov    0x8(%rax),%eax
  mov    %eax,-0x18(%rbp)
  mov    -0x38(%rbp),%rax
  mov    0xc(%rax),%eax
  mov    %eax,-0x14(%rbp)
  mov    -0x38(%rbp),%rax
  mov    0x10(%rax),%eax
  mov    %eax,-0x10(%rbp)
  movl   $0x0,-0xc(%rbp)
  movl   $0x0,-0x8(%rbp)
  movl   $0x0,-0x24(%rbp)
  jmp    L75
L30:
  cmpl   $0x0,-0x24(%rbp)
  js     L91
  cmpl   $0x13,-0x24(%rbp)
  jg     L91
  mov    -0x1c(%rbp),%eax
  and    -0x18(%rbp),%eax
  mov    %eax,%edx
  mov    -0x1c(%rbp),%eax
  not    %eax
  and    -0x14(%rbp),%eax
  or     %edx,%eax
  mov    %eax,-0xc(%rbp)
  movl   $0x5a827999,-0x8(%rbp)
  jmp    L119
L91:
  cmpl   $0x13,-0x24(%rbp)
  jle    L58
  cmpl   $0x27,-0x24(%rbp)
  jg     L58
  mov    -0x1c(%rbp),%eax
  xor    -0x18(%rbp),%eax
  xor    -0x14(%rbp),%eax
  mov    %eax,-0xc(%rbp)
  movl   $0x6ed9eba1,-0x8(%rbp)
  jmp    L119
L58:
  cmpl   $0x27,-0x24(%rbp)
  jle    L92
  cmpl   $0x3b,-0x24(%rbp)
  jg     L92
  mov    -0x18(%rbp),%eax
  or     -0x14(%rbp),%eax
  and    -0x1c(%rbp),%eax
  mov    %eax,%edx
  mov    -0x18(%rbp),%eax
  and    -0x14(%rbp),%eax
  or     %edx,%eax
  mov    %eax,-0xc(%rbp)
  movl   $0x8f1bbcdc,-0x8(%rbp)
  jmp    L119
L92:
  cmpl   $0x3b,-0x24(%rbp)
  jle    L119
  cmpl   $0x4f,-0x24(%rbp)
  jg     L119
  mov    -0x1c(%rbp),%eax
  xor    -0x18(%rbp),%eax
  xor    -0x14(%rbp),%eax
  mov    %eax,-0xc(%rbp)
  movl   $0xca62c1d6,-0x8(%rbp)
L119:
  mov    -0x20(%rbp),%eax
  shl    $0x5,%eax
  mov    %eax,%edx
  mov    -0x20(%rbp),%eax
  sar    $0x1b,%eax
  or     %eax,%edx
  mov    -0xc(%rbp),%eax
  add    %eax,%edx
  mov    -0x10(%rbp),%eax
  add    %eax,%edx
  mov    -0x8(%rbp),%eax
  add    %eax,%edx
  mov    -0x24(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rcx
  mov    -0x40(%rbp),%rax
  add    %rcx,%rax
  mov    (%rax),%eax
  add    %edx,%eax
  mov    %eax,-0x4(%rbp)
  mov    -0x14(%rbp),%eax
  mov    %eax,-0x10(%rbp)
  mov    -0x18(%rbp),%eax
  mov    %eax,-0x14(%rbp)
  mov    -0x1c(%rbp),%eax
  shl    $0x1e,%eax
  mov    %eax,%edx
  mov    -0x1c(%rbp),%eax
  sar    $0x2,%eax
  or     %edx,%eax
  mov    %eax,-0x18(%rbp)
  mov    -0x20(%rbp),%eax
  mov    %eax,-0x1c(%rbp)
  mov    -0x4(%rbp),%eax
  mov    %eax,-0x20(%rbp)
  addl   $0x1,-0x24(%rbp)
L75:
  cmpl   $0x4f,-0x24(%rbp)
  jle    L30
  mov    -0x38(%rbp),%rax
  mov    (%rax),%edx
  mov    -0x20(%rbp),%eax
  add    %eax,%edx
  mov    -0x38(%rbp),%rax
  mov    %edx,(%rax)
  mov    -0x38(%rbp),%rax
  add    $0x4,%rax
  mov    (%rax),%ecx
  mov    -0x38(%rbp),%rax
  add    $0x4,%rax
  mov    -0x1c(%rbp),%edx
  add    %ecx,%edx
  mov    %edx,(%rax)
  mov    -0x38(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%ecx
  mov    -0x38(%rbp),%rax
  add    $0x8,%rax
  mov    -0x18(%rbp),%edx
  add    %ecx,%edx
  mov    %edx,(%rax)
  mov    -0x38(%rbp),%rax
  add    $0xc,%rax
  mov    (%rax),%ecx
  mov    -0x38(%rbp),%rax
  add    $0xc,%rax
  mov    -0x14(%rbp),%edx
  add    %ecx,%edx
  mov    %edx,(%rax)
  mov    -0x38(%rbp),%rax
  add    $0x10,%rax
  mov    (%rax),%ecx
  mov    -0x38(%rbp),%rax
  add    $0x10,%rax
  mov    -0x10(%rbp),%edx
  add    %ecx,%edx
  mov    %edx,(%rax)
  nop
  pop    %rbp
  ret
```

assistant: ```c
void sha1_process_part2(uint32_t abcde[5], uint32_t *w) {
  uint32_t i;
  uint32_t a = abcde[0];
  uint32_t b = abcde[1];
  uint32_t c = abcde[2];
  uint32_t d = abcde[3];
  uint32_t e = abcde[4];
  uint32_t f = 0;
  uint32_t k = 0;
  for (i = 0; i <= 79; i++) {
    if (i >= 0 && i <= 19) {
      f = (b & c) | ((~b) & d);
      k = 0x5A827999;
    } else if (i >= 20 && i <= 39) {
      f = b ^ c ^ d;
      k = 0x6ED9EBA1;
    } else if (i >= 40 && i <= 59) {
      f = (b & c) | (b & d) | (c & d);
      k = 0x8F1BBCDC;
    } else if (i >= 60 && i <= 79) {
      f = b ^ c ^ d;
      k = 0xCA62C1D6;
    }
    uint32_t temp = (((a) << (5)) | ((a) >> (32 - (5)))) + f + e + k + w[i];
    e = d;
    d = c;
    c = (((b) << (30)) | ((b) >> (32 - (30))));
    b = a;
    a = temp;
  }
  abcde[0] += a;
  abcde[1] += b;
  abcde[2] += c;
  abcde[3] += d;
  abcde[4] += e;
}
```