user: What would the C source look like for the assembly code provided here:

```asm
<levinson>:
  endbr64
  push   %r15
  mov    %esi,%r10d
  push   %r14
  push   %r13
  push   %r12
  push   %rbp
  push   %rbx
  sub    $0x208,%rsp
  mov    %fs:0x28,%rax
  mov    %rax,0x1f8(%rsp)
  xor    %eax,%eax
  and    $0xff,%r10d
  je     L51
  lea    0x10(%rsp),%r11
  mov    %rdi,%rbx
  mov    %rdx,%r12
  mov    %rcx,%rdx
  mov    %r11,%rdi
  movzbl %sil,%ecx
  rep stos %rax,%es:(%rdi)
  test   %rbx,%rbx
  je     L341
  movsd  (%rbx),%xmm4
L24:
  test   %r12,%r12
  je     L311
  movsd  (%r12),%xmm0
  movq   D6(%rip),%xmm3
L201:
  movsd  %xmm0,0x10(%rsp)
  xorpd  %xmm3,%xmm0
  movsd  %xmm0,(%rdx)
  cmp    $0x1,%r10d
  jle    L51
  lea    0x20(%rsp),%rax
  mov    %r11,%rcx
  mov    %rbx,%r15
  movapd D35(%rip),%xmm5
  mov    %rax,0x8(%rsp)
  lea    0x18(%rsp),%rax
  movsd  D11(%rip),%xmm6
  add    $0x1e0,%rdx
  mov    %rax,(%rsp)
  mov    $0x8,%r13d
  mov    $0x1,%r14d
  mov    $0x1,%r9d
  xchg   %ax,%ax
L117:
  mov    %r9d,%ebp
  add    $0x1,%r9d
  test   %r12,%r12
  je     L55
  movsd  (%r12,%r13,1),%xmm1
L103:
  mov    %ebp,%r8d
  movsd  %xmm1,0x8(%rcx)
  sar    %r8d
  je     L2
  movslq %r8d,%rsi
  mov    %r13,%rdi
  lea    -0x1(%rbp),%eax
  shl    $0x3,%rsi
  sub    %rsi,%rdi
  cmp    %rdi,%rsi
  jg     L136
  cmp    $0x1,%r8d
  je     L136
  movupd -0x8(%rcx),%xmm7
  movapd %xmm1,%xmm0
  movapd 0x10(%rsp),%xmm2
  mov    %r8d,%esi
  unpcklpd %xmm0,%xmm0
  shr    %esi
  shufpd $0x1,%xmm7,%xmm7
  mulpd  %xmm0,%xmm7
  addpd  %xmm2,%xmm7
  mulpd  %xmm0,%xmm2
  movaps %xmm7,0x10(%rsp)
  movupd -0x8(%rcx),%xmm7
  shufpd $0x1,%xmm7,%xmm7
  addpd  %xmm7,%xmm2
  shufpd $0x1,%xmm2,%xmm2
  movups %xmm2,-0x8(%rcx)
  cmp    $0x1,%esi
  je     L313
  movupd -0x18(%rcx),%xmm7
  movapd 0x20(%rsp),%xmm2
  shufpd $0x1,%xmm7,%xmm7
  mulpd  %xmm0,%xmm7
  addpd  %xmm2,%xmm7
  mulpd  %xmm0,%xmm2
  movaps %xmm7,0x20(%rsp)
  movupd -0x18(%rcx),%xmm7
  shufpd $0x1,%xmm7,%xmm7
  addpd  %xmm7,%xmm2
  shufpd $0x1,%xmm2,%xmm2
  movups %xmm2,-0x18(%rcx)
  cmp    $0x2,%esi
  je     L313
  movupd -0x28(%rcx),%xmm2
  movapd 0x30(%rsp),%xmm7
  shufpd $0x1,%xmm2,%xmm2
  mulpd  %xmm0,%xmm2
  addpd  %xmm7,%xmm2
  mulpd  %xmm0,%xmm7
  movaps %xmm2,0x30(%rsp)
  movupd -0x28(%rcx),%xmm2
  shufpd $0x1,%xmm2,%xmm2
  addpd  %xmm7,%xmm2
  shufpd $0x1,%xmm2,%xmm2
  movups %xmm2,-0x28(%rcx)
  cmp    $0x3,%esi
  je     L313
  movupd -0x38(%rcx),%xmm2
  movapd 0x40(%rsp),%xmm7
  shufpd $0x1,%xmm2,%xmm2
  mulpd  %xmm0,%xmm2
  addpd  %xmm7,%xmm2
  mulpd  %xmm0,%xmm7
  movaps %xmm2,0x40(%rsp)
  movupd -0x38(%rcx),%xmm2
  shufpd $0x1,%xmm2,%xmm2
  addpd  %xmm7,%xmm2
  shufpd $0x1,%xmm2,%xmm2
  movups %xmm2,-0x38(%rcx)
  cmp    $0x4,%esi
  je     L313
  movupd -0x48(%rcx),%xmm2
  movapd 0x50(%rsp),%xmm7
  shufpd $0x1,%xmm2,%xmm2
  mulpd  %xmm0,%xmm2
  addpd  %xmm7,%xmm2
  mulpd  %xmm0,%xmm7
  movaps %xmm2,0x50(%rsp)
  movupd -0x48(%rcx),%xmm2
  shufpd $0x1,%xmm2,%xmm2
  addpd  %xmm7,%xmm2
  shufpd $0x1,%xmm2,%xmm2
  movups %xmm2,-0x48(%rcx)
  cmp    $0x5,%esi
  je     L313
  movupd -0x58(%rcx),%xmm2
  movapd 0x60(%rsp),%xmm7
  shufpd $0x1,%xmm2,%xmm2
  mulpd  %xmm0,%xmm2
  addpd  %xmm7,%xmm2
  mulpd  %xmm0,%xmm7
  movaps %xmm2,0x60(%rsp)
  movupd -0x58(%rcx),%xmm2
  shufpd $0x1,%xmm2,%xmm2
  addpd  %xmm7,%xmm2
  shufpd $0x1,%xmm2,%xmm2
  movups %xmm2,-0x58(%rcx)
  cmp    $0x6,%esi
  je     L313
  movupd -0x68(%rcx),%xmm2
  movapd 0x70(%rsp),%xmm7
  shufpd $0x1,%xmm2,%xmm2
  mulpd  %xmm0,%xmm2
  addpd  %xmm7,%xmm2
  mulpd  %xmm0,%xmm7
  movaps %xmm2,0x70(%rsp)
  movupd -0x68(%rcx),%xmm2
  shufpd $0x1,%xmm2,%xmm2
  addpd  %xmm7,%xmm2
  shufpd $0x1,%xmm2,%xmm2
  movups %xmm2,-0x68(%rcx)
  cmp    $0x7,%esi
  je     L313
  movapd 0x80(%rsp),%xmm7
  movupd -0x78(%rcx),%xmm2
  shufpd $0x1,%xmm2,%xmm2
  mulpd  %xmm0,%xmm2
  addpd  %xmm7,%xmm2
  mulpd  %xmm0,%xmm7
  movaps %xmm2,0x80(%rsp)
  movupd -0x78(%rcx),%xmm2
  shufpd $0x1,%xmm2,%xmm2
  addpd  %xmm7,%xmm2
  shufpd $0x1,%xmm2,%xmm2
  movups %xmm2,-0x78(%rcx)
  cmp    $0x8,%esi
  je     L313
  movupd -0x88(%rcx),%xmm2
  movapd 0x90(%rsp),%xmm7
  shufpd $0x1,%xmm2,%xmm2
  mulpd  %xmm0,%xmm2
  addpd  %xmm7,%xmm2
  mulpd  %xmm0,%xmm7
  movaps %xmm2,0x90(%rsp)
  movupd -0x88(%rcx),%xmm2
  shufpd $0x1,%xmm2,%xmm2
  addpd  %xmm7,%xmm2
  shufpd $0x1,%xmm2,%xmm2
  movups %xmm2,-0x88(%rcx)
  cmp    $0x9,%esi
  je     L313
  movupd -0x98(%rcx),%xmm2
  movapd 0xa0(%rsp),%xmm7
  shufpd $0x1,%xmm2,%xmm2
  mulpd  %xmm0,%xmm2
  addpd  %xmm7,%xmm2
  mulpd  %xmm0,%xmm7
  movaps %xmm2,0xa0(%rsp)
  movupd -0x98(%rcx),%xmm2
  shufpd $0x1,%xmm2,%xmm2
  addpd  %xmm7,%xmm2
  shufpd $0x1,%xmm2,%xmm2
  movups %xmm2,-0x98(%rcx)
  cmp    $0xa,%esi
  je     L313
  movupd -0xa8(%rcx),%xmm2
  movapd 0xb0(%rsp),%xmm7
  shufpd $0x1,%xmm2,%xmm2
  mulpd  %xmm0,%xmm2
  addpd  %xmm7,%xmm2
  mulpd  %xmm0,%xmm7
  movaps %xmm2,0xb0(%rsp)
  movupd -0xa8(%rcx),%xmm2
  shufpd $0x1,%xmm2,%xmm2
  addpd  %xmm7,%xmm2
  shufpd $0x1,%xmm2,%xmm2
  movups %xmm2,-0xa8(%rcx)
  cmp    $0xb,%esi
  je     L313
  movupd -0xb8(%rcx),%xmm2
  movapd 0xc0(%rsp),%xmm7
  shufpd $0x1,%xmm2,%xmm2
  mulpd  %xmm0,%xmm2
  addpd  %xmm7,%xmm2
  mulpd  %xmm0,%xmm7
  movaps %xmm2,0xc0(%rsp)
  movupd -0xb8(%rcx),%xmm2
  shufpd $0x1,%xmm2,%xmm2
  addpd  %xmm7,%xmm2
  shufpd $0x1,%xmm2,%xmm2
  movups %xmm2,-0xb8(%rcx)
  cmp    $0xc,%esi
  je     L313
  movupd -0xc8(%rcx),%xmm2
  movapd 0xd0(%rsp),%xmm7
  shufpd $0x1,%xmm2,%xmm2
  mulpd  %xmm0,%xmm2
  addpd  %xmm7,%xmm2
  mulpd  %xmm0,%xmm7
  movaps %xmm2,0xd0(%rsp)
  movupd -0xc8(%rcx),%xmm2
  shufpd $0x1,%xmm2,%xmm2
  addpd  %xmm7,%xmm2
  shufpd $0x1,%xmm2,%xmm2
  movups %xmm2,-0xc8(%rcx)
  cmp    $0xe,%esi
  jne    L313
  movupd -0xd8(%rcx),%xmm2
  movapd 0xe0(%rsp),%xmm7
  shufpd $0x1,%xmm2,%xmm2
  mulpd  %xmm0,%xmm2
  addpd  %xmm7,%xmm2
  mulpd  %xmm0,%xmm7
  movaps %xmm2,0xe0(%rsp)
  movupd -0xd8(%rcx),%xmm2
  shufpd $0x1,%xmm2,%xmm2
  addpd  %xmm7,%xmm2
  movapd %xmm2,%xmm0
  shufpd $0x1,%xmm2,%xmm0
  movups %xmm0,-0xd8(%rcx)
  nopl   0x0(%rax)
L313:
  mov    %r8d,%edi
  and    $0xfffffffe,%edi
  test   $0x1,%r8b
  je     L2
  sub    %edi,%eax
  movslq %edi,%rsi
  cltq
  movsd  0x10(%rsp,%rsi,8),%xmm0
  movsd  0x10(%rsp,%rax,8),%xmm2
  mulsd  %xmm1,%xmm2
  addsd  %xmm0,%xmm2
  mulsd  %xmm1,%xmm0
  movsd  %xmm2,0x10(%rsp,%rsi,8)
  addsd  0x10(%rsp,%rax,8),%xmm0
  movsd  %xmm0,0x10(%rsp,%rax,8)
L2:
  and    $0x1,%ebp
  je     L129
  movslq %r8d,%r8
  movsd  0x10(%rsp,%r8,8),%xmm0
  mulsd  %xmm0,%xmm1
  addsd  %xmm1,%xmm0
  movsd  %xmm0,0x10(%rsp,%r8,8)
L129:
  mov    %r9d,%esi
  xor    %eax,%eax
  shr    %esi
  shl    $0x4,%rsi
  cs nopw 0x0(%rax,%rax,1)
L151:
  movapd (%r11,%rax,1),%xmm0
  xorpd  %xmm5,%xmm0
  movups %xmm0,(%rdx,%rax,1)
  add    $0x10,%rax
  cmp    %rax,%rsi
  jne    L151
  mov    %r9d,%eax
  and    $0xfffffffe,%eax
  test   $0x1,%r9b
  je     L257
  cltq
  movsd  0x10(%rsp,%rax,8),%xmm0
  xorpd  %xmm3,%xmm0
  movsd  %xmm0,(%rdx,%rax,8)
L257:
  add    $0x1,%r14
  add    $0x8,%rcx
  add    $0x8,%r13
  add    $0x8,%r15
  add    $0x1e0,%rdx
  cmp    %r9d,%r10d
  jne    L117
  nopl   0x0(%rax)
L51:
  mov    0x1f8(%rsp),%rax
  sub    %fs:0x28,%rax
  jne    L22
  add    $0x208,%rsp
  pop    %rbx
  pop    %rbp
  pop    %r12
  pop    %r13
  pop    %r14
  pop    %r15
  ret
  nopl   0x0(%rax)
L136:
  mov    (%rsp),%rdi
  lea    -0x1(%r8),%eax
  mov    %r11,%rsi
  lea    (%rdi,%rax,8),%rdi
  mov    %rcx,%rax
  nopw   0x0(%rax,%rax,1)
L307:
  movsd  (%rax),%xmm2
  movsd  (%rsi),%xmm0
  add    $0x8,%rsi
  sub    $0x8,%rax
  mulsd  %xmm1,%xmm2
  addsd  %xmm0,%xmm2
  mulsd  %xmm1,%xmm0
  movsd  %xmm2,-0x8(%rsi)
  addsd  0x8(%rax),%xmm0
  movsd  %xmm0,0x8(%rax)
  cmp    %rsi,%rdi
  jne    L307
  jmp    L2
L311:
  movsd  0x8(%rbx),%xmm0
  movq   D6(%rip),%xmm3
  movsd  D11(%rip),%xmm1
  xorpd  %xmm3,%xmm0
  divsd  %xmm4,%xmm0
  movapd %xmm0,%xmm2
  mulsd  %xmm0,%xmm2
  subsd  %xmm2,%xmm1
  mulsd  %xmm1,%xmm4
  jmp    L201
  nopw   0x0(%rax,%rax,1)
L55:
  movsd  0x10(%r15),%xmm1
  test   %ebp,%ebp
  mov    $0x1,%r8d
  cmovg  %r14d,%r8d
  xorpd  %xmm3,%xmm1
  cmp    $0x1,%r14
  je     L315
  mov    %r8d,%esi
  mov    %r11,%rax
  shr    %esi
  lea    -0x1(%rsi),%edi
  mov    %r15,%rsi
  shl    $0x4,%rdi
  add    0x8(%rsp),%rdi
  nopw   0x0(%rax,%rax,1)
L282:
  movupd (%rsi),%xmm0
  add    $0x10,%rax
  sub    $0x10,%rsi
  shufpd $0x1,%xmm0,%xmm0
  mulpd  -0x10(%rax),%xmm0
  subsd  %xmm0,%xmm1
  unpckhpd %xmm0,%xmm0
  subsd  %xmm0,%xmm1
  cmp    %rdi,%rax
  jne    L282
  mov    %r8d,%eax
  and    $0xfffffffe,%eax
  and    $0x1,%r8d
  je     L202
L97:
  mov    %ebp,%esi
  sub    %eax,%esi
  cltq
  movslq %esi,%rsi
  movsd  (%rbx,%rsi,8),%xmm0
  mulsd  0x10(%rsp,%rax,8),%xmm0
  subsd  %xmm0,%xmm1
L202:
  divsd  %xmm4,%xmm1
  movapd %xmm6,%xmm0
  movapd %xmm1,%xmm2
  mulsd  %xmm1,%xmm2
  subsd  %xmm2,%xmm0
  mulsd  %xmm0,%xmm4
  jmp    L103
L341:
  movsd  D11(%rip),%xmm4
  jmp    L24
L315:
  xor    %eax,%eax
  jmp    L97
L22:
  call   <__stack_chk_fail@plt>
```

tool_calls: name: unpack_data
arguments: data_tag: D6
datatype: byte[8]
name: unpack_data
arguments: data_tag: D35
datatype: byte[16]
name: unpack_data
arguments: data_tag: D11
datatype: f64

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

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

tool: D11: 1

assistant: ```c
void levinson(double *autoc, unsigned char max_order, double *ref, double lpc[][60]) {
  int i, j, i2;
  double r, err, tmp;
  double lpc_tmp[60];
  for (i = 0; i < max_order; i++)
    lpc_tmp[i] = 0;
  err = 1.0;
  if (autoc)
    err = autoc[0];
  for (i = 0; i < max_order; i++) {
    if (ref)
      r = ref[i];
    else {
      r = -autoc[i + 1];
      for (j = 0; j < i; j++)
        r -= lpc_tmp[j] * autoc[i - j];
      r /= err;
      err *= 1.0 - (r * r);
    }
    i2 = i >> 1;
    lpc_tmp[i] = r;
    for (j = 0; j < i2; j++) {
      tmp = lpc_tmp[j];
      lpc_tmp[j] += r * lpc_tmp[i - 1 - j];
      lpc_tmp[i - 1 - j] += r * tmp;
    }
    if (i & 1)
      lpc_tmp[j] += lpc_tmp[j] * r;
    for (j = 0; j <= i; j++)
      lpc[i][j] = -lpc_tmp[j];
  }
}
```