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

```asm
<silk_warped_autocorrelation_FLP>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  sub    $0x1e0,%rsp
  mov    %rdi,-0x1c8(%rbp)
  mov    %rsi,-0x1d0(%rbp)
  movss  %xmm0,-0x1d4(%rbp)
  mov    %edx,-0x1d8(%rbp)
  mov    %ecx,-0x1dc(%rbp)
  mov    %fs:0x28,%rax
  mov    %rax,-0x8(%rbp)
  xor    %eax,%eax
  lea    -0x1a0(%rbp),%rdx
  mov    $0x0,%eax
  mov    $0x19,%ecx
  mov    %rdx,%rdi
  rep stos %rax,%es:(%rdi)
  lea    -0xd0(%rbp),%rdx
  mov    $0x0,%eax
  mov    $0x19,%ecx
  mov    %rdx,%rdi
  rep stos %rax,%es:(%rdi)
  movl   $0x0,-0x1b8(%rbp)
  jmp    L29
L26:
  mov    -0x1b8(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x1d0(%rbp),%rax
  add    %rdx,%rax
  movss  (%rax),%xmm0
  cvtss2sd %xmm0,%xmm0
  movsd  %xmm0,-0x1b0(%rbp)
  movl   $0x0,-0x1b4(%rbp)
  jmp    L61
L41:
  mov    -0x1b4(%rbp),%eax
  cltq
  movsd  -0x1a0(%rbp,%rax,8),%xmm1
  pxor   %xmm2,%xmm2
  cvtss2sd -0x1d4(%rbp),%xmm2
  mov    -0x1b4(%rbp),%eax
  add    $0x1,%eax
  cltq
  movsd  -0x1a0(%rbp,%rax,8),%xmm0
  subsd  -0x1b0(%rbp),%xmm0
  mulsd  %xmm2,%xmm0
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0x1a8(%rbp)
  mov    -0x1b4(%rbp),%eax
  cltq
  movsd  -0x1b0(%rbp),%xmm0
  movsd  %xmm0,-0x1a0(%rbp,%rax,8)
  mov    -0x1b4(%rbp),%eax
  cltq
  movsd  -0xd0(%rbp,%rax,8),%xmm1
  movsd  -0x1a0(%rbp),%xmm0
  mulsd  -0x1b0(%rbp),%xmm0
  addsd  %xmm1,%xmm0
  mov    -0x1b4(%rbp),%eax
  cltq
  movsd  %xmm0,-0xd0(%rbp,%rax,8)
  mov    -0x1b4(%rbp),%eax
  add    $0x1,%eax
  cltq
  movsd  -0x1a0(%rbp,%rax,8),%xmm1
  pxor   %xmm2,%xmm2
  cvtss2sd -0x1d4(%rbp),%xmm2
  mov    -0x1b4(%rbp),%eax
  add    $0x2,%eax
  cltq
  movsd  -0x1a0(%rbp,%rax,8),%xmm0
  subsd  -0x1a8(%rbp),%xmm0
  mulsd  %xmm2,%xmm0
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0x1b0(%rbp)
  mov    -0x1b4(%rbp),%eax
  add    $0x1,%eax
  cltq
  movsd  -0x1a8(%rbp),%xmm0
  movsd  %xmm0,-0x1a0(%rbp,%rax,8)
  mov    -0x1b4(%rbp),%eax
  add    $0x1,%eax
  cltq
  movsd  -0xd0(%rbp,%rax,8),%xmm1
  movsd  -0x1a0(%rbp),%xmm0
  mulsd  -0x1a8(%rbp),%xmm0
  mov    -0x1b4(%rbp),%eax
  add    $0x1,%eax
  addsd  %xmm1,%xmm0
  cltq
  movsd  %xmm0,-0xd0(%rbp,%rax,8)
  addl   $0x2,-0x1b4(%rbp)
L61:
  mov    -0x1b4(%rbp),%eax
  cmp    -0x1dc(%rbp),%eax
  jl     L41
  mov    -0x1dc(%rbp),%eax
  cltq
  movsd  -0x1b0(%rbp),%xmm0
  movsd  %xmm0,-0x1a0(%rbp,%rax,8)
  mov    -0x1dc(%rbp),%eax
  cltq
  movsd  -0xd0(%rbp,%rax,8),%xmm1
  movsd  -0x1a0(%rbp),%xmm0
  mulsd  -0x1b0(%rbp),%xmm0
  addsd  %xmm1,%xmm0
  mov    -0x1dc(%rbp),%eax
  cltq
  movsd  %xmm0,-0xd0(%rbp,%rax,8)
  addl   $0x1,-0x1b8(%rbp)
L29:
  mov    -0x1b8(%rbp),%eax
  cmp    -0x1d8(%rbp),%eax
  jl     L26
  movl   $0x0,-0x1b4(%rbp)
  jmp    L25
L33:
  mov    -0x1b4(%rbp),%eax
  cltq
  movsd  -0xd0(%rbp,%rax,8),%xmm0
  mov    -0x1b4(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x1c8(%rbp),%rax
  add    %rdx,%rax
  cvtsd2ss %xmm0,%xmm0
  movss  %xmm0,(%rax)
  addl   $0x1,-0x1b4(%rbp)
L25:
  mov    -0x1dc(%rbp),%eax
  cmp    -0x1b4(%rbp),%eax
  jge    L33
  nop
  mov    -0x8(%rbp),%rax
  sub    %fs:0x28,%rax
  je     L3
  call   <__stack_chk_fail@plt>
L3:
  leave
  ret
```

assistant: ```c
void silk_warped_autocorrelation_FLP(float *corr, const float *input, const float warping, const int length, const int order) {
  int n, i;
  double tmp1, tmp2;
  double state[24 + 1] = {0};
  double C[24 + 1] = {0};
  ;
  for (n = 0; n < length; n++) {
    tmp1 = input[n];
    for (i = 0; i < order; i += 2) {
      tmp2 = state[i] + warping * (state[i + 1] - tmp1);
      state[i] = tmp1;
      C[i] += state[0] * tmp1;
      tmp1 = state[i + 1] + warping * (state[i + 2] - tmp2);
      state[i + 1] = tmp2;
      C[i + 1] += state[0] * tmp2;
    }
    state[order] = tmp1;
    C[order] += state[0] * tmp1;
  }
  for (i = 0; i < order + 1; i++) {
    corr[i] = (float)C[i];
  }
}
```