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

```asm
<dradb3>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  sub    $0x10,%rsp
  mov    %edi,-0x64(%rbp)
  mov    %esi,-0x68(%rbp)
  mov    %rdx,-0x70(%rbp)
  mov    %rcx,-0x78(%rbp)
  mov    %r8,-0x80(%rbp)
  mov    %r9,-0x88(%rbp)
  mov    -0x68(%rbp),%eax
  imul   -0x64(%rbp),%eax
  mov    %eax,-0x34(%rbp)
  movl   $0x0,-0x54(%rbp)
  mov    -0x34(%rbp),%eax
  add    %eax,%eax
  mov    %eax,-0x30(%rbp)
  mov    -0x64(%rbp),%eax
  add    %eax,%eax
  mov    %eax,-0x50(%rbp)
  mov    -0x64(%rbp),%eax
  lea    (%rax,%rax,1),%edx
  mov    -0x64(%rbp),%eax
  add    %edx,%eax
  mov    %eax,-0x2c(%rbp)
  movl   $0x0,-0x4c(%rbp)
  movl   $0x0,-0x58(%rbp)
  jmp    L59
L52:
  mov    -0x50(%rbp),%eax
  cltq
  shl    $0x2,%rax
  lea    -0x4(%rax),%rdx
  mov    -0x70(%rbp),%rax
  add    %rdx,%rax
  movss  (%rax),%xmm0
  addss  %xmm0,%xmm0
  movss  %xmm0,-0x28(%rbp)
  mov    -0x4c(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x70(%rbp),%rax
  add    %rdx,%rax
  movss  (%rax),%xmm1
  movss  D53(%rip),%xmm0
  mulss  -0x28(%rbp),%xmm0
  addss  %xmm1,%xmm0
  movss  %xmm0,-0x24(%rbp)
  mov    -0x4c(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x70(%rbp),%rax
  add    %rdx,%rax
  movss  (%rax),%xmm0
  mov    -0x54(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x78(%rbp),%rax
  add    %rdx,%rax
  addss  -0x28(%rbp),%xmm0
  movss  %xmm0,(%rax)
  mov    -0x50(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x70(%rbp),%rax
  add    %rdx,%rax
  movss  (%rax),%xmm0
  movaps %xmm0,%xmm1
  addss  %xmm0,%xmm1
  movss  D23(%rip),%xmm0
  mulss  %xmm1,%xmm0
  movss  %xmm0,-0x14(%rbp)
  mov    -0x54(%rbp),%edx
  mov    -0x34(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x78(%rbp),%rax
  add    %rdx,%rax
  movss  -0x24(%rbp),%xmm0
  subss  -0x14(%rbp),%xmm0
  movss  %xmm0,(%rax)
  mov    -0x54(%rbp),%edx
  mov    -0x30(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x78(%rbp),%rax
  add    %rdx,%rax
  movss  -0x24(%rbp),%xmm0
  addss  -0x14(%rbp),%xmm0
  movss  %xmm0,(%rax)
  mov    -0x64(%rbp),%eax
  add    %eax,-0x54(%rbp)
  mov    -0x2c(%rbp),%eax
  add    %eax,-0x50(%rbp)
  mov    -0x2c(%rbp),%eax
  add    %eax,-0x4c(%rbp)
  addl   $0x1,-0x58(%rbp)
L59:
  mov    -0x58(%rbp),%eax
  cmp    -0x68(%rbp),%eax
  jl     L52
  cmpl   $0x1,-0x64(%rbp)
  je     L46
  movl   $0x0,-0x54(%rbp)
  mov    -0x64(%rbp),%eax
  add    %eax,%eax
  mov    %eax,-0x50(%rbp)
  movl   $0x0,-0x58(%rbp)
  jmp    L17
L39:
  mov    -0x54(%rbp),%eax
  lea    (%rax,%rax,1),%edx
  mov    -0x54(%rbp),%eax
  add    %edx,%eax
  mov    %eax,-0x44(%rbp)
  mov    -0x44(%rbp),%edx
  mov    -0x50(%rbp),%eax
  add    %edx,%eax
  mov    %eax,-0x4c(%rbp)
  mov    -0x4c(%rbp),%eax
  mov    %eax,-0x48(%rbp)
  mov    -0x54(%rbp),%eax
  mov    %eax,-0x40(%rbp)
  mov    -0x54(%rbp),%edx
  mov    -0x34(%rbp),%eax
  add    %edx,%eax
  mov    %eax,-0x3c(%rbp)
  mov    -0x3c(%rbp),%edx
  mov    -0x34(%rbp),%eax
  add    %edx,%eax
  mov    %eax,-0x38(%rbp)
  movl   $0x2,-0x5c(%rbp)
  jmp    L53
L14:
  addl   $0x2,-0x4c(%rbp)
  subl   $0x2,-0x48(%rbp)
  addl   $0x2,-0x44(%rbp)
  addl   $0x2,-0x40(%rbp)
  addl   $0x2,-0x3c(%rbp)
  addl   $0x2,-0x38(%rbp)
  mov    -0x4c(%rbp),%eax
  cltq
  shl    $0x2,%rax
  lea    -0x4(%rax),%rdx
  mov    -0x70(%rbp),%rax
  add    %rdx,%rax
  movss  (%rax),%xmm1
  mov    -0x48(%rbp),%eax
  cltq
  shl    $0x2,%rax
  lea    -0x4(%rax),%rdx
  mov    -0x70(%rbp),%rax
  add    %rdx,%rax
  movss  (%rax),%xmm0
  addss  %xmm1,%xmm0
  movss  %xmm0,-0x28(%rbp)
  mov    -0x44(%rbp),%eax
  cltq
  shl    $0x2,%rax
  lea    -0x4(%rax),%rdx
  mov    -0x70(%rbp),%rax
  add    %rdx,%rax
  movss  (%rax),%xmm1
  movss  D53(%rip),%xmm0
  mulss  -0x28(%rbp),%xmm0
  addss  %xmm1,%xmm0
  movss  %xmm0,-0x24(%rbp)
  mov    -0x44(%rbp),%eax
  cltq
  shl    $0x2,%rax
  lea    -0x4(%rax),%rdx
  mov    -0x70(%rbp),%rax
  add    %rdx,%rax
  movss  (%rax),%xmm0
  mov    -0x40(%rbp),%eax
  cltq
  shl    $0x2,%rax
  lea    -0x4(%rax),%rdx
  mov    -0x78(%rbp),%rax
  add    %rdx,%rax
  addss  -0x28(%rbp),%xmm0
  movss  %xmm0,(%rax)
  mov    -0x4c(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x70(%rbp),%rax
  add    %rdx,%rax
  movss  (%rax),%xmm0
  mov    -0x48(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x70(%rbp),%rax
  add    %rdx,%rax
  movss  (%rax),%xmm1
  subss  %xmm1,%xmm0
  movss  %xmm0,-0x20(%rbp)
  mov    -0x44(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x70(%rbp),%rax
  add    %rdx,%rax
  movss  (%rax),%xmm1
  movss  D53(%rip),%xmm0
  mulss  -0x20(%rbp),%xmm0
  addss  %xmm1,%xmm0
  movss  %xmm0,-0x1c(%rbp)
  mov    -0x44(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x70(%rbp),%rax
  add    %rdx,%rax
  movss  (%rax),%xmm0
  mov    -0x40(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x78(%rbp),%rax
  add    %rdx,%rax
  addss  -0x20(%rbp),%xmm0
  movss  %xmm0,(%rax)
  mov    -0x4c(%rbp),%eax
  cltq
  shl    $0x2,%rax
  lea    -0x4(%rax),%rdx
  mov    -0x70(%rbp),%rax
  add    %rdx,%rax
  movss  (%rax),%xmm0
  mov    -0x48(%rbp),%eax
  cltq
  shl    $0x2,%rax
  lea    -0x4(%rax),%rdx
  mov    -0x70(%rbp),%rax
  add    %rdx,%rax
  movss  (%rax),%xmm2
  movaps %xmm0,%xmm1
  subss  %xmm2,%xmm1
  movss  D23(%rip),%xmm0
  mulss  %xmm1,%xmm0
  movss  %xmm0,-0x18(%rbp)
  mov    -0x4c(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x70(%rbp),%rax
  add    %rdx,%rax
  movss  (%rax),%xmm1
  mov    -0x48(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x70(%rbp),%rax
  add    %rdx,%rax
  movss  (%rax),%xmm0
  addss  %xmm0,%xmm1
  movss  D23(%rip),%xmm0
  mulss  %xmm1,%xmm0
  movss  %xmm0,-0x14(%rbp)
  movss  -0x24(%rbp),%xmm0
  subss  -0x14(%rbp),%xmm0
  movss  %xmm0,-0x10(%rbp)
  movss  -0x24(%rbp),%xmm0
  addss  -0x14(%rbp),%xmm0
  movss  %xmm0,-0xc(%rbp)
  movss  -0x1c(%rbp),%xmm0
  addss  -0x18(%rbp),%xmm0
  movss  %xmm0,-0x8(%rbp)
  movss  -0x1c(%rbp),%xmm0
  subss  -0x18(%rbp),%xmm0
  movss  %xmm0,-0x4(%rbp)
  mov    -0x5c(%rbp),%eax
  cltq
  shl    $0x2,%rax
  lea    -0x8(%rax),%rdx
  mov    -0x80(%rbp),%rax
  add    %rdx,%rax
  movss  (%rax),%xmm0
  mulss  -0x10(%rbp),%xmm0
  mov    -0x5c(%rbp),%eax
  cltq
  shl    $0x2,%rax
  lea    -0x4(%rax),%rdx
  mov    -0x80(%rbp),%rax
  add    %rdx,%rax
  movss  (%rax),%xmm1
  mulss  -0x8(%rbp),%xmm1
  mov    -0x3c(%rbp),%eax
  cltq
  shl    $0x2,%rax
  lea    -0x4(%rax),%rdx
  mov    -0x78(%rbp),%rax
  add    %rdx,%rax
  subss  %xmm1,%xmm0
  movss  %xmm0,(%rax)
  mov    -0x5c(%rbp),%eax
  cltq
  shl    $0x2,%rax
  lea    -0x8(%rax),%rdx
  mov    -0x80(%rbp),%rax
  add    %rdx,%rax
  movss  (%rax),%xmm0
  movaps %xmm0,%xmm1
  mulss  -0x8(%rbp),%xmm1
  mov    -0x5c(%rbp),%eax
  cltq
  shl    $0x2,%rax
  lea    -0x4(%rax),%rdx
  mov    -0x80(%rbp),%rax
  add    %rdx,%rax
  movss  (%rax),%xmm0
  mulss  -0x10(%rbp),%xmm0
  mov    -0x3c(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x78(%rbp),%rax
  add    %rdx,%rax
  addss  %xmm1,%xmm0
  movss  %xmm0,(%rax)
  mov    -0x5c(%rbp),%eax
  cltq
  shl    $0x2,%rax
  lea    -0x8(%rax),%rdx
  mov    -0x88(%rbp),%rax
  add    %rdx,%rax
  movss  (%rax),%xmm0
  mulss  -0xc(%rbp),%xmm0
  mov    -0x5c(%rbp),%eax
  cltq
  shl    $0x2,%rax
  lea    -0x4(%rax),%rdx
  mov    -0x88(%rbp),%rax
  add    %rdx,%rax
  movss  (%rax),%xmm1
  mulss  -0x4(%rbp),%xmm1
  mov    -0x38(%rbp),%eax
  cltq
  shl    $0x2,%rax
  lea    -0x4(%rax),%rdx
  mov    -0x78(%rbp),%rax
  add    %rdx,%rax
  subss  %xmm1,%xmm0
  movss  %xmm0,(%rax)
  mov    -0x5c(%rbp),%eax
  cltq
  shl    $0x2,%rax
  lea    -0x8(%rax),%rdx
  mov    -0x88(%rbp),%rax
  add    %rdx,%rax
  movss  (%rax),%xmm0
  movaps %xmm0,%xmm1
  mulss  -0x4(%rbp),%xmm1
  mov    -0x5c(%rbp),%eax
  cltq
  shl    $0x2,%rax
  lea    -0x4(%rax),%rdx
  mov    -0x88(%rbp),%rax
  add    %rdx,%rax
  movss  (%rax),%xmm0
  mulss  -0xc(%rbp),%xmm0
  mov    -0x38(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x78(%rbp),%rax
  add    %rdx,%rax
  addss  %xmm1,%xmm0
  movss  %xmm0,(%rax)
  addl   $0x2,-0x5c(%rbp)
L53:
  mov    -0x5c(%rbp),%eax
  cmp    -0x64(%rbp),%eax
  jl     L14
  mov    -0x64(%rbp),%eax
  add    %eax,-0x54(%rbp)
  addl   $0x1,-0x58(%rbp)
L17:
  mov    -0x58(%rbp),%eax
  cmp    -0x68(%rbp),%eax
  jl     L39
  jmp    L8
L46:
  nop
L8:
  leave
  ret
```

assistant: ```c
void dradb3(int ido, int l1, float *cc, float *ch, float *wa1, float *wa2) {
  static float taur = -.5f;
  static float taui = .8660254037844386f;
  int i, k, t0, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10;
  float ci2, ci3, di2, di3, cr2, cr3, dr2, dr3, ti2, tr2;
  t0 = l1 * ido;
  t1 = 0;
  t2 = t0 << 1;
  t3 = ido << 1;
  t4 = ido + (ido << 1);
  t5 = 0;
  for (k = 0; k < l1; k++) {
    tr2 = cc[t3 - 1] + cc[t3 - 1];
    cr2 = cc[t5] + (taur * tr2);
    ch[t1] = cc[t5] + tr2;
    ci3 = taui * (cc[t3] + cc[t3]);
    ch[t1 + t0] = cr2 - ci3;
    ch[t1 + t2] = cr2 + ci3;
    t1 += ido;
    t3 += t4;
    t5 += t4;
  }
  if (ido == 1)
    return;
  t1 = 0;
  t3 = ido << 1;
  for (k = 0; k < l1; k++) {
    t7 = t1 + (t1 << 1);
    t6 = (t5 = t7 + t3);
    t8 = t1;
    t10 = (t9 = t1 + t0) + t0;
    for (i = 2; i < ido; i += 2) {
      t5 += 2;
      t6 -= 2;
      t7 += 2;
      t8 += 2;
      t9 += 2;
      t10 += 2;
      tr2 = cc[t5 - 1] + cc[t6 - 1];
      cr2 = cc[t7 - 1] + (taur * tr2);
      ch[t8 - 1] = cc[t7 - 1] + tr2;
      ti2 = cc[t5] - cc[t6];
      ci2 = cc[t7] + (taur * ti2);
      ch[t8] = cc[t7] + ti2;
      cr3 = taui * (cc[t5 - 1] - cc[t6 - 1]);
      ci3 = taui * (cc[t5] + cc[t6]);
      dr2 = cr2 - ci3;
      dr3 = cr2 + ci3;
      di2 = ci2 + cr3;
      di3 = ci2 - cr3;
      ch[t9 - 1] = wa1[i - 2] * dr2 - wa1[i - 1] * di2;
      ch[t9] = wa1[i - 2] * di2 + wa1[i - 1] * dr2;
      ch[t10 - 1] = wa2[i - 2] * dr3 - wa2[i - 1] * di3;
      ch[t10] = wa2[i - 2] * di3 + wa2[i - 1] * dr3;
    }
    t1 += ido;
  }
}
```