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

```asm
<bobyqb_>:
  endbr64
  push   %r15
  push   %r14
  push   %r13
  push   %r12
  push   %rbp
  push   %rbx
  sub    $0x2c8,%rsp
  mov    0x300(%rsp),%rax
  mov    %rcx,0x1c0(%rsp)
  mov    %rdx,0x160(%rsp)
  mov    0x328(%rsp),%r10
  mov    %rax,0x240(%rsp)
  mov    %rax,%rcx
  mov    0x318(%rsp),%rax
  mov    %r9,0x1f0(%rsp)
  mov    0x320(%rsp),%r14
  mov    %rax,0x190(%rsp)
  mov    %rax,%rdx
  mov    0x338(%rsp),%rax
  mov    0x350(%rsp),%r11
  mov    0x358(%rsp),%r15
  mov    %r8,0x1c8(%rsp)
  mov    %rax,%r9
  mov    %rax,0x80(%rsp)
  mov    0x340(%rsp),%rax
  mov    0x368(%rsp),%rbp
  mov    %r14,0x50(%rsp)
  mov    %rax,%r8
  mov    %rax,0x98(%rsp)
  mov    0x348(%rsp),%rax
  mov    %r10,0x1f8(%rsp)
  mov    0x330(%rsp),%rbx
  mov    %rax,0x88(%rsp)
  mov    %r11,0x68(%rsp)
  mov    %esi,%r11d
  add    $0x1,%esi
  mov    %r15,0x148(%rsp)
  movsd  %xmm1,0x188(%rsp)
  mov    %rbp,0xc0(%rsp)
  mov    0x378(%rsp),%r13
  mov    0x370(%rsp),%r12
  mov    0x388(%rsp),%r15
  mov    %r13,0x38(%rsp)
  mov    0x380(%rsp),%r13
  mov    %r12,0xf8(%rsp)
  mov    0x390(%rsp),%r12
  mov    %r13,0x100(%rsp)
  mov    0x398(%rsp),%r13
  mov    %fs:0x28,%rax
  mov    %rax,0x2b8(%rsp)
  xor    %eax,%eax
  movslq %esi,%rax
  mov    %esi,0x70(%rsp)
  lea    0x0(,%rax,8),%rsi
  mov    %r14,%rax
  mov    %rsi,0x150(%rsp)
  sub    %rsi,%r14
  mov    %rsi,%rbp
  lea    -0x8(%r10),%rsi
  mov    %rsi,0xf0(%rsp)
  lea    0x294(%rsp),%rsi
  neg    %rbp
  mov    %rsi,0x288(%rsp)
  mov    %r14,0x78(%rsp)
  push   %rsi
  lea    0x298(%rsp),%rsi
  mov    %rsi,0x288(%rsp)
  push   %rsi
  push   0x108(%rsp)
  push   0xd8(%rsp)
  mov    0x380(%rsp),%esi
  push   %rsi
  mov    %r11d,%esi
  push   0x170(%rsp)
  push   0x98(%rsp)
  push   0xc0(%rsp)
  push   %r8
  push   %r9
  push   %r10
  push   %rax
  push   %rdx
  mov    0x378(%rsp),%r10d
  push   %r10
  mov    0x378(%rsp),%r10d
  push   %r10
  push   %rcx
  mov    0x270(%rsp),%r9
  mov    0x248(%rsp),%r8
  mov    0x240(%rsp),%rcx
  mov    0x1e0(%rsp),%rdx
  mov    %r11d,0xb0(%rsp)
  mov    %edi,0x84(%rsp)
  movsd  %xmm0,0x98(%rsp)
  call   <prelim_@plt>
  mov    0x84(%rsp),%edi
  sub    $0xffffffffffffff80,%rsp
  movsd  0x18(%rsp),%xmm15
  test   %edi,%edi
  jle    L454
  mov    0x150(%rsp),%rax
  movslq 0x30(%rsp),%rdx
  mov    %edi,%ecx
  pxor   %xmm2,%xmm2
  lea    (%rbx,%rcx,8),%rcx
  movapd %xmm2,%xmm14
  lea    -0x8(%rax),%rsi
  movslq 0x294(%rsp),%rax
  add    %rdx,%rax
  lea    (%r14,%rax,8),%rdx
  mov    %rbx,%rax
  nopl   0x0(%rax)
L2144:
  movsd  (%rdx),%xmm0
  add    $0x8,%rax
  add    %rsi,%rdx
  movsd  %xmm0,-0x8(%rax)
  mulsd  %xmm0,%xmm0
  addsd  %xmm0,%xmm14
  cmp    %rax,%rcx
  jne    L2144
L2854:
  mov    0x1f8(%rsp),%rax
  movsd  (%rax),%xmm4
  mov    0x290(%rsp),%eax
  movsd  %xmm4,0x1b8(%rsp)
  mov    %eax,0x198(%rsp)
  cmp    0x30(%rsp),%eax
  jl     L378
  mov    0x360(%rsp),%edi
  mov    0x4(%rsp),%esi
  lea    -0x8(%r13),%r11
  movslq 0x30(%rsp),%r9
  mov    %r11,0x260(%rsp)
  lea    0x1(%rdi),%eax
  lea    -0x8(%r12),%rdi
  mov    0x88(%rsp),%r10
  mov    0x68(%rsp),%r8
  mov    %rdi,0x220(%rsp)
  mov    %r9d,%ecx
  lea    0x1(%rsi),%edi
  cltq
  sub    %edi,%ecx
  mov    %edi,0x24c(%rsp)
  shl    $0x3,%rax
  add    0x148(%rsp),%rbp
  mov    %ecx,0x34(%rsp)
  mov    %esi,%ecx
  sub    %rax,%r8
  imul   %edi,%ecx
  mov    %rbp,0x48(%rsp)
  movslq 0x360(%rsp),%rbp
  mov    %r9,0x90(%rsp)
  mov    %rbp,0x258(%rsp)
  mov    %ecx,%edx
  mov    %r8,0x18(%rsp)
  shr    $0x1f,%edx
  add    %ecx,%edx
  sar    %edx
  mov    %edx,0x248(%rsp)
  lea    (%rsi,%rsi,1),%edx
  lea    (%rdx,%rsi,1),%ecx
  add    %edi,%edx
  add    %edi,%ecx
  movslq %edx,%rdx
  movslq %ecx,%rcx
  lea    (%r11,%rcx,8),%rcx
  mov    %rcx,0x1a0(%rsp)
  lea    (%r11,%rdx,8),%rcx
  mov    %esi,%edx
  add    %edi,%edx
  mov    %rcx,0x1a8(%rsp)
  movslq %edx,%rdx
  lea    (%r11,%rdx,8),%rcx
  movslq %edi,%rdx
  add    0x360(%rsp),%edi
  mov    %rcx,0x170(%rsp)
  lea    (%r11,%rdx,8),%rcx
  movslq %edi,%rdx
  lea    (%r11,%rdx,8),%rdi
  mov    %rcx,0x158(%rsp)
  lea    (%r11,%rax,1),%rcx
  mov    0x294(%rsp),%edx
  lea    -0x1(%rsi),%r11d
  mov    %rdi,0x250(%rsp)
  mov    0x150(%rsp),%rdi
  lea    0x0(,%r11,8),%rsi
  mov    %rcx,0x218(%rsp)
  lea    -0x8(%rdi),%r14
  lea    0x8(%rsi),%rdi
  lea    (%rbx,%rdi,1),%rcx
  mov    %rcx,0x28(%rsp)
  mov    0x80(%rsp),%rcx
  add    %rdi,%rcx
  mov    %rcx,0x208(%rsp)
  mov    %r9,%rcx
  neg    %rcx
  shl    $0x3,%rcx
  add    %rcx,%r10
  add    %r12,%rcx
  mov    %r10,0x1e0(%rsp)
  lea    -0x8(%rax),%r10
  lea    (%r8,%r10,1),%rax
  sub    %r14,%rax
  mov    %rax,0x228(%rsp)
  mov    %r9,%rax
  add    %rbp,%rax
  lea    (%r8,%rax,8),%rax
  mov    %rax,0x230(%rsp)
  lea    0x0(%r13,%r14,1),%rax
  mov    %rax,0x60(%rsp)
  lea    0x1(%rbp,%r9,1),%rax
  lea    (%rsi,%r15,1),%rbp
  lea    (%r8,%rax,8),%r9
  mov    %r9,0xd8(%rsp)
  mov    0x148(%rsp),%rax
  lea    (%r12,%r14,1),%r9
  add    0x38(%rsp),%rdi
  mov    %r9,0xb8(%rsp)
  sub    $0x8,%rax
  mov    %rcx,0x1e8(%rsp)
  mov    %rax,0x270(%rsp)
  lea    0x8(%r13),%rax
  add    %rax,%rsi
  mov    %rax,0x238(%rsp)
  lea    0x2b0(%rsp),%rax
  mov    %rax,0x1d8(%rsp)
  lea    0x298(%rsp),%rax
  movl   $0x0,0x20(%rsp)
  movl   $0x0,0x19c(%rsp)
  movl   $0x1,0x214(%rsp)
  mov    %rdi,0x268(%rsp)
  mov    %r12,%rdi
  mov    %r14,%r12
  mov    %rsi,0x278(%rsp)
  mov    %r15,%rsi
  mov    %rdi,%r14
  mov    %r11,%r15
  mov    %rax,0x1d0(%rsp)
  mov    %r13,%rax
  mov    %rsi,%r11
  mov    %r10,%r13
  movsd  %xmm14,0x138(%rsp)
  mov    %rax,%r10
  movapd %xmm15,%xmm14
  movsd  %xmm2,0x130(%rsp)
  movsd  %xmm2,0x128(%rsp)
L2331:
  cmp    %edx,0x214(%rsp)
  jne    L1684
L1928:
  mov    0x198(%rsp),%eax
  mov    %rbp,0x120(%rsp)
  mov    %r11,%rbp
  mov    %eax,0xa8(%rsp)
  mov    %r10,%rax
  mov    %rbx,%r10
  mov    %rax,%rbx
L708:
  movsd  %xmm2,0xb0(%rsp)
  movapd %xmm15,%xmm0
  mov    %r10,%rcx
  movsd  %xmm14,0xa0(%rsp)
  push   0x1d8(%rsp)
  push   0x1d8(%rsp)
  push   0x1b0(%rsp)
  push   0x1c0(%rsp)
  push   0x190(%rsp)
  push   0x180(%rsp)
  push   %rbx
  push   %rbp
  push   0x78(%rsp)
  push   0x140(%rsp)
  push   0x110(%rsp)
  push   0xe0(%rsp)
  mov    0xf8(%rsp),%r9
  mov    0xe0(%rsp),%r8
  mov    0xb0(%rsp),%rdx
  mov    0x90(%rsp),%esi
  mov    0x64(%rsp),%edi
  mov    %r10,0xa0(%rsp)
  movsd  %xmm15,0xb8(%rsp)
  call   <trsbox_@plt>
  mov    D98(%rip),%rax
  movsd  0x2f8(%rsp),%xmm1
  add    $0x60,%rsp
  movsd  0xb0(%rsp),%xmm2
  mov    0x40(%rsp),%r10
  movq   %rax,%xmm4
  movsd  0x58(%rsp),%xmm15
  movsd  0xa0(%rsp),%xmm14
  ucomisd %xmm1,%xmm2
  ja     L1078
  movapd %xmm1,%xmm6
  sqrtsd %xmm6,%xmm6
L519:
  movapd %xmm15,%xmm5
  minsd  %xmm6,%xmm5
  movapd %xmm5,%xmm6
  movapd %xmm14,%xmm5
  mulsd  %xmm4,%xmm5
  movsd  %xmm5,0x1b0(%rsp)
  comisd %xmm6,%xmm5
  jbe    L611
  movsd  D47(%rip),%xmm3
  mov    0xa8(%rsp),%eax
  mov    0x290(%rsp),%r9d
  mulsd  %xmm14,%xmm3
  add    $0x2,%eax
  mulsd  %xmm3,%xmm3
  cmp    %r9d,%eax
  jge    L2627
  movsd  D393(%rip),%xmm1
  movsd  0x130(%rsp),%xmm7
  maxsd  0x128(%rsp),%xmm7
  movsd  0x180(%rsp),%xmm5
  movsd  0x2b0(%rsp),%xmm0
  mulsd  %xmm14,%xmm1
  maxsd  %xmm7,%xmm5
  comisd %xmm2,%xmm0
  mulsd  %xmm14,%xmm1
  movapd %xmm5,%xmm7
  jbe    L2654
  mulsd  %xmm1,%xmm0
  comisd %xmm0,%xmm5
  ja     L2627
L2654:
  mov    0x4(%rsp),%eax
  divsd  %xmm14,%xmm7
  test   %eax,%eax
  jle    L121
  mov    0x30(%rsp),%edi
  mov    %r15,0x20(%rsp)
  mov    $0x1,%edx
  mov    %eax,%r15d
  mov    %r9d,0xe0(%rsp)
  mov    0xc0(%rsp),%r11
  mov    %r12,0x40(%rsp)
  mov    %edi,%esi
  mov    0x88(%rsp),%r9
  lea    -0x1(%rdi),%ecx
  mov    %r13,0x58(%rsp)
  mov    0xf8(%rsp),%r12
  mov    %r10,0xa0(%rsp)
  mov    0x38(%rsp),%r13
  mov    %edi,%r10d
  mov    %rbp,0xb0(%rsp)
  mov    0x78(%rsp),%rbp
  mov    %r14,0xc8(%rsp)
  mov    0x98(%rsp),%r14
  jmp    L1661
  xchg   %ax,%ax
L203:
  ucomisd %xmm1,%xmm0
  movsd  -0x8(%rbx,%rdx,8),%xmm5
  jp     L192
  jne    L192
L1157:
  xorpd  D167(%rip),%xmm5
L192:
  comisd %xmm5,%xmm7
  ja     L2088
L1367:
  add    $0x1,%rdx
  add    %r10d,%esi
  cmp    %edx,%r15d
  jl     L1589
L1661:
  movsd  -0x8(%r13,%rdx,8),%xmm0
  ucomisd -0x8(%r11,%rdx,8),%xmm0
  mov    %edx,%edi
  lea    0x1(%rdx),%eax
  movsd  -0x8(%r12,%rdx,8),%xmm1
  jp     L487
  je     L203
L487:
  ucomisd %xmm1,%xmm0
  jp     L1367
  jne    L1367
  movsd  -0x8(%rbx,%rdx,8),%xmm5
  jmp    L1157
L2088:
  imul   %edi,%eax
  sar    %eax
  cltq
  movsd  -0x8(%r14,%rax,8),%xmm1
  test   %r10d,%r10d
  jle    L1057
  movslq %esi,%rax
  lea    0x0(%rbp,%rax,8),%r8
  xor    %eax,%eax
  nopw   0x0(%rax,%rax,1)
L1495:
  movsd  0x8(%r8,%rax,8),%xmm0
  mov    %rax,%rdi
  mulsd  %xmm0,%xmm0
  mulsd  (%r9,%rax,8),%xmm0
  add    $0x1,%rax
  addsd  %xmm0,%xmm1
  cmp    %rdi,%rcx
  jne    L1495
L1057:
  mulsd  %xmm4,%xmm1
  movapd %xmm1,%xmm0
  mulsd  %xmm14,%xmm0
  addsd  %xmm5,%xmm0
  comisd %xmm0,%xmm7
  jbe    L1367
  mov    0x20(%rsp),%r15
  mov    0x40(%rsp),%r12
  mov    0x58(%rsp),%r13
  mov    0xa0(%rsp),%r10
  mov    0xb0(%rsp),%rbp
  mov    0xc8(%rsp),%r14
L2627:
  movl   $0xffffffff,0x20(%rsp)
L1635:
  mov    0x30(%rsp),%eax
  mov    0x50(%rsp),%rsi
  mov    $0x1,%ecx
  movl   $0x0,0x74(%rsp)
  test   %eax,%eax
  jle    L1233
  mov    %r15,0x40(%rsp)
  mov    0x28(%rsp),%rdi
  xor    %r8d,%r8d
  mov    0x4(%rsp),%r9d
  mov    0x30(%rsp),%r15d
L1921:
  mov    %r10,%rax
  mov    %rsi,%rdx
  movapd %xmm2,%xmm1
  test   %r9d,%r9d
  jle    L345
  nop
L260:
  movsd  (%rdx),%xmm0
  subsd  (%rax),%xmm0
  add    $0x8,%rax
  add    %r12,%rdx
  mulsd  %xmm0,%xmm0
  addsd  %xmm0,%xmm1
  cmp    %rax,%rdi
  jne    L260
L345:
  comisd %xmm3,%xmm1
  maxsd  %xmm3,%xmm1
  lea    0x1(%rcx),%eax
  cmova  %ecx,%r8d
  movapd %xmm1,%xmm3
  add    $0x8,%rsi
  cmp    %ecx,%r15d
  je     L1068
  mov    %eax,%ecx
  jmp    L1921
L1589:
  mov    0xe0(%rsp),%r9d
  mov    0x20(%rsp),%r15
  mov    0x40(%rsp),%r12
  mov    0x58(%rsp),%r13
  mov    0xa0(%rsp),%r10
  mov    0xb0(%rsp),%rbp
  mov    0xc8(%rsp),%r14
L121:
  comisd 0x188(%rsp),%xmm14
  ja     L2325
  movl   $0xffffffff,0x20(%rsp)
L199:
  mov    0x4(%rsp),%edi
  xor    %eax,%eax
  test   %edi,%edi
  jle    L2212
  mov    %r12,0x40(%rsp)
  mov    %r9d,%r11d
  mov    0x160(%rsp),%rdx
  mov    %r13,0x58(%rsp)
  mov    0x1c0(%rsp),%rdi
  mov    0x1c8(%rsp),%r8
  mov    0x190(%rsp),%r9
  mov    0xc0(%rsp),%r12
  mov    0xf8(%rsp),%r13
  mov    0x38(%rsp),%rcx
  jmp    L136
L665:
  mov    %rsi,%rax
L136:
  movsd  (%r9,%rax,8),%xmm1
  addsd  (%rcx,%rax,8),%xmm1
  movsd  %xmm1,(%rdx,%rax,8)
  movsd  (%rdi,%rax,8),%xmm0
  maxsd  %xmm1,%xmm0
  movsd  %xmm0,(%rdx,%rax,8)
  movsd  (%r8,%rax,8),%xmm1
  minsd  %xmm0,%xmm1
  movsd  %xmm1,(%rdx,%rax,8)
  movsd  (%rcx,%rax,8),%xmm0
  ucomisd (%r12,%rax,8),%xmm0
  jp     L2655
  jne    L2655
  movsd  (%rdi,%rax,8),%xmm0
  movsd  %xmm0,(%rdx,%rax,8)
  movsd  (%rcx,%rax,8),%xmm0
L2655:
  ucomisd 0x0(%r13,%rax,8),%xmm0
  jp     L2291
  jne    L2291
  movsd  (%r8,%rax,8),%xmm0
  movsd  %xmm0,(%rdx,%rax,8)
L2291:
  lea    0x1(%rax),%rsi
  cmp    %rax,%r15
  jne    L665
  mov    0x40(%rsp),%r12
  mov    0x58(%rsp),%r13
  mov    %r11d,%r9d
L2212:
  cmp    %r9d,0x310(%rsp)
  jle    L2482
  lea    0x1(%r9),%eax
  movsd  %xmm6,0x40(%rsp)
  mov    0x160(%rsp),%rdx
  mov    0x4(%rsp),%esi
  mov    %r10,0xb0(%rsp)
  mov    0x240(%rsp),%rdi
  mov    %eax,0x290(%rsp)
  mov    0x1f0(%rsp),%rax
  movsd  %xmm2,0xc8(%rsp)
  movsd  %xmm14,0xa0(%rsp)
  movsd  %xmm15,0x58(%rsp)
  call   *%rax
  mov    D98(%rip),%rax
  movsd  0x40(%rsp),%xmm6
  cmpl   $0x3,0x308(%rsp)
  movsd  0x58(%rsp),%xmm15
  movsd  %xmm0,0xd0(%rsp)
  movsd  0xa0(%rsp),%xmm14
  mov    0xb0(%rsp),%r10
  movq   %rax,%xmm4
  movsd  0xc8(%rsp),%xmm2
  je     L2778
  movslq 0x294(%rsp),%rax
  mov    0xf0(%rsp),%rdi
  cmpl   $0xffffffff,0x20(%rsp)
  mov    %eax,0xa0(%rsp)
  movsd  (%rdi,%rax,8),%xmm11
  je     L2809
  mov    0x4(%rsp),%edx
  test   %edx,%edx
  jle    L731
L1651:
  mov    %r15,0x40(%rsp)
  mov    0x4(%rsp),%r8d
  movapd %xmm2,%xmm3
  xor    %edi,%edi
  mov    0x80(%rsp),%r9
  mov    $0x2,%ecx
  mov    $0x1,%edx
  mov    0x98(%rsp),%r15
  nopl   0x0(%rax,%rax,1)
L2537:
  movsd  -0x10(%rbp,%rcx,8),%xmm1
  movsd  -0x10(%r9,%rcx,8),%xmm0
  movslq %edi,%rax
  lea    (%r15,%rax,8),%rsi
  mov    $0x1,%eax
  mulsd  %xmm1,%xmm0
  addsd  %xmm0,%xmm3
  jmp    L714
  nopl   0x0(%rax,%rax,1)
L532:
  mulsd  -0x8(%rsi,%rax,8),%xmm0
  add    $0x1,%rax
  addsd  %xmm0,%xmm3
  cmp    %rax,%rcx
  je     L615
L714:
  movsd  -0x8(%rbp,%rax,8),%xmm0
  mulsd  %xmm1,%xmm0
  cmp    %eax,%edx
  jne    L532
  mulsd  %xmm4,%xmm0
  jmp    L532
  nop
L615:
  add    %edx,%edi
  add    $0x1,%edx
  add    $0x1,%rcx
  cmp    %edx,%r8d
  jge    L2537
  mov    0x40(%rsp),%r15
L219:
  mov    0x30(%rsp),%eax
  test   %eax,%eax
  jle    L2887
  mov    0x60(%rsp),%rdx
  mov    0x88(%rsp),%rcx
  xor    %eax,%eax
  mov    0x90(%rsp),%rsi
  nopw   0x0(%rax,%rax,1)
L2028:
  movsd  (%rdx,%rax,8),%xmm0
  movsd  (%rcx,%rax,8),%xmm1
  add    $0x1,%rax
  mulsd  %xmm4,%xmm1
  mulsd  %xmm0,%xmm0
  mulsd  %xmm1,%xmm0
  addsd  %xmm0,%xmm3
  cmp    %rax,%rsi
  jne    L2028
L2887:
  movsd  0xd0(%rsp),%xmm0
  mov    0xa8(%rsp),%eax
  comisd %xmm14,%xmm6
  cmova  0x290(%rsp),%eax
  subsd  %xmm11,%xmm0
  mov    %eax,0xa8(%rsp)
  mov    0x20(%rsp),%eax
  movapd %xmm0,%xmm7
  subsd  %xmm3,%xmm7
  movapd %xmm7,%xmm5
  andpd  D412(%rip),%xmm5
  movsd  %xmm5,0x40(%rsp)
  test   %eax,%eax
  je     L753
  comisd %xmm2,%xmm3
  jae    L2377
  divsd  %xmm3,%xmm0
  mulsd  %xmm4,%xmm15
  movsd  %xmm0,0x168(%rsp)
  movapd %xmm0,%xmm5
  movsd  D165(%rip),%xmm0
  comisd %xmm5,%xmm0
  jb     L384
  movapd %xmm6,%xmm5
  minsd  %xmm15,%xmm5
  movapd %xmm5,%xmm15
L897:
  movsd  D262(%rip),%xmm1
  movapd %xmm15,%xmm0
  comisd 0xd0(%rsp),%xmm11
  mulsd  %xmm14,%xmm1
  cmpnlesd %xmm1,%xmm0
  andpd  %xmm0,%xmm15
  andnpd %xmm14,%xmm0
  orpd   %xmm0,%xmm15
  jbe    L753
  movapd %xmm15,%xmm5
  mov    0x30(%rsp),%eax
  mulsd  %xmm15,%xmm5
  movsd  %xmm5,0x58(%rsp)
  test   %eax,%eax
  jle    L753
  mov    0x34(%rsp),%eax
  movsd  0x8(%rsp),%xmm13
  xor    %r8d,%r8d
  movapd %xmm2,%xmm10
  mov    0x150(%rsp),%rsi
  movapd %xmm2,%xmm12
  mov    $0x1,%edi
  movsd  D206(%rip),%xmm8
  mov    0x268(%rsp),%rdx
  lea    0x1(%rax),%ecx
L135:
  mov    0x48(%rsp),%rax
  mov    0x34(%rsp),%r11d
  movapd %xmm2,%xmm5
  lea    (%rax,%rsi,1),%r9
  mov    $0x1,%eax
  test   %r11d,%r11d
  jle    L299
  nopl   0x0(%rax)
L2524:
  movsd  (%r9),%xmm0
  add    $0x1,%eax
  add    %r12,%r9
  mulsd  %xmm0,%xmm0
  addsd  %xmm0,%xmm5
  cmp    %ecx,%eax
  jne    L2524
L299:
  mov    0x1e8(%rsp),%rax
  mulsd  0x10(%rsp),%xmm5
  movsd  -0x8(%rax,%rsi,1),%xmm9
  mov    0x4(%rsp),%eax
  mulsd  %xmm9,%xmm9
  addsd  %xmm9,%xmm5
  test   %eax,%eax
  jle    L39
  mov    0x78(%rsp),%rax
  movapd %xmm2,%xmm1
  lea    (%rax,%rsi,1),%r9
  mov    0x38(%rsp),%rax
  nopl   0x0(%rax)
L2864:
  movsd  (%r9),%xmm0
  subsd  (%rax),%xmm0
  add    $0x8,%rax
  add    %r12,%r9
  mulsd  %xmm0,%xmm0
  addsd  %xmm0,%xmm1
  cmp    %rax,%rdx
  jne    L2864
L1171:
  divsd  0x58(%rsp),%xmm1
  mulsd  %xmm1,%xmm1
  movapd %xmm5,%xmm0
  comisd %xmm1,%xmm8
  ja     L2371
  mulsd  %xmm1,%xmm0
  mulsd  %xmm1,%xmm9
L2371:
  comisd %xmm12,%xmm0
  jbe    L1808
  movapd %xmm0,%xmm12
  movapd %xmm5,%xmm13
  mov    %edi,%r8d
L1808:
  maxsd  %xmm10,%xmm9
  lea    0x1(%rdi),%eax
  add    $0x8,%rsi
  movapd %xmm9,%xmm10
  cmp    %edi,0x30(%rsp)
  je     L2298
  mov    %eax,%edi
  jmp    L135
L1068:
  mov    %r8d,0x74(%rsp)
  mov    0x40(%rsp),%r15
  test   %r8d,%r8d
  jne    L1817
L1233:
  cmpl   $0xffffffff,0x20(%rsp)
  je     L3037
  movsd  0x168(%rsp),%xmm5
  comisd %xmm2,%xmm5
  ja     L610
  movapd %xmm15,%xmm5
  maxsd  %xmm6,%xmm5
  comisd %xmm14,%xmm5
  ja     L610
  comisd 0x188(%rsp),%xmm14
  jbe    L1794
  movl   $0x0,0x74(%rsp)
  mov    0x290(%rsp),%r9d
L2325:
  movsd  D285(%rip),%xmm6
  movapd %xmm14,%xmm5
  divsd  0x188(%rsp),%xmm5
  movsd  %xmm5,0x168(%rsp)
  comisd %xmm5,%xmm6
  jae    L2888
  movsd  D173(%rip),%xmm0
  comisd %xmm5,%xmm0
  jae    L486
  movsd  D165(%rip),%xmm0
  mulsd  %xmm0,%xmm14
  jmp    L1664
L610:
  movl   $0x0,0x74(%rsp)
  jmp    L708
L2298:
  mulsd  %xmm4,%xmm10
  movapd %xmm12,%xmm0
  movsd  0x8(%rsp),%xmm1
  cmplesd %xmm10,%xmm0
  comisd %xmm12,%xmm10
  cmovae 0x74(%rsp),%r8d
  mov    %r8d,0x74(%rsp)
  andpd  %xmm0,%xmm1
  andnpd %xmm13,%xmm0
  orpd   %xmm1,%xmm0
  movsd  %xmm0,0x8(%rsp)
L753:
  mov    %r10,0x108(%rsp)
  mov    %r14,%r9
  movsd  %xmm2,0x110(%rsp)
  movsd  %xmm14,0xe8(%rsp)
  movsd  %xmm15,0xe0(%rsp)
  movsd  %xmm3,0xc8(%rsp)
  movsd  %xmm7,0xb0(%rsp)
  movsd  %xmm6,0xa0(%rsp)
  movsd  %xmm11,0x58(%rsp)
  push   %rbx
  mov    0x7c(%rsp),%eax
  sub    $0x1,%eax
  push   %rax
  mov    0x158(%rsp),%rcx
  mov    0x40(%rsp),%esi
  movsd  0x18(%rsp),%xmm1
  movsd  0x20(%rsp),%xmm0
  mov    0x370(%rsp),%r8d
  mov    0x78(%rsp),%rdx
  mov    0x14(%rsp),%edi
  call   <update_@plt>
  movslq 0x84(%rsp),%r9
  mov    0x98(%rsp),%rsi
  lea    -0x8(%rsi,%r9,8),%rax
  movsd  (%rax),%xmm5
  movq   $0x0,(%rax)
  pop    %rax
  pop    %rdx
  mov    0x4(%rsp),%ecx
  mov    D98(%rip),%rax
  movsd  0x58(%rsp),%xmm11
  movsd  0xa0(%rsp),%xmm6
  test   %ecx,%ecx
  movq   %rax,%xmm4
  movsd  0xb0(%rsp),%xmm7
  movsd  0xc8(%rsp),%xmm3
  movsd  0xe0(%rsp),%xmm15
  movsd  0xe8(%rsp),%xmm14
  mov    0x108(%rsp),%r10
  movsd  0x110(%rsp),%xmm2
  jle    L2191
  mov    0x90(%rsp),%rax
  mov    0x78(%rsp),%rdi
  mov    %r9,0xa0(%rsp)
  xor    %esi,%esi
  mov    0x98(%rsp),%r11
  mov    %r13,0xb0(%rsp)
  add    %r9,%rax
  mov    %rax,0x58(%rsp)
  lea    0x8(%r11),%rcx
  lea    (%rdi,%rax,8),%rax
  xor    %edi,%edi
  mov    %rax,%r8
  mov    %rax,%r9
  mov    %rcx,%r13
  nopl   (%rax)
L2362:
  movsd  (%r8),%xmm1
  movslq %edi,%rdx
  lea    (%r11,%rdx,8),%rax
  add    %rsi,%rdx
  mulsd  %xmm5,%xmm1
  lea    0x0(%r13,%rdx,8),%rcx
  mov    %r9,%rdx
  nopl   0x0(%rax,%rax,1)
L2599:
  movsd  (%rdx),%xmm0
  add    $0x8,%rax
  add    %r12,%rdx
  mulsd  %xmm1,%xmm0
  addsd  -0x8(%rax),%xmm0
  movsd  %xmm0,-0x8(%rax)
  cmp    %rax,%rcx
  jne    L2599
  lea    0x1(%rdi,%rsi,1),%edi
  lea    0x1(%rsi),%rax
  add    %r12,%r8
  cmp    %rsi,%r15
  je     L1690
  mov    %rax,%rsi
  jmp    L2362
L611:
  mov    0xa8(%rsp),%eax
  addl   $0x1,0x20(%rsp)
  mov    %eax,0x210(%rsp)
L228:
  movsd  0x138(%rsp),%xmm0
  mulsd  D53(%rip),%xmm0
  comisd %xmm1,%xmm0
  jae    L1294
L2875:
  mov    0x294(%rsp),%eax
  mov    0x20(%rsp),%esi
  movsd  D206(%rip),%xmm8
  mov    %eax,0xa0(%rsp)
  mov    %eax,%edx
  test   %esi,%esi
  je     L1592
L104:
  movslq 0xa0(%rsp),%rax
  mov    0x220(%rsp),%rdi
  movb   $0x0,0xb0(%rsp)
  mov    %r15,0x40(%rsp)
  movsd  0x8(%rsp),%xmm13
  mov    %eax,0x214(%rsp)
  shl    $0x3,%rax
  movsd  0x2a0(%rsp),%xmm5
  mov    %rax,%rsi
  mov    %rax,0x178(%rsp)
  mov    %rdi,%rax
  movsd  0x2a8(%rsp),%xmm3
  add    %rsi,%rax
  mov    %r12,0xc8(%rsp)
  mov    0x120(%rsp),%r11
  mov    %rax,0xe0(%rsp)
  movslq 0x74(%rsp),%rax
  movsd  %xmm15,0x200(%rsp)
  movsd  0x138(%rsp),%xmm15
  lea    (%rdi,%rax,8),%rax
  mov    %rax,0xe8(%rsp)
  mov    0x34(%rsp),%eax
  add    $0x1,%eax
  mov    %eax,0x108(%rsp)
  mov    0x30(%rsp),%eax
  lea    -0x1(%rax),%edi
  lea    0x2(%r15),%rax
  lea    0x2(%rdi),%r8
  mov    %rax,0x10(%rsp)
  mov    %rdi,0x110(%rsp)
  mov    %r8,0x118(%rsp)
  nopl   0x0(%rax,%rax,1)
L2277:
  mov    0x30(%rsp),%eax
  test   %eax,%eax
  jle    L2375
  mov    0x70(%rsp),%eax
  mov    %r11,0x58(%rsp)
  mov    $0x1,%edi
  mov    0x68(%rsp),%r8
  mov    0x50(%rsp),%r9
  mov    0x40(%rsp),%r15
  mov    0x60(%rsp),%r11
  mov    %rax,0x8(%rsp)
  mov    0xc8(%rsp),%r12
  nopl   0x0(%rax,%rax,1)
L1144:
  mov    0x4(%rsp),%eax
  movapd %xmm2,%xmm0
  movapd %xmm2,%xmm7
  movapd %xmm2,%xmm9
  test   %eax,%eax
  jle    L213
  mov    %r8,%rcx
  mov    %r9,%rdx
  movapd %xmm2,%xmm10
  xor    %eax,%eax
  movapd %xmm2,%xmm7
  movapd %xmm2,%xmm9
  nopl   0x0(%rax,%rax,1)
L2346:
  movsd  (%rdx),%xmm1
  movsd  0x0(%rbp,%rax,8),%xmm0
  mov    %rax,%rsi
  add    %r12,%rdx
  movapd %xmm1,%xmm11
  mulsd  %xmm0,%xmm11
  mulsd  (%r10,%rax,8),%xmm1
  add    $0x1,%rax
  mulsd  (%rcx),%xmm0
  add    %r13,%rcx
  addsd  %xmm11,%xmm7
  addsd  %xmm1,%xmm10
  addsd  %xmm0,%xmm9
  cmp    %rsi,%r15
  jne    L2346
  movapd %xmm7,%xmm0
  mulsd  %xmm4,%xmm0
  addsd  %xmm10,%xmm0
  mulsd  %xmm7,%xmm0
L213:
  movsd  %xmm0,-0x8(%rbx,%rdi,8)
  add    $0x8,%r9
  add    $0x8,%r8
  movsd  %xmm9,-0x8(%r14,%rdi,8)
  movsd  %xmm7,-0x8(%r11,%rdi,8)
  add    $0x1,%rdi
  cmp    %rdi,0x8(%rsp)
  jne    L1144
  mov    0x58(%rsp),%r11
L2375:
  mov    0x34(%rsp),%edi
  test   %edi,%edi
  jle    L1620
  mov    0x30(%rsp),%r12d
  mov    %r10,0x8(%rsp)
  movapd %xmm2,%xmm12
  mov    $0x1,%esi
  mov    0x48(%rsp),%r15
  mov    0x108(%rsp),%r10d
  mov    0x110(%rsp),%r9
  mov    0x118(%rsp),%r8
  mov    %r12d,%edi
  nopl   0x0(%rax,%rax,1)
L1703:
  test   %r12d,%r12d
  jle    L2523
  movslq %edi,%rax
  movapd %xmm2,%xmm1
  lea    (%r15,%rax,8),%rdx
  mov    $0x1,%eax
  nopl   (%rax)
L655:
  movsd  (%rdx,%rax,8),%xmm0
  mulsd  -0x8(%rbx,%rax,8),%xmm0
  add    $0x1,%rax
  addsd  %xmm0,%xmm1
  cmp    %rax,%r8
  jne    L655
  movapd %xmm1,%xmm0
  xor    %eax,%eax
  mulsd  %xmm1,%xmm0
  subsd  %xmm0,%xmm12
  nop
L1492:
  movsd  0x8(%rdx,%rax,8),%xmm0
  mov    %rax,%rcx
  mulsd  %xmm1,%xmm0
  addsd  (%r14,%rax,8),%xmm0
  movsd  %xmm0,(%r14,%rax,8)
  add    $0x1,%rax
  cmp    %rcx,%r9
  jne    L1492
L2523:
  add    $0x1,%esi
  add    %r12d,%edi
  cmp    %r10d,%esi
  jne    L1703
  mov    0x8(%rsp),%r10
L1959:
  mov    0x4(%rsp),%esi
  test   %esi,%esi
  jle    L993
  mov    0x360(%rsp),%r9d
  mov    %r14,0x8(%rsp)
  mov    $0x1,%esi
  movapd %xmm2,%xmm9
  mov    0x30(%rsp),%r14d
  mov    0xd8(%rsp),%rdi
  movapd %xmm2,%xmm10
  movapd %xmm2,%xmm11
  mov    0xb8(%rsp),%r12
  mov    0x90(%rsp),%r8
  mov    %r9d,%r15d
  nop
L2842:
  movsd  -0x8(%rbp,%rsi,8),%xmm7
  movapd %xmm7,%xmm0
  mulsd  %xmm7,%xmm0
  addsd  %xmm0,%xmm9
  test   %r14d,%r14d
  jle    L82
  mov    0x18(%rsp),%rcx
  movslq %r9d,%rax
  movapd %xmm2,%xmm0
  lea    (%rcx,%rax,8),%rdx
  xor    %eax,%eax
  xchg   %ax,%ax
L627:
  movsd  (%rbx,%rax,8),%xmm1
  mulsd  0x8(%rdx,%rax,8),%xmm1
  add    $0x1,%rax
  addsd  %xmm1,%xmm0
  cmp    %rax,%r8
  jne    L627
L2020:
  mulsd  %xmm0,%xmm7
  mov    %rbp,%rax
  mov    %rdi,%rdx
  addsd  %xmm7,%xmm10
  nopw   0x0(%rax,%rax,1)
L283:
  movsd  (%rdx),%xmm1
  mulsd  (%rax),%xmm1
  mov    %rax,%rcx
  add    %r13,%rdx
  add    $0x8,%rax
  addsd  %xmm1,%xmm0
  cmp    %rcx,%r11
  jne    L283
  movsd  %xmm0,-0x8(%r12,%rsi,8)
  movsd  -0x8(%rbp,%rsi,8),%xmm1
  add    $0x8,%rdi
  add    %r15d,%r9d
  mulsd  %xmm1,%xmm0
  mulsd  -0x8(%r10,%rsi,8),%xmm1
  add    $0x1,%rsi
  addsd  %xmm0,%xmm10
  addsd  %xmm1,%xmm11
  cmp    %rsi,0x10(%rsp)
  jne    L2842
  movapd %xmm11,%xmm1
  movapd %xmm9,%xmm7
  mov    0x8(%rsp),%r14
  mulsd  %xmm11,%xmm1
  mulsd  %xmm4,%xmm7
L2481:
  movapd %xmm15,%xmm0
  mov    0xe0(%rsp),%rax
  mov    0x20(%rsp),%ecx
  addsd  %xmm11,%xmm0
  addsd  %xmm11,%xmm0
  addsd  %xmm7,%xmm0
  mulsd  %xmm9,%xmm0
  addsd  %xmm0,%xmm1
  movsd  (%rax),%xmm0
  addsd  %xmm8,%xmm0
  addsd  %xmm12,%xmm1
  movsd  %xmm0,(%rax)
  subsd  %xmm10,%xmm1
  test   %ecx,%ecx
  jne    L1101
  mov    0xe8(%rsp),%rax
  movapd %xmm5,%xmm13
  mulsd  %xmm1,%xmm13
  movsd  (%rax),%xmm0
  mulsd  %xmm0,%xmm0
  addsd  %xmm0,%xmm13
  comisd %xmm13,%xmm3
  jbe    L155
  comisd %xmm2,%xmm3
  jbe    L155
  mov    0x4(%rsp),%edx
  xor    %eax,%eax
  test   %edx,%edx
  jle    L28
  mov    0x40(%rsp),%r15
  mov    0x38(%rsp),%rdx
  mov    0x100(%rsp),%rcx
  nopw   0x0(%rax,%rax,1)
L1447:
  movsd  (%rcx,%rax,8),%xmm0
  mov    %rax,%rsi
  movsd  %xmm0,(%rdx,%rax,8)
  subsd  (%r10,%rax,8),%xmm0
  movsd  %xmm0,0x0(%rbp,%rax,8)
  add    $0x1,%rax
  cmp    %rsi,%r15
  jne    L1447
L28:
  movb   $0x1,0xb0(%rsp)
  movapd %xmm2,%xmm3
  jmp    L2277
  nopl   0x0(%rax,%rax,1)
L82:
  movapd %xmm2,%xmm0
  jmp    L2020
L993:
  movapd %xmm2,%xmm7
  movapd %xmm2,%xmm1
  movapd %xmm2,%xmm9
  movapd %xmm2,%xmm10
  movapd %xmm2,%xmm11
  jmp    L2481
L1620:
  movapd %xmm2,%xmm12
  jmp    L1959
L1690:
  mov    0x34(%rsp),%ecx
  mov    0xa0(%rsp),%r9
  mov    0xb0(%rsp),%r13
  test   %ecx,%ecx
  jle    L2009
L2569:
  mov    0x30(%rsp),%eax
  mov    %r13,0xa0(%rsp)
  mov    $0x1,%edi
  mov    0x270(%rsp),%rcx
  mov    0x34(%rsp),%r13d
  mov    %r15,0x58(%rsp)
  mov    0x88(%rsp),%rdx
  lea    -0x1(%rax),%esi
  mov    %eax,%r15d
  nopl   0x0(%rax)
L2865:
  movsd  (%rcx,%r9,8),%xmm1
  xor    %eax,%eax
  mulsd  %xmm7,%xmm1
  test   %r15d,%r15d
  jle    L1309
  nopl   0x0(%rax)
L2943:
  movsd  0x8(%rcx,%rax,8),%xmm0
  mov    %rax,%r8
  mulsd  %xmm1,%xmm0
  addsd  (%rdx,%rax,8),%xmm0
  movsd  %xmm0,(%rdx,%rax,8)
  add    $0x1,%rax
  cmp    %r8,%rsi
  jne    L2943
L1309:
  add    $0x1,%edi
  add    %r12,%rcx
  cmp    %edi,%r13d
  jge    L2865
  mov    0xf0(%rsp),%rax
  mov    0x58(%rsp),%r15
  movsd  0xd0(%rsp),%xmm5
  mov    0xa0(%rsp),%r13
  movsd  %xmm5,(%rax,%r9,8)
  mov    0x90(%rsp),%rax
  add    %r9,%rax
  mov    %rax,0x58(%rsp)
  mov    0x4(%rsp),%eax
  test   %eax,%eax
  jle    L853
L1980:
  mov    0x78(%rsp),%rax
  mov    0x58(%rsp),%rdi
  mov    0x4(%rsp),%esi
  lea    (%rax,%rdi,8),%rcx
  mov    0x258(%rsp),%rax
  mov    0x18(%rsp),%rdi
  add    %r9,%rax
  lea    (%rdi,%rax,8),%rdx
  mov    0x38(%rsp),%rdi
  mov    $0x1,%eax
  nopl   0x0(%rax,%rax,1)
L367:
  movsd  -0x8(%rdi,%rax,8),%xmm0
  movsd  %xmm0,(%rcx)
  movsd  (%rdx),%xmm0
  add    %r12,%rcx
  add    %r13,%rdx
  movsd  %xmm0,-0x8(%rbx,%rax,8)
  add    $0x1,%rax
  cmp    %eax,%esi
  jge    L367
  mov    0x30(%rsp),%edi
  test   %edi,%edi
  jle    L1583
L1539:
  mov    0x58(%rsp),%rdi
  mov    0x48(%rsp),%rax
  mov    $0x1,%edx
  mov    %r15,0x58(%rsp)
  mov    %r13,0xa0(%rsp)
  sub    %r9,%rdx
  mov    0x50(%rsp),%rsi
  lea    (%rax,%rdi,8),%r8
  mov    0x34(%rsp),%eax
  mov    %r14,0xc8(%rsp)
  mov    $0x1,%edi
  mov    0x28(%rsp),%r9
  mov    0x278(%rsp),%r11
  mov    %rbp,0xb0(%rsp)
  mov    0x4(%rsp),%r13d
  mov    0x30(%rsp),%r14d
  lea    0x1(%rax),%ecx
  mov    %eax,%ebp
  nopl   0x0(%rax,%rax,1)
L263:
  mov    %r8,%rax
  movapd %xmm2,%xmm5
  mov    $0x1,%r15d
  test   %ebp,%ebp
  jle    L1514
  nopl   0x0(%rax)
L2278:
  movsd  (%rax),%xmm0
  mulsd  (%rax,%rdx,8),%xmm0
  add    $0x1,%r15d
  add    %r12,%rax
  addsd  %xmm0,%xmm5
  cmp    %ecx,%r15d
  jne    L2278
L1514:
  mov    %r10,%rax
  mov    %rsi,%r15
  movapd %xmm2,%xmm1
  test   %r13d,%r13d
  jle    L1352
  nopl   0x0(%rax,%rax,1)
L1922:
  movsd  (%r15),%xmm0
  mulsd  (%rax),%xmm0
  add    $0x8,%rax
  add    %r12,%r15
  addsd  %xmm0,%xmm1
  cmp    %rax,%r9
  jne    L1922
  mulsd  %xmm5,%xmm1
  mov    %rsi,%r15
  mov    %rbx,%rax
  nopl   0x0(%rax,%rax,1)
L2138:
  movsd  (%r15),%xmm0
  add    $0x8,%rax
  add    %r12,%r15
  mulsd  %xmm1,%xmm0
  addsd  -0x8(%rax),%xmm0
  movsd  %xmm0,-0x8(%rax)
  cmp    %rax,%r11
  jne    L2138
L1352:
  add    $0x1,%edi
  add    $0x8,%rsi
  add    $0x1,%rdx
  cmp    %edi,%r14d
  jge    L263
  mov    0x4(%rsp),%r11d
  mov    0x58(%rsp),%r15
  mov    0xa0(%rsp),%r13
  mov    0xb0(%rsp),%rbp
  mov    0xc8(%rsp),%r14
  test   %r11d,%r11d
  jle    L1737
L1583:
  mov    0x4(%rsp),%ecx
  mov    0x80(%rsp),%rdx
  mov    $0x1,%eax
  nopw   0x0(%rax,%rax,1)
L1278:
  movsd  -0x8(%rbx,%rax,8),%xmm0
  mulsd  %xmm7,%xmm0
  addsd  -0x8(%rdx,%rax,8),%xmm0
  movsd  %xmm0,-0x8(%rdx,%rax,8)
  add    $0x1,%rax
  cmp    %eax,%ecx
  jge    L1278
  comisd 0xd0(%rsp),%xmm11
  ja     L2859
L250:
  mov    0x20(%rsp),%ecx
  test   %ecx,%ecx
  jne    L2421
L1954:
  movsd  0x130(%rsp),%xmm5
  movl   $0x0,0x20(%rsp)
  movsd  %xmm5,0x180(%rsp)
  movsd  0x128(%rsp),%xmm5
  movsd  %xmm5,0x130(%rsp)
  movsd  0x40(%rsp),%xmm5
  movsd  %xmm5,0x128(%rsp)
  jmp    L708
L155:
  cmpb   $0x0,0xb0(%rsp)
  mov    0x40(%rsp),%r15
  movsd  %xmm13,0x8(%rsp)
  movsd  0x200(%rsp),%xmm15
  mov    0xc8(%rsp),%r12
  movsd  %xmm1,0x10(%rsp)
  je     L444
  movsd  %xmm3,0x2a8(%rsp)
L444:
  mulsd  %xmm4,%xmm0
  mov    0x290(%rsp),%eax
  movsd  %xmm9,0x298(%rsp)
  comisd 0x8(%rsp),%xmm0
  mov    %eax,0xa8(%rsp)
  jb     L240
  cmp    %eax,0x198(%rsp)
  jge    L2935
L1659:
  movsd  %xmm2,0xe8(%rsp)
  movapd %xmm15,%xmm0
  movsd  %xmm14,0xe0(%rsp)
  movsd  %xmm8,0xc8(%rsp)
  movsd  %xmm6,0xb0(%rsp)
  push   0x250(%rsp)
  push   0x178(%rsp)
  push   %rbx
  push   %r14
  push   0x2a8(%rsp)
  push   0x2a8(%rsp)
  push   0x128(%rsp)
  push   0xf8(%rsp)
  mov    0x3a0(%rsp),%eax
  push   %rax
  push   0x190(%rsp)
  push   0xb8(%rsp)
  push   0xe0(%rsp)
  push   0xf8(%rsp)
  push   0xe8(%rsp)
  push   %r10
  mov    %r10,0xd0(%rsp)
  push   0x270(%rsp)
  push   0xd0(%rsp)
  push   0x218(%rsp)
  mov    0x3a0(%rsp),%eax
  push   %rax
  mov    0x3a0(%rsp),%eax
  push   %rax
  mov    0x260(%rsp),%rdx
  mov    0x2e0(%rsp),%r9
  mov    0x290(%rsp),%r8
  mov    0x268(%rsp),%rcx
  mov    0xd0(%rsp),%esi
  mov    0xa4(%rsp),%edi
  movsd  %xmm15,0xe0(%rsp)
  call   <rescue_@plt>
  movslq 0x334(%rsp),%rdx
  add    $0xa0,%rsp
  movsd  0xe8(%rsp),%xmm2
  cmp    0xa0(%rsp),%edx
  movsd  0x40(%rsp),%xmm15
  movapd %xmm2,%xmm1
  mov    0x58(%rsp),%r10
  movsd  %xmm2,0x138(%rsp)
  movsd  0xb0(%rsp),%xmm6
  movsd  0xc8(%rsp),%xmm8
  movsd  0xe0(%rsp),%xmm14
  jne    L2094
L1315:
  mov    0x290(%rsp),%eax
  mov    %eax,0x198(%rsp)
  test   %eax,%eax
  js     L656
  mov    0xa8(%rsp),%edi
  cmp    %edi,0x198(%rsp)
  jg     L512
  mov    0x20(%rsp),%eax
  test   %eax,%eax
  jne    L708
L1592:
  movsd  %xmm2,0xc8(%rsp)
  mov    %r10,%rcx
  movsd  %xmm14,0xb0(%rsp)
  movsd  %xmm15,0xa0(%rsp)
  movsd  %xmm8,0x58(%rsp)
  movsd  %xmm6,0x40(%rsp)
  push   0x218(%rsp)
  push   0x160(%rsp)
  push   %rbx
  lea    0x2c0(%rsp),%rax
  push   %rax
  lea    0x2c0(%rsp),%rax
  push   %rax
  push   0x128(%rsp)
  push   0x68(%rsp)
  mov    0xac(%rsp),%eax
  push   %rax
  push   %rdx
  push   0x140(%rsp)
  push   0x110(%rsp)
  mov    0x3b8(%rsp),%eax
  push   %rax
  mov    0x1a8(%rsp),%r9
  movsd  0x1a0(%rsp),%xmm0
  mov    0xc8(%rsp),%r8
  mov    0xb0(%rsp),%rdx
  mov    0x90(%rsp),%esi
  mov    0x64(%rsp),%edi
  mov    %r10,0x70(%rsp)
  call   <altmov_@plt>
  mov    0x64(%rsp),%eax
  add    $0x60,%rsp
  mov    0x10(%rsp),%r10
  movsd  0x40(%rsp),%xmm6
  movsd  0x58(%rsp),%xmm8
  movsd  0xa0(%rsp),%xmm15
  test   %eax,%eax
  mov    D98(%rip),%rax
  movsd  0xb0(%rsp),%xmm14
  movsd  0xc8(%rsp),%xmm2
  movq   %rax,%xmm4
  mov    0xa8(%rsp),%eax
  mov    %eax,0x210(%rsp)
  jle    L1837
L2552:
  mov    0x4(%rsp),%edx
  mov    0x38(%rsp),%rcx
  mov    $0x1,%eax
L1883:
  movsd  -0x8(%rcx,%rax,8),%xmm0
  subsd  -0x8(%r10,%rax,8),%xmm0
  movsd  %xmm0,-0x8(%rbp,%rax,8)
  add    $0x1,%rax
  cmp    %eax,%edx
  jge    L1883
L1837:
  mov    0x294(%rsp),%eax
  mov    %eax,0xa0(%rsp)
  jmp    L104
L2888:
  movsd  0x188(%rsp),%xmm14
L1664:
  movsd  0x1b0(%rsp),%xmm15
  cmpl   $0x1,0x308(%rsp)
  maxsd  %xmm14,%xmm15
  jg     L1464
L431:
  mov    %r9d,0xa8(%rsp)
  movl   $0x0,0x20(%rsp)
  jmp    L708
L384:
  movsd  D150(%rip),%xmm0
  comisd 0x168(%rsp),%xmm0
  jb     L1282
  movapd %xmm6,%xmm5
  maxsd  %xmm15,%xmm5
  movapd %xmm5,%xmm15
  jmp    L897
L1684:
  mov    0x4(%rsp),%edx
  test   %edx,%edx
  jle    L2783
  mov    0x80(%rsp),%rcx
  mov    $0x2,%edx
  xor    %r8d,%r8d
  mov    $0x1,%edi
  mov    %rcx,%rsi
L2123:
  mov    0x98(%rsp),%r9
  movslq %r8d,%rax
  lea    (%r9,%rax,8),%r9
  mov    $0x1,%eax
  nopl   0x0(%rax,%rax,1)
L1721:
  cmp    %eax,%edi
  jle    L421
  movsd  -0x8(%rbx,%rax,8),%xmm0
  mulsd  -0x8(%r9,%rax,8),%xmm0
  addsd  (%rsi),%xmm0
  movsd  %xmm0,(%rsi)
L421:
  movsd  -0x8(%r9,%rax,8),%xmm0
  mulsd  -0x10(%rbx,%rdx,8),%xmm0
  addsd  -0x8(%rcx,%rax,8),%xmm0
  movsd  %xmm0,-0x8(%rcx,%rax,8)
  add    $0x1,%rax
  cmp    %rax,%rdx
  jne    L1721
  add    %edi,%r8d
  lea    0x1(%rdi),%eax
  add    $0x1,%rdx
  add    $0x8,%rsi
  cmp    %edi,0x4(%rsp)
  je     L2783
  mov    %eax,%edi
  jmp    L2123
L2094:
  mov    0x4(%rsp),%ecx
  test   %ecx,%ecx
  jle    L1315
  mov    0x78(%rsp),%rdi
  movslq %edx,%rax
  mov    0x28(%rsp),%rsi
  add    0x90(%rsp),%rax
  lea    (%rdi,%rax,8),%rcx
  mov    %r10,%rax
L754:
  movsd  (%rcx),%xmm0
  add    $0x8,%rax
  add    %r12,%rcx
  movsd  %xmm0,-0x8(%rax)
  mulsd  %xmm0,%xmm0
  addsd  %xmm0,%xmm1
  cmp    %rax,%rsi
  jne    L754
  movsd  %xmm1,0x138(%rsp)
  jmp    L1315
L2421:
  mov    0x30(%rsp),%edx
  test   %edx,%edx
  jle    L2247
L188:
  movslq 0x294(%rsp),%rax
  mov    0xf0(%rsp),%rdi
  mov    0x30(%rsp),%ecx
  mov    0x1f8(%rsp),%rsi
  lea    (%rdi,%rax,8),%rdx
  mov    $0x1,%eax
L1230:
  movsd  -0x8(%rsi,%rax,8),%xmm0
  subsd  (%rdx),%xmm0
  movsd  %xmm0,-0x8(%r14,%rax,8)
  movq   $0x0,-0x8(%rbx,%rax,8)
  add    $0x1,%rax
  cmp    %eax,%ecx
  jge    L1230
  mov    0x34(%rsp),%eax
  test   %eax,%eax
  jle    L379
L230:
  mov    0x30(%rsp),%eax
  mov    %r10,0x58(%rsp)
  mov    $0x1,%r8d
  lea    -0x1(%rax),%esi
  mov    %eax,%r9d
  mov    %eax,%r10d
  lea    0x2(%rsi),%rdi
L2925:
  test   %r10d,%r10d
  jle    L2750
  mov    0x48(%rsp),%rcx
  movslq %r9d,%rax
  movapd %xmm2,%xmm1
  lea    (%rcx,%rax,8),%rdx
  mov    $0x1,%eax
  nopw   0x0(%rax,%rax,1)
L1205:
  movsd  (%rdx,%rax,8),%xmm0
  mulsd  -0x8(%r14,%rax,8),%xmm0
  add    $0x1,%rax
  addsd  %xmm0,%xmm1
  cmp    %rax,%rdi
  jne    L1205
  xor    %eax,%eax
  nopl   0x0(%rax,%rax,1)
L364:
  movsd  0x8(%rdx,%rax,8),%xmm0
  mov    %rax,%rcx
  mulsd  %xmm1,%xmm0
  addsd  (%rbx,%rax,8),%xmm0
  movsd  %xmm0,(%rbx,%rax,8)
  add    $0x1,%rax
  cmp    %rcx,%rsi
  jne    L364
L2750:
  add    $0x1,%r8d
  add    %r10d,%r9d
  cmp    %r8d,0x34(%rsp)
  jge    L2925
  mov    0x58(%rsp),%r10
L379:
  mov    0x30(%rsp),%eax
  test   %eax,%eax
  jle    L2927
  mov    0x70(%rsp),%edi
  mov    0x50(%rsp),%rsi
  mov    $0x1,%ecx
  mov    0x28(%rsp),%r8
  mov    0x4(%rsp),%r9d
L214:
  mov    %r10,%rax
  mov    %rsi,%rdx
  movapd %xmm2,%xmm1
  test   %r9d,%r9d
  jle    L242
  nopw   0x0(%rax,%rax,1)
L2149:
  movsd  (%rdx),%xmm0
  mulsd  (%rax),%xmm0
  add    $0x8,%rax
  add    %r12,%rdx
  addsd  %xmm0,%xmm1
  cmp    %rax,%r8
  jne    L2149
L242:
  movsd  -0x8(%rbx,%rcx,8),%xmm0
  mov    0x60(%rsp),%rax
  add    $0x8,%rsi
  movsd  %xmm0,-0x8(%rax,%rcx,8)
  mulsd  %xmm1,%xmm0
  movsd  %xmm0,-0x8(%rbx,%rcx,8)
  add    $0x1,%rcx
  cmp    %rcx,%rdi
  jne    L214
L2927:
  mov    0x4(%rsp),%eax
  test   %eax,%eax
  jle    L2070
  mov    0x30(%rsp),%r11d
  xor    %edi,%edi
  movapd %xmm2,%xmm7
  movapd %xmm2,%xmm5
  mov    0x360(%rsp),%r8d
  lea    -0x1(%r11),%edx
  mov    %r11d,%r9d
  add    $0x2,%rdx
L298:
  movapd %xmm2,%xmm8
  movapd %xmm2,%xmm0
  test   %r11d,%r11d
  jle    L1357
  mov    0x18(%rsp),%rsi
  movslq %r8d,%rax
  mov    0x78(%rsp),%rcx
  movapd %xmm2,%xmm0
  lea    (%rsi,%rax,8),%rsi
  movslq %r9d,%rax
  lea    (%rcx,%rax,8),%rcx
  mov    $0x1,%eax
  nopl   (%rax)
L180:
  movsd  (%rsi,%rax,8),%xmm1
  mulsd  -0x8(%r14,%rax,8),%xmm1
  addsd  %xmm1,%xmm0
  movsd  (%rcx,%rax,8),%xmm1
  mulsd  -0x8(%rbx,%rax,8),%xmm1
  add    $0x1,%rax
  addsd  %xmm1,%xmm0
  cmp    %rax,%rdx
  jne    L180
  movapd %xmm0,%xmm8
  mulsd  %xmm0,%xmm8
L1357:
  mov    0x80(%rsp),%rax
  movsd  (%r10,%rdi,8),%xmm9
  addsd  %xmm8,%xmm5
  movsd  (%rax,%rdi,8),%xmm1
  mov    0xc0(%rsp),%rax
  ucomisd (%rax,%rdi,8),%xmm9
  jp     L1652
  jne    L1652
  comisd %xmm2,%xmm1
  movapd %xmm2,%xmm8
  ja     L678
  mulsd  %xmm1,%xmm1
  movapd %xmm1,%xmm8
L678:
  movapd %xmm2,%xmm1
  addsd  %xmm8,%xmm7
  minsd  %xmm0,%xmm1
  movapd %xmm1,%xmm0
L1520:
  mov    0xb8(%rsp),%rax
  add    0x360(%rsp),%r8d
  add    %r11d,%r9d
  movsd  %xmm0,(%rax,%rdi,8)
  lea    0x1(%rdi),%rax
  cmp    %rdi,%r15
  je     L401
  mov    %rax,%rdi
  jmp    L298
L1652:
  mov    0xf8(%rsp),%rax
  ucomisd (%rax,%rdi,8),%xmm9
  jp     L234
  jne    L234
  comisd %xmm1,%xmm2
  movapd %xmm2,%xmm8
  ja     L2731
  mulsd  %xmm1,%xmm1
  movapd %xmm1,%xmm8
L2731:
  movapd %xmm2,%xmm1
  addsd  %xmm8,%xmm7
  maxsd  %xmm0,%xmm1
  movapd %xmm1,%xmm0
  jmp    L1520
L234:
  mulsd  %xmm1,%xmm1
  addsd  %xmm1,%xmm7
  jmp    L1520
L1101:
  cmpb   $0x0,0xb0(%rsp)
  mov    0x40(%rsp),%r15
  movsd  %xmm13,0x8(%rsp)
  movsd  0x200(%rsp),%xmm15
  mov    0xc8(%rsp),%r12
  movsd  %xmm1,0x10(%rsp)
  je     L2309
  movsd  %xmm3,0x2a8(%rsp)
L2309:
  mov    0x30(%rsp),%eax
  movapd %xmm15,%xmm7
  movsd  %xmm9,0x298(%rsp)
  mulsd  %xmm15,%xmm7
  test   %eax,%eax
  jle    L402
  mov    0x34(%rsp),%eax
  mov    0x28(%rsp),%r8
  movl   $0x0,0x74(%rsp)
  movapd %xmm2,%xmm3
  mov    0x150(%rsp),%rdi
  movapd %xmm2,%xmm5
  mov    $0x1,%esi
  mov    0x1e8(%rsp),%r9
  lea    0x1(%rax),%ecx
L1179:
  cmp    %esi,0xa0(%rsp)
  je     L1715
  mov    0x34(%rsp),%eax
  test   %eax,%eax
  jle    L2794
  mov    0x48(%rsp),%rax
  movapd %xmm2,%xmm9
  lea    (%rax,%rdi,1),%rdx
  mov    $0x1,%eax
  nopl   (%rax)
L2996:
  movsd  (%rdx),%xmm0
  add    $0x1,%eax
  add    %r12,%rdx
  mulsd  %xmm0,%xmm0
  addsd  %xmm0,%xmm9
  cmp    %ecx,%eax
  jne    L2996
L2827:
  movsd  -0x8(%r9,%rdi,1),%xmm10
  mulsd  0x10(%rsp),%xmm9
  mov    0x4(%rsp),%r11d
  mulsd  %xmm10,%xmm10
  addsd  %xmm10,%xmm9
  test   %r11d,%r11d
  jle    L1656
  mov    0x78(%rsp),%rax
  movapd %xmm2,%xmm1
  lea    (%rax,%rdi,1),%rdx
  mov    %r10,%rax
  nopl   (%rax)
L2083:
  movsd  (%rdx),%xmm0
  subsd  (%rax),%xmm0
  add    $0x8,%rax
  add    %r12,%rdx
  mulsd  %xmm0,%xmm0
  addsd  %xmm0,%xmm1
  cmp    %rax,%r8
  jne    L2083
L1365:
  divsd  %xmm7,%xmm1
  movapd %xmm9,%xmm0
  mulsd  %xmm1,%xmm1
  comisd %xmm1,%xmm8
  ja     L1141
  mulsd  %xmm1,%xmm0
  mulsd  %xmm1,%xmm10
L1141:
  comisd %xmm5,%xmm0
  jbe    L2855
  mov    %esi,0x74(%rsp)
  movapd %xmm0,%xmm5
  movsd  %xmm9,0x8(%rsp)
L2855:
  maxsd  %xmm3,%xmm10
  movapd %xmm10,%xmm3
L1715:
  lea    0x1(%rsi),%eax
  add    $0x8,%rdi
  cmp    %esi,0x30(%rsp)
  je     L1773
  mov    %eax,%esi
  jmp    L1179
L2482:
  mov    %r10,%rbx
L378:
  mov    0x308(%rsp),%esi
  test   %esi,%esi
  jg     L1713
  movslq 0x294(%rsp),%rax
  shl    $0x3,%rax
  mov    %rax,0x178(%rsp)
L2871:
  mov    0xf0(%rsp),%rdx
  add    0x178(%rsp),%rdx
  movsd  0x1b8(%rsp),%xmm4
  comisd (%rdx),%xmm4
  jae    L92
L289:
  mov    0x2b8(%rsp),%rax
  sub    %fs:0x28,%rax
  jne    L438
  add    $0x2c8,%rsp
  pop    %rbx
  pop    %rbp
  pop    %r12
  pop    %r13
  pop    %r14
  pop    %r15
  ret
L1713:
  lea    D187(%rip),%rdi
  call   <puts@plt>
L3003:
  movslq 0x294(%rsp),%rax
  mov    0xf0(%rsp),%rdi
  movsd  0x1b8(%rsp),%xmm4
  lea    (%rdi,%rax,8),%rdx
  comisd (%rdx),%xmm4
  jb     L2762
L92:
  mov    0x4(%rsp),%ebp
  test   %ebp,%ebp
  jle    L659
L1639:
  mov    0x4(%rsp),%ecx
  mov    0x160(%rsp),%rsi
  xor    %eax,%eax
  mov    0x1c0(%rsp),%rdi
  mov    0x1c8(%rsp),%r8
  mov    0x190(%rsp),%r9
  mov    0xc0(%rsp),%r10
  mov    0xf8(%rsp),%r11
L1425:
  movsd  (%r9,%rax,8),%xmm1
  addsd  (%rbx,%rax,8),%xmm1
  movsd  %xmm1,(%rsi,%rax,8)
  movsd  (%rdi,%rax,8),%xmm0
  maxsd  %xmm1,%xmm0
  movsd  %xmm0,(%rsi,%rax,8)
  movsd  (%r8,%rax,8),%xmm1
  minsd  %xmm0,%xmm1
  movsd  %xmm1,(%rsi,%rax,8)
  movsd  (%rbx,%rax,8),%xmm0
  ucomisd (%r10,%rax,8),%xmm0
  jp     L2667
  jne    L2667
  movsd  (%rdi,%rax,8),%xmm0
  movsd  %xmm0,(%rsi,%rax,8)
  movsd  (%rbx,%rax,8),%xmm0
L2667:
  ucomisd (%r11,%rax,8),%xmm0
  jp     L2052
  jne    L2052
  movsd  (%r8,%rax,8),%xmm0
  movsd  %xmm0,(%rsi,%rax,8)
L2052:
  add    $0x1,%rax
  cmp    %rax,%rcx
  jne    L1425
L659:
  movsd  (%rdx),%xmm4
  movsd  %xmm4,0xd0(%rsp)
L2812:
  mov    0x308(%rsp),%r11d
  test   %r11d,%r11d
  jle    L289
L2762:
  mov    0x290(%rsp),%esi
  lea    D49(%rip),%rdi
  xor    %eax,%eax
  call   <printf@plt>
  lea    D301(%rip),%rdi
  mov    $0x1,%eax
  movsd  0xd0(%rsp),%xmm0
  call   <printf@plt>
  mov    0x4(%rsp),%r10d
  test   %r10d,%r10d
  jle    L289
  mov    0x160(%rsp),%r12
  mov    $0x1,%ebx
  lea    D263(%rip),%rbp
L463:
  movsd  -0x8(%r12,%rbx,8),%xmm0
  mov    %rbp,%rdi
  mov    $0x1,%eax
  add    $0x1,%rbx
  call   <printf@plt>
  cmp    %ebx,0x4(%rsp)
  jge    L463
  jmp    L289
L1294:
  movsd  0x138(%rsp),%xmm5
  mov    0x30(%rsp),%eax
  movsd  D41(%rip),%xmm9
  mulsd  %xmm5,%xmm9
  test   %eax,%eax
  jle    L2740
  mov    0x24c(%rsp),%edi
  mulsd  D352(%rip),%xmm5
  movl   $0x1,0x10(%rsp)
  movapd %xmm2,%xmm8
  mov    0x150(%rsp),%rsi
  mov    0x28(%rsp),%r11
  mov    %r15,0x40(%rsp)
  add    %eax,%edi
  mov    %rbp,0x58(%rsp)
  mov    %edi,%eax
  mov    0x230(%rsp),%rdi
  mov    %rsi,%r15
  mov    %eax,%ebp
  lea    0x8(%rdi),%r9
L2409:
  mov    0x1e0(%rsp),%rax
  addsd  -0x8(%rax,%r15,1),%xmm8
  mov    0x4(%rsp),%eax
  test   %eax,%eax
  jle    L502
  mov    0x78(%rsp),%rax
  movapd %xmm5,%xmm3
  lea    (%rax,%r15,1),%rsi
  mov    %r10,%rax
  mov    %rsi,%rdx
  nopl   0x0(%rax,%rax,1)
L1433:
  movsd  (%rdx),%xmm0
  mulsd  (%rax),%xmm0
  add    $0x8,%rax
  add    %r12,%rdx
  addsd  %xmm0,%xmm3
  cmp    %rax,%r11
  jne    L1433
  movapd %xmm3,%xmm0
  movapd %xmm9,%xmm7
  mov    0x70(%rsp),%edi
  xor    %ecx,%ecx
  mulsd  %xmm4,%xmm0
  mov    0x228(%rsp),%rax
  movsd  %xmm3,-0x8(%rbx,%r15,1)
  lea    (%rax,%r15,1),%r8
  subsd  %xmm0,%xmm7
  nopw   0x0(%rax,%rax,1)
L408:
  movsd  (%r8),%xmm0
  lea    (%r9,%rcx,1),%rdx
  xor    %eax,%eax
  movsd  %xmm0,(%rbx,%rcx,1)
  movsd  (%rsi),%xmm1
  movsd  (%r10,%rcx,1),%xmm0
  mulsd  %xmm3,%xmm1
  mulsd  %xmm7,%xmm0
  addsd  %xmm0,%xmm1
  movsd  %xmm1,(%r14,%rcx,1)
  jmp    L1403
  xchg   %ax,%ax
L2472:
  movsd  (%r14,%rcx,1),%xmm1
  add    $0x8,%rax
L1403:
  mulsd  (%rbx,%rax,1),%xmm1
  movsd  (%rbx,%rcx,1),%xmm0
  mulsd  (%r14,%rax,1),%xmm0
  addsd  (%rdx),%xmm0
  addsd  %xmm1,%xmm0
  movsd  %xmm0,(%rdx)
  add    %r13,%rdx
  cmp    %rax,%rcx
  jne    L2472
  add    $0x1,%edi
  add    %r13,%r8
  add    %r12,%rsi
  add    $0x8,%rcx
  cmp    %edi,%ebp
  jne    L408
L2538:
  mov    0x10(%rsp),%edi
  add    $0x8,%r15
  lea    0x1(%rdi),%eax
  cmp    %edi,0x30(%rsp)
  je     L1559
  mov    %eax,0x10(%rsp)
  jmp    L2409
L2783:
  mov    0x30(%rsp),%eax
  cmp    %eax,0x290(%rsp)
  jle    L1928
  mov    0x30(%rsp),%eax
  test   %eax,%eax
  jle    L1928
  mov    0x70(%rsp),%esi
  mov    0x50(%rsp),%rcx
  mov    $0x1,%edx
  mov    0x28(%rsp),%rdi
  mov    0x208(%rsp),%r8
L2354:
  cmpl   $0x0,0x4(%rsp)
  mov    %rbx,%rax
  movapd %xmm2,%xmm1
  mov    %rcx,%r9
  jle    L771
L2257:
  movsd  (%r9),%xmm0
  mulsd  (%rax),%xmm0
  add    $0x8,%rax
  add    %r12,%r9
  addsd  %xmm0,%xmm1
  cmp    %rax,%rdi
  jne    L2257
  mov    0x88(%rsp),%rax
  mov    %rcx,%r9
  mulsd  -0x8(%rax,%rdx,8),%xmm1
  mov    0x80(%rsp),%rax
L882:
  movsd  (%r9),%xmm0
  add    $0x8,%rax
  add    %r12,%r9
  mulsd  %xmm1,%xmm0
  addsd  -0x8(%rax),%xmm0
  movsd  %xmm0,-0x8(%rax)
  cmp    %rax,%r8
  jne    L882
L771:
  add    $0x1,%rdx
  add    $0x8,%rcx
  cmp    %rdx,%rsi
  jne    L2354
  jmp    L1928
L401:
  mulsd  D47(%rip),%xmm5
  comisd %xmm7,%xmm5
  jbe    L2070
L2661:
  movl   $0x0,0x19c(%rsp)
L1968:
  movsd  D165(%rip),%xmm0
  mulsd  %xmm3,%xmm0
  addsd  %xmm11,%xmm0
  comisd 0xd0(%rsp),%xmm0
  jb     L1547
  movsd  0x130(%rsp),%xmm5
  movsd  %xmm5,0x180(%rsp)
  movsd  0x128(%rsp),%xmm5
  movsd  %xmm5,0x130(%rsp)
  movsd  0x40(%rsp),%xmm5
  movsd  %xmm5,0x128(%rsp)
  jmp    L708
L1773:
  mulsd  %xmm4,%xmm3
  mov    0x290(%rsp),%r9d
  comisd %xmm5,%xmm3
  jb     L199
L2995:
  mov    0x290(%rsp),%eax
  mov    %eax,0xa8(%rsp)
  cmp    0x198(%rsp),%eax
  jg     L1659
L2935:
  mov    0x308(%rsp),%r8d
  mov    %r10,%rbx
  test   %r8d,%r8d
  jle    L2871
  lea    D164(%rip),%rdi
  call   <puts@plt>
  jmp    L3003
  nopl   0x0(%rax)
L1547:
  movsd  D47(%rip),%xmm0
  movapd %xmm15,%xmm3
  addsd  %xmm15,%xmm3
  mulsd  %xmm14,%xmm0
  mulsd  %xmm3,%xmm3
  mulsd  %xmm0,%xmm0
  comisd %xmm0,%xmm3
  jbe    L37
L1862:
  movsd  0x130(%rsp),%xmm5
  movsd  %xmm5,0x180(%rsp)
  movsd  0x128(%rsp),%xmm5
  movsd  %xmm5,0x130(%rsp)
  movsd  0x40(%rsp),%xmm5
  movsd  %xmm5,0x128(%rsp)
  jmp    L1635
L1464:
  movapd %xmm14,%xmm0
  mov    %r9d,%esi
  mov    $0x1,%eax
  mov    %r10,0x58(%rsp)
  lea    D331(%rip),%rdi
  movsd  %xmm15,0x40(%rsp)
  movsd  %xmm2,0xa0(%rsp)
  movsd  %xmm14,0x20(%rsp)
  call   <printf@plt>
  movslq 0x294(%rsp),%rax
  mov    0xf0(%rsp),%rdi
  movsd  (%rdi,%rax,8),%xmm0
  lea    D301(%rip),%rdi
  mov    $0x1,%eax
  call   <printf@plt>
  mov    0x4(%rsp),%eax
  mov    0x58(%rsp),%r10
  mov    $0x1,%ecx
  movsd  0x20(%rsp),%xmm14
  movsd  0x40(%rsp),%xmm15
  lea    D263(%rip),%rdx
  movsd  0xa0(%rsp),%xmm2
  test   %eax,%eax
  jle    L1710
  mov    %r15,0x40(%rsp)
  mov    0x190(%rsp),%r15
  mov    %r12,0x58(%rsp)
  mov    %rdx,%r12
  mov    %rbp,0xa8(%rsp)
  mov    %r10,%rbp
  mov    %rbx,0xb0(%rsp)
  mov    %rcx,%rbx
  movsd  %xmm15,0x20(%rsp)
  movsd  %xmm14,0xa0(%rsp)
  movsd  %xmm2,0xc8(%rsp)
L840:
  movsd  -0x8(%r15,%rbx,8),%xmm0
  addsd  -0x8(%rbp,%rbx,8),%xmm0
  mov    %r12,%rdi
  mov    $0x1,%eax
  add    $0x1,%rbx
  call   <printf@plt>
  cmp    %ebx,0x4(%rsp)
  jge    L840
  mov    %rbp,%r10
  mov    0x40(%rsp),%r15
  movsd  0x20(%rsp),%xmm15
  mov    0x58(%rsp),%r12
  mov    0xa8(%rsp),%rbp
  movsd  0xa0(%rsp),%xmm14
  mov    0xb0(%rsp),%rbx
  movsd  0xc8(%rsp),%xmm2
L1710:
  mov    0x290(%rsp),%r9d
  jmp    L431
L240:
  mov    0x210(%rsp),%eax
  mov    0xa8(%rsp),%r9d
  mov    %eax,0xa8(%rsp)
  jmp    L199
L1559:
  mov    0x40(%rsp),%r15
  mov    0x58(%rsp),%rbp
L516:
  mov    0x34(%rsp),%edi
  movl   $0x1,0x10(%rsp)
  lea    0x1(%rdi),%eax
  mov    %eax,0x58(%rsp)
  mov    0x30(%rsp),%eax
  mov    %eax,0x40(%rsp)
  test   %edi,%edi
  jle    L1554
  mov    0x24c(%rsp),%edi
  mov    %r10,0xa0(%rsp)
  lea    -0x1(%rax),%ecx
  mov    %rbp,0x110(%rsp)
  lea    0x2(%rcx),%r8
  add    %eax,%edi
  mov    %r15,0xe8(%rsp)
  mov    0x360(%rsp),%r15d
  mov    %edi,0xe0(%rsp)
  mov    %r12,0x108(%rsp)
  mov    %eax,%r12d
L2176:
  movapd %xmm2,%xmm1
  movapd %xmm2,%xmm3
  test   %r12d,%r12d
  jle    L1783
  movslq 0x40(%rsp),%rax
  mov    0x48(%rsp),%rdi
  movapd %xmm2,%xmm1
  movapd %xmm2,%xmm3
  lea    (%rdi,%rax,8),%rsi
  mov    0x60(%rsp),%rdi
  xor    %eax,%eax
  nopl   0x0(%rax)
L2361:
  movsd  0x8(%rsi,%rax,8),%xmm0
  mov    %rax,%rdx
  addsd  %xmm0,%xmm1
  mulsd  (%rdi,%rax,8),%xmm0
  movsd  %xmm0,(%r14,%rax,8)
  addsd  %xmm0,%xmm3
  add    $0x1,%rax
  cmp    %rdx,%rcx
  jne    L2361
L1783:
  mov    0x4(%rsp),%r9d
  test   %r9d,%r9d
  jle    L1604
  mulsd  %xmm4,%xmm3
  movslq 0x40(%rsp),%rax
  mov    %rbx,%r10
  mov    %r12d,%ebp
  mulsd  %xmm9,%xmm1
  mov    0x48(%rsp),%rdi
  mov    %r13,0xb0(%rsp)
  mov    %r15d,%r11d
  mov    %rbx,0xc8(%rsp)
  mov    0xa0(%rsp),%r9
  mov    0x18(%rsp),%r13
  mov    0x78(%rsp),%rbx
  lea    (%rdi,%rax,8),%rdi
  movapd %xmm3,%xmm0
  movapd %xmm1,%xmm3
  subsd  %xmm0,%xmm3
  nopl   0x0(%rax)
L1387:
  movsd  (%r9),%xmm1
  mulsd  %xmm3,%xmm1
  test   %r12d,%r12d
  jle    L789
  movslq %ebp,%rax
  lea    (%rbx,%rax,8),%rsi
  xor    %eax,%eax
  nopl   0x0(%rax,%rax,1)
L461:
  movsd  (%r14,%rax,8),%xmm0
  mulsd  0x8(%rsi,%rax,8),%xmm0
  mov    %rax,%rdx
  add    $0x1,%rax
  addsd  %xmm0,%xmm1
  cmp    %rdx,%rcx
  jne    L461
  movslq %r11d,%rax
  movsd  %xmm1,(%r10)
  lea    0x0(%r13,%rax,8),%rdx
  mov    $0x1,%eax
  cs nopw 0x0(%rax,%rax,1)
L1470:
  movsd  (%rdi,%rax,8),%xmm0
  mulsd  %xmm1,%xmm0
  addsd  (%rdx,%rax,8),%xmm0
  movsd  %xmm0,(%rdx,%rax,8)
  add    $0x1,%rax
  cmp    %rax,%r8
  jne    L1470
L1678:
  add    $0x8,%r9
  add    %r15d,%r11d
  add    $0x8,%r10
  add    %r12d,%ebp
  cmp    %r9,0x28(%rsp)
  jne    L1387
  mov    0xb0(%rsp),%r13
  mov    0xc8(%rsp),%rbx
  mov    0x70(%rsp),%r9d
  mov    0x238(%rsp),%rsi
  mov    0xd8(%rsp),%rdi
  mov    0xe0(%rsp),%r10d
  nopw   0x0(%rax,%rax,1)
L2882:
  movsd  -0x8(%rsi),%xmm1
  mov    %rbx,%rdx
  mov    %rdi,%rax
  nopl   0x0(%rax,%rax,1)
L875:
  movsd  (%rdx),%xmm0
  add    $0x8,%rdx
  mulsd  %xmm1,%xmm0
  addsd  (%rax),%xmm0
  movsd  %xmm0,(%rax)
  add    %r13,%rax
  cmp    %rdx,%rsi
  jne    L875
  add    $0x1,%r9d
  add    $0x8,%rdi
  add    $0x8,%rsi
  cmp    %r9d,%r10d
  jne    L2882
L1604:
  addl   $0x1,0x10(%rsp)
  mov    0x10(%rsp),%eax
  add    %r12d,0x40(%rsp)
  cmp    0x58(%rsp),%eax
  jne    L2176
  mov    0xe8(%rsp),%r15
  mov    0x108(%rsp),%r12
  mov    0xa0(%rsp),%r10
  mov    0x110(%rsp),%rbp
L1554:
  mov    0x4(%rsp),%edi
  test   %edi,%edi
  jle    L1792
  mov    %r15,0xb0(%rsp)
  mov    %rbx,%rdx
  mov    %r10,%rsi
  xor    %edi,%edi
  mov    0x230(%rsp),%r11
  mov    0x30(%rsp),%ecx
  mov    %r12,0xc8(%rsp)
  mov    $0x1,%r9d
  mulsd  D352(%rip),%xmm8
  mov    %rbp,0xe0(%rsp)
  mov    %r11,%r8
  add    $0x8,%r11
  mov    %ecx,%r12d
  mov    %ecx,%ebp
  mov    %r11,0x40(%rsp)
  lea    -0x1(%rcx),%r11d
  mov    %r11,0x58(%rsp)
  mov    0x78(%rsp),%r11
  add    $0x8,%r11
  mov    %r11,0xa0(%rsp)
  xor    %r11d,%r11d
L2322:
  movsd  (%rsi),%xmm0
  mulsd  %xmm8,%xmm0
  movsd  %xmm0,(%rdx)
  test   %r12d,%r12d
  jle    L801
  mov    0x78(%rsp),%rax
  movslq %ebp,%r15
  mov    0x88(%rsp),%rcx
  lea    (%rax,%r15,8),%rax
  add    0x58(%rsp),%r15
  mov    %rax,0x10(%rsp)
  mov    0xa0(%rsp),%rax
  lea    (%rax,%r15,8),%r15
  mov    0x10(%rsp),%rax
  nopl   0x0(%rax,%rax,1)
L1092:
  movsd  (%rcx),%xmm1
  mulsd  0x8(%rax),%xmm1
  add    $0x8,%rax
  add    $0x8,%rcx
  addsd  %xmm1,%xmm0
  movsd  %xmm0,(%rdx)
  movsd  (%rax),%xmm0
  subsd  (%rsi),%xmm0
  movsd  %xmm0,(%rax)
  movsd  (%rdx),%xmm0
  cmp    %rax,%r15
  jne    L1092
L801:
  mov    0x40(%rsp),%rax
  mov    0x98(%rsp),%r15
  lea    (%rax,%rdi,1),%rcx
  movslq %r11d,%rax
  lea    (%r15,%rax,8),%r15
  xor    %eax,%eax
  jmp    L1459
  nopw   0x0(%rax,%rax,1)
L194:
  movsd  (%rdx),%xmm0
  add    $0x8,%rax
L1459:
  mulsd  (%r10,%rax,1),%xmm0
  movsd  (%rbx,%rax,1),%xmm1
  mulsd  (%rsi),%xmm1
  addsd  (%r15,%rax,1),%xmm1
  addsd  %xmm1,%xmm0
  movsd  %xmm0,(%r15,%rax,1)
  movsd  (%rcx),%xmm0
  add    %r13,%rcx
  movsd  %xmm0,0x8(%r8,%rax,1)
  cmp    %rax,%rdi
  jne    L194
  add    %r9d,%r11d
  lea    0x1(%r9),%eax
  add    $0x8,%rsi
  add    $0x8,%rdx
  add    %r13,%r8
  add    $0x8,%rdi
  add    %r12d,%ebp
  cmp    %r9d,0x4(%rsp)
  je     L2431
  mov    %eax,%r9d
  jmp    L2322
L789:
  movsd  %xmm1,(%r10)
  jmp    L1678
L2431:
  mov    0xb0(%rsp),%r15
  mov    0xc8(%rsp),%r12
  xor    %eax,%eax
  mov    0xe0(%rsp),%rbp
  mov    0x190(%rsp),%rdx
  mov    0xc0(%rsp),%rcx
  mov    0xf8(%rsp),%rsi
  mov    0x38(%rsp),%rdi
L2893:
  movsd  (%rdx,%rax,8),%xmm0
  addsd  (%r10,%rax,8),%xmm0
  mov    %rax,%r8
  movsd  %xmm0,(%rdx,%rax,8)
  movsd  (%rdi,%rax,8),%xmm0
  subsd  (%r10,%rax,8),%xmm0
  movsd  %xmm0,(%rdi,%rax,8)
  movsd  (%rcx,%rax,8),%xmm0
  subsd  (%r10,%rax,8),%xmm0
  movsd  %xmm0,(%rcx,%rax,8)
  movsd  (%rsi,%rax,8),%xmm0
  subsd  (%r10,%rax,8),%xmm0
  movsd  %xmm0,(%rsi,%rax,8)
  movq   $0x0,(%r10,%rax,8)
  add    $0x1,%rax
  cmp    %r8,%r15
  jne    L2893
  mov    0x294(%rsp),%eax
  mov    0x20(%rsp),%edx
  mov    %eax,0xa0(%rsp)
  test   %edx,%edx
  je     L2650
  movsd  D206(%rip),%xmm8
  movsd  %xmm2,0x138(%rsp)
  jmp    L104
L1656:
  movapd %xmm2,%xmm1
  jmp    L1365
L2794:
  movapd %xmm2,%xmm9
  jmp    L2827
L3037:
  movl   $0x0,0x74(%rsp)
  mov    0x290(%rsp),%r9d
  jmp    L121
L502:
  movsd  %xmm5,-0x8(%rbx,%r15,1)
  jmp    L2538
L2859:
  mov    0x74(%rsp),%eax
  mov    $0x1,%edx
  movapd %xmm2,%xmm1
  xor    %esi,%esi
  mov    0x80(%rsp),%rcx
  mov    %eax,0x294(%rsp)
L1192:
  mov    0x38(%rsp),%rax
  mov    0x98(%rsp),%rdi
  lea    0x1(%rdx),%r9
  movsd  -0x8(%rax,%rdx,8),%xmm0
  movslq %esi,%rax
  lea    (%rdi,%rax,8),%r8
  mov    $0x1,%eax
  movsd  %xmm0,-0x8(%r10,%rdx,8)
  mulsd  %xmm0,%xmm0
  addsd  %xmm0,%xmm1
  jmp    L422
  cs nopw 0x0(%rax,%rax,1)
L2932:
  mov    %rdi,%rax
L422:
  cmp    %eax,%edx
  jle    L355
  movsd  -0x8(%rbp,%rax,8),%xmm0
  mulsd  -0x8(%r8,%rax,8),%xmm0
  addsd  -0x8(%rcx,%rdx,8),%xmm0
  movsd  %xmm0,-0x8(%rcx,%rdx,8)
L355:
  movsd  -0x8(%r8,%rax,8),%xmm0
  mulsd  -0x8(%rbp,%rdx,8),%xmm0
  lea    0x1(%rax),%rdi
  addsd  -0x8(%rcx,%rax,8),%xmm0
  movsd  %xmm0,-0x8(%rcx,%rax,8)
  cmp    %rax,%rdx
  jne    L2932
  add    %edx,%esi
  cmp    %r9d,0x4(%rsp)
  jl     L1790
  mov    %r9,%rdx
  jmp    L1192
L1790:
  movsd  %xmm1,0x138(%rsp)
L202:
  mov    0x30(%rsp),%r9d
  test   %r9d,%r9d
  jle    L2749
  mov    0x70(%rsp),%esi
  mov    0x50(%rsp),%rcx
  mov    $0x1,%edx
  mov    0x208(%rsp),%r9
  mov    0x120(%rsp),%r11
L1602:
  mov    0x4(%rsp),%r8d
  mov    %rbp,%rax
  mov    %rcx,%rdi
  movapd %xmm2,%xmm1
  test   %r8d,%r8d
  jle    L1623
  nopl   0x0(%rax)
L434:
  movsd  (%rdi),%xmm0
  mulsd  (%rax),%xmm0
  mov    %rax,%r8
  add    %r12,%rdi
  add    $0x8,%rax
  addsd  %xmm0,%xmm1
  cmp    %r8,%r11
  jne    L434
  mov    0x88(%rsp),%rax
  mov    %rcx,%rdi
  mulsd  -0x8(%rax,%rdx,8),%xmm1
  mov    0x80(%rsp),%rax
  nopl   0x0(%rax)
L510:
  movsd  (%rdi),%xmm0
  add    $0x8,%rax
  add    %r12,%rdi
  mulsd  %xmm1,%xmm0
  addsd  -0x8(%rax),%xmm0
  movsd  %xmm0,-0x8(%rax)
  cmp    %rax,%r9
  jne    L510
L1623:
  add    $0x1,%rdx
  add    $0x8,%rcx
  cmp    %rdx,%rsi
  jne    L1602
  mov    0x20(%rsp),%r8d
  test   %r8d,%r8d
  je     L1954
  jmp    L188
L37:
  movapd %xmm0,%xmm3
  jmp    L1862
L1817:
  ucomisd %xmm1,%xmm2
  ja     L856
  sqrtsd %xmm3,%xmm3
L2768:
  cmpl   $0xffffffff,0x20(%rsp)
  movsd  D165(%rip),%xmm0
  je     L2076
L2128:
  mulsd  %xmm0,%xmm3
  movapd %xmm15,%xmm5
  minsd  %xmm3,%xmm5
  movsd  %xmm5,0x140(%rsp)
L1510:
  movapd %xmm14,%xmm5
  maxsd  0x140(%rsp),%xmm5
  movsd  %xmm5,0x140(%rsp)
L2500:
  movsd  0x140(%rsp),%xmm5
  mov    0xa8(%rsp),%eax
  movl   $0x0,0x20(%rsp)
  movapd %xmm5,%xmm1
  mov    %eax,0x210(%rsp)
  mulsd  %xmm5,%xmm1
  movsd  %xmm1,0x298(%rsp)
  jmp    L228
L486:
  ucomisd %xmm5,%xmm2
  ja     L1079
  sqrtsd %xmm5,%xmm5
  movapd %xmm5,%xmm14
L2514:
  mulsd  0x188(%rsp),%xmm14
  jmp    L1664
L2070:
  addl   $0x1,0x19c(%rsp)
  mov    0x19c(%rsp),%eax
  cmp    $0x2,%eax
  jle    L1968
  mov    0x30(%rsp),%edi
  mov    0x248(%rsp),%esi
  xor    %eax,%eax
  mov    %r10,0xe8(%rsp)
  movsd  %xmm2,0x108(%rsp)
  movsd  %xmm14,0xe0(%rsp)
  movsd  %xmm15,0xc8(%rsp)
  movsd  %xmm3,0xb0(%rsp)
  movsd  %xmm6,0xa0(%rsp)
  movsd  %xmm11,0x58(%rsp)
  call   <imax@plt>
  mov    D98(%rip),%rdi
  movsd  0x58(%rsp),%xmm11
  test   %eax,%eax
  movsd  0xa0(%rsp),%xmm6
  movsd  0xb0(%rsp),%xmm3
  movsd  0xc8(%rsp),%xmm15
  movq   %rdi,%xmm4
  movsd  0xe0(%rsp),%xmm14
  mov    0xe8(%rsp),%r10
  movsd  0x108(%rsp),%xmm2
  jle    L1968
  mov    0x70(%rsp),%edx
  mov    0x220(%rsp),%r8
  lea    0x1(%rax),%esi
  mov    $0x1,%eax
  mov    0x260(%rsp),%r9
L2180:
  mov    %eax,%ecx
  cmp    %eax,0x4(%rsp)
  jl     L706
  movslq %edx,%rdi
  movsd  (%r8,%rdi,8),%xmm0
  mov    0x80(%rsp),%rdi
  movsd  %xmm0,-0x8(%rdi,%rax,8)
L706:
  cmp    %ecx,0x30(%rsp)
  jl     L3040
  movslq %edx,%rdi
  movsd  (%r9,%rdi,8),%xmm0
  mov    0x88(%rsp),%rdi
  movsd  %xmm0,-0x8(%rdi,%rax,8)
L3040:
  cmp    %ecx,0x248(%rsp)
  jl     L1871
  mov    0x98(%rsp),%rdi
  movq   $0x0,-0x8(%rdi,%rax,8)
L1871:
  add    $0x1,%rax
  add    $0x1,%edx
  cmp    %rax,%rsi
  jne    L2180
  jmp    L2661
L1282:
  movapd %xmm6,%xmm0
  addsd  %xmm6,%xmm0
  maxsd  %xmm15,%xmm0
  movapd %xmm0,%xmm15
  jmp    L897
L39:
  movapd %xmm2,%xmm1
  jmp    L1171
L2076:
  mulsd  %xmm0,%xmm15
  movapd %xmm3,%xmm1
  mulsd  %xmm4,%xmm1
  minsd  %xmm15,%xmm1
  movapd %xmm1,%xmm15
  movsd  D262(%rip),%xmm1
  mulsd  %xmm14,%xmm1
  comisd %xmm15,%xmm1
  jb     L2128
  mulsd  %xmm0,%xmm3
  movapd %xmm14,%xmm15
  movsd  %xmm3,0x140(%rsp)
  comisd %xmm14,%xmm3
  jbe    L1510
  movsd  %xmm14,0x140(%rsp)
  jmp    L2500
L2191:
  mov    0x34(%rsp),%eax
  test   %eax,%eax
  jg     L2569
  mov    0xf0(%rsp),%rax
  movsd  0xd0(%rsp),%xmm5
  movsd  %xmm5,(%rax,%r9,8)
L853:
  mov    0x90(%rsp),%rax
  mov    0x30(%rsp),%esi
  add    %r9,%rax
  mov    %rax,0x58(%rsp)
  test   %esi,%esi
  jg     L1539
L1737:
  comisd 0xd0(%rsp),%xmm11
  jbe    L250
  movsd  %xmm2,0x138(%rsp)
  mov    0x74(%rsp),%eax
  mov    %eax,0x294(%rsp)
  jmp    L202
L2009:
  mov    0xf0(%rsp),%rax
  movsd  0xd0(%rsp),%xmm5
  movsd  %xmm5,(%rax,%r9,8)
  jmp    L1980
L2650:
  movsd  %xmm2,0xc8(%rsp)
  mov    %r10,%rcx
  movsd  %xmm14,0xb0(%rsp)
  movsd  %xmm15,0x58(%rsp)
  movsd  %xmm6,0x40(%rsp)
  push   0x218(%rsp)
  push   0x160(%rsp)
  push   %rbx
  lea    0x2c0(%rsp),%rax
  push   %rax
  lea    0x2c0(%rsp),%rax
  push   %rax
  push   0x128(%rsp)
  push   0x68(%rsp)
  mov    0xac(%rsp),%eax
  push   %rax
  mov    0xe0(%rsp),%eax
  push   %rax
  push   0x140(%rsp)
  push   0x110(%rsp)
  mov    0x3b8(%rsp),%eax
  push   %rax
  mov    0x1a8(%rsp),%r9
  movsd  0x1a0(%rsp),%xmm0
  mov    0xc8(%rsp),%r8
  mov    0xb0(%rsp),%rdx
  mov    0x90(%rsp),%esi
  mov    0x64(%rsp),%edi
  mov    %r10,0x70(%rsp)
  call   <altmov_@plt>
  mov    D98(%rip),%rax
  add    $0x60,%rsp
  movsd  0xc8(%rsp),%xmm2
  movsd  D206(%rip),%xmm8
  mov    0x10(%rsp),%r10
  movsd  %xmm2,0x138(%rsp)
  movq   %rax,%xmm4
  movsd  0x40(%rsp),%xmm6
  movsd  0x58(%rsp),%xmm15
  movsd  0xb0(%rsp),%xmm14
  jmp    L2552
L2778:
  mov    0x290(%rsp),%esi
  lea    D315(%rip),%rdi
  mov    $0x1,%eax
  call   <printf@plt>
  mov    0x4(%rsp),%ecx
  mov    D98(%rip),%rax
  movsd  0x40(%rsp),%xmm6
  movsd  0x58(%rsp),%xmm15
  test   %ecx,%ecx
  movq   %rax,%xmm4
  movsd  0xa0(%rsp),%xmm14
  mov    0xb0(%rsp),%r10
  movsd  0xc8(%rsp),%xmm2
  jle    L554
  mov    $0x1,%ecx
  lea    D263(%rip),%rdx
  mov    %rbp,0x40(%rsp)
  mov    %rbx,0x58(%rsp)
  mov    %rdx,%rbp
  mov    %rcx,%rbx
L2973:
  mov    0x160(%rsp),%rax
  mov    %rbp,%rdi
  mov    %r10,0xe0(%rsp)
  movsd  %xmm2,0xe8(%rsp)
  movsd  %xmm14,0xc8(%rsp)
  movsd  -0x8(%rax,%rbx,8),%xmm0
  mov    $0x1,%eax
  add    $0x1,%rbx
  movsd  %xmm6,0xb0(%rsp)
  movsd  %xmm15,0xa0(%rsp)
  call   <printf@plt>
  mov    D98(%rip),%rax
  cmp    %ebx,0x4(%rsp)
  movsd  0xa0(%rsp),%xmm15
  mov    0xe0(%rsp),%r10
  movsd  0xb0(%rsp),%xmm6
  movq   %rax,%xmm4
  movsd  0xc8(%rsp),%xmm14
  movsd  0xe8(%rsp),%xmm2
  jge    L2973
  movslq 0x294(%rsp),%rax
  mov    0xf0(%rsp),%rdi
  cmpl   $0xffffffff,0x20(%rsp)
  mov    0x40(%rsp),%rbp
  mov    %eax,0xa0(%rsp)
  mov    0x58(%rsp),%rbx
  movsd  (%rdi,%rax,8),%xmm11
  jne    L1651
  mov    0xf0(%rsp),%rdi
  mov    %r10,%rbx
  movsd  0xd0(%rsp),%xmm4
  lea    (%rdi,%rax,8),%rdx
  comisd (%rdx),%xmm4
  jae    L1639
  jmp    L2762
  nopl   (%rax)
L731:
  movapd %xmm2,%xmm3
  jmp    L219
L454:
  pxor   %xmm2,%xmm2
  movapd %xmm2,%xmm14
  jmp    L2854
L402:
  movl   $0x0,0x74(%rsp)
  jmp    L2995
L1079:
  movsd  0x168(%rsp),%xmm0
  mov    %r10,0x40(%rsp)
  mov    %r9d,0x20(%rsp)
  movsd  %xmm2,0x58(%rsp)
  call   <sqrt@plt>
  movsd  0x58(%rsp),%xmm2
  mov    0x40(%rsp),%r10
  mov    0x20(%rsp),%r9d
  movapd %xmm0,%xmm14
  jmp    L2514
L856:
  movapd %xmm1,%xmm0
  mov    %r10,0xa0(%rsp)
  movsd  %xmm2,0xb0(%rsp)
  movsd  %xmm14,0x58(%rsp)
  movsd  %xmm15,0x40(%rsp)
  movsd  %xmm6,0x10(%rsp)
  call   <sqrt@plt>
  mov    D98(%rip),%rax
  movsd  0xb0(%rsp),%xmm2
  mov    0xa0(%rsp),%r10
  movsd  0x10(%rsp),%xmm6
  movapd %xmm0,%xmm3
  movsd  0x58(%rsp),%xmm14
  movsd  0x40(%rsp),%xmm15
  movq   %rax,%xmm4
  jmp    L2768
  nopl   0x0(%rax)
L656:
  mov    0x310(%rsp),%eax
  mov    %r10,%rbx
  mov    %eax,0x290(%rsp)
  mov    0x308(%rsp),%eax
  test   %eax,%eax
  jg     L1713
  lea    0x0(,%rdx,8),%rax
  mov    %rax,0x178(%rsp)
  jmp    L2871
L1794:
  mov    0x294(%rsp),%eax
  mov    %r10,%rbx
  mov    %eax,0xa0(%rsp)
L1134:
  movslq 0xa0(%rsp),%rax
  mov    0xf0(%rsp),%rdi
  movsd  0x1b8(%rsp),%xmm4
  lea    (%rdi,%rax,8),%rdx
  comisd (%rdx),%xmm4
  jb     L2812
  jmp    L92
L2749:
  mov    0x20(%rsp),%eax
  test   %eax,%eax
  je     L1954
L2247:
  mov    0x34(%rsp),%r9d
  test   %r9d,%r9d
  jg     L230
  jmp    L2927
L2740:
  movapd %xmm2,%xmm8
  jmp    L516
L1792:
  movsd  %xmm2,0x138(%rsp)
  jmp    L2875
L438:
  call   <__stack_chk_fail@plt>
  xchg   %ax,%ax
L512:
  mov    %rbx,%rax
  mov    %rbp,%r11
  mov    %r10,%rbx
  mov    0x120(%rsp),%rbp
  mov    %rax,%r10
  jmp    L2331
L2377:
  mov    0x308(%rsp),%eax
  mov    %r10,%rbx
  test   %eax,%eax
  jg     L1531
  movslq 0xa0(%rsp),%rax
  shl    $0x3,%rax
  mov    %rax,0x178(%rsp)
  jmp    L2871
L554:
  movslq 0x294(%rsp),%rax
  mov    0xf0(%rsp),%rdi
  cmpl   $0xffffffff,0x20(%rsp)
  mov    %eax,0xa0(%rsp)
  movsd  (%rdi,%rax,8),%xmm11
  jne    L731
  mov    0xf0(%rsp),%rdi
  movsd  0xd0(%rsp),%xmm4
  lea    (%rdi,%rax,8),%rdx
  comisd (%rdx),%xmm4
  jae    L659
  jmp    L2762
L2809:
  movsd  0xd0(%rsp),%xmm4
  mov    %r10,%rbx
  movsd  %xmm4,0x1b8(%rsp)
  jmp    L1134
L1078:
  movapd %xmm1,%xmm0
  movsd  %xmm1,0x40(%rsp)
  mov    %r10,0xb0(%rsp)
  movsd  %xmm2,0xc8(%rsp)
  movsd  %xmm14,0xa0(%rsp)
  movsd  %xmm15,0x58(%rsp)
  call   <sqrt@plt>
  mov    D98(%rip),%rax
  movsd  0xc8(%rsp),%xmm2
  mov    0xb0(%rsp),%r10
  movsd  0x40(%rsp),%xmm1
  movapd %xmm0,%xmm6
  movsd  0xa0(%rsp),%xmm14
  movsd  0x58(%rsp),%xmm15
  movq   %rax,%xmm4
  jmp    L519
L1531:
  lea    D366(%rip),%rdi
  call   <puts@plt>
  jmp    L3003
```

tool_calls: name: retrieve_data
arguments: data_label: D98
type_guessed: f32[2]
name: retrieve_data
arguments: data_label: D47
type_guessed: f64
name: retrieve_data
arguments: data_label: D393
type_guessed: f32[2]
name: retrieve_data
arguments: data_label: D167
type_guessed: f32[4]
name: retrieve_data
arguments: data_label: D412
type_guessed: qword[2]
name: retrieve_data
arguments: data_label: D165
type_guessed: byte[8]
name: retrieve_data
arguments: data_label: D262
type_guessed: f64
name: retrieve_data
arguments: data_label: D206
type_guessed: f64
name: retrieve_data
arguments: data_label: D285
type_guessed: f64
name: retrieve_data
arguments: data_label: D173
type_guessed: f64
name: retrieve_data
arguments: data_label: D53
type_guessed: byte[8]
name: retrieve_data
arguments: data_label: D150
type_guessed: byte[8]
name: retrieve_data
arguments: data_label: D187
type_guessed: string
name: retrieve_data
arguments: data_label: D49
type_guessed: string
name: retrieve_data
arguments: data_label: D301
type_guessed: string
name: retrieve_data
arguments: data_label: D263
type_guessed: string
name: retrieve_data
arguments: data_label: D41
type_guessed: f32[2]
name: retrieve_data
arguments: data_label: D352
type_guessed: f32[2]
name: retrieve_data
arguments: data_label: D164
type_guessed: string
name: retrieve_data
arguments: data_label: D331
type_guessed: string
name: retrieve_data
arguments: data_label: D315
type_guessed: string
name: retrieve_data
arguments: data_label: D366
type_guessed: string

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

tool: D47: 10

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

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

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

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

tool: D262: 1.5

tool: D206: 1

tool: D285: 16

tool: D173: 250

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

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

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

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


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


tool: D263: 	%g


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

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

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

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

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


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

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__]);
    }
  }
}
```