user: 请将以下的汇编代码转换成C语言代码:

```asm
<main>:
  endbr64
  push   %r15
  push   %r14
  push   %r13
  push   %r12
  push   %rbp
  push   %rbx
  sub    $0x158,%rsp
  mov    %fs:0x28,%rax
  mov    %rax,0x148(%rsp)
  xor    %eax,%eax
  mov    D558(%rip),%rax
  lea    0xf0(%rsp),%rbx
  mov    %rax,0x48(%rsp)
  mov    D201(%rip),%rax
  mov    %rax,0x50(%rsp)
  mov    D1715(%rip),%rax
  mov    %rax,0x58(%rsp)
  mov    D1570(%rip),%rax
  mov    %rax,0x60(%rsp)
  mov    D873(%rip),%rax
  mov    %rax,0x78(%rsp)
  mov    D558(%rip),%rax
  mov    %rax,0x80(%rsp)
  mov    D869(%rip),%rax
  mov    %rax,0x88(%rsp)
  mov    D1715(%rip),%rax
  mov    %rax,0x90(%rsp)
  mov    D1315(%rip),%rax
  mov    %rax,0xa8(%rsp)
  mov    D1337(%rip),%rax
  mov    %rax,0xb0(%rsp)
  mov    D1704(%rip),%rax
  mov    %rax,0xb8(%rsp)
  mov    D213(%rip),%rax
  mov    %rax,0xc0(%rsp)
  mov    D1715(%rip),%rax
  movq   %rax,%xmm1
  mov    D1007(%rip),%rax
  movq   %rax,%xmm0
  xor    %eax,%eax
L91:
  addsd  %xmm1,%xmm0
  movsd  %xmm0,(%rbx,%rax,8)
  add    $0x1,%rax
  cmp    $0x5,%rax
  je     L152
  movsd  0x40(%rsp,%rax,8),%xmm0
  movsd  0x70(%rsp,%rax,8),%xmm1
  jmp    L91
L152:
  movsd  D1512(%rip),%xmm1
  xor    %ebp,%ebp
  lea    D1552(%rip),%r12
L55:
  movsd  (%rbx,%rbp,8),%xmm0
  mov    %rbp,%rsi
  mov    %r12,%rdi
  mov    $0x2,%eax
  movsd  %xmm1,0x8(%rsp)
  movsd  %xmm0,(%rsp)
  call   <printf@plt>
  movsd  (%rsp),%xmm0
  movsd  0x8(%rsp),%xmm1
  movsd  D756(%rip),%xmm4
  subsd  %xmm1,%xmm0
  andpd  D951(%rip),%xmm0
  comisd %xmm0,%xmm4
  jbe    L301
  add    $0x1,%rbp
  cmp    $0x5,%rbp
  je     L173
  movsd  0xa0(%rsp,%rbp,8),%xmm1
  jmp    L55
L207:
  mov    D1007(%rip),%rax
  lea    0x40(%rsp),%r15
  lea    0x70(%rsp),%rbp
  mov    %rax,0x40(%rsp)
  mov    D558(%rip),%rax
  mov    %rax,0x48(%rsp)
  mov    D201(%rip),%rax
  mov    %rax,0x50(%rsp)
  mov    D1715(%rip),%rax
  mov    %rax,0x58(%rsp)
  mov    D1570(%rip),%rax
  mov    %rax,0x60(%rsp)
  mov    D1715(%rip),%rax
  mov    %rax,0x70(%rsp)
  mov    D873(%rip),%rax
  mov    %rax,0x78(%rsp)
  mov    D558(%rip),%rax
  mov    %rax,0x80(%rsp)
  mov    D869(%rip),%rax
  mov    %rax,0x88(%rsp)
  mov    D1715(%rip),%rax
  mov    %rax,0x90(%rsp)
  mov    D1337(%rip),%rax
  mov    %rax,0xa0(%rsp)
  mov    D1039(%rip),%rax
  mov    %rax,0xa8(%rsp)
  mov    D324(%rip),%rax
  mov    %rax,0xb0(%rsp)
  mov    D1715(%rip),%rax
  mov    %rax,0xb8(%rsp)
  mov    D973(%rip),%rax
  mov    %rax,0xc0(%rsp)
  xor    %eax,%eax
L110:
  movsd  (%r15,%rax,8),%xmm0
  mulsd  0x0(%rbp,%rax,8),%xmm0
  movsd  %xmm0,(%rbx,%rax,8)
  add    $0x1,%rax
  cmp    $0x5,%rax
  jne    L110
  xor    %r14d,%r14d
  lea    0xa0(%rsp),%r12
  lea    D1355(%rip),%r13
L458:
  movsd  (%r12,%r14,8),%xmm1
  movsd  (%rbx,%r14,8),%xmm0
  mov    %r14,%rsi
  mov    %r13,%rdi
  mov    $0x2,%eax
  movsd  %xmm1,0x8(%rsp)
  movsd  %xmm0,(%rsp)
  call   <printf@plt>
  movsd  (%rsp),%xmm0
  movsd  0x8(%rsp),%xmm1
  movsd  D756(%rip),%xmm6
  subsd  %xmm1,%xmm0
  andpd  D951(%rip),%xmm0
  comisd %xmm0,%xmm6
  jbe    L301
  add    $0x1,%r14
  cmp    $0x5,%r14
  jne    L458
  mov    D1007(%rip),%rax
  mov    %rax,0x40(%rsp)
  mov    D558(%rip),%rax
  mov    %rax,0x48(%rsp)
  mov    D201(%rip),%rax
  mov    %rax,0x50(%rsp)
  mov    D1715(%rip),%rax
  mov    %rax,0x58(%rsp)
  mov    D1570(%rip),%rax
  mov    %rax,0x60(%rsp)
  mov    D1715(%rip),%rax
  mov    %rax,0x70(%rsp)
  mov    D873(%rip),%rax
  mov    %rax,0x78(%rsp)
  mov    D558(%rip),%rax
  mov    %rax,0x80(%rsp)
  mov    D869(%rip),%rax
  mov    %rax,0x88(%rsp)
  mov    D1715(%rip),%rax
  mov    %rax,0x90(%rsp)
  mov    D1667(%rip),%rax
  mov    %rax,0xa0(%rsp)
  mov    D264(%rip),%rax
  mov    %rax,0xa8(%rsp)
  mov    D529(%rip),%rax
  mov    %rax,0xb0(%rsp)
  mov    D1715(%rip),%rax
  mov    %rax,0xb8(%rsp)
  mov    D1938(%rip),%rax
  mov    %rax,0xc0(%rsp)
  xor    %eax,%eax
L343:
  movsd  (%r15,%rax,8),%xmm0
  divsd  0x0(%rbp,%rax,8),%xmm0
  movsd  %xmm0,(%rbx,%rax,8)
  add    $0x1,%rax
  cmp    $0x5,%rax
  jne    L343
  xor    %r14d,%r14d
  lea    D1166(%rip),%r13
L404:
  movsd  (%r12,%r14,8),%xmm1
  movsd  (%rbx,%r14,8),%xmm0
  mov    %r14,%rsi
  mov    %r13,%rdi
  mov    $0x2,%eax
  movsd  %xmm1,0x8(%rsp)
  movsd  %xmm0,(%rsp)
  call   <printf@plt>
  movsd  (%rsp),%xmm0
  movsd  0x8(%rsp),%xmm1
  movsd  D756(%rip),%xmm7
  subsd  %xmm1,%xmm0
  andpd  D951(%rip),%xmm0
  comisd %xmm0,%xmm7
  jbe    L301
  add    $0x1,%r14
  cmp    $0x5,%r14
  jne    L404
  mov    D1007(%rip),%rax
  mov    $0x5,%esi
  mov    %rbx,%rdi
  mov    %rax,0xf0(%rsp)
  mov    D558(%rip),%rax
  mov    %rax,0xf8(%rsp)
  mov    D201(%rip),%rax
  mov    %rax,0x100(%rsp)
  mov    D1715(%rip),%rax
  mov    %rax,0x108(%rsp)
  mov    D1570(%rip),%rax
  mov    %rax,0x110(%rsp)
  xor    %eax,%eax
  call   <CSPL_Array_min@plt>
  pxor   %xmm0,%xmm0
  movsd  D756(%rip),%xmm2
  cvtsi2sd %eax,%xmm0
  subsd  D1007(%rip),%xmm0
  andpd  D951(%rip),%xmm0
  comisd %xmm0,%xmm2
  ja     L230
  nopl   0x0(%rax,%rax,1)
L301:
  mov    $0x1,%eax
L34:
  mov    0x148(%rsp),%rdx
  sub    %fs:0x28,%rdx
  jne    L401
  add    $0x158,%rsp
  pop    %rbx
  pop    %rbp
  pop    %r12
  pop    %r13
  pop    %r14
  pop    %r15
  ret
  cs nopw 0x0(%rax,%rax,1)
L173:
  mov    D558(%rip),%rax
  mov    %rax,0x48(%rsp)
  mov    D201(%rip),%rax
  mov    %rax,0x50(%rsp)
  mov    D1715(%rip),%rax
  mov    %rax,0x58(%rsp)
  mov    D1570(%rip),%rax
  mov    %rax,0x60(%rsp)
  mov    D873(%rip),%rax
  mov    %rax,0x78(%rsp)
  mov    D558(%rip),%rax
  mov    %rax,0x80(%rsp)
  mov    D869(%rip),%rax
  mov    %rax,0x88(%rsp)
  mov    D1715(%rip),%rax
  mov    %rax,0x90(%rsp)
  mov    D597(%rip),%rax
  mov    %rax,0xa8(%rsp)
  mov    D462(%rip),%rax
  mov    %rax,0xb0(%rsp)
  mov    D1381(%rip),%rax
  mov    %rax,0xb8(%rsp)
  mov    D84(%rip),%rax
  mov    %rax,0xc0(%rsp)
  mov    D1715(%rip),%rax
  movq   %rax,%xmm1
  mov    D1007(%rip),%rax
  movq   %rax,%xmm0
  xor    %eax,%eax
L5:
  subsd  %xmm1,%xmm0
  movsd  %xmm0,(%rbx,%rax,8)
  add    $0x1,%rax
  cmp    $0x5,%rax
  je     L444
  movsd  0x40(%rsp,%rax,8),%xmm0
  movsd  0x70(%rsp,%rax,8),%xmm1
  jmp    L5
L444:
  movsd  D620(%rip),%xmm1
  xor    %ebp,%ebp
  lea    D540(%rip),%r12
L21:
  movsd  (%rbx,%rbp,8),%xmm0
  mov    %rbp,%rsi
  mov    %r12,%rdi
  mov    $0x2,%eax
  movsd  %xmm1,0x8(%rsp)
  movsd  %xmm0,(%rsp)
  call   <printf@plt>
  movsd  (%rsp),%xmm0
  movsd  0x8(%rsp),%xmm1
  movsd  D756(%rip),%xmm5
  subsd  %xmm1,%xmm0
  andpd  D951(%rip),%xmm0
  comisd %xmm0,%xmm5
  jbe    L301
  add    $0x1,%rbp
  cmp    $0x5,%rbp
  je     L207
  movsd  0xa0(%rsp,%rbp,8),%xmm1
  jmp    L21
L230:
  mov    D1007(%rip),%rax
  mov    $0x5,%esi
  mov    %rbx,%rdi
  mov    %rax,0xf0(%rsp)
  mov    D558(%rip),%rax
  mov    %rax,0xf8(%rsp)
  mov    D201(%rip),%rax
  mov    %rax,0x100(%rsp)
  mov    D1715(%rip),%rax
  mov    %rax,0x108(%rsp)
  mov    D1570(%rip),%rax
  mov    %rax,0x110(%rsp)
  xor    %eax,%eax
  call   <CSPL_Array_max@plt>
  pxor   %xmm0,%xmm0
  movsd  D756(%rip),%xmm3
  cvtsi2sd %eax,%xmm0
  subsd  D201(%rip),%xmm0
  andpd  D951(%rip),%xmm0
  comisd %xmm0,%xmm3
  jbe    L301
  mov    D1007(%rip),%rax
  mov    $0x5,%esi
  mov    %rbx,%rdi
  mov    %rax,0xf0(%rsp)
  mov    D558(%rip),%rax
  mov    %rax,0xf8(%rsp)
  mov    D201(%rip),%rax
  mov    %rax,0x100(%rsp)
  mov    D1715(%rip),%rax
  mov    %rax,0x108(%rsp)
  mov    D1570(%rip),%rax
  mov    %rax,0x110(%rsp)
  xor    %eax,%eax
  call   <CSPL_Array_range@plt>
  pxor   %xmm0,%xmm0
  lea    D1467(%rip),%rdi
  cvtsi2sd %eax,%xmm0
  mov    D1312(%rip),%rax
  movq   %rax,%xmm1
  mov    $0x2,%eax
  movsd  %xmm0,(%rsp)
  call   <printf@plt>
  movsd  (%rsp),%xmm0
  movsd  D756(%rip),%xmm2
  subsd  D1312(%rip),%xmm0
  andpd  D951(%rip),%xmm0
  comisd %xmm0,%xmm2
  jbe    L301
  lea    0x10(%rsp),%r14
  mov    $0x5,%ecx
  xor    %esi,%esi
  xor    %r13d,%r13d
  mov    D1007(%rip),%rax
  mov    $0xa,%edx
  mov    %r14,%rdi
  mov    %rax,0x10(%rsp)
  mov    D558(%rip),%rax
  mov    %rax,0x18(%rsp)
  mov    D201(%rip),%rax
  mov    %rax,0x20(%rsp)
  mov    D1715(%rip),%rax
  mov    %rax,0x28(%rsp)
  mov    D1570(%rip),%rax
  mov    %rax,0x30(%rsp)
  mov    D1007(%rip),%rax
  mov    %rax,0x40(%rsp)
  mov    D558(%rip),%rax
  mov    %rax,0x48(%rsp)
  mov    D201(%rip),%rax
  mov    %rax,0x50(%rsp)
  mov    D1715(%rip),%rax
  mov    %rax,0x58(%rsp)
  mov    D1570(%rip),%rax
  mov    %rax,0x60(%rsp)
  mov    D1634(%rip),%rax
  mov    %rax,0x70(%rsp)
  mov    D558(%rip),%rax
  mov    %rax,0x78(%rsp)
  mov    D201(%rip),%rax
  mov    %rax,0x80(%rsp)
  mov    D1715(%rip),%rax
  mov    %rax,0x88(%rsp)
  mov    D1570(%rip),%rax
  mov    %rax,0x90(%rsp)
  mov    D1634(%rip),%rax
  mov    %rax,0xa0(%rsp)
  mov    D558(%rip),%rax
  movsd  D1519(%rip),%xmm0
  mov    %rax,0xa8(%rsp)
  mov    D1704(%rip),%rax
  movsd  %xmm0,0xf0(%rsp)
  mov    %rax,0xb0(%rsp)
  mov    D1715(%rip),%rax
  movsd  %xmm0,0xf8(%rsp)
  mov    %rax,0xb8(%rsp)
  mov    D1570(%rip),%rax
  movsd  %xmm0,0x100(%rsp)
  mov    %rax,0xc0(%rsp)
  xor    %eax,%eax
  movsd  %xmm0,0x108(%rsp)
  movsd  %xmm0,0x110(%rsp)
  call   <CSPL_Array_clip@plt>
L468:
  movsd  (%r15,%r13,8),%xmm1
  movsd  (%r14,%r13,8),%xmm0
  mov    %r13,%rsi
  lea    D1220(%rip),%rdi
  mov    $0x2,%eax
  movsd  %xmm1,(%rsp)
  call   <printf@plt>
  movsd  (%r14,%r13,8),%xmm0
  movsd  (%rsp),%xmm1
  movsd  D756(%rip),%xmm3
  subsd  %xmm1,%xmm0
  andpd  D951(%rip),%xmm0
  comisd %xmm0,%xmm3
  jbe    L301
  add    $0x1,%r13
  cmp    $0x5,%r13
  jne    L468
  mov    $0x5,%ecx
  mov    $0xa,%edx
  mov    %r14,%rdi
  xor    %eax,%eax
  mov    $0x3,%esi
  xor    %r13d,%r13d
  call   <CSPL_Array_clip@plt>
L184:
  movsd  0x0(%rbp,%r13,8),%xmm1
  movsd  (%r14,%r13,8),%xmm0
  mov    %r13,%rsi
  lea    D1220(%rip),%rdi
  mov    $0x2,%eax
  movsd  %xmm1,(%rsp)
  call   <printf@plt>
  movsd  (%r14,%r13,8),%xmm0
  movsd  (%rsp),%xmm1
  movsd  D756(%rip),%xmm3
  subsd  %xmm1,%xmm0
  andpd  D951(%rip),%xmm0
  comisd %xmm0,%xmm3
  jbe    L301
  add    $0x1,%r13
  cmp    $0x5,%r13
  jne    L184
  mov    $0x5,%edx
  mov    $0x3,%esi
  mov    %r14,%rdi
  xor    %ebp,%ebp
  mov    D1704(%rip),%rax
  movq   %rax,%xmm0
  mov    $0x1,%eax
  call   <CSPL_Array_clip@plt>
L89:
  movsd  (%r12,%rbp,8),%xmm1
  movsd  (%r14,%rbp,8),%xmm0
  mov    %rbp,%rsi
  lea    D1220(%rip),%rdi
  mov    $0x2,%eax
  movsd  %xmm1,(%rsp)
  call   <printf@plt>
  movsd  (%r14,%rbp,8),%xmm0
  movsd  (%rsp),%xmm1
  movsd  D756(%rip),%xmm2
  subsd  %xmm1,%xmm0
  andpd  D951(%rip),%xmm0
  comisd %xmm0,%xmm2
  jbe    L301
  add    $0x1,%rbp
  cmp    $0x5,%rbp
  jne    L89
  mov    $0x5,%ecx
  mov    $0xfffffffc,%edx
  mov    %r14,%rdi
  xor    %eax,%eax
  mov    $0xfffffff6,%esi
  xor    %ebp,%ebp
  call   <CSPL_Array_clip@plt>
L250:
  movsd  (%rbx,%rbp,8),%xmm1
  movsd  (%r14,%rbp,8),%xmm0
  mov    %rbp,%rsi
  lea    D1220(%rip),%rdi
  mov    $0x2,%eax
  movsd  %xmm1,(%rsp)
  call   <printf@plt>
  movsd  (%r14,%rbp,8),%xmm0
  movsd  (%rsp),%xmm1
  movsd  D756(%rip),%xmm3
  subsd  %xmm1,%xmm0
  andpd  D951(%rip),%xmm0
  comisd %xmm0,%xmm3
  jbe    L301
  add    $0x1,%rbp
  cmp    $0x5,%rbp
  jne    L250
  mov    D201(%rip),%rax
  xor    %ebp,%ebp
  lea    D1336(%rip),%r13
  mov    %rax,0xa0(%rsp)
  mov    D558(%rip),%rax
  mov    %rax,0xa8(%rsp)
  mov    D1007(%rip),%rax
  mov    %rax,0xb0(%rsp)
  mov    D1715(%rip),%rax
  mov    %rax,0xb8(%rsp)
  mov    D1570(%rip),%rax
  mov    %rax,0xc0(%rsp)
  mov    D1007(%rip),%rax
  mov    %rax,0xf0(%rsp)
  mov    D1570(%rip),%rax
  mov    %rax,0xf8(%rsp)
  mov    D558(%rip),%rax
  mov    %rax,0x100(%rsp)
  mov    D1715(%rip),%rax
  mov    %rax,0x108(%rsp)
  mov    D201(%rip),%rax
  mov    %rax,0x110(%rsp)
L448:
  xor    %edx,%edx
  mov    $0x4,%ecx
  mov    %r12,%rsi
  mov    %rbp,%rdi
  xor    %eax,%eax
  call   <CSPL_Array_quickselect@plt>
  pxor   %xmm0,%xmm0
  mov    %rbp,%rsi
  mov    %r13,%rdi
  cvtsi2sd %eax,%xmm0
  mov    $0x1,%eax
  movsd  %xmm0,(%rsp)
  call   <printf@plt>
  movsd  (%rsp),%xmm0
  movsd  D756(%rip),%xmm3
  subsd  (%rbx,%rbp,8),%xmm0
  andpd  D951(%rip),%xmm0
  comisd %xmm0,%xmm3
  jbe    L301
  add    $0x1,%rbp
  cmp    $0x5,%rbp
  jne    L448
  mov    D201(%rip),%rax
  xor    %ebp,%ebp
  lea    D505(%rip),%r13
  movq   $0x0,0x110(%rsp)
  mov    %rax,0xa0(%rsp)
  mov    D558(%rip),%rax
  mov    %rax,0xa8(%rsp)
  mov    D1007(%rip),%rax
  mov    %rax,0xb0(%rsp)
  mov    D1715(%rip),%rax
  mov    %rax,0xb8(%rsp)
  mov    D1570(%rip),%rax
  mov    %rax,0xc0(%rsp)
  mov    D1007(%rip),%rax
  mov    %rax,0xf0(%rsp)
  mov    D558(%rip),%rax
  mov    %rax,0xf8(%rsp)
  mov    D1715(%rip),%rax
  mov    %rax,0x100(%rsp)
  mov    D201(%rip),%rax
  mov    %rax,0x108(%rsp)
L306:
  xor    %edx,%edx
  mov    $0x3,%ecx
  mov    %r12,%rsi
  mov    %rbp,%rdi
  xor    %eax,%eax
  call   <CSPL_Array_quickselect@plt>
  pxor   %xmm0,%xmm0
  mov    %rbp,%rsi
  mov    %r13,%rdi
  cvtsi2sd %eax,%xmm0
  mov    $0x1,%eax
  movsd  %xmm0,(%rsp)
  call   <printf@plt>
  movsd  (%rsp),%xmm0
  movsd  D756(%rip),%xmm2
  subsd  (%rbx,%rbp,8),%xmm0
  andpd  D951(%rip),%xmm0
  comisd %xmm0,%xmm2
  jbe    L301
  add    $0x1,%rbp
  cmp    $0x4,%rbp
  jne    L306
  mov    D869(%rip),%rax
  xor    %ebp,%ebp
  lea    D508(%rip),%r13
  mov    %rax,0xf0(%rsp)
  mov    D1007(%rip),%rax
  mov    %rax,0xf8(%rsp)
  mov    D1954(%rip),%rax
  mov    %rax,0x100(%rsp)
  mov    D244(%rip),%rax
  mov    %rax,0x108(%rsp)
  mov    D621(%rip),%rax
  mov    %rax,0x110(%rsp)
L437:
  movsd  (%rbx,%rbp,8),%xmm0
  mov    %rbp,%rsi
  mov    %r13,%rdi
  mov    $0x1,%eax
  add    $0x1,%rbp
  call   <printf@plt>
  cmp    $0x5,%rbp
  jne    L437
  movsd  D208(%rip),%xmm0
  mov    $0x5,%esi
  mov    %rbx,%rdi
  mov    $0x1,%eax
  lea    D1727(%rip),%r14
  call   <CSPL_Array_bisect@plt>
  mov    %r14,%rdi
  movslq %eax,%rbp
  mov    D208(%rip),%rax
  mov    %rbp,%rsi
  movq   %rax,%xmm0
  mov    $0x1,%eax
  call   <printf@plt>
  test   %rbp,%rbp
  jne    L301
  movsd  D1306(%rip),%xmm0
  mov    $0x5,%esi
  mov    %rbx,%rdi
  mov    $0x1,%eax
  call   <CSPL_Array_bisect@plt>
  mov    %r14,%rdi
  movslq %eax,%r15
  mov    D1306(%rip),%rax
  mov    %r15,%rsi
  movq   %rax,%xmm0
  mov    $0x1,%eax
  call   <printf@plt>
  sub    $0x1,%r15
  jne    L301
  mov    D1954(%rip),%rax
  mov    $0x5,%esi
  mov    %rbx,%rdi
  movq   %rax,%xmm0
  mov    $0x1,%eax
  call   <CSPL_Array_bisect@plt>
  mov    %r14,%rdi
  movslq %eax,%r15
  mov    D1954(%rip),%rax
  mov    %r15,%rsi
  movq   %rax,%xmm0
  mov    $0x1,%eax
  call   <printf@plt>
  cmp    $0x3,%r15
  jne    L301
  mov    D1704(%rip),%rax
  mov    $0x5,%esi
  mov    %rbx,%rdi
  movq   %rax,%xmm0
  mov    $0x1,%eax
  call   <CSPL_Array_bisect@plt>
  mov    %r14,%rdi
  movslq %eax,%r15
  mov    D1704(%rip),%rax
  mov    %r15,%rsi
  movq   %rax,%xmm0
  mov    $0x1,%eax
  call   <printf@plt>
  cmp    $0x3,%r15
  jne    L301
  movsd  D1502(%rip),%xmm0
  mov    $0x5,%esi
  mov    %rbx,%rdi
  mov    $0x1,%eax
  call   <CSPL_Array_bisect@plt>
  mov    %r14,%rdi
  movslq %eax,%r15
  mov    D1502(%rip),%rax
  mov    %r15,%rsi
  movq   %rax,%xmm0
  mov    $0x1,%eax
  call   <printf@plt>
  cmp    $0x5,%r15
  jne    L301
  mov    D869(%rip),%rax
  mov    %rax,0xf0(%rsp)
  mov    D813(%rip),%rax
  mov    %rax,0xf8(%rsp)
  mov    D244(%rip),%rax
  mov    %rax,0x100(%rsp)
  mov    D621(%rip),%rax
  mov    %rax,0x108(%rsp)
  mov    D1337(%rip),%rax
  mov    %rax,0x110(%rsp)
L403:
  movsd  (%rbx,%rbp,8),%xmm0
  mov    %rbp,%rsi
  mov    %r13,%rdi
  mov    $0x1,%eax
  add    $0x1,%rbp
  call   <printf@plt>
  cmp    $0x5,%rbp
  jne    L403
  mov    $0x5,%esi
  mov    %rbx,%rdi
  pxor   %xmm0,%xmm0
  mov    $0x1,%eax
  call   <CSPL_Array_bisect@plt>
  pxor   %xmm0,%xmm0
  mov    %r14,%rdi
  movslq %eax,%rbp
  mov    $0x1,%eax
  mov    %rbp,%rsi
  call   <printf@plt>
  test   %rbp,%rbp
  jne    L301
  mov    D1634(%rip),%rax
  mov    $0x5,%esi
  mov    %rbx,%rdi
  movq   %rax,%xmm0
  mov    $0x1,%eax
  call   <CSPL_Array_bisect@plt>
  mov    %r14,%rdi
  movslq %eax,%r13
  mov    D1634(%rip),%rax
  mov    %r13,%rsi
  movq   %rax,%xmm0
  mov    $0x1,%eax
  call   <printf@plt>
  sub    $0x1,%r13
  jne    L301
  mov    D813(%rip),%rax
  mov    $0x5,%esi
  mov    %rbx,%rdi
  movq   %rax,%xmm0
  mov    $0x1,%eax
  call   <CSPL_Array_bisect@plt>
  mov    %r14,%rdi
  movslq %eax,%r13
  mov    D813(%rip),%rax
  mov    %r13,%rsi
  movq   %rax,%xmm0
  mov    $0x1,%eax
  call   <printf@plt>
  cmp    $0x2,%r13
  jne    L301
  mov    D102(%rip),%rax
  mov    $0xa,%esi
  mov    %rbx,%rdi
  xor    %r13d,%r13d
  movsd  D450(%rip),%xmm2
  movsd  D721(%rip),%xmm3
  lea    D652(%rip),%r14
  mov    %rax,0xa8(%rsp)
  mov    D1695(%rip),%rax
  movapd %xmm3,%xmm1
  movapd %xmm2,%xmm0
  movsd  %xmm2,0xa0(%rsp)
  mov    %rax,0xb0(%rsp)
  mov    D1916(%rip),%rax
  movsd  %xmm3,0xe8(%rsp)
  mov    %rax,0xb8(%rsp)
  mov    D1469(%rip),%rax
  mov    %rax,0xc0(%rsp)
  mov    D1417(%rip),%rax
  mov    %rax,0xc8(%rsp)
  mov    D986(%rip),%rax
  mov    %rax,0xd0(%rsp)
  mov    D908(%rip),%rax
  mov    %rax,0xd8(%rsp)
  mov    D169(%rip),%rax
  mov    %rax,0xe0(%rsp)
  mov    $0x2,%eax
  call   <CSPL_Array_linspace@plt>
L47:
  movsd  (%r12,%r13,8),%xmm1
  movsd  (%rbx,%r13,8),%xmm0
  mov    %r13,%rsi
  mov    %r14,%rdi
  mov    $0x2,%eax
  movsd  %xmm1,(%rsp)
  call   <printf@plt>
  movsd  (%rbx,%r13,8),%xmm0
  movsd  (%rsp),%xmm1
  movsd  D756(%rip),%xmm2
  mov    D721(%rip),%rax
  subsd  %xmm1,%xmm0
  andpd  D951(%rip),%xmm0
  movq   %rax,%xmm3
  mov    D450(%rip),%rax
  comisd %xmm0,%xmm2
  movq   %rax,%xmm2
  jbe    L301
  add    $0x1,%r13
  cmp    $0xa,%r13
  jne    L47
  mov    $0xa,%esi
  movapd %xmm3,%xmm1
  movapd %xmm2,%xmm0
  mov    %rbx,%rdi
  mov    %rax,0xa0(%rsp)
  mov    D933(%rip),%rax
  lea    D23(%rip),%r13
  movsd  %xmm3,0xe8(%rsp)
  mov    %rax,0xa8(%rsp)
  mov    D532(%rip),%rax
  mov    %rax,0xb0(%rsp)
  mov    D906(%rip),%rax
  mov    %rax,0xb8(%rsp)
  mov    D2002(%rip),%rax
  mov    %rax,0xc0(%rsp)
  mov    D1858(%rip),%rax
  mov    %rax,0xc8(%rsp)
  mov    D1110(%rip),%rax
  mov    %rax,0xd0(%rsp)
  mov    D1194(%rip),%rax
  mov    %rax,0xd8(%rsp)
  mov    D1831(%rip),%rax
  mov    %rax,0xe0(%rsp)
  mov    $0x2,%eax
  call   <CSPL_Array_logspace@plt>
L459:
  movsd  (%rbx,%rbp,8),%xmm0
  mov    %rbp,%rsi
  mov    %r13,%rdi
  mov    $0x2,%eax
  movsd  (%r12,%rbp,8),%xmm1
  movsd  %xmm1,(%rsp)
  call   <printf@plt>
  movsd  (%rbx,%rbp,8),%xmm0
  movsd  (%rsp),%xmm1
  movsd  D756(%rip),%xmm2
  subsd  %xmm1,%xmm0
  andpd  D951(%rip),%xmm0
  comisd %xmm0,%xmm2
  jbe    L301
  add    $0x1,%rbp
  cmp    $0xa,%rbp
  jne    L459
  xor    %eax,%eax
  jmp    L34
L401:
  call   <__stack_chk_fail@plt>
```

tool_calls: name: unpack_data
arguments: label: D558
type: f64
name: unpack_data
arguments: label: D201
type: f64
name: unpack_data
arguments: label: D1715
type: f64
name: unpack_data
arguments: label: D1570
type: f64
name: unpack_data
arguments: label: D873
type: f64
name: unpack_data
arguments: label: D869
type: f64
name: unpack_data
arguments: label: D1315
type: f64
name: unpack_data
arguments: label: D1337
type: f64
name: unpack_data
arguments: label: D1704
type: f64
name: unpack_data
arguments: label: D213
type: f64
name: unpack_data
arguments: label: D1007
type: f64
name: unpack_data
arguments: label: D1512
type: f64
name: unpack_data
arguments: label: D1552
type: string
name: unpack_data
arguments: label: D756
type: byte[8]
name: unpack_data
arguments: label: D951
type: qword[2]
name: unpack_data
arguments: label: D1039
type: f64
name: unpack_data
arguments: label: D324
type: f64
name: unpack_data
arguments: label: D973
type: f64
name: unpack_data
arguments: label: D1355
type: string
name: unpack_data
arguments: label: D1667
type: f64
name: unpack_data
arguments: label: D264
type: f64
name: unpack_data
arguments: label: D529
type: f64
name: unpack_data
arguments: label: D1938
type: f64
name: unpack_data
arguments: label: D1166
type: string
name: unpack_data
arguments: label: D597
type: f64
name: unpack_data
arguments: label: D462
type: f64
name: unpack_data
arguments: label: D1381
type: f64
name: unpack_data
arguments: label: D84
type: byte[8]
name: unpack_data
arguments: label: D620
type: byte[8]
name: unpack_data
arguments: label: D540
type: string
name: unpack_data
arguments: label: D1467
type: string
name: unpack_data
arguments: label: D1312
type: f64
name: unpack_data
arguments: label: D1634
type: byte[8]
name: unpack_data
arguments: label: D1519
type: byte[8]
name: unpack_data
arguments: label: D1220
type: string
name: unpack_data
arguments: label: D1336
type: string
name: unpack_data
arguments: label: D505
type: string
name: unpack_data
arguments: label: D508
type: string
name: unpack_data
arguments: label: D1954
type: f64
name: unpack_data
arguments: label: D244
type: byte[8]
name: unpack_data
arguments: label: D621
type: byte[8]
name: unpack_data
arguments: label: D208
type: byte[8]
name: unpack_data
arguments: label: D1727
type: string
name: unpack_data
arguments: label: D1306
type: f64
name: unpack_data
arguments: label: D1502
type: f64
name: unpack_data
arguments: label: D813
type: f64
name: unpack_data
arguments: label: D102
type: f64
name: unpack_data
arguments: label: D450
type: f64
name: unpack_data
arguments: label: D721
type: f64
name: unpack_data
arguments: label: D652
type: string
name: unpack_data
arguments: label: D1695
type: f64
name: unpack_data
arguments: label: D1916
type: f64
name: unpack_data
arguments: label: D1469
type: f64
name: unpack_data
arguments: label: D1417
type: f64
name: unpack_data
arguments: label: D986
type: f64
name: unpack_data
arguments: label: D908
type: f64
name: unpack_data
arguments: label: D169
type: f64
name: unpack_data
arguments: label: D933
type: f64
name: unpack_data
arguments: label: D23
type: string
name: unpack_data
arguments: label: D532
type: f64
name: unpack_data
arguments: label: D906
type: f64
name: unpack_data
arguments: label: D2002
type: f64
name: unpack_data
arguments: label: D1858
type: f64
name: unpack_data
arguments: label: D1110
type: f64
name: unpack_data
arguments: label: D1194
type: f64
name: unpack_data
arguments: label: D1831
type: f64

tool: D558: 3.4

tool: D201: 5.6

tool: D1715: 4.5

tool: D1570: 3.1

tool: D873: 2.3

tool: D869: 1

tool: D1315: 5.7

tool: D1337: 9

tool: D1704: 5.5

tool: D213: 7.6

tool: D1007: 2

tool: D1512: 6.5

tool: D1552: CSPL_Array_add[%ld]=%lf  %lf


tool: {"D756": [0xf1,0x68,0xe3,0x88,0xb5,0xf8,0xe4,0x3e]}

tool: {"D951": [0x7fffffffffffffff,0x0000000000000000]}

tool: D1039: 7.82

tool: D324: 19.04

tool: D973: 13.95

tool: D1355: CSPL_Array_multiply[%ld]=%lf  %lf


tool: D1667: 0.444444

tool: D264: 1.478261

tool: D529: 1.647059

tool: D1938: 0.688889

tool: D1166: CSPL_Array_divide[%ld]=%lf  %lf


tool: D597: 1.1

tool: D462: 2.2

tool: D1381: 3.5

tool: {"D84": [0x66,0x66,0x66,0x66,0x66,0x66,0xf6,0xbf]}

tool: {"D620": [0x00,0x00,0x00,0x00,0x00,0x00,0x04,0xc0]}

tool: D540: CSPL_Array_subtract[%ld]=%lf  %lf


tool: D1467: CSPL_Array_range: %lf, %lf


tool: D1312: 3.6

tool: {"D1634": [0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x40]}

tool: {"D1519": [0x00,0x00,0x00,0x00,0x00,0x00,0x10,0xc0]}

tool: D1220: CSPL_Array_clip[%ld]=%lf  %lf


tool: D1336: CSPL_Array_quickselect(%ld, d1, 0, 4)=%lf


tool: D505: CSPL_Array_quickselect(%ld, d1, 0, 3)=%lf


tool: D508: dat1[%ld]=%lf


tool: D1954: 5

tool: {"D244": [0x00,0x00,0x00,0x00,0x00,0x00,0x1c,0x40]}

tool: {"D621": [0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x40]}

tool: {"D208": [0x00,0x00,0x00,0x00,0x00,0x00,0xf0,0xbf]}

tool: D1727: CSPL_Array_bisect(%lf, dat1, 5)=%ld


tool: D1306: 1.5

tool: D1502: 8.5

tool: D813: 4

tool: D102: 14.73333333

tool: D450: 12.3

tool: D721: 34.2

tool: D652: CSPL_Array_linspace[%ld]=%lf  ->  %lf


tool: D1695: 17.16666667

tool: D1916: 19.6

tool: D1469: 22.03333333

tool: D1417: 24.46666667

tool: D986: 26.9

tool: D908: 29.33333333

tool: D169: 31.76666667

tool: D933: 13.78008475

tool: D23: CSPL_Array_logspace[%ld]=%lf  ->  %lf


tool: D532: 15.4382712

tool: D906: 17.2959907

tool: D2002: 19.37725347

tool: D1858: 21.70895895

tool: D1110: 24.32124343

tool: D1194: 27.24786957

tool: D1831: 30.52666276

assistant: ```c
int main(void) {
  {
    double d1[5] = {2, 3.4, 5.6, 4.5, 3.1};
    double d2[5] = {4.5, 2.3, 3.4, 1.0, 4.5};
    double answer[5] = {6.5, 5.7, 9.0, 5.5, 7.6};
    double out[5];
    long i;
    {
      long i;
      for (i = 0; i < 5; i++) {
        out[i] = d1[i] + d2[i];
      }
    };
    for (i = 0; i < 5; i++) {
      printf("CSPL_Array_add[%ld]=%lf  %lf\n", i, out[i], answer[i]);
      {
        if ((fabs((out[i]) - (answer[i])) < (1e-5)) == 0)
          return (1);
      };
    }
  }
  {
    double d1[5] = {2, 3.4, 5.6, 4.5, 3.1};
    double d2[5] = {4.5, 2.3, 3.4, 1.0, 4.5};
    double answer[5] = {-2.5, 1.1, 2.2, 3.5, -1.4};
    double out[5];
    long i;
    {
      long i;
      for (i = 0; i < 5; i++) {
        out[i] = d1[i] - d2[i];
      }
    };
    for (i = 0; i < 5; i++) {
      printf("CSPL_Array_subtract[%ld]=%lf  %lf\n", i, out[i], answer[i]);
      {
        if ((fabs((out[i]) - (answer[i])) < (1e-5)) == 0)
          return (1);
      };
    }
  }
  {
    double d1[5] = {2, 3.4, 5.6, 4.5, 3.1};
    double d2[5] = {4.5, 2.3, 3.4, 1.0, 4.5};
    double answer[5] = {9.0, 7.82, 19.04, 4.5, 13.95};
    double out[5];
    long i;
    {
      long i;
      for (i = 0; i < 5; i++) {
        out[i] = d1[i] * d2[i];
      }
    };
    for (i = 0; i < 5; i++) {
      printf("CSPL_Array_multiply[%ld]=%lf  %lf\n", i, out[i], answer[i]);
      {
        if ((fabs((out[i]) - (answer[i])) < (1e-5)) == 0)
          return (1);
      };
    }
  }
  {
    double d1[5] = {2, 3.4, 5.6, 4.5, 3.1};
    double d2[5] = {4.5, 2.3, 3.4, 1.0, 4.5};
    double answer[5] = {0.444444, 1.478261, 1.647059, 4.5, 0.688889};
    double out[5];
    long i;
    {
      long i;
      for (i = 0; i < 5; i++) {
        out[i] = d1[i] / d2[i];
      }
    };
    for (i = 0; i < 5; i++) {
      printf("CSPL_Array_divide[%ld]=%lf  %lf\n", i, out[i], answer[i]);
      {
        if ((fabs((out[i]) - (answer[i])) < (1e-5)) == 0)
          return (1);
      };
    }
  }
  {
    double d1[5] = {2, 3.4, 5.6, 4.5, 3.1};
    double answer = 2.0;
    double out;
    out = CSPL_Array_min(d1, 5);
    {
      if ((fabs((out) - (answer)) < (1e-5)) == 0)
        return (1);
    };
  }
  {
    double d1[5] = {2, 3.4, 5.6, 4.5, 3.1};
    double answer = 5.6;
    double out;
    out = CSPL_Array_max(d1, 5);
    {
      if ((fabs((out) - (answer)) < (1e-5)) == 0)
        return (1);
    };
  }
  {
    double d1[5] = {2, 3.4, 5.6, 4.5, 3.1};
    double answer = 3.6;
    double out;
    out = CSPL_Array_range(d1, 5);
    printf("CSPL_Array_range: %lf, %lf\n", out, answer);
    {
      if ((fabs((out) - (answer)) < (1e-5)) == 0)
        return (1);
    };
  }
  {
    double d1[5] = {2, 3.4, 5.6, 4.5, 3.1};
    double answer1[5] = {2, 3.4, 5.6, 4.5, 3.1};
    double answer2[5] = {3, 3.4, 5.6, 4.5, 3.1};
    double answer3[5] = {3, 3.4, 5.5, 4.5, 3.1};
    double answer4[5] = {-4, -4, -4, -4, -4};
    long i;
    CSPL_Array_clip(d1, 0, 10, 5);
    for (i = 0; i < 5; i++) {
      printf("CSPL_Array_clip[%ld]=%lf  %lf\n", i, d1[i], answer1[i]);
      {
        if ((fabs((d1[i]) - (answer1[i])) < (1e-5)) == 0)
          return (1);
      };
    }
    CSPL_Array_clip(d1, 3, 10, 5);
    for (i = 0; i < 5; i++) {
      printf("CSPL_Array_clip[%ld]=%lf  %lf\n", i, d1[i], answer2[i]);
      {
        if ((fabs((d1[i]) - (answer2[i])) < (1e-5)) == 0)
          return (1);
      };
    }
    CSPL_Array_clip(d1, 3, 5.5, 5);
    for (i = 0; i < 5; i++) {
      printf("CSPL_Array_clip[%ld]=%lf  %lf\n", i, d1[i], answer3[i]);
      {
        if ((fabs((d1[i]) - (answer3[i])) < (1e-5)) == 0)
          return (1);
      };
    }
    CSPL_Array_clip(d1, -10, -4, 5);
    for (i = 0; i < 5; i++) {
      printf("CSPL_Array_clip[%ld]=%lf  %lf\n", i, d1[i], answer4[i]);
      {
        if ((fabs((d1[i]) - (answer4[i])) < (1e-5)) == 0)
          return (1);
      };
    }
  }
  {
    double d1[5] = {5.6, 3.4, 2, 4.5, 3.1};
    double answer1[5] = {2, 3.1, 3.4, 4.5, 5.6};
    unsigned long i;
    double tst;
    for (i = 0; i < 5; i++) {
      tst = CSPL_Array_quickselect(i, d1, 0, 4);
      printf("CSPL_Array_quickselect(%ld, d1, 0, 4)=%lf\n", i, tst);
      {
        if ((fabs((tst) - (answer1[i])) < (1e-5)) == 0)
          return (1);
      };
    }
  }
  {
    double d1[5] = {5.6, 3.4, 2, 4.5, 3.1};
    double answer1[5] = {2, 3.4, 4.5, 5.6};
    unsigned long i;
    double tst;
    for (i = 0; i < 4; i++) {
      tst = CSPL_Array_quickselect(i, d1, 0, 3);
      printf("CSPL_Array_quickselect(%ld, d1, 0, 3)=%lf\n", i, tst);
      {
        if ((fabs((tst) - (answer1[i])) < (1e-5)) == 0)
          return (1);
      };
    }
  }
  {
    double dat1[5] = {1, 2, 5, 7, 8};
    long ans, i;
    double val;
    for (i = 0; i < 5; i++)
      printf("dat1[%ld]=%lf\n", i, dat1[i]);
    val = -1;
    ans = CSPL_Array_bisect(val, dat1, 5);
    printf("CSPL_Array_bisect(%lf, dat1, 5)=%ld\n", val, ans);
    {
      if (0 != ans)
        return (1);
    };
    val = 1.5;
    ans = CSPL_Array_bisect(val, dat1, 5);
    printf("CSPL_Array_bisect(%lf, dat1, 5)=%ld\n", val, ans);
    {
      if (1 != ans)
        return (1);
    };
    val = 5.0;
    ans = CSPL_Array_bisect(val, dat1, 5);
    printf("CSPL_Array_bisect(%lf, dat1, 5)=%ld\n", val, ans);
    {
      if (3 != ans)
        return (1);
    };
    val = 5.5;
    ans = CSPL_Array_bisect(val, dat1, 5);
    printf("CSPL_Array_bisect(%lf, dat1, 5)=%ld\n", val, ans);
    {
      if (3 != ans)
        return (1);
    };
    val = 8.5;
    ans = CSPL_Array_bisect(val, dat1, 5);
    printf("CSPL_Array_bisect(%lf, dat1, 5)=%ld\n", val, ans);
    {
      if (5 != ans)
        return (1);
    };
  }
  {
    double dat1[5] = {1, 4, 7, 8, 9};
    long ans, i;
    double val;
    for (i = 0; i < 5; i++)
      printf("dat1[%ld]=%lf\n", i, dat1[i]);
    val = 0;
    ans = CSPL_Array_bisect(val, dat1, 5);
    printf("CSPL_Array_bisect(%lf, dat1, 5)=%ld\n", val, ans);
    {
      if (0 != ans)
        return (1);
    };
    val = 3;
    ans = CSPL_Array_bisect(val, dat1, 5);
    printf("CSPL_Array_bisect(%lf, dat1, 5)=%ld\n", val, ans);
    {
      if (1 != ans)
        return (1);
    };
    val = 4.0;
    ans = CSPL_Array_bisect(val, dat1, 5);
    printf("CSPL_Array_bisect(%lf, dat1, 5)=%ld\n", val, ans);
    {
      if (2 != ans)
        return (1);
    };
  }
  {
    double ans[10] = {12.3, 14.73333333, 17.16666667, 19.6, 22.03333333, 24.46666667, 26.9, 29.33333333, 31.76666667, 34.2};
    long i;
    double outval[10];
    CSPL_Array_linspace(outval, 12.3, 34.2, 10);
    for (i = 0; i < 10; i++) {
      printf("CSPL_Array_linspace[%ld]=%lf  ->  %lf\n", i, outval[i], ans[i]);
      {
        if ((fabs((outval[i]) - (ans[i])) < (1e-5)) == 0)
          return (1);
      };
    }
  }
  {
    double ans[10] = {12.3, 13.78008475, 15.4382712, 17.2959907, 19.37725347, 21.70895895, 24.32124343, 27.24786957, 30.52666276, 34.2};
    long i;
    double outval[10];
    CSPL_Array_logspace(outval, 12.3, 34.2, 10);
    for (i = 0; i < 10; i++) {
      printf("CSPL_Array_logspace[%ld]=%lf  ->  %lf\n", i, outval[i], ans[i]);
      {
        if ((fabs((outval[i]) - (ans[i])) < (1e-5)) == 0)
          return (1);
      };
    }
  }
  return (0);
}
```