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

```asm
<ddct8x8s>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  mov    %edi,-0x34(%rbp)
  mov    %rsi,-0x40(%rbp)
  cmpl   $0x0,-0x34(%rbp)
  jns    L30
  movl   $0x0,-0x2c(%rbp)
  jmp    L15
L17:
  mov    -0x40(%rbp),%rax
  mov    (%rax),%rdx
  mov    -0x2c(%rbp),%eax
  cltq
  shl    $0x2,%rax
  add    %rdx,%rax
  movss  (%rax),%xmm1
  mov    -0x40(%rbp),%rax
  add    $0x38,%rax
  mov    (%rax),%rdx
  mov    -0x2c(%rbp),%eax
  cltq
  shl    $0x2,%rax
  add    %rdx,%rax
  movss  (%rax),%xmm0
  addss  %xmm1,%xmm0
  movss  %xmm0,-0x10(%rbp)
  mov    -0x40(%rbp),%rax
  mov    (%rax),%rdx
  mov    -0x2c(%rbp),%eax
  cltq
  shl    $0x2,%rax
  add    %rdx,%rax
  movss  (%rax),%xmm0
  mov    -0x40(%rbp),%rax
  add    $0x38,%rax
  mov    (%rax),%rdx
  mov    -0x2c(%rbp),%eax
  cltq
  shl    $0x2,%rax
  add    %rdx,%rax
  movss  (%rax),%xmm1
  subss  %xmm1,%xmm0
  movss  %xmm0,-0x28(%rbp)
  mov    -0x40(%rbp),%rax
  add    $0x10,%rax
  mov    (%rax),%rdx
  mov    -0x2c(%rbp),%eax
  cltq
  shl    $0x2,%rax
  add    %rdx,%rax
  movss  (%rax),%xmm1
  mov    -0x40(%rbp),%rax
  add    $0x28,%rax
  mov    (%rax),%rdx
  mov    -0x2c(%rbp),%eax
  cltq
  shl    $0x2,%rax
  add    %rdx,%rax
  movss  (%rax),%xmm0
  addss  %xmm1,%xmm0
  movss  %xmm0,-0xc(%rbp)
  mov    -0x40(%rbp),%rax
  add    $0x10,%rax
  mov    (%rax),%rdx
  mov    -0x2c(%rbp),%eax
  cltq
  shl    $0x2,%rax
  add    %rdx,%rax
  movss  (%rax),%xmm0
  mov    -0x40(%rbp),%rax
  add    $0x28,%rax
  mov    (%rax),%rdx
  mov    -0x2c(%rbp),%eax
  cltq
  shl    $0x2,%rax
  add    %rdx,%rax
  movss  (%rax),%xmm1
  subss  %xmm1,%xmm0
  movss  %xmm0,-0x24(%rbp)
  mov    -0x40(%rbp),%rax
  add    $0x20,%rax
  mov    (%rax),%rdx
  mov    -0x2c(%rbp),%eax
  cltq
  shl    $0x2,%rax
  add    %rdx,%rax
  movss  (%rax),%xmm1
  mov    -0x40(%rbp),%rax
  add    $0x18,%rax
  mov    (%rax),%rdx
  mov    -0x2c(%rbp),%eax
  cltq
  shl    $0x2,%rax
  add    %rdx,%rax
  movss  (%rax),%xmm0
  addss  %xmm1,%xmm0
  movss  %xmm0,-0x8(%rbp)
  mov    -0x40(%rbp),%rax
  add    $0x20,%rax
  mov    (%rax),%rdx
  mov    -0x2c(%rbp),%eax
  cltq
  shl    $0x2,%rax
  add    %rdx,%rax
  movss  (%rax),%xmm0
  mov    -0x40(%rbp),%rax
  add    $0x18,%rax
  mov    (%rax),%rdx
  mov    -0x2c(%rbp),%eax
  cltq
  shl    $0x2,%rax
  add    %rdx,%rax
  movss  (%rax),%xmm1
  subss  %xmm1,%xmm0
  movss  %xmm0,-0x20(%rbp)
  mov    -0x40(%rbp),%rax
  add    $0x30,%rax
  mov    (%rax),%rdx
  mov    -0x2c(%rbp),%eax
  cltq
  shl    $0x2,%rax
  add    %rdx,%rax
  movss  (%rax),%xmm1
  mov    -0x40(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%rdx
  mov    -0x2c(%rbp),%eax
  cltq
  shl    $0x2,%rax
  add    %rdx,%rax
  movss  (%rax),%xmm0
  addss  %xmm1,%xmm0
  movss  %xmm0,-0x4(%rbp)
  mov    -0x40(%rbp),%rax
  add    $0x30,%rax
  mov    (%rax),%rdx
  mov    -0x2c(%rbp),%eax
  cltq
  shl    $0x2,%rax
  add    %rdx,%rax
  movss  (%rax),%xmm0
  mov    -0x40(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%rdx
  mov    -0x2c(%rbp),%eax
  cltq
  shl    $0x2,%rax
  add    %rdx,%rax
  movss  (%rax),%xmm1
  subss  %xmm1,%xmm0
  movss  %xmm0,-0x1c(%rbp)
  movss  -0x10(%rbp),%xmm0
  addss  -0x8(%rbp),%xmm0
  movss  %xmm0,-0x18(%rbp)
  movss  -0xc(%rbp),%xmm0
  addss  -0x4(%rbp),%xmm0
  movss  %xmm0,-0x14(%rbp)
  movss  -0x18(%rbp),%xmm0
  addss  -0x14(%rbp),%xmm0
  pxor   %xmm1,%xmm1
  cvtss2sd %xmm0,%xmm1
  movsd  D527(%rip),%xmm0
  mulsd  %xmm1,%xmm0
  mov    -0x40(%rbp),%rax
  mov    (%rax),%rdx
  mov    -0x2c(%rbp),%eax
  cltq
  shl    $0x2,%rax
  add    %rdx,%rax
  cvtsd2ss %xmm0,%xmm0
  movss  %xmm0,(%rax)
  movss  -0x18(%rbp),%xmm0
  subss  -0x14(%rbp),%xmm0
  pxor   %xmm1,%xmm1
  cvtss2sd %xmm0,%xmm1
  movsd  D527(%rip),%xmm0
  mulsd  %xmm1,%xmm0
  mov    -0x40(%rbp),%rax
  add    $0x20,%rax
  mov    (%rax),%rdx
  mov    -0x2c(%rbp),%eax
  cltq
  shl    $0x2,%rax
  add    %rdx,%rax
  cvtsd2ss %xmm0,%xmm0
  movss  %xmm0,(%rax)
  movss  -0x10(%rbp),%xmm0
  subss  -0x8(%rbp),%xmm0
  movss  %xmm0,-0x18(%rbp)
  movss  -0xc(%rbp),%xmm0
  subss  -0x4(%rbp),%xmm0
  movss  %xmm0,-0x14(%rbp)
  pxor   %xmm1,%xmm1
  cvtss2sd -0x18(%rbp),%xmm1
  movsd  D218(%rip),%xmm0
  mulsd  %xmm1,%xmm0
  pxor   %xmm2,%xmm2
  cvtss2sd -0x14(%rbp),%xmm2
  movsd  D226(%rip),%xmm1
  mulsd  %xmm2,%xmm1
  subsd  %xmm1,%xmm0
  mov    -0x40(%rbp),%rax
  add    $0x10,%rax
  mov    (%rax),%rdx
  mov    -0x2c(%rbp),%eax
  cltq
  shl    $0x2,%rax
  add    %rdx,%rax
  cvtsd2ss %xmm0,%xmm0
  movss  %xmm0,(%rax)
  pxor   %xmm1,%xmm1
  cvtss2sd -0x14(%rbp),%xmm1
  movsd  D218(%rip),%xmm0
  mulsd  %xmm0,%xmm1
  pxor   %xmm2,%xmm2
  cvtss2sd -0x18(%rbp),%xmm2
  movsd  D226(%rip),%xmm0
  mulsd  %xmm2,%xmm0
  addsd  %xmm1,%xmm0
  mov    -0x40(%rbp),%rax
  add    $0x30,%rax
  mov    (%rax),%rdx
  mov    -0x2c(%rbp),%eax
  cltq
  shl    $0x2,%rax
  add    %rdx,%rax
  cvtsd2ss %xmm0,%xmm0
  movss  %xmm0,(%rax)
  movss  -0x24(%rbp),%xmm0
  subss  -0x1c(%rbp),%xmm0
  pxor   %xmm1,%xmm1
  cvtss2sd %xmm0,%xmm1
  movsd  D541(%rip),%xmm0
  mulsd  %xmm1,%xmm0
  cvtsd2ss %xmm0,%xmm0
  movss  %xmm0,-0x18(%rbp)
  movss  -0x24(%rbp),%xmm0
  addss  -0x1c(%rbp),%xmm0
  pxor   %xmm1,%xmm1
  cvtss2sd %xmm0,%xmm1
  movsd  D541(%rip),%xmm0
  mulsd  %xmm1,%xmm0
  cvtsd2ss %xmm0,%xmm0
  movss  %xmm0,-0x24(%rbp)
  movss  -0x24(%rbp),%xmm0
  subss  -0x20(%rbp),%xmm0
  movss  %xmm0,-0x1c(%rbp)
  movss  -0x24(%rbp),%xmm0
  addss  -0x20(%rbp),%xmm0
  movss  %xmm0,-0x24(%rbp)
  movss  -0x28(%rbp),%xmm0
  subss  -0x18(%rbp),%xmm0
  movss  %xmm0,-0x20(%rbp)
  movss  -0x28(%rbp),%xmm0
  addss  -0x18(%rbp),%xmm0
  movss  %xmm0,-0x28(%rbp)
  pxor   %xmm1,%xmm1
  cvtss2sd -0x28(%rbp),%xmm1
  movsd  D506(%rip),%xmm0
  mulsd  %xmm1,%xmm0
  pxor   %xmm2,%xmm2
  cvtss2sd -0x24(%rbp),%xmm2
  movsd  D80(%rip),%xmm1
  mulsd  %xmm2,%xmm1
  subsd  %xmm1,%xmm0
  mov    -0x40(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%rdx
  mov    -0x2c(%rbp),%eax
  cltq
  shl    $0x2,%rax
  add    %rdx,%rax
  cvtsd2ss %xmm0,%xmm0
  movss  %xmm0,(%rax)
  pxor   %xmm1,%xmm1
  cvtss2sd -0x24(%rbp),%xmm1
  movsd  D506(%rip),%xmm0
  mulsd  %xmm0,%xmm1
  pxor   %xmm2,%xmm2
  cvtss2sd -0x28(%rbp),%xmm2
  movsd  D80(%rip),%xmm0
  mulsd  %xmm2,%xmm0
  addsd  %xmm1,%xmm0
  mov    -0x40(%rbp),%rax
  add    $0x38,%rax
  mov    (%rax),%rdx
  mov    -0x2c(%rbp),%eax
  cltq
  shl    $0x2,%rax
  add    %rdx,%rax
  cvtsd2ss %xmm0,%xmm0
  movss  %xmm0,(%rax)
  pxor   %xmm1,%xmm1
  cvtss2sd -0x20(%rbp),%xmm1
  movsd  D480(%rip),%xmm0
  mulsd  %xmm1,%xmm0
  pxor   %xmm2,%xmm2
  cvtss2sd -0x1c(%rbp),%xmm2
  movsd  D522(%rip),%xmm1
  mulsd  %xmm2,%xmm1
  subsd  %xmm1,%xmm0
  mov    -0x40(%rbp),%rax
  add    $0x18,%rax
  mov    (%rax),%rdx
  mov    -0x2c(%rbp),%eax
  cltq
  shl    $0x2,%rax
  add    %rdx,%rax
  cvtsd2ss %xmm0,%xmm0
  movss  %xmm0,(%rax)
  pxor   %xmm1,%xmm1
  cvtss2sd -0x1c(%rbp),%xmm1
  movsd  D480(%rip),%xmm0
  mulsd  %xmm0,%xmm1
  pxor   %xmm2,%xmm2
  cvtss2sd -0x20(%rbp),%xmm2
  movsd  D522(%rip),%xmm0
  mulsd  %xmm2,%xmm0
  addsd  %xmm1,%xmm0
  mov    -0x40(%rbp),%rax
  add    $0x28,%rax
  mov    (%rax),%rdx
  mov    -0x2c(%rbp),%eax
  cltq
  shl    $0x2,%rax
  add    %rdx,%rax
  cvtsd2ss %xmm0,%xmm0
  movss  %xmm0,(%rax)
  addl   $0x1,-0x2c(%rbp)
L15:
  cmpl   $0x7,-0x2c(%rbp)
  jle    L17
  movl   $0x0,-0x2c(%rbp)
  jmp    L3
L77:
  mov    -0x2c(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x40(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%rax
  movss  (%rax),%xmm1
  mov    -0x2c(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x40(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%rax
  add    $0x1c,%rax
  movss  (%rax),%xmm0
  addss  %xmm1,%xmm0
  movss  %xmm0,-0x10(%rbp)
  mov    -0x2c(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x40(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%rax
  movss  (%rax),%xmm0
  mov    -0x2c(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x40(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%rax
  add    $0x1c,%rax
  movss  (%rax),%xmm1
  subss  %xmm1,%xmm0
  movss  %xmm0,-0x28(%rbp)
  mov    -0x2c(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x40(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%rax
  add    $0x8,%rax
  movss  (%rax),%xmm1
  mov    -0x2c(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x40(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%rax
  add    $0x14,%rax
  movss  (%rax),%xmm0
  addss  %xmm1,%xmm0
  movss  %xmm0,-0xc(%rbp)
  mov    -0x2c(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x40(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%rax
  add    $0x8,%rax
  movss  (%rax),%xmm0
  mov    -0x2c(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x40(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%rax
  add    $0x14,%rax
  movss  (%rax),%xmm1
  subss  %xmm1,%xmm0
  movss  %xmm0,-0x24(%rbp)
  mov    -0x2c(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x40(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%rax
  add    $0x10,%rax
  movss  (%rax),%xmm1
  mov    -0x2c(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x40(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%rax
  add    $0xc,%rax
  movss  (%rax),%xmm0
  addss  %xmm1,%xmm0
  movss  %xmm0,-0x8(%rbp)
  mov    -0x2c(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x40(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%rax
  add    $0x10,%rax
  movss  (%rax),%xmm0
  mov    -0x2c(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x40(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%rax
  add    $0xc,%rax
  movss  (%rax),%xmm1
  subss  %xmm1,%xmm0
  movss  %xmm0,-0x20(%rbp)
  mov    -0x2c(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x40(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%rax
  add    $0x18,%rax
  movss  (%rax),%xmm1
  mov    -0x2c(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x40(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%rax
  add    $0x4,%rax
  movss  (%rax),%xmm0
  addss  %xmm1,%xmm0
  movss  %xmm0,-0x4(%rbp)
  mov    -0x2c(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x40(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%rax
  add    $0x18,%rax
  movss  (%rax),%xmm0
  mov    -0x2c(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x40(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%rax
  add    $0x4,%rax
  movss  (%rax),%xmm1
  subss  %xmm1,%xmm0
  movss  %xmm0,-0x1c(%rbp)
  movss  -0x10(%rbp),%xmm0
  addss  -0x8(%rbp),%xmm0
  movss  %xmm0,-0x18(%rbp)
  movss  -0xc(%rbp),%xmm0
  addss  -0x4(%rbp),%xmm0
  movss  %xmm0,-0x14(%rbp)
  movss  -0x18(%rbp),%xmm0
  addss  -0x14(%rbp),%xmm0
  pxor   %xmm1,%xmm1
  cvtss2sd %xmm0,%xmm1
  movsd  D527(%rip),%xmm0
  mulsd  %xmm1,%xmm0
  mov    -0x2c(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x40(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%rax
  cvtsd2ss %xmm0,%xmm0
  movss  %xmm0,(%rax)
  movss  -0x18(%rbp),%xmm0
  subss  -0x14(%rbp),%xmm0
  pxor   %xmm1,%xmm1
  cvtss2sd %xmm0,%xmm1
  movsd  D527(%rip),%xmm0
  mulsd  %xmm1,%xmm0
  mov    -0x2c(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x40(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%rax
  add    $0x10,%rax
  cvtsd2ss %xmm0,%xmm0
  movss  %xmm0,(%rax)
  movss  -0x10(%rbp),%xmm0
  subss  -0x8(%rbp),%xmm0
  movss  %xmm0,-0x18(%rbp)
  movss  -0xc(%rbp),%xmm0
  subss  -0x4(%rbp),%xmm0
  movss  %xmm0,-0x14(%rbp)
  pxor   %xmm1,%xmm1
  cvtss2sd -0x18(%rbp),%xmm1
  movsd  D218(%rip),%xmm0
  mulsd  %xmm1,%xmm0
  pxor   %xmm2,%xmm2
  cvtss2sd -0x14(%rbp),%xmm2
  movsd  D226(%rip),%xmm1
  mulsd  %xmm2,%xmm1
  subsd  %xmm1,%xmm0
  mov    -0x2c(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x40(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%rax
  add    $0x8,%rax
  cvtsd2ss %xmm0,%xmm0
  movss  %xmm0,(%rax)
  pxor   %xmm1,%xmm1
  cvtss2sd -0x14(%rbp),%xmm1
  movsd  D218(%rip),%xmm0
  mulsd  %xmm0,%xmm1
  pxor   %xmm2,%xmm2
  cvtss2sd -0x18(%rbp),%xmm2
  movsd  D226(%rip),%xmm0
  mulsd  %xmm2,%xmm0
  addsd  %xmm1,%xmm0
  mov    -0x2c(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x40(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%rax
  add    $0x18,%rax
  cvtsd2ss %xmm0,%xmm0
  movss  %xmm0,(%rax)
  movss  -0x24(%rbp),%xmm0
  subss  -0x1c(%rbp),%xmm0
  pxor   %xmm1,%xmm1
  cvtss2sd %xmm0,%xmm1
  movsd  D541(%rip),%xmm0
  mulsd  %xmm1,%xmm0
  cvtsd2ss %xmm0,%xmm0
  movss  %xmm0,-0x18(%rbp)
  movss  -0x24(%rbp),%xmm0
  addss  -0x1c(%rbp),%xmm0
  pxor   %xmm1,%xmm1
  cvtss2sd %xmm0,%xmm1
  movsd  D541(%rip),%xmm0
  mulsd  %xmm1,%xmm0
  cvtsd2ss %xmm0,%xmm0
  movss  %xmm0,-0x24(%rbp)
  movss  -0x24(%rbp),%xmm0
  subss  -0x20(%rbp),%xmm0
  movss  %xmm0,-0x1c(%rbp)
  movss  -0x24(%rbp),%xmm0
  addss  -0x20(%rbp),%xmm0
  movss  %xmm0,-0x24(%rbp)
  movss  -0x28(%rbp),%xmm0
  subss  -0x18(%rbp),%xmm0
  movss  %xmm0,-0x20(%rbp)
  movss  -0x28(%rbp),%xmm0
  addss  -0x18(%rbp),%xmm0
  movss  %xmm0,-0x28(%rbp)
  pxor   %xmm1,%xmm1
  cvtss2sd -0x28(%rbp),%xmm1
  movsd  D506(%rip),%xmm0
  mulsd  %xmm1,%xmm0
  pxor   %xmm2,%xmm2
  cvtss2sd -0x24(%rbp),%xmm2
  movsd  D80(%rip),%xmm1
  mulsd  %xmm2,%xmm1
  subsd  %xmm1,%xmm0
  mov    -0x2c(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x40(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%rax
  add    $0x4,%rax
  cvtsd2ss %xmm0,%xmm0
  movss  %xmm0,(%rax)
  pxor   %xmm1,%xmm1
  cvtss2sd -0x24(%rbp),%xmm1
  movsd  D506(%rip),%xmm0
  mulsd  %xmm0,%xmm1
  pxor   %xmm2,%xmm2
  cvtss2sd -0x28(%rbp),%xmm2
  movsd  D80(%rip),%xmm0
  mulsd  %xmm2,%xmm0
  addsd  %xmm1,%xmm0
  mov    -0x2c(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x40(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%rax
  add    $0x1c,%rax
  cvtsd2ss %xmm0,%xmm0
  movss  %xmm0,(%rax)
  pxor   %xmm1,%xmm1
  cvtss2sd -0x20(%rbp),%xmm1
  movsd  D480(%rip),%xmm0
  mulsd  %xmm1,%xmm0
  pxor   %xmm2,%xmm2
  cvtss2sd -0x1c(%rbp),%xmm2
  movsd  D522(%rip),%xmm1
  mulsd  %xmm2,%xmm1
  subsd  %xmm1,%xmm0
  mov    -0x2c(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x40(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%rax
  add    $0xc,%rax
  cvtsd2ss %xmm0,%xmm0
  movss  %xmm0,(%rax)
  pxor   %xmm1,%xmm1
  cvtss2sd -0x1c(%rbp),%xmm1
  movsd  D480(%rip),%xmm0
  mulsd  %xmm0,%xmm1
  pxor   %xmm2,%xmm2
  cvtss2sd -0x20(%rbp),%xmm2
  movsd  D522(%rip),%xmm0
  mulsd  %xmm2,%xmm0
  addsd  %xmm1,%xmm0
  mov    -0x2c(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x40(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%rax
  add    $0x14,%rax
  cvtsd2ss %xmm0,%xmm0
  movss  %xmm0,(%rax)
  addl   $0x1,-0x2c(%rbp)
L3:
  cmpl   $0x7,-0x2c(%rbp)
  jle    L77
  jmp    L82
L30:
  movl   $0x0,-0x2c(%rbp)
  jmp    L25
L5:
  mov    -0x40(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%rdx
  mov    -0x2c(%rbp),%eax
  cltq
  shl    $0x2,%rax
  add    %rdx,%rax
  movss  (%rax),%xmm0
  pxor   %xmm1,%xmm1
  cvtss2sd %xmm0,%xmm1
  movsd  D506(%rip),%xmm0
  mulsd  %xmm0,%xmm1
  mov    -0x40(%rbp),%rax
  add    $0x38,%rax
  mov    (%rax),%rdx
  mov    -0x2c(%rbp),%eax
  cltq
  shl    $0x2,%rax
  add    %rdx,%rax
  movss  (%rax),%xmm0
  pxor   %xmm2,%xmm2
  cvtss2sd %xmm0,%xmm2
  movsd  D80(%rip),%xmm0
  mulsd  %xmm2,%xmm0
  addsd  %xmm1,%xmm0
  cvtsd2ss %xmm0,%xmm0
  movss  %xmm0,-0x28(%rbp)
  mov    -0x40(%rbp),%rax
  add    $0x38,%rax
  mov    (%rax),%rdx
  mov    -0x2c(%rbp),%eax
  cltq
  shl    $0x2,%rax
  add    %rdx,%rax
  movss  (%rax),%xmm0
  pxor   %xmm1,%xmm1
  cvtss2sd %xmm0,%xmm1
  movsd  D506(%rip),%xmm0
  mulsd  %xmm1,%xmm0
  mov    -0x40(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%rdx
  mov    -0x2c(%rbp),%eax
  cltq
  shl    $0x2,%rax
  add    %rdx,%rax
  movss  (%rax),%xmm1
  pxor   %xmm2,%xmm2
  cvtss2sd %xmm1,%xmm2
  movsd  D80(%rip),%xmm1
  mulsd  %xmm2,%xmm1
  subsd  %xmm1,%xmm0
  cvtsd2ss %xmm0,%xmm0
  movss  %xmm0,-0x24(%rbp)
  mov    -0x40(%rbp),%rax
  add    $0x18,%rax
  mov    (%rax),%rdx
  mov    -0x2c(%rbp),%eax
  cltq
  shl    $0x2,%rax
  add    %rdx,%rax
  movss  (%rax),%xmm0
  pxor   %xmm1,%xmm1
  cvtss2sd %xmm0,%xmm1
  movsd  D480(%rip),%xmm0
  mulsd  %xmm0,%xmm1
  mov    -0x40(%rbp),%rax
  add    $0x28,%rax
  mov    (%rax),%rdx
  mov    -0x2c(%rbp),%eax
  cltq
  shl    $0x2,%rax
  add    %rdx,%rax
  movss  (%rax),%xmm0
  pxor   %xmm2,%xmm2
  cvtss2sd %xmm0,%xmm2
  movsd  D522(%rip),%xmm0
  mulsd  %xmm2,%xmm0
  addsd  %xmm1,%xmm0
  cvtsd2ss %xmm0,%xmm0
  movss  %xmm0,-0x20(%rbp)
  mov    -0x40(%rbp),%rax
  add    $0x28,%rax
  mov    (%rax),%rdx
  mov    -0x2c(%rbp),%eax
  cltq
  shl    $0x2,%rax
  add    %rdx,%rax
  movss  (%rax),%xmm0
  pxor   %xmm1,%xmm1
  cvtss2sd %xmm0,%xmm1
  movsd  D480(%rip),%xmm0
  mulsd  %xmm1,%xmm0
  mov    -0x40(%rbp),%rax
  add    $0x18,%rax
  mov    (%rax),%rdx
  mov    -0x2c(%rbp),%eax
  cltq
  shl    $0x2,%rax
  add    %rdx,%rax
  movss  (%rax),%xmm1
  pxor   %xmm2,%xmm2
  cvtss2sd %xmm1,%xmm2
  movsd  D522(%rip),%xmm1
  mulsd  %xmm2,%xmm1
  subsd  %xmm1,%xmm0
  cvtsd2ss %xmm0,%xmm0
  movss  %xmm0,-0x1c(%rbp)
  movss  -0x28(%rbp),%xmm0
  subss  -0x20(%rbp),%xmm0
  movss  %xmm0,-0x18(%rbp)
  movss  -0x24(%rbp),%xmm0
  addss  -0x1c(%rbp),%xmm0
  movss  %xmm0,-0x14(%rbp)
  movss  -0x28(%rbp),%xmm0
  addss  -0x20(%rbp),%xmm0
  movss  %xmm0,-0x28(%rbp)
  movss  -0x1c(%rbp),%xmm0
  subss  -0x24(%rbp),%xmm0
  movss  %xmm0,-0x1c(%rbp)
  movss  -0x18(%rbp),%xmm0
  addss  -0x14(%rbp),%xmm0
  pxor   %xmm1,%xmm1
  cvtss2sd %xmm0,%xmm1
  movsd  D541(%rip),%xmm0
  mulsd  %xmm1,%xmm0
  cvtsd2ss %xmm0,%xmm0
  movss  %xmm0,-0x24(%rbp)
  movss  -0x18(%rbp),%xmm0
  subss  -0x14(%rbp),%xmm0
  pxor   %xmm1,%xmm1
  cvtss2sd %xmm0,%xmm1
  movsd  D541(%rip),%xmm0
  mulsd  %xmm1,%xmm0
  cvtsd2ss %xmm0,%xmm0
  movss  %xmm0,-0x20(%rbp)
  mov    -0x40(%rbp),%rax
  add    $0x10,%rax
  mov    (%rax),%rdx
  mov    -0x2c(%rbp),%eax
  cltq
  shl    $0x2,%rax
  add    %rdx,%rax
  movss  (%rax),%xmm0
  pxor   %xmm1,%xmm1
  cvtss2sd %xmm0,%xmm1
  movsd  D218(%rip),%xmm0
  mulsd  %xmm0,%xmm1
  mov    -0x40(%rbp),%rax
  add    $0x30,%rax
  mov    (%rax),%rdx
  mov    -0x2c(%rbp),%eax
  cltq
  shl    $0x2,%rax
  add    %rdx,%rax
  movss  (%rax),%xmm0
  pxor   %xmm2,%xmm2
  cvtss2sd %xmm0,%xmm2
  movsd  D226(%rip),%xmm0
  mulsd  %xmm2,%xmm0
  addsd  %xmm1,%xmm0
  cvtsd2ss %xmm0,%xmm0
  movss  %xmm0,-0x18(%rbp)
  mov    -0x40(%rbp),%rax
  add    $0x30,%rax
  mov    (%rax),%rdx
  mov    -0x2c(%rbp),%eax
  cltq
  shl    $0x2,%rax
  add    %rdx,%rax
  movss  (%rax),%xmm0
  pxor   %xmm1,%xmm1
  cvtss2sd %xmm0,%xmm1
  movsd  D218(%rip),%xmm0
  mulsd  %xmm1,%xmm0
  mov    -0x40(%rbp),%rax
  add    $0x10,%rax
  mov    (%rax),%rdx
  mov    -0x2c(%rbp),%eax
  cltq
  shl    $0x2,%rax
  add    %rdx,%rax
  movss  (%rax),%xmm1
  pxor   %xmm2,%xmm2
  cvtss2sd %xmm1,%xmm2
  movsd  D226(%rip),%xmm1
  mulsd  %xmm2,%xmm1
  subsd  %xmm1,%xmm0
  cvtsd2ss %xmm0,%xmm0
  movss  %xmm0,-0x14(%rbp)
  mov    -0x40(%rbp),%rax
  mov    (%rax),%rdx
  mov    -0x2c(%rbp),%eax
  cltq
  shl    $0x2,%rax
  add    %rdx,%rax
  movss  (%rax),%xmm1
  mov    -0x40(%rbp),%rax
  add    $0x20,%rax
  mov    (%rax),%rdx
  mov    -0x2c(%rbp),%eax
  cltq
  shl    $0x2,%rax
  add    %rdx,%rax
  movss  (%rax),%xmm0
  addss  %xmm1,%xmm0
  pxor   %xmm1,%xmm1
  cvtss2sd %xmm0,%xmm1
  movsd  D527(%rip),%xmm0
  mulsd  %xmm1,%xmm0
  cvtsd2ss %xmm0,%xmm0
  movss  %xmm0,-0x10(%rbp)
  mov    -0x40(%rbp),%rax
  mov    (%rax),%rdx
  mov    -0x2c(%rbp),%eax
  cltq
  shl    $0x2,%rax
  add    %rdx,%rax
  movss  (%rax),%xmm0
  mov    -0x40(%rbp),%rax
  add    $0x20,%rax
  mov    (%rax),%rdx
  mov    -0x2c(%rbp),%eax
  cltq
  shl    $0x2,%rax
  add    %rdx,%rax
  movss  (%rax),%xmm1
  subss  %xmm1,%xmm0
  pxor   %xmm1,%xmm1
  cvtss2sd %xmm0,%xmm1
  movsd  D527(%rip),%xmm0
  mulsd  %xmm1,%xmm0
  cvtsd2ss %xmm0,%xmm0
  movss  %xmm0,-0xc(%rbp)
  movss  -0x10(%rbp),%xmm0
  subss  -0x18(%rbp),%xmm0
  movss  %xmm0,-0x8(%rbp)
  movss  -0xc(%rbp),%xmm0
  subss  -0x14(%rbp),%xmm0
  movss  %xmm0,-0x4(%rbp)
  movss  -0x10(%rbp),%xmm0
  addss  -0x18(%rbp),%xmm0
  movss  %xmm0,-0x10(%rbp)
  movss  -0xc(%rbp),%xmm0
  addss  -0x14(%rbp),%xmm0
  movss  %xmm0,-0xc(%rbp)
  mov    -0x40(%rbp),%rax
  mov    (%rax),%rdx
  mov    -0x2c(%rbp),%eax
  cltq
  shl    $0x2,%rax
  add    %rdx,%rax
  movss  -0x10(%rbp),%xmm0
  addss  -0x28(%rbp),%xmm0
  movss  %xmm0,(%rax)
  mov    -0x40(%rbp),%rax
  add    $0x38,%rax
  mov    (%rax),%rdx
  mov    -0x2c(%rbp),%eax
  cltq
  shl    $0x2,%rax
  add    %rdx,%rax
  movss  -0x10(%rbp),%xmm0
  subss  -0x28(%rbp),%xmm0
  movss  %xmm0,(%rax)
  mov    -0x40(%rbp),%rax
  add    $0x10,%rax
  mov    (%rax),%rdx
  mov    -0x2c(%rbp),%eax
  cltq
  shl    $0x2,%rax
  add    %rdx,%rax
  movss  -0xc(%rbp),%xmm0
  addss  -0x24(%rbp),%xmm0
  movss  %xmm0,(%rax)
  mov    -0x40(%rbp),%rax
  add    $0x28,%rax
  mov    (%rax),%rdx
  mov    -0x2c(%rbp),%eax
  cltq
  shl    $0x2,%rax
  add    %rdx,%rax
  movss  -0xc(%rbp),%xmm0
  subss  -0x24(%rbp),%xmm0
  movss  %xmm0,(%rax)
  mov    -0x40(%rbp),%rax
  add    $0x20,%rax
  mov    (%rax),%rdx
  mov    -0x2c(%rbp),%eax
  cltq
  shl    $0x2,%rax
  add    %rdx,%rax
  movss  -0x8(%rbp),%xmm0
  subss  -0x1c(%rbp),%xmm0
  movss  %xmm0,(%rax)
  mov    -0x40(%rbp),%rax
  add    $0x18,%rax
  mov    (%rax),%rdx
  mov    -0x2c(%rbp),%eax
  cltq
  shl    $0x2,%rax
  add    %rdx,%rax
  movss  -0x8(%rbp),%xmm0
  addss  -0x1c(%rbp),%xmm0
  movss  %xmm0,(%rax)
  mov    -0x40(%rbp),%rax
  add    $0x30,%rax
  mov    (%rax),%rdx
  mov    -0x2c(%rbp),%eax
  cltq
  shl    $0x2,%rax
  add    %rdx,%rax
  movss  -0x4(%rbp),%xmm0
  subss  -0x20(%rbp),%xmm0
  movss  %xmm0,(%rax)
  mov    -0x40(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%rdx
  mov    -0x2c(%rbp),%eax
  cltq
  shl    $0x2,%rax
  add    %rdx,%rax
  movss  -0x4(%rbp),%xmm0
  addss  -0x20(%rbp),%xmm0
  movss  %xmm0,(%rax)
  addl   $0x1,-0x2c(%rbp)
L25:
  cmpl   $0x7,-0x2c(%rbp)
  jle    L5
  movl   $0x0,-0x2c(%rbp)
  jmp    L2
L80:
  mov    -0x2c(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x40(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%rax
  add    $0x4,%rax
  movss  (%rax),%xmm0
  pxor   %xmm1,%xmm1
  cvtss2sd %xmm0,%xmm1
  movsd  D506(%rip),%xmm0
  mulsd  %xmm0,%xmm1
  mov    -0x2c(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x40(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%rax
  add    $0x1c,%rax
  movss  (%rax),%xmm0
  pxor   %xmm2,%xmm2
  cvtss2sd %xmm0,%xmm2
  movsd  D80(%rip),%xmm0
  mulsd  %xmm2,%xmm0
  addsd  %xmm1,%xmm0
  cvtsd2ss %xmm0,%xmm0
  movss  %xmm0,-0x28(%rbp)
  mov    -0x2c(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x40(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%rax
  add    $0x1c,%rax
  movss  (%rax),%xmm0
  pxor   %xmm1,%xmm1
  cvtss2sd %xmm0,%xmm1
  movsd  D506(%rip),%xmm0
  mulsd  %xmm1,%xmm0
  mov    -0x2c(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x40(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%rax
  add    $0x4,%rax
  movss  (%rax),%xmm1
  pxor   %xmm2,%xmm2
  cvtss2sd %xmm1,%xmm2
  movsd  D80(%rip),%xmm1
  mulsd  %xmm2,%xmm1
  subsd  %xmm1,%xmm0
  cvtsd2ss %xmm0,%xmm0
  movss  %xmm0,-0x24(%rbp)
  mov    -0x2c(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x40(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%rax
  add    $0xc,%rax
  movss  (%rax),%xmm0
  pxor   %xmm1,%xmm1
  cvtss2sd %xmm0,%xmm1
  movsd  D480(%rip),%xmm0
  mulsd  %xmm0,%xmm1
  mov    -0x2c(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x40(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%rax
  add    $0x14,%rax
  movss  (%rax),%xmm0
  pxor   %xmm2,%xmm2
  cvtss2sd %xmm0,%xmm2
  movsd  D522(%rip),%xmm0
  mulsd  %xmm2,%xmm0
  addsd  %xmm1,%xmm0
  cvtsd2ss %xmm0,%xmm0
  movss  %xmm0,-0x20(%rbp)
  mov    -0x2c(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x40(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%rax
  add    $0x14,%rax
  movss  (%rax),%xmm0
  pxor   %xmm1,%xmm1
  cvtss2sd %xmm0,%xmm1
  movsd  D480(%rip),%xmm0
  mulsd  %xmm1,%xmm0
  mov    -0x2c(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x40(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%rax
  add    $0xc,%rax
  movss  (%rax),%xmm1
  pxor   %xmm2,%xmm2
  cvtss2sd %xmm1,%xmm2
  movsd  D522(%rip),%xmm1
  mulsd  %xmm2,%xmm1
  subsd  %xmm1,%xmm0
  cvtsd2ss %xmm0,%xmm0
  movss  %xmm0,-0x1c(%rbp)
  movss  -0x28(%rbp),%xmm0
  subss  -0x20(%rbp),%xmm0
  movss  %xmm0,-0x18(%rbp)
  movss  -0x24(%rbp),%xmm0
  addss  -0x1c(%rbp),%xmm0
  movss  %xmm0,-0x14(%rbp)
  movss  -0x28(%rbp),%xmm0
  addss  -0x20(%rbp),%xmm0
  movss  %xmm0,-0x28(%rbp)
  movss  -0x1c(%rbp),%xmm0
  subss  -0x24(%rbp),%xmm0
  movss  %xmm0,-0x1c(%rbp)
  movss  -0x18(%rbp),%xmm0
  addss  -0x14(%rbp),%xmm0
  pxor   %xmm1,%xmm1
  cvtss2sd %xmm0,%xmm1
  movsd  D541(%rip),%xmm0
  mulsd  %xmm1,%xmm0
  cvtsd2ss %xmm0,%xmm0
  movss  %xmm0,-0x24(%rbp)
  movss  -0x18(%rbp),%xmm0
  subss  -0x14(%rbp),%xmm0
  pxor   %xmm1,%xmm1
  cvtss2sd %xmm0,%xmm1
  movsd  D541(%rip),%xmm0
  mulsd  %xmm1,%xmm0
  cvtsd2ss %xmm0,%xmm0
  movss  %xmm0,-0x20(%rbp)
  mov    -0x2c(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x40(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%rax
  add    $0x8,%rax
  movss  (%rax),%xmm0
  pxor   %xmm1,%xmm1
  cvtss2sd %xmm0,%xmm1
  movsd  D218(%rip),%xmm0
  mulsd  %xmm0,%xmm1
  mov    -0x2c(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x40(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%rax
  add    $0x18,%rax
  movss  (%rax),%xmm0
  pxor   %xmm2,%xmm2
  cvtss2sd %xmm0,%xmm2
  movsd  D226(%rip),%xmm0
  mulsd  %xmm2,%xmm0
  addsd  %xmm1,%xmm0
  cvtsd2ss %xmm0,%xmm0
  movss  %xmm0,-0x18(%rbp)
  mov    -0x2c(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x40(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%rax
  add    $0x18,%rax
  movss  (%rax),%xmm0
  pxor   %xmm1,%xmm1
  cvtss2sd %xmm0,%xmm1
  movsd  D218(%rip),%xmm0
  mulsd  %xmm1,%xmm0
  mov    -0x2c(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x40(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%rax
  add    $0x8,%rax
  movss  (%rax),%xmm1
  pxor   %xmm2,%xmm2
  cvtss2sd %xmm1,%xmm2
  movsd  D226(%rip),%xmm1
  mulsd  %xmm2,%xmm1
  subsd  %xmm1,%xmm0
  cvtsd2ss %xmm0,%xmm0
  movss  %xmm0,-0x14(%rbp)
  mov    -0x2c(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x40(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%rax
  movss  (%rax),%xmm1
  mov    -0x2c(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x40(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%rax
  add    $0x10,%rax
  movss  (%rax),%xmm0
  addss  %xmm1,%xmm0
  pxor   %xmm1,%xmm1
  cvtss2sd %xmm0,%xmm1
  movsd  D527(%rip),%xmm0
  mulsd  %xmm1,%xmm0
  cvtsd2ss %xmm0,%xmm0
  movss  %xmm0,-0x10(%rbp)
  mov    -0x2c(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x40(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%rax
  movss  (%rax),%xmm0
  mov    -0x2c(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x40(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%rax
  add    $0x10,%rax
  movss  (%rax),%xmm1
  subss  %xmm1,%xmm0
  pxor   %xmm1,%xmm1
  cvtss2sd %xmm0,%xmm1
  movsd  D527(%rip),%xmm0
  mulsd  %xmm1,%xmm0
  cvtsd2ss %xmm0,%xmm0
  movss  %xmm0,-0xc(%rbp)
  movss  -0x10(%rbp),%xmm0
  subss  -0x18(%rbp),%xmm0
  movss  %xmm0,-0x8(%rbp)
  movss  -0xc(%rbp),%xmm0
  subss  -0x14(%rbp),%xmm0
  movss  %xmm0,-0x4(%rbp)
  movss  -0x10(%rbp),%xmm0
  addss  -0x18(%rbp),%xmm0
  movss  %xmm0,-0x10(%rbp)
  movss  -0xc(%rbp),%xmm0
  addss  -0x14(%rbp),%xmm0
  movss  %xmm0,-0xc(%rbp)
  mov    -0x2c(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x40(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%rax
  movss  -0x10(%rbp),%xmm0
  addss  -0x28(%rbp),%xmm0
  movss  %xmm0,(%rax)
  mov    -0x2c(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x40(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%rax
  add    $0x1c,%rax
  movss  -0x10(%rbp),%xmm0
  subss  -0x28(%rbp),%xmm0
  movss  %xmm0,(%rax)
  mov    -0x2c(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x40(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%rax
  add    $0x8,%rax
  movss  -0xc(%rbp),%xmm0
  addss  -0x24(%rbp),%xmm0
  movss  %xmm0,(%rax)
  mov    -0x2c(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x40(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%rax
  add    $0x14,%rax
  movss  -0xc(%rbp),%xmm0
  subss  -0x24(%rbp),%xmm0
  movss  %xmm0,(%rax)
  mov    -0x2c(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x40(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%rax
  add    $0x10,%rax
  movss  -0x8(%rbp),%xmm0
  subss  -0x1c(%rbp),%xmm0
  movss  %xmm0,(%rax)
  mov    -0x2c(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x40(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%rax
  add    $0xc,%rax
  movss  -0x8(%rbp),%xmm0
  addss  -0x1c(%rbp),%xmm0
  movss  %xmm0,(%rax)
  mov    -0x2c(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x40(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%rax
  add    $0x18,%rax
  movss  -0x4(%rbp),%xmm0
  subss  -0x20(%rbp),%xmm0
  movss  %xmm0,(%rax)
  mov    -0x2c(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x40(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%rax
  add    $0x4,%rax
  movss  -0x4(%rbp),%xmm0
  addss  -0x20(%rbp),%xmm0
  movss  %xmm0,(%rax)
  addl   $0x1,-0x2c(%rbp)
L2:
  cmpl   $0x7,-0x2c(%rbp)
  jle    L80
L82:
  nop
  pop    %rbp
  ret
```

tool_calls: name: read_data
arguments: data_tag: D527
type_infered: f64
name: read_data
arguments: data_tag: D218
type_infered: f64
name: read_data
arguments: data_tag: D226
type_infered: f64
name: read_data
arguments: data_tag: D541
type_infered: f64
name: read_data
arguments: data_tag: D506
type_infered: f64
name: read_data
arguments: data_tag: D80
type_infered: f64
name: read_data
arguments: data_tag: D480
type_infered: f64
name: read_data
arguments: data_tag: D522
type_infered: f64

tool: D527: 0.3535533905932738

tool: D218: 0.46193976625564337

tool: D226: 0.1913417161825449

tool: D541: 0.7071067811865476

tool: D506: 0.4903926402016152

tool: D80: 0.09754516100806414

tool: D480: 0.4157348061512726

tool: D522: 0.2777851165098011

assistant: ```c
void ddct8x8s(int isgn, float **a) {
  int j;
  float x0r, x0i, x1r, x1i, x2r, x2i, x3r, x3i;
  float xr, xi;
  if (isgn < 0) {
    for (j = 0; j <= 7; j++) {
      x0r = a[0][j] + a[7][j];
      x1r = a[0][j] - a[7][j];
      x0i = a[2][j] + a[5][j];
      x1i = a[2][j] - a[5][j];
      x2r = a[4][j] + a[3][j];
      x3r = a[4][j] - a[3][j];
      x2i = a[6][j] + a[1][j];
      x3i = a[6][j] - a[1][j];
      xr = x0r + x2r;
      xi = x0i + x2i;
      a[0][j] = 0.35355339059327376220 * (xr + xi);
      a[4][j] = 0.35355339059327376220 * (xr - xi);
      xr = x0r - x2r;
      xi = x0i - x2i;
      a[2][j] = 0.46193976625564337806 * xr - 0.19134171618254488586 * xi;
      a[6][j] = 0.46193976625564337806 * xi + 0.19134171618254488586 * xr;
      xr = 0.70710678118654752440 * (x1i - x3i);
      x1i = 0.70710678118654752440 * (x1i + x3i);
      x3i = x1i - x3r;
      x1i += x3r;
      x3r = x1r - xr;
      x1r += xr;
      a[1][j] = 0.49039264020161522456 * x1r - 0.09754516100806413392 * x1i;
      a[7][j] = 0.49039264020161522456 * x1i + 0.09754516100806413392 * x1r;
      a[3][j] = 0.41573480615127261854 * x3r - 0.27778511650980111237 * x3i;
      a[5][j] = 0.41573480615127261854 * x3i + 0.27778511650980111237 * x3r;
    }
    for (j = 0; j <= 7; j++) {
      x0r = a[j][0] + a[j][7];
      x1r = a[j][0] - a[j][7];
      x0i = a[j][2] + a[j][5];
      x1i = a[j][2] - a[j][5];
      x2r = a[j][4] + a[j][3];
      x3r = a[j][4] - a[j][3];
      x2i = a[j][6] + a[j][1];
      x3i = a[j][6] - a[j][1];
      xr = x0r + x2r;
      xi = x0i + x2i;
      a[j][0] = 0.35355339059327376220 * (xr + xi);
      a[j][4] = 0.35355339059327376220 * (xr - xi);
      xr = x0r - x2r;
      xi = x0i - x2i;
      a[j][2] = 0.46193976625564337806 * xr - 0.19134171618254488586 * xi;
      a[j][6] = 0.46193976625564337806 * xi + 0.19134171618254488586 * xr;
      xr = 0.70710678118654752440 * (x1i - x3i);
      x1i = 0.70710678118654752440 * (x1i + x3i);
      x3i = x1i - x3r;
      x1i += x3r;
      x3r = x1r - xr;
      x1r += xr;
      a[j][1] = 0.49039264020161522456 * x1r - 0.09754516100806413392 * x1i;
      a[j][7] = 0.49039264020161522456 * x1i + 0.09754516100806413392 * x1r;
      a[j][3] = 0.41573480615127261854 * x3r - 0.27778511650980111237 * x3i;
      a[j][5] = 0.41573480615127261854 * x3i + 0.27778511650980111237 * x3r;
    }
  } else {
    for (j = 0; j <= 7; j++) {
      x1r = 0.49039264020161522456 * a[1][j] + 0.09754516100806413392 * a[7][j];
      x1i = 0.49039264020161522456 * a[7][j] - 0.09754516100806413392 * a[1][j];
      x3r = 0.41573480615127261854 * a[3][j] + 0.27778511650980111237 * a[5][j];
      x3i = 0.41573480615127261854 * a[5][j] - 0.27778511650980111237 * a[3][j];
      xr = x1r - x3r;
      xi = x1i + x3i;
      x1r += x3r;
      x3i -= x1i;
      x1i = 0.70710678118654752440 * (xr + xi);
      x3r = 0.70710678118654752440 * (xr - xi);
      xr = 0.46193976625564337806 * a[2][j] + 0.19134171618254488586 * a[6][j];
      xi = 0.46193976625564337806 * a[6][j] - 0.19134171618254488586 * a[2][j];
      x0r = 0.35355339059327376220 * (a[0][j] + a[4][j]);
      x0i = 0.35355339059327376220 * (a[0][j] - a[4][j]);
      x2r = x0r - xr;
      x2i = x0i - xi;
      x0r += xr;
      x0i += xi;
      a[0][j] = x0r + x1r;
      a[7][j] = x0r - x1r;
      a[2][j] = x0i + x1i;
      a[5][j] = x0i - x1i;
      a[4][j] = x2r - x3i;
      a[3][j] = x2r + x3i;
      a[6][j] = x2i - x3r;
      a[1][j] = x2i + x3r;
    }
    for (j = 0; j <= 7; j++) {
      x1r = 0.49039264020161522456 * a[j][1] + 0.09754516100806413392 * a[j][7];
      x1i = 0.49039264020161522456 * a[j][7] - 0.09754516100806413392 * a[j][1];
      x3r = 0.41573480615127261854 * a[j][3] + 0.27778511650980111237 * a[j][5];
      x3i = 0.41573480615127261854 * a[j][5] - 0.27778511650980111237 * a[j][3];
      xr = x1r - x3r;
      xi = x1i + x3i;
      x1r += x3r;
      x3i -= x1i;
      x1i = 0.70710678118654752440 * (xr + xi);
      x3r = 0.70710678118654752440 * (xr - xi);
      xr = 0.46193976625564337806 * a[j][2] + 0.19134171618254488586 * a[j][6];
      xi = 0.46193976625564337806 * a[j][6] - 0.19134171618254488586 * a[j][2];
      x0r = 0.35355339059327376220 * (a[j][0] + a[j][4]);
      x0i = 0.35355339059327376220 * (a[j][0] - a[j][4]);
      x2r = x0r - xr;
      x2i = x0i - xi;
      x0r += xr;
      x0i += xi;
      a[j][0] = x0r + x1r;
      a[j][7] = x0r - x1r;
      a[j][2] = x0i + x1i;
      a[j][5] = x0i - x1i;
      a[j][4] = x2r - x3i;
      a[j][3] = x2r + x3i;
      a[j][6] = x2i - x3r;
      a[j][1] = x2i + x3r;
    }
  }
}
```