user: Please show me the C implementation that matches the assembly code listed below:

```asm
<levdurb>:
  endbr64
  mov    %rdi,%rax
  movss  D1(%rip),%xmm1
  mov    %rsi,%rdi
  mov    %ecx,%r9d
  movl   $0x3f800000,(%rax)
  movss  (%rdx),%xmm0
  comiss %xmm0,%xmm1
  jbe    L6
  test   %ecx,%ecx
  jle    L11
  push   %r12
  lea    0x1(%r9),%edx
  mov    %ecx,%ecx
  push   %rbp
  lea    (%rax,%rdx,4),%rdx
  lea    0x0(,%rcx,4),%r12
  lea    0x4(%rax),%rbp
  sub    $0x8,%rsp
  cmp    %rdx,%rsi
  jae    L47
  lea    (%rsi,%r12,1),%rdx
  cmp    %rdx,%rbp
  jb     L73
L47:
  mov    %r12,%rdx
  xor    %esi,%esi
  call   <memset@plt>
  add    $0x8,%rsp
  mov    %r12,%rdx
  mov    %rbp,%rdi
  xor    %esi,%esi
  pop    %rbp
  pop    %r12
  jmp    1050 <memset@plt>
  nopl   0x0(%rax)
L6:
  movss  0x4(%rdx),%xmm4
  movss  D19(%rip),%xmm5
  xorps  %xmm5,%xmm4
  divss  %xmm0,%xmm4
  movss  %xmm4,(%rsi)
  movss  %xmm4,0x4(%rax)
  mulss  0x4(%rdx),%xmm4
  addss  (%rdx),%xmm4
  cmp    $0x1,%ecx
  jle    L11
  lea    0x4(%rsi),%rsi
  lea    0x8(%rax),%rdi
  mov    $0x1,%r10d
  lea    0x4(%rdx),%r8
  lea    0x4(%rax),%r11
  nopl   (%rax)
L70:
  movss  0x4(%r8),%xmm1
  mov    %r11,%rax
  mov    %r8,%rcx
  mov    %r11,%rdx
  nopw   0x0(%rax,%rax,1)
L52:
  movss  (%rdx),%xmm0
  mulss  (%rcx),%xmm0
  add    $0x4,%rdx
  sub    $0x4,%rcx
  addss  %xmm0,%xmm1
  cmp    %rdi,%rdx
  jne    L52
  movaps %xmm1,%xmm2
  add    $0x1,%r10d
  lea    -0x4(%rdi),%rdx
  xorps  %xmm5,%xmm2
  mov    %r10d,%ecx
  divss  %xmm4,%xmm2
  sar    %ecx
  sub    $0x1,%ecx
  lea    (%r11,%rcx,4),%rcx
  mulss  %xmm2,%xmm1
  movss  %xmm2,(%rsi)
  addss  %xmm1,%xmm4
  jmp    L84
  nopl   (%rax)
L76:
  movss  (%rsi),%xmm2
  add    $0x4,%rax
L84:
  movss  (%rax),%xmm3
  movss  (%rdx),%xmm0
  sub    $0x4,%rdx
  movaps %xmm3,%xmm1
  mulss  %xmm2,%xmm1
  addss  %xmm0,%xmm1
  mulss  %xmm2,%xmm0
  movss  %xmm1,0x4(%rdx)
  addss  %xmm3,%xmm0
  movss  %xmm0,(%rax)
  cmp    %rcx,%rax
  jne    L76
  movss  (%rsi),%xmm0
  add    $0x4,%rdi
  add    $0x4,%rsi
  add    $0x4,%r8
  movss  %xmm0,-0x4(%rdi)
  cmp    %r9d,%r10d
  jne    L70
  ret
L11:
  ret
L73:
  xor    %edx,%edx
  nop
L31:
  movl   $0x0,(%rdi,%rdx,4)
  movl   $0x0,0x4(%rax,%rdx,4)
  add    $0x1,%rdx
  cmp    %rcx,%rdx
  jne    L31
  add    $0x8,%rsp
  pop    %rbp
  pop    %r12
  ret
```

tool_calls: name: disassemble_data
arguments: label: D1
datatype: byte[4]
name: disassemble_data
arguments: label: D19
datatype: byte[4]

tool: {"D1": [0x00,0x00,0x80,0x25]}

tool: {"D19": [0x00,0x00,0x00,0x80]}

assistant: ```c
void levdurb(float *a, float *k, float *r, int order) {
  float sum;
  float alpha;
  int m;
  int m_h;
  int i;
  a[0] = 1.0f;
  if (r[0] < 2.220446049250313e-016f) {
    for (i = 0; i < order; i++) {
      k[i] = 0;
      a[i + 1] = 0;
    }
  } else {
    a[1] = k[0] = -r[1] / r[0];
    alpha = r[0] + r[1] * k[0];
    for (m = 1; m < order; m++) {
      sum = r[m + 1];
      for (i = 0; i < m; i++)
        sum += a[i + 1] * r[m - i];
      k[m] = -sum / alpha;
      alpha += k[m] * sum;
      m_h = (m + 1) >> 1;
      for (i = 0; i < m_h; i++) {
        sum = a[i + 1] + k[m] * a[m - i];
        a[m - i] += k[m] * a[i + 1];
        a[i + 1] = sum;
      }
      a[m + 1] = k[m];
    }
  }
}
```