user: Demonstrate the C code that generates the assembly output below:

```asm
<bobyqb_>:
  endbr64
  push   %r15
  push   %r14
  push   %r13
  push   %r12
  push   %rbp
  push   %rbx
  sub    $0x298,%rsp
  mov    %rdx,0x148(%rsp)
  mov    %rcx,0x1b8(%rsp)
  mov    %r8,0x1c0(%rsp)
  mov    %r9,0x1d0(%rsp)
  mov    0x2d0(%rsp),%rax
  mov    %rax,%rdx
  mov    %rax,0x200(%rsp)
  movsd  %xmm0,0x50(%rsp)
  movsd  %xmm1,0x188(%rsp)
  mov    0x2e8(%rsp),%rax
  mov    %rax,%r9
  mov    %rax,0x190(%rsp)
  mov    0x2f0(%rsp),%r11
  mov    %r11,0x40(%rsp)
  mov    0x2f8(%rsp),%rax
  mov    %rax,%rcx
  mov    %rax,0x1d8(%rsp)
  mov    0x300(%rsp),%rbx
  mov    0x308(%rsp),%rax
  mov    %rax,%r8
  mov    %rax,0xb0(%rsp)
  mov    0x310(%rsp),%rax
  mov    %rax,0xb8(%rsp)
  mov    0x318(%rsp),%r10
  mov    %r10,0x80(%rsp)
  mov    0x320(%rsp),%r14
  mov    %r14,0x78(%rsp)
  mov    0x328(%rsp),%r15
  mov    %r15,0x150(%rsp)
  mov    0x338(%rsp),%rbp
  mov    %rbp,0xe8(%rsp)
  mov    0x340(%rsp),%r12
  mov    %r12,0xf0(%rsp)
  mov    0x348(%rsp),%r13
  mov    %r13,0x48(%rsp)
  mov    0x350(%rsp),%r13
  mov    %r13,0x100(%rsp)
  mov    0x358(%rsp),%r12
  mov    0x360(%rsp),%r13
  mov    0x368(%rsp),%r15
  mov    %fs:0x28,%rax
  mov    %rax,0x288(%rsp)
  xor    %eax,%eax
  mov    %esi,%r10d
  lea    0x1(%rsi),%eax
  cltq
  shl    $0x3,%rax
  mov    %rax,%rbp
  neg    %rbp
  mov    %r11,%rsi
  mov    %rax,0x158(%rsp)
  sub    %rax,%r11
  mov    %r11,%r14
  mov    %r11,0xa0(%rsp)
  mov    %rcx,%r11
  lea    -0x8(%rcx),%rcx
  mov    %rcx,0xf8(%rsp)
  lea    0x264(%rsp),%rax
  push   %rax
  lea    0x268(%rsp),%rax
  push   %rax
  push   0x100(%rsp)
  push   0x100(%rsp)
  mov    0x350(%rsp),%ecx
  push   %rcx
  push   0x178(%rsp)
  push   0xa8(%rsp)
  push   0xb8(%rsp)
  push   0xf8(%rsp)
  push   %r8
  push   %r11
  push   %rsi
  push   %r9
  mov    0x348(%rsp),%esi
  push   %rsi
  mov    0x348(%rsp),%esi
  push   %rsi
  push   %rdx
  mov    0x250(%rsp),%r9
  mov    0x240(%rsp),%r8
  mov    0x238(%rsp),%rcx
  mov    0x1c8(%rsp),%rdx
  mov    %r10d,0x9c(%rsp)
  mov    %r10d,%esi
  mov    %edi,0x98(%rsp)
  call   <prelim_@plt>
  sub    $0xffffffffffffff80,%rsp
  mov    0x18(%rsp),%edi
  test   %edi,%edi
  jle    L3035
  mov    0x158(%rsp),%rax
  lea    -0x8(%rax),%rsi
  movslq 0x264(%rsp),%rax
  movslq 0x1c(%rsp),%rdx
  add    %rdx,%rax
  lea    (%r14,%rax,8),%rdx
  mov    %rbx,%rax
  mov    %edi,%ecx
  lea    (%rbx,%rcx,8),%rcx
  pxor   %xmm1,%xmm1
L138:
  movsd  (%rdx),%xmm0
  movsd  %xmm0,(%rax)
  mulsd  %xmm0,%xmm0
  addsd  %xmm0,%xmm1
  add    %rsi,%rdx
  add    $0x8,%rax
  cmp    %rcx,%rax
  jne    L138
  movsd  %xmm1,0xe0(%rsp)
L622:
  mov    0x1d8(%rsp),%rax
  movsd  (%rax),%xmm7
  movsd  %xmm7,0x170(%rsp)
  mov    0x260(%rsp),%eax
  mov    %eax,0x17c(%rsp)
  cmp    0x1c(%rsp),%eax
  jl     L1330
  mov    0x150(%rsp),%r8
  add    %r8,%rbp
  mov    %rbp,0x58(%rsp)
  mov    0x330(%rsp),%eax
  lea    0x1(%rax),%edx
  movslq %edx,%rdx
  shl    $0x3,%rdx
  mov    0x78(%rsp),%r10
  sub    %rdx,%r10
  mov    %r10,0x10(%rsp)
  lea    -0x8(%r13),%rax
  mov    %rax,0x1f0(%rsp)
  lea    -0x8(%r15),%rdi
  mov    %rdi,0x1b0(%rsp)
  mov    0x18(%rsp),%r11d
  lea    0x1(%r11),%eax
  mov    0x1c(%rsp),%r14d
  mov    %r14d,%esi
  sub    %eax,%esi
  mov    %esi,0xc8(%rsp)
  mov    %r11d,%esi
  imul   %eax,%esi
  mov    %esi,%ecx
  shr    $0x1f,%ecx
  add    %esi,%ecx
  sar    %ecx
  mov    %ecx,0x20c(%rsp)
  lea    (%r11,%r11,1),%ecx
  mov    %r11d,%esi
  add    %ecx,%esi
  add    %eax,%esi
  movslq %esi,%rsi
  lea    (%rdi,%rsi,8),%rsi
  mov    %rsi,0x198(%rsp)
  add    %eax,%ecx
  movslq %ecx,%rcx
  lea    (%rdi,%rcx,8),%rsi
  mov    %rsi,0x1a0(%rsp)
  mov    %r11d,%esi
  lea    (%rax,%r11,1),%ecx
  movslq %ecx,%rcx
  lea    (%rdi,%rcx,8),%rcx
  mov    %rcx,0x160(%rsp)
  movslq %eax,%rcx
  lea    (%rdi,%rcx,8),%rcx
  mov    %rcx,0x138(%rsp)
  movslq 0x330(%rsp),%r9
  mov    %r9,0x218(%rsp)
  lea    (%rdi,%rdx,1),%rcx
  mov    %rcx,0x1e0(%rsp)
  add    0x330(%rsp),%eax
  cltq
  lea    (%rdi,%rax,8),%rax
  mov    %rax,0x210(%rsp)
  movslq %r14d,%rdi
  mov    %rdi,0x140(%rsp)
  mov    0x158(%rsp),%rax
  lea    -0x8(%rax),%r11
  mov    %r11,0x28(%rsp)
  lea    -0x1(%rsi),%eax
  mov    %rax,0x240(%rsp)
  shl    $0x3,%rax
  lea    0x8(%rax),%rcx
  lea    (%rcx,%rbx,1),%rsi
  mov    %rsi,0x120(%rsp)
  mov    0xb0(%rsp),%rsi
  add    %rcx,%rsi
  mov    %rsi,0x1f8(%rsp)
  lea    -0x8(%rdx),%rsi
  mov    %rsi,0x20(%rsp)
  lea    0x1(%r9,%rdi,1),%rdx
  lea    (%r10,%rdx,8),%rsi
  mov    %rsi,0x90(%rsp)
  lea    (%r15,%r11,1),%rsi
  mov    %rsi,0x8(%rsp)
  lea    (%r12,%rax,1),%rsi
  mov    %rsi,0x238(%rsp)
  lea    0x0(%r13,%r11,1),%rsi
  mov    %rsi,0xa8(%rsp)
  neg    %rdi
  lea    0x0(%r13,%rdi,8),%rdi
  mov    %rdi,0x1c8(%rsp)
  add    0x48(%rsp),%rcx
  mov    %rcx,0x230(%rsp)
  lea    -0x8(%r8),%rdi
  mov    %rdi,0x228(%rsp)
  lea    0x8(%r15),%rdi
  mov    %rdi,0x1e8(%rsp)
  add    %rdi,%rax
  mov    %rax,0x220(%rsp)
  movsd  0x50(%rsp),%xmm7
  movsd  %xmm7,0x38(%rsp)
  movl   $0x0,0x30(%rsp)
  movl   $0x0,0x208(%rsp)
  movl   $0x1,0x128(%rsp)
  pxor   %xmm7,%xmm7
  movsd  %xmm7,0x118(%rsp)
  movsd  %xmm7,0x110(%rsp)
  mov    %r12,%r14
  mov    %rbx,%r12
  mov    %r15,%rbp
  mov    %r13,%r15
L2757:
  mov    0x128(%rsp),%eax
  cmp    %eax,0x264(%rsp)
  jne    L2724
L1240:
  mov    0x17c(%rsp),%eax
  mov    %eax,0x178(%rsp)
  mov    0x238(%rsp),%r13
  mov    0x240(%rsp),%rbx
  jmp    L566
L3035:
  pxor   %xmm7,%xmm7
  movsd  %xmm7,0xe0(%rsp)
  jmp    L622
L1330:
  cmpl   $0x0,0x2d8(%rsp)
  jg     L2849
L1916:
  movslq 0x264(%rsp),%rax
  mov    0xf8(%rsp),%rdi
  lea    (%rdi,%rax,8),%rdx
  movsd  0x170(%rsp),%xmm7
  comisd (%rdx),%xmm7
  jb     L1097
L1028:
  mov    0x18(%rsp),%eax
  test   %eax,%eax
  jle    L1747
  mov    %eax,%ecx
  mov    $0x0,%eax
  mov    0x148(%rsp),%rsi
  mov    0x1b8(%rsp),%r9
  mov    0x1c0(%rsp),%r10
  mov    0x190(%rsp),%r11
  mov    0xe8(%rsp),%rdi
  mov    0xf0(%rsp),%r8
  jmp    L3209
L2849:
  lea    D273(%rip),%rdi
  call   <puts@plt>
L1898:
  movslq 0x264(%rsp),%rax
  mov    0xf8(%rsp),%rdi
  lea    (%rdi,%rax,8),%rdx
  movsd  0x170(%rsp),%xmm5
  comisd (%rdx),%xmm5
  jae    L1028
  jmp    L1923
L2724:
  mov    0x18(%rsp),%eax
  test   %eax,%eax
  jle    L2341
  lea    0x1(%rax),%r9d
  mov    0xb0(%rsp),%rcx
  mov    %rcx,%rdi
  mov    $0x2,%edx
  mov    $0x0,%r8d
  mov    $0x1,%esi
  mov    0xb8(%rsp),%r11
  jmp    L1812
L422:
  movsd  -0x8(%r10,%rax,8),%xmm0
  mulsd  -0x10(%r12,%rdx,8),%xmm0
  addsd  -0x8(%rcx,%rax,8),%xmm0
  movsd  %xmm0,-0x8(%rcx,%rax,8)
  add    $0x1,%rax
  cmp    %rdx,%rax
  je     L3129
L292:
  cmp    %eax,%esi
  jle    L422
  movsd  -0x8(%r10,%rax,8),%xmm0
  mulsd  -0x8(%r12,%rax,8),%xmm0
  addsd  (%rdi),%xmm0
  movsd  %xmm0,(%rdi)
  jmp    L422
L3129:
  add    %esi,%r8d
L3461:
  add    $0x1,%esi
  add    $0x1,%rdx
  add    $0x8,%rdi
  cmp    %r9d,%esi
  je     L2341
L1812:
  test   %esi,%esi
  jle    L3461
  movslq %r8d,%rax
  lea    (%r11,%rax,8),%r10
  mov    $0x1,%eax
  jmp    L292
L2341:
  mov    0x1c(%rsp),%eax
  cmp    %eax,0x260(%rsp)
  jle    L1240
  test   %eax,%eax
  jle    L1240
  lea    -0x1(%rax),%edi
  add    $0x2,%rdi
  mov    0x40(%rsp),%rsi
  mov    $0x1,%ecx
  mov    0x1f8(%rsp),%r8
  mov    0x28(%rsp),%rdx
  mov    0x120(%rsp),%r9
  jmp    L3264
L970:
  movapd %xmm1,%xmm0
  mulsd  (%r10),%xmm0
  addsd  (%rax),%xmm0
  movsd  %xmm0,(%rax)
  add    $0x8,%rax
  add    %rdx,%r10
  cmp    %r8,%rax
  jne    L970
L615:
  add    $0x1,%rcx
  add    $0x8,%rsi
  cmp    %rdi,%rcx
  je     L1240
L3264:
  mov    %r12,%rax
  mov    %rsi,%r10
  pxor   %xmm1,%xmm1
  cmpl   $0x0,0x18(%rsp)
  jle    L615
L2483:
  movsd  (%r10),%xmm0
  mulsd  (%rax),%xmm0
  addsd  %xmm0,%xmm1
  add    %rdx,%r10
  add    $0x8,%rax
  cmp    %r9,%rax
  jne    L2483
  mov    0x80(%rsp),%rax
  mulsd  -0x8(%rax,%rcx,8),%xmm1
  mov    %rsi,%r10
  mov    0xb0(%rsp),%rax
  jmp    L970
L1203:
  call   <sqrt@plt>
  movsd  %xmm0,0x88(%rsp)
  jmp    L1261
L1833:
  mov    %eax,%ecx
  imul   %eax,%ecx
  add    %ecx,%eax
  mov    %eax,%ecx
  shr    $0x1f,%ecx
  add    %eax,%ecx
  sar    %ecx
  movslq %ecx,%rax
  movsd  -0x8(%r15,%rax,8),%xmm1
  test   %ebx,%ebx
  jle    L585
  movslq %edi,%rax
  lea    (%r14,%rax,8),%r8
  mov    $0x0,%eax
L3120:
  movsd  0x8(%r8,%rax,8),%xmm0
  mulsd  %xmm0,%xmm0
  mulsd  (%r9,%rax,8),%xmm0
  addsd  %xmm0,%xmm1
  mov    %rax,%rcx
  add    $0x1,%rax
  cmp    %rsi,%rcx
  jne    L3120
L585:
  mulsd  %xmm5,%xmm1
  movapd %xmm1,%xmm0
  mulsd  %xmm6,%xmm0
  addsd  %xmm2,%xmm0
  comisd %xmm0,%xmm4
  jbe    L384
  mov    0x30(%rsp),%r13
  mov    0x70(%rsp),%rbx
  mov    0x98(%rsp),%r12
  mov    0xd0(%rsp),%r14
  mov    0xd8(%rsp),%r15
  movl   $0xffffffff,0x30(%rsp)
  jmp    L1767
L2283:
  mov    0x30(%rsp),%r13
  mov    0x70(%rsp),%rbx
  mov    0x98(%rsp),%r12
  mov    0xd0(%rsp),%r14
  mov    0xd8(%rsp),%r15
L1588:
  movsd  0x50(%rsp),%xmm7
  comisd 0x188(%rsp),%xmm7
  ja     L2295
  movl   $0xffffffff,0x30(%rsp)
L518:
  cmpl   $0x0,0x18(%rsp)
  jle    L911
  mov    $0x0,%eax
  mov    0x148(%rsp),%rcx
  mov    0x1b8(%rsp),%r8
  mov    0x1c0(%rsp),%r9
  mov    0x190(%rsp),%r10
  mov    0xe8(%rsp),%rsi
  mov    0xf0(%rsp),%rdi
  mov    0x48(%rsp),%rdx
  jmp    L3084
L2049:
  addl   $0x1,0x30(%rsp)
L1784:
  movsd  0xe0(%rsp),%xmm0
  mulsd  D158(%rip),%xmm0
  comisd 0x268(%rsp),%xmm0
  jae    L702
L2242:
  cmpl   $0x0,0x30(%rsp)
  je     L2722
L701:
  mov    0x264(%rsp),%eax
  mov    %eax,0x128(%rsp)
  cltq
  mov    0x1f0(%rsp),%rdi
  lea    (%rdi,%rax,8),%rax
  mov    %rax,0xd0(%rsp)
  movslq 0xcc(%rsp),%rax
  lea    (%rdi,%rax,8),%rax
  mov    %rax,0xd8(%rsp)
  movsd  0x270(%rsp),%xmm6
  movsd  0x278(%rsp),%xmm3
  movb   $0x0,0x98(%rsp)
  mov    0x1c(%rsp),%eax
  lea    -0x1(%rax),%esi
  lea    0x2(%rsi),%rdi
  movsd  D130(%rip),%xmm2
  mov    0xc8(%rsp),%eax
  add    $0x1,%eax
  mov    %eax,0x108(%rsp)
  movapd %xmm2,%xmm5
  movsd  D348(%rip),%xmm4
  pxor   %xmm8,%xmm8
  movapd %xmm8,%xmm7
  movsd  0x60(%rsp),%xmm9
  movsd  0xe0(%rsp),%xmm10
  jmp    L3175
L702:
  movsd  0xe0(%rsp),%xmm5
  movapd %xmm5,%xmm3
  mulsd  D333(%rip),%xmm3
  mov    0x1c(%rsp),%eax
  test   %eax,%eax
  jle    L2530
  mulsd  D352(%rip),%xmm5
  lea    -0x1(%rax),%eax
  add    $0x2,%rax
  mov    %rax,0x70(%rsp)
  mov    0x40(%rsp),%r11
  mov    0x78(%rsp),%rax
  mov    %rax,0x68(%rsp)
  mov    $0x1,%r10d
  pxor   %xmm2,%xmm2
  movsd  D130(%rip),%xmm6
  lea    0x2(%rbx),%r9
  mov    %r13,0x98(%rsp)
  mov    0x20(%rsp),%rsi
  mov    0x28(%rsp),%r13
  mov    %rbx,0xd0(%rsp)
  mov    %r14,0xd8(%rsp)
  mov    0x120(%rsp),%r14
  jmp    L2415
L1926:
  movsd  (%rdi),%xmm0
  movsd  %xmm0,-0x8(%rbp,%rcx,8)
  movapd %xmm4,%xmm0
  mulsd  (%r8),%xmm0
  movapd %xmm7,%xmm1
  mulsd  -0x8(%r12,%rcx,8),%xmm1
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0x8(%r15,%rcx,8)
  test   %ecx,%ecx
  jle    L2806
  mov    %rbx,%rdx
  mov    $0x0,%eax
L50:
  movsd  -0x8(%rbp,%rcx,8),%xmm0
  mulsd  (%r15,%rax,8),%xmm0
  addsd  (%rdx),%xmm0
  movsd  -0x8(%r15,%rcx,8),%xmm1
  mulsd  0x0(%rbp,%rax,8),%xmm1
  addsd  %xmm1,%xmm0
  movsd  %xmm0,(%rdx)
  add    $0x1,%rax
  add    %rsi,%rdx
  cmp    %rcx,%rax
  jne    L50
L2806:
  add    $0x1,%rcx
  add    %rsi,%rdi
  add    %r13,%r8
  add    $0x8,%rbx
  cmp    %r9,%rcx
  jne    L1926
L1832:
  add    $0x1,%r10
  addq   $0x8,0x68(%rsp)
  add    $0x8,%r11
  cmp    0x70(%rsp),%r10
  je     L1790
L2415:
  mov    %r10d,%ecx
  mov    0x80(%rsp),%rax
  addsd  -0x8(%rax,%r10,8),%xmm2
  cmpl   $0x0,0x18(%rsp)
  jle    L2107
  mov    %r12,%rax
  mov    %r11,%rdx
  movapd %xmm5,%xmm4
L262:
  movsd  (%rdx),%xmm0
  mulsd  (%rax),%xmm0
  addsd  %xmm0,%xmm4
  add    %r13,%rdx
  add    $0x8,%rax
  cmp    %r14,%rax
  jne    L262
  mov    0x1c(%rsp),%eax
  add    %ecx,%eax
  cltq
  mov    0x1b0(%rsp),%rbx
  movsd  %xmm4,(%rbx,%rax,8)
  movapd %xmm4,%xmm0
  mulsd  %xmm6,%xmm0
  movapd %xmm3,%xmm7
  subsd  %xmm0,%xmm7
  mov    0x90(%rsp),%rbx
  mov    %r11,%r8
  mov    0x68(%rsp),%rdi
  mov    $0x1,%ecx
  jmp    L1926
L1790:
  mov    0x98(%rsp),%r13
  mov    0xd0(%rsp),%rbx
  mov    0xd8(%rsp),%r14
L1042:
  mov    0xc8(%rsp),%eax
  test   %eax,%eax
  jle    L364
  add    $0x1,%eax
  mov    %eax,0x98(%rsp)
  mov    0x1c(%rsp),%eax
  mov    %eax,0x70(%rsp)
  movl   $0x1,0x68(%rsp)
  lea    -0x1(%rax),%ecx
  movsd  D130(%rip),%xmm5
  lea    0x2(%rcx),%r8
  mov    0x18(%rsp),%edi
  add    $0x1,%edi
  mov    %edi,0x128(%rsp)
  mov    %r13,0x248(%rsp)
  mov    0x20(%rsp),%r9
  mov    %rbx,0x250(%rsp)
  mov    %eax,%r13d
  mov    %r12,0xd0(%rsp)
  mov    %r14,0x258(%rsp)
  mov    0x8(%rsp),%r14
  jmp    L307
L2530:
  pxor   %xmm2,%xmm2
  jmp    L1042
L2509:
  movapd %xmm1,%xmm0
  mulsd  (%rdi,%rax,8),%xmm0
  addsd  (%rdx,%rax,8),%xmm0
  movsd  %xmm0,(%rdx,%rax,8)
  add    $0x1,%rax
  cmp    %r8,%rax
  jne    L2509
L789:
  add    $0x8,%r10
  add    0x330(%rsp),%ebx
  add    $0x8,%r11
  add    %r13d,%r12d
  cmp    %r9,%r10
  je     L2960
L594:
  movapd %xmm4,%xmm1
  mulsd  (%r10),%xmm1
  test   %r13d,%r13d
  jle    L665
  movslq %r12d,%rax
  lea    0x0(%rbp,%rax,8),%rsi
  mov    $0x0,%eax
L2065:
  movsd  (%r15,%rax,8),%xmm0
  mulsd  0x8(%rsi,%rax,8),%xmm0
  addsd  %xmm0,%xmm1
  mov    %rax,%rdx
  add    $0x1,%rax
  cmp    %rcx,%rdx
  jne    L2065
  movsd  %xmm1,(%r11)
  movslq %ebx,%rax
  lea    (%r14,%rax,8),%rdx
  mov    $0x1,%eax
  jmp    L2509
L2960:
  mov    0xd8(%rsp),%r14
  mov    0xe0(%rsp),%r9
  mov    0x108(%rsp),%rbp
  mov    0x1e8(%rsp),%rsi
  mov    0x90(%rsp),%r10
  mov    $0x1,%edi
  mov    0x128(%rsp),%r11d
L3423:
  movsd  -0x8(%rsi),%xmm1
  test   %edi,%edi
  jle    L433
  mov    %rbp,%rdx
  mov    %r10,%rax
L1196:
  movapd %xmm1,%xmm0
  mulsd  (%rdx),%xmm0
  addsd  (%rax),%xmm0
  movsd  %xmm0,(%rax)
  add    %r9,%rax
  add    $0x8,%rdx
  cmp    %rsi,%rdx
  jne    L1196
L433:
  add    $0x1,%edi
  add    $0x8,%r10
  add    $0x8,%rsi
  cmp    %r11d,%edi
  jne    L3423
L3216:
  addl   $0x1,0x68(%rsp)
  mov    0x68(%rsp),%eax
  add    %r13d,0x70(%rsp)
  cmp    0x98(%rsp),%eax
  je     L504
L307:
  pxor   %xmm1,%xmm1
  movapd %xmm1,%xmm4
  test   %r13d,%r13d
  jle    L2952
  movslq 0x70(%rsp),%rax
  mov    0x58(%rsp),%rbx
  lea    (%rbx,%rax,8),%rsi
  mov    $0x0,%eax
  pxor   %xmm1,%xmm1
  movapd %xmm1,%xmm4
L2598:
  movsd  0x8(%rsi,%rax,8),%xmm0
  addsd  %xmm0,%xmm1
  mulsd  (%r14,%rax,8),%xmm0
  movsd  %xmm0,(%r15,%rax,8)
  addsd  %xmm0,%xmm4
  mov    %rax,%rdx
  add    $0x1,%rax
  cmp    %rcx,%rdx
  jne    L2598
L2952:
  cmpl   $0x0,0x18(%rsp)
  jle    L3216
  mulsd  %xmm3,%xmm1
  mulsd  %xmm5,%xmm4
  movapd %xmm4,%xmm0
  movapd %xmm1,%xmm4
  subsd  %xmm0,%xmm4
  movslq 0x70(%rsp),%rax
  mov    0x58(%rsp),%rbx
  lea    (%rbx,%rax,8),%rdi
  mov    %r13d,%r12d
  mov    %rbp,%r11
  mov    0x330(%rsp),%ebx
  mov    0xd0(%rsp),%r10
  mov    %r14,0xd8(%rsp)
  mov    0x10(%rsp),%r14
  mov    %r9,0xe0(%rsp)
  mov    0x120(%rsp),%r9
  mov    %rbp,0x108(%rsp)
  mov    0xa0(%rsp),%rbp
  jmp    L594
L504:
  mov    0x248(%rsp),%r13
  mov    0x250(%rsp),%rbx
  mov    0xd0(%rsp),%r12
  mov    0x258(%rsp),%r14
L364:
  cmpl   $0x0,0x18(%rsp)
  jle    L3063
  mulsd  D352(%rip),%xmm2
  lea    0x2(%rbx),%rax
  mov    %rax,0x70(%rsp)
  mov    0x330(%rsp),%esi
  mov    0x90(%rsp),%rcx
  mov    0x1c(%rsp),%edi
  mov    %edi,%eax
  mov    %rbp,%r11
  mov    %r12,%r10
  mov    $0x1,%r8d
  movl   $0x0,0x68(%rsp)
  lea    -0x1(%rdi),%edi
  mov    %rdi,0x98(%rsp)
  mov    0xa0(%rsp),%rdi
  add    $0x8,%rdi
  mov    %rdi,0xd0(%rsp)
  mov    %r13,0xd8(%rsp)
  mov    %rcx,%r13
  mov    %rbx,0xe0(%rsp)
  mov    %eax,%ebx
  mov    %r14,0x108(%rsp)
  mov    %esi,%r14d
L1001:
  mov    %r10,%rsi
  mov    %r11,%rdx
  movapd %xmm2,%xmm0
  mulsd  (%r10),%xmm0
  movsd  %xmm0,(%r11)
  cmpl   $0x0,0x1c(%rsp)
  jle    L1908
  mov    0x80(%rsp),%rcx
  movslq %ebx,%rdi
  mov    0xa0(%rsp),%rax
  lea    (%rax,%rdi,8),%rax
  add    0x98(%rsp),%rdi
  mov    0xd0(%rsp),%r9
  lea    (%r9,%rdi,8),%rdi
L3431:
  movsd  (%rcx),%xmm0
  mulsd  0x8(%rax),%xmm0
  addsd  (%rdx),%xmm0
  movsd  %xmm0,(%rdx)
  movsd  0x8(%rax),%xmm0
  subsd  (%rsi),%xmm0
  movsd  %xmm0,0x8(%rax)
  add    $0x8,%rcx
  add    $0x8,%rax
  cmp    %rdi,%rax
  jne    L3431
L1908:
  test   %r8d,%r8d
  jle    L2028
  movslq 0x68(%rsp),%rax
  mov    0xb8(%rsp),%rdi
  lea    (%rdi,%rax,8),%rdi
  movslq %r14d,%rax
  add    0x140(%rsp),%rax
  mov    0x10(%rsp),%rcx
  lea    (%rcx,%rax,8),%r9
  mov    %r13,%rcx
  mov    $0x0,%eax
L212:
  movsd  0x0(%rbp,%rax,8),%xmm0
  mulsd  (%rsi),%xmm0
  addsd  (%rdi,%rax,8),%xmm0
  movsd  (%r12,%rax,8),%xmm1
  mulsd  (%rdx),%xmm1
  addsd  %xmm1,%xmm0
  movsd  %xmm0,(%rdi,%rax,8)
  movsd  (%rcx),%xmm0
  movsd  %xmm0,0x8(%r9,%rax,8)
  add    $0x1,%rax
  add    0x20(%rsp),%rcx
  cmp    %r8,%rax
  jne    L212
  add    %r8d,0x68(%rsp)
L2028:
  add    $0x1,%r8
  add    $0x8,%r10
  add    $0x8,%r11
  add    0x1c(%rsp),%ebx
  add    $0x8,%r13
  add    0x330(%rsp),%r14d
  cmp    0x70(%rsp),%r8
  jne    L1001
  mov    0xd8(%rsp),%r13
  mov    0xe0(%rsp),%rbx
  mov    0x108(%rsp),%r14
  mov    $0x0,%eax
  mov    0x190(%rsp),%rdx
  mov    0xe8(%rsp),%rcx
  mov    0xf0(%rsp),%rsi
  mov    0x48(%rsp),%rdi
L2286:
  movsd  (%rdx,%rax,8),%xmm0
  addsd  (%r12,%rax,8),%xmm0
  movsd  %xmm0,(%rdx,%rax,8)
  movsd  (%rdi,%rax,8),%xmm0
  subsd  (%r12,%rax,8),%xmm0
  movsd  %xmm0,(%rdi,%rax,8)
  movsd  (%rcx,%rax,8),%xmm0
  subsd  (%r12,%rax,8),%xmm0
  movsd  %xmm0,(%rcx,%rax,8)
  movsd  (%rsi,%rax,8),%xmm0
  subsd  (%r12,%rax,8),%xmm0
  movsd  %xmm0,(%rsi,%rax,8)
  movq   $0x0,(%r12,%rax,8)
  mov    %rax,%r8
  add    $0x1,%rax
  cmp    %rbx,%r8
  jne    L2286
  cmpl   $0x0,0x30(%rsp)
  je     L2105
  pxor   %xmm5,%xmm5
  movsd  %xmm5,0xe0(%rsp)
  jmp    L701
L3063:
  pxor   %xmm5,%xmm5
  movsd  %xmm5,0xe0(%rsp)
  jmp    L2242
L2081:
  cmpl   $0x0,0x18(%rsp)
  jle    L1789
  cltq
  add    0x140(%rsp),%rax
  mov    0xa0(%rsp),%rdi
  lea    (%rdi,%rax,8),%rdx
  mov    %r12,%rax
  movapd %xmm7,%xmm1
  mov    0x120(%rsp),%rcx
L2167:
  movsd  (%rdx),%xmm0
  movsd  %xmm0,(%rax)
  mulsd  %xmm0,%xmm0
  addsd  %xmm0,%xmm1
  add    0x28(%rsp),%rdx
  add    $0x8,%rax
  cmp    %rcx,%rax
  jne    L2167
  movsd  %xmm1,0xe0(%rsp)
  jmp    L3363
L1789:
  pxor   %xmm5,%xmm5
  movsd  %xmm5,0xe0(%rsp)
  jmp    L3363
L2498:
  mov    %r12,%rbx
  mov    0x2e0(%rsp),%eax
  mov    %eax,0x260(%rsp)
  cmpl   $0x0,0x2d8(%rsp)
  jle    L1916
  lea    D273(%rip),%rdi
  call   <puts@plt>
  jmp    L1898
L1609:
  mov    %r11,%rcx
  mov    %r10,%rdx
  mov    $0x0,%eax
  pxor   %xmm12,%xmm12
  movapd %xmm12,%xmm11
  movapd %xmm12,%xmm13
L2221:
  movsd  (%rdx),%xmm1
  movsd  (%r14,%rax,8),%xmm0
  movapd %xmm1,%xmm14
  mulsd  %xmm0,%xmm14
  addsd  %xmm14,%xmm11
  mulsd  (%r12,%rax,8),%xmm1
  addsd  %xmm1,%xmm12
  mulsd  (%rcx),%xmm0
  addsd  %xmm0,%xmm13
  mov    %rax,%rsi
  add    $0x1,%rax
  add    %r13,%rdx
  add    %r8,%rcx
  cmp    %rbx,%rsi
  jne    L2221
L226:
  movapd %xmm11,%xmm0
  mulsd  %xmm2,%xmm0
  addsd  %xmm12,%xmm0
  mulsd  %xmm11,%xmm0
  movsd  %xmm0,-0x8(%rbp,%r9,8)
  movsd  %xmm13,-0x8(%r15,%r9,8)
  mov    0x8(%rsp),%rax
  movsd  %xmm11,-0x8(%rax,%r9,8)
  add    $0x1,%r9
  add    $0x8,%r10
  add    $0x8,%r11
  cmp    %rdi,%r9
  je     L2178
L3328:
  pxor   %xmm12,%xmm12
  movapd %xmm12,%xmm11
  movapd %xmm12,%xmm13
  cmpl   $0x0,0x18(%rsp)
  jg     L1609
  jmp    L226
L2178:
  mov    0x60(%rsp),%r13
  mov    0x68(%rsp),%rsi
L2360:
  cmpl   $0x0,0xc8(%rsp)
  jle    L3277
  mov    0x1c(%rsp),%r10d
  mov    %r10d,%r9d
  pxor   %xmm14,%xmm14
  mov    $0x1,%r8d
  mov    0x58(%rsp),%r11
  mov    %rbx,0x60(%rsp)
  mov    0x108(%rsp),%ebx
  jmp    L1304
L802:
  movapd %xmm1,%xmm0
  mulsd  0x8(%rdx,%rax,8),%xmm0
  addsd  (%r15,%rax,8),%xmm0
  movsd  %xmm0,(%r15,%rax,8)
  mov    %rax,%rcx
  add    $0x1,%rax
  cmp    %rsi,%rcx
  jne    L802
L2963:
  add    $0x1,%r8d
  add    %r10d,%r9d
  cmp    %ebx,%r8d
  je     L890
L1304:
  test   %r10d,%r10d
  jle    L2963
  movslq %r9d,%rax
  lea    (%r11,%rax,8),%rdx
  mov    $0x1,%eax
  pxor   %xmm1,%xmm1
L2941:
  movsd  (%rdx,%rax,8),%xmm0
  mulsd  -0x8(%rbp,%rax,8),%xmm0
  addsd  %xmm0,%xmm1
  add    $0x1,%rax
  cmp    %rdi,%rax
  jne    L2941
  movapd %xmm1,%xmm0
  mulsd  %xmm1,%xmm0
  subsd  %xmm0,%xmm14
  mov    $0x0,%eax
  jmp    L802
L3277:
  pxor   %xmm14,%xmm14
  jmp    L3231
L890:
  mov    0x60(%rsp),%rbx
L3231:
  cmpl   $0x0,0x18(%rsp)
  jle    L932
  lea    0x2(%rbx),%r10
  mov    0x330(%rsp),%r9d
  mov    0x90(%rsp),%r8
  mov    $0x1,%ecx
  pxor   %xmm11,%xmm11
  movapd %xmm11,%xmm1
  movapd %xmm11,%xmm13
  mov    0xa8(%rsp),%r11
  mov    %rbx,0x60(%rsp)
  mov    0x1c(%rsp),%ebx
  mov    %r15,0x68(%rsp)
  mov    %rdi,0x70(%rsp)
  mov    0x20(%rsp),%rdi
L1696:
  movsd  -0x8(%r14,%rcx,8),%xmm15
  movapd %xmm15,%xmm0
  mulsd  %xmm15,%xmm0
  addsd  %xmm0,%xmm11
  test   %ebx,%ebx
  jle    L753
  movslq %r9d,%rax
  mov    0x10(%rsp),%rdx
  lea    (%rdx,%rax,8),%r15
  mov    $0x0,%eax
  pxor   %xmm0,%xmm0
L1123:
  movsd  0x0(%rbp,%rax,8),%xmm12
  mulsd  0x8(%r15,%rax,8),%xmm12
  addsd  %xmm12,%xmm0
  mov    %rax,%rdx
  add    $0x1,%rax
  cmp    %rsi,%rdx
  jne    L1123
L1610:
  mulsd  %xmm0,%xmm15
  addsd  %xmm15,%xmm1
  mov    %r14,%rax
  mov    %r8,%rdx
L468:
  movsd  (%rdx),%xmm12
  mulsd  (%rax),%xmm12
  addsd  %xmm12,%xmm0
  add    %rdi,%rdx
  mov    %rax,%r15
  add    $0x8,%rax
  cmp    %r13,%r15
  jne    L468
  movsd  %xmm0,-0x8(%r11,%rcx,8)
  movsd  -0x8(%r14,%rcx,8),%xmm12
  mulsd  %xmm12,%xmm0
  addsd  %xmm0,%xmm1
  mulsd  -0x8(%r12,%rcx,8),%xmm12
  addsd  %xmm12,%xmm13
  add    $0x1,%rcx
  add    $0x8,%r8
  add    0x330(%rsp),%r9d
  cmp    %r10,%rcx
  jne    L1696
  mov    0x60(%rsp),%rbx
  mov    0x68(%rsp),%r15
  mov    0x70(%rsp),%rdi
L1390:
  movapd %xmm10,%xmm12
  addsd  %xmm13,%xmm12
  addsd  %xmm13,%xmm12
  movapd %xmm11,%xmm0
  mulsd  %xmm5,%xmm0
  addsd  %xmm0,%xmm12
  mulsd  %xmm11,%xmm12
  mulsd  %xmm13,%xmm13
  addsd  %xmm13,%xmm12
  addsd  %xmm14,%xmm12
  subsd  %xmm1,%xmm12
  mov    0xd0(%rsp),%rax
  movapd %xmm4,%xmm0
  addsd  (%rax),%xmm0
  movsd  %xmm0,(%rax)
  cmpl   $0x0,0x30(%rsp)
  jne    L42
  mov    0xd8(%rsp),%rax
  movsd  (%rax),%xmm0
  mulsd  %xmm0,%xmm0
  movapd %xmm6,%xmm9
  mulsd  %xmm12,%xmm9
  addsd  %xmm0,%xmm9
  comisd %xmm9,%xmm3
  jbe    L2355
  comisd %xmm8,%xmm3
  jbe    L1810
  cmpl   $0x0,0x18(%rsp)
  jle    L1589
  mov    $0x0,%eax
  mov    0x48(%rsp),%rcx
  mov    0x100(%rsp),%r8
L1400:
  movsd  (%r8,%rax,8),%xmm0
  movsd  %xmm0,(%rcx,%rax,8)
  subsd  (%r12,%rax,8),%xmm0
  movsd  %xmm0,(%r14,%rax,8)
  mov    %rax,%rdx
  add    $0x1,%rax
  cmp    %rbx,%rdx
  jne    L1400
L1589:
  movb   $0x1,0x98(%rsp)
  movapd %xmm7,%xmm3
L3175:
  cmpl   $0x0,0x1c(%rsp)
  jle    L2360
  mov    0x78(%rsp),%r11
  mov    0x40(%rsp),%r10
  mov    $0x1,%r9d
  mov    %r13,0x60(%rsp)
  mov    0x20(%rsp),%r8
  mov    0x28(%rsp),%r13
  mov    %rsi,0x68(%rsp)
  jmp    L3328
L753:
  pxor   %xmm0,%xmm0
  jmp    L1610
L932:
  pxor   %xmm11,%xmm11
  movapd %xmm11,%xmm1
  movapd %xmm11,%xmm13
  jmp    L1390
L2355:
  movsd  %xmm12,0x68(%rsp)
  movsd  %xmm9,0x60(%rsp)
  cmpb   $0x0,0x98(%rsp)
  je     L2944
  movsd  %xmm3,0x278(%rsp)
L2944:
  movsd  %xmm11,0x268(%rsp)
L1457:
  mulsd  D130(%rip),%xmm0
  comisd 0x60(%rsp),%xmm0
  jb     L518
  mov    0x17c(%rsp),%eax
  cmp    %eax,0x260(%rsp)
  jle    L3390
L3142:
  mov    0x260(%rsp),%eax
  mov    %eax,0x178(%rsp)
  push   0x210(%rsp)
  push   0x168(%rsp)
  push   %rbp
  push   %r15
  lea    0x284(%rsp),%rax
  push   %rax
  lea    0x288(%rsp),%rax
  push   %rax
  push   0x120(%rsp)
  push   0x120(%rsp)
  mov    0x370(%rsp),%eax
  push   %rax
  push   0x198(%rsp)
  push   0xc8(%rsp)
  push   0xd8(%rsp)
  push   0x118(%rsp)
  push   0x118(%rsp)
  push   %r12
  push   0x250(%rsp)
  push   0xc0(%rsp)
  push   0x218(%rsp)
  mov    0x370(%rsp),%eax
  push   %rax
  mov    0x370(%rsp),%eax
  push   %rax
  movsd  0xd8(%rsp),%xmm0
  mov    0x2a0(%rsp),%r9
  mov    0x270(%rsp),%r8
  mov    0x260(%rsp),%rcx
  mov    0x258(%rsp),%rdx
  mov    0xbc(%rsp),%esi
  mov    0xb8(%rsp),%edi
  call   <rescue_@plt>
  mov    0x304(%rsp),%eax
  add    $0xa0,%rsp
  pxor   %xmm7,%xmm7
  movsd  %xmm7,0xe0(%rsp)
  cmp    0x128(%rsp),%eax
  jne    L2081
L3363:
  mov    0x260(%rsp),%eax
  mov    %eax,0x17c(%rsp)
  test   %eax,%eax
  js     L2498
  mov    0x178(%rsp),%edi
  cmp    %edi,0x17c(%rsp)
  jg     L2757
  cmpl   $0x0,0x30(%rsp)
  jg     L566
L2722:
  push   0x1e0(%rsp)
  push   0x140(%rsp)
  push   %rbp
  lea    0x290(%rsp),%rax
  push   %rax
  lea    0x290(%rsp),%rax
  push   %rax
  push   0x128(%rsp)
  push   0x78(%rsp)
  mov    0x104(%rsp),%eax
  push   %rax
  mov    0x2a4(%rsp),%eax
  push   %rax
  push   0x138(%rsp)
  push   0x138(%rsp)
  mov    0x388(%rsp),%eax
  push   %rax
  movsd  0x190(%rsp),%xmm0
  mov    0x1b0(%rsp),%r9
  mov    0xd8(%rsp),%r8
  mov    %r12,%rcx
  mov    0xa0(%rsp),%rdx
  mov    0x7c(%rsp),%esi
  mov    0x78(%rsp),%edi
  call   <altmov_@plt>
  add    $0x60,%rsp
  cmpl   $0x0,0x18(%rsp)
  jle    L701
L2110:
  mov    $0x1,%eax
  mov    0x18(%rsp),%edx
  mov    0x48(%rsp),%rcx
L3057:
  movsd  -0x8(%rcx,%rax,8),%xmm0
  subsd  -0x8(%r12,%rax,8),%xmm0
  movsd  %xmm0,-0x8(%r14,%rax,8)
  add    $0x1,%rax
  cmp    %eax,%edx
  jge    L3057
  jmp    L701
L1810:
  movsd  %xmm12,0x68(%rsp)
  movsd  %xmm9,0x60(%rsp)
  cmpb   $0x0,0x98(%rsp)
  je     L998
  movsd  %xmm3,0x278(%rsp)
L998:
  movsd  %xmm11,0x268(%rsp)
  jmp    L1457
L3390:
  mov    %r12,%rbx
  cmpl   $0x0,0x2d8(%rsp)
  jle    L1916
  lea    D554(%rip),%rdi
  call   <puts@plt>
  jmp    L1898
L42:
  movsd  %xmm12,0x68(%rsp)
  movsd  %xmm9,0x60(%rsp)
  cmpb   $0x0,0x98(%rsp)
  je     L3403
  movsd  %xmm3,0x278(%rsp)
L3403:
  movsd  %xmm11,0x268(%rsp)
  movsd  0x38(%rsp),%xmm5
  movapd %xmm5,%xmm6
  mulsd  %xmm5,%xmm6
  mov    0x1c(%rsp),%eax
  test   %eax,%eax
  jle    L2072
  lea    0x1(%rax),%r8d
  mov    0x158(%rsp),%rdi
  pxor   %xmm7,%xmm7
  movapd %xmm7,%xmm3
  movl   $0x0,0xcc(%rsp)
  mov    $0x1,%esi
  movsd  D348(%rip),%xmm4
  movapd %xmm4,%xmm5
  mov    0xc8(%rsp),%eax
  lea    0x1(%rax),%ecx
  mov    0x1c8(%rsp),%r11
  mov    0x28(%rsp),%r9
  mov    0x120(%rsp),%r10
  jmp    L1749
L1173:
  pxor   %xmm1,%xmm1
  jmp    L1315
L3082:
  pxor   %xmm1,%xmm1
  jmp    L1363
L2665:
  mulsd  %xmm1,%xmm8
  maxsd  %xmm7,%xmm8
  movapd %xmm8,%xmm7
L3014:
  add    $0x1,%esi
  add    $0x8,%rdi
  cmp    %r8d,%esi
  je     L1608
L1749:
  cmp    %esi,0x128(%rsp)
  je     L3014
  cmpl   $0x0,0xc8(%rsp)
  jle    L1173
  mov    0x58(%rsp),%rax
  lea    (%rax,%rdi,1),%rdx
  pxor   %xmm1,%xmm1
  mov    $0x1,%eax
L3380:
  movsd  (%rdx),%xmm0
  mulsd  %xmm0,%xmm0
  addsd  %xmm0,%xmm1
  add    $0x1,%eax
  add    %r9,%rdx
  cmp    %ecx,%eax
  jne    L3380
L1315:
  movsd  -0x8(%r11,%rdi,1),%xmm8
  mulsd  %xmm8,%xmm8
  mulsd  0x68(%rsp),%xmm1
  movapd %xmm1,%xmm2
  addsd  %xmm8,%xmm2
  cmpl   $0x0,0x18(%rsp)
  jle    L3082
  mov    0xa0(%rsp),%rax
  lea    (%rax,%rdi,1),%rdx
  mov    %r12,%rax
  pxor   %xmm1,%xmm1
L3220:
  movsd  (%rdx),%xmm0
  subsd  (%rax),%xmm0
  mulsd  %xmm0,%xmm0
  addsd  %xmm0,%xmm1
  add    %r9,%rdx
  add    $0x8,%rax
  cmp    %r10,%rax
  jne    L3220
L1363:
  divsd  %xmm6,%xmm1
  mulsd  %xmm1,%xmm1
  movapd %xmm1,%xmm0
  cmpnltsd %xmm4,%xmm0
  andpd  %xmm0,%xmm1
  andnpd %xmm5,%xmm0
  orpd   %xmm0,%xmm1
  movapd %xmm1,%xmm0
  mulsd  %xmm2,%xmm0
  comisd %xmm3,%xmm0
  jbe    L2665
  movapd %xmm0,%xmm3
  movsd  %xmm2,0x60(%rsp)
  mov    %esi,0xcc(%rsp)
  jmp    L2665
L1608:
  mulsd  D130(%rip),%xmm7
  comisd %xmm3,%xmm7
  jb     L518
L2834:
  mov    0x17c(%rsp),%eax
  cmp    %eax,0x260(%rsp)
  jg     L3142
  mov    %r12,%rbx
  cmpl   $0x0,0x2d8(%rsp)
  jle    L1916
  lea    D554(%rip),%rdi
  call   <puts@plt>
  jmp    L1898
L2072:
  movl   $0x0,0xcc(%rsp)
  jmp    L2834
L1748:
  lea    0x1(%rax),%r11
  cmp    %rbx,%rax
  je     L911
  mov    %r11,%rax
L3084:
  movsd  (%r10,%rax,8),%xmm1
  addsd  (%rdx,%rax,8),%xmm1
  movsd  %xmm1,(%rcx,%rax,8)
  movsd  (%r8,%rax,8),%xmm0
  maxsd  %xmm1,%xmm0
  movsd  %xmm0,(%rcx,%rax,8)
  movsd  (%r9,%rax,8),%xmm1
  minsd  %xmm0,%xmm1
  movsd  %xmm1,(%rcx,%rax,8)
  movsd  (%rdx,%rax,8),%xmm0
  ucomisd (%rsi,%rax,8),%xmm0
  jp     L1816
  jne    L1816
  movsd  (%r8,%rax,8),%xmm0
  movsd  %xmm0,(%rcx,%rax,8)
L1816:
  movsd  (%rdx,%rax,8),%xmm0
  ucomisd (%rdi,%rax,8),%xmm0
  jp     L1748
  jne    L1748
  movsd  (%r9,%rax,8),%xmm0
  movsd  %xmm0,(%rcx,%rax,8)
  jmp    L1748
L911:
  mov    0x260(%rsp),%eax
  cmp    0x2e0(%rsp),%eax
  jge    L522
  add    $0x1,%eax
  mov    %eax,0x260(%rsp)
  mov    0x148(%rsp),%rdx
  mov    0x18(%rsp),%esi
  mov    0x200(%rsp),%rdi
  mov    0x1d0(%rsp),%rax
  call   *%rax
  movsd  %xmm0,0xc0(%rsp)
  cmpl   $0x3,0x2d8(%rsp)
  je     L3093
  cmpl   $0xffffffff,0x30(%rsp)
  je     L247
  movslq 0x264(%rsp),%rax
  mov    0xf8(%rsp),%rdi
  movsd  (%rdi,%rax,8),%xmm5
  movsd  %xmm5,0x70(%rsp)
  cmpl   $0x0,0x18(%rsp)
  jle    L877
L2565:
  mov    0x18(%rsp),%eax
  lea    0x1(%rax),%r8d
  mov    $0x2,%ecx
  pxor   %xmm1,%xmm1
  mov    $0x0,%edi
  mov    $0x1,%edx
  movsd  D130(%rip),%xmm2
  mov    0xb0(%rsp),%r9
  mov    0xb8(%rsp),%r10
  jmp    L2417
L522:
  mov    %r12,%rbx
  cmpl   $0x0,0x2d8(%rsp)
  jle    L1916
  lea    D273(%rip),%rdi
  call   <puts@plt>
  jmp    L1898
L3093:
  mov    0x260(%rsp),%esi
  lea    D428(%rip),%rdi
  mov    $0x1,%eax
  call   <printf@plt>
  cmpl   $0x0,0x18(%rsp)
  jle    L3411
  mov    $0x1,%eax
  mov    %rbx,0x70(%rsp)
  mov    %rax,%rbx
L1956:
  mov    0x148(%rsp),%rax
  movsd  -0x8(%rax,%rbx,8),%xmm0
  lea    D86(%rip),%rdi
  mov    $0x1,%eax
  call   <printf@plt>
  add    $0x1,%rbx
  cmp    %ebx,0x18(%rsp)
  jge    L1956
  mov    0x70(%rsp),%rbx
  cmpl   $0xffffffff,0x30(%rsp)
  je     L543
  movslq 0x264(%rsp),%rax
  mov    0xf8(%rsp),%rdi
  movsd  (%rdi,%rax,8),%xmm5
  movsd  %xmm5,0x70(%rsp)
  jmp    L2565
L612:
  mulsd  -0x8(%rsi,%rax,8),%xmm0
  addsd  %xmm0,%xmm1
  add    $0x1,%rax
  cmp    %rcx,%rax
  je     L1260
L2746:
  movapd %xmm3,%xmm0
  mulsd  -0x8(%r14,%rax,8),%xmm0
  cmp    %eax,%edx
  jne    L612
  mulsd  %xmm2,%xmm0
  jmp    L612
L1260:
  add    %edx,%edi
L410:
  add    $0x1,%edx
  add    $0x1,%rcx
  cmp    %r8d,%edx
  je     L558
L2417:
  movsd  -0x10(%r14,%rcx,8),%xmm3
  movapd %xmm3,%xmm0
  mulsd  -0x10(%r9,%rcx,8),%xmm0
  addsd  %xmm0,%xmm1
  test   %edx,%edx
  jle    L410
  movslq %edi,%rax
  lea    (%r10,%rax,8),%rsi
  mov    $0x1,%eax
  jmp    L2746
L558:
  movsd  %xmm1,0x98(%rsp)
L2699:
  mov    0x1c(%rsp),%eax
  test   %eax,%eax
  jle    L263
  lea    -0x1(%rax),%ecx
  mov    $0x0,%eax
  movsd  D130(%rip),%xmm2
  movsd  0x98(%rsp),%xmm3
  mov    0x8(%rsp),%rsi
  mov    0x80(%rsp),%rdi
L2101:
  movsd  (%rsi,%rax,8),%xmm0
  movapd %xmm2,%xmm1
  mulsd  (%rdi,%rax,8),%xmm1
  mulsd  %xmm0,%xmm0
  mulsd  %xmm1,%xmm0
  addsd  %xmm0,%xmm3
  mov    %rax,%rdx
  add    $0x1,%rax
  cmp    %rcx,%rdx
  jne    L2101
  movsd  %xmm3,0x98(%rsp)
L263:
  movsd  0xc0(%rsp),%xmm0
  subsd  0x70(%rsp),%xmm0
  movapd %xmm0,%xmm5
  movsd  0x98(%rsp),%xmm7
  subsd  %xmm7,%xmm5
  movsd  %xmm5,0xd8(%rsp)
  andpd  D218(%rip),%xmm5
  movsd  %xmm5,0xd0(%rsp)
  movsd  0x88(%rsp),%xmm5
  comisd 0x50(%rsp),%xmm5
  mov    0x178(%rsp),%eax
  cmova  0x260(%rsp),%eax
  mov    %eax,0x178(%rsp)
  cmpl   $0x0,0x30(%rsp)
  jle    L2736
  comisd D15(%rip),%xmm7
  jae    L2528
  divsd  0x98(%rsp),%xmm0
  movapd %xmm0,%xmm5
  movsd  %xmm0,0x180(%rsp)
  movsd  D417(%rip),%xmm0
  comisd %xmm5,%xmm0
  jb     L1289
  movsd  0x38(%rsp),%xmm5
  mulsd  D130(%rip),%xmm5
  movsd  0x88(%rsp),%xmm7
  minsd  %xmm5,%xmm7
  movsd  %xmm7,0x38(%rsp)
L1183:
  movsd  0x50(%rsp),%xmm7
  movapd %xmm7,%xmm1
  mulsd  D502(%rip),%xmm1
  movsd  0x38(%rsp),%xmm5
  movapd %xmm5,%xmm0
  cmpnlesd %xmm1,%xmm0
  andpd  %xmm0,%xmm5
  andnpd %xmm7,%xmm0
  orpd   %xmm5,%xmm0
  movsd  %xmm0,0x38(%rsp)
  movsd  0x70(%rsp),%xmm5
  comisd 0xc0(%rsp),%xmm5
  ja     L1242
L2736:
  push   %rbp
  mov    0xd4(%rsp),%eax
  sub    $0x1,%eax
  push   %rax
  movsd  0x70(%rsp),%xmm1
  movsd  0x78(%rsp),%xmm0
  mov    %r15,%r9
  mov    0x340(%rsp),%r8d
  mov    0x160(%rsp),%rcx
  mov    0x88(%rsp),%rdx
  mov    0x2c(%rsp),%esi
  mov    0x28(%rsp),%edi
  call   <update_@plt>
  movslq 0xdc(%rsp),%r9
  mov    0x90(%rsp),%rsi
  lea    -0x8(%rsi,%r9,8),%rax
  movsd  (%rax),%xmm2
  movq   $0x0,(%rax)
  add    $0x10,%rsp
  cmpl   $0x0,0x18(%rsp)
  jle    L180
  mov    0x140(%rsp),%rax
  add    %r9,%rax
  mov    0xa0(%rsp),%rdi
  lea    (%rdi,%rax,8),%rax
  lea    0x2(%rbx),%r10
  mov    %rax,%rdi
  mov    $0x1,%esi
  mov    $0x0,%r8d
  mov    0xb8(%rsp),%rdx
  lea    0x8(%rdx),%r11
  mov    %r9,0x108(%rsp)
  mov    %r13,0x128(%rsp)
  mov    0x28(%rsp),%rcx
  mov    %rbx,0x168(%rsp)
  mov    %rax,%rbx
  mov    %rdx,%r13
  jmp    L1441
L877:
  pxor   %xmm7,%xmm7
  movsd  %xmm7,0x98(%rsp)
  jmp    L2699
L2528:
  mov    %r12,%rbx
  cmpl   $0x0,0x2d8(%rsp)
  jle    L1916
  lea    D501(%rip),%rdi
  call   <puts@plt>
  jmp    L1898
L1289:
  movsd  D360(%rip),%xmm0
  comisd 0x180(%rsp),%xmm0
  jb     L713
  movsd  0x38(%rsp),%xmm5
  mulsd  D130(%rip),%xmm5
  movsd  0x88(%rsp),%xmm7
  maxsd  %xmm5,%xmm7
  movsd  %xmm7,0x38(%rsp)
  jmp    L1183
L713:
  movsd  0x38(%rsp),%xmm7
  mulsd  D130(%rip),%xmm7
  movsd  0x88(%rsp),%xmm5
  movapd %xmm5,%xmm0
  addsd  %xmm5,%xmm0
  maxsd  %xmm7,%xmm0
  movsd  %xmm0,0x38(%rsp)
  jmp    L1183
L1242:
  movapd %xmm0,%xmm7
  mulsd  %xmm0,%xmm7
  mov    0x1c(%rsp),%eax
  test   %eax,%eax
  jle    L2736
  lea    0x1(%rax),%r9d
  mov    0x158(%rsp),%rsi
  movsd  0x60(%rsp),%xmm5
  pxor   %xmm2,%xmm2
  movapd %xmm2,%xmm3
  mov    $0x0,%r8d
  mov    $0x1,%edi
  mov    0xc8(%rsp),%eax
  lea    0x1(%rax),%ecx
  movsd  D348(%rip),%xmm4
  movapd %xmm4,%xmm6
  mov    0x230(%rsp),%r11
  mov    0x28(%rsp),%r10
  jmp    L2850
L2888:
  pxor   %xmm1,%xmm1
  jmp    L2124
L1206:
  mulsd  %xmm1,%xmm9
  maxsd  %xmm2,%xmm9
  movapd %xmm9,%xmm2
  add    $0x1,%edi
  add    $0x8,%rsi
  cmp    %r9d,%edi
  je     L3210
L2850:
  pxor   %xmm1,%xmm1
  cmpl   $0x0,0xc8(%rsp)
  jle    L3061
  mov    0x58(%rsp),%rax
  lea    (%rax,%rsi,1),%rdx
  pxor   %xmm1,%xmm1
  mov    $0x1,%eax
L2455:
  movsd  (%rdx),%xmm0
  mulsd  %xmm0,%xmm0
  addsd  %xmm0,%xmm1
  add    $0x1,%eax
  add    %r10,%rdx
  cmp    %ecx,%eax
  jne    L2455
L3061:
  mov    0x1c8(%rsp),%rax
  movsd  -0x8(%rax,%rsi,1),%xmm9
  mulsd  %xmm9,%xmm9
  mulsd  0x68(%rsp),%xmm1
  addsd  %xmm9,%xmm1
  movapd %xmm1,%xmm8
  cmpl   $0x0,0x18(%rsp)
  jle    L2888
  mov    0xa0(%rsp),%rax
  lea    (%rax,%rsi,1),%rdx
  mov    0x48(%rsp),%rax
  pxor   %xmm1,%xmm1
L1964:
  movsd  (%rdx),%xmm0
  subsd  (%rax),%xmm0
  mulsd  %xmm0,%xmm0
  addsd  %xmm0,%xmm1
  add    %r10,%rdx
  add    $0x8,%rax
  cmp    %r11,%rax
  jne    L1964
L2124:
  divsd  %xmm7,%xmm1
  mulsd  %xmm1,%xmm1
  movapd %xmm1,%xmm0
  cmpnltsd %xmm4,%xmm0
  andpd  %xmm0,%xmm1
  andnpd %xmm6,%xmm0
  orpd   %xmm0,%xmm1
  movapd %xmm1,%xmm0
  mulsd  %xmm8,%xmm0
  comisd %xmm3,%xmm0
  jbe    L1206
  movapd %xmm0,%xmm3
  movapd %xmm8,%xmm5
  mov    %edi,%r8d
  jmp    L1206
L3210:
  mulsd  D130(%rip),%xmm2
  movapd %xmm3,%xmm0
  cmplesd %xmm2,%xmm0
  movsd  0x60(%rsp),%xmm1
  andpd  %xmm0,%xmm1
  andnpd %xmm5,%xmm0
  orpd   %xmm1,%xmm0
  movsd  %xmm0,0x60(%rsp)
  comisd %xmm3,%xmm2
  cmovae 0xcc(%rsp),%r8d
  mov    %r8d,0xcc(%rsp)
  jmp    L2736
L27:
  add    $0x1,%rsi
  add    %rcx,%rdi
  cmp    %r10,%rsi
  je     L218
L1441:
  movapd %xmm2,%xmm1
  mulsd  (%rdi),%xmm1
  test   %esi,%esi
  jle    L27
  movslq %r8d,%rdx
  lea    0x0(%r13,%rdx,8),%rax
  lea    -0x1(%rdx,%rsi,1),%rdx
  lea    (%r11,%rdx,8),%r9
  mov    %rbx,%rdx
L1124:
  movapd %xmm1,%xmm0
  mulsd  (%rdx),%xmm0
  addsd  (%rax),%xmm0
  movsd  %xmm0,(%rax)
  add    $0x8,%rax
  add    %rcx,%rdx
  cmp    %r9,%rax
  jne    L1124
  add    %esi,%r8d
  jmp    L27
L180:
  cmpl   $0x0,0xc8(%rsp)
  jg     L2390
  mov    0xf8(%rsp),%rax
  movsd  0xc0(%rsp),%xmm7
  movsd  %xmm7,(%rax,%r9,8)
L301:
  cmpl   $0x0,0x1c(%rsp)
  jg     L167
L1100:
  movsd  0x70(%rsp),%xmm7
  comisd 0xc0(%rsp),%xmm7
  jbe    L1492
  mov    0xcc(%rsp),%eax
  mov    %eax,0x264(%rsp)
  pxor   %xmm5,%xmm5
  movsd  %xmm5,0xe0(%rsp)
  jmp    L1572
L775:
  add    $0x1,%r8d
  add    0x28(%rsp),%rdi
  cmp    %r8d,%r11d
  jl     L1579
L3292:
  mov    %rdi,%r10
  movapd %xmm2,%xmm1
  mulsd  (%rdi,%r9,8),%xmm1
  test   %r13d,%r13d
  jle    L775
  mov    $0x0,%eax
L1633:
  movapd %xmm1,%xmm0
  mulsd  0x8(%r10,%rax,8),%xmm0
  addsd  (%rdx,%rax,8),%xmm0
  movsd  %xmm0,(%rdx,%rax,8)
  mov    %rax,%rcx
  add    $0x1,%rax
  cmp    %rsi,%rcx
  jne    L1633
  jmp    L775
L1579:
  mov    0x108(%rsp),%r13
  mov    0xf8(%rsp),%rax
  movsd  0xc0(%rsp),%xmm5
  movsd  %xmm5,(%rax,%r9,8)
  cmpl   $0x0,0x18(%rsp)
  jle    L301
L2329:
  mov    0x140(%rsp),%rax
  add    %r9,%rax
  mov    0xa0(%rsp),%rdi
  lea    (%rdi,%rax,8),%rcx
  mov    0x218(%rsp),%rax
  add    %r9,%rax
  mov    0x10(%rsp),%rdi
  lea    (%rdi,%rax,8),%rdx
  mov    $0x1,%eax
  mov    0x18(%rsp),%esi
  mov    0x48(%rsp),%rdi
L1624:
  movsd  -0x8(%rdi,%rax,8),%xmm0
  movsd  %xmm0,(%rcx)
  movsd  (%rdx),%xmm0
  movsd  %xmm0,-0x8(%rbp,%rax,8)
  add    $0x1,%rax
  add    0x28(%rsp),%rcx
  add    0x20(%rsp),%rdx
  cmp    %eax,%esi
  jge    L1624
  cmpl   $0x0,0x1c(%rsp)
  jle    L2103
L167:
  mov    $0x1,%edx
  sub    %r9,%rdx
  add    0x140(%rsp),%r9
  mov    0x58(%rsp),%rax
  lea    (%rax,%r9,8),%r8
  mov    0x40(%rsp),%rsi
  mov    $0x1,%edi
  mov    0xc8(%rsp),%eax
  lea    0x1(%rax),%ecx
  mov    0x220(%rsp),%r10
  mov    %r13,0x108(%rsp)
  mov    0x28(%rsp),%r9
  mov    %rbx,0x128(%rsp)
  mov    %eax,%ebx
  mov    0x120(%rsp),%r11
  mov    0x18(%rsp),%r13d
  mov    %r14,0x168(%rsp)
  mov    0x1c(%rsp),%r14d
  mov    %r15,0x248(%rsp)
  jmp    L544
L1069:
  add    $0x1,%edi
  add    $0x8,%rsi
  add    $0x1,%rdx
  cmp    %edi,%r14d
  jl     L624
L544:
  pxor   %xmm2,%xmm2
  test   %ebx,%ebx
  jle    L2620
  mov    %r8,%rax
  pxor   %xmm2,%xmm2
  mov    $0x1,%r15d
L2175:
  movsd  (%rax),%xmm0
  mulsd  (%rax,%rdx,8),%xmm0
  addsd  %xmm0,%xmm2
  add    $0x1,%r15d
  add    %r9,%rax
  cmp    %ecx,%r15d
  jne    L2175
L2620:
  test   %r13d,%r13d
  jle    L1069
  mov    %r12,%rax
  mov    %rsi,%r15
  pxor   %xmm1,%xmm1
L1175:
  movsd  (%r15),%xmm0
  mulsd  (%rax),%xmm0
  addsd  %xmm0,%xmm1
  add    %r9,%r15
  add    $0x8,%rax
  cmp    %r11,%rax
  jne    L1175
  mulsd  %xmm2,%xmm1
  mov    %rsi,%r15
  mov    %rbp,%rax
L569:
  movapd %xmm1,%xmm0
  mulsd  (%r15),%xmm0
  addsd  (%rax),%xmm0
  movsd  %xmm0,(%rax)
  add    $0x8,%rax
  add    %r9,%r15
  cmp    %r10,%rax
  jne    L569
  jmp    L1069
L624:
  mov    0x108(%rsp),%r13
  mov    0x128(%rsp),%rbx
  mov    0x168(%rsp),%r14
  mov    0x248(%rsp),%r15
  cmpl   $0x0,0x18(%rsp)
  jle    L1100
L2103:
  mov    $0x1,%eax
  movsd  0xd8(%rsp),%xmm1
  mov    0x18(%rsp),%ecx
  mov    0xb0(%rsp),%rdx
L3381:
  movapd %xmm1,%xmm0
  mulsd  -0x8(%rbp,%rax,8),%xmm0
  addsd  -0x8(%rdx,%rax,8),%xmm0
  movsd  %xmm0,-0x8(%rdx,%rax,8)
  add    $0x1,%rax
  cmp    %eax,%ecx
  jge    L3381
  movsd  0x70(%rsp),%xmm7
  comisd 0xc0(%rsp),%xmm7
  ja     L1702
L1492:
  cmpl   $0x0,0x30(%rsp)
  jg     L3280
L1446:
  cmpl   $0x0,0x30(%rsp)
  jne    L1755
  movsd  0x118(%rsp),%xmm5
  movsd  %xmm5,0x168(%rsp)
  movsd  0x110(%rsp),%xmm7
  movsd  %xmm7,0x118(%rsp)
  movsd  0xd0(%rsp),%xmm5
  movsd  %xmm5,0x110(%rsp)
  jmp    L566
L1702:
  mov    0xcc(%rsp),%eax
  mov    %eax,0x264(%rsp)
  cmpl   $0x0,0x18(%rsp)
  jle    L966
  lea    0x2(%rbx),%r9
  mov    $0x1,%edx
  pxor   %xmm7,%xmm7
  mov    $0x0,%edi
  mov    $0x1,%r8d
  movapd %xmm7,%xmm1
  mov    0xb0(%rsp),%rcx
  jmp    L2113
L2466:
  movsd  -0x8(%r10,%rax,8),%xmm0
  mulsd  -0x8(%r14,%rdx,8),%xmm0
  addsd  -0x8(%rcx,%rax,8),%xmm0
  movsd  %xmm0,-0x8(%rcx,%rax,8)
  lea    0x1(%rax),%rsi
  cmp    %rdx,%rax
  je     L2709
  mov    %rsi,%rax
L2078:
  cmp    %eax,%r11d
  jle    L2466
  movsd  -0x8(%r10,%rax,8),%xmm0
  mulsd  -0x8(%r14,%rax,8),%xmm0
  addsd  -0x8(%rcx,%rdx,8),%xmm0
  movsd  %xmm0,-0x8(%rcx,%rdx,8)
  jmp    L2466
L2709:
  add    %edx,%edi
L997:
  add    $0x1,%rdx
  cmp    %r9,%rdx
  je     L2410
L2113:
  mov    0x48(%rsp),%rax
  movsd  -0x8(%rax,%rdx,8),%xmm0
  movsd  %xmm0,-0x8(%r12,%rdx,8)
  mulsd  %xmm0,%xmm0
  addsd  %xmm0,%xmm1
  mov    %edx,%r11d
  test   %edx,%edx
  jle    L997
  movslq %edi,%rax
  mov    0xb8(%rsp),%rsi
  lea    (%rsi,%rax,8),%r10
  mov    %r8,%rax
  jmp    L2078
L2410:
  movsd  %xmm1,0xe0(%rsp)
L1572:
  mov    0x1c(%rsp),%eax
  test   %eax,%eax
  jle    L1503
  lea    -0x1(%rax),%edi
  add    $0x2,%rdi
  mov    0x40(%rsp),%rsi
  mov    $0x1,%ecx
  mov    0x1f8(%rsp),%r10
  mov    0x28(%rsp),%r8
  mov    0x80(%rsp),%r11
  jmp    L1754
L966:
  pxor   %xmm5,%xmm5
  movsd  %xmm5,0xe0(%rsp)
  jmp    L1572
L1938:
  movapd %xmm1,%xmm0
  mulsd  (%rdx),%xmm0
  addsd  (%rax),%xmm0
  movsd  %xmm0,(%rax)
  add    $0x8,%rax
  add    %r8,%rdx
  cmp    %r10,%rax
  jne    L1938
L1936:
  add    $0x1,%rcx
  add    $0x8,%rsi
  cmp    %rdi,%rcx
  je     L1266
L1754:
  mov    %r14,%rax
  mov    %rsi,%rdx
  pxor   %xmm1,%xmm1
  cmpl   $0x0,0x18(%rsp)
  jle    L1936
L1373:
  movsd  (%rdx),%xmm0
  mulsd  (%rax),%xmm0
  addsd  %xmm0,%xmm1
  add    %r8,%rdx
  mov    %rax,%r9
  add    $0x8,%rax
  cmp    %r13,%r9
  jne    L1373
  mulsd  -0x8(%r11,%rcx,8),%xmm1
  mov    %rsi,%rdx
  mov    0xb0(%rsp),%rax
  jmp    L1938
L3280:
  cmpl   $0x0,0x1c(%rsp)
  jle    L2446
L1333:
  movslq 0x264(%rsp),%rax
  mov    0xf8(%rsp),%rdi
  lea    (%rdi,%rax,8),%rdx
  mov    $0x1,%eax
  mov    0x1c(%rsp),%ecx
  mov    0x1d8(%rsp),%rsi
L3123:
  movsd  -0x8(%rsi,%rax,8),%xmm0
  subsd  (%rdx),%xmm0
  movsd  %xmm0,-0x8(%r15,%rax,8)
  movq   $0x0,-0x8(%rbp,%rax,8)
  add    $0x1,%rax
  cmp    %eax,%ecx
  jge    L3123
  cmpl   $0x0,0xc8(%rsp)
  jle    L2476
L1307:
  mov    0xc8(%rsp),%eax
  lea    0x1(%rax),%r9d
  mov    0x1c(%rsp),%r11d
  mov    %r11d,%r8d
  mov    $0x1,%edi
  lea    -0x1(%r11),%ecx
  lea    0x2(%rcx),%rsi
  jmp    L2527
L2959:
  movslq %r8d,%rax
  mov    0x58(%rsp),%rdx
  lea    (%rdx,%rax,8),%rdx
  mov    $0x1,%eax
  pxor   %xmm1,%xmm1
L1531:
  movsd  (%rdx,%rax,8),%xmm0
  mulsd  -0x8(%r15,%rax,8),%xmm0
  addsd  %xmm0,%xmm1
  add    $0x1,%rax
  cmp    %rax,%rsi
  jne    L1531
  mov    $0x0,%eax
L1711:
  movapd %xmm1,%xmm0
  mulsd  0x8(%rdx,%rax,8),%xmm0
  addsd  0x0(%rbp,%rax,8),%xmm0
  movsd  %xmm0,0x0(%rbp,%rax,8)
  mov    %rax,%r10
  add    $0x1,%rax
  cmp    %r10,%rcx
  jne    L1711
L276:
  add    $0x1,%edi
  add    %r11d,%r8d
  cmp    %r9d,%edi
  je     L2476
L2527:
  test   %r11d,%r11d
  jg     L2959
  jmp    L276
L2476:
  mov    0x1c(%rsp),%eax
  test   %eax,%eax
  jle    L39
  lea    -0x1(%rax),%edi
  add    $0x2,%rdi
  mov    0x40(%rsp),%rsi
  mov    $0x1,%ecx
  mov    0x8(%rsp),%r10
  mov    0x28(%rsp),%r8
  mov    0x120(%rsp),%r9
  mov    0x18(%rsp),%r11d
  jmp    L1412
L1287:
  mov    %r12,%rax
  mov    %rsi,%rdx
  pxor   %xmm1,%xmm1
L52:
  movsd  (%rdx),%xmm0
  mulsd  (%rax),%xmm0
  addsd  %xmm0,%xmm1
  add    %r8,%rdx
  add    $0x8,%rax
  cmp    %r9,%rax
  jne    L52
L885:
  movsd  -0x8(%rbp,%rcx,8),%xmm0
  movsd  %xmm0,-0x8(%r10,%rcx,8)
  mulsd  %xmm1,%xmm0
  movsd  %xmm0,-0x8(%rbp,%rcx,8)
  add    $0x1,%rcx
  add    $0x8,%rsi
  cmp    %rcx,%rdi
  je     L39
L1412:
  pxor   %xmm1,%xmm1
  test   %r11d,%r11d
  jg     L1287
  jmp    L885
L1415:
  mulsd  %xmm1,%xmm1
  addsd  %xmm1,%xmm6
  pxor   %xmm1,%xmm1
  cmpltsd %xmm0,%xmm1
  andnpd %xmm0,%xmm1
  mulsd  %xmm0,%xmm0
  addsd  %xmm0,%xmm2
L97:
  mov    0xa8(%rsp),%rax
  movsd  %xmm1,(%rax,%rdi,8)
  lea    0x1(%rdi),%rax
  add    0x330(%rsp),%r8d
  add    0x1c(%rsp),%r9d
  cmp    %rbx,%rdi
  je     L3296
  mov    %rax,%rdi
L1814:
  pxor   %xmm0,%xmm0
  cmpl   $0x0,0x1c(%rsp)
  jle    L2368
  movslq %r8d,%rax
  mov    0x10(%rsp),%rsi
  lea    (%rsi,%rax,8),%rsi
  movslq %r9d,%rax
  mov    0xa0(%rsp),%rcx
  lea    (%rcx,%rax,8),%rcx
  mov    $0x1,%eax
  pxor   %xmm0,%xmm0
L2670:
  movsd  (%rsi,%rax,8),%xmm1
  mulsd  -0x8(%r15,%rax,8),%xmm1
  addsd  %xmm1,%xmm0
  movsd  (%rcx,%rax,8),%xmm1
  mulsd  -0x8(%rbp,%rax,8),%xmm1
  addsd  %xmm1,%xmm0
  add    $0x1,%rax
  cmp    %rdx,%rax
  jne    L2670
L2368:
  movsd  (%r12,%rdi,8),%xmm1
  ucomisd (%r10,%rdi,8),%xmm1
  jp     L3437
  jne    L3437
  movsd  (%r11,%rdi,8),%xmm1
  comisd D15(%rip),%xmm1
  jbe    L1415
  pxor   %xmm1,%xmm1
  jmp    L1415
L3437:
  mov    0xf0(%rsp),%rax
  ucomisd (%rax,%rdi,8),%xmm1
  jp     L1130
  jne    L1130
  movsd  (%r11,%rdi,8),%xmm1
  movapd %xmm1,%xmm7
  cmpnltsd %xmm3,%xmm7
  andpd  %xmm7,%xmm1
  andnpd %xmm4,%xmm7
  orpd   %xmm7,%xmm1
  mulsd  %xmm1,%xmm1
  addsd  %xmm1,%xmm6
  movapd %xmm0,%xmm1
  cmpltsd D15(%rip),%xmm1
  movapd %xmm5,%xmm7
  andpd  %xmm1,%xmm7
  andnpd %xmm0,%xmm1
  orpd   %xmm7,%xmm1
  mulsd  %xmm0,%xmm0
  addsd  %xmm0,%xmm2
  jmp    L97
L1130:
  movsd  (%r11,%rdi,8),%xmm1
  mulsd  %xmm1,%xmm1
  addsd  %xmm1,%xmm6
  movapd %xmm0,%xmm1
  mulsd  %xmm0,%xmm1
  addsd  %xmm1,%xmm2
  movapd %xmm0,%xmm1
  jmp    L97
L3296:
  mulsd  D492(%rip),%xmm2
  comisd %xmm6,%xmm2
  jbe    L1284
  movl   $0x0,0x208(%rsp)
L1755:
  movsd  0x98(%rsp),%xmm0
  mulsd  D417(%rip),%xmm0
  addsd  0x70(%rsp),%xmm0
  comisd 0xc0(%rsp),%xmm0
  jb     L1152
  movsd  0x118(%rsp),%xmm7
  movsd  %xmm7,0x168(%rsp)
  movsd  0x110(%rsp),%xmm5
  movsd  %xmm5,0x118(%rsp)
  movsd  0xd0(%rsp),%xmm7
  movsd  %xmm7,0x110(%rsp)
  jmp    L566
L1284:
  addl   $0x1,0x208(%rsp)
L485:
  cmpl   $0x2,0x208(%rsp)
  jle    L1755
  mov    0x20c(%rsp),%esi
  mov    0x1c(%rsp),%edi
  mov    $0x0,%eax
  call   <imax@plt>
  test   %eax,%eax
  jle    L1755
  mov    0x1c(%rsp),%edi
  lea    0x1(%rdi),%edx
  lea    0x1(%rax),%esi
  mov    $0x1,%eax
  mov    0x1f0(%rsp),%r8
  mov    0x1b0(%rsp),%r9
  jmp    L987
L3177:
  add    $0x1,%rax
  add    $0x1,%edx
  cmp    %rax,%rsi
  je     L2989
L987:
  mov    %eax,%ecx
  cmp    0x18(%rsp),%eax
  jg     L2189
  movslq %edx,%rdi
  movsd  (%r8,%rdi,8),%xmm0
  mov    0xb0(%rsp),%rdi
  movsd  %xmm0,-0x8(%rdi,%rax,8)
L2189:
  cmp    0x1c(%rsp),%ecx
  jg     L1822
  movslq %edx,%rdi
  movsd  (%r9,%rdi,8),%xmm0
  mov    0x80(%rsp),%rdi
  movsd  %xmm0,-0x8(%rdi,%rax,8)
L1822:
  cmp    0x20c(%rsp),%ecx
  jg     L3177
  mov    0xb8(%rsp),%rdi
  movq   $0x0,-0x8(%rdi,%rax,8)
  jmp    L3177
L2989:
  movl   $0x0,0x208(%rsp)
  jmp    L1755
L1152:
  movsd  0x38(%rsp),%xmm7
  movapd %xmm7,%xmm3
  addsd  %xmm7,%xmm3
  mulsd  %xmm3,%xmm3
  movsd  0x50(%rsp),%xmm0
  mulsd  D492(%rip),%xmm0
  mulsd  %xmm0,%xmm0
  comisd %xmm0,%xmm3
  ja     L299
  movapd %xmm0,%xmm3
  movsd  0x118(%rsp),%xmm5
  movsd  %xmm5,0x168(%rsp)
  movsd  0x110(%rsp),%xmm7
  movsd  %xmm7,0x118(%rsp)
  movsd  0xd0(%rsp),%xmm5
  movsd  %xmm5,0x110(%rsp)
  jmp    L1767
L1346:
  movl   $0xffffffff,0x30(%rsp)
  jmp    L1767
L1977:
  movl   $0xffffffff,0x30(%rsp)
L1767:
  mov    0x1c(%rsp),%eax
  test   %eax,%eax
  jle    L2454
  lea    0x1(%rax),%edi
  mov    0x40(%rsp),%rsi
  mov    $0x0,%r10d
  mov    $0x1,%ecx
  mov    0x28(%rsp),%r8
  mov    0x120(%rsp),%r9
  mov    0x18(%rsp),%r11d
L1334:
  pxor   %xmm1,%xmm1
  test   %r11d,%r11d
  jle    L2663
  mov    %r12,%rax
  mov    %rsi,%rdx
  pxor   %xmm1,%xmm1
L2467:
  movsd  (%rdx),%xmm0
  subsd  (%rax),%xmm0
  mulsd  %xmm0,%xmm0
  addsd  %xmm0,%xmm1
  add    %r8,%rdx
  add    $0x8,%rax
  cmp    %r9,%rax
  jne    L2467
L2663:
  comisd %xmm3,%xmm1
  maxsd  %xmm3,%xmm1
  movapd %xmm1,%xmm3
  cmova  %ecx,%r10d
  add    $0x1,%ecx
  add    $0x8,%rsi
  cmp    %edi,%ecx
  jne    L1334
  mov    %r10d,0xcc(%rsp)
  test   %r10d,%r10d
  jg     L1668
L2547:
  cmpl   $0xffffffff,0x30(%rsp)
  je     L1588
  movsd  0x180(%rsp),%xmm5
  comisd D15(%rip),%xmm5
  ja     L566
  movsd  0x38(%rsp),%xmm7
  maxsd  0x88(%rsp),%xmm7
  comisd 0x50(%rsp),%xmm7
  ja     L566
  movsd  0x50(%rsp),%xmm7
  comisd 0x188(%rsp),%xmm7
  jbe    L795
L2295:
  movsd  0x50(%rsp),%xmm7
  divsd  0x188(%rsp),%xmm7
  movsd  %xmm7,0x180(%rsp)
  movsd  D354(%rip),%xmm0
  comisd %xmm7,%xmm0
  jae    L2512
  movsd  D469(%rip),%xmm0
  comisd %xmm7,%xmm0
  jae    L2655
  movsd  0x50(%rsp),%xmm5
  mulsd  D417(%rip),%xmm5
  movsd  %xmm5,0x50(%rsp)
  jmp    L563
L299:
  movsd  0x118(%rsp),%xmm7
  movsd  %xmm7,0x168(%rsp)
  movsd  0x110(%rsp),%xmm5
  movsd  %xmm5,0x118(%rsp)
  movsd  0xd0(%rsp),%xmm7
  movsd  %xmm7,0x110(%rsp)
  jmp    L1767
L1668:
  pxor   %xmm0,%xmm0
  ucomisd %xmm1,%xmm0
  ja     L1031
  sqrtsd %xmm3,%xmm3
L2077:
  cmpl   $0xffffffff,0x30(%rsp)
  je     L1154
L791:
  mulsd  D417(%rip),%xmm3
  movsd  0x38(%rsp),%xmm5
  minsd  %xmm3,%xmm5
  movsd  %xmm5,0x130(%rsp)
L2041:
  movsd  0x50(%rsp),%xmm5
  maxsd  0x130(%rsp),%xmm5
  movsd  %xmm5,0x130(%rsp)
L652:
  movsd  0x130(%rsp),%xmm7
  movapd %xmm7,%xmm0
  mulsd  %xmm7,%xmm0
  movsd  %xmm0,0x268(%rsp)
  movl   $0x0,0x30(%rsp)
  jmp    L1784
L1031:
  movapd %xmm1,%xmm0
  call   <sqrt@plt>
  movapd %xmm0,%xmm3
  jmp    L2077
L1154:
  movsd  0x38(%rsp),%xmm5
  mulsd  D417(%rip),%xmm5
  movapd %xmm3,%xmm0
  mulsd  D130(%rip),%xmm0
  minsd  %xmm5,%xmm0
  movapd %xmm0,%xmm5
  movsd  %xmm0,0x38(%rsp)
  movsd  0x50(%rsp),%xmm0
  mulsd  D502(%rip),%xmm0
  comisd %xmm5,%xmm0
  jb     L791
  mulsd  D417(%rip),%xmm3
  movsd  %xmm3,0x130(%rsp)
  movsd  0x50(%rsp),%xmm5
  comisd %xmm5,%xmm3
  jbe    L2376
  movsd  0x50(%rsp),%xmm5
  movsd  %xmm5,0x38(%rsp)
  movsd  %xmm5,0x130(%rsp)
  jmp    L652
L2454:
  movl   $0x0,0xcc(%rsp)
  jmp    L2547
L2655:
  pxor   %xmm0,%xmm0
  movapd %xmm7,%xmm5
  ucomisd %xmm7,%xmm0
  ja     L1160
  sqrtsd %xmm5,%xmm5
  movapd %xmm5,%xmm0
L975:
  mulsd  0x188(%rsp),%xmm0
  movsd  %xmm0,0x50(%rsp)
  jmp    L563
L1160:
  movsd  0x180(%rsp),%xmm0
  call   <sqrt@plt>
  jmp    L975
L2512:
  movsd  0x188(%rsp),%xmm7
  movsd  %xmm7,0x50(%rsp)
L563:
  movsd  0x1a8(%rsp),%xmm7
  maxsd  0x50(%rsp),%xmm7
  movsd  %xmm7,0x38(%rsp)
  cmpl   $0x1,0x2d8(%rsp)
  jg     L1760
L943:
  mov    0x260(%rsp),%eax
  mov    %eax,0x178(%rsp)
  movl   $0x0,0x30(%rsp)
L566:
  lea    0x280(%rsp),%rax
  push   %rax
  lea    0x270(%rsp),%rax
  push   %rax
  push   0x1a8(%rsp)
  push   0x1b8(%rsp)
  push   0x180(%rsp)
  push   0x160(%rsp)
  push   %rbp
  push   %r14
  push   0x88(%rsp)
  push   0x138(%rsp)
  push   0x138(%rsp)
  push   0xd8(%rsp)
  movsd  0x98(%rsp),%xmm0
  mov    0x118(%rsp),%r9
  mov    0x110(%rsp),%r8
  mov    %r12,%rcx
  mov    0xa0(%rsp),%rdx
  mov    0x7c(%rsp),%esi
  mov    0x78(%rsp),%edi
  call   <trsbox_@plt>
  movsd  0x2c8(%rsp),%xmm0
  add    $0x60,%rsp
  pxor   %xmm7,%xmm7
  ucomisd %xmm0,%xmm7
  ja     L1203
  sqrtsd %xmm0,%xmm0
  movsd  %xmm0,0x88(%rsp)
L1261:
  movsd  0x38(%rsp),%xmm4
  minsd  0x88(%rsp),%xmm4
  movsd  %xmm4,0x88(%rsp)
  movsd  0x50(%rsp),%xmm7
  movapd %xmm7,%xmm5
  mulsd  D130(%rip),%xmm5
  movsd  %xmm5,0x1a8(%rsp)
  comisd %xmm4,%xmm5
  jbe    L2049
  movapd %xmm7,%xmm5
  movapd %xmm7,%xmm3
  mulsd  D492(%rip),%xmm3
  mulsd  %xmm3,%xmm3
  mov    0x178(%rsp),%eax
  add    $0x2,%eax
  cmp    0x260(%rsp),%eax
  jge    L1346
  movsd  0x118(%rsp),%xmm4
  maxsd  0x110(%rsp),%xmm4
  movsd  0x168(%rsp),%xmm7
  maxsd  %xmm4,%xmm7
  movapd %xmm7,%xmm4
  movapd %xmm5,%xmm1
  mulsd  D152(%rip),%xmm1
  mulsd  %xmm5,%xmm1
  movsd  0x280(%rsp),%xmm0
  comisd D15(%rip),%xmm0
  jbe    L1352
  mulsd  %xmm1,%xmm0
  comisd %xmm0,%xmm7
  ja     L1977
L1352:
  movsd  0x50(%rsp),%xmm6
  divsd  %xmm6,%xmm4
  mov    0x18(%rsp),%eax
  test   %eax,%eax
  jle    L1588
  mov    0x1c(%rsp),%ecx
  mov    %ecx,%edi
  mov    $0x1,%edx
  movsd  D130(%rip),%xmm5
  lea    -0x1(%rcx),%esi
  mov    %r13,0x30(%rsp)
  mov    %rbx,0x70(%rsp)
  mov    %eax,%r13d
  mov    %ecx,%ebx
  mov    %r12,0x98(%rsp)
  mov    0x80(%rsp),%r9
  mov    0xe8(%rsp),%r10
  mov    0xf0(%rsp),%r11
  mov    0x48(%rsp),%r12
  mov    %r14,0xd0(%rsp)
  mov    0xa0(%rsp),%r14
  mov    %r15,0xd8(%rsp)
  mov    0xb8(%rsp),%r15
  jmp    L2507
L1760:
  mov    0x260(%rsp),%esi
  movsd  0x50(%rsp),%xmm0
  lea    D548(%rip),%rdi
  mov    $0x1,%eax
  call   <printf@plt>
  movslq 0x264(%rsp),%rax
  mov    0xf8(%rsp),%rdi
  movsd  (%rdi,%rax,8),%xmm0
  lea    D467(%rip),%rdi
  mov    $0x1,%eax
  call   <printf@plt>
  cmpl   $0x0,0x18(%rsp)
  jle    L943
  mov    $0x1,%eax
  mov    %r13,0x30(%rsp)
  mov    %rbx,0x70(%rsp)
  mov    %rax,%rbx
  mov    0x190(%rsp),%r13
L274:
  movsd  -0x8(%r13,%rbx,8),%xmm0
  addsd  -0x8(%r12,%rbx,8),%xmm0
  lea    D86(%rip),%rdi
  mov    $0x1,%eax
  call   <printf@plt>
  add    $0x1,%rbx
  cmp    %ebx,0x18(%rsp)
  jge    L274
  mov    0x30(%rsp),%r13
  mov    0x70(%rsp),%rbx
  jmp    L943
L247:
  mov    %r12,%rbx
  movsd  0xc0(%rsp),%xmm7
  movsd  %xmm7,0x170(%rsp)
L1683:
  movslq 0x264(%rsp),%rax
  mov    0xf8(%rsp),%rdi
  lea    (%rdi,%rax,8),%rdx
  movsd  0x170(%rsp),%xmm5
  comisd (%rdx),%xmm5
  jb     L2200
  jmp    L1028
L543:
  mov    %r12,%rbx
  movsd  0xc0(%rsp),%xmm7
  movsd  %xmm7,0x170(%rsp)
  jmp    L1683
L1525:
  add    $0x1,%rax
  cmp    %rcx,%rax
  je     L1747
L3209:
  movsd  (%r11,%rax,8),%xmm1
  addsd  (%rbx,%rax,8),%xmm1
  movsd  %xmm1,(%rsi,%rax,8)
  movsd  (%r9,%rax,8),%xmm0
  maxsd  %xmm1,%xmm0
  movsd  %xmm0,(%rsi,%rax,8)
  movsd  (%r10,%rax,8),%xmm1
  minsd  %xmm0,%xmm1
  movsd  %xmm1,(%rsi,%rax,8)
  movsd  (%rbx,%rax,8),%xmm0
  ucomisd (%rdi,%rax,8),%xmm0
  jp     L1077
  jne    L1077
  movsd  (%r9,%rax,8),%xmm0
  movsd  %xmm0,(%rsi,%rax,8)
L1077:
  movsd  (%rbx,%rax,8),%xmm0
  ucomisd (%r8,%rax,8),%xmm0
  jp     L1525
  jne    L1525
  movsd  (%r10,%rax,8),%xmm0
  movsd  %xmm0,(%rsi,%rax,8)
  jmp    L1525
L2890:
  addl   $0x1,0x208(%rsp)
  jmp    L485
L1266:
  cmpl   $0x0,0x30(%rsp)
  jle    L1446
  jmp    L1333
L1503:
  cmpl   $0x0,0x30(%rsp)
  jle    L1446
L2446:
  cmpl   $0x0,0xc8(%rsp)
  jg     L1307
L39:
  cmpl   $0x0,0x18(%rsp)
  jle    L2890
  mov    0x1c(%rsp),%eax
  mov    %eax,%r9d
  mov    0x330(%rsp),%r8d
  mov    $0x0,%edi
  pxor   %xmm6,%xmm6
  movapd %xmm6,%xmm2
  lea    -0x1(%rax),%edx
  add    $0x2,%rdx
  movapd %xmm6,%xmm3
  movapd %xmm6,%xmm5
  movapd %xmm6,%xmm4
  mov    0xb0(%rsp),%r11
  mov    0xe8(%rsp),%r10
  jmp    L1814
L2400:
  mov    0xf8(%rsp),%rax
  movsd  0xc0(%rsp),%xmm5
  movsd  %xmm5,(%rax,%r9,8)
  jmp    L2329
L218:
  mov    0x108(%rsp),%r9
  mov    0x128(%rsp),%r13
  mov    0x168(%rsp),%rbx
  cmpl   $0x0,0xc8(%rsp)
  jle    L2400
L2390:
  mov    0x228(%rsp),%rdi
  mov    $0x1,%r8d
  mov    0x1c(%rsp),%eax
  lea    -0x1(%rax),%esi
  mov    0xc8(%rsp),%r11d
  movsd  0xd8(%rsp),%xmm2
  mov    %r13,0x108(%rsp)
  mov    %eax,%r13d
  mov    0x80(%rsp),%rdx
  jmp    L3292
L3411:
  cmpl   $0xffffffff,0x30(%rsp)
  je     L2790
  movslq 0x264(%rsp),%rax
  mov    0xf8(%rsp),%rdi
  movsd  (%rdi,%rax,8),%xmm7
  movsd  %xmm7,0x70(%rsp)
  pxor   %xmm5,%xmm5
  movsd  %xmm5,0x98(%rsp)
  jmp    L2699
L2105:
  push   0x1e0(%rsp)
  push   0x140(%rsp)
  push   %rbp
  lea    0x290(%rsp),%rax
  push   %rax
  lea    0x290(%rsp),%rax
  push   %rax
  push   0x128(%rsp)
  push   0x78(%rsp)
  mov    0x104(%rsp),%eax
  push   %rax
  mov    0x2a4(%rsp),%eax
  push   %rax
  push   0x138(%rsp)
  push   0x138(%rsp)
  mov    0x388(%rsp),%eax
  push   %rax
  movsd  0x190(%rsp),%xmm0
  mov    0x1b0(%rsp),%r9
  mov    0xd8(%rsp),%r8
  mov    %r12,%rcx
  mov    0xa0(%rsp),%rdx
  mov    0x7c(%rsp),%esi
  mov    0x78(%rsp),%edi
  call   <altmov_@plt>
  add    $0x60,%rsp
  pxor   %xmm7,%xmm7
  movsd  %xmm7,0xe0(%rsp)
  jmp    L2110
L665:
  movsd  %xmm1,(%r11)
  jmp    L789
L2107:
  mov    0x1c(%rsp),%eax
  add    %r10d,%eax
  cltq
  mov    0x1b0(%rsp),%rbx
  movsd  %xmm5,(%rbx,%rax,8)
  jmp    L1832
L2376:
  movsd  %xmm5,0x38(%rsp)
  jmp    L2041
L795:
  mov    %r12,%rbx
  jmp    L1683
L1453:
  ucomisd -0x8(%r11,%rdx,8),%xmm0
  jp     L384
  jne    L384
L1223:
  movsd  -0x8(%rbp,%rdx,8),%xmm2
  xorpd  D533(%rip),%xmm2
L2046:
  comisd %xmm2,%xmm4
  ja     L1833
L384:
  add    $0x1,%rdx
  add    %ebx,%edi
  cmp    %edx,%r13d
  jl     L2283
L2507:
  mov    %edx,%eax
  movsd  -0x8(%r12,%rdx,8),%xmm0
  ucomisd -0x8(%r10,%rdx,8),%xmm0
  jp     L1453
  jne    L1453
  ucomisd -0x8(%r11,%rdx,8),%xmm0
  jp     L1501
  je     L1223
L1501:
  movsd  -0x8(%rbp,%rdx,8),%xmm2
  jmp    L2046
L2790:
  movslq 0x264(%rsp),%rax
  mov    0xf8(%rsp),%rbx
  lea    (%rbx,%rax,8),%rdx
  movsd  0xc0(%rsp),%xmm7
  comisd (%rdx),%xmm7
  jb     L2200
L1747:
  movsd  (%rdx),%xmm7
  movsd  %xmm7,0xc0(%rsp)
L2200:
  cmpl   $0x0,0x2d8(%rsp)
  jle    L1097
L1923:
  mov    0x260(%rsp),%esi
  lea    D564(%rip),%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  movsd  0xc0(%rsp),%xmm0
  lea    D467(%rip),%rdi
  mov    $0x1,%eax
  call   <printf@plt>
  cmpl   $0x0,0x18(%rsp)
  jle    L1097
  mov    $0x1,%ebx
  lea    D86(%rip),%rbp
  mov    0x148(%rsp),%r12
L2052:
  movsd  -0x8(%r12,%rbx,8),%xmm0
  mov    %rbp,%rdi
  mov    $0x1,%eax
  call   <printf@plt>
  add    $0x1,%rbx
  cmp    %ebx,0x18(%rsp)
  jge    L2052
L1097:
  mov    0x288(%rsp),%rax
  sub    %fs:0x28,%rax
  jne    L1509
  add    $0x298,%rsp
  pop    %rbx
  pop    %rbp
  pop    %r12
  pop    %r13
  pop    %r14
  pop    %r15
  ret
L1509:
  call   <__stack_chk_fail@plt>
```

tool_calls: name: disassemble_data
arguments: data_tag: D273
datatype: string
name: disassemble_data
arguments: data_tag: D158
datatype: byte[8]
name: disassemble_data
arguments: data_tag: D130
datatype: f32[2]
name: disassemble_data
arguments: data_tag: D348
datatype: f64
name: disassemble_data
arguments: data_tag: D333
datatype: f32[2]
name: disassemble_data
arguments: data_tag: D352
datatype: f32[2]
name: disassemble_data
arguments: data_tag: D554
datatype: string
name: disassemble_data
arguments: data_tag: D428
datatype: string
name: disassemble_data
arguments: data_tag: D86
datatype: string
name: disassemble_data
arguments: data_tag: D218
datatype: qword[2]
name: disassemble_data
arguments: data_tag: D15
datatype: f32[4]
name: disassemble_data
arguments: data_tag: D417
datatype: byte[8]
name: disassemble_data
arguments: data_tag: D502
datatype: f64
name: disassemble_data
arguments: data_tag: D501
datatype: string
name: disassemble_data
arguments: data_tag: D360
datatype: byte[8]
name: disassemble_data
arguments: data_tag: D492
datatype: f64
name: disassemble_data
arguments: data_tag: D354
datatype: f64
name: disassemble_data
arguments: data_tag: D469
datatype: f64
name: disassemble_data
arguments: data_tag: D152
datatype: f32[2]
name: disassemble_data
arguments: data_tag: D548
datatype: string
name: disassemble_data
arguments: data_tag: D467
datatype: string
name: disassemble_data
arguments: data_tag: D533
datatype: f32[4]
name: disassemble_data
arguments: data_tag: D564
datatype: string

tool: D273: Return from BOBYQA because CALFUN has been called MAXFUN times.

tool: {"D158": [0xfc,0xa9,0xf1,0xd2,0x4d,0x62,0x50,0x3f]}

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

tool: D348: 1

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

tool: {"D352": [0.0,-1.75]}

tool: D554: Return from BOBYQA because of much cancellation in a denominator.

tool: D428: Function number %d    F = %g
    The corresponding X is:


tool: D86: 	%g


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

tool: {"D15": [0.0,0.0,null,null]}

tool: {"D417": [0x9a,0x99,0x99,0x99,0x99,0x99,0xb9,0x3f]}

tool: D502: 1.5

tool: D501: Return from BOBYQA because a trust region step has failed to reduce Q.

tool: {"D360": [0x66,0x66,0x66,0x66,0x66,0x66,0xe6,0x3f]}

tool: D492: 10

tool: D354: 16

tool: D469: 250

tool: {"D152": [0.0,1.5]}

tool: D548: New RHO = %g, Number of function values = %d

tool: D467: Least value of F = %g
    The corresponding X is:


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

tool: D564: At the return from BOBYQA
Number of function values = %d


assistant: ```c
void bobyqb_(int n, int npt, double *x, double *xl, double *xu, double (*func)(void *data, int n, const double *x), void *data, double rhobeg, double rhoend, int iprint, int maxfun, double *xbase, double *xpt, double *fval, double *xopt, double *gopt, double *hq, double *pq, double *bmat, double *zmat, int ndim, double *sl, double *su, double *xnew, double *xalt, double *d__, double *vlag, double *w) {
  int xpt_dim1, xpt_offset, bmat_dim1, bmat_offset, zmat_dim1, zmat_offset, i__1, i__2, i__3;
  double d__1, d__2, d__3, d__4;
  double sqrt(double);
  double f;
  int i__, j, k, ih, nf, jj, nh, ip, jp;
  double dx;
  int np;
  double den, one, ten, dsq, rho, sum, two, diff, half, beta, gisq;
  int knew;
  double temp, suma, sumb, bsum, fopt;
  int kopt, nptm;
  double zero, curv;
  int ksav;
  double gqsq, dist, sumw, sumz, diffa, diffb, diffc, hdiag;
  int kbase;
  double alpha, delta, adelt, denom, fsave, bdtol, delsq;
  int nresc, nfsav;
  double ratio, dnorm, vquad, pqold, tenth;
  int itest;
  double sumpq, scaden;
  double errbig, cauchy, fracsq, biglsq, densav;
  extern void update_(int, int, double *, double *, int, double *, double, double, int, double *);
  double bdtest;
  extern void rescue_(int n, int npt, double *xl, double *xu, double (*func)(void *data, int n, const double *x), void *data, int iprint, int maxfun, double *xbase, double *xpt, double *fval, double *xopt, double *gopt, double *hq, double *pq, double *bmat, double *zmat, int ndim, double *sl, double *su, int *nf, double delta, int *kopt, double *vlag, double *ptsaux, double *ptsid, double *w);
  extern void prelim_(int n, int npt, double *x, double *xl, double *xu, double (*func)(void *data, int n, const double *x), void *data, double rhobeg, int iprint, int maxfun, double *xbase, double *xpt, double *fval, double *gopt, double *hq, double *pq, double *bmat, double *zmat, int ndim, double *sl, double *su, int *nf, int *kopt);
  double crvmin, frhosq;
  extern void altmov_(int, int, double *, double *, double *, double *, int, double *, double *, int, int, double, double *, double *, double *, double *, double *, double *, double *);
  double distsq;
  extern void trsbox_(int, int, double *, double *, double *, double *, double *, double *, double *, double, double *, double *, double *, double *, double *, double *, double *, double *, double *);
  int ntrits;
  double xoptsq;
  zmat_dim1 = npt;
  zmat_offset = 1 + zmat_dim1;
  zmat -= zmat_offset;
  xpt_dim1 = npt;
  xpt_offset = 1 + xpt_dim1;
  xpt -= xpt_offset;
  --x;
  --xl;
  --xu;
  --xbase;
  --fval;
  --xopt;
  --gopt;
  --hq;
  --pq;
  bmat_dim1 = ndim;
  bmat_offset = 1 + bmat_dim1;
  bmat -= bmat_offset;
  --sl;
  --su;
  --xnew;
  --xalt;
  --d__;
  --vlag;
  --w;
  half = .5;
  one = 1.;
  ten = 10.;
  tenth = .1;
  two = 2.;
  zero = 0.;
  np = n + 1;
  nptm = npt - np;
  nh = n * np / 2;
  prelim_(n, npt, &x[1], &xl[1], &xu[1], func, data, rhobeg, iprint, maxfun, &xbase[1], &xpt[xpt_offset], &fval[1], &gopt[1], &hq[1], &pq[1], &bmat[bmat_offset], &zmat[zmat_offset], ndim, &sl[1], &su[1], &nf, &kopt);
  xoptsq = zero;
  for (i__ = 1; i__ <= n; ++i__) {
    xopt[i__] = xpt[kopt + i__ * xpt_dim1];
    d__1 = xopt[i__];
    xoptsq += d__1 * d__1;
  }
  fsave = fval[1];
  if (nf < npt) {
    if (iprint > 0) {
      printf("Return from BOBYQA because CALFUN has been called MAXFUN times.\n");
    }
    goto L720;
  }
  kbase = 1;
  rho = rhobeg;
  delta = rho;
  nresc = nf;
  ntrits = 0;
  diffa = zero;
  diffb = zero;
  itest = 0;
  nfsav = nf;
L20:
  if (kopt != kbase) {
    ih = 0;
    i__1 = n;
    for (j = 1; j <= i__1; ++j) {
      i__2 = j;
      for (i__ = 1; i__ <= i__2; ++i__) {
        ++ih;
        if (i__ < j) {
          gopt[j] += hq[ih] * xopt[i__];
        }
        gopt[i__] += hq[ih] * xopt[j];
      }
    }
    if (nf > npt) {
      i__2 = npt;
      for (k = 1; k <= i__2; ++k) {
        temp = zero;
        i__1 = n;
        for (j = 1; j <= i__1; ++j) {
          temp += xpt[k + j * xpt_dim1] * xopt[j];
        }
        temp = pq[k] * temp;
        i__1 = n;
        for (i__ = 1; i__ <= i__1; ++i__) {
          gopt[i__] += temp * xpt[k + i__ * xpt_dim1];
        }
      }
    }
  }
L60:
  trsbox_(n, npt, &xpt[xpt_offset], &xopt[1], &gopt[1], &hq[1], &pq[1], &sl[1], &su[1], delta, &xnew[1], &d__[1], &w[1], &w[np], &w[np + n], &w[np + (n << 1)], &w[np + n * 3], &dsq, &crvmin);
  dnorm = sqrt(dsq);
  if (delta < dnorm) {
    dnorm = delta;
  }
  if (dnorm < half * rho) {
    ntrits = -1;
    distsq = (ten * rho) * (ten * rho);
    if (nf <= nfsav + 2) {
      goto L650;
    }
    errbig = diffa;
    if (diffb > errbig) {
      errbig = diffb;
    }
    if (diffc > errbig) {
      errbig = diffc;
    }
    frhosq = rho * .125 * rho;
    if (crvmin > zero && errbig > frhosq * crvmin) {
      goto L650;
    }
    bdtol = errbig / rho;
    i__1 = n;
    for (j = 1; j <= i__1; ++j) {
      bdtest = bdtol;
      if (xnew[j] == sl[j]) {
        bdtest = w[j];
      }
      if (xnew[j] == su[j]) {
        bdtest = -w[j];
      }
      if (bdtest < bdtol) {
        curv = hq[(j + j * j) / 2];
        i__2 = npt;
        for (k = 1; k <= i__2; ++k) {
          curv += pq[k] * (xpt[k + j * xpt_dim1] * xpt[k + j * xpt_dim1]);
        }
        bdtest += half * curv * rho;
        if (bdtest < bdtol) {
          goto L650;
        }
      }
    }
    goto L680;
  }
  ++ntrits;
L90:
  if (dsq <= xoptsq * .001) {
    fracsq = xoptsq * .25;
    sumpq = zero;
    for (k = 1; k <= npt; ++k) {
      sumpq += pq[k];
      sum = -half * xoptsq;
      for (i__ = 1; i__ <= n; ++i__) {
        sum += xpt[k + i__ * xpt_dim1] * xopt[i__];
      }
      w[npt + k] = sum;
      temp = fracsq - half * sum;
      for (i__ = 1; i__ <= n; ++i__) {
        w[i__] = bmat[k + i__ * bmat_dim1];
        vlag[i__] = sum * xpt[k + i__ * xpt_dim1] + temp * xopt[i__];
        ip = npt + i__;
        for (j = 1; j <= i__; ++j) {
          bmat[ip + j * bmat_dim1] = bmat[ip + j * bmat_dim1] + w[i__] * vlag[j] + vlag[i__] * w[j];
        }
      }
    }
    for (jj = 1; jj <= nptm; ++jj) {
      sumz = zero;
      sumw = zero;
      i__2 = npt;
      for (k = 1; k <= i__2; ++k) {
        sumz += zmat[k + jj * zmat_dim1];
        vlag[k] = w[npt + k] * zmat[k + jj * zmat_dim1];
        sumw += vlag[k];
      }
      for (j = 1; j <= n; ++j) {
        sum = (fracsq * sumz - half * sumw) * xopt[j];
        for (k = 1; k <= npt; ++k) {
          sum += vlag[k] * xpt[k + j * xpt_dim1];
        }
        w[j] = sum;
        for (k = 1; k <= npt; ++k) {
          bmat[k + j * bmat_dim1] += sum * zmat[k + jj * zmat_dim1];
        }
      }
      for (i__ = 1; i__ <= n; ++i__) {
        ip = i__ + npt;
        temp = w[i__];
        for (j = 1; j <= i__; ++j) {
          bmat[ip + j * bmat_dim1] += temp * w[j];
        }
      }
    }
    ih = 0;
    for (j = 1; j <= n; ++j) {
      w[j] = -half * sumpq * xopt[j];
      i__1 = npt;
      for (k = 1; k <= i__1; ++k) {
        w[j] += pq[k] * xpt[k + j * xpt_dim1];
        xpt[k + j * xpt_dim1] -= xopt[j];
      }
      for (i__ = 1; i__ <= j; ++i__) {
        ++ih;
        hq[ih] = hq[ih] + w[i__] * xopt[j] + xopt[i__] * w[j];
        bmat[npt + i__ + j * bmat_dim1] = bmat[npt + j + i__ * bmat_dim1];
      }
    }
    for (i__ = 1; i__ <= n; ++i__) {
      xbase[i__] += xopt[i__];
      xnew[i__] -= xopt[i__];
      sl[i__] -= xopt[i__];
      su[i__] -= xopt[i__];
      xopt[i__] = zero;
    }
    xoptsq = zero;
  }
  if (ntrits == 0) {
    goto L210;
  }
  goto L230;
L190:
  nfsav = nf;
  kbase = kopt;
  rescue_(n, npt, &xl[1], &xu[1], func, data, iprint, maxfun, &xbase[1], &xpt[xpt_offset], &fval[1], &xopt[1], &gopt[1], &hq[1], &pq[1], &bmat[bmat_offset], &zmat[zmat_offset], ndim, &sl[1], &su[1], &nf, delta, &kopt, &vlag[1], &w[1], &w[n + np], &w[ndim + np]);
  xoptsq = zero;
  if (kopt != kbase) {
    for (i__ = 1; i__ <= n; ++i__) {
      xopt[i__] = xpt[kopt + i__ * xpt_dim1];
      xoptsq += xopt[i__] * xopt[i__];
    }
  }
  if (nf < 0) {
    nf = maxfun;
    if (iprint > 0) {
      printf("Return from BOBYQA because CALFUN has been called MAXFUN times.\n");
    }
    goto L720;
  }
  nresc = nf;
  if (nfsav < nf) {
    nfsav = nf;
    goto L20;
  }
  if (ntrits > 0) {
    goto L60;
  }
L210:
  altmov_(n, npt, &xpt[xpt_offset], &xopt[1], &bmat[bmat_offset], &zmat[zmat_offset], ndim, &sl[1], &su[1], kopt, knew, adelt, &xnew[1], &xalt[1], &alpha, &cauchy, &w[1], &w[np], &w[ndim + 1]);
  for (i__ = 1; i__ <= n; ++i__) {
    d__[i__] = xnew[i__] - xopt[i__];
  }
L230:
  for (k = 1; k <= npt; ++k) {
    suma = zero;
    sumb = zero;
    sum = zero;
    i__2 = n;
    for (j = 1; j <= i__2; ++j) {
      suma += xpt[k + j * xpt_dim1] * d__[j];
      sumb += xpt[k + j * xpt_dim1] * xopt[j];
      sum += bmat[k + j * bmat_dim1] * d__[j];
    }
    w[k] = suma * (half * suma + sumb);
    vlag[k] = sum;
    w[npt + k] = suma;
  }
  beta = zero;
  for (jj = 1; jj <= nptm; ++jj) {
    sum = zero;
    for (k = 1; k <= npt; ++k) {
      sum += zmat[k + jj * zmat_dim1] * w[k];
    }
    beta -= sum * sum;
    for (k = 1; k <= npt; ++k) {
      vlag[k] += sum * zmat[k + jj * zmat_dim1];
    }
  }
  dsq = zero;
  bsum = zero;
  dx = zero;
  for (j = 1; j <= n; ++j) {
    d__1 = d__[j];
    dsq += d__1 * d__1;
    sum = zero;
    for (k = 1; k <= npt; ++k) {
      sum += w[k] * bmat[k + j * bmat_dim1];
    }
    bsum += sum * d__[j];
    jp = npt + j;
    for (i__ = 1; i__ <= n; ++i__) {
      sum += bmat[jp + i__ * bmat_dim1] * d__[i__];
    }
    vlag[jp] = sum;
    bsum += sum * d__[j];
    dx += d__[j] * xopt[j];
  }
  beta = dx * dx + dsq * (xoptsq + dx + dx + half * dsq) + beta - bsum;
  vlag[kopt] += one;
  if (ntrits == 0) {
    denom = vlag[knew] * vlag[knew] + alpha * beta;
    if (denom < cauchy && cauchy > zero) {
      i__2 = n;
      for (i__ = 1; i__ <= i__2; ++i__) {
        xnew[i__] = xalt[i__];
        d__[i__] = xnew[i__] - xopt[i__];
      }
      cauchy = zero;
      goto L230;
    }
    if (denom <= half * (vlag[knew] * vlag[knew])) {
      if (nf > nresc) {
        goto L190;
      }
      if (iprint > 0) {
        printf("Return from BOBYQA because of much cancellation in a denominator.\n");
      }
      goto L720;
    }
  } else {
    delsq = delta * delta;
    scaden = zero;
    biglsq = zero;
    knew = 0;
    for (k = 1; k <= npt; ++k) {
      if (k == kopt) {
        goto L350;
      }
      hdiag = zero;
      for (jj = 1; jj <= nptm; ++jj) {
        hdiag += zmat[k + jj * zmat_dim1] * zmat[k + jj * zmat_dim1];
      }
      den = beta * hdiag + vlag[k] * vlag[k];
      distsq = zero;
      for (j = 1; j <= n; ++j) {
        distsq += (xpt[k + j * xpt_dim1] - xopt[j]) * (xpt[k + j * xpt_dim1] - xopt[j]);
      }
      {
        double d3 = distsq / delsq;
        temp = d3 * d3;
        if (one > temp) {
          temp = one;
        }
      }
      if (temp * den > scaden) {
        scaden = temp * den;
        knew = k;
        denom = den;
      }
      {
        double d2 = temp * (vlag[k] * vlag[k]);
        if (d2 > biglsq) {
          biglsq = d2;
        }
      }
    L350:;
    }
    if (scaden <= half * biglsq) {
      if (nf > nresc) {
        goto L190;
      }
      if (iprint > 0) {
        printf("Return from BOBYQA because of much cancellation in a denominator.\n");
      }
      goto L720;
    }
  }
L360:
  for (i__ = 1; i__ <= n; ++i__) {
    x[i__] = xbase[i__] + xnew[i__];
    if (xl[i__] > x[i__]) {
      x[i__] = xl[i__];
    }
    if (xu[i__] < x[i__]) {
      x[i__] = xu[i__];
    }
    if (xnew[i__] == sl[i__]) {
      x[i__] = xl[i__];
    }
    if (xnew[i__] == su[i__]) {
      x[i__] = xu[i__];
    }
  }
  if (nf >= maxfun) {
    if (iprint > 0) {
      printf("Return from BOBYQA because CALFUN has been called MAXFUN times.\n");
    }
    goto L720;
  }
  ++nf;
  f = func(data, n, &x[1]);
  if (iprint == 3) {
    printf("Function number %d    F = %g\n    The corresponding X is:\n", nf, f);
    for (i__ = 1; i__ <= n; ++i__) {
      printf("\t%g\n", x[i__]);
    }
  }
  if (ntrits == -1) {
    fsave = f;
    goto L720;
  }
  fopt = fval[kopt];
  vquad = zero;
  ih = 0;
  for (j = 1; j <= n; ++j) {
    vquad += d__[j] * gopt[j];
    for (i__ = 1; i__ <= j; ++i__) {
      ++ih;
      temp = d__[i__] * d__[j];
      if (i__ == j) {
        temp = half * temp;
      }
      vquad += hq[ih] * temp;
    }
  }
  for (k = 1; k <= npt; ++k) {
    vquad += half * pq[k] * (w[npt + k] * w[npt + k]);
  }
  diff = f - fopt - vquad;
  diffc = diffb;
  diffb = diffa;
  diffa = fabs(diff);
  if (dnorm > rho) {
    nfsav = nf;
  }
  if (ntrits > 0) {
    if (vquad >= zero) {
      if (iprint > 0) {
        printf("Return from BOBYQA because a trust region step has failed to reduce Q.\n");
      }
      goto L720;
    }
    ratio = (f - fopt) / vquad;
    if (ratio <= tenth) {
      delta = half * delta;
      if (dnorm < delta) {
        delta = dnorm;
      }
    } else if (ratio <= .7) {
      delta = half * delta;
      if (dnorm > delta) {
        delta = dnorm;
      }
    } else {
      delta = half * delta;
      if (2 * dnorm > delta) {
        delta = 2 * dnorm;
      }
    }
    if (delta <= rho * 1.5) {
      delta = rho;
    }
    if (f < fopt) {
      ksav = knew;
      densav = denom;
      delsq = delta * delta;
      scaden = zero;
      biglsq = zero;
      knew = 0;
      i__1 = npt;
      for (k = 1; k <= i__1; ++k) {
        hdiag = zero;
        i__2 = nptm;
        for (jj = 1; jj <= i__2; ++jj) {
          hdiag += zmat[k + jj * zmat_dim1] * zmat[k + jj * zmat_dim1];
        }
        den = beta * hdiag + vlag[k] * vlag[k];
        distsq = zero;
        for (j = 1; j <= n; ++j) {
          distsq += (xpt[k + j * xpt_dim1] - xnew[j]) * (xpt[k + j * xpt_dim1] - xnew[j]);
        }
        {
          double d3 = distsq / delsq;
          temp = d3 * d3;
          if (one > temp) {
            temp = one;
          }
        }
        if (temp * den > scaden) {
          scaden = temp * den;
          knew = k;
          denom = den;
        }
        {
          double d2 = temp * (vlag[k] * vlag[k]);
          if (d2 > biglsq) {
            biglsq = d2;
          }
        }
      }
      if (scaden <= half * biglsq) {
        knew = ksav;
        denom = densav;
      }
    }
  }
  update_(n, npt, &bmat[bmat_offset], &zmat[zmat_offset], ndim, &vlag[1], beta, denom, knew - 1, &w[1]);
  ih = 0;
  pqold = pq[knew];
  pq[knew] = zero;
  for (i__ = 1; i__ <= n; ++i__) {
    temp = pqold * xpt[knew + i__ * xpt_dim1];
    i__2 = i__;
    for (j = 1; j <= i__2; ++j) {
      ++ih;
      hq[ih] += temp * xpt[knew + j * xpt_dim1];
    }
  }
  for (jj = 1; jj <= nptm; ++jj) {
    temp = diff * zmat[knew + jj * zmat_dim1];
    for (k = 1; k <= npt; ++k) {
      pq[k] += temp * zmat[k + jj * zmat_dim1];
    }
  }
  fval[knew] = f;
  for (i__ = 1; i__ <= n; ++i__) {
    xpt[knew + i__ * xpt_dim1] = xnew[i__];
    w[i__] = bmat[knew + i__ * bmat_dim1];
  }
  for (k = 1; k <= npt; ++k) {
    suma = zero;
    for (jj = 1; jj <= nptm; ++jj) {
      suma += zmat[knew + jj * zmat_dim1] * zmat[k + jj * zmat_dim1];
    }
    sumb = zero;
    for (j = 1; j <= n; ++j) {
      sumb += xpt[k + j * xpt_dim1] * xopt[j];
    }
    temp = suma * sumb;
    for (i__ = 1; i__ <= n; ++i__) {
      w[i__] += temp * xpt[k + i__ * xpt_dim1];
    }
  }
  for (i__ = 1; i__ <= n; ++i__) {
    gopt[i__] += diff * w[i__];
  }
  if (f < fopt) {
    kopt = knew;
    xoptsq = zero;
    ih = 0;
    for (j = 1; j <= n; ++j) {
      xopt[j] = xnew[j];
      xoptsq += xopt[j] * xopt[j];
      for (i__ = 1; i__ <= j; ++i__) {
        ++ih;
        if (i__ < j) {
          gopt[j] += hq[ih] * d__[i__];
        }
        gopt[i__] += hq[ih] * d__[j];
      }
    }
    for (k = 1; k <= npt; ++k) {
      temp = zero;
      for (j = 1; j <= n; ++j) {
        temp += xpt[k + j * xpt_dim1] * d__[j];
      }
      temp = pq[k] * temp;
      for (i__ = 1; i__ <= n; ++i__) {
        gopt[i__] += temp * xpt[k + i__ * xpt_dim1];
      }
    }
  }
  if (ntrits > 0) {
    for (k = 1; k <= npt; ++k) {
      vlag[k] = fval[k] - fval[kopt];
      w[k] = zero;
    }
    for (j = 1; j <= nptm; ++j) {
      sum = zero;
      for (k = 1; k <= npt; ++k) {
        sum += zmat[k + j * zmat_dim1] * vlag[k];
      }
      for (k = 1; k <= npt; ++k) {
        w[k] += sum * zmat[k + j * zmat_dim1];
      }
    }
    for (k = 1; k <= npt; ++k) {
      sum = zero;
      for (j = 1; j <= n; ++j) {
        sum += xpt[k + j * xpt_dim1] * xopt[j];
      }
      w[k + npt] = w[k];
      w[k] = sum * w[k];
    }
    gqsq = zero;
    gisq = zero;
    for (i__ = 1; i__ <= n; ++i__) {
      sum = zero;
      for (k = 1; k <= npt; ++k) {
        sum = sum + bmat[k + i__ * bmat_dim1] * vlag[k] + xpt[k + i__ * xpt_dim1] * w[k];
      }
      if (xopt[i__] == sl[i__]) {
        double d1 = gopt[i__];
        if (zero < d1) {
          d1 = zero;
        }
        gqsq += d1 * d1;
        d1 = sum;
        if (zero < sum) {
          sum = zero;
        }
        gisq += d1 * d1;
      } else if (xopt[i__] == su[i__]) {
        double d1 = gopt[i__];
        if (zero > d1) {
          d1 = zero;
        }
        gqsq += d1 * d1;
        d1 = sum;
        if (zero > sum) {
          sum = zero;
        }
        gisq += d1 * d1;
      } else {
        gqsq += gopt[i__] * gopt[i__];
        gisq += sum * sum;
      }
      vlag[npt + i__] = sum;
    }
    ++itest;
    if (gqsq < ten * gisq) {
      itest = 0;
    }
    if (itest >= 3) {
      i__1 = imax(npt, nh);
      for (i__ = 1; i__ <= i__1; ++i__) {
        if (i__ <= n) {
          gopt[i__] = vlag[npt + i__];
        }
        if (i__ <= npt) {
          pq[i__] = w[npt + i__];
        }
        if (i__ <= nh) {
          hq[i__] = zero;
        }
        itest = 0;
      }
    }
  }
  if (ntrits == 0) {
    goto L60;
  }
  if (f <= fopt + tenth * vquad) {
    goto L60;
  }
  {
    double d3 = two * delta;
    double d4 = ten * rho;
    double d1 = d3 * d3;
    double d2 = d4 * d4;
    distsq = (d1 > d2) ? d1 : d2;
  }
L650:
  knew = 0;
  for (k = 1; k <= npt; ++k) {
    sum = zero;
    for (j = 1; j <= n; ++j) {
      sum += (xpt[k + j * xpt_dim1] - xopt[j]) * (xpt[k + j * xpt_dim1] - xopt[j]);
    }
    if (sum > distsq) {
      knew = k;
      distsq = sum;
    }
  }
  if (knew > 0) {
    dist = sqrt(distsq);
    if (ntrits == -1) {
      delta = tenth * delta;
      if (half * dist < delta) {
        delta = half * dist;
      }
      if (delta <= rho * 1.5) {
        delta = rho;
      }
    }
    ntrits = 0;
    adelt = tenth * dist;
    if (delta < adelt) {
      adelt = delta;
    }
    if (rho > adelt) {
      adelt = rho;
    }
    dsq = adelt * adelt;
    goto L90;
  }
  if (ntrits == -1) {
    goto L680;
  }
  if (ratio > zero) {
    goto L60;
  }
  if ((delta > dnorm ? delta : dnorm) > rho) {
    goto L60;
  }
L680:
  if (rho > rhoend) {
    delta = half * rho;
    ratio = rho / rhoend;
    if (ratio <= 16.) {
      rho = rhoend;
    } else if (ratio <= 250.) {
      rho = sqrt(ratio) * rhoend;
    } else {
      rho = tenth * rho;
    }
    delta = (delta > rho ? delta : rho);
    if (iprint >= 2) {
      printf("New RHO = %g, Number of function values = %d", rho, nf);
      printf("Least value of F = %g\n    The corresponding X is:\n", fval[kopt]);
      for (i__ = 1; i__ <= n; ++i__) {
        printf("\t%g\n", xbase[i__] + xopt[i__]);
      }
    }
    ntrits = 0;
    nfsav = nf;
    goto L60;
  }
  if (ntrits == -1) {
    goto L360;
  }
L720:
  if (fval[kopt] <= fsave) {
    for (i__ = 1; i__ <= n; ++i__) {
      x[i__] = xbase[i__] + xopt[i__];
      if (xl[i__] > x[i__]) {
        x[i__] = xl[i__];
      }
      if (xu[i__] < x[i__]) {
        x[i__] = xu[i__];
      }
      if (xopt[i__] == sl[i__]) {
        x[i__] = xl[i__];
      }
      if (xopt[i__] == su[i__]) {
        x[i__] = xu[i__];
      }
    }
    f = fval[kopt];
  }
  if (iprint >= 1) {
    printf("At the return from BOBYQA\nNumber of function values = %d\n", nf);
    printf("Least value of F = %g\n    The corresponding X is:\n", f);
    for (i__ = 1; i__ <= n; ++i__) {
      printf("\t%g\n", x[i__]);
    }
  }
}
```