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

```asm
<dqcheb>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  sub    $0xd0,%rsp
  mov    %rdi,-0xb8(%rbp)
  mov    %rsi,-0xc0(%rbp)
  mov    %rdx,-0xc8(%rbp)
  mov    %rcx,-0xd0(%rbp)
  mov    %fs:0x28,%rax
  mov    %rax,-0x8(%rbp)
  xor    %eax,%eax
  movl   $0x0,-0xa8(%rbp)
  jmp    L90
L25:
  mov    $0x18,%eax
  sub    -0xa8(%rbp),%eax
  mov    %eax,-0xa4(%rbp)
  mov    -0xa8(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xc0(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mov    -0xa4(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xc0(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm1
  subsd  %xmm1,%xmm0
  mov    -0xa8(%rbp),%eax
  cltq
  movsd  %xmm0,-0x70(%rbp,%rax,8)
  mov    -0xa8(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xc0(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm1
  mov    -0xa4(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xc0(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mov    -0xa8(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xc0(%rbp),%rax
  add    %rdx,%rax
  addsd  %xmm1,%xmm0
  movsd  %xmm0,(%rax)
  addl   $0x1,-0xa8(%rbp)
L90:
  cmpl   $0xb,-0xa8(%rbp)
  jle    L25
  movsd  -0x70(%rbp),%xmm0
  movsd  -0x30(%rbp),%xmm1
  subsd  %xmm1,%xmm0
  movsd  %xmm0,-0xa0(%rbp)
  mov    -0xb8(%rbp),%rax
  add    $0x28,%rax
  movsd  (%rax),%xmm1
  movsd  -0x60(%rbp),%xmm0
  movsd  -0x40(%rbp),%xmm2
  subsd  %xmm2,%xmm0
  movsd  -0x20(%rbp),%xmm2
  subsd  %xmm2,%xmm0
  mulsd  %xmm1,%xmm0
  movsd  %xmm0,-0x98(%rbp)
  mov    -0xc8(%rbp),%rax
  add    $0x18,%rax
  movsd  -0xa0(%rbp),%xmm0
  addsd  -0x98(%rbp),%xmm0
  movsd  %xmm0,(%rax)
  mov    -0xc8(%rbp),%rax
  add    $0x48,%rax
  movsd  -0xa0(%rbp),%xmm0
  subsd  -0x98(%rbp),%xmm0
  movsd  %xmm0,(%rax)
  movsd  -0x68(%rbp),%xmm0
  movsd  -0x38(%rbp),%xmm1
  subsd  %xmm1,%xmm0
  movsd  -0x28(%rbp),%xmm1
  subsd  %xmm1,%xmm0
  movsd  %xmm0,-0xa0(%rbp)
  movsd  -0x58(%rbp),%xmm0
  movsd  -0x48(%rbp),%xmm1
  subsd  %xmm1,%xmm0
  movsd  -0x18(%rbp),%xmm1
  subsd  %xmm1,%xmm0
  movsd  %xmm0,-0x98(%rbp)
  mov    -0xb8(%rbp),%rax
  add    $0x10,%rax
  movsd  (%rax),%xmm0
  movapd %xmm0,%xmm1
  mulsd  -0xa0(%rbp),%xmm1
  mov    -0xb8(%rbp),%rax
  add    $0x40,%rax
  movsd  (%rax),%xmm0
  mulsd  -0x98(%rbp),%xmm0
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0x90(%rbp)
  mov    -0xc8(%rbp),%rax
  add    $0x18,%rax
  movsd  (%rax),%xmm0
  mov    -0xd0(%rbp),%rax
  add    $0x18,%rax
  addsd  -0x90(%rbp),%xmm0
  movsd  %xmm0,(%rax)
  mov    -0xc8(%rbp),%rax
  add    $0x18,%rax
  movsd  (%rax),%xmm0
  mov    -0xd0(%rbp),%rax
  add    $0xa8,%rax
  subsd  -0x90(%rbp),%xmm0
  movsd  %xmm0,(%rax)
  mov    -0xb8(%rbp),%rax
  add    $0x40,%rax
  movsd  (%rax),%xmm0
  mulsd  -0xa0(%rbp),%xmm0
  mov    -0xb8(%rbp),%rax
  add    $0x10,%rax
  movsd  (%rax),%xmm1
  mulsd  -0x98(%rbp),%xmm1
  subsd  %xmm1,%xmm0
  movsd  %xmm0,-0x90(%rbp)
  mov    -0xc8(%rbp),%rax
  add    $0x48,%rax
  movsd  (%rax),%xmm0
  mov    -0xd0(%rbp),%rax
  add    $0x48,%rax
  addsd  -0x90(%rbp),%xmm0
  movsd  %xmm0,(%rax)
  mov    -0xc8(%rbp),%rax
  add    $0x48,%rax
  movsd  (%rax),%xmm0
  mov    -0xd0(%rbp),%rax
  add    $0x78,%rax
  subsd  -0x90(%rbp),%xmm0
  movsd  %xmm0,(%rax)
  mov    -0xb8(%rbp),%rax
  add    $0x18,%rax
  movsd  (%rax),%xmm1
  movsd  -0x50(%rbp),%xmm0
  mulsd  %xmm1,%xmm0
  movsd  %xmm0,-0x88(%rbp)
  mov    -0xb8(%rbp),%rax
  add    $0x38,%rax
  movsd  (%rax),%xmm1
  movsd  -0x30(%rbp),%xmm0
  mulsd  %xmm1,%xmm0
  movsd  %xmm0,-0x80(%rbp)
  mov    -0xb8(%rbp),%rax
  add    $0x28,%rax
  movsd  (%rax),%xmm1
  movsd  -0x40(%rbp),%xmm0
  mulsd  %xmm1,%xmm0
  movsd  %xmm0,-0x78(%rbp)
  movsd  -0x70(%rbp),%xmm0
  addsd  -0x88(%rbp),%xmm0
  movsd  -0x80(%rbp),%xmm1
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0xa0(%rbp)
  mov    -0xb8(%rbp),%rax
  add    $0x8,%rax
  movsd  (%rax),%xmm1
  movsd  -0x60(%rbp),%xmm0
  mulsd  %xmm1,%xmm0
  movapd %xmm0,%xmm1
  addsd  -0x78(%rbp),%xmm1
  mov    -0xb8(%rbp),%rax
  add    $0x48,%rax
  movsd  (%rax),%xmm2
  movsd  -0x20(%rbp),%xmm0
  mulsd  %xmm2,%xmm0
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0x98(%rbp)
  mov    -0xc8(%rbp),%rax
  add    $0x8,%rax
  movsd  -0xa0(%rbp),%xmm0
  addsd  -0x98(%rbp),%xmm0
  movsd  %xmm0,(%rax)
  mov    -0xc8(%rbp),%rax
  add    $0x58,%rax
  movsd  -0xa0(%rbp),%xmm0
  subsd  -0x98(%rbp),%xmm0
  movsd  %xmm0,(%rax)
  mov    -0xb8(%rbp),%rax
  movsd  (%rax),%xmm1
  movsd  -0x68(%rbp),%xmm0
  mulsd  %xmm0,%xmm1
  mov    -0xb8(%rbp),%rax
  add    $0x10,%rax
  movsd  (%rax),%xmm2
  movsd  -0x58(%rbp),%xmm0
  mulsd  %xmm2,%xmm0
  addsd  %xmm0,%xmm1
  mov    -0xb8(%rbp),%rax
  add    $0x20,%rax
  movsd  (%rax),%xmm2
  movsd  -0x48(%rbp),%xmm0
  mulsd  %xmm2,%xmm0
  addsd  %xmm0,%xmm1
  mov    -0xb8(%rbp),%rax
  add    $0x30,%rax
  movsd  (%rax),%xmm2
  movsd  -0x38(%rbp),%xmm0
  mulsd  %xmm2,%xmm0
  addsd  %xmm0,%xmm1
  mov    -0xb8(%rbp),%rax
  add    $0x40,%rax
  movsd  (%rax),%xmm2
  movsd  -0x28(%rbp),%xmm0
  mulsd  %xmm2,%xmm0
  addsd  %xmm0,%xmm1
  mov    -0xb8(%rbp),%rax
  add    $0x50,%rax
  movsd  (%rax),%xmm2
  movsd  -0x18(%rbp),%xmm0
  mulsd  %xmm2,%xmm0
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0x90(%rbp)
  mov    -0xc8(%rbp),%rax
  add    $0x8,%rax
  movsd  (%rax),%xmm0
  mov    -0xd0(%rbp),%rax
  add    $0x8,%rax
  addsd  -0x90(%rbp),%xmm0
  movsd  %xmm0,(%rax)
  mov    -0xc8(%rbp),%rax
  add    $0x8,%rax
  movsd  (%rax),%xmm0
  mov    -0xd0(%rbp),%rax
  add    $0xb8,%rax
  subsd  -0x90(%rbp),%xmm0
  movsd  %xmm0,(%rax)
  mov    -0xb8(%rbp),%rax
  add    $0x50,%rax
  movsd  (%rax),%xmm1
  movsd  -0x68(%rbp),%xmm0
  mulsd  %xmm1,%xmm0
  mov    -0xb8(%rbp),%rax
  add    $0x40,%rax
  movsd  (%rax),%xmm2
  movsd  -0x58(%rbp),%xmm1
  mulsd  %xmm1,%xmm2
  movapd %xmm0,%xmm1
  subsd  %xmm2,%xmm1
  mov    -0xb8(%rbp),%rax
  add    $0x30,%rax
  movsd  (%rax),%xmm2
  movsd  -0x48(%rbp),%xmm0
  mulsd  %xmm2,%xmm0
  addsd  %xmm1,%xmm0
  mov    -0xb8(%rbp),%rax
  add    $0x20,%rax
  movsd  (%rax),%xmm2
  movsd  -0x38(%rbp),%xmm1
  mulsd  %xmm1,%xmm2
  movapd %xmm0,%xmm1
  subsd  %xmm2,%xmm1
  mov    -0xb8(%rbp),%rax
  add    $0x10,%rax
  movsd  (%rax),%xmm2
  movsd  -0x28(%rbp),%xmm0
  mulsd  %xmm2,%xmm0
  addsd  %xmm1,%xmm0
  mov    -0xb8(%rbp),%rax
  movsd  (%rax),%xmm2
  movsd  -0x18(%rbp),%xmm1
  mulsd  %xmm2,%xmm1
  subsd  %xmm1,%xmm0
  movsd  %xmm0,-0x90(%rbp)
  mov    -0xc8(%rbp),%rax
  add    $0x58,%rax
  movsd  (%rax),%xmm0
  mov    -0xd0(%rbp),%rax
  add    $0x58,%rax
  addsd  -0x90(%rbp),%xmm0
  movsd  %xmm0,(%rax)
  mov    -0xc8(%rbp),%rax
  add    $0x58,%rax
  movsd  (%rax),%xmm0
  mov    -0xd0(%rbp),%rax
  add    $0x68,%rax
  subsd  -0x90(%rbp),%xmm0
  movsd  %xmm0,(%rax)
  movsd  -0x70(%rbp),%xmm0
  subsd  -0x88(%rbp),%xmm0
  movsd  -0x80(%rbp),%xmm1
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0xa0(%rbp)
  mov    -0xb8(%rbp),%rax
  add    $0x48,%rax
  movsd  (%rax),%xmm1
  movsd  -0x60(%rbp),%xmm0
  mulsd  %xmm1,%xmm0
  movapd %xmm0,%xmm1
  subsd  -0x78(%rbp),%xmm1
  mov    -0xb8(%rbp),%rax
  add    $0x8,%rax
  movsd  (%rax),%xmm2
  movsd  -0x20(%rbp),%xmm0
  mulsd  %xmm2,%xmm0
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0x98(%rbp)
  mov    -0xc8(%rbp),%rax
  add    $0x28,%rax
  movsd  -0xa0(%rbp),%xmm0
  addsd  -0x98(%rbp),%xmm0
  movsd  %xmm0,(%rax)
  mov    -0xc8(%rbp),%rax
  add    $0x38,%rax
  movsd  -0xa0(%rbp),%xmm0
  subsd  -0x98(%rbp),%xmm0
  movsd  %xmm0,(%rax)
  mov    -0xb8(%rbp),%rax
  add    $0x20,%rax
  movsd  (%rax),%xmm1
  movsd  -0x68(%rbp),%xmm0
  mulsd  %xmm1,%xmm0
  mov    -0xb8(%rbp),%rax
  add    $0x40,%rax
  movsd  (%rax),%xmm2
  movsd  -0x58(%rbp),%xmm1
  mulsd  %xmm2,%xmm1
  subsd  %xmm1,%xmm0
  mov    -0xb8(%rbp),%rax
  movsd  (%rax),%xmm2
  movsd  -0x48(%rbp),%xmm1
  mulsd  %xmm2,%xmm1
  subsd  %xmm1,%xmm0
  mov    -0xb8(%rbp),%rax
  add    $0x50,%rax
  movsd  (%rax),%xmm2
  movsd  -0x38(%rbp),%xmm1
  mulsd  %xmm1,%xmm2
  movapd %xmm0,%xmm1
  subsd  %xmm2,%xmm1
  mov    -0xb8(%rbp),%rax
  add    $0x10,%rax
  movsd  (%rax),%xmm2
  movsd  -0x28(%rbp),%xmm0
  mulsd  %xmm2,%xmm0
  addsd  %xmm0,%xmm1
  mov    -0xb8(%rbp),%rax
  add    $0x30,%rax
  movsd  (%rax),%xmm2
  movsd  -0x18(%rbp),%xmm0
  mulsd  %xmm2,%xmm0
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0x90(%rbp)
  mov    -0xc8(%rbp),%rax
  add    $0x28,%rax
  movsd  (%rax),%xmm0
  mov    -0xd0(%rbp),%rax
  add    $0x28,%rax
  addsd  -0x90(%rbp),%xmm0
  movsd  %xmm0,(%rax)
  mov    -0xc8(%rbp),%rax
  add    $0x28,%rax
  movsd  (%rax),%xmm0
  mov    -0xd0(%rbp),%rax
  add    $0x98,%rax
  subsd  -0x90(%rbp),%xmm0
  movsd  %xmm0,(%rax)
  mov    -0xb8(%rbp),%rax
  add    $0x30,%rax
  movsd  (%rax),%xmm1
  movsd  -0x68(%rbp),%xmm0
  mulsd  %xmm1,%xmm0
  mov    -0xb8(%rbp),%rax
  add    $0x10,%rax
  movsd  (%rax),%xmm2
  movsd  -0x58(%rbp),%xmm1
  mulsd  %xmm2,%xmm1
  subsd  %xmm1,%xmm0
  mov    -0xb8(%rbp),%rax
  add    $0x50,%rax
  movsd  (%rax),%xmm2
  movsd  -0x48(%rbp),%xmm1
  mulsd  %xmm1,%xmm2
  movapd %xmm0,%xmm1
  subsd  %xmm2,%xmm1
  mov    -0xb8(%rbp),%rax
  movsd  (%rax),%xmm2
  movsd  -0x38(%rbp),%xmm0
  mulsd  %xmm2,%xmm0
  addsd  %xmm1,%xmm0
  mov    -0xb8(%rbp),%rax
  add    $0x40,%rax
  movsd  (%rax),%xmm2
  movsd  -0x28(%rbp),%xmm1
  mulsd  %xmm2,%xmm1
  subsd  %xmm1,%xmm0
  mov    -0xb8(%rbp),%rax
  add    $0x20,%rax
  movsd  (%rax),%xmm2
  movsd  -0x18(%rbp),%xmm1
  mulsd  %xmm2,%xmm1
  subsd  %xmm1,%xmm0
  movsd  %xmm0,-0x90(%rbp)
  mov    -0xc8(%rbp),%rax
  add    $0x38,%rax
  movsd  (%rax),%xmm0
  mov    -0xd0(%rbp),%rax
  add    $0x38,%rax
  addsd  -0x90(%rbp),%xmm0
  movsd  %xmm0,(%rax)
  mov    -0xc8(%rbp),%rax
  add    $0x38,%rax
  movsd  (%rax),%xmm0
  mov    -0xd0(%rbp),%rax
  add    $0x88,%rax
  subsd  -0x90(%rbp),%xmm0
  movsd  %xmm0,(%rax)
  movl   $0x0,-0xa8(%rbp)
  jmp    L86
L6:
  mov    $0xc,%eax
  sub    -0xa8(%rbp),%eax
  mov    %eax,-0xa4(%rbp)
  mov    -0xa8(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xc0(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mov    -0xa4(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xc0(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm1
  subsd  %xmm1,%xmm0
  mov    -0xa8(%rbp),%eax
  cltq
  movsd  %xmm0,-0x70(%rbp,%rax,8)
  mov    -0xa8(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xc0(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm1
  mov    -0xa4(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xc0(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mov    -0xa8(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xc0(%rbp),%rax
  add    %rdx,%rax
  addsd  %xmm1,%xmm0
  movsd  %xmm0,(%rax)
  addl   $0x1,-0xa8(%rbp)
L86:
  cmpl   $0x5,-0xa8(%rbp)
  jle    L6
  movsd  -0x70(%rbp),%xmm1
  mov    -0xb8(%rbp),%rax
  add    $0x38,%rax
  movsd  (%rax),%xmm2
  movsd  -0x50(%rbp),%xmm0
  mulsd  %xmm2,%xmm0
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0xa0(%rbp)
  mov    -0xb8(%rbp),%rax
  add    $0x18,%rax
  movsd  (%rax),%xmm1
  movsd  -0x60(%rbp),%xmm0
  mulsd  %xmm1,%xmm0
  movsd  %xmm0,-0x98(%rbp)
  mov    -0xc8(%rbp),%rax
  add    $0x10,%rax
  movsd  -0xa0(%rbp),%xmm0
  addsd  -0x98(%rbp),%xmm0
  movsd  %xmm0,(%rax)
  mov    -0xc8(%rbp),%rax
  add    $0x50,%rax
  movsd  -0xa0(%rbp),%xmm0
  subsd  -0x98(%rbp),%xmm0
  movsd  %xmm0,(%rax)
  movsd  -0x70(%rbp),%xmm0
  movsd  -0x50(%rbp),%xmm1
  mov    -0xc8(%rbp),%rax
  add    $0x30,%rax
  subsd  %xmm1,%xmm0
  movsd  %xmm0,(%rax)
  mov    -0xb8(%rbp),%rax
  add    $0x8,%rax
  movsd  (%rax),%xmm1
  movsd  -0x68(%rbp),%xmm0
  mulsd  %xmm0,%xmm1
  mov    -0xb8(%rbp),%rax
  add    $0x28,%rax
  movsd  (%rax),%xmm2
  movsd  -0x58(%rbp),%xmm0
  mulsd  %xmm2,%xmm0
  addsd  %xmm0,%xmm1
  mov    -0xb8(%rbp),%rax
  add    $0x48,%rax
  movsd  (%rax),%xmm2
  movsd  -0x48(%rbp),%xmm0
  mulsd  %xmm2,%xmm0
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0x90(%rbp)
  mov    -0xc8(%rbp),%rax
  add    $0x10,%rax
  movsd  (%rax),%xmm0
  mov    -0xd0(%rbp),%rax
  add    $0x10,%rax
  addsd  -0x90(%rbp),%xmm0
  movsd  %xmm0,(%rax)
  mov    -0xc8(%rbp),%rax
  add    $0x10,%rax
  movsd  (%rax),%xmm0
  mov    -0xd0(%rbp),%rax
  add    $0xb0,%rax
  subsd  -0x90(%rbp),%xmm0
  movsd  %xmm0,(%rax)
  mov    -0xb8(%rbp),%rax
  add    $0x28,%rax
  movsd  (%rax),%xmm1
  movsd  -0x68(%rbp),%xmm0
  movsd  -0x58(%rbp),%xmm2
  subsd  %xmm2,%xmm0
  movsd  -0x48(%rbp),%xmm2
  subsd  %xmm2,%xmm0
  mulsd  %xmm1,%xmm0
  movsd  %xmm0,-0x90(%rbp)
  mov    -0xc8(%rbp),%rax
  add    $0x30,%rax
  movsd  (%rax),%xmm0
  mov    -0xd0(%rbp),%rax
  add    $0x30,%rax
  addsd  -0x90(%rbp),%xmm0
  movsd  %xmm0,(%rax)
  mov    -0xc8(%rbp),%rax
  add    $0x30,%rax
  movsd  (%rax),%xmm0
  mov    -0xd0(%rbp),%rax
  add    $0x90,%rax
  subsd  -0x90(%rbp),%xmm0
  movsd  %xmm0,(%rax)
  mov    -0xb8(%rbp),%rax
  add    $0x48,%rax
  movsd  (%rax),%xmm1
  movsd  -0x68(%rbp),%xmm0
  mulsd  %xmm1,%xmm0
  mov    -0xb8(%rbp),%rax
  add    $0x28,%rax
  movsd  (%rax),%xmm2
  movsd  -0x58(%rbp),%xmm1
  mulsd  %xmm1,%xmm2
  movapd %xmm0,%xmm1
  subsd  %xmm2,%xmm1
  mov    -0xb8(%rbp),%rax
  add    $0x8,%rax
  movsd  (%rax),%xmm2
  movsd  -0x48(%rbp),%xmm0
  mulsd  %xmm2,%xmm0
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0x90(%rbp)
  mov    -0xc8(%rbp),%rax
  add    $0x50,%rax
  movsd  (%rax),%xmm0
  mov    -0xd0(%rbp),%rax
  add    $0x50,%rax
  addsd  -0x90(%rbp),%xmm0
  movsd  %xmm0,(%rax)
  mov    -0xc8(%rbp),%rax
  add    $0x50,%rax
  movsd  (%rax),%xmm0
  mov    -0xd0(%rbp),%rax
  add    $0x70,%rax
  subsd  -0x90(%rbp),%xmm0
  movsd  %xmm0,(%rax)
  movl   $0x0,-0xa8(%rbp)
  jmp    L82
L58:
  mov    $0x6,%eax
  sub    -0xa8(%rbp),%eax
  mov    %eax,-0xa4(%rbp)
  mov    -0xa8(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xc0(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mov    -0xa4(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xc0(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm1
  subsd  %xmm1,%xmm0
  mov    -0xa8(%rbp),%eax
  cltq
  movsd  %xmm0,-0x70(%rbp,%rax,8)
  mov    -0xa8(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xc0(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm1
  mov    -0xa4(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xc0(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mov    -0xa8(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xc0(%rbp),%rax
  add    %rdx,%rax
  addsd  %xmm1,%xmm0
  movsd  %xmm0,(%rax)
  addl   $0x1,-0xa8(%rbp)
L82:
  cmpl   $0x2,-0xa8(%rbp)
  jle    L58
  movsd  -0x70(%rbp),%xmm1
  mov    -0xb8(%rbp),%rax
  add    $0x38,%rax
  movsd  (%rax),%xmm2
  movsd  -0x60(%rbp),%xmm0
  mulsd  %xmm2,%xmm0
  mov    -0xc8(%rbp),%rax
  add    $0x20,%rax
  addsd  %xmm1,%xmm0
  movsd  %xmm0,(%rax)
  mov    -0xc0(%rbp),%rax
  movsd  (%rax),%xmm0
  mov    -0xb8(%rbp),%rax
  add    $0x38,%rax
  movsd  (%rax),%xmm2
  mov    -0xc0(%rbp),%rax
  add    $0x10,%rax
  movsd  (%rax),%xmm1
  mulsd  %xmm2,%xmm1
  mov    -0xc8(%rbp),%rax
  add    $0x40,%rax
  subsd  %xmm1,%xmm0
  movsd  %xmm0,(%rax)
  mov    -0xb8(%rbp),%rax
  add    $0x18,%rax
  movsd  (%rax),%xmm1
  movsd  -0x68(%rbp),%xmm0
  mulsd  %xmm1,%xmm0
  movsd  %xmm0,-0x90(%rbp)
  mov    -0xc8(%rbp),%rax
  add    $0x20,%rax
  movsd  (%rax),%xmm0
  mov    -0xd0(%rbp),%rax
  add    $0x20,%rax
  addsd  -0x90(%rbp),%xmm0
  movsd  %xmm0,(%rax)
  mov    -0xc8(%rbp),%rax
  add    $0x20,%rax
  movsd  (%rax),%xmm0
  mov    -0xd0(%rbp),%rax
  add    $0xa0,%rax
  subsd  -0x90(%rbp),%xmm0
  movsd  %xmm0,(%rax)
  mov    -0xb8(%rbp),%rax
  add    $0x38,%rax
  movsd  (%rax),%xmm1
  mov    -0xc0(%rbp),%rax
  add    $0x8,%rax
  movsd  (%rax),%xmm0
  mulsd  %xmm1,%xmm0
  mov    -0xc0(%rbp),%rax
  add    $0x18,%rax
  movsd  (%rax),%xmm1
  subsd  %xmm1,%xmm0
  movsd  %xmm0,-0x90(%rbp)
  mov    -0xc8(%rbp),%rax
  add    $0x40,%rax
  movsd  (%rax),%xmm0
  mov    -0xd0(%rbp),%rax
  add    $0x40,%rax
  addsd  -0x90(%rbp),%xmm0
  movsd  %xmm0,(%rax)
  mov    -0xc8(%rbp),%rax
  add    $0x40,%rax
  movsd  (%rax),%xmm0
  mov    -0xd0(%rbp),%rax
  sub    $0xffffffffffffff80,%rax
  subsd  -0x90(%rbp),%xmm0
  movsd  %xmm0,(%rax)
  mov    -0xc0(%rbp),%rax
  movsd  (%rax),%xmm1
  mov    -0xc0(%rbp),%rax
  add    $0x10,%rax
  movsd  (%rax),%xmm0
  addsd  %xmm1,%xmm0
  mov    -0xc8(%rbp),%rax
  movsd  %xmm0,(%rax)
  mov    -0xc0(%rbp),%rax
  add    $0x8,%rax
  movsd  (%rax),%xmm1
  mov    -0xc0(%rbp),%rax
  add    $0x18,%rax
  movsd  (%rax),%xmm0
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0x90(%rbp)
  mov    -0xc8(%rbp),%rax
  movsd  (%rax),%xmm0
  addsd  -0x90(%rbp),%xmm0
  mov    -0xd0(%rbp),%rax
  movsd  %xmm0,(%rax)
  mov    -0xc8(%rbp),%rax
  movsd  (%rax),%xmm0
  mov    -0xd0(%rbp),%rax
  add    $0xc0,%rax
  subsd  -0x90(%rbp),%xmm0
  movsd  %xmm0,(%rax)
  movsd  -0x70(%rbp),%xmm0
  movsd  -0x60(%rbp),%xmm1
  mov    -0xc8(%rbp),%rax
  add    $0x60,%rax
  subsd  %xmm1,%xmm0
  movsd  %xmm0,(%rax)
  mov    -0xd0(%rbp),%rax
  lea    0x60(%rax),%rdx
  mov    -0xc8(%rbp),%rax
  movsd  0x60(%rax),%xmm0
  movsd  %xmm0,(%rdx)
  movsd  D29(%rip),%xmm0
  movsd  %xmm0,-0x90(%rbp)
  movl   $0x1,-0xa8(%rbp)
  jmp    L50
L24:
  mov    -0xa8(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xc8(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mov    -0xa8(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xc8(%rbp),%rax
  add    %rdx,%rax
  mulsd  -0x90(%rbp),%xmm0
  movsd  %xmm0,(%rax)
  addl   $0x1,-0xa8(%rbp)
L50:
  cmpl   $0xb,-0xa8(%rbp)
  jle    L24
  movsd  -0x90(%rbp),%xmm1
  movsd  D0(%rip),%xmm0
  mulsd  %xmm1,%xmm0
  movsd  %xmm0,-0x90(%rbp)
  mov    -0xc8(%rbp),%rax
  movsd  (%rax),%xmm0
  mulsd  -0x90(%rbp),%xmm0
  mov    -0xc8(%rbp),%rax
  movsd  %xmm0,(%rax)
  mov    -0xc8(%rbp),%rax
  add    $0x60,%rax
  movsd  (%rax),%xmm0
  mov    -0xc8(%rbp),%rax
  add    $0x60,%rax
  mulsd  -0x90(%rbp),%xmm0
  movsd  %xmm0,(%rax)
  movl   $0x1,-0xa8(%rbp)
  jmp    L93
L39:
  mov    -0xa8(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xd0(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mov    -0xa8(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0xd0(%rbp),%rax
  add    %rdx,%rax
  mulsd  -0x90(%rbp),%xmm0
  movsd  %xmm0,(%rax)
  addl   $0x1,-0xa8(%rbp)
L93:
  cmpl   $0x17,-0xa8(%rbp)
  jle    L39
  mov    -0xd0(%rbp),%rax
  movsd  (%rax),%xmm1
  movsd  -0x90(%rbp),%xmm2
  movsd  D0(%rip),%xmm0
  mulsd  %xmm2,%xmm0
  mulsd  %xmm1,%xmm0
  mov    -0xd0(%rbp),%rax
  movsd  %xmm0,(%rax)
  mov    -0xd0(%rbp),%rax
  add    $0xc0,%rax
  movsd  (%rax),%xmm1
  movsd  -0x90(%rbp),%xmm2
  movsd  D0(%rip),%xmm0
  mulsd  %xmm2,%xmm0
  mov    -0xd0(%rbp),%rax
  add    $0xc0,%rax
  mulsd  %xmm1,%xmm0
  movsd  %xmm0,(%rax)
  nop
  mov    -0x8(%rbp),%rax
  sub    %fs:0x28,%rax
  je     L107
  call   <__stack_chk_fail@plt>
L107:
  leave
  ret
```

tool_calls: name: read_data
arguments: data_label: D29
type_infered: byte[8]
name: read_data
arguments: data_label: D0
type_infered: f64

tool: {"D29": [0x55,0x55,0x55,0x55,0x55,0x55,0xc5,0x3f]}

tool: D0: 0.5

assistant: ```c
void dqcheb(double x[], double fval[], double cheb12[], double cheb24[]) {
  double alam, alam1, alam2, part1, part2, part3;
  double v[12];
  int i, j;
  for (i = 0; i < 12; i++) {
    j = 24 - i;
    v[i] = fval[i] - fval[j];
    fval[i] += fval[j];
  }
  alam1 = v[0] - v[8];
  alam2 = x[5] * (v[2] - v[6] - v[10]);
  cheb12[3] = alam1 + alam2;
  cheb12[9] = alam1 - alam2;
  alam1 = v[1] - v[7] - v[9];
  alam2 = v[3] - v[5] - v[11];
  alam = x[2] * alam1 + x[8] * alam2;
  cheb24[3] = cheb12[3] + alam;
  cheb24[21] = cheb12[3] - alam;
  alam = x[8] * alam1 - x[2] * alam2;
  cheb24[9] = cheb12[9] + alam;
  cheb24[15] = cheb12[9] - alam;
  part1 = x[3] * v[4];
  part2 = x[7] * v[8];
  part3 = x[5] * v[6];
  alam1 = v[0] + part1 + part2;
  alam2 = x[1] * v[2] + part3 + x[9] * v[10];
  cheb12[1] = alam1 + alam2;
  cheb12[11] = alam1 - alam2;
  alam = x[0] * v[1] + x[2] * v[3] + x[4] * v[5] + x[6] * v[7] + x[8] * v[9] + x[10] * v[11];
  cheb24[1] = cheb12[1] + alam;
  cheb24[23] = cheb12[1] - alam;
  alam = x[10] * v[1] - x[8] * v[3] + x[6] * v[5] - x[4] * v[7] + x[2] * v[9] - x[0] * v[11];
  cheb24[11] = cheb12[11] + alam;
  cheb24[13] = cheb12[11] - alam;
  alam1 = v[0] - part1 + part2;
  alam2 = x[9] * v[2] - part3 + x[1] * v[10];
  cheb12[5] = alam1 + alam2;
  cheb12[7] = alam1 - alam2;
  alam = x[4] * v[1] - x[8] * v[3] - x[0] * v[5] - x[10] * v[7] + x[2] * v[9] + x[6] * v[11];
  cheb24[5] = cheb12[5] + alam;
  cheb24[19] = cheb12[5] - alam;
  alam = x[6] * v[1] - x[2] * v[3] - x[10] * v[5] + x[0] * v[7] - x[8] * v[9] - x[4] * v[11];
  cheb24[7] = cheb12[7] + alam;
  cheb24[17] = cheb12[7] - alam;
  for (i = 0; i < 6; i++) {
    j = 12 - i;
    v[i] = fval[i] - fval[j];
    fval[i] += fval[j];
  }
  alam1 = v[0] + x[7] * v[4];
  alam2 = x[3] * v[2];
  cheb12[2] = alam1 + alam2;
  cheb12[10] = alam1 - alam2;
  cheb12[6] = v[0] - v[4];
  alam = x[1] * v[1] + x[5] * v[3] + x[9] * v[5];
  cheb24[2] = cheb12[2] + alam;
  cheb24[22] = cheb12[2] - alam;
  alam = x[5] * (v[1] - v[3] - v[5]);
  cheb24[6] = cheb12[6] + alam;
  cheb24[18] = cheb12[6] - alam;
  alam = x[9] * v[1] - x[5] * v[3] + x[1] * v[5];
  cheb24[10] = cheb12[10] + alam;
  cheb24[14] = cheb12[10] - alam;
  for (i = 0; i < 3; i++) {
    j = 6 - i;
    v[i] = fval[i] - fval[j];
    fval[i] += fval[j];
  }
  cheb12[4] = v[0] + x[7] * v[2];
  cheb12[8] = fval[0] - x[7] * fval[2];
  alam = x[3] * v[1];
  cheb24[4] = cheb12[4] + alam;
  cheb24[20] = cheb12[4] - alam;
  alam = x[7] * fval[1] - fval[3];
  cheb24[8] = cheb12[8] + alam;
  cheb24[16] = cheb12[8] - alam;
  cheb12[0] = fval[0] + fval[2];
  alam = fval[1] + fval[3];
  cheb24[0] = cheb12[0] + alam;
  cheb24[24] = cheb12[0] - alam;
  cheb12[12] = v[0] - v[2];
  cheb24[12] = cheb12[12];
  alam = 1.0 / 6.0;
  for (i = 1; i < 12; i++)
    cheb12[i] *= alam;
  alam *= 0.5;
  cheb12[0] *= alam;
  cheb12[12] *= alam;
  for (i = 1; i < 24; i++)
    cheb24[i] *= alam;
  cheb24[0] *= (0.5 * alam);
  cheb24[24] *= (0.5 * alam);
}
```