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

```asm
<cftf162>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  sub    $0x100,%rsp
  mov    %rdi,-0x178(%rbp)
  movsd  D62(%rip),%xmm0
  movsd  %xmm0,-0x168(%rbp)
  movsd  D54(%rip),%xmm0
  movsd  %xmm0,-0x160(%rbp)
  movsd  D2(%rip),%xmm0
  movsd  %xmm0,-0x158(%rbp)
  movsd  D14(%rip),%xmm0
  movsd  %xmm0,-0x150(%rbp)
  movsd  D46(%rip),%xmm0
  movsd  %xmm0,-0x148(%rbp)
  movsd  D31(%rip),%xmm0
  movsd  %xmm0,-0x140(%rbp)
  movsd  D68(%rip),%xmm0
  movsd  %xmm0,-0x138(%rbp)
  mov    -0x178(%rbp),%rax
  movsd  (%rax),%xmm0
  mov    -0x178(%rbp),%rax
  add    $0x88,%rax
  movsd  (%rax),%xmm1
  subsd  %xmm1,%xmm0
  movsd  %xmm0,-0x130(%rbp)
  mov    -0x178(%rbp),%rax
  add    $0x8,%rax
  movsd  (%rax),%xmm1
  mov    -0x178(%rbp),%rax
  sub    $0xffffffffffffff80,%rax
  movsd  (%rax),%xmm0
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0x128(%rbp)
  mov    -0x178(%rbp),%rax
  add    $0x40,%rax
  movsd  (%rax),%xmm0
  mov    -0x178(%rbp),%rax
  add    $0xc8,%rax
  movsd  (%rax),%xmm1
  subsd  %xmm1,%xmm0
  movsd  %xmm0,-0x120(%rbp)
  mov    -0x178(%rbp),%rax
  add    $0x48,%rax
  movsd  (%rax),%xmm1
  mov    -0x178(%rbp),%rax
  add    $0xc0,%rax
  movsd  (%rax),%xmm0
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0x118(%rbp)
  movsd  -0x120(%rbp),%xmm0
  subsd  -0x118(%rbp),%xmm0
  movsd  -0x168(%rbp),%xmm1
  mulsd  %xmm1,%xmm0
  movsd  %xmm0,-0x110(%rbp)
  movsd  -0x118(%rbp),%xmm0
  addsd  -0x120(%rbp),%xmm0
  movsd  -0x168(%rbp),%xmm1
  mulsd  %xmm1,%xmm0
  movsd  %xmm0,-0x108(%rbp)
  movsd  -0x130(%rbp),%xmm0
  addsd  -0x110(%rbp),%xmm0
  movsd  %xmm0,-0x100(%rbp)
  movsd  -0x128(%rbp),%xmm0
  addsd  -0x108(%rbp),%xmm0
  movsd  %xmm0,-0xf8(%rbp)
  movsd  -0x130(%rbp),%xmm0
  subsd  -0x110(%rbp),%xmm0
  movsd  %xmm0,-0xf0(%rbp)
  movsd  -0x128(%rbp),%xmm0
  subsd  -0x108(%rbp),%xmm0
  movsd  %xmm0,-0xe8(%rbp)
  mov    -0x178(%rbp),%rax
  movsd  (%rax),%xmm1
  mov    -0x178(%rbp),%rax
  add    $0x88,%rax
  movsd  (%rax),%xmm0
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0x130(%rbp)
  mov    -0x178(%rbp),%rax
  add    $0x8,%rax
  movsd  (%rax),%xmm0
  mov    -0x178(%rbp),%rax
  sub    $0xffffffffffffff80,%rax
  movsd  (%rax),%xmm1
  subsd  %xmm1,%xmm0
  movsd  %xmm0,-0x128(%rbp)
  mov    -0x178(%rbp),%rax
  add    $0x40,%rax
  movsd  (%rax),%xmm1
  mov    -0x178(%rbp),%rax
  add    $0xc8,%rax
  movsd  (%rax),%xmm0
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0x120(%rbp)
  mov    -0x178(%rbp),%rax
  add    $0x48,%rax
  movsd  (%rax),%xmm0
  mov    -0x178(%rbp),%rax
  add    $0xc0,%rax
  movsd  (%rax),%xmm1
  subsd  %xmm1,%xmm0
  movsd  %xmm0,-0x118(%rbp)
  movsd  -0x120(%rbp),%xmm0
  subsd  -0x118(%rbp),%xmm0
  movsd  -0x168(%rbp),%xmm1
  mulsd  %xmm1,%xmm0
  movsd  %xmm0,-0x110(%rbp)
  movsd  -0x118(%rbp),%xmm0
  addsd  -0x120(%rbp),%xmm0
  movsd  -0x168(%rbp),%xmm1
  mulsd  %xmm1,%xmm0
  movsd  %xmm0,-0x108(%rbp)
  movsd  -0x130(%rbp),%xmm0
  subsd  -0x108(%rbp),%xmm0
  movsd  %xmm0,-0xe0(%rbp)
  movsd  -0x128(%rbp),%xmm0
  addsd  -0x110(%rbp),%xmm0
  movsd  %xmm0,-0xd8(%rbp)
  movsd  -0x130(%rbp),%xmm0
  addsd  -0x108(%rbp),%xmm0
  movsd  %xmm0,-0xd0(%rbp)
  movsd  -0x128(%rbp),%xmm0
  subsd  -0x110(%rbp),%xmm0
  movsd  %xmm0,-0xc8(%rbp)
  mov    -0x178(%rbp),%rax
  add    $0x10,%rax
  movsd  (%rax),%xmm0
  mov    -0x178(%rbp),%rax
  add    $0x98,%rax
  movsd  (%rax),%xmm1
  subsd  %xmm1,%xmm0
  movsd  %xmm0,-0x120(%rbp)
  mov    -0x178(%rbp),%rax
  add    $0x18,%rax
  movsd  (%rax),%xmm1
  mov    -0x178(%rbp),%rax
  add    $0x90,%rax
  movsd  (%rax),%xmm0
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0x118(%rbp)
  movsd  -0x160(%rbp),%xmm0
  mulsd  -0x120(%rbp),%xmm0
  movsd  -0x158(%rbp),%xmm1
  mulsd  -0x118(%rbp),%xmm1
  subsd  %xmm1,%xmm0
  movsd  %xmm0,-0x130(%rbp)
  movsd  -0x160(%rbp),%xmm0
  movapd %xmm0,%xmm1
  mulsd  -0x118(%rbp),%xmm1
  movsd  -0x158(%rbp),%xmm0
  mulsd  -0x120(%rbp),%xmm0
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0x128(%rbp)
  mov    -0x178(%rbp),%rax
  add    $0x50,%rax
  movsd  (%rax),%xmm0
  mov    -0x178(%rbp),%rax
  add    $0xd8,%rax
  movsd  (%rax),%xmm1
  subsd  %xmm1,%xmm0
  movsd  %xmm0,-0x120(%rbp)
  mov    -0x178(%rbp),%rax
  add    $0x58,%rax
  movsd  (%rax),%xmm1
  mov    -0x178(%rbp),%rax
  add    $0xd0,%rax
  movsd  (%rax),%xmm0
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0x118(%rbp)
  movsd  -0x138(%rbp),%xmm0
  mulsd  -0x120(%rbp),%xmm0
  movsd  -0x140(%rbp),%xmm1
  mulsd  -0x118(%rbp),%xmm1
  subsd  %xmm1,%xmm0
  movsd  %xmm0,-0x110(%rbp)
  movsd  -0x138(%rbp),%xmm0
  movapd %xmm0,%xmm1
  mulsd  -0x118(%rbp),%xmm1
  movsd  -0x140(%rbp),%xmm0
  mulsd  -0x120(%rbp),%xmm0
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0x108(%rbp)
  movsd  -0x130(%rbp),%xmm0
  addsd  -0x110(%rbp),%xmm0
  movsd  %xmm0,-0xc0(%rbp)
  movsd  -0x128(%rbp),%xmm0
  addsd  -0x108(%rbp),%xmm0
  movsd  %xmm0,-0xb8(%rbp)
  movsd  -0x130(%rbp),%xmm0
  subsd  -0x110(%rbp),%xmm0
  movsd  %xmm0,-0xb0(%rbp)
  movsd  -0x128(%rbp),%xmm0
  subsd  -0x108(%rbp),%xmm0
  movsd  %xmm0,-0xa8(%rbp)
  mov    -0x178(%rbp),%rax
  add    $0x10,%rax
  movsd  (%rax),%xmm1
  mov    -0x178(%rbp),%rax
  add    $0x98,%rax
  movsd  (%rax),%xmm0
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0x120(%rbp)
  mov    -0x178(%rbp),%rax
  add    $0x18,%rax
  movsd  (%rax),%xmm0
  mov    -0x178(%rbp),%rax
  add    $0x90,%rax
  movsd  (%rax),%xmm1
  subsd  %xmm1,%xmm0
  movsd  %xmm0,-0x118(%rbp)
  movsd  -0x140(%rbp),%xmm0
  mulsd  -0x120(%rbp),%xmm0
  movsd  -0x138(%rbp),%xmm1
  mulsd  -0x118(%rbp),%xmm1
  subsd  %xmm1,%xmm0
  movsd  %xmm0,-0x130(%rbp)
  movsd  -0x140(%rbp),%xmm0
  movapd %xmm0,%xmm1
  mulsd  -0x118(%rbp),%xmm1
  movsd  -0x138(%rbp),%xmm0
  mulsd  -0x120(%rbp),%xmm0
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0x128(%rbp)
  mov    -0x178(%rbp),%rax
  add    $0x50,%rax
  movsd  (%rax),%xmm1
  mov    -0x178(%rbp),%rax
  add    $0xd8,%rax
  movsd  (%rax),%xmm0
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0x120(%rbp)
  mov    -0x178(%rbp),%rax
  add    $0x58,%rax
  movsd  (%rax),%xmm0
  mov    -0x178(%rbp),%rax
  add    $0xd0,%rax
  movsd  (%rax),%xmm1
  subsd  %xmm1,%xmm0
  movsd  %xmm0,-0x118(%rbp)
  movsd  -0x160(%rbp),%xmm0
  movapd %xmm0,%xmm1
  mulsd  -0x120(%rbp),%xmm1
  movsd  -0x158(%rbp),%xmm0
  mulsd  -0x118(%rbp),%xmm0
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0x110(%rbp)
  movsd  -0x160(%rbp),%xmm0
  mulsd  -0x118(%rbp),%xmm0
  movsd  -0x158(%rbp),%xmm1
  mulsd  -0x120(%rbp),%xmm1
  subsd  %xmm1,%xmm0
  movsd  %xmm0,-0x108(%rbp)
  movsd  -0x130(%rbp),%xmm0
  subsd  -0x110(%rbp),%xmm0
  movsd  %xmm0,-0xa0(%rbp)
  movsd  -0x128(%rbp),%xmm0
  subsd  -0x108(%rbp),%xmm0
  movsd  %xmm0,-0x98(%rbp)
  movsd  -0x130(%rbp),%xmm0
  addsd  -0x110(%rbp),%xmm0
  movsd  %xmm0,-0x90(%rbp)
  movsd  -0x128(%rbp),%xmm0
  addsd  -0x108(%rbp),%xmm0
  movsd  %xmm0,-0x88(%rbp)
  mov    -0x178(%rbp),%rax
  add    $0x20,%rax
  movsd  (%rax),%xmm0
  mov    -0x178(%rbp),%rax
  add    $0xa8,%rax
  movsd  (%rax),%xmm1
  subsd  %xmm1,%xmm0
  movsd  %xmm0,-0x120(%rbp)
  mov    -0x178(%rbp),%rax
  add    $0x28,%rax
  movsd  (%rax),%xmm1
  mov    -0x178(%rbp),%rax
  add    $0xa0,%rax
  movsd  (%rax),%xmm0
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0x118(%rbp)
  movsd  -0x150(%rbp),%xmm0
  mulsd  -0x120(%rbp),%xmm0
  movsd  -0x148(%rbp),%xmm1
  mulsd  -0x118(%rbp),%xmm1
  subsd  %xmm1,%xmm0
  movsd  %xmm0,-0x130(%rbp)
  movsd  -0x150(%rbp),%xmm0
  movapd %xmm0,%xmm1
  mulsd  -0x118(%rbp),%xmm1
  movsd  -0x148(%rbp),%xmm0
  mulsd  -0x120(%rbp),%xmm0
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0x128(%rbp)
  mov    -0x178(%rbp),%rax
  add    $0x60,%rax
  movsd  (%rax),%xmm0
  mov    -0x178(%rbp),%rax
  add    $0xe8,%rax
  movsd  (%rax),%xmm1
  subsd  %xmm1,%xmm0
  movsd  %xmm0,-0x120(%rbp)
  mov    -0x178(%rbp),%rax
  add    $0x68,%rax
  movsd  (%rax),%xmm1
  mov    -0x178(%rbp),%rax
  add    $0xe0,%rax
  movsd  (%rax),%xmm0
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0x118(%rbp)
  movsd  -0x148(%rbp),%xmm0
  mulsd  -0x120(%rbp),%xmm0
  movsd  -0x150(%rbp),%xmm1
  mulsd  -0x118(%rbp),%xmm1
  subsd  %xmm1,%xmm0
  movsd  %xmm0,-0x110(%rbp)
  movsd  -0x148(%rbp),%xmm0
  movapd %xmm0,%xmm1
  mulsd  -0x118(%rbp),%xmm1
  movsd  -0x150(%rbp),%xmm0
  mulsd  -0x120(%rbp),%xmm0
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0x108(%rbp)
  movsd  -0x130(%rbp),%xmm0
  addsd  -0x110(%rbp),%xmm0
  movsd  %xmm0,-0x80(%rbp)
  movsd  -0x128(%rbp),%xmm0
  addsd  -0x108(%rbp),%xmm0
  movsd  %xmm0,-0x78(%rbp)
  movsd  -0x130(%rbp),%xmm0
  subsd  -0x110(%rbp),%xmm0
  movsd  %xmm0,-0x70(%rbp)
  movsd  -0x128(%rbp),%xmm0
  subsd  -0x108(%rbp),%xmm0
  movsd  %xmm0,-0x68(%rbp)
  mov    -0x178(%rbp),%rax
  add    $0x20,%rax
  movsd  (%rax),%xmm1
  mov    -0x178(%rbp),%rax
  add    $0xa8,%rax
  movsd  (%rax),%xmm0
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0x120(%rbp)
  mov    -0x178(%rbp),%rax
  add    $0x28,%rax
  movsd  (%rax),%xmm0
  mov    -0x178(%rbp),%rax
  add    $0xa0,%rax
  movsd  (%rax),%xmm1
  subsd  %xmm1,%xmm0
  movsd  %xmm0,-0x118(%rbp)
  movsd  -0x148(%rbp),%xmm0
  mulsd  -0x120(%rbp),%xmm0
  movsd  -0x150(%rbp),%xmm1
  mulsd  -0x118(%rbp),%xmm1
  subsd  %xmm1,%xmm0
  movsd  %xmm0,-0x130(%rbp)
  movsd  -0x148(%rbp),%xmm0
  movapd %xmm0,%xmm1
  mulsd  -0x118(%rbp),%xmm1
  movsd  -0x150(%rbp),%xmm0
  mulsd  -0x120(%rbp),%xmm0
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0x128(%rbp)
  mov    -0x178(%rbp),%rax
  add    $0x60,%rax
  movsd  (%rax),%xmm1
  mov    -0x178(%rbp),%rax
  add    $0xe8,%rax
  movsd  (%rax),%xmm0
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0x120(%rbp)
  mov    -0x178(%rbp),%rax
  add    $0x68,%rax
  movsd  (%rax),%xmm0
  mov    -0x178(%rbp),%rax
  add    $0xe0,%rax
  movsd  (%rax),%xmm1
  subsd  %xmm1,%xmm0
  movsd  %xmm0,-0x118(%rbp)
  movsd  -0x150(%rbp),%xmm0
  mulsd  -0x120(%rbp),%xmm0
  movsd  -0x148(%rbp),%xmm1
  mulsd  -0x118(%rbp),%xmm1
  subsd  %xmm1,%xmm0
  movsd  %xmm0,-0x110(%rbp)
  movsd  -0x150(%rbp),%xmm0
  movapd %xmm0,%xmm1
  mulsd  -0x118(%rbp),%xmm1
  movsd  -0x148(%rbp),%xmm0
  mulsd  -0x120(%rbp),%xmm0
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0x108(%rbp)
  movsd  -0x130(%rbp),%xmm0
  subsd  -0x110(%rbp),%xmm0
  movsd  %xmm0,-0x60(%rbp)
  movsd  -0x128(%rbp),%xmm0
  subsd  -0x108(%rbp),%xmm0
  movsd  %xmm0,-0x58(%rbp)
  movsd  -0x130(%rbp),%xmm0
  addsd  -0x110(%rbp),%xmm0
  movsd  %xmm0,-0x50(%rbp)
  movsd  -0x128(%rbp),%xmm0
  addsd  -0x108(%rbp),%xmm0
  movsd  %xmm0,-0x48(%rbp)
  mov    -0x178(%rbp),%rax
  add    $0x30,%rax
  movsd  (%rax),%xmm0
  mov    -0x178(%rbp),%rax
  add    $0xb8,%rax
  movsd  (%rax),%xmm1
  subsd  %xmm1,%xmm0
  movsd  %xmm0,-0x120(%rbp)
  mov    -0x178(%rbp),%rax
  add    $0x38,%rax
  movsd  (%rax),%xmm1
  mov    -0x178(%rbp),%rax
  add    $0xb0,%rax
  movsd  (%rax),%xmm0
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0x118(%rbp)
  movsd  -0x140(%rbp),%xmm0
  mulsd  -0x120(%rbp),%xmm0
  movsd  -0x138(%rbp),%xmm1
  mulsd  -0x118(%rbp),%xmm1
  subsd  %xmm1,%xmm0
  movsd  %xmm0,-0x130(%rbp)
  movsd  -0x140(%rbp),%xmm0
  movapd %xmm0,%xmm1
  mulsd  -0x118(%rbp),%xmm1
  movsd  -0x138(%rbp),%xmm0
  mulsd  -0x120(%rbp),%xmm0
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0x128(%rbp)
  mov    -0x178(%rbp),%rax
  add    $0x70,%rax
  movsd  (%rax),%xmm0
  mov    -0x178(%rbp),%rax
  add    $0xf8,%rax
  movsd  (%rax),%xmm1
  subsd  %xmm1,%xmm0
  movsd  %xmm0,-0x120(%rbp)
  mov    -0x178(%rbp),%rax
  add    $0x78,%rax
  movsd  (%rax),%xmm1
  mov    -0x178(%rbp),%rax
  add    $0xf0,%rax
  movsd  (%rax),%xmm0
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0x118(%rbp)
  movsd  -0x158(%rbp),%xmm0
  mulsd  -0x120(%rbp),%xmm0
  movsd  -0x160(%rbp),%xmm1
  mulsd  -0x118(%rbp),%xmm1
  subsd  %xmm1,%xmm0
  movsd  %xmm0,-0x110(%rbp)
  movsd  -0x158(%rbp),%xmm0
  movapd %xmm0,%xmm1
  mulsd  -0x118(%rbp),%xmm1
  movsd  -0x160(%rbp),%xmm0
  mulsd  -0x120(%rbp),%xmm0
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0x108(%rbp)
  movsd  -0x130(%rbp),%xmm0
  addsd  -0x110(%rbp),%xmm0
  movsd  %xmm0,-0x40(%rbp)
  movsd  -0x128(%rbp),%xmm0
  addsd  -0x108(%rbp),%xmm0
  movsd  %xmm0,-0x38(%rbp)
  movsd  -0x130(%rbp),%xmm0
  subsd  -0x110(%rbp),%xmm0
  movsd  %xmm0,-0x30(%rbp)
  movsd  -0x128(%rbp),%xmm0
  subsd  -0x108(%rbp),%xmm0
  movsd  %xmm0,-0x28(%rbp)
  mov    -0x178(%rbp),%rax
  add    $0x30,%rax
  movsd  (%rax),%xmm1
  mov    -0x178(%rbp),%rax
  add    $0xb8,%rax
  movsd  (%rax),%xmm0
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0x120(%rbp)
  mov    -0x178(%rbp),%rax
  add    $0x38,%rax
  movsd  (%rax),%xmm0
  mov    -0x178(%rbp),%rax
  add    $0xb0,%rax
  movsd  (%rax),%xmm1
  subsd  %xmm1,%xmm0
  movsd  %xmm0,-0x118(%rbp)
  movsd  -0x158(%rbp),%xmm0
  movapd %xmm0,%xmm1
  mulsd  -0x120(%rbp),%xmm1
  movsd  -0x160(%rbp),%xmm0
  mulsd  -0x118(%rbp),%xmm0
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0x130(%rbp)
  movsd  -0x158(%rbp),%xmm0
  mulsd  -0x118(%rbp),%xmm0
  movsd  -0x160(%rbp),%xmm1
  mulsd  -0x120(%rbp),%xmm1
  subsd  %xmm1,%xmm0
  movsd  %xmm0,-0x128(%rbp)
  mov    -0x178(%rbp),%rax
  add    $0x70,%rax
  movsd  (%rax),%xmm1
  mov    -0x178(%rbp),%rax
  add    $0xf8,%rax
  movsd  (%rax),%xmm0
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0x120(%rbp)
  mov    -0x178(%rbp),%rax
  add    $0x78,%rax
  movsd  (%rax),%xmm0
  mov    -0x178(%rbp),%rax
  add    $0xf0,%rax
  movsd  (%rax),%xmm1
  subsd  %xmm1,%xmm0
  movsd  %xmm0,-0x118(%rbp)
  movsd  -0x138(%rbp),%xmm0
  mulsd  -0x120(%rbp),%xmm0
  movsd  -0x140(%rbp),%xmm1
  mulsd  -0x118(%rbp),%xmm1
  subsd  %xmm1,%xmm0
  movsd  %xmm0,-0x110(%rbp)
  movsd  -0x138(%rbp),%xmm0
  movapd %xmm0,%xmm1
  mulsd  -0x118(%rbp),%xmm1
  movsd  -0x140(%rbp),%xmm0
  mulsd  -0x120(%rbp),%xmm0
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0x108(%rbp)
  movsd  -0x130(%rbp),%xmm0
  addsd  -0x110(%rbp),%xmm0
  movsd  %xmm0,-0x20(%rbp)
  movsd  -0x128(%rbp),%xmm0
  addsd  -0x108(%rbp),%xmm0
  movsd  %xmm0,-0x18(%rbp)
  movsd  -0x130(%rbp),%xmm0
  subsd  -0x110(%rbp),%xmm0
  movsd  %xmm0,-0x10(%rbp)
  movsd  -0x128(%rbp),%xmm0
  subsd  -0x108(%rbp),%xmm0
  movsd  %xmm0,-0x8(%rbp)
  movsd  -0x100(%rbp),%xmm0
  addsd  -0x80(%rbp),%xmm0
  movsd  %xmm0,-0x130(%rbp)
  movsd  -0xf8(%rbp),%xmm0
  addsd  -0x78(%rbp),%xmm0
  movsd  %xmm0,-0x128(%rbp)
  movsd  -0xc0(%rbp),%xmm0
  addsd  -0x40(%rbp),%xmm0
  movsd  %xmm0,-0x110(%rbp)
  movsd  -0xb8(%rbp),%xmm0
  addsd  -0x38(%rbp),%xmm0
  movsd  %xmm0,-0x108(%rbp)
  movsd  -0x130(%rbp),%xmm0
  addsd  -0x110(%rbp),%xmm0
  mov    -0x178(%rbp),%rax
  movsd  %xmm0,(%rax)
  mov    -0x178(%rbp),%rax
  add    $0x8,%rax
  movsd  -0x128(%rbp),%xmm0
  addsd  -0x108(%rbp),%xmm0
  movsd  %xmm0,(%rax)
  mov    -0x178(%rbp),%rax
  add    $0x10,%rax
  movsd  -0x130(%rbp),%xmm0
  subsd  -0x110(%rbp),%xmm0
  movsd  %xmm0,(%rax)
  mov    -0x178(%rbp),%rax
  add    $0x18,%rax
  movsd  -0x128(%rbp),%xmm0
  subsd  -0x108(%rbp),%xmm0
  movsd  %xmm0,(%rax)
  movsd  -0x100(%rbp),%xmm0
  subsd  -0x80(%rbp),%xmm0
  movsd  %xmm0,-0x130(%rbp)
  movsd  -0xf8(%rbp),%xmm0
  subsd  -0x78(%rbp),%xmm0
  movsd  %xmm0,-0x128(%rbp)
  movsd  -0xc0(%rbp),%xmm0
  subsd  -0x40(%rbp),%xmm0
  movsd  %xmm0,-0x110(%rbp)
  movsd  -0xb8(%rbp),%xmm0
  subsd  -0x38(%rbp),%xmm0
  movsd  %xmm0,-0x108(%rbp)
  mov    -0x178(%rbp),%rax
  add    $0x20,%rax
  movsd  -0x130(%rbp),%xmm0
  subsd  -0x108(%rbp),%xmm0
  movsd  %xmm0,(%rax)
  mov    -0x178(%rbp),%rax
  add    $0x28,%rax
  movsd  -0x128(%rbp),%xmm0
  addsd  -0x110(%rbp),%xmm0
  movsd  %xmm0,(%rax)
  mov    -0x178(%rbp),%rax
  add    $0x30,%rax
  movsd  -0x130(%rbp),%xmm0
  addsd  -0x108(%rbp),%xmm0
  movsd  %xmm0,(%rax)
  mov    -0x178(%rbp),%rax
  add    $0x38,%rax
  movsd  -0x128(%rbp),%xmm0
  subsd  -0x110(%rbp),%xmm0
  movsd  %xmm0,(%rax)
  movsd  -0xf0(%rbp),%xmm0
  subsd  -0x68(%rbp),%xmm0
  movsd  %xmm0,-0x130(%rbp)
  movsd  -0xe8(%rbp),%xmm0
  addsd  -0x70(%rbp),%xmm0
  movsd  %xmm0,-0x128(%rbp)
  movsd  -0xb0(%rbp),%xmm0
  subsd  -0x28(%rbp),%xmm0
  movsd  %xmm0,-0x120(%rbp)
  movsd  -0xa8(%rbp),%xmm0
  addsd  -0x30(%rbp),%xmm0
  movsd  %xmm0,-0x118(%rbp)
  movsd  -0x120(%rbp),%xmm0
  subsd  -0x118(%rbp),%xmm0
  movsd  -0x168(%rbp),%xmm1
  mulsd  %xmm1,%xmm0
  movsd  %xmm0,-0x110(%rbp)
  movsd  -0x118(%rbp),%xmm0
  addsd  -0x120(%rbp),%xmm0
  movsd  -0x168(%rbp),%xmm1
  mulsd  %xmm1,%xmm0
  movsd  %xmm0,-0x108(%rbp)
  mov    -0x178(%rbp),%rax
  add    $0x40,%rax
  movsd  -0x130(%rbp),%xmm0
  addsd  -0x110(%rbp),%xmm0
  movsd  %xmm0,(%rax)
  mov    -0x178(%rbp),%rax
  add    $0x48,%rax
  movsd  -0x128(%rbp),%xmm0
  addsd  -0x108(%rbp),%xmm0
  movsd  %xmm0,(%rax)
  mov    -0x178(%rbp),%rax
  add    $0x50,%rax
  movsd  -0x130(%rbp),%xmm0
  subsd  -0x110(%rbp),%xmm0
  movsd  %xmm0,(%rax)
  mov    -0x178(%rbp),%rax
  add    $0x58,%rax
  movsd  -0x128(%rbp),%xmm0
  subsd  -0x108(%rbp),%xmm0
  movsd  %xmm0,(%rax)
  movsd  -0xf0(%rbp),%xmm0
  addsd  -0x68(%rbp),%xmm0
  movsd  %xmm0,-0x130(%rbp)
  movsd  -0xe8(%rbp),%xmm0
  subsd  -0x70(%rbp),%xmm0
  movsd  %xmm0,-0x128(%rbp)
  movsd  -0xb0(%rbp),%xmm0
  addsd  -0x28(%rbp),%xmm0
  movsd  %xmm0,-0x120(%rbp)
  movsd  -0xa8(%rbp),%xmm0
  subsd  -0x30(%rbp),%xmm0
  movsd  %xmm0,-0x118(%rbp)
  movsd  -0x120(%rbp),%xmm0
  subsd  -0x118(%rbp),%xmm0
  movsd  -0x168(%rbp),%xmm1
  mulsd  %xmm1,%xmm0
  movsd  %xmm0,-0x110(%rbp)
  movsd  -0x118(%rbp),%xmm0
  addsd  -0x120(%rbp),%xmm0
  movsd  -0x168(%rbp),%xmm1
  mulsd  %xmm1,%xmm0
  movsd  %xmm0,-0x108(%rbp)
  mov    -0x178(%rbp),%rax
  add    $0x60,%rax
  movsd  -0x130(%rbp),%xmm0
  subsd  -0x108(%rbp),%xmm0
  movsd  %xmm0,(%rax)
  mov    -0x178(%rbp),%rax
  add    $0x68,%rax
  movsd  -0x128(%rbp),%xmm0
  addsd  -0x110(%rbp),%xmm0
  movsd  %xmm0,(%rax)
  mov    -0x178(%rbp),%rax
  add    $0x70,%rax
  movsd  -0x130(%rbp),%xmm0
  addsd  -0x108(%rbp),%xmm0
  movsd  %xmm0,(%rax)
  mov    -0x178(%rbp),%rax
  add    $0x78,%rax
  movsd  -0x128(%rbp),%xmm0
  subsd  -0x110(%rbp),%xmm0
  movsd  %xmm0,(%rax)
  movsd  -0xe0(%rbp),%xmm0
  addsd  -0x60(%rbp),%xmm0
  movsd  %xmm0,-0x130(%rbp)
  movsd  -0xd8(%rbp),%xmm0
  addsd  -0x58(%rbp),%xmm0
  movsd  %xmm0,-0x128(%rbp)
  movsd  -0xa0(%rbp),%xmm0
  subsd  -0x20(%rbp),%xmm0
  movsd  %xmm0,-0x110(%rbp)
  movsd  -0x98(%rbp),%xmm0
  subsd  -0x18(%rbp),%xmm0
  movsd  %xmm0,-0x108(%rbp)
  mov    -0x178(%rbp),%rax
  sub    $0xffffffffffffff80,%rax
  movsd  -0x130(%rbp),%xmm0
  addsd  -0x110(%rbp),%xmm0
  movsd  %xmm0,(%rax)
  mov    -0x178(%rbp),%rax
  add    $0x88,%rax
  movsd  -0x128(%rbp),%xmm0
  addsd  -0x108(%rbp),%xmm0
  movsd  %xmm0,(%rax)
  mov    -0x178(%rbp),%rax
  add    $0x90,%rax
  movsd  -0x130(%rbp),%xmm0
  subsd  -0x110(%rbp),%xmm0
  movsd  %xmm0,(%rax)
  mov    -0x178(%rbp),%rax
  add    $0x98,%rax
  movsd  -0x128(%rbp),%xmm0
  subsd  -0x108(%rbp),%xmm0
  movsd  %xmm0,(%rax)
  movsd  -0xe0(%rbp),%xmm0
  subsd  -0x60(%rbp),%xmm0
  movsd  %xmm0,-0x130(%rbp)
  movsd  -0xd8(%rbp),%xmm0
  subsd  -0x58(%rbp),%xmm0
  movsd  %xmm0,-0x128(%rbp)
  movsd  -0xa0(%rbp),%xmm0
  addsd  -0x20(%rbp),%xmm0
  movsd  %xmm0,-0x110(%rbp)
  movsd  -0x98(%rbp),%xmm0
  addsd  -0x18(%rbp),%xmm0
  movsd  %xmm0,-0x108(%rbp)
  mov    -0x178(%rbp),%rax
  add    $0xa0,%rax
  movsd  -0x130(%rbp),%xmm0
  subsd  -0x108(%rbp),%xmm0
  movsd  %xmm0,(%rax)
  mov    -0x178(%rbp),%rax
  add    $0xa8,%rax
  movsd  -0x128(%rbp),%xmm0
  addsd  -0x110(%rbp),%xmm0
  movsd  %xmm0,(%rax)
  mov    -0x178(%rbp),%rax
  add    $0xb0,%rax
  movsd  -0x130(%rbp),%xmm0
  addsd  -0x108(%rbp),%xmm0
  movsd  %xmm0,(%rax)
  mov    -0x178(%rbp),%rax
  add    $0xb8,%rax
  movsd  -0x128(%rbp),%xmm0
  subsd  -0x110(%rbp),%xmm0
  movsd  %xmm0,(%rax)
  movsd  -0xd0(%rbp),%xmm0
  subsd  -0x48(%rbp),%xmm0
  movsd  %xmm0,-0x130(%rbp)
  movsd  -0xc8(%rbp),%xmm0
  addsd  -0x50(%rbp),%xmm0
  movsd  %xmm0,-0x128(%rbp)
  movsd  -0x90(%rbp),%xmm0
  addsd  -0x8(%rbp),%xmm0
  movsd  %xmm0,-0x120(%rbp)
  movsd  -0x88(%rbp),%xmm0
  subsd  -0x10(%rbp),%xmm0
  movsd  %xmm0,-0x118(%rbp)
  movsd  -0x120(%rbp),%xmm0
  subsd  -0x118(%rbp),%xmm0
  movsd  -0x168(%rbp),%xmm1
  mulsd  %xmm1,%xmm0
  movsd  %xmm0,-0x110(%rbp)
  movsd  -0x118(%rbp),%xmm0
  addsd  -0x120(%rbp),%xmm0
  movsd  -0x168(%rbp),%xmm1
  mulsd  %xmm1,%xmm0
  movsd  %xmm0,-0x108(%rbp)
  mov    -0x178(%rbp),%rax
  add    $0xc0,%rax
  movsd  -0x130(%rbp),%xmm0
  addsd  -0x110(%rbp),%xmm0
  movsd  %xmm0,(%rax)
  mov    -0x178(%rbp),%rax
  add    $0xc8,%rax
  movsd  -0x128(%rbp),%xmm0
  addsd  -0x108(%rbp),%xmm0
  movsd  %xmm0,(%rax)
  mov    -0x178(%rbp),%rax
  add    $0xd0,%rax
  movsd  -0x130(%rbp),%xmm0
  subsd  -0x110(%rbp),%xmm0
  movsd  %xmm0,(%rax)
  mov    -0x178(%rbp),%rax
  add    $0xd8,%rax
  movsd  -0x128(%rbp),%xmm0
  subsd  -0x108(%rbp),%xmm0
  movsd  %xmm0,(%rax)
  movsd  -0xd0(%rbp),%xmm0
  addsd  -0x48(%rbp),%xmm0
  movsd  %xmm0,-0x130(%rbp)
  movsd  -0xc8(%rbp),%xmm0
  subsd  -0x50(%rbp),%xmm0
  movsd  %xmm0,-0x128(%rbp)
  movsd  -0x90(%rbp),%xmm0
  subsd  -0x8(%rbp),%xmm0
  movsd  %xmm0,-0x120(%rbp)
  movsd  -0x88(%rbp),%xmm0
  addsd  -0x10(%rbp),%xmm0
  movsd  %xmm0,-0x118(%rbp)
  movsd  -0x120(%rbp),%xmm0
  subsd  -0x118(%rbp),%xmm0
  movsd  -0x168(%rbp),%xmm1
  mulsd  %xmm1,%xmm0
  movsd  %xmm0,-0x110(%rbp)
  movsd  -0x118(%rbp),%xmm0
  addsd  -0x120(%rbp),%xmm0
  movsd  -0x168(%rbp),%xmm1
  mulsd  %xmm1,%xmm0
  movsd  %xmm0,-0x108(%rbp)
  mov    -0x178(%rbp),%rax
  add    $0xe0,%rax
  movsd  -0x130(%rbp),%xmm0
  subsd  -0x108(%rbp),%xmm0
  movsd  %xmm0,(%rax)
  mov    -0x178(%rbp),%rax
  add    $0xe8,%rax
  movsd  -0x128(%rbp),%xmm0
  addsd  -0x110(%rbp),%xmm0
  movsd  %xmm0,(%rax)
  mov    -0x178(%rbp),%rax
  add    $0xf0,%rax
  movsd  -0x130(%rbp),%xmm0
  addsd  -0x108(%rbp),%xmm0
  movsd  %xmm0,(%rax)
  mov    -0x178(%rbp),%rax
  add    $0xf8,%rax
  movsd  -0x128(%rbp),%xmm0
  subsd  -0x110(%rbp),%xmm0
  movsd  %xmm0,(%rax)
  nop
  leave
  ret
```

tool_calls: name: extract_symbolic_data
arguments: data_tag: D62
data_type: f64
name: extract_symbolic_data
arguments: data_tag: D54
data_type: f64
name: extract_symbolic_data
arguments: data_tag: D2
data_type: f64
name: extract_symbolic_data
arguments: data_tag: D14
data_type: f64
name: extract_symbolic_data
arguments: data_tag: D46
data_type: f64
name: extract_symbolic_data
arguments: data_tag: D31
data_type: f64
name: extract_symbolic_data
arguments: data_tag: D68
data_type: f64

tool: D62: 0.7071067811865476

tool: D54: 0.9807852804032304

tool: D2: 0.19509032201612828

tool: D14: 0.9238795325112867

tool: D46: 0.3826834323650898

tool: D31: 0.8314696123025452

tool: D68: 0.5555702330196022

assistant: ```c
void cftf162(double *a) {
  double wn4r, wk1r, wk1i, wk2r, wk2i, wk3r, wk3i, x0r, x0i, x1r, x1i, x2r, x2i, y0r, y0i, y1r, y1i, y2r, y2i, y3r, y3i, y4r, y4i, y5r, y5i, y6r, y6i, y7r, y7i, y8r, y8i, y9r, y9i, y10r, y10i, y11r, y11i, y12r, y12i, y13r, y13i, y14r, y14i, y15r, y15i;
  wn4r = ((double)0.707106781186547524400844362104849039284835);
  wk1r = ((double)0.980785280403230449126182236134239036973933);
  wk1i = ((double)0.195090322016128267848284868477022240927691);
  wk2r = ((double)0.923879532511286756128183189396788286822416);
  wk2i = ((double)0.382683432365089771728459984030398866761344);
  wk3r = ((double)0.831469612302545237078788377617905756738560);
  wk3i = ((double)0.555570233019602224742830813948532874374937);
  x1r = a[0] - a[17];
  x1i = a[1] + a[16];
  x0r = a[8] - a[25];
  x0i = a[9] + a[24];
  x2r = wn4r * (x0r - x0i);
  x2i = wn4r * (x0i + x0r);
  y0r = x1r + x2r;
  y0i = x1i + x2i;
  y4r = x1r - x2r;
  y4i = x1i - x2i;
  x1r = a[0] + a[17];
  x1i = a[1] - a[16];
  x0r = a[8] + a[25];
  x0i = a[9] - a[24];
  x2r = wn4r * (x0r - x0i);
  x2i = wn4r * (x0i + x0r);
  y8r = x1r - x2i;
  y8i = x1i + x2r;
  y12r = x1r + x2i;
  y12i = x1i - x2r;
  x0r = a[2] - a[19];
  x0i = a[3] + a[18];
  x1r = wk1r * x0r - wk1i * x0i;
  x1i = wk1r * x0i + wk1i * x0r;
  x0r = a[10] - a[27];
  x0i = a[11] + a[26];
  x2r = wk3i * x0r - wk3r * x0i;
  x2i = wk3i * x0i + wk3r * x0r;
  y1r = x1r + x2r;
  y1i = x1i + x2i;
  y5r = x1r - x2r;
  y5i = x1i - x2i;
  x0r = a[2] + a[19];
  x0i = a[3] - a[18];
  x1r = wk3r * x0r - wk3i * x0i;
  x1i = wk3r * x0i + wk3i * x0r;
  x0r = a[10] + a[27];
  x0i = a[11] - a[26];
  x2r = wk1r * x0r + wk1i * x0i;
  x2i = wk1r * x0i - wk1i * x0r;
  y9r = x1r - x2r;
  y9i = x1i - x2i;
  y13r = x1r + x2r;
  y13i = x1i + x2i;
  x0r = a[4] - a[21];
  x0i = a[5] + a[20];
  x1r = wk2r * x0r - wk2i * x0i;
  x1i = wk2r * x0i + wk2i * x0r;
  x0r = a[12] - a[29];
  x0i = a[13] + a[28];
  x2r = wk2i * x0r - wk2r * x0i;
  x2i = wk2i * x0i + wk2r * x0r;
  y2r = x1r + x2r;
  y2i = x1i + x2i;
  y6r = x1r - x2r;
  y6i = x1i - x2i;
  x0r = a[4] + a[21];
  x0i = a[5] - a[20];
  x1r = wk2i * x0r - wk2r * x0i;
  x1i = wk2i * x0i + wk2r * x0r;
  x0r = a[12] + a[29];
  x0i = a[13] - a[28];
  x2r = wk2r * x0r - wk2i * x0i;
  x2i = wk2r * x0i + wk2i * x0r;
  y10r = x1r - x2r;
  y10i = x1i - x2i;
  y14r = x1r + x2r;
  y14i = x1i + x2i;
  x0r = a[6] - a[23];
  x0i = a[7] + a[22];
  x1r = wk3r * x0r - wk3i * x0i;
  x1i = wk3r * x0i + wk3i * x0r;
  x0r = a[14] - a[31];
  x0i = a[15] + a[30];
  x2r = wk1i * x0r - wk1r * x0i;
  x2i = wk1i * x0i + wk1r * x0r;
  y3r = x1r + x2r;
  y3i = x1i + x2i;
  y7r = x1r - x2r;
  y7i = x1i - x2i;
  x0r = a[6] + a[23];
  x0i = a[7] - a[22];
  x1r = wk1i * x0r + wk1r * x0i;
  x1i = wk1i * x0i - wk1r * x0r;
  x0r = a[14] + a[31];
  x0i = a[15] - a[30];
  x2r = wk3i * x0r - wk3r * x0i;
  x2i = wk3i * x0i + wk3r * x0r;
  y11r = x1r + x2r;
  y11i = x1i + x2i;
  y15r = x1r - x2r;
  y15i = x1i - x2i;
  x1r = y0r + y2r;
  x1i = y0i + y2i;
  x2r = y1r + y3r;
  x2i = y1i + y3i;
  a[0] = x1r + x2r;
  a[1] = x1i + x2i;
  a[2] = x1r - x2r;
  a[3] = x1i - x2i;
  x1r = y0r - y2r;
  x1i = y0i - y2i;
  x2r = y1r - y3r;
  x2i = y1i - y3i;
  a[4] = x1r - x2i;
  a[5] = x1i + x2r;
  a[6] = x1r + x2i;
  a[7] = x1i - x2r;
  x1r = y4r - y6i;
  x1i = y4i + y6r;
  x0r = y5r - y7i;
  x0i = y5i + y7r;
  x2r = wn4r * (x0r - x0i);
  x2i = wn4r * (x0i + x0r);
  a[8] = x1r + x2r;
  a[9] = x1i + x2i;
  a[10] = x1r - x2r;
  a[11] = x1i - x2i;
  x1r = y4r + y6i;
  x1i = y4i - y6r;
  x0r = y5r + y7i;
  x0i = y5i - y7r;
  x2r = wn4r * (x0r - x0i);
  x2i = wn4r * (x0i + x0r);
  a[12] = x1r - x2i;
  a[13] = x1i + x2r;
  a[14] = x1r + x2i;
  a[15] = x1i - x2r;
  x1r = y8r + y10r;
  x1i = y8i + y10i;
  x2r = y9r - y11r;
  x2i = y9i - y11i;
  a[16] = x1r + x2r;
  a[17] = x1i + x2i;
  a[18] = x1r - x2r;
  a[19] = x1i - x2i;
  x1r = y8r - y10r;
  x1i = y8i - y10i;
  x2r = y9r + y11r;
  x2i = y9i + y11i;
  a[20] = x1r - x2i;
  a[21] = x1i + x2r;
  a[22] = x1r + x2i;
  a[23] = x1i - x2r;
  x1r = y12r - y14i;
  x1i = y12i + y14r;
  x0r = y13r + y15i;
  x0i = y13i - y15r;
  x2r = wn4r * (x0r - x0i);
  x2i = wn4r * (x0i + x0r);
  a[24] = x1r + x2r;
  a[25] = x1i + x2i;
  a[26] = x1r - x2r;
  a[27] = x1i - x2i;
  x1r = y12r + y14i;
  x1i = y12i - y14r;
  x0r = y13r - y15i;
  x0i = y13i + y15r;
  x2r = wn4r * (x0r - x0i);
  x2i = wn4r * (x0i + x0r);
  a[28] = x1r - x2i;
  a[29] = x1i + x2r;
  a[30] = x1r + x2i;
  a[31] = x1i - x2r;
}
```