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

```asm
<odsq4_>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  sub    $0xa0,%rsp
  mov    %rdi,-0x68(%rbp)
  mov    %rsi,-0x70(%rbp)
  mov    %rdx,-0x78(%rbp)
  mov    %rcx,-0x80(%rbp)
  mov    %r8,-0x88(%rbp)
  mov    %r9,-0x90(%rbp)
  subq   $0x8,-0x78(%rbp)
  mov    -0x90(%rbp),%rax
  movsd  (%rax),%xmm1
  pxor   %xmm0,%xmm0
  comisd %xmm1,%xmm0
  jb     L819
  mov    -0x90(%rbp),%rax
  movsd  (%rax),%xmm0
  movq   D117(%rip),%xmm1
  xorpd  %xmm1,%xmm0
  mov    0x38(%rbp),%rax
  movsd  %xmm0,(%rax)
  mov    0x40(%rbp),%rax
  movl   $0xffffffff,(%rax)
  mov    $0x0,%eax
  jmp    L218
L819:
  mov    -0x70(%rbp),%rax
  mov    (%rax),%eax
  lea    0x0(,%rax,4),%edx
  mov    -0x80(%rbp),%rax
  mov    (%rax),%eax
  add    %edx,%eax
  mov    %eax,-0x50(%rbp)
  mov    -0x88(%rbp),%rax
  mov    (%rax),%edx
  mov    -0x70(%rbp),%rax
  mov    (%rax),%eax
  cmp    %eax,%edx
  jne    L223
  mov    -0x90(%rbp),%rax
  movsd  (%rax),%xmm0
  mov    0x20(%rbp),%rax
  movsd  (%rax),%xmm1
  ucomisd %xmm1,%xmm0
  jp     L814
  ucomisd %xmm1,%xmm0
  je     L1068
L814:
  mov    -0x90(%rbp),%rax
  movsd  (%rax),%xmm0
  mov    0x28(%rbp),%rax
  movsd  (%rax),%xmm1
  ucomisd %xmm1,%xmm0
  jp     L1039
  ucomisd %xmm1,%xmm0
  jne    L1039
L1068:
  mov    -0x50(%rbp),%eax
  cltq
  shl    $0x3,%rax
  lea    -0x18(%rax),%rdx
  mov    -0x78(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%rax
  movq   %rax,%xmm0
  call   <sqrt@plt>
  movsd  %xmm0,-0x98(%rbp)
  mov    -0x50(%rbp),%eax
  cltq
  shl    $0x3,%rax
  lea    -0x28(%rax),%rdx
  mov    -0x78(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%rax
  movq   %rax,%xmm0
  call   <sqrt@plt>
  mulsd  -0x98(%rbp),%xmm0
  movsd  %xmm0,-0x38(%rbp)
  mov    -0x50(%rbp),%eax
  cltq
  shl    $0x3,%rax
  lea    -0x38(%rax),%rdx
  mov    -0x78(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%rax
  movq   %rax,%xmm0
  call   <sqrt@plt>
  movsd  %xmm0,-0x98(%rbp)
  mov    -0x50(%rbp),%eax
  cltq
  shl    $0x3,%rax
  lea    -0x48(%rax),%rdx
  mov    -0x78(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%rax
  movq   %rax,%xmm0
  call   <sqrt@plt>
  mulsd  -0x98(%rbp),%xmm0
  movsd  %xmm0,-0x30(%rbp)
  mov    -0x50(%rbp),%eax
  cltq
  shl    $0x3,%rax
  lea    -0x38(%rax),%rdx
  mov    -0x78(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm1
  mov    -0x50(%rbp),%eax
  cltq
  shl    $0x3,%rax
  lea    -0x28(%rax),%rdx
  mov    -0x78(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0x40(%rbp)
  mov    -0x90(%rbp),%rax
  movsd  (%rax),%xmm0
  mov    0x20(%rbp),%rax
  movsd  (%rax),%xmm1
  ucomisd %xmm1,%xmm0
  jp     L289
  ucomisd %xmm1,%xmm0
  jne    L289
  mov    0x10(%rbp),%rax
  movsd  (%rax),%xmm0
  mov    0x28(%rbp),%rax
  movsd  (%rax),%xmm1
  ucomisd %xmm1,%xmm0
  jp     L289
  ucomisd %xmm1,%xmm0
  jne    L289
  mov    0x18(%rbp),%rax
  movsd  (%rax),%xmm0
  subsd  -0x40(%rbp),%xmm0
  mov    0x18(%rbp),%rax
  movsd  (%rax),%xmm2
  movsd  D39(%rip),%xmm1
  mulsd  %xmm2,%xmm1
  subsd  %xmm1,%xmm0
  movsd  %xmm0,-0x10(%rbp)
  movsd  -0x10(%rbp),%xmm0
  pxor   %xmm1,%xmm1
  comisd %xmm1,%xmm0
  jbe    L575
  movsd  -0x10(%rbp),%xmm0
  comisd -0x30(%rbp),%xmm0
  jbe    L575
  mov    0x20(%rbp),%rax
  movsd  (%rax),%xmm1
  movsd  -0x40(%rbp),%xmm0
  subsd  %xmm1,%xmm0
  movsd  -0x30(%rbp),%xmm1
  divsd  -0x10(%rbp),%xmm1
  mulsd  -0x30(%rbp),%xmm1
  subsd  %xmm1,%xmm0
  movsd  %xmm0,-0x20(%rbp)
  jmp    L709
L575:
  mov    0x20(%rbp),%rax
  movsd  (%rax),%xmm1
  movsd  -0x40(%rbp),%xmm0
  subsd  %xmm1,%xmm0
  movsd  -0x38(%rbp),%xmm1
  addsd  -0x30(%rbp),%xmm1
  subsd  %xmm1,%xmm0
  movsd  %xmm0,-0x20(%rbp)
L709:
  movsd  -0x20(%rbp),%xmm0
  pxor   %xmm1,%xmm1
  comisd %xmm1,%xmm0
  jbe    L134
  movsd  -0x20(%rbp),%xmm0
  comisd -0x38(%rbp),%xmm0
  jbe    L134
  mov    0x20(%rbp),%rax
  movsd  (%rax),%xmm0
  movsd  -0x38(%rbp),%xmm1
  divsd  -0x20(%rbp),%xmm1
  mulsd  -0x38(%rbp),%xmm1
  subsd  %xmm1,%xmm0
  movsd  %xmm0,-0x18(%rbp)
  mov    -0x90(%rbp),%rax
  movsd  (%rax),%xmm1
  movsd  D382(%rip),%xmm0
  mulsd  %xmm1,%xmm0
  movsd  %xmm0,-0x8(%rbp)
  movsd  -0x8(%rbp),%xmm0
  mov    -0x18(%rbp),%rax
  movapd %xmm0,%xmm1
  movq   %rax,%xmm0
  call   <fmax@plt>
  movq   %xmm0,%rax
  mov    %rax,-0x48(%rbp)
  mov    0x40(%rbp),%rax
  movl   $0xfffffffe,(%rax)
  nop
  jmp    L476
L134:
  pxor   %xmm0,%xmm0
  movsd  %xmm0,-0x48(%rbp)
  mov    0x20(%rbp),%rax
  movsd  (%rax),%xmm0
  comisd -0x38(%rbp),%xmm0
  jbe    L307
  mov    0x20(%rbp),%rax
  movsd  (%rax),%xmm0
  subsd  -0x38(%rbp),%xmm0
  movsd  %xmm0,-0x48(%rbp)
L307:
  movsd  -0x38(%rbp),%xmm0
  movapd %xmm0,%xmm1
  addsd  -0x30(%rbp),%xmm1
  movsd  -0x40(%rbp),%xmm0
  comisd %xmm1,%xmm0
  jbe    L398
  movsd  -0x48(%rbp),%xmm0
  movsd  %xmm0,-0x18(%rbp)
  movsd  -0x38(%rbp),%xmm0
  movapd %xmm0,%xmm1
  addsd  -0x30(%rbp),%xmm1
  movsd  -0x40(%rbp),%xmm0
  subsd  %xmm1,%xmm0
  movsd  %xmm0,-0x8(%rbp)
  movsd  -0x8(%rbp),%xmm0
  mov    -0x18(%rbp),%rax
  movapd %xmm0,%xmm1
  movq   %rax,%xmm0
  call   <fmin@plt>
  movq   %xmm0,%rax
  mov    %rax,-0x48(%rbp)
L398:
  movsd  -0x48(%rbp),%xmm0
  movsd  %xmm0,-0x18(%rbp)
  mov    -0x90(%rbp),%rax
  movsd  (%rax),%xmm1
  movsd  D8(%rip),%xmm0
  mulsd  %xmm1,%xmm0
  movsd  %xmm0,-0x8(%rbp)
  movsd  -0x8(%rbp),%xmm0
  mov    -0x18(%rbp),%rax
  movapd %xmm0,%xmm1
  movq   %rax,%xmm0
  call   <fmax@plt>
  movq   %xmm0,%rax
  mov    %rax,-0x48(%rbp)
  mov    0x40(%rbp),%rax
  movl   $0xfffffffd,(%rax)
  jmp    L476
L289:
  mov    0x40(%rbp),%rax
  movl   $0xfffffffc,(%rax)
  mov    -0x90(%rbp),%rax
  movsd  (%rax),%xmm1
  movsd  D39(%rip),%xmm0
  mulsd  %xmm1,%xmm0
  movsd  %xmm0,-0x48(%rbp)
  mov    -0x90(%rbp),%rax
  movsd  (%rax),%xmm0
  mov    0x20(%rbp),%rax
  movsd  (%rax),%xmm1
  ucomisd %xmm1,%xmm0
  jp     L171
  ucomisd %xmm1,%xmm0
  jne    L171
  mov    0x20(%rbp),%rax
  movsd  (%rax),%xmm0
  movsd  %xmm0,-0x28(%rbp)
  pxor   %xmm0,%xmm0
  movsd  %xmm0,-0x40(%rbp)
  mov    -0x50(%rbp),%eax
  cltq
  shl    $0x3,%rax
  lea    -0x28(%rax),%rdx
  mov    -0x78(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mov    -0x50(%rbp),%eax
  cltq
  shl    $0x3,%rax
  lea    -0x38(%rax),%rdx
  mov    -0x78(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm1
  comisd %xmm1,%xmm0
  jbe    L680
  mov    $0x0,%eax
  jmp    L218
L680:
  mov    -0x50(%rbp),%eax
  cltq
  shl    $0x3,%rax
  lea    -0x28(%rax),%rdx
  mov    -0x78(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mov    -0x50(%rbp),%eax
  cltq
  shl    $0x3,%rax
  lea    -0x38(%rax),%rdx
  mov    -0x78(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm1
  divsd  %xmm1,%xmm0
  movsd  %xmm0,-0x30(%rbp)
  mov    -0x50(%rbp),%eax
  sub    $0x9,%eax
  mov    %eax,-0x54(%rbp)
  jmp    L435
L171:
  mov    -0x80(%rbp),%rax
  mov    (%rax),%eax
  lea    (%rax,%rax,1),%edx
  mov    -0x50(%rbp),%eax
  sub    %edx,%eax
  mov    %eax,-0x54(%rbp)
  mov    -0x54(%rbp),%eax
  cltq
  shl    $0x3,%rax
  lea    -0x10(%rax),%rdx
  mov    -0x78(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  movsd  %xmm0,-0x30(%rbp)
  mov    0x28(%rbp),%rax
  movsd  (%rax),%xmm0
  movsd  %xmm0,-0x28(%rbp)
  mov    -0x54(%rbp),%eax
  cltq
  shl    $0x3,%rax
  lea    -0x20(%rax),%rdx
  mov    -0x78(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mov    -0x54(%rbp),%eax
  cltq
  shl    $0x3,%rax
  lea    -0x10(%rax),%rdx
  mov    -0x78(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm1
  comisd %xmm1,%xmm0
  jbe    L589
  mov    $0x0,%eax
  jmp    L218
L589:
  mov    -0x54(%rbp),%eax
  cltq
  shl    $0x3,%rax
  lea    -0x20(%rax),%rdx
  mov    -0x78(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mov    -0x54(%rbp),%eax
  cltq
  shl    $0x3,%rax
  lea    -0x10(%rax),%rdx
  mov    -0x78(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm1
  divsd  %xmm1,%xmm0
  movsd  %xmm0,-0x40(%rbp)
  mov    -0x50(%rbp),%eax
  cltq
  shl    $0x3,%rax
  lea    -0x48(%rax),%rdx
  mov    -0x78(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mov    -0x50(%rbp),%eax
  cltq
  shl    $0x3,%rax
  lea    -0x58(%rax),%rdx
  mov    -0x78(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm1
  comisd %xmm1,%xmm0
  jbe    L980
  mov    $0x0,%eax
  jmp    L218
L980:
  mov    -0x50(%rbp),%eax
  cltq
  shl    $0x3,%rax
  lea    -0x48(%rax),%rdx
  mov    -0x78(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mov    -0x50(%rbp),%eax
  cltq
  shl    $0x3,%rax
  lea    -0x58(%rax),%rdx
  mov    -0x78(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm1
  divsd  %xmm1,%xmm0
  movsd  %xmm0,-0x30(%rbp)
  mov    -0x50(%rbp),%eax
  sub    $0xd,%eax
  mov    %eax,-0x54(%rbp)
L435:
  movsd  -0x40(%rbp),%xmm0
  addsd  -0x30(%rbp),%xmm0
  movsd  %xmm0,-0x40(%rbp)
  mov    -0x68(%rbp),%rax
  mov    (%rax),%eax
  shl    $0x2,%eax
  lea    -0x1(%rax),%edx
  mov    -0x80(%rbp),%rax
  mov    (%rax),%eax
  add    %edx,%eax
  mov    %eax,-0x4c(%rbp)
  mov    -0x54(%rbp),%eax
  mov    %eax,-0x58(%rbp)
  jmp    L718
L920:
  pxor   %xmm0,%xmm0
  ucomisd -0x30(%rbp),%xmm0
  jp     L556
  pxor   %xmm0,%xmm0
  ucomisd -0x30(%rbp),%xmm0
  je     L37
L556:
  movsd  -0x30(%rbp),%xmm0
  movsd  %xmm0,-0x38(%rbp)
  mov    -0x58(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x78(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mov    -0x58(%rbp),%eax
  cltq
  shl    $0x3,%rax
  lea    -0x10(%rax),%rdx
  mov    -0x78(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm1
  comisd %xmm1,%xmm0
  jbe    L486
  mov    $0x0,%eax
  jmp    L218
L486:
  mov    -0x58(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x78(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mov    -0x58(%rbp),%eax
  cltq
  shl    $0x3,%rax
  lea    -0x10(%rax),%rdx
  mov    -0x78(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm1
  divsd  %xmm1,%xmm0
  movsd  -0x30(%rbp),%xmm1
  mulsd  %xmm1,%xmm0
  movsd  %xmm0,-0x30(%rbp)
  movsd  -0x40(%rbp),%xmm0
  addsd  -0x30(%rbp),%xmm0
  movsd  %xmm0,-0x40(%rbp)
  movsd  -0x38(%rbp),%xmm0
  mov    -0x30(%rbp),%rax
  movapd %xmm0,%xmm1
  movq   %rax,%xmm0
  call   <fmax@plt>
  movsd  D287(%rip),%xmm1
  mulsd  %xmm0,%xmm1
  movsd  -0x40(%rbp),%xmm0
  comisd %xmm1,%xmm0
  ja     L465
  movsd  -0x40(%rbp),%xmm0
  comisd D406(%rip),%xmm0
  ja     L465
  subl   $0x4,-0x58(%rbp)
L718:
  mov    -0x58(%rbp),%eax
  cmp    -0x4c(%rbp),%eax
  jge    L920
  jmp    L850
L37:
  nop
  jmp    L850
L465:
  nop
L850:
  movsd  -0x40(%rbp),%xmm1
  movsd  D290(%rip),%xmm0
  mulsd  %xmm1,%xmm0
  movsd  %xmm0,-0x40(%rbp)
  movsd  D406(%rip),%xmm0
  comisd -0x40(%rbp),%xmm0
  ja     L122
  jmp    L228
L122:
  mov    -0x40(%rbp),%rax
  movq   %rax,%xmm0
  call   <sqrt@plt>
  movapd %xmm0,%xmm1
  movsd  D21(%rip),%xmm0
  subsd  %xmm1,%xmm0
  mulsd  -0x28(%rbp),%xmm0
  movsd  -0x40(%rbp),%xmm2
  movsd  D21(%rip),%xmm1
  addsd  %xmm2,%xmm1
  divsd  %xmm1,%xmm0
  movsd  %xmm0,-0x48(%rbp)
  jmp    L228
L476:
  jmp    L228
L1039:
  mov    -0x90(%rbp),%rax
  movsd  (%rax),%xmm0
  mov    0x30(%rbp),%rax
  movsd  (%rax),%xmm1
  ucomisd %xmm1,%xmm0
  jp     L866
  ucomisd %xmm1,%xmm0
  jne    L866
  mov    0x40(%rbp),%rax
  movl   $0xfffffffb,(%rax)
  mov    -0x90(%rbp),%rax
  movsd  (%rax),%xmm1
  movsd  D39(%rip),%xmm0
  mulsd  %xmm1,%xmm0
  movsd  %xmm0,-0x48(%rbp)
  mov    -0x80(%rbp),%rax
  mov    (%rax),%eax
  lea    (%rax,%rax,1),%edx
  mov    -0x50(%rbp),%eax
  sub    %edx,%eax
  mov    %eax,-0x54(%rbp)
  mov    -0x54(%rbp),%eax
  cltq
  shl    $0x3,%rax
  lea    -0x10(%rax),%rdx
  mov    -0x78(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  movsd  %xmm0,-0x38(%rbp)
  mov    -0x54(%rbp),%eax
  cltq
  shl    $0x3,%rax
  lea    -0x30(%rax),%rdx
  mov    -0x78(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  movsd  %xmm0,-0x30(%rbp)
  mov    0x30(%rbp),%rax
  movsd  (%rax),%xmm0
  movsd  %xmm0,-0x28(%rbp)
  mov    -0x54(%rbp),%eax
  cltq
  shl    $0x3,%rax
  lea    -0x40(%rax),%rdx
  mov    -0x78(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  comisd -0x30(%rbp),%xmm0
  ja     L609
  mov    -0x54(%rbp),%eax
  cltq
  shl    $0x3,%rax
  lea    -0x20(%rax),%rdx
  mov    -0x78(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  comisd -0x38(%rbp),%xmm0
  jbe    L746
L609:
  mov    $0x0,%eax
  jmp    L218
L746:
  mov    -0x54(%rbp),%eax
  cltq
  shl    $0x3,%rax
  lea    -0x40(%rax),%rdx
  mov    -0x78(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  movapd %xmm0,%xmm1
  divsd  -0x30(%rbp),%xmm1
  mov    -0x54(%rbp),%eax
  cltq
  shl    $0x3,%rax
  lea    -0x20(%rax),%rdx
  mov    -0x78(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  movapd %xmm0,%xmm2
  divsd  -0x38(%rbp),%xmm2
  movsd  D21(%rip),%xmm0
  addsd  %xmm2,%xmm0
  mulsd  %xmm1,%xmm0
  movsd  %xmm0,-0x40(%rbp)
  mov    -0x70(%rbp),%rax
  mov    (%rax),%edx
  mov    -0x68(%rbp),%rax
  mov    (%rax),%ecx
  mov    %edx,%eax
  sub    %ecx,%eax
  cmp    $0x2,%eax
  jle    L606
  mov    -0x50(%rbp),%eax
  cltq
  shl    $0x3,%rax
  lea    -0x68(%rax),%rdx
  mov    -0x78(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mov    -0x50(%rbp),%eax
  cltq
  shl    $0x3,%rax
  lea    -0x78(%rax),%rdx
  mov    -0x78(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm1
  divsd  %xmm1,%xmm0
  movsd  %xmm0,-0x30(%rbp)
  movsd  -0x40(%rbp),%xmm0
  addsd  -0x30(%rbp),%xmm0
  movsd  %xmm0,-0x40(%rbp)
  mov    -0x68(%rbp),%rax
  mov    (%rax),%eax
  shl    $0x2,%eax
  lea    -0x1(%rax),%edx
  mov    -0x80(%rbp),%rax
  mov    (%rax),%eax
  add    %edx,%eax
  mov    %eax,-0x4c(%rbp)
  mov    -0x50(%rbp),%eax
  sub    $0x11,%eax
  mov    %eax,-0x58(%rbp)
  jmp    L544
L569:
  pxor   %xmm0,%xmm0
  ucomisd -0x30(%rbp),%xmm0
  jp     L1072
  pxor   %xmm0,%xmm0
  ucomisd -0x30(%rbp),%xmm0
  je     L584
L1072:
  movsd  -0x30(%rbp),%xmm0
  movsd  %xmm0,-0x38(%rbp)
  mov    -0x58(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x78(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mov    -0x58(%rbp),%eax
  cltq
  shl    $0x3,%rax
  lea    -0x10(%rax),%rdx
  mov    -0x78(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm1
  comisd %xmm1,%xmm0
  jbe    L257
  mov    $0x0,%eax
  jmp    L218
L257:
  mov    -0x58(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x78(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mov    -0x58(%rbp),%eax
  cltq
  shl    $0x3,%rax
  lea    -0x10(%rax),%rdx
  mov    -0x78(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm1
  divsd  %xmm1,%xmm0
  movsd  -0x30(%rbp),%xmm1
  mulsd  %xmm1,%xmm0
  movsd  %xmm0,-0x30(%rbp)
  movsd  -0x40(%rbp),%xmm0
  addsd  -0x30(%rbp),%xmm0
  movsd  %xmm0,-0x40(%rbp)
  movsd  -0x38(%rbp),%xmm0
  mov    -0x30(%rbp),%rax
  movapd %xmm0,%xmm1
  movq   %rax,%xmm0
  call   <fmax@plt>
  movsd  D287(%rip),%xmm1
  mulsd  %xmm0,%xmm1
  movsd  -0x40(%rbp),%xmm0
  comisd %xmm1,%xmm0
  ja     L1012
  movsd  -0x40(%rbp),%xmm0
  comisd D406(%rip),%xmm0
  ja     L1012
  subl   $0x4,-0x58(%rbp)
L544:
  mov    -0x58(%rbp),%eax
  cmp    -0x4c(%rbp),%eax
  jge    L569
  jmp    L421
L584:
  nop
  jmp    L421
L1012:
  nop
L421:
  movsd  -0x40(%rbp),%xmm1
  movsd  D290(%rip),%xmm0
  mulsd  %xmm1,%xmm0
  movsd  %xmm0,-0x40(%rbp)
L606:
  movsd  D406(%rip),%xmm0
  comisd -0x40(%rbp),%xmm0
  jbe    L228
  mov    -0x40(%rbp),%rax
  movq   %rax,%xmm0
  call   <sqrt@plt>
  movapd %xmm0,%xmm1
  movsd  D21(%rip),%xmm0
  subsd  %xmm1,%xmm0
  mulsd  -0x28(%rbp),%xmm0
  movsd  -0x40(%rbp),%xmm2
  movsd  D21(%rip),%xmm1
  addsd  %xmm2,%xmm1
  divsd  %xmm1,%xmm0
  movsd  %xmm0,-0x48(%rbp)
  jmp    L228
L866:
  mov    0x40(%rbp),%rax
  mov    (%rax),%eax
  cmp    $0xfffffffa,%eax
  jne    L576
  mov    0x48(%rbp),%rax
  movsd  (%rax),%xmm1
  mov    0x48(%rbp),%rax
  movsd  (%rax),%xmm3
  movsd  D21(%rip),%xmm0
  movapd %xmm0,%xmm2
  subsd  %xmm3,%xmm2
  movsd  D8(%rip),%xmm0
  mulsd  %xmm2,%xmm0
  addsd  %xmm1,%xmm0
  mov    0x48(%rbp),%rax
  movsd  %xmm0,(%rax)
  jmp    L309
L576:
  mov    0x40(%rbp),%rax
  mov    (%rax),%eax
  cmp    $0xffffffee,%eax
  jne    L1089
  mov    0x48(%rbp),%rax
  movsd  D319(%rip),%xmm0
  movsd  %xmm0,(%rax)
  jmp    L309
L1089:
  mov    0x48(%rbp),%rax
  movsd  D39(%rip),%xmm0
  movsd  %xmm0,(%rax)
L309:
  mov    0x48(%rbp),%rax
  movsd  (%rax),%xmm1
  mov    -0x90(%rbp),%rax
  movsd  (%rax),%xmm0
  mulsd  %xmm1,%xmm0
  movsd  %xmm0,-0x48(%rbp)
  mov    0x40(%rbp),%rax
  movl   $0xfffffffa,(%rax)
  jmp    L228
L223:
  mov    -0x88(%rbp),%rax
  mov    (%rax),%edx
  mov    -0x70(%rbp),%rax
  mov    (%rax),%eax
  add    $0x1,%eax
  cmp    %eax,%edx
  jne    L835
  mov    0x10(%rbp),%rax
  movsd  (%rax),%xmm0
  mov    0x28(%rbp),%rax
  movsd  (%rax),%xmm1
  ucomisd %xmm1,%xmm0
  jp     L33
  ucomisd %xmm1,%xmm0
  jne    L33
  mov    0x18(%rbp),%rax
  movsd  (%rax),%xmm0
  mov    0x30(%rbp),%rax
  movsd  (%rax),%xmm1
  ucomisd %xmm1,%xmm0
  jp     L33
  ucomisd %xmm1,%xmm0
  jne    L33
  mov    0x40(%rbp),%rax
  movl   $0xfffffff9,(%rax)
  mov    0x10(%rbp),%rax
  movsd  (%rax),%xmm1
  movsd  D8(%rip),%xmm0
  mulsd  %xmm1,%xmm0
  movsd  %xmm0,-0x48(%rbp)
  mov    -0x50(%rbp),%eax
  cltq
  shl    $0x3,%rax
  lea    -0x28(%rax),%rdx
  mov    -0x78(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mov    -0x50(%rbp),%eax
  cltq
  shl    $0x3,%rax
  lea    -0x38(%rax),%rdx
  mov    -0x78(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm1
  comisd %xmm1,%xmm0
  jbe    L538
  mov    $0x0,%eax
  jmp    L218
L538:
  mov    -0x50(%rbp),%eax
  cltq
  shl    $0x3,%rax
  lea    -0x28(%rax),%rdx
  mov    -0x78(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mov    -0x50(%rbp),%eax
  cltq
  shl    $0x3,%rax
  lea    -0x38(%rax),%rdx
  mov    -0x78(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm1
  divsd  %xmm1,%xmm0
  movsd  %xmm0,-0x38(%rbp)
  movsd  -0x38(%rbp),%xmm0
  movsd  %xmm0,-0x30(%rbp)
  pxor   %xmm0,%xmm0
  ucomisd -0x30(%rbp),%xmm0
  jp     L953
  pxor   %xmm0,%xmm0
  ucomisd -0x30(%rbp),%xmm0
  je     L91
L953:
  mov    -0x68(%rbp),%rax
  mov    (%rax),%eax
  shl    $0x2,%eax
  lea    -0x1(%rax),%edx
  mov    -0x80(%rbp),%rax
  mov    (%rax),%eax
  add    %edx,%eax
  mov    %eax,-0x4c(%rbp)
  mov    -0x70(%rbp),%rax
  mov    (%rax),%eax
  shl    $0x2,%eax
  lea    -0x9(%rax),%edx
  mov    -0x80(%rbp),%rax
  mov    (%rax),%eax
  add    %edx,%eax
  mov    %eax,-0x58(%rbp)
  jmp    L3
L222:
  movsd  -0x38(%rbp),%xmm0
  movsd  %xmm0,-0x40(%rbp)
  mov    -0x58(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x78(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mov    -0x58(%rbp),%eax
  cltq
  shl    $0x3,%rax
  lea    -0x10(%rax),%rdx
  mov    -0x78(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm1
  comisd %xmm1,%xmm0
  jbe    L481
  mov    $0x0,%eax
  jmp    L218
L481:
  mov    -0x58(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x78(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mov    -0x58(%rbp),%eax
  cltq
  shl    $0x3,%rax
  lea    -0x10(%rax),%rdx
  mov    -0x78(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm1
  divsd  %xmm1,%xmm0
  movsd  -0x38(%rbp),%xmm1
  mulsd  %xmm1,%xmm0
  movsd  %xmm0,-0x38(%rbp)
  movsd  -0x30(%rbp),%xmm0
  addsd  -0x38(%rbp),%xmm0
  movsd  %xmm0,-0x30(%rbp)
  movsd  -0x40(%rbp),%xmm0
  mov    -0x38(%rbp),%rax
  movapd %xmm0,%xmm1
  movq   %rax,%xmm0
  call   <fmax@plt>
  movsd  D287(%rip),%xmm1
  mulsd  %xmm0,%xmm1
  movsd  -0x30(%rbp),%xmm0
  comisd %xmm1,%xmm0
  ja     L125
  subl   $0x4,-0x58(%rbp)
L3:
  mov    -0x58(%rbp),%eax
  cmp    -0x4c(%rbp),%eax
  jge    L222
  jmp    L989
L91:
  nop
  jmp    L989
L125:
  nop
L989:
  movsd  -0x30(%rbp),%xmm1
  movsd  D290(%rip),%xmm0
  mulsd  %xmm0,%xmm1
  movq   %xmm1,%rax
  movq   %rax,%xmm0
  call   <sqrt@plt>
  movq   %xmm0,%rax
  mov    %rax,-0x30(%rbp)
  movsd  -0x30(%rbp),%xmm0
  movsd  %xmm0,-0x18(%rbp)
  mov    0x10(%rbp),%rax
  movsd  (%rax),%xmm1
  movsd  -0x18(%rbp),%xmm0
  movapd %xmm0,%xmm2
  mulsd  %xmm0,%xmm2
  movsd  D21(%rip),%xmm0
  addsd  %xmm0,%xmm2
  divsd  %xmm2,%xmm1
  movapd %xmm1,%xmm0
  movsd  %xmm0,-0x40(%rbp)
  mov    0x18(%rbp),%rax
  movsd  (%rax),%xmm1
  movsd  D382(%rip),%xmm0
  mulsd  %xmm1,%xmm0
  subsd  -0x40(%rbp),%xmm0
  movsd  %xmm0,-0x10(%rbp)
  movsd  -0x10(%rbp),%xmm0
  pxor   %xmm1,%xmm1
  comisd %xmm1,%xmm0
  jbe    L812
  movsd  -0x30(%rbp),%xmm0
  movapd %xmm0,%xmm1
  mulsd  -0x40(%rbp),%xmm1
  movsd  -0x10(%rbp),%xmm0
  comisd %xmm1,%xmm0
  jbe    L812
  movsd  -0x48(%rbp),%xmm0
  movsd  %xmm0,-0x18(%rbp)
  movsd  -0x40(%rbp),%xmm1
  movsd  D284(%rip),%xmm0
  mulsd  %xmm0,%xmm1
  movsd  -0x30(%rbp),%xmm0
  divsd  -0x10(%rbp),%xmm0
  mulsd  %xmm1,%xmm0
  movapd %xmm0,%xmm1
  mulsd  -0x30(%rbp),%xmm1
  movsd  D21(%rip),%xmm0
  subsd  %xmm1,%xmm0
  movsd  -0x40(%rbp),%xmm1
  mulsd  %xmm1,%xmm0
  movsd  %xmm0,-0x8(%rbp)
  movsd  -0x8(%rbp),%xmm0
  mov    -0x18(%rbp),%rax
  movapd %xmm0,%xmm1
  movq   %rax,%xmm0
  call   <fmax@plt>
  movq   %xmm0,%rax
  mov    %rax,-0x48(%rbp)
  nop
  jmp    L228
L812:
  movsd  -0x48(%rbp),%xmm0
  movsd  %xmm0,-0x18(%rbp)
  movsd  -0x30(%rbp),%xmm1
  movsd  D284(%rip),%xmm0
  mulsd  %xmm0,%xmm1
  movsd  D21(%rip),%xmm0
  subsd  %xmm1,%xmm0
  movsd  -0x40(%rbp),%xmm1
  mulsd  %xmm1,%xmm0
  movsd  %xmm0,-0x8(%rbp)
  movsd  -0x8(%rbp),%xmm0
  mov    -0x18(%rbp),%rax
  movapd %xmm0,%xmm1
  movq   %rax,%xmm0
  call   <fmax@plt>
  movq   %xmm0,%rax
  mov    %rax,-0x48(%rbp)
  mov    0x40(%rbp),%rax
  movl   $0xfffffff8,(%rax)
  jmp    L228
L33:
  mov    0x10(%rbp),%rax
  movsd  (%rax),%xmm1
  movsd  D39(%rip),%xmm0
  mulsd  %xmm1,%xmm0
  movsd  %xmm0,-0x48(%rbp)
  mov    0x10(%rbp),%rax
  movsd  (%rax),%xmm0
  mov    0x28(%rbp),%rax
  movsd  (%rax),%xmm1
  ucomisd %xmm1,%xmm0
  jp     L712
  ucomisd %xmm1,%xmm0
  jne    L712
  mov    0x10(%rbp),%rax
  movsd  (%rax),%xmm1
  movsd  D382(%rip),%xmm0
  mulsd  %xmm1,%xmm0
  movsd  %xmm0,-0x48(%rbp)
L712:
  mov    0x40(%rbp),%rax
  movl   $0xfffffff7,(%rax)
  jmp    L228
L835:
  mov    -0x88(%rbp),%rax
  mov    (%rax),%edx
  mov    -0x70(%rbp),%rax
  mov    (%rax),%eax
  add    $0x2,%eax
  cmp    %eax,%edx
  jne    L1067
  mov    0x18(%rbp),%rax
  movsd  (%rax),%xmm0
  mov    0x30(%rbp),%rax
  movsd  (%rax),%xmm1
  ucomisd %xmm1,%xmm0
  jp     L880
  ucomisd %xmm1,%xmm0
  jne    L880
  mov    -0x50(%rbp),%eax
  cltq
  shl    $0x3,%rax
  lea    -0x28(%rax),%rdx
  mov    -0x78(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  movapd %xmm0,%xmm1
  addsd  %xmm0,%xmm1
  mov    -0x50(%rbp),%eax
  cltq
  shl    $0x3,%rax
  lea    -0x38(%rax),%rdx
  mov    -0x78(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  comisd %xmm1,%xmm0
  jbe    L880
  mov    0x40(%rbp),%rax
  movl   $0xfffffff6,(%rax)
  mov    0x18(%rbp),%rax
  movsd  (%rax),%xmm1
  movsd  D8(%rip),%xmm0
  mulsd  %xmm1,%xmm0
  movsd  %xmm0,-0x48(%rbp)
  mov    -0x50(%rbp),%eax
  cltq
  shl    $0x3,%rax
  lea    -0x28(%rax),%rdx
  mov    -0x78(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mov    -0x50(%rbp),%eax
  cltq
  shl    $0x3,%rax
  lea    -0x38(%rax),%rdx
  mov    -0x78(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm1
  comisd %xmm1,%xmm0
  jbe    L862
  mov    $0x0,%eax
  jmp    L218
L862:
  mov    -0x50(%rbp),%eax
  cltq
  shl    $0x3,%rax
  lea    -0x28(%rax),%rdx
  mov    -0x78(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mov    -0x50(%rbp),%eax
  cltq
  shl    $0x3,%rax
  lea    -0x38(%rax),%rdx
  mov    -0x78(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm1
  divsd  %xmm1,%xmm0
  movsd  %xmm0,-0x38(%rbp)
  movsd  -0x38(%rbp),%xmm0
  movsd  %xmm0,-0x30(%rbp)
  pxor   %xmm0,%xmm0
  ucomisd -0x30(%rbp),%xmm0
  jp     L741
  pxor   %xmm0,%xmm0
  ucomisd -0x30(%rbp),%xmm0
  je     L1065
L741:
  mov    -0x68(%rbp),%rax
  mov    (%rax),%eax
  shl    $0x2,%eax
  lea    -0x1(%rax),%edx
  mov    -0x80(%rbp),%rax
  mov    (%rax),%eax
  add    %edx,%eax
  mov    %eax,-0x4c(%rbp)
  mov    -0x70(%rbp),%rax
  mov    (%rax),%eax
  shl    $0x2,%eax
  lea    -0x9(%rax),%edx
  mov    -0x80(%rbp),%rax
  mov    (%rax),%eax
  add    %edx,%eax
  mov    %eax,-0x58(%rbp)
  jmp    L503
L474:
  mov    -0x58(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x78(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mov    -0x58(%rbp),%eax
  cltq
  shl    $0x3,%rax
  lea    -0x10(%rax),%rdx
  mov    -0x78(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm1
  comisd %xmm1,%xmm0
  jbe    L445
  mov    $0x0,%eax
  jmp    L218
L445:
  mov    -0x58(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x78(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mov    -0x58(%rbp),%eax
  cltq
  shl    $0x3,%rax
  lea    -0x10(%rax),%rdx
  mov    -0x78(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm1
  divsd  %xmm1,%xmm0
  movsd  -0x38(%rbp),%xmm1
  mulsd  %xmm1,%xmm0
  movsd  %xmm0,-0x38(%rbp)
  movsd  -0x30(%rbp),%xmm0
  addsd  -0x38(%rbp),%xmm0
  movsd  %xmm0,-0x30(%rbp)
  movsd  -0x38(%rbp),%xmm1
  movsd  D287(%rip),%xmm0
  mulsd  %xmm0,%xmm1
  movsd  -0x30(%rbp),%xmm0
  comisd %xmm1,%xmm0
  ja     L670
  subl   $0x4,-0x58(%rbp)
L503:
  mov    -0x58(%rbp),%eax
  cmp    -0x4c(%rbp),%eax
  jge    L474
  jmp    L159
L1065:
  nop
  jmp    L159
L670:
  nop
L159:
  movsd  -0x30(%rbp),%xmm1
  movsd  D290(%rip),%xmm0
  mulsd  %xmm0,%xmm1
  movq   %xmm1,%rax
  movq   %rax,%xmm0
  call   <sqrt@plt>
  movq   %xmm0,%rax
  mov    %rax,-0x30(%rbp)
  movsd  -0x30(%rbp),%xmm0
  movsd  %xmm0,-0x18(%rbp)
  mov    0x18(%rbp),%rax
  movsd  (%rax),%xmm1
  movsd  -0x18(%rbp),%xmm0
  movapd %xmm0,%xmm2
  mulsd  %xmm0,%xmm2
  movsd  D21(%rip),%xmm0
  addsd  %xmm0,%xmm2
  divsd  %xmm2,%xmm1
  movapd %xmm1,%xmm0
  movsd  %xmm0,-0x40(%rbp)
  mov    -0x50(%rbp),%eax
  cltq
  shl    $0x3,%rax
  lea    -0x38(%rax),%rdx
  mov    -0x78(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm1
  mov    -0x50(%rbp),%eax
  cltq
  shl    $0x3,%rax
  lea    -0x48(%rax),%rdx
  mov    -0x78(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  addsd  %xmm0,%xmm1
  movsd  %xmm1,-0x98(%rbp)
  mov    -0x50(%rbp),%eax
  cltq
  shl    $0x3,%rax
  lea    -0x58(%rax),%rdx
  mov    -0x78(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%rax
  movq   %rax,%xmm0
  call   <sqrt@plt>
  movsd  %xmm0,-0xa0(%rbp)
  mov    -0x50(%rbp),%eax
  cltq
  shl    $0x3,%rax
  lea    -0x48(%rax),%rdx
  mov    -0x78(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%rax
  movq   %rax,%xmm0
  call   <sqrt@plt>
  movsd  -0xa0(%rbp),%xmm4
  mulsd  %xmm0,%xmm4
  movapd %xmm4,%xmm1
  movsd  -0x98(%rbp),%xmm0
  subsd  %xmm1,%xmm0
  subsd  -0x40(%rbp),%xmm0
  movsd  %xmm0,-0x10(%rbp)
  movsd  -0x10(%rbp),%xmm0
  pxor   %xmm1,%xmm1
  comisd %xmm1,%xmm0
  jbe    L676
  movsd  -0x30(%rbp),%xmm0
  movapd %xmm0,%xmm1
  mulsd  -0x40(%rbp),%xmm1
  movsd  -0x10(%rbp),%xmm0
  comisd %xmm1,%xmm0
  jbe    L676
  movsd  -0x48(%rbp),%xmm0
  movsd  %xmm0,-0x18(%rbp)
  movsd  -0x40(%rbp),%xmm1
  movsd  D284(%rip),%xmm0
  mulsd  %xmm0,%xmm1
  movsd  -0x30(%rbp),%xmm0
  divsd  -0x10(%rbp),%xmm0
  mulsd  %xmm1,%xmm0
  movapd %xmm0,%xmm1
  mulsd  -0x30(%rbp),%xmm1
  movsd  D21(%rip),%xmm0
  subsd  %xmm1,%xmm0
  movsd  -0x40(%rbp),%xmm1
  mulsd  %xmm1,%xmm0
  movsd  %xmm0,-0x8(%rbp)
  movsd  -0x8(%rbp),%xmm0
  mov    -0x18(%rbp),%rax
  movapd %xmm0,%xmm1
  movq   %rax,%xmm0
  call   <fmax@plt>
  movq   %xmm0,%rax
  mov    %rax,-0x48(%rbp)
  nop
  jmp    L228
L676:
  movsd  -0x48(%rbp),%xmm0
  movsd  %xmm0,-0x18(%rbp)
  movsd  -0x30(%rbp),%xmm1
  movsd  D284(%rip),%xmm0
  mulsd  %xmm0,%xmm1
  movsd  D21(%rip),%xmm0
  subsd  %xmm1,%xmm0
  movsd  -0x40(%rbp),%xmm1
  mulsd  %xmm1,%xmm0
  movsd  %xmm0,-0x8(%rbp)
  movsd  -0x8(%rbp),%xmm0
  mov    -0x18(%rbp),%rax
  movapd %xmm0,%xmm1
  movq   %rax,%xmm0
  call   <fmax@plt>
  movq   %xmm0,%rax
  mov    %rax,-0x48(%rbp)
  jmp    L228
L880:
  mov    0x18(%rbp),%rax
  movsd  (%rax),%xmm1
  movsd  D39(%rip),%xmm0
  mulsd  %xmm1,%xmm0
  movsd  %xmm0,-0x48(%rbp)
  mov    0x40(%rbp),%rax
  movl   $0xfffffff5,(%rax)
  jmp    L228
L1067:
  mov    -0x88(%rbp),%rax
  mov    (%rax),%edx
  mov    -0x70(%rbp),%rax
  mov    (%rax),%eax
  add    $0x2,%eax
  cmp    %eax,%edx
  jle    L228
  pxor   %xmm0,%xmm0
  movsd  %xmm0,-0x48(%rbp)
  mov    0x40(%rbp),%rax
  movl   $0xfffffff4,(%rax)
L228:
  mov    0x38(%rbp),%rax
  movsd  -0x48(%rbp),%xmm0
  movsd  %xmm0,(%rax)
  mov    $0x0,%eax
L218:
  leave
  ret
```

tool_calls: name: read_data
arguments: label: D117
data_type: f32[2]
name: read_data
arguments: label: D39
data_type: f32[2]
name: read_data
arguments: label: D382
data_type: f32[2]
name: read_data
arguments: label: D8
data_type: byte[8]
name: read_data
arguments: label: D287
data_type: f64
name: read_data
arguments: label: D406
data_type: byte[16]
name: read_data
arguments: label: D290
data_type: f64
name: read_data
arguments: label: D21
data_type: f64
name: read_data
arguments: label: D319
data_type: byte[8]
name: read_data
arguments: label: D284
data_type: f64

tool: {"D117": [0.0,-0.0]}

tool: {"D39": [0.0,1.625]}

tool: {"D382": [0.0,1.75]}

tool: {"D8": [0x1d,0x5a,0x64,0x3b,0xdf,0x4f,0xd5,0x3f]}

tool: D287: 100

tool: {"D406": [0x6a,0xbc,0x74,0x93,0x18,0x04,0xe2,0x3f,0xcd,0xcc,0xcc,0xcc,0xcc,0xcc,0xf0,0x3f]}

tool: D290: 1.05

tool: D21: 1

tool: {"D319": [0x1d,0x5a,0x64,0x3b,0xdf,0x4f,0xb5,0x3f]}

tool: D284: 1.01

assistant: ```c
int odsq4_(int *i0, int *n0, double *z__, int *pp, int *n0in, double *dmin__, double *dmin1, double *dmin2, double *dn, double *dn1, double *dn2, double *tau, int *ttype, double *g) {
  int i__1;
  double d__1, d__2;
  double s, a2, b1, b2;
  int i4, nn, np;
  double gam, gap1, gap2;
  --z__;
  if (*dmin__ <= 0.) {
    *tau = -(*dmin__);
    *ttype = -1;
    return 0;
  }
  nn = (*n0 << 2) + *pp;
  if (*n0in == *n0) {
    if (*dmin__ == *dn || *dmin__ == *dn1) {
      b1 = sqrt(z__[nn - 3]) * sqrt(z__[nn - 5]);
      b2 = sqrt(z__[nn - 7]) * sqrt(z__[nn - 9]);
      a2 = z__[nn - 7] + z__[nn - 5];
      if (*dmin__ == *dn && *dmin1 == *dn1) {
        gap2 = *dmin2 - a2 - *dmin2 * .25;
        if (gap2 > 0. && gap2 > b2) {
          gap1 = a2 - *dn - b2 / gap2 * b2;
        } else {
          gap1 = a2 - *dn - (b1 + b2);
        }
        if (gap1 > 0. && gap1 > b1) {
          d__1 = *dn - b1 / gap1 * b1, d__2 = *dmin__ * .5;
          s = fmax(d__1, d__2);
          *ttype = -2;
        } else {
          s = 0.;
          if (*dn > b1) {
            s = *dn - b1;
          }
          if (a2 > b1 + b2) {
            d__1 = s, d__2 = a2 - (b1 + b2);
            s = fmin(d__1, d__2);
          }
          d__1 = s, d__2 = *dmin__ * .333;
          s = fmax(d__1, d__2);
          *ttype = -3;
        }
      } else {
        *ttype = -4;
        s = *dmin__ * .25;
        if (*dmin__ == *dn) {
          gam = *dn;
          a2 = 0.;
          if (z__[nn - 5] > z__[nn - 7]) {
            return 0;
          }
          b2 = z__[nn - 5] / z__[nn - 7];
          np = nn - 9;
        } else {
          np = nn - (*pp << 1);
          b2 = z__[np - 2];
          gam = *dn1;
          if (z__[np - 4] > z__[np - 2]) {
            return 0;
          }
          a2 = z__[np - 4] / z__[np - 2];
          if (z__[nn - 9] > z__[nn - 11]) {
            return 0;
          }
          b2 = z__[nn - 9] / z__[nn - 11];
          np = nn - 13;
        }
        a2 += b2;
        i__1 = (*i0 << 2) - 1 + *pp;
        for (i4 = np; i4 >= i__1; i4 += -4) {
          if (b2 == 0.) {
            goto L20;
          }
          b1 = b2;
          if (z__[i4] > z__[i4 - 2]) {
            return 0;
          }
          b2 *= z__[i4] / z__[i4 - 2];
          a2 += b2;
          if (fmax(b2, b1) * 100. < a2 || .563 < a2) {
            goto L20;
          }
        }
      L20:
        a2 *= 1.05;
        if (a2 < .563) {
          s = gam * (1. - sqrt(a2)) / (a2 + 1.);
        }
      }
    } else if (*dmin__ == *dn2) {
      *ttype = -5;
      s = *dmin__ * .25;
      np = nn - (*pp << 1);
      b1 = z__[np - 2];
      b2 = z__[np - 6];
      gam = *dn2;
      if (z__[np - 8] > b2 || z__[np - 4] > b1) {
        return 0;
      }
      a2 = z__[np - 8] / b2 * (z__[np - 4] / b1 + 1.);
      if (*n0 - *i0 > 2) {
        b2 = z__[nn - 13] / z__[nn - 15];
        a2 += b2;
        i__1 = (*i0 << 2) - 1 + *pp;
        for (i4 = nn - 17; i4 >= i__1; i4 += -4) {
          if (b2 == 0.) {
            goto L40;
          }
          b1 = b2;
          if (z__[i4] > z__[i4 - 2]) {
            return 0;
          }
          b2 *= z__[i4] / z__[i4 - 2];
          a2 += b2;
          if (fmax(b2, b1) * 100. < a2 || .563 < a2) {
            goto L40;
          }
        }
      L40:
        a2 *= 1.05;
      }
      if (a2 < .563) {
        s = gam * (1. - sqrt(a2)) / (a2 + 1.);
      }
    } else {
      if (*ttype == -6) {
        *g += (1. - *g) * .333;
      } else if (*ttype == -18) {
        *g = .083250000000000005;
      } else {
        *g = .25;
      }
      s = *g * *dmin__;
      *ttype = -6;
    }
  } else if (*n0in == *n0 + 1) {
    if (*dmin1 == *dn1 && *dmin2 == *dn2) {
      *ttype = -7;
      s = *dmin1 * .333;
      if (z__[nn - 5] > z__[nn - 7]) {
        return 0;
      }
      b1 = z__[nn - 5] / z__[nn - 7];
      b2 = b1;
      if (b2 == 0.) {
        goto L60;
      }
      i__1 = (*i0 << 2) - 1 + *pp;
      for (i4 = (*n0 << 2) - 9 + *pp; i4 >= i__1; i4 += -4) {
        a2 = b1;
        if (z__[i4] > z__[i4 - 2]) {
          return 0;
        }
        b1 *= z__[i4] / z__[i4 - 2];
        b2 += b1;
        if (fmax(b1, a2) * 100. < b2) {
          goto L60;
        }
      }
    L60:
      b2 = sqrt(b2 * 1.05);
      d__1 = b2;
      a2 = *dmin1 / (d__1 * d__1 + 1.);
      gap2 = *dmin2 * .5 - a2;
      if (gap2 > 0. && gap2 > b2 * a2) {
        d__1 = s, d__2 = a2 * (1. - a2 * 1.01 * (b2 / gap2) * b2);
        s = fmax(d__1, d__2);
      } else {
        d__1 = s, d__2 = a2 * (1. - b2 * 1.01);
        s = fmax(d__1, d__2);
        *ttype = -8;
      }
    } else {
      s = *dmin1 * .25;
      if (*dmin1 == *dn1) {
        s = *dmin1 * .5;
      }
      *ttype = -9;
    }
  } else if (*n0in == *n0 + 2) {
    if (*dmin2 == *dn2 && z__[nn - 5] * 2. < z__[nn - 7]) {
      *ttype = -10;
      s = *dmin2 * .333;
      if (z__[nn - 5] > z__[nn - 7]) {
        return 0;
      }
      b1 = z__[nn - 5] / z__[nn - 7];
      b2 = b1;
      if (b2 == 0.) {
        goto L80;
      }
      i__1 = (*i0 << 2) - 1 + *pp;
      for (i4 = (*n0 << 2) - 9 + *pp; i4 >= i__1; i4 += -4) {
        if (z__[i4] > z__[i4 - 2]) {
          return 0;
        }
        b1 *= z__[i4] / z__[i4 - 2];
        b2 += b1;
        if (b1 * 100. < b2) {
          goto L80;
        }
      }
    L80:
      b2 = sqrt(b2 * 1.05);
      d__1 = b2;
      a2 = *dmin2 / (d__1 * d__1 + 1.);
      gap2 = z__[nn - 7] + z__[nn - 9] - sqrt(z__[nn - 11]) * sqrt(z__[nn - 9]) - a2;
      if (gap2 > 0. && gap2 > b2 * a2) {
        d__1 = s, d__2 = a2 * (1. - a2 * 1.01 * (b2 / gap2) * b2);
        s = fmax(d__1, d__2);
      } else {
        d__1 = s, d__2 = a2 * (1. - b2 * 1.01);
        s = fmax(d__1, d__2);
      }
    } else {
      s = *dmin2 * .25;
      *ttype = -11;
    }
  } else if (*n0in > *n0 + 2) {
    s = 0.;
    *ttype = -12;
  }
  *tau = s;
  return 0;
}
```