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

```asm
<bobyqb_>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  push   %r15
  push   %r14
  push   %r13
  push   %r12
  push   %rbx
  sub    $0x388,%rsp
  mov    %edi,-0x2a4(%rbp)
  mov    %esi,-0x2a8(%rbp)
  mov    %rdx,-0x2b0(%rbp)
  mov    %rcx,-0x2b8(%rbp)
  mov    %r8,-0x2c0(%rbp)
  mov    %r9,-0x2c8(%rbp)
  movsd  %xmm0,-0x2d8(%rbp)
  movsd  %xmm1,-0x2e0(%rbp)
  mov    0x10(%rbp),%rax
  mov    %rax,-0x2d0(%rbp)
  mov    0x28(%rbp),%rax
  mov    %rax,-0x2e8(%rbp)
  mov    0x30(%rbp),%rax
  mov    %rax,-0x2f0(%rbp)
  mov    0x38(%rbp),%rax
  mov    %rax,-0x2f8(%rbp)
  mov    0x40(%rbp),%rax
  mov    %rax,-0x300(%rbp)
  mov    0x48(%rbp),%rax
  mov    %rax,-0x308(%rbp)
  mov    0x50(%rbp),%rax
  mov    %rax,-0x310(%rbp)
  mov    0x58(%rbp),%rax
  mov    %rax,-0x318(%rbp)
  mov    0x60(%rbp),%rax
  mov    %rax,-0x320(%rbp)
  mov    0x68(%rbp),%rax
  mov    %rax,-0x328(%rbp)
  mov    0x78(%rbp),%rax
  mov    %rax,-0x330(%rbp)
  mov    0x80(%rbp),%rax
  mov    %rax,-0x338(%rbp)
  mov    0x88(%rbp),%rax
  mov    %rax,-0x340(%rbp)
  mov    0x90(%rbp),%rax
  mov    %rax,-0x348(%rbp)
  mov    0x98(%rbp),%rax
  mov    %rax,-0x350(%rbp)
  mov    0xa0(%rbp),%rax
  mov    %rax,-0x358(%rbp)
  mov    0xa8(%rbp),%rax
  mov    %rax,-0x360(%rbp)
  mov    %fs:0x28,%rax
  mov    %rax,-0x38(%rbp)
  xor    %eax,%eax
  mov    -0x2a8(%rbp),%eax
  mov    %eax,-0x268(%rbp)
  mov    -0x268(%rbp),%eax
  add    $0x1,%eax
  mov    %eax,-0x264(%rbp)
  mov    -0x264(%rbp),%eax
  cltq
  shl    $0x3,%rax
  neg    %rax
  add    %rax,-0x328(%rbp)
  mov    -0x2a8(%rbp),%eax
  mov    %eax,-0x260(%rbp)
  mov    -0x260(%rbp),%eax
  add    $0x1,%eax
  mov    %eax,-0x25c(%rbp)
  mov    -0x25c(%rbp),%eax
  cltq
  shl    $0x3,%rax
  neg    %rax
  add    %rax,-0x2f0(%rbp)
  subq   $0x8,-0x2b0(%rbp)
  subq   $0x8,-0x2b8(%rbp)
  subq   $0x8,-0x2c0(%rbp)
  subq   $0x8,-0x2e8(%rbp)
  subq   $0x8,-0x2f8(%rbp)
  subq   $0x8,-0x300(%rbp)
  subq   $0x8,-0x308(%rbp)
  subq   $0x8,-0x310(%rbp)
  subq   $0x8,-0x318(%rbp)
  mov    0x70(%rbp),%eax
  mov    %eax,-0x258(%rbp)
  mov    -0x258(%rbp),%eax
  add    $0x1,%eax
  mov    %eax,-0x254(%rbp)
  mov    -0x254(%rbp),%eax
  cltq
  shl    $0x3,%rax
  neg    %rax
  add    %rax,-0x320(%rbp)
  subq   $0x8,-0x330(%rbp)
  subq   $0x8,-0x338(%rbp)
  subq   $0x8,-0x340(%rbp)
  subq   $0x8,-0x348(%rbp)
  subq   $0x8,-0x350(%rbp)
  subq   $0x8,-0x358(%rbp)
  subq   $0x8,-0x360(%rbp)
  movsd  D88(%rip),%xmm0
  movsd  %xmm0,-0x100(%rbp)
  movsd  D109(%rip),%xmm0
  movsd  %xmm0,-0xf8(%rbp)
  movsd  D65(%rip),%xmm0
  movsd  %xmm0,-0xf0(%rbp)
  movsd  D227(%rip),%xmm0
  movsd  %xmm0,-0xe8(%rbp)
  movsd  D228(%rip),%xmm0
  movsd  %xmm0,-0xe0(%rbp)
  pxor   %xmm0,%xmm0
  movsd  %xmm0,-0xd8(%rbp)
  mov    -0x2a4(%rbp),%eax
  add    $0x1,%eax
  mov    %eax,-0x250(%rbp)
  mov    -0x2a8(%rbp),%eax
  sub    -0x250(%rbp),%eax
  mov    %eax,-0x24c(%rbp)
  mov    -0x2a4(%rbp),%eax
  imul   -0x250(%rbp),%eax
  mov    %eax,%edx
  shr    $0x1f,%edx
  add    %edx,%eax
  sar    %eax
  mov    %eax,-0x248(%rbp)
  mov    -0x338(%rbp),%rax
  lea    0x8(%rax),%rcx
  mov    -0x330(%rbp),%rax
  lea    0x8(%rax),%rsi
  mov    -0x264(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x328(%rbp),%rax
  add    %rdx,%rax
  mov    %rax,-0x368(%rbp)
  mov    -0x254(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x320(%rbp),%rax
  lea    (%rdx,%rax,1),%rbx
  mov    %rbx,-0x370(%rbp)
  mov    -0x318(%rbp),%rax
  lea    0x8(%rax),%r15
  mov    -0x310(%rbp),%rax
  lea    0x8(%rax),%r14
  mov    -0x308(%rbp),%rax
  lea    0x8(%rax),%r13
  mov    -0x2f8(%rbp),%rax
  lea    0x8(%rax),%r12
  mov    -0x25c(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x2f0(%rbp),%rax
  lea    (%rdx,%rax,1),%r9
  mov    -0x2e8(%rbp),%rax
  lea    0x8(%rax),%r8
  mov    -0x2c0(%rbp),%rax
  lea    0x8(%rax),%rdi
  mov    %rdi,-0x378(%rbp)
  mov    -0x2b8(%rbp),%rax
  lea    0x8(%rax),%rbx
  mov    -0x2b0(%rbp),%rax
  lea    0x8(%rax),%r11
  mov    -0x2d8(%rbp),%rdx
  mov    -0x2c8(%rbp),%r10
  mov    %r10,-0x380(%rbp)
  mov    -0x2a8(%rbp),%r10d
  mov    -0x2a4(%rbp),%edi
  lea    -0x298(%rbp),%rax
  push   %rax
  lea    -0x29c(%rbp),%rax
  push   %rax
  push   %rcx
  push   %rsi
  mov    0x70(%rbp),%eax
  push   %rax
  push   -0x368(%rbp)
  push   -0x370(%rbp)
  push   %r15
  push   %r14
  push   %r13
  push   %r12
  push   %r9
  push   %r8
  mov    0x20(%rbp),%eax
  push   %rax
  mov    0x18(%rbp),%eax
  push   %rax
  push   -0x2d0(%rbp)
  movq   %rdx,%xmm0
  mov    -0x380(%rbp),%r9
  mov    -0x378(%rbp),%r8
  mov    %rbx,%rcx
  mov    %r11,%rdx
  mov    %r10d,%esi
  call   <prelim_@plt>
  sub    $0xffffffffffffff80,%rsp
  movsd  -0xd8(%rbp),%xmm0
  movsd  %xmm0,-0x118(%rbp)
  movl   $0x1,-0x294(%rbp)
  jmp    L1420
L1603:
  mov    -0x294(%rbp),%eax
  imul   -0x260(%rbp),%eax
  mov    %eax,%edx
  mov    -0x298(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x2f0(%rbp),%rax
  add    %rax,%rdx
  mov    -0x294(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rcx
  mov    -0x300(%rbp),%rax
  add    %rcx,%rax
  movsd  (%rdx),%xmm0
  movsd  %xmm0,(%rax)
  mov    -0x294(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x300(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  movsd  %xmm0,-0x90(%rbp)
  movsd  -0x90(%rbp),%xmm0
  mulsd  %xmm0,%xmm0
  movsd  -0x118(%rbp),%xmm1
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0x118(%rbp)
  addl   $0x1,-0x294(%rbp)
L1420:
  mov    -0x294(%rbp),%eax
  cmp    -0x2a4(%rbp),%eax
  jle    L1603
  mov    -0x2f8(%rbp),%rax
  movsd  0x8(%rax),%xmm0
  movsd  %xmm0,-0x168(%rbp)
  mov    -0x29c(%rbp),%eax
  cmp    %eax,-0x2a8(%rbp)
  jle    L1730
  cmpl   $0x0,0x18(%rbp)
  jle    L2406
  lea    D52(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  jmp    L2406
L1730:
  movl   $0x1,-0x27c(%rbp)
  movsd  -0x2d8(%rbp),%xmm0
  movsd  %xmm0,-0x200(%rbp)
  movsd  -0x200(%rbp),%xmm0
  movsd  %xmm0,-0x180(%rbp)
  mov    -0x29c(%rbp),%eax
  mov    %eax,-0x278(%rbp)
  movl   $0x0,-0x26c(%rbp)
  movsd  -0xd8(%rbp),%xmm0
  movsd  %xmm0,-0x1a0(%rbp)
  movsd  -0xd8(%rbp),%xmm0
  movsd  %xmm0,-0x198(%rbp)
  movl   $0x0,-0x270(%rbp)
  mov    -0x29c(%rbp),%eax
  mov    %eax,-0x274(%rbp)
L2061:
  mov    -0x298(%rbp),%eax
  cmp    %eax,-0x27c(%rbp)
  je     L2165
  movl   $0x0,-0x288(%rbp)
  mov    -0x2a4(%rbp),%eax
  mov    %eax,-0x244(%rbp)
  movl   $0x1,-0x290(%rbp)
  jmp    L2132
L2243:
  mov    -0x290(%rbp),%eax
  mov    %eax,-0x240(%rbp)
  movl   $0x1,-0x294(%rbp)
  jmp    L1454
L2062:
  addl   $0x1,-0x288(%rbp)
  mov    -0x294(%rbp),%eax
  cmp    -0x290(%rbp),%eax
  jge    L1685
  mov    -0x290(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x308(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm1
  mov    -0x288(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x310(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm2
  mov    -0x294(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x300(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mulsd  %xmm2,%xmm0
  mov    -0x290(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x308(%rbp),%rax
  add    %rdx,%rax
  addsd  %xmm1,%xmm0
  movsd  %xmm0,(%rax)
L1685:
  mov    -0x294(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x308(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm1
  mov    -0x288(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x310(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm2
  mov    -0x290(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x300(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mulsd  %xmm2,%xmm0
  mov    -0x294(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x308(%rbp),%rax
  add    %rdx,%rax
  addsd  %xmm1,%xmm0
  movsd  %xmm0,(%rax)
  addl   $0x1,-0x294(%rbp)
L1454:
  mov    -0x294(%rbp),%eax
  cmp    -0x240(%rbp),%eax
  jle    L2062
  addl   $0x1,-0x290(%rbp)
L2132:
  mov    -0x290(%rbp),%eax
  cmp    -0x244(%rbp),%eax
  jle    L2243
  mov    -0x29c(%rbp),%eax
  cmp    %eax,-0x2a8(%rbp)
  jge    L2165
  mov    -0x2a8(%rbp),%eax
  mov    %eax,-0x240(%rbp)
  movl   $0x1,-0x28c(%rbp)
  jmp    L2414
L1820:
  movsd  -0xd8(%rbp),%xmm0
  movsd  %xmm0,-0x1e0(%rbp)
  mov    -0x2a4(%rbp),%eax
  mov    %eax,-0x244(%rbp)
  movl   $0x1,-0x290(%rbp)
  jmp    L50
L760:
  mov    -0x290(%rbp),%eax
  imul   -0x260(%rbp),%eax
  mov    %eax,%edx
  mov    -0x28c(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x2f0(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm1
  mov    -0x290(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x300(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mulsd  %xmm1,%xmm0
  movsd  -0x1e0(%rbp),%xmm1
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0x1e0(%rbp)
  addl   $0x1,-0x290(%rbp)
L50:
  mov    -0x290(%rbp),%eax
  cmp    -0x244(%rbp),%eax
  jle    L760
  mov    -0x28c(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x318(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  movsd  -0x1e0(%rbp),%xmm1
  mulsd  %xmm1,%xmm0
  movsd  %xmm0,-0x1e0(%rbp)
  mov    -0x2a4(%rbp),%eax
  mov    %eax,-0x244(%rbp)
  movl   $0x1,-0x294(%rbp)
  jmp    L407
L633:
  mov    -0x294(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x308(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm1
  mov    -0x294(%rbp),%eax
  imul   -0x260(%rbp),%eax
  mov    %eax,%edx
  mov    -0x28c(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x2f0(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mulsd  -0x1e0(%rbp),%xmm0
  mov    -0x294(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x308(%rbp),%rax
  add    %rdx,%rax
  addsd  %xmm1,%xmm0
  movsd  %xmm0,(%rax)
  addl   $0x1,-0x294(%rbp)
L407:
  mov    -0x294(%rbp),%eax
  cmp    -0x244(%rbp),%eax
  jle    L633
  addl   $0x1,-0x28c(%rbp)
L2414:
  mov    -0x28c(%rbp),%eax
  cmp    -0x240(%rbp),%eax
  jle    L1820
L2165:
  nop
L348:
  mov    -0x2a4(%rbp),%edx
  mov    %edx,%eax
  add    %eax,%eax
  add    %eax,%edx
  mov    -0x250(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x360(%rbp),%rax
  lea    (%rdx,%rax,1),%rcx
  mov    -0x2a4(%rbp),%eax
  lea    (%rax,%rax,1),%edx
  mov    -0x250(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x360(%rbp),%rax
  lea    (%rdx,%rax,1),%r8
  mov    -0x250(%rbp),%edx
  mov    -0x2a4(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x360(%rbp),%rax
  add    %rdx,%rax
  mov    %rax,-0x368(%rbp)
  mov    -0x250(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x360(%rbp),%rax
  lea    (%rdx,%rax,1),%rbx
  mov    %rbx,-0x370(%rbp)
  mov    -0x360(%rbp),%rax
  lea    0x8(%rax),%r15
  mov    -0x350(%rbp),%rax
  lea    0x8(%rax),%r14
  mov    -0x340(%rbp),%rax
  lea    0x8(%rax),%r13
  mov    -0x338(%rbp),%rax
  lea    0x8(%rax),%r12
  mov    -0x330(%rbp),%rax
  lea    0x8(%rax),%rbx
  mov    -0x318(%rbp),%rax
  lea    0x8(%rax),%r9
  mov    -0x310(%rbp),%rax
  lea    0x8(%rax),%rsi
  mov    %rsi,-0x378(%rbp)
  mov    -0x308(%rbp),%rax
  lea    0x8(%rax),%rdi
  mov    %rdi,-0x380(%rbp)
  mov    -0x300(%rbp),%rax
  lea    0x8(%rax),%r11
  mov    -0x25c(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x2f0(%rbp),%rax
  lea    (%rdx,%rax,1),%r10
  mov    -0x180(%rbp),%rdx
  mov    -0x2a8(%rbp),%esi
  mov    -0x2a4(%rbp),%edi
  lea    -0x218(%rbp),%rax
  push   %rax
  lea    -0x230(%rbp),%rax
  push   %rax
  push   %rcx
  push   %r8
  push   -0x368(%rbp)
  push   -0x370(%rbp)
  push   %r15
  push   %r14
  push   %r13
  push   %r12
  push   %rbx
  push   %r9
  movq   %rdx,%xmm0
  mov    -0x378(%rbp),%r9
  mov    -0x380(%rbp),%r8
  mov    %r11,%rcx
  mov    %r10,%rdx
  call   <trsbox_@plt>
  add    $0x60,%rsp
  mov    -0x230(%rbp),%rax
  movq   %rax,%xmm0
  call   <sqrt@plt>
  movq   %xmm0,%rax
  mov    %rax,-0x158(%rbp)
  movsd  -0x158(%rbp),%xmm0
  comisd -0x180(%rbp),%xmm0
  jbe    L2507
  movsd  -0x180(%rbp),%xmm0
  movsd  %xmm0,-0x158(%rbp)
L2507:
  movsd  -0x100(%rbp),%xmm0
  mulsd  -0x200(%rbp),%xmm0
  comisd -0x158(%rbp),%xmm0
  jbe    L1497
  movl   $0xffffffff,-0x26c(%rbp)
  movsd  -0xf0(%rbp),%xmm0
  movapd %xmm0,%xmm1
  mulsd  -0x200(%rbp),%xmm1
  movsd  -0xf0(%rbp),%xmm0
  mulsd  -0x200(%rbp),%xmm0
  mulsd  %xmm1,%xmm0
  movsd  %xmm0,-0x120(%rbp)
  mov    -0x274(%rbp),%eax
  lea    0x2(%rax),%edx
  mov    -0x29c(%rbp),%eax
  cmp    %eax,%edx
  jge    L1453
  movsd  -0x1a0(%rbp),%xmm0
  movsd  %xmm0,-0x138(%rbp)
  movsd  -0x198(%rbp),%xmm0
  comisd -0x138(%rbp),%xmm0
  jbe    L2049
  movsd  -0x198(%rbp),%xmm0
  movsd  %xmm0,-0x138(%rbp)
L2049:
  movsd  -0x190(%rbp),%xmm0
  comisd -0x138(%rbp),%xmm0
  jbe    L732
  movsd  -0x190(%rbp),%xmm0
  movsd  %xmm0,-0x138(%rbp)
L732:
  movsd  -0x200(%rbp),%xmm1
  movsd  D18(%rip),%xmm0
  mulsd  %xmm1,%xmm0
  movsd  -0x200(%rbp),%xmm1
  mulsd  %xmm1,%xmm0
  movsd  %xmm0,-0xd0(%rbp)
  movsd  -0x218(%rbp),%xmm0
  comisd -0xd8(%rbp),%xmm0
  jbe    L1701
  movsd  -0x218(%rbp),%xmm0
  movapd %xmm0,%xmm1
  mulsd  -0xd0(%rbp),%xmm1
  movsd  -0x138(%rbp),%xmm0
  comisd %xmm1,%xmm0
  ja     L281
L1701:
  movsd  -0x138(%rbp),%xmm0
  divsd  -0x200(%rbp),%xmm0
  movsd  %xmm0,-0xc8(%rbp)
  mov    -0x2a4(%rbp),%eax
  mov    %eax,-0x244(%rbp)
  movl   $0x1,-0x290(%rbp)
  jmp    L2604
L2027:
  movsd  -0xc8(%rbp),%xmm0
  movsd  %xmm0,-0x128(%rbp)
  mov    -0x290(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x340(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mov    -0x290(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x330(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm1
  ucomisd %xmm1,%xmm0
  jp     L1285
  ucomisd %xmm1,%xmm0
  jne    L1285
  mov    -0x290(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x360(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  movsd  %xmm0,-0x128(%rbp)
L1285:
  mov    -0x290(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x340(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mov    -0x290(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x338(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm1
  ucomisd %xmm1,%xmm0
  jp     L1436
  ucomisd %xmm1,%xmm0
  jne    L1436
  mov    -0x290(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x360(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  movq   D160(%rip),%xmm1
  xorpd  %xmm1,%xmm0
  movsd  %xmm0,-0x128(%rbp)
L1436:
  movsd  -0xc8(%rbp),%xmm0
  comisd -0x128(%rbp),%xmm0
  jbe    L2013
  mov    -0x290(%rbp),%eax
  imul   %eax,%eax
  mov    %eax,%edx
  mov    -0x290(%rbp),%eax
  add    %edx,%eax
  mov    %eax,%edx
  shr    $0x1f,%edx
  add    %edx,%eax
  sar    %eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x310(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  movsd  %xmm0,-0x1c0(%rbp)
  mov    -0x2a8(%rbp),%eax
  mov    %eax,-0x240(%rbp)
  movl   $0x1,-0x28c(%rbp)
  jmp    L1068
L1194:
  mov    -0x28c(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x318(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm1
  mov    -0x290(%rbp),%eax
  imul   -0x260(%rbp),%eax
  mov    %eax,%edx
  mov    -0x28c(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x2f0(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm2
  mov    -0x290(%rbp),%eax
  imul   -0x260(%rbp),%eax
  mov    %eax,%edx
  mov    -0x28c(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x2f0(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mulsd  %xmm2,%xmm0
  mulsd  %xmm1,%xmm0
  movsd  -0x1c0(%rbp),%xmm1
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0x1c0(%rbp)
  addl   $0x1,-0x28c(%rbp)
L1068:
  mov    -0x28c(%rbp),%eax
  cmp    -0x240(%rbp),%eax
  jle    L1194
  movsd  -0x100(%rbp),%xmm0
  mulsd  -0x1c0(%rbp),%xmm0
  mulsd  -0x200(%rbp),%xmm0
  movsd  -0x128(%rbp),%xmm1
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0x128(%rbp)
  movsd  -0xc8(%rbp),%xmm0
  comisd -0x128(%rbp),%xmm0
  ja     L358
L2013:
  addl   $0x1,-0x290(%rbp)
L2604:
  mov    -0x290(%rbp),%eax
  cmp    -0x244(%rbp),%eax
  jle    L2027
  jmp    L750
L1497:
  addl   $0x1,-0x26c(%rbp)
L1154:
  movsd  -0x118(%rbp),%xmm1
  movsd  D206(%rip),%xmm0
  mulsd  %xmm1,%xmm0
  movsd  -0x230(%rbp),%xmm1
  comisd %xmm1,%xmm0
  jb     L650
  movsd  -0x118(%rbp),%xmm1
  movsd  D211(%rip),%xmm0
  mulsd  %xmm1,%xmm0
  movsd  %xmm0,-0xb8(%rbp)
  movsd  -0xd8(%rbp),%xmm0
  movsd  %xmm0,-0x148(%rbp)
  movl   $0x1,-0x28c(%rbp)
  jmp    L2020
L1619:
  mov    -0x28c(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x318(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  movsd  -0x148(%rbp),%xmm1
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0x148(%rbp)
  movsd  -0x100(%rbp),%xmm0
  movq   D160(%rip),%xmm1
  xorpd  %xmm1,%xmm0
  movsd  -0x118(%rbp),%xmm1
  mulsd  %xmm1,%xmm0
  movsd  %xmm0,-0x1f8(%rbp)
  movl   $0x1,-0x294(%rbp)
  jmp    L949
L1571:
  mov    -0x294(%rbp),%eax
  imul   -0x260(%rbp),%eax
  mov    %eax,%edx
  mov    -0x28c(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x2f0(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm1
  mov    -0x294(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x300(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mulsd  %xmm1,%xmm0
  movsd  -0x1f8(%rbp),%xmm1
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0x1f8(%rbp)
  addl   $0x1,-0x294(%rbp)
L949:
  mov    -0x294(%rbp),%eax
  cmp    -0x2a4(%rbp),%eax
  jle    L1571
  mov    -0x2a8(%rbp),%edx
  mov    -0x28c(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x360(%rbp),%rax
  add    %rdx,%rax
  movsd  -0x1f8(%rbp),%xmm0
  movsd  %xmm0,(%rax)
  movsd  -0x100(%rbp),%xmm0
  movapd %xmm0,%xmm1
  mulsd  -0x1f8(%rbp),%xmm1
  movsd  -0xb8(%rbp),%xmm0
  subsd  %xmm1,%xmm0
  movsd  %xmm0,-0x1e0(%rbp)
  movl   $0x1,-0x294(%rbp)
  jmp    L2803
L63:
  mov    -0x294(%rbp),%eax
  imul   -0x258(%rbp),%eax
  mov    %eax,%edx
  mov    -0x28c(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x320(%rbp),%rax
  add    %rax,%rdx
  mov    -0x294(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rcx
  mov    -0x360(%rbp),%rax
  add    %rcx,%rax
  movsd  (%rdx),%xmm0
  movsd  %xmm0,(%rax)
  mov    -0x294(%rbp),%eax
  imul   -0x260(%rbp),%eax
  mov    %eax,%edx
  mov    -0x28c(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x2f0(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  movapd %xmm0,%xmm1
  mulsd  -0x1f8(%rbp),%xmm1
  mov    -0x294(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x300(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mulsd  -0x1e0(%rbp),%xmm0
  mov    -0x294(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x358(%rbp),%rax
  add    %rdx,%rax
  addsd  %xmm1,%xmm0
  movsd  %xmm0,(%rax)
  mov    -0x2a8(%rbp),%edx
  mov    -0x294(%rbp),%eax
  add    %edx,%eax
  mov    %eax,-0x23c(%rbp)
  movl   $0x1,-0x290(%rbp)
  jmp    L472
L880:
  mov    -0x290(%rbp),%eax
  imul   -0x258(%rbp),%eax
  mov    %eax,%edx
  mov    -0x23c(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x320(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm1
  mov    -0x294(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x360(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm2
  mov    -0x290(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x358(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mulsd  %xmm2,%xmm0
  addsd  %xmm0,%xmm1
  mov    -0x294(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x358(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm2
  mov    -0x290(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x360(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mulsd  %xmm2,%xmm0
  mov    -0x290(%rbp),%eax
  imul   -0x258(%rbp),%eax
  mov    %eax,%edx
  mov    -0x23c(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x320(%rbp),%rax
  add    %rdx,%rax
  addsd  %xmm1,%xmm0
  movsd  %xmm0,(%rax)
  addl   $0x1,-0x290(%rbp)
L472:
  mov    -0x290(%rbp),%eax
  cmp    -0x294(%rbp),%eax
  jle    L880
  addl   $0x1,-0x294(%rbp)
L2803:
  mov    -0x294(%rbp),%eax
  cmp    -0x2a4(%rbp),%eax
  jle    L63
  addl   $0x1,-0x28c(%rbp)
L2020:
  mov    -0x28c(%rbp),%eax
  cmp    -0x2a8(%rbp),%eax
  jle    L1619
  movl   $0x1,-0x284(%rbp)
  jmp    L980
L723:
  movsd  -0xd8(%rbp),%xmm0
  movsd  %xmm0,-0x1a8(%rbp)
  movsd  -0xd8(%rbp),%xmm0
  movsd  %xmm0,-0x1b0(%rbp)
  mov    -0x2a8(%rbp),%eax
  mov    %eax,-0x240(%rbp)
  movl   $0x1,-0x28c(%rbp)
  jmp    L316
L1299:
  mov    -0x284(%rbp),%eax
  imul   -0x268(%rbp),%eax
  mov    %eax,%edx
  mov    -0x28c(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x328(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  movsd  -0x1a8(%rbp),%xmm1
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0x1a8(%rbp)
  mov    -0x2a8(%rbp),%edx
  mov    -0x28c(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x360(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm1
  mov    -0x284(%rbp),%eax
  imul   -0x268(%rbp),%eax
  mov    %eax,%edx
  mov    -0x28c(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x328(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mov    -0x28c(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x358(%rbp),%rax
  add    %rdx,%rax
  mulsd  %xmm1,%xmm0
  movsd  %xmm0,(%rax)
  mov    -0x28c(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x358(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  movsd  -0x1b0(%rbp),%xmm1
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0x1b0(%rbp)
  addl   $0x1,-0x28c(%rbp)
L316:
  mov    -0x28c(%rbp),%eax
  cmp    -0x240(%rbp),%eax
  jle    L1299
  movl   $0x1,-0x290(%rbp)
  jmp    L2438
L1269:
  movsd  -0xb8(%rbp),%xmm0
  mulsd  -0x1a8(%rbp),%xmm0
  movsd  -0x100(%rbp),%xmm1
  movapd %xmm1,%xmm2
  mulsd  -0x1b0(%rbp),%xmm2
  movapd %xmm0,%xmm1
  subsd  %xmm2,%xmm1
  mov    -0x290(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x300(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mulsd  %xmm1,%xmm0
  movsd  %xmm0,-0x1f8(%rbp)
  movl   $0x1,-0x28c(%rbp)
  jmp    L1394
L2439:
  mov    -0x28c(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x358(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm1
  mov    -0x290(%rbp),%eax
  imul   -0x260(%rbp),%eax
  mov    %eax,%edx
  mov    -0x28c(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x2f0(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mulsd  %xmm1,%xmm0
  movsd  -0x1f8(%rbp),%xmm1
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0x1f8(%rbp)
  addl   $0x1,-0x28c(%rbp)
L1394:
  mov    -0x28c(%rbp),%eax
  cmp    -0x2a8(%rbp),%eax
  jle    L2439
  mov    -0x290(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x360(%rbp),%rax
  add    %rdx,%rax
  movsd  -0x1f8(%rbp),%xmm0
  movsd  %xmm0,(%rax)
  movl   $0x1,-0x28c(%rbp)
  jmp    L1642
L64:
  mov    -0x290(%rbp),%eax
  imul   -0x258(%rbp),%eax
  mov    %eax,%edx
  mov    -0x28c(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x320(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm1
  mov    -0x284(%rbp),%eax
  imul   -0x268(%rbp),%eax
  mov    %eax,%edx
  mov    -0x28c(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x328(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mulsd  -0x1f8(%rbp),%xmm0
  mov    -0x290(%rbp),%eax
  imul   -0x258(%rbp),%eax
  mov    %eax,%edx
  mov    -0x28c(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x320(%rbp),%rax
  add    %rdx,%rax
  addsd  %xmm1,%xmm0
  movsd  %xmm0,(%rax)
  addl   $0x1,-0x28c(%rbp)
L1642:
  mov    -0x28c(%rbp),%eax
  cmp    -0x2a8(%rbp),%eax
  jle    L64
  addl   $0x1,-0x290(%rbp)
L2438:
  mov    -0x290(%rbp),%eax
  cmp    -0x2a4(%rbp),%eax
  jle    L1269
  movl   $0x1,-0x294(%rbp)
  jmp    L1113
L259:
  mov    -0x294(%rbp),%edx
  mov    -0x2a8(%rbp),%eax
  add    %edx,%eax
  mov    %eax,-0x23c(%rbp)
  mov    -0x294(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x360(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  movsd  %xmm0,-0x1e0(%rbp)
  movl   $0x1,-0x290(%rbp)
  jmp    L234
L813:
  mov    -0x290(%rbp),%eax
  imul   -0x258(%rbp),%eax
  mov    %eax,%edx
  mov    -0x23c(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x320(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm1
  mov    -0x290(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x360(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mulsd  -0x1e0(%rbp),%xmm0
  mov    -0x290(%rbp),%eax
  imul   -0x258(%rbp),%eax
  mov    %eax,%edx
  mov    -0x23c(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x320(%rbp),%rax
  add    %rdx,%rax
  addsd  %xmm1,%xmm0
  movsd  %xmm0,(%rax)
  addl   $0x1,-0x290(%rbp)
L234:
  mov    -0x290(%rbp),%eax
  cmp    -0x294(%rbp),%eax
  jle    L813
  addl   $0x1,-0x294(%rbp)
L1113:
  mov    -0x294(%rbp),%eax
  cmp    -0x2a4(%rbp),%eax
  jle    L259
  addl   $0x1,-0x284(%rbp)
L980:
  mov    -0x284(%rbp),%eax
  cmp    -0x24c(%rbp),%eax
  jle    L723
  movl   $0x0,-0x288(%rbp)
  movl   $0x1,-0x290(%rbp)
  jmp    L2823
L2181:
  movsd  -0x100(%rbp),%xmm0
  movq   D160(%rip),%xmm1
  xorpd  %xmm1,%xmm0
  movapd %xmm0,%xmm1
  mulsd  -0x148(%rbp),%xmm1
  mov    -0x290(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x300(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mov    -0x290(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x360(%rbp),%rax
  add    %rdx,%rax
  mulsd  %xmm1,%xmm0
  movsd  %xmm0,(%rax)
  mov    -0x2a8(%rbp),%eax
  mov    %eax,-0x244(%rbp)
  movl   $0x1,-0x28c(%rbp)
  jmp    L1460
L2677:
  mov    -0x290(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x360(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm1
  mov    -0x28c(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x318(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm2
  mov    -0x290(%rbp),%eax
  imul   -0x260(%rbp),%eax
  mov    %eax,%edx
  mov    -0x28c(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x2f0(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mulsd  %xmm2,%xmm0
  mov    -0x290(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x360(%rbp),%rax
  add    %rdx,%rax
  addsd  %xmm1,%xmm0
  movsd  %xmm0,(%rax)
  mov    -0x290(%rbp),%eax
  imul   -0x260(%rbp),%eax
  mov    %eax,%edx
  mov    -0x28c(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x2f0(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mov    -0x290(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x300(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm1
  mov    -0x290(%rbp),%eax
  imul   -0x260(%rbp),%eax
  mov    %eax,%edx
  mov    -0x28c(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x2f0(%rbp),%rax
  add    %rdx,%rax
  subsd  %xmm1,%xmm0
  movsd  %xmm0,(%rax)
  addl   $0x1,-0x28c(%rbp)
L1460:
  mov    -0x28c(%rbp),%eax
  cmp    -0x244(%rbp),%eax
  jle    L2677
  movl   $0x1,-0x294(%rbp)
  jmp    L2741
L1434:
  addl   $0x1,-0x288(%rbp)
  mov    -0x288(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x310(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm1
  mov    -0x294(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x360(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm2
  mov    -0x290(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x300(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mulsd  %xmm2,%xmm0
  addsd  %xmm0,%xmm1
  mov    -0x294(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x300(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm2
  mov    -0x290(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x360(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mulsd  %xmm2,%xmm0
  mov    -0x288(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x310(%rbp),%rax
  add    %rdx,%rax
  addsd  %xmm1,%xmm0
  movsd  %xmm0,(%rax)
  mov    -0x2a8(%rbp),%edx
  mov    -0x290(%rbp),%eax
  add    %eax,%edx
  mov    -0x294(%rbp),%eax
  imul   -0x258(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x320(%rbp),%rax
  add    %rax,%rdx
  mov    -0x2a8(%rbp),%ecx
  mov    -0x294(%rbp),%eax
  add    %eax,%ecx
  mov    -0x290(%rbp),%eax
  imul   -0x258(%rbp),%eax
  add    %ecx,%eax
  cltq
  lea    0x0(,%rax,8),%rcx
  mov    -0x320(%rbp),%rax
  add    %rcx,%rax
  movsd  (%rdx),%xmm0
  movsd  %xmm0,(%rax)
  addl   $0x1,-0x294(%rbp)
L2741:
  mov    -0x294(%rbp),%eax
  cmp    -0x290(%rbp),%eax
  jle    L1434
  addl   $0x1,-0x290(%rbp)
L2823:
  mov    -0x290(%rbp),%eax
  cmp    -0x2a4(%rbp),%eax
  jle    L2181
  movl   $0x1,-0x294(%rbp)
  jmp    L2252
L317:
  mov    -0x294(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x2e8(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm1
  mov    -0x294(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x300(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mov    -0x294(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x2e8(%rbp),%rax
  add    %rdx,%rax
  addsd  %xmm1,%xmm0
  movsd  %xmm0,(%rax)
  mov    -0x294(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x340(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mov    -0x294(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x300(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm1
  mov    -0x294(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x340(%rbp),%rax
  add    %rdx,%rax
  subsd  %xmm1,%xmm0
  movsd  %xmm0,(%rax)
  mov    -0x294(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x330(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mov    -0x294(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x300(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm1
  mov    -0x294(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x330(%rbp),%rax
  add    %rdx,%rax
  subsd  %xmm1,%xmm0
  movsd  %xmm0,(%rax)
  mov    -0x294(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x338(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mov    -0x294(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x300(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm1
  mov    -0x294(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x338(%rbp),%rax
  add    %rdx,%rax
  subsd  %xmm1,%xmm0
  movsd  %xmm0,(%rax)
  mov    -0x294(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x300(%rbp),%rax
  add    %rdx,%rax
  movsd  -0xd8(%rbp),%xmm0
  movsd  %xmm0,(%rax)
  addl   $0x1,-0x294(%rbp)
L2252:
  mov    -0x294(%rbp),%eax
  cmp    -0x2a4(%rbp),%eax
  jle    L317
  movsd  -0xd8(%rbp),%xmm0
  movsd  %xmm0,-0x118(%rbp)
L650:
  cmpl   $0x0,-0x26c(%rbp)
  jne    L2404
  jmp    L1576
L1760:
  nop
  jmp    L2763
L2336:
  nop
L2763:
  mov    -0x29c(%rbp),%eax
  mov    %eax,-0x274(%rbp)
  mov    -0x298(%rbp),%eax
  mov    %eax,-0x27c(%rbp)
  mov    0x70(%rbp),%edx
  mov    -0x250(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x360(%rbp),%rax
  lea    (%rdx,%rax,1),%rcx
  mov    -0x2a4(%rbp),%edx
  mov    -0x250(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x360(%rbp),%rax
  lea    (%rdx,%rax,1),%r8
  mov    -0x360(%rbp),%rax
  lea    0x8(%rax),%r9
  mov    -0x358(%rbp),%rax
  lea    0x8(%rax),%r10
  mov    -0x338(%rbp),%rax
  lea    0x8(%rax),%r14
  mov    -0x330(%rbp),%rax
  lea    0x8(%rax),%r15
  mov    -0x264(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x328(%rbp),%rax
  add    %rdx,%rax
  mov    %rax,-0x368(%rbp)
  mov    -0x254(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x320(%rbp),%rax
  lea    (%rdx,%rax,1),%rbx
  mov    %rbx,-0x370(%rbp)
  mov    -0x318(%rbp),%rax
  lea    0x8(%rax),%rsi
  mov    %rsi,-0x378(%rbp)
  mov    -0x310(%rbp),%rax
  lea    0x8(%rax),%rdi
  mov    %rdi,-0x380(%rbp)
  mov    -0x308(%rbp),%rax
  lea    0x8(%rax),%rdx
  mov    %rdx,-0x388(%rbp)
  mov    -0x300(%rbp),%rax
  lea    0x8(%rax),%r11
  mov    %r11,-0x390(%rbp)
  mov    -0x2f8(%rbp),%rax
  lea    0x8(%rax),%r12
  mov    %r12,-0x398(%rbp)
  mov    -0x25c(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x2f0(%rbp),%rax
  lea    (%rdx,%rax,1),%r13
  mov    %r13,-0x3a0(%rbp)
  mov    -0x2e8(%rbp),%rax
  add    $0x8,%rax
  mov    %rax,-0x3a8(%rbp)
  mov    -0x2c0(%rbp),%rax
  lea    0x8(%rax),%r13
  mov    -0x2b8(%rbp),%rax
  lea    0x8(%rax),%r11
  mov    -0x180(%rbp),%rdx
  mov    -0x2d0(%rbp),%r12
  mov    -0x2c8(%rbp),%rbx
  mov    -0x2a8(%rbp),%esi
  mov    -0x2a4(%rbp),%edi
  push   %rcx
  push   %r8
  push   %r9
  push   %r10
  lea    -0x298(%rbp),%rax
  push   %rax
  lea    -0x29c(%rbp),%rax
  push   %rax
  push   %r14
  push   %r15
  mov    0x70(%rbp),%eax
  push   %rax
  push   -0x368(%rbp)
  push   -0x370(%rbp)
  push   -0x378(%rbp)
  push   -0x380(%rbp)
  push   -0x388(%rbp)
  push   -0x390(%rbp)
  push   -0x398(%rbp)
  push   -0x3a0(%rbp)
  push   -0x3a8(%rbp)
  mov    0x20(%rbp),%eax
  push   %rax
  mov    0x18(%rbp),%eax
  push   %rax
  movq   %rdx,%xmm0
  mov    %r12,%r9
  mov    %rbx,%r8
  mov    %r13,%rcx
  mov    %r11,%rdx
  call   <rescue_@plt>
  add    $0xa0,%rsp
  movsd  -0xd8(%rbp),%xmm0
  movsd  %xmm0,-0x118(%rbp)
  mov    -0x298(%rbp),%eax
  cmp    %eax,-0x27c(%rbp)
  je     L678
  movl   $0x1,-0x294(%rbp)
  jmp    L1627
L2687:
  mov    -0x294(%rbp),%eax
  imul   -0x260(%rbp),%eax
  mov    %eax,%edx
  mov    -0x298(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x2f0(%rbp),%rax
  add    %rax,%rdx
  mov    -0x294(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rcx
  mov    -0x300(%rbp),%rax
  add    %rcx,%rax
  movsd  (%rdx),%xmm0
  movsd  %xmm0,(%rax)
  mov    -0x294(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x300(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm1
  mov    -0x294(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x300(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mulsd  %xmm1,%xmm0
  movsd  -0x118(%rbp),%xmm1
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0x118(%rbp)
  addl   $0x1,-0x294(%rbp)
L1627:
  mov    -0x294(%rbp),%eax
  cmp    -0x2a4(%rbp),%eax
  jle    L2687
L678:
  mov    -0x29c(%rbp),%eax
  test   %eax,%eax
  jns    L751
  mov    0x20(%rbp),%eax
  mov    %eax,-0x29c(%rbp)
  cmpl   $0x0,0x18(%rbp)
  jle    L515
  lea    D52(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  jmp    L515
L751:
  mov    -0x29c(%rbp),%eax
  mov    %eax,-0x278(%rbp)
  mov    -0x29c(%rbp),%eax
  cmp    %eax,-0x274(%rbp)
  jge    L1873
  mov    -0x29c(%rbp),%eax
  mov    %eax,-0x274(%rbp)
  jmp    L2061
L1873:
  cmpl   $0x0,-0x26c(%rbp)
  jle    L1483
  jmp    L348
L1483:
  nop
L1576:
  mov    0x70(%rbp),%eax
  cltq
  add    $0x1,%rax
  lea    0x0(,%rax,8),%rdx
  mov    -0x360(%rbp),%rax
  lea    (%rdx,%rax,1),%r15
  mov    -0x250(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x360(%rbp),%rax
  lea    (%rdx,%rax,1),%r14
  mov    -0x360(%rbp),%rax
  lea    0x8(%rax),%r13
  mov    -0x348(%rbp),%rax
  lea    0x8(%rax),%r12
  mov    -0x340(%rbp),%rax
  lea    0x8(%rax),%rbx
  mov    -0x298(%rbp),%r8d
  mov    -0x338(%rbp),%rax
  lea    0x8(%rax),%r11
  mov    -0x330(%rbp),%rax
  lea    0x8(%rax),%r9
  mov    -0x264(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x328(%rbp),%rax
  add    %rdx,%rax
  mov    %rax,-0x368(%rbp)
  mov    -0x254(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x320(%rbp),%rax
  lea    (%rdx,%rax,1),%rsi
  mov    %rsi,-0x370(%rbp)
  mov    -0x300(%rbp),%rax
  lea    0x8(%rax),%rcx
  mov    -0x25c(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x2f0(%rbp),%rax
  lea    (%rdx,%rax,1),%r10
  mov    -0x178(%rbp),%rdx
  mov    -0x2a8(%rbp),%esi
  mov    -0x2a4(%rbp),%edi
  push   %r15
  push   %r14
  push   %r13
  lea    -0x220(%rbp),%rax
  push   %rax
  lea    -0x228(%rbp),%rax
  push   %rax
  push   %r12
  push   %rbx
  mov    -0x280(%rbp),%eax
  push   %rax
  push   %r8
  push   %r11
  push   %r9
  mov    0x70(%rbp),%eax
  push   %rax
  movq   %rdx,%xmm0
  mov    -0x368(%rbp),%r9
  mov    -0x370(%rbp),%r8
  mov    %r10,%rdx
  call   <altmov_@plt>
  add    $0x60,%rsp
  movl   $0x1,-0x294(%rbp)
  jmp    L551
L296:
  mov    -0x294(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x340(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mov    -0x294(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x300(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm1
  mov    -0x294(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x350(%rbp),%rax
  add    %rdx,%rax
  subsd  %xmm1,%xmm0
  movsd  %xmm0,(%rax)
  addl   $0x1,-0x294(%rbp)
L551:
  mov    -0x294(%rbp),%eax
  cmp    -0x2a4(%rbp),%eax
  jle    L296
  jmp    L2137
L2404:
  nop
L2137:
  movl   $0x1,-0x28c(%rbp)
  jmp    L403
L1860:
  movsd  -0xd8(%rbp),%xmm0
  movsd  %xmm0,-0x1d8(%rbp)
  movsd  -0xd8(%rbp),%xmm0
  movsd  %xmm0,-0x1d0(%rbp)
  movsd  -0xd8(%rbp),%xmm0
  movsd  %xmm0,-0x1f8(%rbp)
  mov    -0x2a4(%rbp),%eax
  mov    %eax,-0x240(%rbp)
  movl   $0x1,-0x290(%rbp)
  jmp    L1279
L167:
  mov    -0x290(%rbp),%eax
  imul   -0x260(%rbp),%eax
  mov    %eax,%edx
  mov    -0x28c(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x2f0(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm1
  mov    -0x290(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x350(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mulsd  %xmm1,%xmm0
  movsd  -0x1d8(%rbp),%xmm1
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0x1d8(%rbp)
  mov    -0x290(%rbp),%eax
  imul   -0x260(%rbp),%eax
  mov    %eax,%edx
  mov    -0x28c(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x2f0(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm1
  mov    -0x290(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x300(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mulsd  %xmm1,%xmm0
  movsd  -0x1d0(%rbp),%xmm1
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0x1d0(%rbp)
  mov    -0x290(%rbp),%eax
  imul   -0x258(%rbp),%eax
  mov    %eax,%edx
  mov    -0x28c(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x320(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm1
  mov    -0x290(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x350(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mulsd  %xmm1,%xmm0
  movsd  -0x1f8(%rbp),%xmm1
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0x1f8(%rbp)
  addl   $0x1,-0x290(%rbp)
L1279:
  mov    -0x290(%rbp),%eax
  cmp    -0x240(%rbp),%eax
  jle    L167
  movsd  -0x100(%rbp),%xmm0
  mulsd  -0x1d8(%rbp),%xmm0
  addsd  -0x1d0(%rbp),%xmm0
  mov    -0x28c(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x360(%rbp),%rax
  add    %rdx,%rax
  mulsd  -0x1d8(%rbp),%xmm0
  movsd  %xmm0,(%rax)
  mov    -0x28c(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x358(%rbp),%rax
  add    %rdx,%rax
  movsd  -0x1f8(%rbp),%xmm0
  movsd  %xmm0,(%rax)
  mov    -0x2a8(%rbp),%edx
  mov    -0x28c(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x360(%rbp),%rax
  add    %rdx,%rax
  movsd  -0x1d8(%rbp),%xmm0
  movsd  %xmm0,(%rax)
  addl   $0x1,-0x28c(%rbp)
L403:
  mov    -0x28c(%rbp),%eax
  cmp    -0x2a8(%rbp),%eax
  jle    L1860
  movsd  -0xd8(%rbp),%xmm0
  movsd  %xmm0,-0x1f0(%rbp)
  movl   $0x1,-0x284(%rbp)
  jmp    L263
L2161:
  movsd  -0xd8(%rbp),%xmm0
  movsd  %xmm0,-0x1f8(%rbp)
  movl   $0x1,-0x28c(%rbp)
  jmp    L2154
L2598:
  mov    -0x284(%rbp),%eax
  imul   -0x268(%rbp),%eax
  mov    %eax,%edx
  mov    -0x28c(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x328(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm1
  mov    -0x28c(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x360(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mulsd  %xmm1,%xmm0
  movsd  -0x1f8(%rbp),%xmm1
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0x1f8(%rbp)
  addl   $0x1,-0x28c(%rbp)
L2154:
  mov    -0x28c(%rbp),%eax
  cmp    -0x2a8(%rbp),%eax
  jle    L2598
  movsd  -0x1f8(%rbp),%xmm0
  movapd %xmm0,%xmm1
  mulsd  %xmm0,%xmm1
  movsd  -0x1f0(%rbp),%xmm0
  subsd  %xmm1,%xmm0
  movsd  %xmm0,-0x1f0(%rbp)
  movl   $0x1,-0x28c(%rbp)
  jmp    L1471
L913:
  mov    -0x28c(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x358(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm1
  mov    -0x284(%rbp),%eax
  imul   -0x268(%rbp),%eax
  mov    %eax,%edx
  mov    -0x28c(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x328(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mulsd  -0x1f8(%rbp),%xmm0
  mov    -0x28c(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x358(%rbp),%rax
  add    %rdx,%rax
  addsd  %xmm1,%xmm0
  movsd  %xmm0,(%rax)
  addl   $0x1,-0x28c(%rbp)
L1471:
  mov    -0x28c(%rbp),%eax
  cmp    -0x2a8(%rbp),%eax
  jle    L913
  addl   $0x1,-0x284(%rbp)
L263:
  mov    -0x284(%rbp),%eax
  cmp    -0x24c(%rbp),%eax
  jle    L2161
  movsd  -0xd8(%rbp),%xmm0
  movsd  %xmm0,-0x230(%rbp)
  movsd  -0xd8(%rbp),%xmm0
  movsd  %xmm0,-0x1c8(%rbp)
  movsd  -0xd8(%rbp),%xmm0
  movsd  %xmm0,-0x208(%rbp)
  movl   $0x1,-0x290(%rbp)
  jmp    L398
L2325:
  mov    -0x290(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x350(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  movsd  %xmm0,-0x90(%rbp)
  movsd  -0x90(%rbp),%xmm0
  movapd %xmm0,%xmm1
  mulsd  %xmm0,%xmm1
  movsd  -0x230(%rbp),%xmm0
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0x230(%rbp)
  movsd  -0xd8(%rbp),%xmm0
  movsd  %xmm0,-0x1f8(%rbp)
  movl   $0x1,-0x28c(%rbp)
  jmp    L1944
L2184:
  mov    -0x28c(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x360(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm1
  mov    -0x290(%rbp),%eax
  imul   -0x258(%rbp),%eax
  mov    %eax,%edx
  mov    -0x28c(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x320(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mulsd  %xmm1,%xmm0
  movsd  -0x1f8(%rbp),%xmm1
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0x1f8(%rbp)
  addl   $0x1,-0x28c(%rbp)
L1944:
  mov    -0x28c(%rbp),%eax
  cmp    -0x2a8(%rbp),%eax
  jle    L2184
  mov    -0x290(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x350(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mulsd  -0x1f8(%rbp),%xmm0
  movsd  -0x1c8(%rbp),%xmm1
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0x1c8(%rbp)
  mov    -0x2a8(%rbp),%edx
  mov    -0x290(%rbp),%eax
  add    %edx,%eax
  mov    %eax,-0x238(%rbp)
  movl   $0x1,-0x294(%rbp)
  jmp    L2196
L1754:
  mov    -0x294(%rbp),%eax
  imul   -0x258(%rbp),%eax
  mov    %eax,%edx
  mov    -0x238(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x320(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm1
  mov    -0x294(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x350(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mulsd  %xmm1,%xmm0
  movsd  -0x1f8(%rbp),%xmm1
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0x1f8(%rbp)
  addl   $0x1,-0x294(%rbp)
L2196:
  mov    -0x294(%rbp),%eax
  cmp    -0x2a4(%rbp),%eax
  jle    L1754
  mov    -0x238(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x358(%rbp),%rax
  add    %rdx,%rax
  movsd  -0x1f8(%rbp),%xmm0
  movsd  %xmm0,(%rax)
  mov    -0x290(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x350(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mulsd  -0x1f8(%rbp),%xmm0
  movsd  -0x1c8(%rbp),%xmm1
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0x1c8(%rbp)
  mov    -0x290(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x350(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm1
  mov    -0x290(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x300(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mulsd  %xmm1,%xmm0
  movsd  -0x208(%rbp),%xmm1
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0x208(%rbp)
  addl   $0x1,-0x290(%rbp)
L398:
  mov    -0x290(%rbp),%eax
  cmp    -0x2a4(%rbp),%eax
  jle    L2325
  movsd  -0x208(%rbp),%xmm0
  movapd %xmm0,%xmm1
  mulsd  %xmm0,%xmm1
  movsd  -0x118(%rbp),%xmm0
  addsd  -0x208(%rbp),%xmm0
  movapd %xmm0,%xmm2
  addsd  -0x208(%rbp),%xmm2
  movsd  -0x230(%rbp),%xmm0
  mulsd  -0x100(%rbp),%xmm0
  addsd  %xmm0,%xmm2
  movsd  -0x230(%rbp),%xmm0
  mulsd  %xmm2,%xmm0
  addsd  %xmm1,%xmm0
  addsd  -0x1f0(%rbp),%xmm0
  subsd  -0x1c8(%rbp),%xmm0
  movsd  %xmm0,-0x1f0(%rbp)
  mov    -0x298(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x358(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mov    -0x298(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x358(%rbp),%rax
  add    %rdx,%rax
  addsd  -0xf8(%rbp),%xmm0
  movsd  %xmm0,(%rax)
  cmpl   $0x0,-0x26c(%rbp)
  jne    L2248
  mov    -0x280(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x358(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm1
  mov    -0x280(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x358(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mulsd  %xmm0,%xmm1
  movsd  -0x228(%rbp),%xmm0
  mulsd  -0x1f0(%rbp),%xmm0
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0x170(%rbp)
  movsd  -0x220(%rbp),%xmm0
  comisd -0x170(%rbp),%xmm0
  jbe    L2955
  movsd  -0x220(%rbp),%xmm0
  comisd -0xd8(%rbp),%xmm0
  jbe    L2955
  mov    -0x2a4(%rbp),%eax
  mov    %eax,-0x240(%rbp)
  movl   $0x1,-0x294(%rbp)
  jmp    L1484
L613:
  mov    -0x294(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x348(%rbp),%rax
  add    %rax,%rdx
  mov    -0x294(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rcx
  mov    -0x340(%rbp),%rax
  add    %rcx,%rax
  movsd  (%rdx),%xmm0
  movsd  %xmm0,(%rax)
  mov    -0x294(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x340(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mov    -0x294(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x300(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm1
  mov    -0x294(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x350(%rbp),%rax
  add    %rdx,%rax
  subsd  %xmm1,%xmm0
  movsd  %xmm0,(%rax)
  addl   $0x1,-0x294(%rbp)
L1484:
  mov    -0x294(%rbp),%eax
  cmp    -0x240(%rbp),%eax
  jle    L613
  movsd  -0xd8(%rbp),%xmm0
  movsd  %xmm0,-0x220(%rbp)
  jmp    L2137
L2955:
  mov    -0x280(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x358(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm1
  mov    -0x280(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x358(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mulsd  %xmm1,%xmm0
  mulsd  -0x100(%rbp),%xmm0
  comisd -0x170(%rbp),%xmm0
  jb     L2957
  mov    -0x29c(%rbp),%eax
  cmp    %eax,-0x278(%rbp)
  jl     L1760
  cmpl   $0x0,0x18(%rbp)
  jle    L1260
  lea    D283(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  jmp    L1260
L2248:
  movsd  -0x180(%rbp),%xmm0
  mulsd  %xmm0,%xmm0
  movsd  %xmm0,-0xb0(%rbp)
  movsd  -0xd8(%rbp),%xmm0
  movsd  %xmm0,-0x140(%rbp)
  movsd  -0xd8(%rbp),%xmm0
  movsd  %xmm0,-0x130(%rbp)
  movl   $0x0,-0x280(%rbp)
  movl   $0x1,-0x28c(%rbp)
  jmp    L956
L2012:
  mov    -0x298(%rbp),%eax
  cmp    %eax,-0x28c(%rbp)
  je     L1770
  movsd  -0xd8(%rbp),%xmm0
  movsd  %xmm0,-0x188(%rbp)
  movl   $0x1,-0x284(%rbp)
  jmp    L901
L129:
  mov    -0x284(%rbp),%eax
  imul   -0x268(%rbp),%eax
  mov    %eax,%edx
  mov    -0x28c(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x328(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm1
  mov    -0x284(%rbp),%eax
  imul   -0x268(%rbp),%eax
  mov    %eax,%edx
  mov    -0x28c(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x328(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mulsd  %xmm1,%xmm0
  movsd  -0x188(%rbp),%xmm1
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0x188(%rbp)
  addl   $0x1,-0x284(%rbp)
L901:
  mov    -0x284(%rbp),%eax
  cmp    -0x24c(%rbp),%eax
  jle    L129
  movsd  -0x1f0(%rbp),%xmm0
  movapd %xmm0,%xmm1
  mulsd  -0x188(%rbp),%xmm1
  mov    -0x28c(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x358(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm2
  mov    -0x28c(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x358(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mulsd  %xmm2,%xmm0
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0xa8(%rbp)
  movsd  -0xd8(%rbp),%xmm0
  movsd  %xmm0,-0x120(%rbp)
  movl   $0x1,-0x290(%rbp)
  jmp    L2477
L2608:
  mov    -0x290(%rbp),%eax
  imul   -0x260(%rbp),%eax
  mov    %eax,%edx
  mov    -0x28c(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x2f0(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mov    -0x290(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x300(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm2
  movapd %xmm0,%xmm1
  subsd  %xmm2,%xmm1
  mov    -0x290(%rbp),%eax
  imul   -0x260(%rbp),%eax
  mov    %eax,%edx
  mov    -0x28c(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x2f0(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mov    -0x290(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x300(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm2
  subsd  %xmm2,%xmm0
  mulsd  %xmm1,%xmm0
  movsd  -0x120(%rbp),%xmm1
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0x120(%rbp)
  addl   $0x1,-0x290(%rbp)
L2477:
  mov    -0x290(%rbp),%eax
  cmp    -0x2a4(%rbp),%eax
  jle    L2608
  movsd  -0x120(%rbp),%xmm0
  divsd  -0xb0(%rbp),%xmm0
  movsd  %xmm0,-0xa0(%rbp)
  movsd  -0xa0(%rbp),%xmm0
  mulsd  %xmm0,%xmm0
  movsd  %xmm0,-0x1e0(%rbp)
  movsd  -0xf8(%rbp),%xmm0
  comisd -0x1e0(%rbp),%xmm0
  jbe    L1748
  movsd  -0xf8(%rbp),%xmm0
  movsd  %xmm0,-0x1e0(%rbp)
L1748:
  movsd  -0x1e0(%rbp),%xmm0
  mulsd  -0xa8(%rbp),%xmm0
  comisd -0x140(%rbp),%xmm0
  jbe    L2517
  movsd  -0x1e0(%rbp),%xmm0
  mulsd  -0xa8(%rbp),%xmm0
  movsd  %xmm0,-0x140(%rbp)
  mov    -0x28c(%rbp),%eax
  mov    %eax,-0x280(%rbp)
  movsd  -0xa8(%rbp),%xmm0
  movsd  %xmm0,-0x170(%rbp)
L2517:
  mov    -0x28c(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x358(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm1
  mov    -0x28c(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x358(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mulsd  %xmm1,%xmm0
  movsd  -0x1e0(%rbp),%xmm1
  mulsd  %xmm1,%xmm0
  movsd  %xmm0,-0x98(%rbp)
  movsd  -0x98(%rbp),%xmm0
  comisd -0x130(%rbp),%xmm0
  jbe    L2309
  movsd  -0x98(%rbp),%xmm0
  movsd  %xmm0,-0x130(%rbp)
  jmp    L2309
L1770:
  nop
L2309:
  addl   $0x1,-0x28c(%rbp)
L956:
  mov    -0x28c(%rbp),%eax
  cmp    -0x2a8(%rbp),%eax
  jle    L2012
  movsd  -0x100(%rbp),%xmm0
  mulsd  -0x130(%rbp),%xmm0
  comisd -0x140(%rbp),%xmm0
  jb     L2957
  mov    -0x29c(%rbp),%eax
  cmp    %eax,-0x278(%rbp)
  jl     L2336
  cmpl   $0x0,0x18(%rbp)
  jle    L879
  lea    D283(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  jmp    L879
L2329:
  nop
L2957:
  movl   $0x1,-0x294(%rbp)
  jmp    L1724
L1315:
  mov    -0x294(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x2e8(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm1
  mov    -0x294(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x340(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mov    -0x294(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x2b0(%rbp),%rax
  add    %rdx,%rax
  addsd  %xmm1,%xmm0
  movsd  %xmm0,(%rax)
  mov    -0x294(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x2b8(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mov    -0x294(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x2b0(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm1
  comisd %xmm1,%xmm0
  jbe    L1082
  mov    -0x294(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x2b8(%rbp),%rax
  add    %rax,%rdx
  mov    -0x294(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rcx
  mov    -0x2b0(%rbp),%rax
  add    %rcx,%rax
  movsd  (%rdx),%xmm0
  movsd  %xmm0,(%rax)
L1082:
  mov    -0x294(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x2c0(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm1
  mov    -0x294(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x2b0(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  comisd %xmm1,%xmm0
  jbe    L47
  mov    -0x294(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x2c0(%rbp),%rax
  add    %rax,%rdx
  mov    -0x294(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rcx
  mov    -0x2b0(%rbp),%rax
  add    %rcx,%rax
  movsd  (%rdx),%xmm0
  movsd  %xmm0,(%rax)
L47:
  mov    -0x294(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x340(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mov    -0x294(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x330(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm1
  ucomisd %xmm1,%xmm0
  jp     L1773
  ucomisd %xmm1,%xmm0
  jne    L1773
  mov    -0x294(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x2b8(%rbp),%rax
  add    %rax,%rdx
  mov    -0x294(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rcx
  mov    -0x2b0(%rbp),%rax
  add    %rcx,%rax
  movsd  (%rdx),%xmm0
  movsd  %xmm0,(%rax)
L1773:
  mov    -0x294(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x340(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mov    -0x294(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x338(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm1
  ucomisd %xmm1,%xmm0
  jp     L1711
  ucomisd %xmm1,%xmm0
  jne    L1711
  mov    -0x294(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x2c0(%rbp),%rax
  add    %rax,%rdx
  mov    -0x294(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rcx
  mov    -0x2b0(%rbp),%rax
  add    %rcx,%rax
  movsd  (%rdx),%xmm0
  movsd  %xmm0,(%rax)
L1711:
  addl   $0x1,-0x294(%rbp)
L1724:
  mov    -0x294(%rbp),%eax
  cmp    -0x2a4(%rbp),%eax
  jle    L1315
  mov    -0x29c(%rbp),%eax
  cmp    %eax,0x20(%rbp)
  jg     L1966
  cmpl   $0x0,0x18(%rbp)
  jle    L2394
  lea    D52(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  jmp    L2394
L1966:
  mov    -0x29c(%rbp),%eax
  add    $0x1,%eax
  mov    %eax,-0x29c(%rbp)
  mov    -0x2b0(%rbp),%rax
  lea    0x8(%rax),%rdx
  mov    -0x2a4(%rbp),%ecx
  mov    -0x2d0(%rbp),%rax
  mov    -0x2c8(%rbp),%r8
  mov    %ecx,%esi
  mov    %rax,%rdi
  call   *%r8
  movq   %xmm0,%rax
  mov    %rax,-0x210(%rbp)
  cmpl   $0x3,0x18(%rbp)
  jne    L1933
  mov    -0x29c(%rbp),%eax
  mov    -0x210(%rbp),%rdx
  movq   %rdx,%xmm0
  mov    %eax,%esi
  lea    D97(%rip),%rax
  mov    %rax,%rdi
  mov    $0x1,%eax
  call   <printf@plt>
  movl   $0x1,-0x294(%rbp)
  jmp    L1098
L176:
  mov    -0x294(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x2b0(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%rax
  movq   %rax,%xmm0
  lea    D170(%rip),%rax
  mov    %rax,%rdi
  mov    $0x1,%eax
  call   <printf@plt>
  addl   $0x1,-0x294(%rbp)
L1098:
  mov    -0x294(%rbp),%eax
  cmp    -0x2a4(%rbp),%eax
  jle    L176
L1933:
  cmpl   $0xffffffff,-0x26c(%rbp)
  jne    L1372
  movsd  -0x210(%rbp),%xmm0
  movsd  %xmm0,-0x168(%rbp)
  jmp    L659
L1372:
  mov    -0x298(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x2f8(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  movsd  %xmm0,-0x88(%rbp)
  movsd  -0xd8(%rbp),%xmm0
  movsd  %xmm0,-0x150(%rbp)
  movl   $0x0,-0x288(%rbp)
  movl   $0x1,-0x290(%rbp)
  jmp    L1045
L1839:
  mov    -0x290(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x350(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm1
  mov    -0x290(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x308(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mulsd  %xmm1,%xmm0
  movsd  -0x150(%rbp),%xmm1
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0x150(%rbp)
  movl   $0x1,-0x294(%rbp)
  jmp    L2402
L1854:
  addl   $0x1,-0x288(%rbp)
  mov    -0x294(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x350(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm1
  mov    -0x290(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x350(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mulsd  %xmm1,%xmm0
  movsd  %xmm0,-0x1e0(%rbp)
  mov    -0x294(%rbp),%eax
  cmp    -0x290(%rbp),%eax
  jne    L14
  movsd  -0x1e0(%rbp),%xmm0
  mulsd  -0x100(%rbp),%xmm0
  movsd  %xmm0,-0x1e0(%rbp)
L14:
  mov    -0x288(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x310(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mulsd  -0x1e0(%rbp),%xmm0
  movsd  -0x150(%rbp),%xmm1
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0x150(%rbp)
  addl   $0x1,-0x294(%rbp)
L2402:
  mov    -0x294(%rbp),%eax
  cmp    -0x290(%rbp),%eax
  jle    L1854
  addl   $0x1,-0x290(%rbp)
L1045:
  mov    -0x290(%rbp),%eax
  cmp    -0x2a4(%rbp),%eax
  jle    L1839
  movl   $0x1,-0x28c(%rbp)
  jmp    L2934
L2198:
  mov    -0x28c(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x318(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  movapd %xmm0,%xmm1
  mulsd  -0x100(%rbp),%xmm1
  mov    -0x2a8(%rbp),%edx
  mov    -0x28c(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x360(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm2
  mov    -0x2a8(%rbp),%edx
  mov    -0x28c(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x360(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mulsd  %xmm2,%xmm0
  mulsd  %xmm1,%xmm0
  movsd  -0x150(%rbp),%xmm1
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0x150(%rbp)
  addl   $0x1,-0x28c(%rbp)
L2934:
  mov    -0x28c(%rbp),%eax
  cmp    -0x2a8(%rbp),%eax
  jle    L2198
  movsd  -0x210(%rbp),%xmm0
  subsd  -0x88(%rbp),%xmm0
  subsd  -0x150(%rbp),%xmm0
  movsd  %xmm0,-0x80(%rbp)
  movsd  -0x198(%rbp),%xmm0
  movsd  %xmm0,-0x190(%rbp)
  movsd  -0x1a0(%rbp),%xmm0
  movsd  %xmm0,-0x198(%rbp)
  movsd  -0x80(%rbp),%xmm0
  movq   D205(%rip),%xmm1
  andpd  %xmm1,%xmm0
  movsd  %xmm0,-0x1a0(%rbp)
  movsd  -0x158(%rbp),%xmm0
  comisd -0x200(%rbp),%xmm0
  jbe    L2387
  mov    -0x29c(%rbp),%eax
  mov    %eax,-0x274(%rbp)
L2387:
  cmpl   $0x0,-0x26c(%rbp)
  jle    L978
  movsd  -0x150(%rbp),%xmm0
  comisd -0xd8(%rbp),%xmm0
  jb     L2073
  cmpl   $0x0,0x18(%rbp)
  jle    L1451
  lea    D195(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  jmp    L1451
L2073:
  movsd  -0x210(%rbp),%xmm0
  subsd  -0x88(%rbp),%xmm0
  divsd  -0x150(%rbp),%xmm0
  movsd  %xmm0,-0x160(%rbp)
  movsd  -0xe8(%rbp),%xmm0
  comisd -0x160(%rbp),%xmm0
  jb     L1913
  movsd  -0x180(%rbp),%xmm0
  mulsd  -0x100(%rbp),%xmm0
  movsd  %xmm0,-0x180(%rbp)
  movsd  -0x180(%rbp),%xmm0
  comisd -0x158(%rbp),%xmm0
  jbe    L2842
  movsd  -0x158(%rbp),%xmm0
  movsd  %xmm0,-0x180(%rbp)
  jmp    L2842
L1913:
  movsd  D251(%rip),%xmm0
  comisd -0x160(%rbp),%xmm0
  jb     L2204
  movsd  -0x180(%rbp),%xmm0
  mulsd  -0x100(%rbp),%xmm0
  movsd  %xmm0,-0x180(%rbp)
  movsd  -0x158(%rbp),%xmm0
  comisd -0x180(%rbp),%xmm0
  jbe    L2842
  movsd  -0x158(%rbp),%xmm0
  movsd  %xmm0,-0x180(%rbp)
  jmp    L2842
L2204:
  movsd  -0x180(%rbp),%xmm0
  mulsd  -0x100(%rbp),%xmm0
  movsd  %xmm0,-0x180(%rbp)
  movsd  -0x158(%rbp),%xmm0
  addsd  %xmm0,%xmm0
  comisd -0x180(%rbp),%xmm0
  jbe    L2842
  movsd  -0x158(%rbp),%xmm0
  addsd  %xmm0,%xmm0
  movsd  %xmm0,-0x180(%rbp)
L2842:
  movsd  -0x200(%rbp),%xmm1
  movsd  D307(%rip),%xmm0
  mulsd  %xmm1,%xmm0
  comisd -0x180(%rbp),%xmm0
  jb     L2569
  movsd  -0x200(%rbp),%xmm0
  movsd  %xmm0,-0x180(%rbp)
L2569:
  movsd  -0x88(%rbp),%xmm0
  comisd -0x210(%rbp),%xmm0
  jbe    L978
  mov    -0x280(%rbp),%eax
  mov    %eax,-0x234(%rbp)
  movsd  -0x170(%rbp),%xmm0
  movsd  %xmm0,-0x78(%rbp)
  movsd  -0x180(%rbp),%xmm0
  mulsd  %xmm0,%xmm0
  movsd  %xmm0,-0xb0(%rbp)
  movsd  -0xd8(%rbp),%xmm0
  movsd  %xmm0,-0x140(%rbp)
  movsd  -0xd8(%rbp),%xmm0
  movsd  %xmm0,-0x130(%rbp)
  movl   $0x0,-0x280(%rbp)
  mov    -0x2a8(%rbp),%eax
  mov    %eax,-0x244(%rbp)
  movl   $0x1,-0x28c(%rbp)
  jmp    L1149
L1821:
  movsd  -0xd8(%rbp),%xmm0
  movsd  %xmm0,-0x188(%rbp)
  mov    -0x24c(%rbp),%eax
  mov    %eax,-0x240(%rbp)
  movl   $0x1,-0x284(%rbp)
  jmp    L470
L2639:
  mov    -0x284(%rbp),%eax
  imul   -0x268(%rbp),%eax
  mov    %eax,%edx
  mov    -0x28c(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x328(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm1
  mov    -0x284(%rbp),%eax
  imul   -0x268(%rbp),%eax
  mov    %eax,%edx
  mov    -0x28c(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x328(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mulsd  %xmm1,%xmm0
  movsd  -0x188(%rbp),%xmm1
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0x188(%rbp)
  addl   $0x1,-0x284(%rbp)
L470:
  mov    -0x284(%rbp),%eax
  cmp    -0x240(%rbp),%eax
  jle    L2639
  movsd  -0x1f0(%rbp),%xmm0
  movapd %xmm0,%xmm1
  mulsd  -0x188(%rbp),%xmm1
  mov    -0x28c(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x358(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm2
  mov    -0x28c(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x358(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mulsd  %xmm2,%xmm0
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0xa8(%rbp)
  movsd  -0xd8(%rbp),%xmm0
  movsd  %xmm0,-0x120(%rbp)
  movl   $0x1,-0x290(%rbp)
  jmp    L1832
L293:
  mov    -0x290(%rbp),%eax
  imul   -0x260(%rbp),%eax
  mov    %eax,%edx
  mov    -0x28c(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x2f0(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mov    -0x290(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x340(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm2
  movapd %xmm0,%xmm1
  subsd  %xmm2,%xmm1
  mov    -0x290(%rbp),%eax
  imul   -0x260(%rbp),%eax
  mov    %eax,%edx
  mov    -0x28c(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x2f0(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mov    -0x290(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x340(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm2
  subsd  %xmm2,%xmm0
  mulsd  %xmm1,%xmm0
  movsd  -0x120(%rbp),%xmm1
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0x120(%rbp)
  addl   $0x1,-0x290(%rbp)
L1832:
  mov    -0x290(%rbp),%eax
  cmp    -0x2a4(%rbp),%eax
  jle    L293
  movsd  -0x120(%rbp),%xmm0
  divsd  -0xb0(%rbp),%xmm0
  movsd  %xmm0,-0x70(%rbp)
  movsd  -0x70(%rbp),%xmm0
  mulsd  %xmm0,%xmm0
  movsd  %xmm0,-0x1e0(%rbp)
  movsd  -0xf8(%rbp),%xmm0
  comisd -0x1e0(%rbp),%xmm0
  jbe    L136
  movsd  -0xf8(%rbp),%xmm0
  movsd  %xmm0,-0x1e0(%rbp)
L136:
  movsd  -0x1e0(%rbp),%xmm0
  mulsd  -0xa8(%rbp),%xmm0
  comisd -0x140(%rbp),%xmm0
  jbe    L965
  movsd  -0x1e0(%rbp),%xmm0
  mulsd  -0xa8(%rbp),%xmm0
  movsd  %xmm0,-0x140(%rbp)
  mov    -0x28c(%rbp),%eax
  mov    %eax,-0x280(%rbp)
  movsd  -0xa8(%rbp),%xmm0
  movsd  %xmm0,-0x170(%rbp)
L965:
  mov    -0x28c(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x358(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm1
  mov    -0x28c(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x358(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mulsd  %xmm1,%xmm0
  movsd  -0x1e0(%rbp),%xmm1
  mulsd  %xmm1,%xmm0
  movsd  %xmm0,-0x68(%rbp)
  movsd  -0x68(%rbp),%xmm0
  comisd -0x130(%rbp),%xmm0
  jbe    L2451
  movsd  -0x68(%rbp),%xmm0
  movsd  %xmm0,-0x130(%rbp)
L2451:
  addl   $0x1,-0x28c(%rbp)
L1149:
  mov    -0x28c(%rbp),%eax
  cmp    -0x244(%rbp),%eax
  jle    L1821
  movsd  -0x100(%rbp),%xmm0
  mulsd  -0x130(%rbp),%xmm0
  comisd -0x140(%rbp),%xmm0
  jb     L978
  mov    -0x234(%rbp),%eax
  mov    %eax,-0x280(%rbp)
  movsd  -0x78(%rbp),%xmm0
  movsd  %xmm0,-0x170(%rbp)
L978:
  mov    -0x360(%rbp),%rax
  lea    0x8(%rax),%r9
  mov    -0x280(%rbp),%eax
  lea    -0x1(%rax),%r8d
  mov    -0x358(%rbp),%rax
  lea    0x8(%rax),%r11
  mov    -0x264(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x328(%rbp),%rax
  lea    (%rdx,%rax,1),%rcx
  mov    -0x254(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x320(%rbp),%rax
  lea    (%rdx,%rax,1),%rdi
  movsd  -0x170(%rbp),%xmm0
  mov    -0x1f0(%rbp),%rdx
  mov    0x70(%rbp),%r10d
  mov    -0x2a8(%rbp),%esi
  mov    -0x2a4(%rbp),%eax
  push   %r9
  push   %r8
  movapd %xmm0,%xmm1
  movq   %rdx,%xmm0
  mov    %r11,%r9
  mov    %r10d,%r8d
  mov    %rdi,%rdx
  mov    %eax,%edi
  call   <update_@plt>
  add    $0x10,%rsp
  movl   $0x0,-0x288(%rbp)
  mov    -0x280(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x318(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  movsd  %xmm0,-0x60(%rbp)
  mov    -0x280(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x318(%rbp),%rax
  add    %rdx,%rax
  movsd  -0xd8(%rbp),%xmm0
  movsd  %xmm0,(%rax)
  movl   $0x1,-0x294(%rbp)
  jmp    L305
L2436:
  mov    -0x294(%rbp),%eax
  imul   -0x260(%rbp),%eax
  mov    %eax,%edx
  mov    -0x280(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x2f0(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  movsd  -0x60(%rbp),%xmm1
  mulsd  %xmm1,%xmm0
  movsd  %xmm0,-0x1e0(%rbp)
  mov    -0x294(%rbp),%eax
  mov    %eax,-0x240(%rbp)
  movl   $0x1,-0x290(%rbp)
  jmp    L495
L2385:
  addl   $0x1,-0x288(%rbp)
  mov    -0x288(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x310(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm1
  mov    -0x290(%rbp),%eax
  imul   -0x260(%rbp),%eax
  mov    %eax,%edx
  mov    -0x280(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x2f0(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mulsd  -0x1e0(%rbp),%xmm0
  mov    -0x288(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x310(%rbp),%rax
  add    %rdx,%rax
  addsd  %xmm1,%xmm0
  movsd  %xmm0,(%rax)
  addl   $0x1,-0x290(%rbp)
L495:
  mov    -0x290(%rbp),%eax
  cmp    -0x240(%rbp),%eax
  jle    L2385
  addl   $0x1,-0x294(%rbp)
L305:
  mov    -0x294(%rbp),%eax
  cmp    -0x2a4(%rbp),%eax
  jle    L2436
  movl   $0x1,-0x284(%rbp)
  jmp    L310
L2493:
  mov    -0x284(%rbp),%eax
  imul   -0x268(%rbp),%eax
  mov    %eax,%edx
  mov    -0x280(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x328(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  movsd  -0x80(%rbp),%xmm1
  mulsd  %xmm1,%xmm0
  movsd  %xmm0,-0x1e0(%rbp)
  movl   $0x1,-0x28c(%rbp)
  jmp    L2262
L2877:
  mov    -0x28c(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x318(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm1
  mov    -0x284(%rbp),%eax
  imul   -0x268(%rbp),%eax
  mov    %eax,%edx
  mov    -0x28c(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x328(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mulsd  -0x1e0(%rbp),%xmm0
  mov    -0x28c(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x318(%rbp),%rax
  add    %rdx,%rax
  addsd  %xmm1,%xmm0
  movsd  %xmm0,(%rax)
  addl   $0x1,-0x28c(%rbp)
L2262:
  mov    -0x28c(%rbp),%eax
  cmp    -0x2a8(%rbp),%eax
  jle    L2877
  addl   $0x1,-0x284(%rbp)
L310:
  mov    -0x284(%rbp),%eax
  cmp    -0x24c(%rbp),%eax
  jle    L2493
  mov    -0x280(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x2f8(%rbp),%rax
  add    %rdx,%rax
  movsd  -0x210(%rbp),%xmm0
  movsd  %xmm0,(%rax)
  movl   $0x1,-0x294(%rbp)
  jmp    L924
L1590:
  mov    -0x294(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x340(%rbp),%rax
  add    %rax,%rdx
  mov    -0x294(%rbp),%eax
  imul   -0x260(%rbp),%eax
  mov    %eax,%ecx
  mov    -0x280(%rbp),%eax
  add    %ecx,%eax
  cltq
  lea    0x0(,%rax,8),%rcx
  mov    -0x2f0(%rbp),%rax
  add    %rcx,%rax
  movsd  (%rdx),%xmm0
  movsd  %xmm0,(%rax)
  mov    -0x294(%rbp),%eax
  imul   -0x258(%rbp),%eax
  mov    %eax,%edx
  mov    -0x280(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x320(%rbp),%rax
  add    %rax,%rdx
  mov    -0x294(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rcx
  mov    -0x360(%rbp),%rax
  add    %rcx,%rax
  movsd  (%rdx),%xmm0
  movsd  %xmm0,(%rax)
  addl   $0x1,-0x294(%rbp)
L924:
  mov    -0x294(%rbp),%eax
  cmp    -0x2a4(%rbp),%eax
  jle    L1590
  movl   $0x1,-0x28c(%rbp)
  jmp    L2536
L843:
  movsd  -0xd8(%rbp),%xmm0
  movsd  %xmm0,-0x1d8(%rbp)
  movl   $0x1,-0x284(%rbp)
  jmp    L1061
L444:
  mov    -0x284(%rbp),%eax
  imul   -0x268(%rbp),%eax
  mov    %eax,%edx
  mov    -0x280(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x328(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm1
  mov    -0x284(%rbp),%eax
  imul   -0x268(%rbp),%eax
  mov    %eax,%edx
  mov    -0x28c(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x328(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mulsd  %xmm1,%xmm0
  movsd  -0x1d8(%rbp),%xmm1
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0x1d8(%rbp)
  addl   $0x1,-0x284(%rbp)
L1061:
  mov    -0x284(%rbp),%eax
  cmp    -0x24c(%rbp),%eax
  jle    L444
  movsd  -0xd8(%rbp),%xmm0
  movsd  %xmm0,-0x1d0(%rbp)
  movl   $0x1,-0x290(%rbp)
  jmp    L480
L625:
  mov    -0x290(%rbp),%eax
  imul   -0x260(%rbp),%eax
  mov    %eax,%edx
  mov    -0x28c(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x2f0(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm1
  mov    -0x290(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x300(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mulsd  %xmm1,%xmm0
  movsd  -0x1d0(%rbp),%xmm1
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0x1d0(%rbp)
  addl   $0x1,-0x290(%rbp)
L480:
  mov    -0x290(%rbp),%eax
  cmp    -0x2a4(%rbp),%eax
  jle    L625
  movsd  -0x1d8(%rbp),%xmm0
  mulsd  -0x1d0(%rbp),%xmm0
  movsd  %xmm0,-0x1e0(%rbp)
  movl   $0x1,-0x294(%rbp)
  jmp    L2212
L996:
  mov    -0x294(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x360(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm1
  mov    -0x294(%rbp),%eax
  imul   -0x260(%rbp),%eax
  mov    %eax,%edx
  mov    -0x28c(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x2f0(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mulsd  -0x1e0(%rbp),%xmm0
  mov    -0x294(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x360(%rbp),%rax
  add    %rdx,%rax
  addsd  %xmm1,%xmm0
  movsd  %xmm0,(%rax)
  addl   $0x1,-0x294(%rbp)
L2212:
  mov    -0x294(%rbp),%eax
  cmp    -0x2a4(%rbp),%eax
  jle    L996
  addl   $0x1,-0x28c(%rbp)
L2536:
  mov    -0x28c(%rbp),%eax
  cmp    -0x2a8(%rbp),%eax
  jle    L843
  movl   $0x1,-0x294(%rbp)
  jmp    L1646
L2683:
  mov    -0x294(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x308(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm1
  mov    -0x294(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x360(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mulsd  -0x80(%rbp),%xmm0
  mov    -0x294(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x308(%rbp),%rax
  add    %rdx,%rax
  addsd  %xmm1,%xmm0
  movsd  %xmm0,(%rax)
  addl   $0x1,-0x294(%rbp)
L1646:
  mov    -0x294(%rbp),%eax
  cmp    -0x2a4(%rbp),%eax
  jle    L2683
  movsd  -0x88(%rbp),%xmm0
  comisd -0x210(%rbp),%xmm0
  jbe    L729
  mov    -0x280(%rbp),%eax
  mov    %eax,-0x298(%rbp)
  movsd  -0xd8(%rbp),%xmm0
  movsd  %xmm0,-0x118(%rbp)
  movl   $0x0,-0x288(%rbp)
  movl   $0x1,-0x290(%rbp)
  jmp    L492
L2874:
  mov    -0x290(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x340(%rbp),%rax
  add    %rax,%rdx
  mov    -0x290(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rcx
  mov    -0x300(%rbp),%rax
  add    %rcx,%rax
  movsd  (%rdx),%xmm0
  movsd  %xmm0,(%rax)
  mov    -0x290(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x300(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm1
  mov    -0x290(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x300(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mulsd  %xmm1,%xmm0
  movsd  -0x118(%rbp),%xmm1
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0x118(%rbp)
  movl   $0x1,-0x294(%rbp)
  jmp    L2855
L2295:
  addl   $0x1,-0x288(%rbp)
  mov    -0x294(%rbp),%eax
  cmp    -0x290(%rbp),%eax
  jge    L1866
  mov    -0x290(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x308(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm1
  mov    -0x288(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x310(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm2
  mov    -0x294(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x350(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mulsd  %xmm2,%xmm0
  mov    -0x290(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x308(%rbp),%rax
  add    %rdx,%rax
  addsd  %xmm1,%xmm0
  movsd  %xmm0,(%rax)
L1866:
  mov    -0x294(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x308(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm1
  mov    -0x288(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x310(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm2
  mov    -0x290(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x350(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mulsd  %xmm2,%xmm0
  mov    -0x294(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x308(%rbp),%rax
  add    %rdx,%rax
  addsd  %xmm1,%xmm0
  movsd  %xmm0,(%rax)
  addl   $0x1,-0x294(%rbp)
L2855:
  mov    -0x294(%rbp),%eax
  cmp    -0x290(%rbp),%eax
  jle    L2295
  addl   $0x1,-0x290(%rbp)
L492:
  mov    -0x290(%rbp),%eax
  cmp    -0x2a4(%rbp),%eax
  jle    L2874
  movl   $0x1,-0x28c(%rbp)
  jmp    L2746
L1215:
  movsd  -0xd8(%rbp),%xmm0
  movsd  %xmm0,-0x1e0(%rbp)
  movl   $0x1,-0x290(%rbp)
  jmp    L197
L1311:
  mov    -0x290(%rbp),%eax
  imul   -0x260(%rbp),%eax
  mov    %eax,%edx
  mov    -0x28c(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x2f0(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm1
  mov    -0x290(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x350(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mulsd  %xmm1,%xmm0
  movsd  -0x1e0(%rbp),%xmm1
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0x1e0(%rbp)
  addl   $0x1,-0x290(%rbp)
L197:
  mov    -0x290(%rbp),%eax
  cmp    -0x2a4(%rbp),%eax
  jle    L1311
  mov    -0x28c(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x318(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  movsd  -0x1e0(%rbp),%xmm1
  mulsd  %xmm1,%xmm0
  movsd  %xmm0,-0x1e0(%rbp)
  movl   $0x1,-0x294(%rbp)
  jmp    L1955
L2675:
  mov    -0x294(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x308(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm1
  mov    -0x294(%rbp),%eax
  imul   -0x260(%rbp),%eax
  mov    %eax,%edx
  mov    -0x28c(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x2f0(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mulsd  -0x1e0(%rbp),%xmm0
  mov    -0x294(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x308(%rbp),%rax
  add    %rdx,%rax
  addsd  %xmm1,%xmm0
  movsd  %xmm0,(%rax)
  addl   $0x1,-0x294(%rbp)
L1955:
  mov    -0x294(%rbp),%eax
  cmp    -0x2a4(%rbp),%eax
  jle    L2675
  addl   $0x1,-0x28c(%rbp)
L2746:
  mov    -0x28c(%rbp),%eax
  cmp    -0x2a8(%rbp),%eax
  jle    L1215
L729:
  cmpl   $0x0,-0x26c(%rbp)
  jle    L2095
  movl   $0x1,-0x28c(%rbp)
  jmp    L2182
L385:
  mov    -0x28c(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x2f8(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mov    -0x298(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x2f8(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm1
  mov    -0x28c(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x358(%rbp),%rax
  add    %rdx,%rax
  subsd  %xmm1,%xmm0
  movsd  %xmm0,(%rax)
  mov    -0x28c(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x360(%rbp),%rax
  add    %rdx,%rax
  movsd  -0xd8(%rbp),%xmm0
  movsd  %xmm0,(%rax)
  addl   $0x1,-0x28c(%rbp)
L2182:
  mov    -0x28c(%rbp),%eax
  cmp    -0x2a8(%rbp),%eax
  jle    L385
  movl   $0x1,-0x290(%rbp)
  jmp    L1006
L603:
  movsd  -0xd8(%rbp),%xmm0
  movsd  %xmm0,-0x1f8(%rbp)
  movl   $0x1,-0x28c(%rbp)
  jmp    L2366
L425:
  mov    -0x290(%rbp),%eax
  imul   -0x268(%rbp),%eax
  mov    %eax,%edx
  mov    -0x28c(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x328(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm1
  mov    -0x28c(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x358(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mulsd  %xmm1,%xmm0
  movsd  -0x1f8(%rbp),%xmm1
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0x1f8(%rbp)
  addl   $0x1,-0x28c(%rbp)
L2366:
  mov    -0x28c(%rbp),%eax
  cmp    -0x2a8(%rbp),%eax
  jle    L425
  movl   $0x1,-0x28c(%rbp)
  jmp    L696
L245:
  mov    -0x28c(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x360(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm1
  mov    -0x290(%rbp),%eax
  imul   -0x268(%rbp),%eax
  mov    %eax,%edx
  mov    -0x28c(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x328(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mulsd  -0x1f8(%rbp),%xmm0
  mov    -0x28c(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x360(%rbp),%rax
  add    %rdx,%rax
  addsd  %xmm1,%xmm0
  movsd  %xmm0,(%rax)
  addl   $0x1,-0x28c(%rbp)
L696:
  mov    -0x28c(%rbp),%eax
  cmp    -0x2a8(%rbp),%eax
  jle    L245
  addl   $0x1,-0x290(%rbp)
L1006:
  mov    -0x290(%rbp),%eax
  cmp    -0x24c(%rbp),%eax
  jle    L603
  movl   $0x1,-0x28c(%rbp)
  jmp    L165
L2208:
  movsd  -0xd8(%rbp),%xmm0
  movsd  %xmm0,-0x1f8(%rbp)
  movl   $0x1,-0x290(%rbp)
  jmp    L2592
L1237:
  mov    -0x290(%rbp),%eax
  imul   -0x260(%rbp),%eax
  mov    %eax,%edx
  mov    -0x28c(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x2f0(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm1
  mov    -0x290(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x300(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mulsd  %xmm1,%xmm0
  movsd  -0x1f8(%rbp),%xmm1
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0x1f8(%rbp)
  addl   $0x1,-0x290(%rbp)
L2592:
  mov    -0x290(%rbp),%eax
  cmp    -0x2a4(%rbp),%eax
  jle    L1237
  mov    -0x28c(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x360(%rbp),%rax
  add    %rax,%rdx
  mov    -0x28c(%rbp),%ecx
  mov    -0x2a8(%rbp),%eax
  add    %ecx,%eax
  cltq
  lea    0x0(,%rax,8),%rcx
  mov    -0x360(%rbp),%rax
  add    %rcx,%rax
  movsd  (%rdx),%xmm0
  movsd  %xmm0,(%rax)
  mov    -0x28c(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x360(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mov    -0x28c(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x360(%rbp),%rax
  add    %rdx,%rax
  mulsd  -0x1f8(%rbp),%xmm0
  movsd  %xmm0,(%rax)
  addl   $0x1,-0x28c(%rbp)
L165:
  mov    -0x28c(%rbp),%eax
  cmp    -0x2a8(%rbp),%eax
  jle    L2208
  movsd  -0xd8(%rbp),%xmm0
  movsd  %xmm0,-0x1b8(%rbp)
  movsd  -0xd8(%rbp),%xmm0
  movsd  %xmm0,-0x1e8(%rbp)
  movl   $0x1,-0x294(%rbp)
  jmp    L1121
L2712:
  movsd  -0xd8(%rbp),%xmm0
  movsd  %xmm0,-0x1f8(%rbp)
  movl   $0x1,-0x28c(%rbp)
  jmp    L2599
L2801:
  mov    -0x294(%rbp),%eax
  imul   -0x258(%rbp),%eax
  mov    %eax,%edx
  mov    -0x28c(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x320(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm1
  mov    -0x28c(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x358(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mulsd  %xmm1,%xmm0
  movapd %xmm0,%xmm1
  addsd  -0x1f8(%rbp),%xmm1
  mov    -0x294(%rbp),%eax
  imul   -0x260(%rbp),%eax
  mov    %eax,%edx
  mov    -0x28c(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x2f0(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm2
  mov    -0x28c(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x360(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mulsd  %xmm2,%xmm0
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0x1f8(%rbp)
  addl   $0x1,-0x28c(%rbp)
L2599:
  mov    -0x28c(%rbp),%eax
  cmp    -0x2a8(%rbp),%eax
  jle    L2801
  mov    -0x294(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x300(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mov    -0x294(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x330(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm1
  ucomisd %xmm1,%xmm0
  jp     L1425
  ucomisd %xmm1,%xmm0
  jne    L1425
  mov    -0x294(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x308(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  movsd  %xmm0,-0x110(%rbp)
  movsd  -0x110(%rbp),%xmm0
  comisd -0xd8(%rbp),%xmm0
  jbe    L71
  movsd  -0xd8(%rbp),%xmm0
  movsd  %xmm0,-0x110(%rbp)
L71:
  movsd  -0x110(%rbp),%xmm0
  mulsd  %xmm0,%xmm0
  movsd  -0x1b8(%rbp),%xmm1
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0x1b8(%rbp)
  movsd  -0x1f8(%rbp),%xmm0
  movsd  %xmm0,-0x110(%rbp)
  movsd  -0x1f8(%rbp),%xmm0
  comisd -0xd8(%rbp),%xmm0
  jbe    L1751
  movsd  -0xd8(%rbp),%xmm0
  movsd  %xmm0,-0x1f8(%rbp)
L1751:
  movsd  -0x110(%rbp),%xmm0
  mulsd  %xmm0,%xmm0
  movsd  -0x1e8(%rbp),%xmm1
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0x1e8(%rbp)
  jmp    L1007
L1425:
  mov    -0x294(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x300(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mov    -0x294(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x338(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm1
  ucomisd %xmm1,%xmm0
  jp     L2029
  ucomisd %xmm1,%xmm0
  jne    L2029
  mov    -0x294(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x308(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  movsd  %xmm0,-0x108(%rbp)
  movsd  -0xd8(%rbp),%xmm0
  comisd -0x108(%rbp),%xmm0
  jbe    L395
  movsd  -0xd8(%rbp),%xmm0
  movsd  %xmm0,-0x108(%rbp)
L395:
  movsd  -0x108(%rbp),%xmm0
  mulsd  %xmm0,%xmm0
  movsd  -0x1b8(%rbp),%xmm1
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0x1b8(%rbp)
  movsd  -0x1f8(%rbp),%xmm0
  movsd  %xmm0,-0x108(%rbp)
  movsd  -0xd8(%rbp),%xmm0
  comisd -0x1f8(%rbp),%xmm0
  jbe    L2660
  movsd  -0xd8(%rbp),%xmm0
  movsd  %xmm0,-0x1f8(%rbp)
L2660:
  movsd  -0x108(%rbp),%xmm0
  mulsd  %xmm0,%xmm0
  movsd  -0x1e8(%rbp),%xmm1
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0x1e8(%rbp)
  jmp    L1007
L2029:
  mov    -0x294(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x308(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm1
  mov    -0x294(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x308(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mulsd  %xmm1,%xmm0
  movsd  -0x1b8(%rbp),%xmm1
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0x1b8(%rbp)
  movsd  -0x1f8(%rbp),%xmm0
  mulsd  %xmm0,%xmm0
  movsd  -0x1e8(%rbp),%xmm1
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0x1e8(%rbp)
L1007:
  mov    -0x2a8(%rbp),%edx
  mov    -0x294(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x358(%rbp),%rax
  add    %rdx,%rax
  movsd  -0x1f8(%rbp),%xmm0
  movsd  %xmm0,(%rax)
  addl   $0x1,-0x294(%rbp)
L1121:
  mov    -0x294(%rbp),%eax
  cmp    -0x2a4(%rbp),%eax
  jle    L2712
  addl   $0x1,-0x270(%rbp)
  movsd  -0xf0(%rbp),%xmm0
  mulsd  -0x1e8(%rbp),%xmm0
  comisd -0x1b8(%rbp),%xmm0
  jbe    L2157
  movl   $0x0,-0x270(%rbp)
L2157:
  cmpl   $0x2,-0x270(%rbp)
  jle    L2095
  mov    -0x248(%rbp),%edx
  mov    -0x2a8(%rbp),%eax
  mov    %edx,%esi
  mov    %eax,%edi
  mov    $0x0,%eax
  call   <imax@plt>
  mov    %eax,-0x244(%rbp)
  movl   $0x1,-0x294(%rbp)
  jmp    L1929
L404:
  mov    -0x294(%rbp),%eax
  cmp    -0x2a4(%rbp),%eax
  jg     L684
  mov    -0x2a8(%rbp),%edx
  mov    -0x294(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x358(%rbp),%rax
  add    %rax,%rdx
  mov    -0x294(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rcx
  mov    -0x308(%rbp),%rax
  add    %rcx,%rax
  movsd  (%rdx),%xmm0
  movsd  %xmm0,(%rax)
L684:
  mov    -0x294(%rbp),%eax
  cmp    -0x2a8(%rbp),%eax
  jg     L1776
  mov    -0x2a8(%rbp),%edx
  mov    -0x294(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x360(%rbp),%rax
  add    %rax,%rdx
  mov    -0x294(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rcx
  mov    -0x318(%rbp),%rax
  add    %rcx,%rax
  movsd  (%rdx),%xmm0
  movsd  %xmm0,(%rax)
L1776:
  mov    -0x294(%rbp),%eax
  cmp    -0x248(%rbp),%eax
  jg     L387
  mov    -0x294(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x310(%rbp),%rax
  add    %rdx,%rax
  movsd  -0xd8(%rbp),%xmm0
  movsd  %xmm0,(%rax)
L387:
  movl   $0x0,-0x270(%rbp)
  addl   $0x1,-0x294(%rbp)
L1929:
  mov    -0x294(%rbp),%eax
  cmp    -0x244(%rbp),%eax
  jle    L404
L2095:
  cmpl   $0x0,-0x26c(%rbp)
  jne    L2863
  jmp    L348
L2863:
  movsd  -0xe8(%rbp),%xmm0
  mulsd  -0x150(%rbp),%xmm0
  addsd  -0x88(%rbp),%xmm0
  comisd -0x210(%rbp),%xmm0
  jb     L2946
  jmp    L348
L2946:
  movsd  -0xe0(%rbp),%xmm0
  mulsd  -0x180(%rbp),%xmm0
  movsd  %xmm0,-0x58(%rbp)
  movsd  -0xf0(%rbp),%xmm0
  mulsd  -0x200(%rbp),%xmm0
  movsd  %xmm0,-0x50(%rbp)
  movsd  -0x58(%rbp),%xmm0
  mulsd  %xmm0,%xmm0
  movsd  %xmm0,-0x48(%rbp)
  movsd  -0x50(%rbp),%xmm0
  mulsd  %xmm0,%xmm0
  movsd  %xmm0,-0x40(%rbp)
  movsd  -0x48(%rbp),%xmm0
  comisd -0x40(%rbp),%xmm0
  jbe    L1376
  movsd  -0x48(%rbp),%xmm0
  jmp    L1637
L1376:
  movsd  -0x40(%rbp),%xmm0
L1637:
  movsd  %xmm0,-0x120(%rbp)
  jmp    L1538
L1453:
  nop
  jmp    L1538
L281:
  nop
  jmp    L1538
L358:
  nop
L1538:
  movl   $0x0,-0x280(%rbp)
  movl   $0x1,-0x28c(%rbp)
  jmp    L910
L2466:
  movsd  -0xd8(%rbp),%xmm0
  movsd  %xmm0,-0x1f8(%rbp)
  movl   $0x1,-0x290(%rbp)
  jmp    L70
L1707:
  mov    -0x290(%rbp),%eax
  imul   -0x260(%rbp),%eax
  mov    %eax,%edx
  mov    -0x28c(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x2f0(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mov    -0x290(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x300(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm2
  movapd %xmm0,%xmm1
  subsd  %xmm2,%xmm1
  mov    -0x290(%rbp),%eax
  imul   -0x260(%rbp),%eax
  mov    %eax,%edx
  mov    -0x28c(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x2f0(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mov    -0x290(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x300(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm2
  subsd  %xmm2,%xmm0
  mulsd  %xmm1,%xmm0
  movsd  -0x1f8(%rbp),%xmm1
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0x1f8(%rbp)
  addl   $0x1,-0x290(%rbp)
L70:
  mov    -0x290(%rbp),%eax
  cmp    -0x2a4(%rbp),%eax
  jle    L1707
  movsd  -0x1f8(%rbp),%xmm0
  comisd -0x120(%rbp),%xmm0
  jbe    L1038
  mov    -0x28c(%rbp),%eax
  mov    %eax,-0x280(%rbp)
  movsd  -0x1f8(%rbp),%xmm0
  movsd  %xmm0,-0x120(%rbp)
L1038:
  addl   $0x1,-0x28c(%rbp)
L910:
  mov    -0x28c(%rbp),%eax
  cmp    -0x2a8(%rbp),%eax
  jle    L2466
  cmpl   $0x0,-0x280(%rbp)
  jle    L790
  mov    -0x120(%rbp),%rax
  movq   %rax,%xmm0
  call   <sqrt@plt>
  movq   %xmm0,%rax
  mov    %rax,-0xc0(%rbp)
  cmpl   $0xffffffff,-0x26c(%rbp)
  jne    L155
  movsd  -0x180(%rbp),%xmm0
  mulsd  -0xe8(%rbp),%xmm0
  movsd  %xmm0,-0x180(%rbp)
  movsd  -0x100(%rbp),%xmm0
  movapd %xmm0,%xmm1
  mulsd  -0xc0(%rbp),%xmm1
  movsd  -0x180(%rbp),%xmm0
  comisd %xmm1,%xmm0
  jbe    L1297
  movsd  -0x100(%rbp),%xmm0
  mulsd  -0xc0(%rbp),%xmm0
  movsd  %xmm0,-0x180(%rbp)
L1297:
  movsd  -0x200(%rbp),%xmm1
  movsd  D307(%rip),%xmm0
  mulsd  %xmm1,%xmm0
  comisd -0x180(%rbp),%xmm0
  jb     L155
  movsd  -0x200(%rbp),%xmm0
  movsd  %xmm0,-0x180(%rbp)
L155:
  movl   $0x0,-0x26c(%rbp)
  movsd  -0xe8(%rbp),%xmm0
  mulsd  -0xc0(%rbp),%xmm0
  movsd  %xmm0,-0x178(%rbp)
  movsd  -0x178(%rbp),%xmm0
  comisd -0x180(%rbp),%xmm0
  jbe    L1242
  movsd  -0x180(%rbp),%xmm0
  movsd  %xmm0,-0x178(%rbp)
L1242:
  movsd  -0x200(%rbp),%xmm0
  comisd -0x178(%rbp),%xmm0
  jbe    L2299
  movsd  -0x200(%rbp),%xmm0
  movsd  %xmm0,-0x178(%rbp)
L2299:
  movsd  -0x178(%rbp),%xmm0
  mulsd  %xmm0,%xmm0
  movsd  %xmm0,-0x230(%rbp)
  jmp    L1154
L790:
  cmpl   $0xffffffff,-0x26c(%rbp)
  je     L681
  movsd  -0x160(%rbp),%xmm0
  comisd -0xd8(%rbp),%xmm0
  jbe    L680
  jmp    L348
L680:
  movsd  -0x180(%rbp),%xmm0
  comisd -0x158(%rbp),%xmm0
  jbe    L715
  movsd  -0x180(%rbp),%xmm0
  jmp    L2377
L715:
  movsd  -0x158(%rbp),%xmm0
L2377:
  comisd -0x200(%rbp),%xmm0
  jbe    L750
  jmp    L348
L681:
  nop
L750:
  movsd  -0x200(%rbp),%xmm0
  comisd -0x2e0(%rbp),%xmm0
  jbe    L2526
  movsd  -0x100(%rbp),%xmm0
  mulsd  -0x200(%rbp),%xmm0
  movsd  %xmm0,-0x180(%rbp)
  movsd  -0x200(%rbp),%xmm0
  divsd  -0x2e0(%rbp),%xmm0
  movsd  %xmm0,-0x160(%rbp)
  movsd  D250(%rip),%xmm0
  comisd -0x160(%rbp),%xmm0
  jb     L654
  movsd  -0x2e0(%rbp),%xmm0
  movsd  %xmm0,-0x200(%rbp)
  jmp    L313
L654:
  movsd  D1(%rip),%xmm0
  comisd -0x160(%rbp),%xmm0
  jb     L2770
  mov    -0x160(%rbp),%rax
  movq   %rax,%xmm0
  call   <sqrt@plt>
  movsd  -0x2e0(%rbp),%xmm1
  mulsd  %xmm1,%xmm0
  movsd  %xmm0,-0x200(%rbp)
  jmp    L313
L2770:
  movsd  -0x200(%rbp),%xmm0
  mulsd  -0xe8(%rbp),%xmm0
  movsd  %xmm0,-0x200(%rbp)
L313:
  movsd  -0x180(%rbp),%xmm0
  comisd -0x200(%rbp),%xmm0
  jbe    L2094
  movsd  -0x180(%rbp),%xmm0
  jmp    L953
L2094:
  movsd  -0x200(%rbp),%xmm0
L953:
  movsd  %xmm0,-0x180(%rbp)
  cmpl   $0x1,0x18(%rbp)
  jle    L1694
  mov    -0x29c(%rbp),%edx
  mov    -0x200(%rbp),%rax
  mov    %edx,%esi
  movq   %rax,%xmm0
  lea    D246(%rip),%rax
  mov    %rax,%rdi
  mov    $0x1,%eax
  call   <printf@plt>
  mov    -0x298(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x2f8(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%rax
  movq   %rax,%xmm0
  lea    D171(%rip),%rax
  mov    %rax,%rdi
  mov    $0x1,%eax
  call   <printf@plt>
  movl   $0x1,-0x294(%rbp)
  jmp    L66
L1908:
  mov    -0x294(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x2e8(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm1
  mov    -0x294(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x300(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  addsd  %xmm0,%xmm1
  movq   %xmm1,%rax
  movq   %rax,%xmm0
  lea    D170(%rip),%rax
  mov    %rax,%rdi
  mov    $0x1,%eax
  call   <printf@plt>
  addl   $0x1,-0x294(%rbp)
L66:
  mov    -0x294(%rbp),%eax
  cmp    -0x2a4(%rbp),%eax
  jle    L1908
L1694:
  movl   $0x0,-0x26c(%rbp)
  mov    -0x29c(%rbp),%eax
  mov    %eax,-0x274(%rbp)
  jmp    L348
L2526:
  cmpl   $0xffffffff,-0x26c(%rbp)
  je     L2329
  jmp    L659
L2406:
  nop
  jmp    L659
L515:
  nop
  jmp    L659
L1260:
  nop
  jmp    L659
L879:
  nop
  jmp    L659
L2394:
  nop
  jmp    L659
L1451:
  nop
L659:
  mov    -0x298(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x2f8(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm1
  movsd  -0x168(%rbp),%xmm0
  comisd %xmm1,%xmm0
  jb     L1326
  movl   $0x1,-0x294(%rbp)
  jmp    L172
L803:
  mov    -0x294(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x2e8(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm1
  mov    -0x294(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x300(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mov    -0x294(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x2b0(%rbp),%rax
  add    %rdx,%rax
  addsd  %xmm1,%xmm0
  movsd  %xmm0,(%rax)
  mov    -0x294(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x2b8(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mov    -0x294(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x2b0(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm1
  comisd %xmm1,%xmm0
  jbe    L2739
  mov    -0x294(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x2b8(%rbp),%rax
  add    %rax,%rdx
  mov    -0x294(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rcx
  mov    -0x2b0(%rbp),%rax
  add    %rcx,%rax
  movsd  (%rdx),%xmm0
  movsd  %xmm0,(%rax)
L2739:
  mov    -0x294(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x2c0(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm1
  mov    -0x294(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x2b0(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  comisd %xmm1,%xmm0
  jbe    L1819
  mov    -0x294(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x2c0(%rbp),%rax
  add    %rax,%rdx
  mov    -0x294(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rcx
  mov    -0x2b0(%rbp),%rax
  add    %rcx,%rax
  movsd  (%rdx),%xmm0
  movsd  %xmm0,(%rax)
L1819:
  mov    -0x294(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x300(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mov    -0x294(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x330(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm1
  ucomisd %xmm1,%xmm0
  jp     L397
  ucomisd %xmm1,%xmm0
  jne    L397
  mov    -0x294(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x2b8(%rbp),%rax
  add    %rax,%rdx
  mov    -0x294(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rcx
  mov    -0x2b0(%rbp),%rax
  add    %rcx,%rax
  movsd  (%rdx),%xmm0
  movsd  %xmm0,(%rax)
L397:
  mov    -0x294(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x300(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mov    -0x294(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x338(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm1
  ucomisd %xmm1,%xmm0
  jp     L1423
  ucomisd %xmm1,%xmm0
  jne    L1423
  mov    -0x294(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x2c0(%rbp),%rax
  add    %rax,%rdx
  mov    -0x294(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rcx
  mov    -0x2b0(%rbp),%rax
  add    %rcx,%rax
  movsd  (%rdx),%xmm0
  movsd  %xmm0,(%rax)
L1423:
  addl   $0x1,-0x294(%rbp)
L172:
  mov    -0x294(%rbp),%eax
  cmp    -0x2a4(%rbp),%eax
  jle    L803
  mov    -0x298(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x2f8(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  movsd  %xmm0,-0x210(%rbp)
L1326:
  cmpl   $0x0,0x18(%rbp)
  jle    L776
  mov    -0x29c(%rbp),%eax
  mov    %eax,%esi
  lea    D306(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  mov    -0x210(%rbp),%rax
  movq   %rax,%xmm0
  lea    D171(%rip),%rax
  mov    %rax,%rdi
  mov    $0x1,%eax
  call   <printf@plt>
  movl   $0x1,-0x294(%rbp)
  jmp    L1241
L187:
  mov    -0x294(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x2b0(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%rax
  movq   %rax,%xmm0
  lea    D170(%rip),%rax
  mov    %rax,%rdi
  mov    $0x1,%eax
  call   <printf@plt>
  addl   $0x1,-0x294(%rbp)
L1241:
  mov    -0x294(%rbp),%eax
  cmp    -0x2a4(%rbp),%eax
  jle    L187
L776:
  nop
  mov    -0x38(%rbp),%rax
  sub    %fs:0x28,%rax
  je     L452
  call   <__stack_chk_fail@plt>
L452:
  lea    -0x28(%rbp),%rsp
  pop    %rbx
  pop    %r12
  pop    %r13
  pop    %r14
  pop    %r15
  pop    %rbp
  ret
```

tool_calls: name: extract_symbolic_data
arguments: label: D88
type: f32[2]
name: extract_symbolic_data
arguments: label: D109
type: f64
name: extract_symbolic_data
arguments: label: D65
type: f64
name: extract_symbolic_data
arguments: label: D227
type: byte[8]
name: extract_symbolic_data
arguments: label: D228
type: f64
name: extract_symbolic_data
arguments: label: D52
type: string
name: extract_symbolic_data
arguments: label: D18
type: f32[2]
name: extract_symbolic_data
arguments: label: D160
type: f32[2]
name: extract_symbolic_data
arguments: label: D206
type: byte[8]
name: extract_symbolic_data
arguments: label: D211
type: f32[2]
name: extract_symbolic_data
arguments: label: D283
type: string
name: extract_symbolic_data
arguments: label: D97
type: string
name: extract_symbolic_data
arguments: label: D170
type: string
name: extract_symbolic_data
arguments: label: D205
type: qword
name: extract_symbolic_data
arguments: label: D195
type: string
name: extract_symbolic_data
arguments: label: D251
type: byte[8]
name: extract_symbolic_data
arguments: label: D307
type: f64
name: extract_symbolic_data
arguments: label: D250
type: f64
name: extract_symbolic_data
arguments: label: D1
type: f64
name: extract_symbolic_data
arguments: label: D246
type: string
name: extract_symbolic_data
arguments: label: D171
type: string
name: extract_symbolic_data
arguments: label: D306
type: string

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

tool: D109: 1

tool: D65: 10

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

tool: D228: 2

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

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

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

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

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

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

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


tool: D170: 	%g


tool: D205: 9223372036854775807

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

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

tool: D307: 1.5

tool: D250: 16

tool: D1: 250

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

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


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