user: 请显示与下面列出的汇编代码相匹配的C语言实现：

```asm
<main>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  push   %r15
  push   %r14
  push   %r13
  push   %r12
  push   %rbx
  sub    $0x808,%rsp
  mov    %fs:0x28,%rax
  mov    %rax,-0x38(%rbp)
  xor    %eax,%eax
  mov    %rsp,%rax
  mov    %rax,-0x360(%rbp)
  movsd  D14(%rip),%xmm0
  movsd  %xmm0,-0x2e8(%rbp)
  movsd  D14(%rip),%xmm0
  movsd  %xmm0,-0x2e0(%rbp)
  movl   $0x6,-0x32c(%rbp)
  movl   $0x6,-0x328(%rbp)
  movl   $0x3,-0x324(%rbp)
  mov    -0x32c(%rbp),%eax
  add    %eax,%eax
  add    $0x1,%eax
  mov    %eax,-0x320(%rbp)
  mov    -0x320(%rbp),%eax
  add    $0x5,%eax
  mov    %eax,-0x31c(%rbp)
  mov    -0x328(%rbp),%eax
  add    %eax,%eax
  add    $0x1,%eax
  mov    %eax,-0x318(%rbp)
  mov    -0x318(%rbp),%eax
  add    $0x5,%eax
  mov    %eax,-0x314(%rbp)
  movsd  -0x2e8(%rbp),%xmm0
  addsd  %xmm0,%xmm0
  mov    -0x320(%rbp),%eax
  sub    $0x1,%eax
  pxor   %xmm1,%xmm1
  cvtsi2sd %eax,%xmm1
  divsd  %xmm1,%xmm0
  movsd  %xmm0,-0x2d8(%rbp)
  movsd  -0x2e0(%rbp),%xmm0
  addsd  %xmm0,%xmm0
  mov    -0x318(%rbp),%eax
  sub    $0x1,%eax
  pxor   %xmm1,%xmm1
  cvtsi2sd %eax,%xmm1
  divsd  %xmm1,%xmm0
  movsd  %xmm0,-0x2d0(%rbp)
  movsd  D128(%rip),%xmm0
  movsd  %xmm0,-0x2c8(%rbp)
  mov    -0x31c(%rbp),%esi
  mov    -0x314(%rbp),%edi
  movslq %esi,%rax
  sub    $0x1,%rax
  mov    %rax,-0x2c0(%rbp)
  movslq %esi,%rax
  mov    %rax,%rcx
  mov    $0x0,%ebx
  movslq %esi,%rax
  shl    $0x3,%rax
  mov    %rax,-0x358(%rbp)
  movslq %edi,%rax
  sub    $0x1,%rax
  mov    %rax,-0x2b8(%rbp)
  movslq %esi,%rax
  mov    %rax,%r10
  mov    $0x0,%r11d
  movslq %edi,%rax
  mov    %rax,%r8
  mov    $0x0,%r9d
  mov    %r11,%rdx
  imul   %r8,%rdx
  mov    %r9,%rax
  imul   %r10,%rax
  lea    (%rdx,%rax,1),%rcx
  mov    %r10,%rax
  mul    %r8
  add    %rdx,%rcx
  mov    %rcx,%rdx
  movslq %esi,%rax
  mov    %rax,%r14
  mov    $0x0,%r15d
  movslq %edi,%rax
  mov    %rax,%r12
  mov    $0x0,%r13d
  mov    %r15,%rdx
  imul   %r12,%rdx
  mov    %r13,%rax
  imul   %r14,%rax
  lea    (%rdx,%rax,1),%rcx
  mov    %r14,%rax
  mul    %r12
  add    %rdx,%rcx
  mov    %rcx,%rdx
  movslq %esi,%rdx
  movslq %edi,%rax
  imul   %rdx,%rax
  lea    0x0(,%rax,8),%rdx
  mov    $0x10,%eax
  sub    $0x1,%rax
  add    %rdx,%rax
  mov    $0x10,%ebx
  mov    $0x0,%edx
  div    %rbx
  imul   $0x10,%rax,%rdx
  mov    %rdx,%rax
  and    $0xfffffffffffff000,%rax
  mov    %rsp,%rcx
  sub    %rax,%rcx
L214:
  cmp    %rcx,%rsp
  je     L1114
  sub    $0x1000,%rsp
  orq    $0x0,0xff8(%rsp)
  jmp    L214
L1114:
  mov    %rdx,%rax
  and    $0xfff,%eax
  sub    %rax,%rsp
  mov    %rdx,%rax
  and    $0xfff,%eax
  test   %rax,%rax
  je     L624
  mov    %rdx,%rax
  and    $0xfff,%eax
  sub    $0x8,%rax
  add    %rsp,%rax
  orq    $0x0,(%rax)
L624:
  mov    %rsp,%rax
  add    $0x7,%rax
  shr    $0x3,%rax
  shl    $0x3,%rax
  mov    %rax,-0x2b0(%rbp)
  mov    -0x31c(%rbp),%esi
  mov    -0x314(%rbp),%edi
  movslq %esi,%rax
  sub    $0x1,%rax
  mov    %rax,-0x2a8(%rbp)
  movslq %esi,%rax
  mov    %rax,-0x730(%rbp)
  movq   $0x0,-0x728(%rbp)
  movslq %esi,%rax
  lea    0x0(,%rax,8),%r13
  movslq %edi,%rax
  sub    $0x1,%rax
  mov    %rax,-0x2a0(%rbp)
  movslq %esi,%rax
  mov    %rax,-0x370(%rbp)
  movq   $0x0,-0x368(%rbp)
  movslq %edi,%rax
  mov    %rax,-0x380(%rbp)
  movq   $0x0,-0x378(%rbp)
  mov    -0x370(%rbp),%r9
  mov    -0x368(%rbp),%r10
  mov    %r10,%rdx
  mov    -0x380(%rbp),%r11
  mov    -0x378(%rbp),%r12
  imul   %r11,%rdx
  mov    %r12,%rax
  imul   %r9,%rax
  lea    (%rdx,%rax,1),%rcx
  mov    %r9,%rax
  mul    %r11
  add    %rdx,%rcx
  mov    %rcx,%rdx
  movslq %esi,%rax
  mov    %rax,-0x390(%rbp)
  movq   $0x0,-0x388(%rbp)
  movslq %edi,%rax
  mov    %rax,-0x3a0(%rbp)
  movq   $0x0,-0x398(%rbp)
  mov    -0x390(%rbp),%r9
  mov    -0x388(%rbp),%r10
  mov    %r10,%rdx
  mov    -0x3a0(%rbp),%r11
  mov    -0x398(%rbp),%r12
  imul   %r11,%rdx
  mov    %r12,%rax
  imul   %r9,%rax
  lea    (%rdx,%rax,1),%rcx
  mov    %r9,%rax
  mul    %r11
  add    %rdx,%rcx
  mov    %rcx,%rdx
  movslq %esi,%rdx
  movslq %edi,%rax
  imul   %rdx,%rax
  lea    0x0(,%rax,8),%rdx
  mov    $0x10,%eax
  sub    $0x1,%rax
  add    %rdx,%rax
  mov    $0x10,%ebx
  mov    $0x0,%edx
  div    %rbx
  imul   $0x10,%rax,%rdx
  mov    %rdx,%rax
  and    $0xfffffffffffff000,%rax
  mov    %rsp,%rcx
  sub    %rax,%rcx
L612:
  cmp    %rcx,%rsp
  je     L620
  sub    $0x1000,%rsp
  orq    $0x0,0xff8(%rsp)
  jmp    L612
L620:
  mov    %rdx,%rax
  and    $0xfff,%eax
  sub    %rax,%rsp
  mov    %rdx,%rax
  and    $0xfff,%eax
  test   %rax,%rax
  je     L478
  mov    %rdx,%rax
  and    $0xfff,%eax
  sub    $0x8,%rax
  add    %rsp,%rax
  orq    $0x0,(%rax)
L478:
  mov    %rsp,%rax
  add    $0x7,%rax
  shr    $0x3,%rax
  shl    $0x3,%rax
  mov    %rax,-0x298(%rbp)
  mov    -0x31c(%rbp),%esi
  mov    -0x314(%rbp),%edi
  movslq %esi,%rax
  sub    $0x1,%rax
  mov    %rax,-0x290(%rbp)
  movslq %esi,%rax
  mov    %rax,-0x740(%rbp)
  movq   $0x0,-0x738(%rbp)
  movslq %esi,%rax
  shl    $0x3,%rax
  mov    %rax,-0x390(%rbp)
  movslq %edi,%rax
  sub    $0x1,%rax
  mov    %rax,-0x288(%rbp)
  movslq %esi,%rax
  mov    %rax,-0x3b0(%rbp)
  movq   $0x0,-0x3a8(%rbp)
  movslq %edi,%rax
  mov    %rax,-0x3c0(%rbp)
  movq   $0x0,-0x3b8(%rbp)
  mov    -0x3b0(%rbp),%r9
  mov    -0x3a8(%rbp),%r10
  mov    %r10,%rdx
  mov    -0x3c0(%rbp),%r14
  mov    -0x3b8(%rbp),%r15
  imul   %r14,%rdx
  mov    %r15,%rax
  imul   %r9,%rax
  lea    (%rdx,%rax,1),%rcx
  mov    %r9,%rax
  mul    %r14
  add    %rdx,%rcx
  mov    %rcx,%rdx
  movslq %esi,%rax
  mov    %rax,-0x3d0(%rbp)
  movq   $0x0,-0x3c8(%rbp)
  movslq %edi,%rax
  mov    %rax,-0x3e0(%rbp)
  movq   $0x0,-0x3d8(%rbp)
  mov    -0x3d0(%rbp),%r9
  mov    -0x3c8(%rbp),%r10
  mov    %r10,%rdx
  mov    -0x3e0(%rbp),%r11
  mov    -0x3d8(%rbp),%r12
  imul   %r11,%rdx
  mov    %r12,%rax
  imul   %r9,%rax
  lea    (%rdx,%rax,1),%rcx
  mov    %r9,%rax
  mul    %r11
  add    %rdx,%rcx
  mov    %rcx,%rdx
  movslq %esi,%rdx
  movslq %edi,%rax
  imul   %rdx,%rax
  lea    0x0(,%rax,8),%rdx
  mov    $0x10,%eax
  sub    $0x1,%rax
  add    %rdx,%rax
  mov    $0x10,%ebx
  mov    $0x0,%edx
  div    %rbx
  imul   $0x10,%rax,%rdx
  mov    %rdx,%rax
  and    $0xfffffffffffff000,%rax
  mov    %rsp,%rcx
  sub    %rax,%rcx
L943:
  cmp    %rcx,%rsp
  je     L1012
  sub    $0x1000,%rsp
  orq    $0x0,0xff8(%rsp)
  jmp    L943
L1012:
  mov    %rdx,%rax
  and    $0xfff,%eax
  sub    %rax,%rsp
  mov    %rdx,%rax
  and    $0xfff,%eax
  test   %rax,%rax
  je     L916
  mov    %rdx,%rax
  and    $0xfff,%eax
  sub    $0x8,%rax
  add    %rsp,%rax
  orq    $0x0,(%rax)
L916:
  mov    %rsp,%rax
  add    $0x7,%rax
  shr    $0x3,%rax
  shl    $0x3,%rax
  mov    %rax,-0x280(%rbp)
  mov    -0x31c(%rbp),%esi
  mov    -0x314(%rbp),%edi
  movslq %esi,%rax
  sub    $0x1,%rax
  mov    %rax,-0x278(%rbp)
  movslq %esi,%rax
  mov    %rax,-0x750(%rbp)
  movq   $0x0,-0x748(%rbp)
  movslq %esi,%rax
  shl    $0x3,%rax
  mov    %rax,-0x3a0(%rbp)
  movslq %edi,%rax
  sub    $0x1,%rax
  mov    %rax,-0x270(%rbp)
  movslq %esi,%rax
  mov    %rax,-0x3f0(%rbp)
  movq   $0x0,-0x3e8(%rbp)
  movslq %edi,%rax
  mov    %rax,-0x400(%rbp)
  movq   $0x0,-0x3f8(%rbp)
  mov    -0x3f0(%rbp),%r8
  mov    -0x3e8(%rbp),%r9
  mov    %r9,%rdx
  mov    -0x400(%rbp),%r14
  mov    -0x3f8(%rbp),%r15
  imul   %r14,%rdx
  mov    %r15,%rax
  imul   %r8,%rax
  lea    (%rdx,%rax,1),%rcx
  mov    %r8,%rax
  mul    %r14
  add    %rdx,%rcx
  mov    %rcx,%rdx
  movslq %esi,%rax
  mov    %rax,-0x410(%rbp)
  movq   $0x0,-0x408(%rbp)
  movslq %edi,%rax
  mov    %rax,-0x420(%rbp)
  movq   $0x0,-0x418(%rbp)
  mov    -0x410(%rbp),%r8
  mov    -0x408(%rbp),%r9
  mov    %r9,%rdx
  mov    -0x420(%rbp),%r10
  mov    -0x418(%rbp),%r11
  imul   %r10,%rdx
  mov    %r11,%rax
  imul   %r8,%rax
  lea    (%rdx,%rax,1),%rcx
  mov    %r8,%rax
  mul    %r10
  add    %rdx,%rcx
  mov    %rcx,%rdx
  movslq %esi,%rdx
  movslq %edi,%rax
  imul   %rdx,%rax
  lea    0x0(,%rax,8),%rdx
  mov    $0x10,%eax
  sub    $0x1,%rax
  add    %rdx,%rax
  mov    $0x10,%ebx
  mov    $0x0,%edx
  div    %rbx
  imul   $0x10,%rax,%rdx
  mov    %rdx,%rax
  and    $0xfffffffffffff000,%rax
  mov    %rsp,%rcx
  sub    %rax,%rcx
L567:
  cmp    %rcx,%rsp
  je     L608
  sub    $0x1000,%rsp
  orq    $0x0,0xff8(%rsp)
  jmp    L567
L608:
  mov    %rdx,%rax
  and    $0xfff,%eax
  sub    %rax,%rsp
  mov    %rdx,%rax
  and    $0xfff,%eax
  test   %rax,%rax
  je     L961
  mov    %rdx,%rax
  and    $0xfff,%eax
  sub    $0x8,%rax
  add    %rsp,%rax
  orq    $0x0,(%rax)
L961:
  mov    %rsp,%rax
  add    $0x7,%rax
  shr    $0x3,%rax
  shl    $0x3,%rax
  mov    %rax,-0x268(%rbp)
  mov    -0x31c(%rbp),%esi
  mov    -0x314(%rbp),%edi
  movslq %esi,%rax
  sub    $0x1,%rax
  mov    %rax,-0x260(%rbp)
  movslq %esi,%rax
  mov    %rax,-0x760(%rbp)
  movq   $0x0,-0x758(%rbp)
  movslq %esi,%rax
  lea    0x0(,%rax,8),%rbx
  movslq %edi,%rax
  sub    $0x1,%rax
  mov    %rax,-0x258(%rbp)
  movslq %esi,%rax
  mov    %rax,-0x430(%rbp)
  movq   $0x0,-0x428(%rbp)
  movslq %edi,%rax
  mov    %rax,-0x440(%rbp)
  movq   $0x0,-0x438(%rbp)
  mov    -0x430(%rbp),%r8
  mov    -0x428(%rbp),%r9
  mov    %r9,%rdx
  mov    -0x440(%rbp),%r14
  mov    -0x438(%rbp),%r15
  imul   %r14,%rdx
  mov    %r15,%rax
  imul   %r8,%rax
  lea    (%rdx,%rax,1),%rcx
  mov    %r8,%rax
  mul    %r14
  add    %rdx,%rcx
  mov    %rcx,%rdx
  movslq %esi,%rax
  mov    %rax,-0x450(%rbp)
  movq   $0x0,-0x448(%rbp)
  movslq %edi,%rax
  mov    %rax,-0x460(%rbp)
  movq   $0x0,-0x458(%rbp)
  mov    -0x450(%rbp),%r8
  mov    -0x448(%rbp),%r9
  mov    %r9,%rdx
  mov    -0x460(%rbp),%r10
  mov    -0x458(%rbp),%r11
  imul   %r10,%rdx
  mov    %r11,%rax
  imul   %r8,%rax
  lea    (%rdx,%rax,1),%rcx
  mov    %r8,%rax
  mul    %r10
  add    %rdx,%rcx
  mov    %rcx,%rdx
  movslq %esi,%rdx
  movslq %edi,%rax
  imul   %rdx,%rax
  lea    0x0(,%rax,8),%rdx
  mov    $0x10,%eax
  sub    $0x1,%rax
  add    %rdx,%rax
  mov    $0x10,%edi
  mov    $0x0,%edx
  div    %rdi
  imul   $0x10,%rax,%rdx
  mov    %rdx,%rax
  and    $0xfffffffffffff000,%rax
  mov    %rsp,%rcx
  sub    %rax,%rcx
L571:
  cmp    %rcx,%rsp
  je     L751
  sub    $0x1000,%rsp
  orq    $0x0,0xff8(%rsp)
  jmp    L571
L751:
  mov    %rdx,%rax
  and    $0xfff,%eax
  sub    %rax,%rsp
  mov    %rdx,%rax
  and    $0xfff,%eax
  test   %rax,%rax
  je     L735
  mov    %rdx,%rax
  and    $0xfff,%eax
  sub    $0x8,%rax
  add    %rsp,%rax
  orq    $0x0,(%rax)
L735:
  mov    %rsp,%rax
  add    $0x7,%rax
  shr    $0x3,%rax
  shl    $0x3,%rax
  mov    %rax,-0x250(%rbp)
  mov    -0x31c(%rbp),%esi
  mov    -0x314(%rbp),%edi
  movslq %esi,%rax
  sub    $0x1,%rax
  mov    %rax,-0x248(%rbp)
  movslq %esi,%rax
  mov    %rax,-0x770(%rbp)
  movq   $0x0,-0x768(%rbp)
  movslq %esi,%rax
  lea    0x0(,%rax,8),%r12
  movslq %edi,%rax
  sub    $0x1,%rax
  mov    %rax,-0x240(%rbp)
  movslq %esi,%rax
  mov    %rax,-0x470(%rbp)
  movq   $0x0,-0x468(%rbp)
  movslq %edi,%rax
  mov    %rax,-0x480(%rbp)
  movq   $0x0,-0x478(%rbp)
  mov    -0x470(%rbp),%r14
  mov    -0x468(%rbp),%r15
  mov    %r15,%rdx
  mov    -0x480(%rbp),%r8
  mov    -0x478(%rbp),%r9
  imul   %r8,%rdx
  mov    %r9,%rax
  imul   %r14,%rax
  lea    (%rdx,%rax,1),%rcx
  mov    %r14,%rax
  mul    %r8
  add    %rdx,%rcx
  mov    %rcx,%rdx
  movslq %esi,%rax
  mov    %rax,-0x490(%rbp)
  movq   $0x0,-0x488(%rbp)
  movslq %edi,%rax
  mov    %rax,-0x4a0(%rbp)
  movq   $0x0,-0x498(%rbp)
  mov    -0x490(%rbp),%r8
  mov    -0x488(%rbp),%r9
  mov    %r9,%rdx
  mov    -0x4a0(%rbp),%r10
  mov    -0x498(%rbp),%r11
  imul   %r10,%rdx
  mov    %r11,%rax
  imul   %r8,%rax
  lea    (%rdx,%rax,1),%rcx
  mov    %r8,%rax
  mul    %r10
  add    %rdx,%rcx
  mov    %rcx,%rdx
  movslq %esi,%rdx
  movslq %edi,%rax
  imul   %rdx,%rax
  lea    0x0(,%rax,8),%rdx
  mov    $0x10,%eax
  sub    $0x1,%rax
  add    %rdx,%rax
  mov    $0x10,%edi
  mov    $0x0,%edx
  div    %rdi
  imul   $0x10,%rax,%rdx
  mov    %rdx,%rax
  and    $0xfffffffffffff000,%rax
  mov    %rsp,%rcx
  sub    %rax,%rcx
L764:
  cmp    %rcx,%rsp
  je     L635
  sub    $0x1000,%rsp
  orq    $0x0,0xff8(%rsp)
  jmp    L764
L635:
  mov    %rdx,%rax
  and    $0xfff,%eax
  sub    %rax,%rsp
  mov    %rdx,%rax
  and    $0xfff,%eax
  test   %rax,%rax
  je     L217
  mov    %rdx,%rax
  and    $0xfff,%eax
  sub    $0x8,%rax
  add    %rsp,%rax
  orq    $0x0,(%rax)
L217:
  mov    %rsp,%rax
  add    $0x7,%rax
  shr    $0x3,%rax
  shl    $0x3,%rax
  mov    %rax,-0x238(%rbp)
  mov    -0x31c(%rbp),%esi
  mov    -0x314(%rbp),%edi
  movslq %esi,%rax
  sub    $0x1,%rax
  mov    %rax,-0x230(%rbp)
  movslq %esi,%rax
  mov    %rax,-0x780(%rbp)
  movq   $0x0,-0x778(%rbp)
  movslq %esi,%rax
  shl    $0x3,%rax
  mov    %rax,-0x3b0(%rbp)
  movslq %edi,%rax
  sub    $0x1,%rax
  mov    %rax,-0x228(%rbp)
  movslq %esi,%rax
  mov    %rax,-0x4b0(%rbp)
  movq   $0x0,-0x4a8(%rbp)
  movslq %edi,%rax
  mov    %rax,-0x4c0(%rbp)
  movq   $0x0,-0x4b8(%rbp)
  mov    -0x4b0(%rbp),%r8
  mov    -0x4a8(%rbp),%r9
  mov    %r9,%rdx
  mov    -0x4c0(%rbp),%r10
  mov    -0x4b8(%rbp),%r11
  imul   %r10,%rdx
  mov    %r11,%rax
  imul   %r8,%rax
  lea    (%rdx,%rax,1),%rcx
  mov    %r8,%rax
  mul    %r10
  add    %rdx,%rcx
  mov    %rcx,%rdx
  movslq %esi,%rax
  mov    %rax,-0x4d0(%rbp)
  movq   $0x0,-0x4c8(%rbp)
  movslq %edi,%rax
  mov    %rax,-0x4e0(%rbp)
  movq   $0x0,-0x4d8(%rbp)
  mov    -0x4d0(%rbp),%r10
  mov    -0x4c8(%rbp),%r11
  mov    %r11,%rdx
  mov    -0x4e0(%rbp),%r14
  mov    -0x4d8(%rbp),%r15
  imul   %r14,%rdx
  mov    %r15,%rax
  imul   %r10,%rax
  lea    (%rdx,%rax,1),%rcx
  mov    %r10,%rax
  mul    %r14
  add    %rdx,%rcx
  mov    %rcx,%rdx
  movslq %esi,%rdx
  movslq %edi,%rax
  imul   %rdx,%rax
  lea    0x0(,%rax,8),%rdx
  mov    $0x10,%eax
  sub    $0x1,%rax
  add    %rdx,%rax
  mov    $0x10,%edi
  mov    $0x0,%edx
  div    %rdi
  imul   $0x10,%rax,%rdx
  mov    %rdx,%rax
  and    $0xfffffffffffff000,%rax
  mov    %rsp,%rcx
  sub    %rax,%rcx
L1184:
  cmp    %rcx,%rsp
  je     L293
  sub    $0x1000,%rsp
  orq    $0x0,0xff8(%rsp)
  jmp    L1184
L293:
  mov    %rdx,%rax
  and    $0xfff,%eax
  sub    %rax,%rsp
  mov    %rdx,%rax
  and    $0xfff,%eax
  test   %rax,%rax
  je     L660
  mov    %rdx,%rax
  and    $0xfff,%eax
  sub    $0x8,%rax
  add    %rsp,%rax
  orq    $0x0,(%rax)
L660:
  mov    %rsp,%rax
  add    $0x7,%rax
  shr    $0x3,%rax
  shl    $0x3,%rax
  mov    %rax,-0x220(%rbp)
  mov    -0x31c(%rbp),%esi
  mov    -0x314(%rbp),%edi
  movslq %esi,%rax
  sub    $0x1,%rax
  mov    %rax,-0x218(%rbp)
  movslq %esi,%rax
  mov    %rax,-0x790(%rbp)
  movq   $0x0,-0x788(%rbp)
  movslq %esi,%rax
  shl    $0x3,%rax
  mov    %rax,-0x3c0(%rbp)
  movslq %edi,%rax
  sub    $0x1,%rax
  mov    %rax,-0x210(%rbp)
  movslq %esi,%rax
  mov    %rax,-0x4f0(%rbp)
  movq   $0x0,-0x4e8(%rbp)
  movslq %edi,%rax
  mov    %rax,-0x500(%rbp)
  movq   $0x0,-0x4f8(%rbp)
  mov    -0x4f0(%rbp),%r10
  mov    -0x4e8(%rbp),%r11
  mov    %r11,%rdx
  mov    -0x500(%rbp),%r14
  mov    -0x4f8(%rbp),%r15
  imul   %r14,%rdx
  mov    %r15,%rax
  imul   %r10,%rax
  lea    (%rdx,%rax,1),%rcx
  mov    %r10,%rax
  mul    %r14
  add    %rdx,%rcx
  mov    %rcx,%rdx
  movslq %esi,%rax
  mov    %rax,-0x510(%rbp)
  movq   $0x0,-0x508(%rbp)
  movslq %edi,%rax
  mov    %rax,-0x520(%rbp)
  movq   $0x0,-0x518(%rbp)
  mov    -0x510(%rbp),%r14
  mov    -0x508(%rbp),%r15
  mov    %r15,%rdx
  mov    -0x520(%rbp),%r8
  mov    -0x518(%rbp),%r9
  imul   %r8,%rdx
  mov    %r9,%rax
  imul   %r14,%rax
  lea    (%rdx,%rax,1),%rcx
  mov    %r14,%rax
  mul    %r8
  add    %rdx,%rcx
  mov    %rcx,%rdx
  movslq %esi,%rdx
  movslq %edi,%rax
  imul   %rdx,%rax
  lea    0x0(,%rax,8),%rdx
  mov    $0x10,%eax
  sub    $0x1,%rax
  add    %rdx,%rax
  mov    $0x10,%edi
  mov    $0x0,%edx
  div    %rdi
  imul   $0x10,%rax,%rdx
  mov    %rdx,%rax
  and    $0xfffffffffffff000,%rax
  mov    %rsp,%rcx
  sub    %rax,%rcx
L584:
  cmp    %rcx,%rsp
  je     L1176
  sub    $0x1000,%rsp
  orq    $0x0,0xff8(%rsp)
  jmp    L584
L1176:
  mov    %rdx,%rax
  and    $0xfff,%eax
  sub    %rax,%rsp
  mov    %rdx,%rax
  and    $0xfff,%eax
  test   %rax,%rax
  je     L1061
  mov    %rdx,%rax
  and    $0xfff,%eax
  sub    $0x8,%rax
  add    %rsp,%rax
  orq    $0x0,(%rax)
L1061:
  mov    %rsp,%rax
  add    $0x7,%rax
  shr    $0x3,%rax
  shl    $0x3,%rax
  mov    %rax,-0x208(%rbp)
  mov    -0x314(%rbp),%edx
  movslq %edx,%rax
  sub    $0x1,%rax
  mov    %rax,-0x200(%rbp)
  movslq %edx,%rax
  mov    %rax,-0x7a0(%rbp)
  movq   $0x0,-0x798(%rbp)
  movslq %edx,%rax
  mov    %rax,-0x7b0(%rbp)
  movq   $0x0,-0x7a8(%rbp)
  movslq %edx,%rax
  lea    0x0(,%rax,8),%rdx
  mov    $0x10,%eax
  sub    $0x1,%rax
  add    %rdx,%rax
  mov    $0x10,%edi
  mov    $0x0,%edx
  div    %rdi
  imul   $0x10,%rax,%rdx
  mov    %rdx,%rax
  and    $0xfffffffffffff000,%rax
  mov    %rsp,%rcx
  sub    %rax,%rcx
L412:
  cmp    %rcx,%rsp
  je     L332
  sub    $0x1000,%rsp
  orq    $0x0,0xff8(%rsp)
  jmp    L412
L332:
  mov    %rdx,%rax
  and    $0xfff,%eax
  sub    %rax,%rsp
  mov    %rdx,%rax
  and    $0xfff,%eax
  test   %rax,%rax
  je     L190
  mov    %rdx,%rax
  and    $0xfff,%eax
  sub    $0x8,%rax
  add    %rsp,%rax
  orq    $0x0,(%rax)
L190:
  mov    %rsp,%rax
  add    $0x7,%rax
  shr    $0x3,%rax
  shl    $0x3,%rax
  mov    %rax,-0x1f8(%rbp)
  mov    -0x31c(%rbp),%esi
  mov    -0x314(%rbp),%edi
  movslq %esi,%rax
  sub    $0x1,%rax
  mov    %rax,-0x1f0(%rbp)
  movslq %esi,%rax
  mov    %rax,-0x7c0(%rbp)
  movq   $0x0,-0x7b8(%rbp)
  movslq %esi,%rax
  shl    $0x3,%rax
  mov    %rax,-0x3d0(%rbp)
  movslq %edi,%rax
  sub    $0x1,%rax
  mov    %rax,-0x1e8(%rbp)
  movslq %esi,%rax
  mov    %rax,-0x530(%rbp)
  movq   $0x0,-0x528(%rbp)
  movslq %edi,%rax
  mov    %rax,-0x540(%rbp)
  movq   $0x0,-0x538(%rbp)
  mov    -0x530(%rbp),%r14
  mov    -0x528(%rbp),%r15
  mov    %r15,%rdx
  mov    -0x540(%rbp),%r8
  mov    -0x538(%rbp),%r9
  imul   %r8,%rdx
  mov    %r9,%rax
  imul   %r14,%rax
  lea    (%rdx,%rax,1),%rcx
  mov    %r14,%rax
  mul    %r8
  add    %rdx,%rcx
  mov    %rcx,%rdx
  movslq %esi,%rax
  mov    %rax,-0x550(%rbp)
  movq   $0x0,-0x548(%rbp)
  movslq %edi,%rax
  mov    %rax,-0x560(%rbp)
  movq   $0x0,-0x558(%rbp)
  mov    -0x550(%rbp),%r8
  mov    -0x548(%rbp),%r9
  mov    %r9,%rdx
  mov    -0x560(%rbp),%r10
  mov    -0x558(%rbp),%r11
  imul   %r10,%rdx
  mov    %r11,%rax
  imul   %r8,%rax
  lea    (%rdx,%rax,1),%rcx
  mov    %r8,%rax
  mul    %r10
  add    %rdx,%rcx
  mov    %rcx,%rdx
  movslq %esi,%rdx
  movslq %edi,%rax
  imul   %rdx,%rax
  lea    0x0(,%rax,8),%rdx
  mov    $0x10,%eax
  sub    $0x1,%rax
  add    %rdx,%rax
  mov    $0x10,%edi
  mov    $0x0,%edx
  div    %rdi
  imul   $0x10,%rax,%rdx
  mov    %rdx,%rax
  and    $0xfffffffffffff000,%rax
  mov    %rsp,%rcx
  sub    %rax,%rcx
L55:
  cmp    %rcx,%rsp
  je     L331
  sub    $0x1000,%rsp
  orq    $0x0,0xff8(%rsp)
  jmp    L55
L331:
  mov    %rdx,%rax
  and    $0xfff,%eax
  sub    %rax,%rsp
  mov    %rdx,%rax
  and    $0xfff,%eax
  test   %rax,%rax
  je     L482
  mov    %rdx,%rax
  and    $0xfff,%eax
  sub    $0x8,%rax
  add    %rsp,%rax
  orq    $0x0,(%rax)
L482:
  mov    %rsp,%rax
  add    $0x7,%rax
  shr    $0x3,%rax
  shl    $0x3,%rax
  mov    %rax,-0x1e0(%rbp)
  mov    -0x31c(%rbp),%esi
  mov    -0x314(%rbp),%edi
  movslq %esi,%rax
  sub    $0x1,%rax
  mov    %rax,-0x1d8(%rbp)
  movslq %esi,%rax
  mov    %rax,-0x7d0(%rbp)
  movq   $0x0,-0x7c8(%rbp)
  movslq %esi,%rax
  shl    $0x3,%rax
  mov    %rax,-0x3e0(%rbp)
  movslq %edi,%rax
  sub    $0x1,%rax
  mov    %rax,-0x1d0(%rbp)
  movslq %esi,%rax
  mov    %rax,-0x570(%rbp)
  movq   $0x0,-0x568(%rbp)
  movslq %edi,%rax
  mov    %rax,-0x580(%rbp)
  movq   $0x0,-0x578(%rbp)
  mov    -0x570(%rbp),%r8
  mov    -0x568(%rbp),%r9
  mov    %r9,%rdx
  mov    -0x580(%rbp),%r10
  mov    -0x578(%rbp),%r11
  imul   %r10,%rdx
  mov    %r11,%rax
  imul   %r8,%rax
  lea    (%rdx,%rax,1),%rcx
  mov    %r8,%rax
  mul    %r10
  add    %rdx,%rcx
  mov    %rcx,%rdx
  movslq %esi,%rax
  mov    %rax,-0x590(%rbp)
  movq   $0x0,-0x588(%rbp)
  movslq %edi,%rax
  mov    %rax,-0x5a0(%rbp)
  movq   $0x0,-0x598(%rbp)
  mov    -0x590(%rbp),%r10
  mov    -0x588(%rbp),%r11
  mov    %r11,%rdx
  mov    -0x5a0(%rbp),%r14
  mov    -0x598(%rbp),%r15
  imul   %r14,%rdx
  mov    %r15,%rax
  imul   %r10,%rax
  lea    (%rdx,%rax,1),%rcx
  mov    %r10,%rax
  mul    %r14
  add    %rdx,%rcx
  mov    %rcx,%rdx
  movslq %esi,%rdx
  movslq %edi,%rax
  imul   %rdx,%rax
  lea    0x0(,%rax,8),%rdx
  mov    $0x10,%eax
  sub    $0x1,%rax
  add    %rdx,%rax
  mov    $0x10,%edi
  mov    $0x0,%edx
  div    %rdi
  imul   $0x10,%rax,%rdx
  mov    %rdx,%rax
  and    $0xfffffffffffff000,%rax
  mov    %rsp,%rcx
  sub    %rax,%rcx
L777:
  cmp    %rcx,%rsp
  je     L1162
  sub    $0x1000,%rsp
  orq    $0x0,0xff8(%rsp)
  jmp    L777
L1162:
  mov    %rdx,%rax
  and    $0xfff,%eax
  sub    %rax,%rsp
  mov    %rdx,%rax
  and    $0xfff,%eax
  test   %rax,%rax
  je     L1144
  mov    %rdx,%rax
  and    $0xfff,%eax
  sub    $0x8,%rax
  add    %rsp,%rax
  orq    $0x0,(%rax)
L1144:
  mov    %rsp,%rax
  add    $0x7,%rax
  shr    $0x3,%rax
  shl    $0x3,%rax
  mov    %rax,-0x1c8(%rbp)
  mov    -0x31c(%rbp),%esi
  mov    -0x314(%rbp),%edi
  movslq %esi,%rax
  sub    $0x1,%rax
  mov    %rax,-0x1c0(%rbp)
  movslq %esi,%rax
  mov    %rax,-0x7e0(%rbp)
  movq   $0x0,-0x7d8(%rbp)
  movslq %esi,%rax
  shl    $0x3,%rax
  mov    %rax,-0x3f0(%rbp)
  movslq %edi,%rax
  sub    $0x1,%rax
  mov    %rax,-0x1b8(%rbp)
  movslq %esi,%rax
  mov    %rax,-0x5b0(%rbp)
  movq   $0x0,-0x5a8(%rbp)
  movslq %edi,%rax
  mov    %rax,-0x5c0(%rbp)
  movq   $0x0,-0x5b8(%rbp)
  mov    -0x5b0(%rbp),%r10
  mov    -0x5a8(%rbp),%r11
  mov    %r11,%rdx
  mov    -0x5c0(%rbp),%r14
  mov    -0x5b8(%rbp),%r15
  imul   %r14,%rdx
  mov    %r15,%rax
  imul   %r10,%rax
  lea    (%rdx,%rax,1),%rcx
  mov    %r10,%rax
  mul    %r14
  add    %rdx,%rcx
  mov    %rcx,%rdx
  movslq %esi,%rax
  mov    %rax,-0x5d0(%rbp)
  movq   $0x0,-0x5c8(%rbp)
  movslq %edi,%rax
  mov    %rax,-0x5e0(%rbp)
  movq   $0x0,-0x5d8(%rbp)
  mov    -0x5d0(%rbp),%r14
  mov    -0x5c8(%rbp),%r15
  mov    %r15,%rdx
  mov    -0x5e0(%rbp),%r8
  mov    -0x5d8(%rbp),%r9
  imul   %r8,%rdx
  mov    %r9,%rax
  imul   %r14,%rax
  lea    (%rdx,%rax,1),%rcx
  mov    %r14,%rax
  mul    %r8
  add    %rdx,%rcx
  mov    %rcx,%rdx
  movslq %esi,%rdx
  movslq %edi,%rax
  imul   %rdx,%rax
  lea    0x0(,%rax,8),%rdx
  mov    $0x10,%eax
  sub    $0x1,%rax
  add    %rdx,%rax
  mov    $0x10,%edi
  mov    $0x0,%edx
  div    %rdi
  imul   $0x10,%rax,%rdx
  mov    %rdx,%rax
  and    $0xfffffffffffff000,%rax
  mov    %rsp,%rcx
  sub    %rax,%rcx
L504:
  cmp    %rcx,%rsp
  je     L11
  sub    $0x1000,%rsp
  orq    $0x0,0xff8(%rsp)
  jmp    L504
L11:
  mov    %rdx,%rax
  and    $0xfff,%eax
  sub    %rax,%rsp
  mov    %rdx,%rax
  and    $0xfff,%eax
  test   %rax,%rax
  je     L96
  mov    %rdx,%rax
  and    $0xfff,%eax
  sub    $0x8,%rax
  add    %rsp,%rax
  orq    $0x0,(%rax)
L96:
  mov    %rsp,%rax
  add    $0x7,%rax
  shr    $0x3,%rax
  shl    $0x3,%rax
  mov    %rax,-0x1b0(%rbp)
  mov    -0x31c(%rbp),%esi
  mov    -0x314(%rbp),%edi
  movslq %esi,%rax
  sub    $0x1,%rax
  mov    %rax,-0x1a8(%rbp)
  movslq %esi,%rax
  mov    %rax,-0x7f0(%rbp)
  movq   $0x0,-0x7e8(%rbp)
  movslq %esi,%rax
  shl    $0x3,%rax
  mov    %rax,-0x400(%rbp)
  movslq %edi,%rax
  sub    $0x1,%rax
  mov    %rax,-0x1a0(%rbp)
  movslq %esi,%rax
  mov    %rax,-0x5f0(%rbp)
  movq   $0x0,-0x5e8(%rbp)
  movslq %edi,%rax
  mov    %rax,-0x600(%rbp)
  movq   $0x0,-0x5f8(%rbp)
  mov    -0x5f0(%rbp),%r14
  mov    -0x5e8(%rbp),%r15
  mov    %r15,%rdx
  mov    -0x600(%rbp),%r8
  mov    -0x5f8(%rbp),%r9
  imul   %r8,%rdx
  mov    %r9,%rax
  imul   %r14,%rax
  lea    (%rdx,%rax,1),%rcx
  mov    %r14,%rax
  mul    %r8
  add    %rdx,%rcx
  mov    %rcx,%rdx
  movslq %esi,%rax
  mov    %rax,-0x610(%rbp)
  movq   $0x0,-0x608(%rbp)
  movslq %edi,%rax
  mov    %rax,-0x620(%rbp)
  movq   $0x0,-0x618(%rbp)
  mov    -0x610(%rbp),%r8
  mov    -0x608(%rbp),%r9
  mov    %r9,%rdx
  mov    -0x620(%rbp),%r10
  mov    -0x618(%rbp),%r11
  imul   %r10,%rdx
  mov    %r11,%rax
  imul   %r8,%rax
  lea    (%rdx,%rax,1),%rcx
  mov    %r8,%rax
  mul    %r10
  add    %rdx,%rcx
  mov    %rcx,%rdx
  movslq %esi,%rdx
  movslq %edi,%rax
  imul   %rdx,%rax
  lea    0x0(,%rax,8),%rdx
  mov    $0x10,%eax
  sub    $0x1,%rax
  add    %rdx,%rax
  mov    $0x10,%edi
  mov    $0x0,%edx
  div    %rdi
  imul   $0x10,%rax,%rdx
  mov    %rdx,%rax
  and    $0xfffffffffffff000,%rax
  mov    %rsp,%rcx
  sub    %rax,%rcx
L334:
  cmp    %rcx,%rsp
  je     L1111
  sub    $0x1000,%rsp
  orq    $0x0,0xff8(%rsp)
  jmp    L334
L1111:
  mov    %rdx,%rax
  and    $0xfff,%eax
  sub    %rax,%rsp
  mov    %rdx,%rax
  and    $0xfff,%eax
  test   %rax,%rax
  je     L97
  mov    %rdx,%rax
  and    $0xfff,%eax
  sub    $0x8,%rax
  add    %rsp,%rax
  orq    $0x0,(%rax)
L97:
  mov    %rsp,%rax
  add    $0x7,%rax
  shr    $0x3,%rax
  shl    $0x3,%rax
  mov    %rax,-0x198(%rbp)
  mov    -0x31c(%rbp),%esi
  mov    -0x314(%rbp),%edi
  movslq %esi,%rax
  sub    $0x1,%rax
  mov    %rax,-0x190(%rbp)
  movslq %esi,%rax
  mov    %rax,-0x800(%rbp)
  movq   $0x0,-0x7f8(%rbp)
  movslq %esi,%rax
  lea    0x0(,%rax,8),%r15
  movslq %edi,%rax
  sub    $0x1,%rax
  mov    %rax,-0x188(%rbp)
  movslq %esi,%rax
  mov    %rax,-0x630(%rbp)
  movq   $0x0,-0x628(%rbp)
  movslq %edi,%rax
  mov    %rax,-0x640(%rbp)
  movq   $0x0,-0x638(%rbp)
  mov    -0x630(%rbp),%r10
  mov    -0x628(%rbp),%r11
  mov    %r11,%rdx
  mov    -0x640(%rbp),%r8
  mov    -0x638(%rbp),%r9
  imul   %r8,%rdx
  mov    %r9,%rax
  imul   %r10,%rax
  lea    (%rdx,%rax,1),%rcx
  mov    %r10,%rax
  mul    %r8
  add    %rdx,%rcx
  mov    %rcx,%rdx
  movslq %esi,%rax
  mov    %rax,-0x650(%rbp)
  movq   $0x0,-0x648(%rbp)
  movslq %edi,%rax
  mov    %rax,-0x660(%rbp)
  movq   $0x0,-0x658(%rbp)
  mov    -0x650(%rbp),%r10
  mov    -0x648(%rbp),%r11
  mov    %r11,%rdx
  mov    -0x660(%rbp),%r8
  mov    -0x658(%rbp),%r9
  imul   %r8,%rdx
  mov    %r9,%rax
  imul   %r10,%rax
  lea    (%rdx,%rax,1),%rcx
  mov    %r10,%rax
  mul    %r8
  add    %rdx,%rcx
  mov    %rcx,%rdx
  movslq %esi,%rdx
  movslq %edi,%rax
  imul   %rdx,%rax
  lea    0x0(,%rax,8),%rdx
  mov    $0x10,%eax
  sub    $0x1,%rax
  add    %rdx,%rax
  mov    $0x10,%edi
  mov    $0x0,%edx
  div    %rdi
  imul   $0x10,%rax,%rdx
  mov    %rdx,%rax
  and    $0xfffffffffffff000,%rax
  mov    %rsp,%rcx
  sub    %rax,%rcx
L929:
  cmp    %rcx,%rsp
  je     L831
  sub    $0x1000,%rsp
  orq    $0x0,0xff8(%rsp)
  jmp    L929
L831:
  mov    %rdx,%rax
  and    $0xfff,%eax
  sub    %rax,%rsp
  mov    %rdx,%rax
  and    $0xfff,%eax
  test   %rax,%rax
  je     L652
  mov    %rdx,%rax
  and    $0xfff,%eax
  sub    $0x8,%rax
  add    %rsp,%rax
  orq    $0x0,(%rax)
L652:
  mov    %rsp,%rax
  add    $0x7,%rax
  shr    $0x3,%rax
  shl    $0x3,%rax
  mov    %rax,-0x180(%rbp)
  mov    -0x31c(%rbp),%esi
  mov    -0x314(%rbp),%edi
  movslq %esi,%rax
  sub    $0x1,%rax
  mov    %rax,-0x178(%rbp)
  movslq %esi,%rax
  mov    %rax,-0x810(%rbp)
  movq   $0x0,-0x808(%rbp)
  movslq %esi,%rax
  lea    0x0(,%rax,8),%r14
  movslq %edi,%rax
  sub    $0x1,%rax
  mov    %rax,-0x170(%rbp)
  movslq %esi,%rax
  mov    %rax,-0x670(%rbp)
  movq   $0x0,-0x668(%rbp)
  movslq %edi,%rax
  mov    %rax,-0x680(%rbp)
  movq   $0x0,-0x678(%rbp)
  mov    -0x670(%rbp),%r10
  mov    -0x668(%rbp),%r11
  mov    %r11,%rdx
  mov    -0x680(%rbp),%r8
  mov    -0x678(%rbp),%r9
  imul   %r8,%rdx
  mov    %r9,%rax
  imul   %r10,%rax
  lea    (%rdx,%rax,1),%rcx
  mov    %r10,%rax
  mul    %r8
  add    %rdx,%rcx
  mov    %rcx,%rdx
  movslq %esi,%rax
  mov    %rax,-0x690(%rbp)
  movq   $0x0,-0x688(%rbp)
  movslq %edi,%rax
  mov    %rax,-0x6a0(%rbp)
  movq   $0x0,-0x698(%rbp)
  mov    -0x690(%rbp),%r10
  mov    -0x688(%rbp),%r11
  mov    %r11,%rdx
  mov    -0x6a0(%rbp),%r8
  mov    -0x698(%rbp),%r9
  imul   %r8,%rdx
  mov    %r9,%rax
  imul   %r10,%rax
  lea    (%rdx,%rax,1),%rcx
  mov    %r10,%rax
  mul    %r8
  add    %rdx,%rcx
  mov    %rcx,%rdx
  movslq %esi,%rdx
  movslq %edi,%rax
  imul   %rdx,%rax
  lea    0x0(,%rax,8),%rdx
  mov    $0x10,%eax
  sub    $0x1,%rax
  add    %rdx,%rax
  mov    $0x10,%edi
  mov    $0x0,%edx
  div    %rdi
  imul   $0x10,%rax,%rdx
  mov    %rdx,%rax
  and    $0xfffffffffffff000,%rax
  mov    %rsp,%rcx
  sub    %rax,%rcx
L270:
  cmp    %rcx,%rsp
  je     L872
  sub    $0x1000,%rsp
  orq    $0x0,0xff8(%rsp)
  jmp    L270
L872:
  mov    %rdx,%rax
  and    $0xfff,%eax
  sub    %rax,%rsp
  mov    %rdx,%rax
  and    $0xfff,%eax
  test   %rax,%rax
  je     L460
  mov    %rdx,%rax
  and    $0xfff,%eax
  sub    $0x8,%rax
  add    %rsp,%rax
  orq    $0x0,(%rax)
L460:
  mov    %rsp,%rax
  add    $0x7,%rax
  shr    $0x3,%rax
  shl    $0x3,%rax
  mov    %rax,-0x168(%rbp)
  mov    -0x31c(%rbp),%esi
  mov    -0x314(%rbp),%edi
  movslq %esi,%rax
  sub    $0x1,%rax
  mov    %rax,-0x160(%rbp)
  movslq %esi,%rax
  mov    %rax,-0x820(%rbp)
  movq   $0x0,-0x818(%rbp)
  movslq %esi,%rax
  shl    $0x3,%rax
  mov    %rax,-0x370(%rbp)
  movslq %edi,%rax
  sub    $0x1,%rax
  mov    %rax,-0x158(%rbp)
  movslq %esi,%rax
  mov    %rax,-0x6b0(%rbp)
  movq   $0x0,-0x6a8(%rbp)
  movslq %edi,%rax
  mov    %rax,-0x6c0(%rbp)
  movq   $0x0,-0x6b8(%rbp)
  mov    -0x6b0(%rbp),%r10
  mov    -0x6a8(%rbp),%r11
  mov    %r11,%rdx
  mov    -0x6c0(%rbp),%r8
  mov    -0x6b8(%rbp),%r9
  imul   %r8,%rdx
  mov    %r9,%rax
  imul   %r10,%rax
  lea    (%rdx,%rax,1),%rcx
  mov    %r10,%rax
  mul    %r8
  add    %rdx,%rcx
  mov    %rcx,%rdx
  movslq %esi,%rax
  mov    %rax,-0x6d0(%rbp)
  movq   $0x0,-0x6c8(%rbp)
  movslq %edi,%rax
  mov    %rax,-0x6e0(%rbp)
  movq   $0x0,-0x6d8(%rbp)
  mov    -0x6d0(%rbp),%r10
  mov    -0x6c8(%rbp),%r11
  mov    %r11,%rdx
  mov    -0x6e0(%rbp),%r8
  mov    -0x6d8(%rbp),%r9
  imul   %r8,%rdx
  mov    %r9,%rax
  imul   %r10,%rax
  lea    (%rdx,%rax,1),%rcx
  mov    %r10,%rax
  mul    %r8
  add    %rdx,%rcx
  mov    %rcx,%rdx
  movslq %esi,%rdx
  movslq %edi,%rax
  imul   %rdx,%rax
  lea    0x0(,%rax,8),%rdx
  mov    $0x10,%eax
  sub    $0x1,%rax
  add    %rdx,%rax
  mov    $0x10,%edi
  mov    $0x0,%edx
  div    %rdi
  imul   $0x10,%rax,%rdx
  mov    %rdx,%rax
  and    $0xfffffffffffff000,%rax
  mov    %rsp,%rcx
  sub    %rax,%rcx
L236:
  cmp    %rcx,%rsp
  je     L911
  sub    $0x1000,%rsp
  orq    $0x0,0xff8(%rsp)
  jmp    L236
L911:
  mov    %rdx,%rax
  and    $0xfff,%eax
  sub    %rax,%rsp
  mov    %rdx,%rax
  and    $0xfff,%eax
  test   %rax,%rax
  je     L146
  mov    %rdx,%rax
  and    $0xfff,%eax
  sub    $0x8,%rax
  add    %rsp,%rax
  orq    $0x0,(%rax)
L146:
  mov    %rsp,%rax
  add    $0x7,%rax
  shr    $0x3,%rax
  shl    $0x3,%rax
  mov    %rax,-0x150(%rbp)
  mov    -0x31c(%rbp),%esi
  mov    -0x314(%rbp),%edi
  movslq %esi,%rax
  sub    $0x1,%rax
  mov    %rax,-0x148(%rbp)
  movslq %esi,%rax
  mov    %rax,-0x830(%rbp)
  movq   $0x0,-0x828(%rbp)
  movslq %esi,%rax
  shl    $0x3,%rax
  mov    %rax,-0x380(%rbp)
  movslq %edi,%rax
  sub    $0x1,%rax
  mov    %rax,-0x140(%rbp)
  movslq %esi,%rax
  mov    %rax,-0x6f0(%rbp)
  movq   $0x0,-0x6e8(%rbp)
  movslq %edi,%rax
  mov    %rax,-0x700(%rbp)
  movq   $0x0,-0x6f8(%rbp)
  mov    -0x6f0(%rbp),%r10
  mov    -0x6e8(%rbp),%r11
  mov    %r11,%rdx
  mov    -0x700(%rbp),%r8
  mov    -0x6f8(%rbp),%r9
  imul   %r8,%rdx
  mov    %r9,%rax
  imul   %r10,%rax
  lea    (%rdx,%rax,1),%rcx
  mov    %r10,%rax
  mul    %r8
  add    %rdx,%rcx
  mov    %rcx,%rdx
  movslq %esi,%rax
  mov    %rax,-0x710(%rbp)
  movq   $0x0,-0x708(%rbp)
  movslq %edi,%rax
  mov    %rax,-0x720(%rbp)
  movq   $0x0,-0x718(%rbp)
  mov    -0x710(%rbp),%r10
  mov    -0x708(%rbp),%r11
  mov    %r11,%rdx
  mov    -0x720(%rbp),%r8
  mov    -0x718(%rbp),%r9
  imul   %r8,%rdx
  mov    %r9,%rax
  imul   %r10,%rax
  lea    (%rdx,%rax,1),%rcx
  mov    %r10,%rax
  mul    %r8
  add    %rdx,%rcx
  mov    %rcx,%rdx
  movslq %esi,%rdx
  movslq %edi,%rax
  imul   %rdx,%rax
  lea    0x0(,%rax,8),%rdx
  mov    $0x10,%eax
  sub    $0x1,%rax
  add    %rdx,%rax
  mov    $0x10,%edi
  mov    $0x0,%edx
  div    %rdi
  imul   $0x10,%rax,%rdx
  mov    %rdx,%rax
  and    $0xfffffffffffff000,%rax
  mov    %rsp,%rcx
  sub    %rax,%rcx
L49:
  cmp    %rcx,%rsp
  je     L588
  sub    $0x1000,%rsp
  orq    $0x0,0xff8(%rsp)
  jmp    L49
L588:
  mov    %rdx,%rax
  and    $0xfff,%eax
  sub    %rax,%rsp
  mov    %rdx,%rax
  and    $0xfff,%eax
  test   %rax,%rax
  je     L188
  mov    %rdx,%rax
  and    $0xfff,%eax
  sub    $0x8,%rax
  add    %rsp,%rax
  orq    $0x0,(%rax)
L188:
  mov    %rsp,%rax
  add    $0x7,%rax
  shr    $0x3,%rax
  shl    $0x3,%rax
  mov    %rax,-0x138(%rbp)
  pxor   %xmm0,%xmm0
  movsd  %xmm0,-0x130(%rbp)
  movsd  D50(%rip),%xmm0
  movsd  %xmm0,-0x128(%rbp)
  movsd  D77(%rip),%xmm0
  movsd  %xmm0,-0x120(%rbp)
  movl   $0x1,-0x344(%rbp)
  jmp    L342
L25:
  movl   $0x1,-0x340(%rbp)
  jmp    L500
L1048:
  mov    %rbx,%rcx
  shr    $0x3,%rcx
  mov    -0x250(%rbp),%rsi
  mov    -0x344(%rbp),%eax
  movslq %eax,%rdx
  mov    -0x340(%rbp),%eax
  cltq
  imul   %rcx,%rax
  add    %rdx,%rax
  movsd  D69(%rip),%xmm0
  movsd  %xmm0,(%rsi,%rax,8)
  mov    %r12,%rcx
  shr    $0x3,%rcx
  mov    -0x238(%rbp),%rsi
  mov    -0x344(%rbp),%eax
  movslq %eax,%rdx
  mov    -0x340(%rbp),%eax
  cltq
  imul   %rcx,%rax
  add    %rdx,%rax
  movsd  D69(%rip),%xmm0
  movsd  %xmm0,(%rsi,%rax,8)
  mov    -0x358(%rbp),%rcx
  shr    $0x3,%rcx
  mov    -0x2b0(%rbp),%rsi
  mov    -0x344(%rbp),%eax
  movslq %eax,%rdx
  mov    -0x340(%rbp),%eax
  cltq
  imul   %rcx,%rax
  add    %rdx,%rax
  movsd  D69(%rip),%xmm0
  movsd  %xmm0,(%rsi,%rax,8)
  mov    %r13,%rcx
  shr    $0x3,%rcx
  mov    -0x298(%rbp),%rsi
  mov    -0x344(%rbp),%eax
  movslq %eax,%rdx
  mov    -0x340(%rbp),%eax
  cltq
  imul   %rcx,%rax
  add    %rdx,%rax
  movsd  D69(%rip),%xmm0
  movsd  %xmm0,(%rsi,%rax,8)
  addl   $0x1,-0x340(%rbp)
L500:
  mov    -0x318(%rbp),%eax
  add    $0x4,%eax
  cmp    %eax,-0x340(%rbp)
  jle    L1048
  addl   $0x1,-0x344(%rbp)
L342:
  mov    -0x320(%rbp),%eax
  add    $0x4,%eax
  cmp    %eax,-0x344(%rbp)
  jle    L25
  pxor   %xmm0,%xmm0
  movsd  %xmm0,-0x308(%rbp)
  jmp    L927
L1127:
  pxor   %xmm0,%xmm0
  movsd  %xmm0,-0x2f0(%rbp)
  movsd  -0x128(%rbp),%xmm0
  movsd  %xmm0,-0x118(%rbp)
  pxor   %xmm0,%xmm0
  movsd  %xmm0,-0x110(%rbp)
  movl   $0x1,-0x340(%rbp)
  jmp    L1059
L1145:
  mov    -0x340(%rbp),%eax
  sub    $0x1,%eax
  pxor   %xmm0,%xmm0
  cvtsi2sd %eax,%xmm0
  mulsd  -0x2d0(%rbp),%xmm0
  subsd  -0x2e0(%rbp),%xmm0
  movsd  %xmm0,-0x108(%rbp)
  mov    -0x1f8(%rbp),%rdx
  mov    -0x340(%rbp),%eax
  cltq
  movsd  -0x108(%rbp),%xmm0
  movsd  %xmm0,(%rdx,%rax,8)
  movl   $0x1,-0x344(%rbp)
  jmp    L538
L1167:
  mov    -0x344(%rbp),%eax
  sub    $0x1,%eax
  pxor   %xmm0,%xmm0
  cvtsi2sd %eax,%xmm0
  mulsd  -0x2d8(%rbp),%xmm0
  subsd  -0x2e8(%rbp),%xmm0
  movsd  %xmm0,-0x100(%rbp)
  movsd  -0x108(%rbp),%xmm0
  movapd %xmm0,%xmm1
  mulsd  %xmm0,%xmm1
  movsd  -0x100(%rbp),%xmm0
  mulsd  %xmm0,%xmm0
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0xf8(%rbp)
  mov    -0xf8(%rbp),%rax
  movq   %rax,%xmm0
  call   <sqrt@plt>
  movq   %xmm0,%rax
  mov    %rax,-0xf0(%rbp)
  pxor   %xmm0,%xmm0
  ucomisd -0xf0(%rbp),%xmm0
  jp     L903
  pxor   %xmm0,%xmm0
  ucomisd -0xf0(%rbp),%xmm0
  je     L895
L903:
  movsd  -0x108(%rbp),%xmm0
  divsd  -0xf0(%rbp),%xmm0
  movsd  %xmm0,-0x300(%rbp)
  movsd  -0x100(%rbp),%xmm0
  divsd  -0xf0(%rbp),%xmm0
  movsd  %xmm0,-0x2f8(%rbp)
  jmp    L658
L895:
  pxor   %xmm0,%xmm0
  movsd  %xmm0,-0x300(%rbp)
  pxor   %xmm0,%xmm0
  movsd  %xmm0,-0x2f8(%rbp)
L658:
  mov    -0x3c0(%rbp),%r9
  mov    %r9,%rsi
  shr    $0x3,%rsi
  mov    -0x208(%rbp),%rcx
  mov    -0x344(%rbp),%eax
  movslq %eax,%rdx
  mov    -0x340(%rbp),%eax
  cltq
  imul   %rsi,%rax
  add    %rdx,%rax
  pxor   %xmm0,%xmm0
  movsd  %xmm0,(%rcx,%rax,8)
  mov    -0x3b0(%rbp),%r10
  mov    %r10,%r8
  shr    $0x3,%r8
  mov    -0x208(%rbp),%rcx
  mov    -0x344(%rbp),%eax
  movslq %eax,%rdx
  mov    -0x340(%rbp),%eax
  cltq
  imul   %rsi,%rax
  add    %rdx,%rax
  movsd  (%rcx,%rax,8),%xmm0
  mov    -0x220(%rbp),%rcx
  mov    -0x344(%rbp),%eax
  movslq %eax,%rdx
  mov    -0x340(%rbp),%eax
  cltq
  imul   %r8,%rax
  add    %rdx,%rax
  movsd  %xmm0,(%rcx,%rax,8)
  mov    -0x3a0(%rbp),%r11
  mov    %r11,%rdi
  shr    $0x3,%rdi
  mov    -0x220(%rbp),%rcx
  mov    -0x344(%rbp),%eax
  movslq %eax,%rdx
  mov    -0x340(%rbp),%eax
  cltq
  imul   %r8,%rax
  add    %rdx,%rax
  movsd  (%rcx,%rax,8),%xmm0
  mov    -0x268(%rbp),%rcx
  mov    -0x344(%rbp),%eax
  movslq %eax,%rdx
  mov    -0x340(%rbp),%eax
  cltq
  imul   %rdi,%rax
  add    %rdx,%rax
  movsd  %xmm0,(%rcx,%rax,8)
  mov    -0x390(%rbp),%r8
  mov    %r8,%rsi
  shr    $0x3,%rsi
  mov    -0x268(%rbp),%rcx
  mov    -0x344(%rbp),%eax
  movslq %eax,%rdx
  mov    -0x340(%rbp),%eax
  cltq
  imul   %rdi,%rax
  add    %rdx,%rax
  movsd  (%rcx,%rax,8),%xmm0
  mov    -0x280(%rbp),%rcx
  mov    -0x344(%rbp),%eax
  movslq %eax,%rdx
  mov    -0x340(%rbp),%eax
  cltq
  imul   %rsi,%rax
  add    %rdx,%rax
  movsd  %xmm0,(%rcx,%rax,8)
  mov    %r8,%rdi
  mov    %rdi,%rsi
  shr    $0x3,%rsi
  mov    -0x280(%rbp),%rcx
  mov    -0x344(%rbp),%eax
  movslq %eax,%rdx
  mov    -0x340(%rbp),%eax
  cltq
  imul   %rsi,%rax
  add    %rdx,%rax
  movsd  (%rcx,%rax,8),%xmm1
  movsd  -0x120(%rbp),%xmm0
  movq   D56(%rip),%xmm2
  xorpd  %xmm2,%xmm0
  movapd %xmm0,%xmm2
  mulsd  -0xf8(%rbp),%xmm2
  mov    -0x358(%rbp),%r8
  mov    %r8,%rsi
  shr    $0x3,%rsi
  mov    -0x2b0(%rbp),%rcx
  mov    -0x344(%rbp),%eax
  movslq %eax,%rdx
  mov    -0x340(%rbp),%eax
  cltq
  imul   %rsi,%rax
  add    %rdx,%rax
  movsd  (%rcx,%rax,8),%xmm0
  mulsd  %xmm2,%xmm0
  shr    $0x3,%rdi
  mov    %rdi,%rsi
  addsd  %xmm1,%xmm0
  mov    -0x280(%rbp),%rcx
  mov    -0x344(%rbp),%eax
  movslq %eax,%rdx
  mov    -0x340(%rbp),%eax
  cltq
  imul   %rsi,%rax
  add    %rdx,%rax
  movsd  %xmm0,(%rcx,%rax,8)
  mov    %r11,%rsi
  shr    $0x3,%rsi
  mov    -0x268(%rbp),%rcx
  mov    -0x344(%rbp),%eax
  movslq %eax,%rdx
  mov    -0x340(%rbp),%eax
  cltq
  imul   %rsi,%rax
  add    %rdx,%rax
  movsd  (%rcx,%rax,8),%xmm2
  mov    %r8,%rsi
  shr    $0x3,%rsi
  mov    -0x2b0(%rbp),%rcx
  mov    -0x344(%rbp),%eax
  movslq %eax,%rdx
  mov    -0x340(%rbp),%eax
  cltq
  imul   %rsi,%rax
  add    %rdx,%rax
  movsd  (%rcx,%rax,8),%xmm0
  movsd  -0x120(%rbp),%xmm1
  movapd %xmm1,%xmm3
  mulsd  -0xf8(%rbp),%xmm3
  mov    %r13,%rsi
  shr    $0x3,%rsi
  mov    -0x298(%rbp),%rcx
  mov    -0x344(%rbp),%eax
  movslq %eax,%rdx
  mov    -0x340(%rbp),%eax
  cltq
  imul   %rsi,%rax
  add    %rdx,%rax
  movsd  (%rcx,%rax,8),%xmm1
  mulsd  %xmm3,%xmm1
  subsd  %xmm1,%xmm0
  shr    $0x3,%r11
  mov    %r11,%rsi
  addsd  %xmm2,%xmm0
  mov    -0x268(%rbp),%rcx
  mov    -0x344(%rbp),%eax
  movslq %eax,%rdx
  mov    -0x340(%rbp),%eax
  cltq
  imul   %rsi,%rax
  add    %rdx,%rax
  movsd  %xmm0,(%rcx,%rax,8)
  mov    %r10,%rsi
  shr    $0x3,%rsi
  mov    -0x220(%rbp),%rcx
  mov    -0x344(%rbp),%eax
  movslq %eax,%rdx
  mov    -0x340(%rbp),%eax
  cltq
  imul   %rsi,%rax
  add    %rdx,%rax
  movsd  (%rcx,%rax,8),%xmm2
  movsd  -0x300(%rbp),%xmm0
  addsd  %xmm0,%xmm0
  movapd %xmm0,%xmm1
  mulsd  -0x2f8(%rbp),%xmm1
  mov    %rbx,%rsi
  shr    $0x3,%rsi
  mov    -0x250(%rbp),%rcx
  mov    -0x344(%rbp),%eax
  movslq %eax,%rdx
  mov    -0x340(%rbp),%eax
  cltq
  imul   %rsi,%rax
  add    %rdx,%rax
  movsd  (%rcx,%rax,8),%xmm0
  movapd %xmm1,%xmm3
  mulsd  %xmm0,%xmm3
  movsd  -0x130(%rbp),%xmm0
  addsd  %xmm0,%xmm0
  movapd %xmm0,%xmm4
  mulsd  -0x300(%rbp),%xmm4
  mov    %rbx,%rsi
  shr    $0x3,%rsi
  mov    -0x250(%rbp),%rcx
  mov    -0x344(%rbp),%eax
  movslq %eax,%rdx
  mov    -0x340(%rbp),%eax
  cltq
  imul   %rsi,%rax
  add    %rdx,%rax
  movsd  (%rcx,%rax,8),%xmm0
  mulsd  -0x2f8(%rbp),%xmm0
  mov    %r12,%rsi
  shr    $0x3,%rsi
  mov    -0x238(%rbp),%rcx
  mov    -0x344(%rbp),%eax
  movslq %eax,%rdx
  mov    -0x340(%rbp),%eax
  cltq
  imul   %rsi,%rax
  add    %rdx,%rax
  movsd  (%rcx,%rax,8),%xmm1
  mulsd  -0x300(%rbp),%xmm1
  subsd  %xmm1,%xmm0
  mulsd  %xmm4,%xmm0
  addsd  %xmm0,%xmm3
  movapd %xmm3,%xmm1
  movsd  -0x130(%rbp),%xmm0
  movapd %xmm0,%xmm3
  addsd  %xmm0,%xmm3
  mov    %r12,%rsi
  shr    $0x3,%rsi
  mov    -0x238(%rbp),%rcx
  mov    -0x344(%rbp),%eax
  movslq %eax,%rdx
  mov    -0x340(%rbp),%eax
  cltq
  imul   %rsi,%rax
  add    %rdx,%rax
  movsd  (%rcx,%rax,8),%xmm0
  mulsd  %xmm3,%xmm0
  addsd  %xmm1,%xmm0
  movsd  -0x128(%rbp),%xmm1
  movapd %xmm1,%xmm3
  mulsd  -0xf8(%rbp),%xmm3
  mov    %rbx,%rsi
  shr    $0x3,%rsi
  mov    -0x250(%rbp),%rcx
  mov    -0x344(%rbp),%eax
  movslq %eax,%rdx
  mov    -0x340(%rbp),%eax
  cltq
  imul   %rsi,%rax
  add    %rdx,%rax
  movsd  (%rcx,%rax,8),%xmm1
  mulsd  %xmm3,%xmm1
  subsd  %xmm1,%xmm0
  shr    $0x3,%r10
  mov    %r10,%rsi
  addsd  %xmm2,%xmm0
  mov    -0x220(%rbp),%rcx
  mov    -0x344(%rbp),%eax
  movslq %eax,%rdx
  mov    -0x340(%rbp),%eax
  cltq
  imul   %rsi,%rax
  add    %rdx,%rax
  movsd  %xmm0,(%rcx,%rax,8)
  mov    %r9,%rsi
  shr    $0x3,%rsi
  mov    -0x208(%rbp),%rcx
  mov    -0x344(%rbp),%eax
  movslq %eax,%rdx
  mov    -0x340(%rbp),%eax
  cltq
  imul   %rsi,%rax
  add    %rdx,%rax
  movsd  (%rcx,%rax,8),%xmm2
  movsd  -0x2f8(%rbp),%xmm0
  addsd  %xmm0,%xmm0
  movapd %xmm0,%xmm1
  mulsd  -0x2f8(%rbp),%xmm1
  mov    %rbx,%rsi
  shr    $0x3,%rsi
  mov    -0x250(%rbp),%rcx
  mov    -0x344(%rbp),%eax
  movslq %eax,%rdx
  mov    -0x340(%rbp),%eax
  cltq
  imul   %rsi,%rax
  add    %rdx,%rax
  movsd  (%rcx,%rax,8),%xmm0
  mulsd  %xmm1,%xmm0
  mov    %rbx,%rsi
  shr    $0x3,%rsi
  mov    -0x250(%rbp),%rcx
  mov    -0x344(%rbp),%eax
  movslq %eax,%rdx
  mov    -0x340(%rbp),%eax
  cltq
  imul   %rsi,%rax
  add    %rdx,%rax
  movsd  (%rcx,%rax,8),%xmm1
  movapd %xmm0,%xmm3
  subsd  %xmm1,%xmm3
  movsd  -0x130(%rbp),%xmm0
  addsd  %xmm0,%xmm0
  movapd %xmm0,%xmm4
  mulsd  -0x2f8(%rbp),%xmm4
  mov    %rbx,%rsi
  shr    $0x3,%rsi
  mov    -0x250(%rbp),%rcx
  mov    -0x344(%rbp),%eax
  movslq %eax,%rdx
  mov    -0x340(%rbp),%eax
  cltq
  imul   %rsi,%rax
  add    %rdx,%rax
  movsd  (%rcx,%rax,8),%xmm0
  mulsd  -0x2f8(%rbp),%xmm0
  mov    %r12,%rsi
  shr    $0x3,%rsi
  mov    -0x238(%rbp),%rcx
  mov    -0x344(%rbp),%eax
  movslq %eax,%rdx
  mov    -0x340(%rbp),%eax
  cltq
  imul   %rsi,%rax
  add    %rdx,%rax
  movsd  (%rcx,%rax,8),%xmm1
  mulsd  -0x300(%rbp),%xmm1
  subsd  %xmm1,%xmm0
  mulsd  %xmm4,%xmm0
  addsd  %xmm0,%xmm3
  movapd %xmm3,%xmm1
  movsd  -0x130(%rbp),%xmm0
  movapd %xmm0,%xmm3
  addsd  %xmm0,%xmm3
  mov    %rbx,%rsi
  shr    $0x3,%rsi
  mov    -0x250(%rbp),%rcx
  mov    -0x344(%rbp),%eax
  movslq %eax,%rdx
  mov    -0x340(%rbp),%eax
  cltq
  imul   %rsi,%rax
  add    %rdx,%rax
  movsd  (%rcx,%rax,8),%xmm0
  mulsd  %xmm0,%xmm3
  subsd  %xmm3,%xmm1
  movapd %xmm1,%xmm0
  movsd  -0x128(%rbp),%xmm1
  movapd %xmm1,%xmm3
  mulsd  -0xf8(%rbp),%xmm3
  mov    %r12,%rsi
  shr    $0x3,%rsi
  mov    -0x238(%rbp),%rcx
  mov    -0x344(%rbp),%eax
  movslq %eax,%rdx
  mov    -0x340(%rbp),%eax
  cltq
  imul   %rsi,%rax
  add    %rdx,%rax
  movsd  (%rcx,%rax,8),%xmm1
  mulsd  %xmm3,%xmm1
  subsd  %xmm1,%xmm0
  shr    $0x3,%r9
  mov    %r9,%rsi
  addsd  %xmm2,%xmm0
  mov    -0x208(%rbp),%rcx
  mov    -0x344(%rbp),%eax
  movslq %eax,%rdx
  mov    -0x340(%rbp),%eax
  cltq
  imul   %rsi,%rax
  add    %rdx,%rax
  movsd  %xmm0,(%rcx,%rax,8)
  mov    -0x380(%rbp),%rsi
  shr    $0x3,%rsi
  mov    -0x138(%rbp),%rcx
  mov    -0x344(%rbp),%eax
  movslq %eax,%rdx
  mov    -0x340(%rbp),%eax
  cltq
  imul   %rsi,%rax
  add    %rdx,%rax
  pxor   %xmm0,%xmm0
  movsd  %xmm0,(%rcx,%rax,8)
  mov    -0x370(%rbp),%r8
  shr    $0x3,%r8
  mov    -0x138(%rbp),%rcx
  mov    -0x344(%rbp),%eax
  movslq %eax,%rdx
  mov    -0x340(%rbp),%eax
  cltq
  imul   %rsi,%rax
  add    %rdx,%rax
  movsd  (%rcx,%rax,8),%xmm0
  mov    -0x150(%rbp),%rcx
  mov    -0x344(%rbp),%eax
  movslq %eax,%rdx
  mov    -0x340(%rbp),%eax
  cltq
  imul   %r8,%rax
  add    %rdx,%rax
  movsd  %xmm0,(%rcx,%rax,8)
  mov    %r14,%rdi
  shr    $0x3,%rdi
  mov    -0x150(%rbp),%rcx
  mov    -0x344(%rbp),%eax
  movslq %eax,%rdx
  mov    -0x340(%rbp),%eax
  cltq
  imul   %r8,%rax
  add    %rdx,%rax
  movsd  (%rcx,%rax,8),%xmm0
  mov    -0x168(%rbp),%rcx
  mov    -0x344(%rbp),%eax
  movslq %eax,%rdx
  mov    -0x340(%rbp),%eax
  cltq
  imul   %rdi,%rax
  add    %rdx,%rax
  movsd  %xmm0,(%rcx,%rax,8)
  mov    %r15,%rsi
  shr    $0x3,%rsi
  mov    -0x168(%rbp),%rcx
  mov    -0x344(%rbp),%eax
  movslq %eax,%rdx
  mov    -0x340(%rbp),%eax
  cltq
  imul   %rdi,%rax
  add    %rdx,%rax
  movsd  (%rcx,%rax,8),%xmm0
  mov    -0x180(%rbp),%rcx
  mov    -0x344(%rbp),%eax
  movslq %eax,%rdx
  mov    -0x340(%rbp),%eax
  cltq
  imul   %rsi,%rax
  add    %rdx,%rax
  movsd  %xmm0,(%rcx,%rax,8)
  movl   $0x1,-0x338(%rbp)
  jmp    L1125
L763:
  mov    -0x338(%rbp),%eax
  sub    $0x1,%eax
  pxor   %xmm0,%xmm0
  cvtsi2sd %eax,%xmm0
  mulsd  -0x2d0(%rbp),%xmm0
  subsd  -0x2e0(%rbp),%xmm0
  movsd  %xmm0,-0xc8(%rbp)
  mov    -0x340(%rbp),%eax
  sub    -0x338(%rbp),%eax
  mov    %eax,%edx
  mov    -0x328(%rbp),%eax
  add    %edx,%eax
  add    $0x1,%eax
  mov    %eax,-0x310(%rbp)
  cmpl   $0x0,-0x310(%rbp)
  js     L532
  mov    -0x310(%rbp),%eax
  cmp    -0x318(%rbp),%eax
  jg     L85
  movl   $0x1,-0x33c(%rbp)
  jmp    L313
L979:
  mov    -0x33c(%rbp),%eax
  sub    $0x1,%eax
  pxor   %xmm0,%xmm0
  cvtsi2sd %eax,%xmm0
  mulsd  -0x2d8(%rbp),%xmm0
  subsd  -0x2e8(%rbp),%xmm0
  movsd  %xmm0,-0xc0(%rbp)
  mov    -0x344(%rbp),%eax
  sub    -0x33c(%rbp),%eax
  mov    %eax,%edx
  mov    -0x32c(%rbp),%eax
  add    %edx,%eax
  add    $0x1,%eax
  mov    %eax,-0x30c(%rbp)
  cmpl   $0x0,-0x30c(%rbp)
  js     L718
  mov    -0x30c(%rbp),%eax
  cmp    -0x320(%rbp),%eax
  jg     L411
  mov    %rbx,%rsi
  shr    $0x3,%rsi
  mov    -0x250(%rbp),%rcx
  mov    -0x33c(%rbp),%eax
  movslq %eax,%rdx
  mov    -0x338(%rbp),%eax
  cltq
  imul   %rsi,%rax
  add    %rdx,%rax
  movsd  (%rcx,%rax,8),%xmm0
  movapd %xmm0,%xmm1
  mulsd  -0x108(%rbp),%xmm1
  mov    %r12,%rsi
  shr    $0x3,%rsi
  mov    -0x238(%rbp),%rcx
  mov    -0x33c(%rbp),%eax
  movslq %eax,%rdx
  mov    -0x338(%rbp),%eax
  cltq
  imul   %rsi,%rax
  add    %rdx,%rax
  movsd  (%rcx,%rax,8),%xmm0
  mulsd  -0x100(%rbp),%xmm0
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0xb8(%rbp)
  mov    -0x358(%rbp),%rdi
  mov    %rdi,%rsi
  shr    $0x3,%rsi
  mov    -0x2b0(%rbp),%rcx
  mov    -0x30c(%rbp),%eax
  movslq %eax,%rdx
  mov    -0x310(%rbp),%eax
  cltq
  imul   %rsi,%rax
  add    %rdx,%rax
  movsd  (%rcx,%rax,8),%xmm0
  movapd %xmm0,%xmm1
  mulsd  -0x108(%rbp),%xmm1
  mov    %r13,%rsi
  shr    $0x3,%rsi
  mov    -0x298(%rbp),%rcx
  mov    -0x30c(%rbp),%eax
  movslq %eax,%rdx
  mov    -0x310(%rbp),%eax
  cltq
  imul   %rsi,%rax
  add    %rdx,%rax
  movsd  (%rcx,%rax,8),%xmm0
  mulsd  -0x100(%rbp),%xmm0
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0xb0(%rbp)
  mov    %rbx,%rsi
  shr    $0x3,%rsi
  mov    -0x250(%rbp),%rcx
  mov    -0x33c(%rbp),%eax
  movslq %eax,%rdx
  mov    -0x338(%rbp),%eax
  cltq
  imul   %rsi,%rax
  add    %rdx,%rax
  movsd  (%rcx,%rax,8),%xmm0
  movapd %xmm0,%xmm1
  mulsd  -0x108(%rbp),%xmm1
  mov    %r12,%rsi
  shr    $0x3,%rsi
  mov    -0x238(%rbp),%rcx
  mov    -0x33c(%rbp),%eax
  movslq %eax,%rdx
  mov    -0x338(%rbp),%eax
  cltq
  imul   %rsi,%rax
  add    %rdx,%rax
  movsd  (%rcx,%rax,8),%xmm0
  mulsd  -0x100(%rbp),%xmm0
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0xa8(%rbp)
  mov    %rdi,%rsi
  shr    $0x3,%rsi
  mov    -0x2b0(%rbp),%rcx
  mov    -0x30c(%rbp),%eax
  movslq %eax,%rdx
  mov    -0x310(%rbp),%eax
  cltq
  imul   %rsi,%rax
  add    %rdx,%rax
  movsd  (%rcx,%rax,8),%xmm0
  movapd %xmm0,%xmm1
  mulsd  -0xc8(%rbp),%xmm1
  mov    %r13,%rsi
  shr    $0x3,%rsi
  mov    -0x298(%rbp),%rcx
  mov    -0x30c(%rbp),%eax
  movslq %eax,%rdx
  mov    -0x310(%rbp),%eax
  cltq
  imul   %rsi,%rax
  add    %rdx,%rax
  movsd  (%rcx,%rax,8),%xmm0
  mulsd  -0xc0(%rbp),%xmm0
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0xa0(%rbp)
  mov    %rdi,%rsi
  shr    $0x3,%rsi
  mov    -0x2b0(%rbp),%rcx
  mov    -0x33c(%rbp),%eax
  movslq %eax,%rdx
  mov    -0x338(%rbp),%eax
  cltq
  imul   %rsi,%rax
  add    %rdx,%rax
  movsd  (%rcx,%rax,8),%xmm1
  mov    %rdi,%rsi
  shr    $0x3,%rsi
  mov    -0x2b0(%rbp),%rcx
  mov    -0x30c(%rbp),%eax
  movslq %eax,%rdx
  mov    -0x310(%rbp),%eax
  cltq
  imul   %rsi,%rax
  add    %rdx,%rax
  movsd  (%rcx,%rax,8),%xmm0
  mulsd  %xmm0,%xmm1
  mov    %r13,%rsi
  shr    $0x3,%rsi
  mov    -0x298(%rbp),%rcx
  mov    -0x33c(%rbp),%eax
  movslq %eax,%rdx
  mov    -0x338(%rbp),%eax
  cltq
  imul   %rsi,%rax
  add    %rdx,%rax
  movsd  (%rcx,%rax,8),%xmm2
  mov    %r13,%rsi
  shr    $0x3,%rsi
  mov    -0x298(%rbp),%rcx
  mov    -0x30c(%rbp),%eax
  movslq %eax,%rdx
  mov    -0x310(%rbp),%eax
  cltq
  imul   %rsi,%rax
  add    %rdx,%rax
  movsd  (%rcx,%rax,8),%xmm0
  mulsd  %xmm2,%xmm0
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0x98(%rbp)
  mov    %r15,%rsi
  shr    $0x3,%rsi
  mov    -0x180(%rbp),%rcx
  mov    -0x344(%rbp),%eax
  movslq %eax,%rdx
  mov    -0x340(%rbp),%eax
  cltq
  imul   %rsi,%rax
  add    %rdx,%rax
  movsd  (%rcx,%rax,8),%xmm2
  mov    %rbx,%rsi
  shr    $0x3,%rsi
  mov    -0x250(%rbp),%rcx
  mov    -0x30c(%rbp),%eax
  movslq %eax,%rdx
  mov    -0x310(%rbp),%eax
  cltq
  imul   %rsi,%rax
  add    %rdx,%rax
  movsd  (%rcx,%rax,8),%xmm0
  movapd %xmm0,%xmm1
  mulsd  -0xb8(%rbp),%xmm1
  mov    %rdi,%rsi
  shr    $0x3,%rsi
  mov    -0x2b0(%rbp),%rcx
  mov    -0x33c(%rbp),%eax
  movslq %eax,%rdx
  mov    -0x338(%rbp),%eax
  cltq
  imul   %rsi,%rax
  add    %rdx,%rax
  movsd  (%rcx,%rax,8),%xmm0
  mulsd  -0xa0(%rbp),%xmm0
  addsd  %xmm1,%xmm0
  movsd  -0xc8(%rbp),%xmm1
  mulsd  -0x98(%rbp),%xmm1
  subsd  %xmm1,%xmm0
  mov    %r15,%rsi
  shr    $0x3,%rsi
  addsd  %xmm2,%xmm0
  mov    -0x180(%rbp),%rcx
  mov    -0x344(%rbp),%eax
  movslq %eax,%rdx
  mov    -0x340(%rbp),%eax
  cltq
  imul   %rsi,%rax
  add    %rdx,%rax
  movsd  %xmm0,(%rcx,%rax,8)
  mov    %r14,%rsi
  shr    $0x3,%rsi
  mov    -0x168(%rbp),%rcx
  mov    -0x344(%rbp),%eax
  movslq %eax,%rdx
  mov    -0x340(%rbp),%eax
  cltq
  imul   %rsi,%rax
  add    %rdx,%rax
  movsd  (%rcx,%rax,8),%xmm2
  mov    %r12,%rsi
  shr    $0x3,%rsi
  mov    -0x238(%rbp),%rcx
  mov    -0x30c(%rbp),%eax
  movslq %eax,%rdx
  mov    -0x310(%rbp),%eax
  cltq
  imul   %rsi,%rax
  add    %rdx,%rax
  movsd  (%rcx,%rax,8),%xmm0
  movapd %xmm0,%xmm1
  mulsd  -0xb8(%rbp),%xmm1
  mov    %r13,%rsi
  shr    $0x3,%rsi
  mov    -0x298(%rbp),%rcx
  mov    -0x33c(%rbp),%eax
  movslq %eax,%rdx
  mov    -0x338(%rbp),%eax
  cltq
  imul   %rsi,%rax
  add    %rdx,%rax
  movsd  (%rcx,%rax,8),%xmm0
  mulsd  -0xa0(%rbp),%xmm0
  addsd  %xmm1,%xmm0
  movsd  -0xc0(%rbp),%xmm1
  mulsd  -0x98(%rbp),%xmm1
  subsd  %xmm1,%xmm0
  mov    %r14,%rsi
  shr    $0x3,%rsi
  addsd  %xmm2,%xmm0
  mov    -0x168(%rbp),%rcx
  mov    -0x344(%rbp),%eax
  movslq %eax,%rdx
  mov    -0x340(%rbp),%eax
  cltq
  imul   %rsi,%rax
  add    %rdx,%rax
  movsd  %xmm0,(%rcx,%rax,8)
  mov    -0x370(%rbp),%r9
  mov    %r9,%rsi
  shr    $0x3,%rsi
  mov    -0x150(%rbp),%rcx
  mov    -0x344(%rbp),%eax
  movslq %eax,%rdx
  mov    -0x340(%rbp),%eax
  cltq
  imul   %rsi,%rax
  add    %rdx,%rax
  movsd  (%rcx,%rax,8),%xmm1
  mov    %rbx,%rsi
  shr    $0x3,%rsi
  mov    -0x250(%rbp),%rcx
  mov    -0x30c(%rbp),%eax
  movslq %eax,%rdx
  mov    -0x310(%rbp),%eax
  cltq
  imul   %rsi,%rax
  add    %rdx,%rax
  movsd  (%rcx,%rax,8),%xmm0
  movq   D56(%rip),%xmm2
  xorpd  %xmm2,%xmm0
  movapd %xmm0,%xmm2
  mulsd  -0xb0(%rbp),%xmm2
  shr    $0x3,%rdi
  mov    %rdi,%rsi
  mov    -0x2b0(%rbp),%rcx
  mov    -0x30c(%rbp),%eax
  movslq %eax,%rdx
  mov    -0x310(%rbp),%eax
  cltq
  imul   %rsi,%rax
  add    %rdx,%rax
  movsd  (%rcx,%rax,8),%xmm0
  mulsd  -0xa8(%rbp),%xmm0
  addsd  %xmm2,%xmm0
  mov    %r9,%rsi
  shr    $0x3,%rsi
  addsd  %xmm1,%xmm0
  mov    -0x150(%rbp),%rcx
  mov    -0x344(%rbp),%eax
  movslq %eax,%rdx
  mov    -0x340(%rbp),%eax
  cltq
  imul   %rsi,%rax
  add    %rdx,%rax
  movsd  %xmm0,(%rcx,%rax,8)
  mov    -0x380(%rbp),%rdi
  mov    %rdi,%rsi
  shr    $0x3,%rsi
  mov    -0x138(%rbp),%rcx
  mov    -0x344(%rbp),%eax
  movslq %eax,%rdx
  mov    -0x340(%rbp),%eax
  cltq
  imul   %rsi,%rax
  add    %rdx,%rax
  movsd  (%rcx,%rax,8),%xmm1
  mov    %r12,%rsi
  shr    $0x3,%rsi
  mov    -0x238(%rbp),%rcx
  mov    -0x30c(%rbp),%eax
  movslq %eax,%rdx
  mov    -0x310(%rbp),%eax
  cltq
  imul   %rsi,%rax
  add    %rdx,%rax
  movsd  (%rcx,%rax,8),%xmm0
  movq   D56(%rip),%xmm2
  xorpd  %xmm2,%xmm0
  movapd %xmm0,%xmm2
  mulsd  -0xb0(%rbp),%xmm2
  mov    %r13,%rsi
  shr    $0x3,%rsi
  mov    -0x298(%rbp),%rcx
  mov    -0x30c(%rbp),%eax
  movslq %eax,%rdx
  mov    -0x310(%rbp),%eax
  cltq
  imul   %rsi,%rax
  add    %rdx,%rax
  movsd  (%rcx,%rax,8),%xmm0
  mulsd  -0xa8(%rbp),%xmm0
  addsd  %xmm2,%xmm0
  shr    $0x3,%rdi
  mov    %rdi,%rsi
  addsd  %xmm1,%xmm0
  mov    -0x138(%rbp),%rcx
  mov    -0x344(%rbp),%eax
  movslq %eax,%rdx
  mov    -0x340(%rbp),%eax
  cltq
  imul   %rsi,%rax
  add    %rdx,%rax
  movsd  %xmm0,(%rcx,%rax,8)
  jmp    L826
L532:
  nop
  jmp    L826
L85:
  nop
  jmp    L826
L718:
  nop
  jmp    L826
L411:
  nop
L826:
  addl   $0x1,-0x33c(%rbp)
L313:
  mov    -0x33c(%rbp),%eax
  cmp    -0x320(%rbp),%eax
  jle    L979
  addl   $0x1,-0x338(%rbp)
L1125:
  mov    -0x338(%rbp),%eax
  cmp    -0x318(%rbp),%eax
  jle    L763
  pxor   %xmm0,%xmm0
  ucomisd -0xf0(%rbp),%xmm0
  jp     L194
  pxor   %xmm0,%xmm0
  ucomisd -0xf0(%rbp),%xmm0
  je     L339
L194:
  mov    %r15,%rsi
  shr    $0x3,%rsi
  mov    -0x180(%rbp),%rcx
  mov    -0x31c(%rbp),%eax
  movslq %eax,%rdx
  mov    -0x314(%rbp),%eax
  cltq
  imul   %rsi,%rax
  add    %rdx,%rax
  movsd  (%rcx,%rax,8),%xmm0
  movapd %xmm0,%xmm1
  mulsd  -0x300(%rbp),%xmm1
  mov    %r14,%rsi
  shr    $0x3,%rsi
  mov    -0x168(%rbp),%rcx
  mov    -0x31c(%rbp),%eax
  movslq %eax,%rdx
  mov    -0x314(%rbp),%eax
  cltq
  imul   %rsi,%rax
  add    %rdx,%rax
  movsd  (%rcx,%rax,8),%xmm0
  mulsd  -0x2f8(%rbp),%xmm0
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0xe8(%rbp)
  mov    %r15,%rsi
  shr    $0x3,%rsi
  movsd  -0x300(%rbp),%xmm0
  mulsd  -0xe8(%rbp),%xmm0
  mov    -0x180(%rbp),%rcx
  mov    -0x31c(%rbp),%eax
  movslq %eax,%rdx
  mov    -0x314(%rbp),%eax
  cltq
  imul   %rsi,%rax
  add    %rdx,%rax
  movsd  %xmm0,(%rcx,%rax,8)
  mov    %r14,%rsi
  shr    $0x3,%rsi
  movsd  -0x2f8(%rbp),%xmm0
  mulsd  -0xe8(%rbp),%xmm0
  mov    -0x168(%rbp),%rcx
  mov    -0x31c(%rbp),%eax
  movslq %eax,%rdx
  mov    -0x314(%rbp),%eax
  cltq
  imul   %rsi,%rax
  add    %rdx,%rax
  movsd  %xmm0,(%rcx,%rax,8)
L339:
  mov    %rbx,%rsi
  shr    $0x3,%rsi
  mov    -0x250(%rbp),%rcx
  mov    -0x344(%rbp),%eax
  movslq %eax,%rdx
  mov    -0x340(%rbp),%eax
  cltq
  imul   %rsi,%rax
  add    %rdx,%rax
  movsd  (%rcx,%rax,8),%xmm1
  mov    -0x3b0(%rbp),%rsi
  shr    $0x3,%rsi
  mov    -0x220(%rbp),%rcx
  mov    -0x344(%rbp),%eax
  movslq %eax,%rdx
  mov    -0x340(%rbp),%eax
  cltq
  imul   %rsi,%rax
  add    %rdx,%rax
  movsd  (%rcx,%rax,8),%xmm2
  mov    %r15,%rsi
  shr    $0x3,%rsi
  mov    -0x180(%rbp),%rcx
  mov    -0x344(%rbp),%eax
  movslq %eax,%rdx
  mov    -0x340(%rbp),%eax
  cltq
  imul   %rsi,%rax
  add    %rdx,%rax
  movsd  (%rcx,%rax,8),%xmm0
  addsd  %xmm2,%xmm0
  mulsd  -0x2c8(%rbp),%xmm0
  mov    %rbx,%rsi
  shr    $0x3,%rsi
  addsd  %xmm1,%xmm0
  mov    -0x250(%rbp),%rcx
  mov    -0x344(%rbp),%eax
  movslq %eax,%rdx
  mov    -0x340(%rbp),%eax
  cltq
  imul   %rsi,%rax
  add    %rdx,%rax
  movsd  %xmm0,(%rcx,%rax,8)
  mov    %r12,%rsi
  shr    $0x3,%rsi
  mov    -0x238(%rbp),%rcx
  mov    -0x344(%rbp),%eax
  movslq %eax,%rdx
  mov    -0x340(%rbp),%eax
  cltq
  imul   %rsi,%rax
  add    %rdx,%rax
  movsd  (%rcx,%rax,8),%xmm1
  mov    -0x3c0(%rbp),%rsi
  shr    $0x3,%rsi
  mov    -0x208(%rbp),%rcx
  mov    -0x344(%rbp),%eax
  movslq %eax,%rdx
  mov    -0x340(%rbp),%eax
  cltq
  imul   %rsi,%rax
  add    %rdx,%rax
  movsd  (%rcx,%rax,8),%xmm2
  mov    %r14,%rsi
  shr    $0x3,%rsi
  mov    -0x168(%rbp),%rcx
  mov    -0x344(%rbp),%eax
  movslq %eax,%rdx
  mov    -0x340(%rbp),%eax
  cltq
  imul   %rsi,%rax
  add    %rdx,%rax
  movsd  (%rcx,%rax,8),%xmm0
  addsd  %xmm2,%xmm0
  mulsd  -0x2c8(%rbp),%xmm0
  mov    %r12,%rsi
  shr    $0x3,%rsi
  addsd  %xmm1,%xmm0
  mov    -0x238(%rbp),%rcx
  mov    -0x344(%rbp),%eax
  movslq %eax,%rdx
  mov    -0x340(%rbp),%eax
  cltq
  imul   %rsi,%rax
  add    %rdx,%rax
  movsd  %xmm0,(%rcx,%rax,8)
  mov    -0x358(%rbp),%rdi
  mov    %rdi,%rsi
  shr    $0x3,%rsi
  mov    -0x2b0(%rbp),%rcx
  mov    -0x344(%rbp),%eax
  movslq %eax,%rdx
  mov    -0x340(%rbp),%eax
  cltq
  imul   %rsi,%rax
  add    %rdx,%rax
  movsd  (%rcx,%rax,8),%xmm1
  mov    -0x390(%rbp),%rsi
  shr    $0x3,%rsi
  mov    -0x280(%rbp),%rcx
  mov    -0x344(%rbp),%eax
  movslq %eax,%rdx
  mov    -0x340(%rbp),%eax
  cltq
  imul   %rsi,%rax
  add    %rdx,%rax
  movsd  (%rcx,%rax,8),%xmm2
  mov    -0x370(%rbp),%rsi
  shr    $0x3,%rsi
  mov    -0x150(%rbp),%rcx
  mov    -0x344(%rbp),%eax
  movslq %eax,%rdx
  mov    -0x340(%rbp),%eax
  cltq
  imul   %rsi,%rax
  add    %rdx,%rax
  movsd  (%rcx,%rax,8),%xmm0
  addsd  %xmm2,%xmm0
  mulsd  -0x2c8(%rbp),%xmm0
  mov    %rdi,%rsi
  shr    $0x3,%rsi
  addsd  %xmm1,%xmm0
  mov    -0x2b0(%rbp),%rcx
  mov    -0x344(%rbp),%eax
  movslq %eax,%rdx
  mov    -0x340(%rbp),%eax
  cltq
  imul   %rsi,%rax
  add    %rdx,%rax
  movsd  %xmm0,(%rcx,%rax,8)
  mov    %r13,%rsi
  shr    $0x3,%rsi
  mov    -0x298(%rbp),%rcx
  mov    -0x344(%rbp),%eax
  movslq %eax,%rdx
  mov    -0x340(%rbp),%eax
  cltq
  imul   %rsi,%rax
  add    %rdx,%rax
  movsd  (%rcx,%rax,8),%xmm1
  mov    -0x3a0(%rbp),%rsi
  shr    $0x3,%rsi
  mov    -0x268(%rbp),%rcx
  mov    -0x344(%rbp),%eax
  movslq %eax,%rdx
  mov    -0x340(%rbp),%eax
  cltq
  imul   %rsi,%rax
  add    %rdx,%rax
  movsd  (%rcx,%rax,8),%xmm2
  mov    -0x380(%rbp),%rsi
  shr    $0x3,%rsi
  mov    -0x138(%rbp),%rcx
  mov    -0x344(%rbp),%eax
  movslq %eax,%rdx
  mov    -0x340(%rbp),%eax
  cltq
  imul   %rsi,%rax
  add    %rdx,%rax
  movsd  (%rcx,%rax,8),%xmm0
  addsd  %xmm2,%xmm0
  mulsd  -0x2c8(%rbp),%xmm0
  mov    %r13,%rsi
  shr    $0x3,%rsi
  addsd  %xmm1,%xmm0
  mov    -0x298(%rbp),%rcx
  mov    -0x344(%rbp),%eax
  movslq %eax,%rdx
  mov    -0x340(%rbp),%eax
  cltq
  imul   %rsi,%rax
  add    %rdx,%rax
  movsd  %xmm0,(%rcx,%rax,8)
  mov    %rbx,%rsi
  shr    $0x3,%rsi
  mov    -0x250(%rbp),%rcx
  mov    -0x344(%rbp),%eax
  movslq %eax,%rdx
  mov    -0x340(%rbp),%eax
  cltq
  imul   %rsi,%rax
  add    %rdx,%rax
  movsd  (%rcx,%rax,8),%xmm1
  mov    %rbx,%rsi
  shr    $0x3,%rsi
  mov    -0x250(%rbp),%rcx
  mov    -0x344(%rbp),%eax
  movslq %eax,%rdx
  mov    -0x340(%rbp),%eax
  cltq
  imul   %rsi,%rax
  add    %rdx,%rax
  movsd  (%rcx,%rax,8),%xmm0
  mulsd  %xmm0,%xmm1
  mov    %r12,%rsi
  shr    $0x3,%rsi
  mov    -0x238(%rbp),%rcx
  mov    -0x344(%rbp),%eax
  movslq %eax,%rdx
  mov    -0x340(%rbp),%eax
  cltq
  imul   %rsi,%rax
  add    %rdx,%rax
  movsd  (%rcx,%rax,8),%xmm2
  mov    %r12,%rsi
  shr    $0x3,%rsi
  mov    -0x238(%rbp),%rcx
  mov    -0x344(%rbp),%eax
  movslq %eax,%rdx
  mov    -0x340(%rbp),%eax
  cltq
  imul   %rsi,%rax
  add    %rdx,%rax
  movsd  (%rcx,%rax,8),%xmm0
  mulsd  %xmm2,%xmm0
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0xe0(%rbp)
  mov    %r13,%rsi
  shr    $0x3,%rsi
  mov    -0x298(%rbp),%rcx
  mov    -0x344(%rbp),%eax
  movslq %eax,%rdx
  mov    -0x340(%rbp),%eax
  cltq
  imul   %rsi,%rax
  add    %rdx,%rax
  movsd  (%rcx,%rax,8),%xmm1
  mov    %r13,%rsi
  shr    $0x3,%rsi
  mov    -0x298(%rbp),%rcx
  mov    -0x344(%rbp),%eax
  movslq %eax,%rdx
  mov    -0x340(%rbp),%eax
  cltq
  imul   %rsi,%rax
  add    %rdx,%rax
  movsd  (%rcx,%rax,8),%xmm0
  mulsd  %xmm0,%xmm1
  mov    %rdi,%rsi
  shr    $0x3,%rsi
  mov    -0x2b0(%rbp),%rcx
  mov    -0x344(%rbp),%eax
  movslq %eax,%rdx
  mov    -0x340(%rbp),%eax
  cltq
  imul   %rsi,%rax
  add    %rdx,%rax
  movsd  (%rcx,%rax,8),%xmm2
  shr    $0x3,%rdi
  mov    %rdi,%rsi
  mov    -0x2b0(%rbp),%rcx
  mov    -0x344(%rbp),%eax
  movslq %eax,%rdx
  mov    -0x340(%rbp),%eax
  cltq
  imul   %rsi,%rax
  add    %rdx,%rax
  movsd  (%rcx,%rax,8),%xmm0
  mulsd  %xmm2,%xmm0
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0xd8(%rbp)
  mov    -0x1f8(%rbp),%rdx
  mov    -0x340(%rbp),%eax
  cltq
  movsd  (%rdx,%rax,8),%xmm1
  movsd  -0x100(%rbp),%xmm0
  mulsd  -0x2c8(%rbp),%xmm0
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0xd0(%rbp)
  cmpl   $0x1,-0x340(%rbp)
  jne    L301
  mov    -0x1f8(%rbp),%rax
  movsd  0x8(%rax),%xmm0
  movsd  %xmm0,-0x60(%rbp)
  mov    -0x1f8(%rbp),%rax
  movsd  0x10(%rax),%xmm0
  movsd  %xmm0,-0x58(%rbp)
  mov    -0x1f8(%rbp),%rax
  movsd  0x18(%rax),%xmm0
  movsd  %xmm0,-0x50(%rbp)
  mov    -0x1f8(%rbp),%rax
  movsd  0x20(%rax),%xmm0
  movsd  %xmm0,-0x48(%rbp)
  mov    %rbx,%rcx
  shr    $0x3,%rcx
  mov    -0x250(%rbp),%rdx
  mov    -0x344(%rbp),%eax
  cltq
  add    %rcx,%rax
  movsd  (%rdx,%rax,8),%xmm0
  movsd  %xmm0,-0x90(%rbp)
  mov    %rbx,%rcx
  shr    $0x3,%rcx
  mov    -0x250(%rbp),%rsi
  mov    -0x344(%rbp),%eax
  movslq %eax,%rdx
  lea    (%rcx,%rcx,1),%rax
  add    %rdx,%rax
  movsd  (%rsi,%rax,8),%xmm0
  movsd  %xmm0,-0x88(%rbp)
  mov    %rbx,%rdx
  shr    $0x3,%rdx
  mov    -0x250(%rbp),%rsi
  mov    -0x344(%rbp),%eax
  movslq %eax,%rcx
  mov    %rdx,%rax
  add    %rax,%rax
  add    %rdx,%rax
  add    %rcx,%rax
  movsd  (%rsi,%rax,8),%xmm0
  movsd  %xmm0,-0x80(%rbp)
  mov    %rbx,%rcx
  shr    $0x3,%rcx
  mov    -0x250(%rbp),%rsi
  mov    -0x344(%rbp),%eax
  movslq %eax,%rdx
  lea    0x0(,%rcx,4),%rax
  add    %rdx,%rax
  movsd  (%rsi,%rax,8),%xmm0
  movsd  %xmm0,-0x78(%rbp)
L301:
  cmpl   $0x1,-0x340(%rbp)
  jle    L448
  mov    -0x318(%rbp),%eax
  sub    $0x1,%eax
  cmp    %eax,-0x340(%rbp)
  jge    L448
  mov    -0x340(%rbp),%eax
  sub    $0x1,%eax
  mov    -0x1f8(%rbp),%rdx
  cltq
  movsd  (%rdx,%rax,8),%xmm0
  movsd  %xmm0,-0x60(%rbp)
  mov    -0x1f8(%rbp),%rdx
  mov    -0x340(%rbp),%eax
  cltq
  movsd  (%rdx,%rax,8),%xmm0
  movsd  %xmm0,-0x58(%rbp)
  mov    -0x340(%rbp),%eax
  add    $0x1,%eax
  mov    -0x1f8(%rbp),%rdx
  cltq
  movsd  (%rdx,%rax,8),%xmm0
  movsd  %xmm0,-0x50(%rbp)
  mov    -0x340(%rbp),%eax
  add    $0x2,%eax
  mov    -0x1f8(%rbp),%rdx
  cltq
  movsd  (%rdx,%rax,8),%xmm0
  movsd  %xmm0,-0x48(%rbp)
  mov    %rbx,%rdi
  shr    $0x3,%rdi
  mov    -0x340(%rbp),%eax
  lea    -0x1(%rax),%edx
  mov    -0x250(%rbp),%rsi
  mov    -0x344(%rbp),%eax
  movslq %eax,%rcx
  movslq %edx,%rax
  imul   %rdi,%rax
  add    %rcx,%rax
  movsd  (%rsi,%rax,8),%xmm0
  movsd  %xmm0,-0x90(%rbp)
  mov    %rbx,%rsi
  shr    $0x3,%rsi
  mov    -0x250(%rbp),%rcx
  mov    -0x344(%rbp),%eax
  movslq %eax,%rdx
  mov    -0x340(%rbp),%eax
  cltq
  imul   %rsi,%rax
  add    %rdx,%rax
  movsd  (%rcx,%rax,8),%xmm0
  movsd  %xmm0,-0x88(%rbp)
  mov    %rbx,%rdi
  shr    $0x3,%rdi
  mov    -0x340(%rbp),%eax
  lea    0x1(%rax),%edx
  mov    -0x250(%rbp),%rsi
  mov    -0x344(%rbp),%eax
  movslq %eax,%rcx
  movslq %edx,%rax
  imul   %rdi,%rax
  add    %rcx,%rax
  movsd  (%rsi,%rax,8),%xmm0
  movsd  %xmm0,-0x80(%rbp)
  mov    %rbx,%rdi
  shr    $0x3,%rdi
  mov    -0x340(%rbp),%eax
  lea    0x2(%rax),%edx
  mov    -0x250(%rbp),%rsi
  mov    -0x344(%rbp),%eax
  movslq %eax,%rcx
  movslq %edx,%rax
  imul   %rdi,%rax
  add    %rcx,%rax
  movsd  (%rsi,%rax,8),%xmm0
  movsd  %xmm0,-0x78(%rbp)
L448:
  mov    -0x318(%rbp),%eax
  sub    $0x1,%eax
  cmp    %eax,-0x340(%rbp)
  jne    L337
  mov    -0x318(%rbp),%eax
  sub    $0x1,%eax
  mov    -0x1f8(%rbp),%rdx
  cltq
  movsd  (%rdx,%rax,8),%xmm0
  movsd  %xmm0,-0x60(%rbp)
  mov    -0x1f8(%rbp),%rdx
  mov    -0x318(%rbp),%eax
  cltq
  movsd  (%rdx,%rax,8),%xmm0
  movsd  %xmm0,-0x58(%rbp)
  mov    -0x318(%rbp),%eax
  sub    $0x1,%eax
  mov    -0x1f8(%rbp),%rdx
  cltq
  movsd  (%rdx,%rax,8),%xmm0
  movsd  %xmm0,-0x50(%rbp)
  mov    -0x318(%rbp),%eax
  sub    $0x2,%eax
  mov    -0x1f8(%rbp),%rdx
  cltq
  movsd  (%rdx,%rax,8),%xmm0
  movsd  %xmm0,-0x48(%rbp)
  mov    %rbx,%rdi
  shr    $0x3,%rdi
  mov    -0x318(%rbp),%eax
  lea    -0x1(%rax),%edx
  mov    -0x250(%rbp),%rsi
  mov    -0x344(%rbp),%eax
  movslq %eax,%rcx
  movslq %edx,%rax
  imul   %rdi,%rax
  add    %rcx,%rax
  movsd  (%rsi,%rax,8),%xmm0
  movsd  %xmm0,-0x90(%rbp)
  mov    %rbx,%rsi
  shr    $0x3,%rsi
  mov    -0x250(%rbp),%rcx
  mov    -0x344(%rbp),%eax
  movslq %eax,%rdx
  mov    -0x318(%rbp),%eax
  cltq
  imul   %rsi,%rax
  add    %rdx,%rax
  movsd  (%rcx,%rax,8),%xmm0
  movsd  %xmm0,-0x88(%rbp)
  mov    %rbx,%rdi
  shr    $0x3,%rdi
  mov    -0x318(%rbp),%eax
  lea    -0x1(%rax),%edx
  mov    -0x250(%rbp),%rsi
  mov    -0x344(%rbp),%eax
  movslq %eax,%rcx
  movslq %edx,%rax
  imul   %rdi,%rax
  add    %rcx,%rax
  movsd  (%rsi,%rax,8),%xmm0
  movsd  %xmm0,-0x80(%rbp)
  mov    %rbx,%rdi
  shr    $0x3,%rdi
  mov    -0x318(%rbp),%eax
  lea    -0x2(%rax),%edx
  mov    -0x250(%rbp),%rsi
  mov    -0x344(%rbp),%eax
  movslq %eax,%rcx
  movslq %edx,%rax
  imul   %rdi,%rax
  add    %rcx,%rax
  movsd  (%rsi,%rax,8),%xmm0
  movsd  %xmm0,-0x78(%rbp)
L337:
  mov    -0x340(%rbp),%eax
  cmp    -0x318(%rbp),%eax
  jne    L79
  mov    -0x1f8(%rbp),%rdx
  mov    -0x318(%rbp),%eax
  cltq
  movsd  (%rdx,%rax,8),%xmm0
  movsd  %xmm0,-0x60(%rbp)
  mov    -0x318(%rbp),%eax
  sub    $0x1,%eax
  mov    -0x1f8(%rbp),%rdx
  cltq
  movsd  (%rdx,%rax,8),%xmm0
  movsd  %xmm0,-0x58(%rbp)
  mov    -0x318(%rbp),%eax
  sub    $0x2,%eax
  mov    -0x1f8(%rbp),%rdx
  cltq
  movsd  (%rdx,%rax,8),%xmm0
  movsd  %xmm0,-0x50(%rbp)
  mov    -0x318(%rbp),%eax
  sub    $0x3,%eax
  mov    -0x1f8(%rbp),%rdx
  cltq
  movsd  (%rdx,%rax,8),%xmm0
  movsd  %xmm0,-0x48(%rbp)
  mov    %rbx,%rsi
  shr    $0x3,%rsi
  mov    -0x250(%rbp),%rcx
  mov    -0x344(%rbp),%eax
  movslq %eax,%rdx
  mov    -0x318(%rbp),%eax
  cltq
  imul   %rsi,%rax
  add    %rdx,%rax
  movsd  (%rcx,%rax,8),%xmm0
  movsd  %xmm0,-0x90(%rbp)
  mov    %rbx,%rdi
  shr    $0x3,%rdi
  mov    -0x318(%rbp),%eax
  lea    -0x1(%rax),%edx
  mov    -0x250(%rbp),%rsi
  mov    -0x344(%rbp),%eax
  movslq %eax,%rcx
  movslq %edx,%rax
  imul   %rdi,%rax
  add    %rcx,%rax
  movsd  (%rsi,%rax,8),%xmm0
  movsd  %xmm0,-0x88(%rbp)
  mov    %rbx,%rdi
  shr    $0x3,%rdi
  mov    -0x318(%rbp),%eax
  lea    -0x2(%rax),%edx
  mov    -0x250(%rbp),%rsi
  mov    -0x344(%rbp),%eax
  movslq %eax,%rcx
  movslq %edx,%rax
  imul   %rdi,%rax
  add    %rcx,%rax
  movsd  (%rsi,%rax,8),%xmm0
  movsd  %xmm0,-0x80(%rbp)
  mov    %rbx,%rdi
  shr    $0x3,%rdi
  mov    -0x318(%rbp),%eax
  lea    -0x3(%rax),%edx
  mov    -0x250(%rbp),%rsi
  mov    -0x344(%rbp),%eax
  movslq %eax,%rcx
  movslq %edx,%rax
  imul   %rdi,%rax
  add    %rcx,%rax
  movsd  (%rsi,%rax,8),%xmm0
  movsd  %xmm0,-0x78(%rbp)
L79:
  movl   $0x0,-0x330(%rbp)
  jmp    L481
L1092:
  mov    -0x330(%rbp),%eax
  add    $0x1,%eax
  mov    %eax,-0x334(%rbp)
  jmp    L818
L918:
  mov    -0x330(%rbp),%eax
  cltq
  movsd  -0x60(%rbp,%rax,8),%xmm0
  movapd %xmm0,%xmm1
  subsd  -0xd0(%rbp),%xmm1
  mov    -0x334(%rbp),%eax
  cltq
  movsd  -0x90(%rbp,%rax,8),%xmm0
  mulsd  %xmm1,%xmm0
  mov    -0x334(%rbp),%eax
  cltq
  movsd  -0x60(%rbp,%rax,8),%xmm1
  movapd %xmm1,%xmm2
  subsd  -0xd0(%rbp),%xmm2
  mov    -0x330(%rbp),%eax
  cltq
  movsd  -0x90(%rbp,%rax,8),%xmm1
  mulsd  %xmm2,%xmm1
  subsd  %xmm1,%xmm0
  mov    -0x330(%rbp),%eax
  cltq
  movsd  -0x60(%rbp,%rax,8),%xmm1
  subsd  -0xd0(%rbp),%xmm1
  mov    -0x334(%rbp),%eax
  cltq
  movsd  -0x60(%rbp,%rax,8),%xmm2
  subsd  -0xd0(%rbp),%xmm2
  subsd  %xmm2,%xmm1
  divsd  %xmm1,%xmm0
  mov    -0x334(%rbp),%eax
  cltq
  movsd  %xmm0,-0x90(%rbp,%rax,8)
  addl   $0x1,-0x334(%rbp)
L818:
  mov    -0x334(%rbp),%eax
  cmp    -0x324(%rbp),%eax
  jle    L918
  addl   $0x1,-0x330(%rbp)
L481:
  mov    -0x330(%rbp),%eax
  cmp    -0x324(%rbp),%eax
  jl     L1092
  mov    -0x3d0(%rbp),%rsi
  shr    $0x3,%rsi
  mov    -0x324(%rbp),%eax
  cltq
  movsd  -0x90(%rbp,%rax,8),%xmm0
  mov    -0x1e0(%rbp),%rcx
  mov    -0x344(%rbp),%eax
  movslq %eax,%rdx
  mov    -0x340(%rbp),%eax
  cltq
  imul   %rsi,%rax
  add    %rdx,%rax
  movsd  %xmm0,(%rcx,%rax,8)
  cmpl   $0x1,-0x340(%rbp)
  jne    L1136
  mov    -0x1f8(%rbp),%rax
  movsd  0x8(%rax),%xmm0
  movsd  %xmm0,-0x60(%rbp)
  mov    -0x1f8(%rbp),%rax
  movsd  0x10(%rax),%xmm0
  movsd  %xmm0,-0x58(%rbp)
  mov    -0x1f8(%rbp),%rax
  movsd  0x18(%rax),%xmm0
  movsd  %xmm0,-0x50(%rbp)
  mov    -0x1f8(%rbp),%rax
  movsd  0x20(%rax),%xmm0
  movsd  %xmm0,-0x48(%rbp)
  mov    -0x358(%rbp),%rdi
  mov    %rdi,%rcx
  shr    $0x3,%rcx
  mov    -0x2b0(%rbp),%rdx
  mov    -0x344(%rbp),%eax
  cltq
  add    %rcx,%rax
  movsd  (%rdx,%rax,8),%xmm0
  movsd  %xmm0,-0x90(%rbp)
  mov    %rdi,%rcx
  shr    $0x3,%rcx
  mov    -0x2b0(%rbp),%rsi
  mov    -0x344(%rbp),%eax
  movslq %eax,%rdx
  lea    (%rcx,%rcx,1),%rax
  add    %rdx,%rax
  movsd  (%rsi,%rax,8),%xmm0
  movsd  %xmm0,-0x88(%rbp)
  mov    %rdi,%rdx
  shr    $0x3,%rdx
  mov    -0x2b0(%rbp),%rsi
  mov    -0x344(%rbp),%eax
  movslq %eax,%rcx
  mov    %rdx,%rax
  add    %rax,%rax
  add    %rdx,%rax
  add    %rcx,%rax
  movsd  (%rsi,%rax,8),%xmm0
  movsd  %xmm0,-0x80(%rbp)
  shr    $0x3,%rdi
  mov    %rdi,%rcx
  mov    -0x2b0(%rbp),%rsi
  mov    -0x344(%rbp),%eax
  movslq %eax,%rdx
  lea    0x0(,%rcx,4),%rax
  add    %rdx,%rax
  movsd  (%rsi,%rax,8),%xmm0
  movsd  %xmm0,-0x78(%rbp)
L1136:
  cmpl   $0x1,-0x340(%rbp)
  jle    L723
  mov    -0x318(%rbp),%eax
  sub    $0x1,%eax
  cmp    %eax,-0x340(%rbp)
  jge    L723
  mov    -0x340(%rbp),%eax
  sub    $0x1,%eax
  mov    -0x1f8(%rbp),%rdx
  cltq
  movsd  (%rdx,%rax,8),%xmm0
  movsd  %xmm0,-0x60(%rbp)
  mov    -0x1f8(%rbp),%rdx
  mov    -0x340(%rbp),%eax
  cltq
  movsd  (%rdx,%rax,8),%xmm0
  movsd  %xmm0,-0x58(%rbp)
  mov    -0x340(%rbp),%eax
  add    $0x1,%eax
  mov    -0x1f8(%rbp),%rdx
  cltq
  movsd  (%rdx,%rax,8),%xmm0
  movsd  %xmm0,-0x50(%rbp)
  mov    -0x340(%rbp),%eax
  add    $0x2,%eax
  mov    -0x1f8(%rbp),%rdx
  cltq
  movsd  (%rdx,%rax,8),%xmm0
  movsd  %xmm0,-0x48(%rbp)
  mov    -0x358(%rbp),%r10
  mov    %r10,%rdi
  shr    $0x3,%rdi
  mov    -0x340(%rbp),%eax
  lea    -0x1(%rax),%edx
  mov    -0x2b0(%rbp),%rsi
  mov    -0x344(%rbp),%eax
  movslq %eax,%rcx
  movslq %edx,%rax
  imul   %rdi,%rax
  add    %rcx,%rax
  movsd  (%rsi,%rax,8),%xmm0
  movsd  %xmm0,-0x90(%rbp)
  mov    %r10,%rsi
  shr    $0x3,%rsi
  mov    -0x2b0(%rbp),%rcx
  mov    -0x344(%rbp),%eax
  movslq %eax,%rdx
  mov    -0x340(%rbp),%eax
  cltq
  imul   %rsi,%rax
  add    %rdx,%rax
  movsd  (%rcx,%rax,8),%xmm0
  movsd  %xmm0,-0x88(%rbp)
  mov    %r10,%rdi
  shr    $0x3,%rdi
  mov    -0x340(%rbp),%eax
  lea    0x1(%rax),%edx
  mov    -0x2b0(%rbp),%rsi
  mov    -0x344(%rbp),%eax
  movslq %eax,%rcx
  movslq %edx,%rax
  imul   %rdi,%rax
  add    %rcx,%rax
  movsd  (%rsi,%rax,8),%xmm0
  movsd  %xmm0,-0x80(%rbp)
  mov    %r10,%rdi
  shr    $0x3,%rdi
  mov    -0x340(%rbp),%eax
  lea    0x2(%rax),%edx
  mov    -0x2b0(%rbp),%rsi
  mov    -0x344(%rbp),%eax
  movslq %eax,%rcx
  movslq %edx,%rax
  imul   %rdi,%rax
  add    %rcx,%rax
  movsd  (%rsi,%rax,8),%xmm0
  movsd  %xmm0,-0x78(%rbp)
L723:
  mov    -0x318(%rbp),%eax
  sub    $0x1,%eax
  cmp    %eax,-0x340(%rbp)
  jne    L1124
  mov    -0x318(%rbp),%eax
  sub    $0x1,%eax
  mov    -0x1f8(%rbp),%rdx
  cltq
  movsd  (%rdx,%rax,8),%xmm0
  movsd  %xmm0,-0x60(%rbp)
  mov    -0x1f8(%rbp),%rdx
  mov    -0x318(%rbp),%eax
  cltq
  movsd  (%rdx,%rax,8),%xmm0
  movsd  %xmm0,-0x58(%rbp)
  mov    -0x318(%rbp),%eax
  sub    $0x1,%eax
  mov    -0x1f8(%rbp),%rdx
  cltq
  movsd  (%rdx,%rax,8),%xmm0
  movsd  %xmm0,-0x50(%rbp)
  mov    -0x318(%rbp),%eax
  sub    $0x2,%eax
  mov    -0x1f8(%rbp),%rdx
  cltq
  movsd  (%rdx,%rax,8),%xmm0
  movsd  %xmm0,-0x48(%rbp)
  mov    -0x358(%rbp),%r11
  mov    %r11,%rdi
  shr    $0x3,%rdi
  mov    -0x318(%rbp),%eax
  lea    -0x1(%rax),%edx
  mov    -0x2b0(%rbp),%rsi
  mov    -0x344(%rbp),%eax
  movslq %eax,%rcx
  movslq %edx,%rax
  imul   %rdi,%rax
  add    %rcx,%rax
  movsd  (%rsi,%rax,8),%xmm0
  movsd  %xmm0,-0x90(%rbp)
  mov    %r11,%rsi
  shr    $0x3,%rsi
  mov    -0x2b0(%rbp),%rcx
  mov    -0x344(%rbp),%eax
  movslq %eax,%rdx
  mov    -0x318(%rbp),%eax
  cltq
  imul   %rsi,%rax
  add    %rdx,%rax
  movsd  (%rcx,%rax,8),%xmm0
  movsd  %xmm0,-0x88(%rbp)
  mov    %r11,%rdi
  shr    $0x3,%rdi
  mov    -0x318(%rbp),%eax
  lea    -0x1(%rax),%edx
  mov    -0x2b0(%rbp),%rsi
  mov    -0x344(%rbp),%eax
  movslq %eax,%rcx
  movslq %edx,%rax
  imul   %rdi,%rax
  add    %rcx,%rax
  movsd  (%rsi,%rax,8),%xmm0
  movsd  %xmm0,-0x80(%rbp)
  mov    %r11,%rdi
  shr    $0x3,%rdi
  mov    -0x318(%rbp),%eax
  lea    -0x2(%rax),%edx
  mov    -0x2b0(%rbp),%rsi
  mov    -0x344(%rbp),%eax
  movslq %eax,%rcx
  movslq %edx,%rax
  imul   %rdi,%rax
  add    %rcx,%rax
  movsd  (%rsi,%rax,8),%xmm0
  movsd  %xmm0,-0x78(%rbp)
L1124:
  mov    -0x340(%rbp),%eax
  cmp    -0x318(%rbp),%eax
  jne    L807
  mov    -0x1f8(%rbp),%rdx
  mov    -0x318(%rbp),%eax
  cltq
  movsd  (%rdx,%rax,8),%xmm0
  movsd  %xmm0,-0x60(%rbp)
  mov    -0x318(%rbp),%eax
  sub    $0x1,%eax
  mov    -0x1f8(%rbp),%rdx
  cltq
  movsd  (%rdx,%rax,8),%xmm0
  movsd  %xmm0,-0x58(%rbp)
  mov    -0x318(%rbp),%eax
  sub    $0x2,%eax
  mov    -0x1f8(%rbp),%rdx
  cltq
  movsd  (%rdx,%rax,8),%xmm0
  movsd  %xmm0,-0x50(%rbp)
  mov    -0x318(%rbp),%eax
  sub    $0x3,%eax
  mov    -0x1f8(%rbp),%rdx
  cltq
  movsd  (%rdx,%rax,8),%xmm0
  movsd  %xmm0,-0x48(%rbp)
  mov    -0x358(%rbp),%r8
  mov    %r8,%rsi
  shr    $0x3,%rsi
  mov    -0x2b0(%rbp),%rcx
  mov    -0x344(%rbp),%eax
  movslq %eax,%rdx
  mov    -0x318(%rbp),%eax
  cltq
  imul   %rsi,%rax
  add    %rdx,%rax
  movsd  (%rcx,%rax,8),%xmm0
  movsd  %xmm0,-0x90(%rbp)
  mov    %r8,%rdi
  shr    $0x3,%rdi
  mov    -0x318(%rbp),%eax
  lea    -0x1(%rax),%edx
  mov    -0x2b0(%rbp),%rsi
  mov    -0x344(%rbp),%eax
  movslq %eax,%rcx
  movslq %edx,%rax
  imul   %rdi,%rax
  add    %rcx,%rax
  movsd  (%rsi,%rax,8),%xmm0
  movsd  %xmm0,-0x88(%rbp)
  mov    %r8,%rdi
  shr    $0x3,%rdi
  mov    -0x318(%rbp),%eax
  lea    -0x2(%rax),%edx
  mov    -0x2b0(%rbp),%rsi
  mov    -0x344(%rbp),%eax
  movslq %eax,%rcx
  movslq %edx,%rax
  imul   %rdi,%rax
  add    %rcx,%rax
  movsd  (%rsi,%rax,8),%xmm0
  movsd  %xmm0,-0x80(%rbp)
  mov    %r8,%rdi
  shr    $0x3,%rdi
  mov    -0x318(%rbp),%eax
  lea    -0x3(%rax),%edx
  mov    -0x2b0(%rbp),%rsi
  mov    -0x344(%rbp),%eax
  movslq %eax,%rcx
  movslq %edx,%rax
  imul   %rdi,%rax
  add    %rcx,%rax
  movsd  (%rsi,%rax,8),%xmm0
  movsd  %xmm0,-0x78(%rbp)
L807:
  movl   $0x0,-0x330(%rbp)
  jmp    L766
L314:
  mov    -0x330(%rbp),%eax
  add    $0x1,%eax
  mov    %eax,-0x334(%rbp)
  jmp    L544
L253:
  mov    -0x330(%rbp),%eax
  cltq
  movsd  -0x60(%rbp,%rax,8),%xmm0
  movapd %xmm0,%xmm1
  subsd  -0xd0(%rbp),%xmm1
  mov    -0x334(%rbp),%eax
  cltq
  movsd  -0x90(%rbp,%rax,8),%xmm0
  mulsd  %xmm1,%xmm0
  mov    -0x334(%rbp),%eax
  cltq
  movsd  -0x60(%rbp,%rax,8),%xmm1
  movapd %xmm1,%xmm2
  subsd  -0xd0(%rbp),%xmm2
  mov    -0x330(%rbp),%eax
  cltq
  movsd  -0x90(%rbp,%rax,8),%xmm1
  mulsd  %xmm2,%xmm1
  subsd  %xmm1,%xmm0
  mov    -0x330(%rbp),%eax
  cltq
  movsd  -0x60(%rbp,%rax,8),%xmm1
  subsd  -0xd0(%rbp),%xmm1
  mov    -0x334(%rbp),%eax
  cltq
  movsd  -0x60(%rbp,%rax,8),%xmm2
  subsd  -0xd0(%rbp),%xmm2
  subsd  %xmm2,%xmm1
  divsd  %xmm1,%xmm0
  mov    -0x334(%rbp),%eax
  cltq
  movsd  %xmm0,-0x90(%rbp,%rax,8)
  addl   $0x1,-0x334(%rbp)
L544:
  mov    -0x334(%rbp),%eax
  cmp    -0x324(%rbp),%eax
  jle    L253
  addl   $0x1,-0x330(%rbp)
L766:
  mov    -0x330(%rbp),%eax
  cmp    -0x324(%rbp),%eax
  jl     L314
  mov    -0x3f0(%rbp),%rsi
  shr    $0x3,%rsi
  mov    -0x324(%rbp),%eax
  cltq
  movsd  -0x90(%rbp,%rax,8),%xmm0
  mov    -0x1b0(%rbp),%rcx
  mov    -0x344(%rbp),%eax
  movslq %eax,%rdx
  mov    -0x340(%rbp),%eax
  cltq
  imul   %rsi,%rax
  add    %rdx,%rax
  movsd  %xmm0,(%rcx,%rax,8)
  cmpl   $0x1,-0x340(%rbp)
  jne    L1122
  mov    -0x1f8(%rbp),%rax
  movsd  0x8(%rax),%xmm0
  movsd  %xmm0,-0x60(%rbp)
  mov    -0x1f8(%rbp),%rax
  movsd  0x10(%rax),%xmm0
  movsd  %xmm0,-0x58(%rbp)
  mov    -0x1f8(%rbp),%rax
  movsd  0x18(%rax),%xmm0
  movsd  %xmm0,-0x50(%rbp)
  mov    -0x1f8(%rbp),%rax
  movsd  0x20(%rax),%xmm0
  movsd  %xmm0,-0x48(%rbp)
  mov    %r12,%rcx
  shr    $0x3,%rcx
  mov    -0x238(%rbp),%rdx
  mov    -0x344(%rbp),%eax
  cltq
  add    %rcx,%rax
  movsd  (%rdx,%rax,8),%xmm0
  movsd  %xmm0,-0x90(%rbp)
  mov    %r12,%rcx
  shr    $0x3,%rcx
  mov    -0x238(%rbp),%rsi
  mov    -0x344(%rbp),%eax
  movslq %eax,%rdx
  lea    (%rcx,%rcx,1),%rax
  add    %rdx,%rax
  movsd  (%rsi,%rax,8),%xmm0
  movsd  %xmm0,-0x88(%rbp)
  mov    %r12,%rdx
  shr    $0x3,%rdx
  mov    -0x238(%rbp),%rsi
  mov    -0x344(%rbp),%eax
  movslq %eax,%rcx
  mov    %rdx,%rax
  add    %rax,%rax
  add    %rdx,%rax
  add    %rcx,%rax
  movsd  (%rsi,%rax,8),%xmm0
  movsd  %xmm0,-0x80(%rbp)
  mov    %r12,%rcx
  shr    $0x3,%rcx
  mov    -0x238(%rbp),%rsi
  mov    -0x344(%rbp),%eax
  movslq %eax,%rdx
  lea    0x0(,%rcx,4),%rax
  add    %rdx,%rax
  movsd  (%rsi,%rax,8),%xmm0
  movsd  %xmm0,-0x78(%rbp)
L1122:
  cmpl   $0x1,-0x340(%rbp)
  jle    L289
  mov    -0x318(%rbp),%eax
  sub    $0x1,%eax
  cmp    %eax,-0x340(%rbp)
  jge    L289
  mov    -0x340(%rbp),%eax
  sub    $0x1,%eax
  mov    -0x1f8(%rbp),%rdx
  cltq
  movsd  (%rdx,%rax,8),%xmm0
  movsd  %xmm0,-0x60(%rbp)
  mov    -0x1f8(%rbp),%rdx
  mov    -0x340(%rbp),%eax
  cltq
  movsd  (%rdx,%rax,8),%xmm0
  movsd  %xmm0,-0x58(%rbp)
  mov    -0x340(%rbp),%eax
  add    $0x1,%eax
  mov    -0x1f8(%rbp),%rdx
  cltq
  movsd  (%rdx,%rax,8),%xmm0
  movsd  %xmm0,-0x50(%rbp)
  mov    -0x340(%rbp),%eax
  add    $0x2,%eax
  mov    -0x1f8(%rbp),%rdx
  cltq
  movsd  (%rdx,%rax,8),%xmm0
  movsd  %xmm0,-0x48(%rbp)
  mov    %r12,%rdi
  shr    $0x3,%rdi
  mov    -0x340(%rbp),%eax
  lea    -0x1(%rax),%edx
  mov    -0x238(%rbp),%rsi
  mov    -0x344(%rbp),%eax
  movslq %eax,%rcx
  movslq %edx,%rax
  imul   %rdi,%rax
  add    %rcx,%rax
  movsd  (%rsi,%rax,8),%xmm0
  movsd  %xmm0,-0x90(%rbp)
  mov    %r12,%rsi
  shr    $0x3,%rsi
  mov    -0x238(%rbp),%rcx
  mov    -0x344(%rbp),%eax
  movslq %eax,%rdx
  mov    -0x340(%rbp),%eax
  cltq
  imul   %rsi,%rax
  add    %rdx,%rax
  movsd  (%rcx,%rax,8),%xmm0
  movsd  %xmm0,-0x88(%rbp)
  mov    %r12,%rdi
  shr    $0x3,%rdi
  mov    -0x340(%rbp),%eax
  lea    0x1(%rax),%edx
  mov    -0x238(%rbp),%rsi
  mov    -0x344(%rbp),%eax
  movslq %eax,%rcx
  movslq %edx,%rax
  imul   %rdi,%rax
  add    %rcx,%rax
  movsd  (%rsi,%rax,8),%xmm0
  movsd  %xmm0,-0x80(%rbp)
  mov    %r12,%rdi
  shr    $0x3,%rdi
  mov    -0x340(%rbp),%eax
  lea    0x2(%rax),%edx
  mov    -0x238(%rbp),%rsi
  mov    -0x344(%rbp),%eax
  movslq %eax,%rcx
  movslq %edx,%rax
  imul   %rdi,%rax
  add    %rcx,%rax
  movsd  (%rsi,%rax,8),%xmm0
  movsd  %xmm0,-0x78(%rbp)
L289:
  mov    -0x318(%rbp),%eax
  sub    $0x1,%eax
  cmp    %eax,-0x340(%rbp)
  jne    L1019
  mov    -0x318(%rbp),%eax
  sub    $0x1,%eax
  mov    -0x1f8(%rbp),%rdx
  cltq
  movsd  (%rdx,%rax,8),%xmm0
  movsd  %xmm0,-0x60(%rbp)
  mov    -0x1f8(%rbp),%rdx
  mov    -0x318(%rbp),%eax
  cltq
  movsd  (%rdx,%rax,8),%xmm0
  movsd  %xmm0,-0x58(%rbp)
  mov    -0x318(%rbp),%eax
  sub    $0x1,%eax
  mov    -0x1f8(%rbp),%rdx
  cltq
  movsd  (%rdx,%rax,8),%xmm0
  movsd  %xmm0,-0x50(%rbp)
  mov    -0x318(%rbp),%eax
  sub    $0x2,%eax
  mov    -0x1f8(%rbp),%rdx
  cltq
  movsd  (%rdx,%rax,8),%xmm0
  movsd  %xmm0,-0x48(%rbp)
  mov    %r12,%rdi
  shr    $0x3,%rdi
  mov    -0x318(%rbp),%eax
  lea    -0x1(%rax),%edx
  mov    -0x238(%rbp),%rsi
  mov    -0x344(%rbp),%eax
  movslq %eax,%rcx
  movslq %edx,%rax
  imul   %rdi,%rax
  add    %rcx,%rax
  movsd  (%rsi,%rax,8),%xmm0
  movsd  %xmm0,-0x90(%rbp)
  mov    %r12,%rsi
  shr    $0x3,%rsi
  mov    -0x238(%rbp),%rcx
  mov    -0x344(%rbp),%eax
  movslq %eax,%rdx
  mov    -0x318(%rbp),%eax
  cltq
  imul   %rsi,%rax
  add    %rdx,%rax
  movsd  (%rcx,%rax,8),%xmm0
  movsd  %xmm0,-0x88(%rbp)
  mov    %r12,%rdi
  shr    $0x3,%rdi
  mov    -0x318(%rbp),%eax
  lea    -0x1(%rax),%edx
  mov    -0x238(%rbp),%rsi
  mov    -0x344(%rbp),%eax
  movslq %eax,%rcx
  movslq %edx,%rax
  imul   %rdi,%rax
  add    %rcx,%rax
  movsd  (%rsi,%rax,8),%xmm0
  movsd  %xmm0,-0x80(%rbp)
  mov    %r12,%rdi
  shr    $0x3,%rdi
  mov    -0x318(%rbp),%eax
  lea    -0x2(%rax),%edx
  mov    -0x238(%rbp),%rsi
  mov    -0x344(%rbp),%eax
  movslq %eax,%rcx
  movslq %edx,%rax
  imul   %rdi,%rax
  add    %rcx,%rax
  movsd  (%rsi,%rax,8),%xmm0
  movsd  %xmm0,-0x78(%rbp)
L1019:
  mov    -0x340(%rbp),%eax
  cmp    -0x318(%rbp),%eax
  jne    L808
  mov    -0x1f8(%rbp),%rdx
  mov    -0x318(%rbp),%eax
  cltq
  movsd  (%rdx,%rax,8),%xmm0
  movsd  %xmm0,-0x60(%rbp)
  mov    -0x318(%rbp),%eax
  sub    $0x1,%eax
  mov    -0x1f8(%rbp),%rdx
  cltq
  movsd  (%rdx,%rax,8),%xmm0
  movsd  %xmm0,-0x58(%rbp)
  mov    -0x318(%rbp),%eax
  sub    $0x2,%eax
  mov    -0x1f8(%rbp),%rdx
  cltq
  movsd  (%rdx,%rax,8),%xmm0
  movsd  %xmm0,-0x50(%rbp)
  mov    -0x318(%rbp),%eax
  sub    $0x3,%eax
  mov    -0x1f8(%rbp),%rdx
  cltq
  movsd  (%rdx,%rax,8),%xmm0
  movsd  %xmm0,-0x48(%rbp)
  mov    %r12,%rsi
  shr    $0x3,%rsi
  mov    -0x238(%rbp),%rcx
  mov    -0x344(%rbp),%eax
  movslq %eax,%rdx
  mov    -0x318(%rbp),%eax
  cltq
  imul   %rsi,%rax
  add    %rdx,%rax
  movsd  (%rcx,%rax,8),%xmm0
  movsd  %xmm0,-0x90(%rbp)
  mov    %r12,%rdi
  shr    $0x3,%rdi
  mov    -0x318(%rbp),%eax
  lea    -0x1(%rax),%edx
  mov    -0x238(%rbp),%rsi
  mov    -0x344(%rbp),%eax
  movslq %eax,%rcx
  movslq %edx,%rax
  imul   %rdi,%rax
  add    %rcx,%rax
  movsd  (%rsi,%rax,8),%xmm0
  movsd  %xmm0,-0x88(%rbp)
  mov    %r12,%rdi
  shr    $0x3,%rdi
  mov    -0x318(%rbp),%eax
  lea    -0x2(%rax),%edx
  mov    -0x238(%rbp),%rsi
  mov    -0x344(%rbp),%eax
  movslq %eax,%rcx
  movslq %edx,%rax
  imul   %rdi,%rax
  add    %rcx,%rax
  movsd  (%rsi,%rax,8),%xmm0
  movsd  %xmm0,-0x80(%rbp)
  mov    %r12,%rdi
  shr    $0x3,%rdi
  mov    -0x318(%rbp),%eax
  lea    -0x3(%rax),%edx
  mov    -0x238(%rbp),%rsi
  mov    -0x344(%rbp),%eax
  movslq %eax,%rcx
  movslq %edx,%rax
  imul   %rdi,%rax
  add    %rcx,%rax
  movsd  (%rsi,%rax,8),%xmm0
  movsd  %xmm0,-0x78(%rbp)
L808:
  movl   $0x0,-0x330(%rbp)
  jmp    L963
L9:
  mov    -0x330(%rbp),%eax
  add    $0x1,%eax
  mov    %eax,-0x334(%rbp)
  jmp    L815
L664:
  mov    -0x330(%rbp),%eax
  cltq
  movsd  -0x60(%rbp,%rax,8),%xmm0
  movapd %xmm0,%xmm1
  subsd  -0xd0(%rbp),%xmm1
  mov    -0x334(%rbp),%eax
  cltq
  movsd  -0x90(%rbp,%rax,8),%xmm0
  mulsd  %xmm1,%xmm0
  mov    -0x334(%rbp),%eax
  cltq
  movsd  -0x60(%rbp,%rax,8),%xmm1
  movapd %xmm1,%xmm2
  subsd  -0xd0(%rbp),%xmm2
  mov    -0x330(%rbp),%eax
  cltq
  movsd  -0x90(%rbp,%rax,8),%xmm1
  mulsd  %xmm2,%xmm1
  subsd  %xmm1,%xmm0
  mov    -0x330(%rbp),%eax
  cltq
  movsd  -0x60(%rbp,%rax,8),%xmm1
  subsd  -0xd0(%rbp),%xmm1
  mov    -0x334(%rbp),%eax
  cltq
  movsd  -0x60(%rbp,%rax,8),%xmm2
  subsd  -0xd0(%rbp),%xmm2
  subsd  %xmm2,%xmm1
  divsd  %xmm1,%xmm0
  mov    -0x334(%rbp),%eax
  cltq
  movsd  %xmm0,-0x90(%rbp,%rax,8)
  addl   $0x1,-0x334(%rbp)
L815:
  mov    -0x334(%rbp),%eax
  cmp    -0x324(%rbp),%eax
  jle    L664
  addl   $0x1,-0x330(%rbp)
L963:
  mov    -0x330(%rbp),%eax
  cmp    -0x324(%rbp),%eax
  jl     L9
  mov    -0x3e0(%rbp),%rsi
  shr    $0x3,%rsi
  mov    -0x324(%rbp),%eax
  cltq
  movsd  -0x90(%rbp,%rax,8),%xmm0
  mov    -0x1c8(%rbp),%rcx
  mov    -0x344(%rbp),%eax
  movslq %eax,%rdx
  mov    -0x340(%rbp),%eax
  cltq
  imul   %rsi,%rax
  add    %rdx,%rax
  movsd  %xmm0,(%rcx,%rax,8)
  cmpl   $0x1,-0x340(%rbp)
  jne    L278
  mov    -0x1f8(%rbp),%rax
  movsd  0x8(%rax),%xmm0
  movsd  %xmm0,-0x60(%rbp)
  mov    -0x1f8(%rbp),%rax
  movsd  0x10(%rax),%xmm0
  movsd  %xmm0,-0x58(%rbp)
  mov    -0x1f8(%rbp),%rax
  movsd  0x18(%rax),%xmm0
  movsd  %xmm0,-0x50(%rbp)
  mov    -0x1f8(%rbp),%rax
  movsd  0x20(%rax),%xmm0
  movsd  %xmm0,-0x48(%rbp)
  mov    %r13,%rcx
  shr    $0x3,%rcx
  mov    -0x298(%rbp),%rdx
  mov    -0x344(%rbp),%eax
  cltq
  add    %rcx,%rax
  movsd  (%rdx,%rax,8),%xmm0
  movsd  %xmm0,-0x90(%rbp)
  mov    %r13,%rcx
  shr    $0x3,%rcx
  mov    -0x298(%rbp),%rsi
  mov    -0x344(%rbp),%eax
  movslq %eax,%rdx
  lea    (%rcx,%rcx,1),%rax
  add    %rdx,%rax
  movsd  (%rsi,%rax,8),%xmm0
  movsd  %xmm0,-0x88(%rbp)
  mov    %r13,%rdx
  shr    $0x3,%rdx
  mov    -0x298(%rbp),%rsi
  mov    -0x344(%rbp),%eax
  movslq %eax,%rcx
  mov    %rdx,%rax
  add    %rax,%rax
  add    %rdx,%rax
  add    %rcx,%rax
  movsd  (%rsi,%rax,8),%xmm0
  movsd  %xmm0,-0x80(%rbp)
  mov    %r13,%rcx
  shr    $0x3,%rcx
  mov    -0x298(%rbp),%rsi
  mov    -0x344(%rbp),%eax
  movslq %eax,%rdx
  lea    0x0(,%rcx,4),%rax
  add    %rdx,%rax
  movsd  (%rsi,%rax,8),%xmm0
  movsd  %xmm0,-0x78(%rbp)
L278:
  cmpl   $0x1,-0x340(%rbp)
  jle    L462
  mov    -0x318(%rbp),%eax
  sub    $0x1,%eax
  cmp    %eax,-0x340(%rbp)
  jge    L462
  mov    -0x340(%rbp),%eax
  sub    $0x1,%eax
  mov    -0x1f8(%rbp),%rdx
  cltq
  movsd  (%rdx,%rax,8),%xmm0
  movsd  %xmm0,-0x60(%rbp)
  mov    -0x1f8(%rbp),%rdx
  mov    -0x340(%rbp),%eax
  cltq
  movsd  (%rdx,%rax,8),%xmm0
  movsd  %xmm0,-0x58(%rbp)
  mov    -0x340(%rbp),%eax
  add    $0x1,%eax
  mov    -0x1f8(%rbp),%rdx
  cltq
  movsd  (%rdx,%rax,8),%xmm0
  movsd  %xmm0,-0x50(%rbp)
  mov    -0x340(%rbp),%eax
  add    $0x2,%eax
  mov    -0x1f8(%rbp),%rdx
  cltq
  movsd  (%rdx,%rax,8),%xmm0
  movsd  %xmm0,-0x48(%rbp)
  mov    %r13,%rdi
  shr    $0x3,%rdi
  mov    -0x340(%rbp),%eax
  lea    -0x1(%rax),%edx
  mov    -0x298(%rbp),%rsi
  mov    -0x344(%rbp),%eax
  movslq %eax,%rcx
  movslq %edx,%rax
  imul   %rdi,%rax
  add    %rcx,%rax
  movsd  (%rsi,%rax,8),%xmm0
  movsd  %xmm0,-0x90(%rbp)
  mov    %r13,%rsi
  shr    $0x3,%rsi
  mov    -0x298(%rbp),%rcx
  mov    -0x344(%rbp),%eax
  movslq %eax,%rdx
  mov    -0x340(%rbp),%eax
  cltq
  imul   %rsi,%rax
  add    %rdx,%rax
  movsd  (%rcx,%rax,8),%xmm0
  movsd  %xmm0,-0x88(%rbp)
  mov    %r13,%rdi
  shr    $0x3,%rdi
  mov    -0x340(%rbp),%eax
  lea    0x1(%rax),%edx
  mov    -0x298(%rbp),%rsi
  mov    -0x344(%rbp),%eax
  movslq %eax,%rcx
  movslq %edx,%rax
  imul   %rdi,%rax
  add    %rcx,%rax
  movsd  (%rsi,%rax,8),%xmm0
  movsd  %xmm0,-0x80(%rbp)
  mov    %r13,%rdi
  shr    $0x3,%rdi
  mov    -0x340(%rbp),%eax
  lea    0x2(%rax),%edx
  mov    -0x298(%rbp),%rsi
  mov    -0x344(%rbp),%eax
  movslq %eax,%rcx
  movslq %edx,%rax
  imul   %rdi,%rax
  add    %rcx,%rax
  movsd  (%rsi,%rax,8),%xmm0
  movsd  %xmm0,-0x78(%rbp)
L462:
  mov    -0x318(%rbp),%eax
  sub    $0x1,%eax
  cmp    %eax,-0x340(%rbp)
  jne    L245
  mov    -0x318(%rbp),%eax
  sub    $0x1,%eax
  mov    -0x1f8(%rbp),%rdx
  cltq
  movsd  (%rdx,%rax,8),%xmm0
  movsd  %xmm0,-0x60(%rbp)
  mov    -0x1f8(%rbp),%rdx
  mov    -0x318(%rbp),%eax
  cltq
  movsd  (%rdx,%rax,8),%xmm0
  movsd  %xmm0,-0x58(%rbp)
  mov    -0x318(%rbp),%eax
  sub    $0x1,%eax
  mov    -0x1f8(%rbp),%rdx
  cltq
  movsd  (%rdx,%rax,8),%xmm0
  movsd  %xmm0,-0x50(%rbp)
  mov    -0x318(%rbp),%eax
  sub    $0x2,%eax
  mov    -0x1f8(%rbp),%rdx
  cltq
  movsd  (%rdx,%rax,8),%xmm0
  movsd  %xmm0,-0x48(%rbp)
  mov    %r13,%rdi
  shr    $0x3,%rdi
  mov    -0x318(%rbp),%eax
  lea    -0x1(%rax),%edx
  mov    -0x298(%rbp),%rsi
  mov    -0x344(%rbp),%eax
  movslq %eax,%rcx
  movslq %edx,%rax
  imul   %rdi,%rax
  add    %rcx,%rax
  movsd  (%rsi,%rax,8),%xmm0
  movsd  %xmm0,-0x90(%rbp)
  mov    %r13,%rsi
  shr    $0x3,%rsi
  mov    -0x298(%rbp),%rcx
  mov    -0x344(%rbp),%eax
  movslq %eax,%rdx
  mov    -0x318(%rbp),%eax
  cltq
  imul   %rsi,%rax
  add    %rdx,%rax
  movsd  (%rcx,%rax,8),%xmm0
  movsd  %xmm0,-0x88(%rbp)
  mov    %r13,%rdi
  shr    $0x3,%rdi
  mov    -0x318(%rbp),%eax
  lea    -0x1(%rax),%edx
  mov    -0x298(%rbp),%rsi
  mov    -0x344(%rbp),%eax
  movslq %eax,%rcx
  movslq %edx,%rax
  imul   %rdi,%rax
  add    %rcx,%rax
  movsd  (%rsi,%rax,8),%xmm0
  movsd  %xmm0,-0x80(%rbp)
  mov    %r13,%rdi
  shr    $0x3,%rdi
  mov    -0x318(%rbp),%eax
  lea    -0x2(%rax),%edx
  mov    -0x298(%rbp),%rsi
  mov    -0x344(%rbp),%eax
  movslq %eax,%rcx
  movslq %edx,%rax
  imul   %rdi,%rax
  add    %rcx,%rax
  movsd  (%rsi,%rax,8),%xmm0
  movsd  %xmm0,-0x78(%rbp)
L245:
  mov    -0x340(%rbp),%eax
  cmp    -0x318(%rbp),%eax
  jne    L274
  mov    -0x1f8(%rbp),%rdx
  mov    -0x318(%rbp),%eax
  cltq
  movsd  (%rdx,%rax,8),%xmm0
  movsd  %xmm0,-0x60(%rbp)
  mov    -0x318(%rbp),%eax
  sub    $0x1,%eax
  mov    -0x1f8(%rbp),%rdx
  cltq
  movsd  (%rdx,%rax,8),%xmm0
  movsd  %xmm0,-0x58(%rbp)
  mov    -0x318(%rbp),%eax
  sub    $0x2,%eax
  mov    -0x1f8(%rbp),%rdx
  cltq
  movsd  (%rdx,%rax,8),%xmm0
  movsd  %xmm0,-0x50(%rbp)
  mov    -0x318(%rbp),%eax
  sub    $0x3,%eax
  mov    -0x1f8(%rbp),%rdx
  cltq
  movsd  (%rdx,%rax,8),%xmm0
  movsd  %xmm0,-0x48(%rbp)
  mov    %r13,%rsi
  shr    $0x3,%rsi
  mov    -0x298(%rbp),%rcx
  mov    -0x344(%rbp),%eax
  movslq %eax,%rdx
  mov    -0x318(%rbp),%eax
  cltq
  imul   %rsi,%rax
  add    %rdx,%rax
  movsd  (%rcx,%rax,8),%xmm0
  movsd  %xmm0,-0x90(%rbp)
  mov    %r13,%rdi
  shr    $0x3,%rdi
  mov    -0x318(%rbp),%eax
  lea    -0x1(%rax),%edx
  mov    -0x298(%rbp),%rsi
  mov    -0x344(%rbp),%eax
  movslq %eax,%rcx
  movslq %edx,%rax
  imul   %rdi,%rax
  add    %rcx,%rax
  movsd  (%rsi,%rax,8),%xmm0
  movsd  %xmm0,-0x88(%rbp)
  mov    %r13,%rdi
  shr    $0x3,%rdi
  mov    -0x318(%rbp),%eax
  lea    -0x2(%rax),%edx
  mov    -0x298(%rbp),%rsi
  mov    -0x344(%rbp),%eax
  movslq %eax,%rcx
  movslq %edx,%rax
  imul   %rdi,%rax
  add    %rcx,%rax
  movsd  (%rsi,%rax,8),%xmm0
  movsd  %xmm0,-0x80(%rbp)
  mov    %r13,%rdi
  shr    $0x3,%rdi
  mov    -0x318(%rbp),%eax
  lea    -0x3(%rax),%edx
  mov    -0x298(%rbp),%rsi
  mov    -0x344(%rbp),%eax
  movslq %eax,%rcx
  movslq %edx,%rax
  imul   %rdi,%rax
  add    %rcx,%rax
  movsd  (%rsi,%rax,8),%xmm0
  movsd  %xmm0,-0x78(%rbp)
L274:
  movl   $0x0,-0x330(%rbp)
  jmp    L247
L1049:
  mov    -0x330(%rbp),%eax
  add    $0x1,%eax
  mov    %eax,-0x334(%rbp)
  jmp    L845
L466:
  mov    -0x330(%rbp),%eax
  cltq
  movsd  -0x60(%rbp,%rax,8),%xmm0
  movapd %xmm0,%xmm1
  subsd  -0xd0(%rbp),%xmm1
  mov    -0x334(%rbp),%eax
  cltq
  movsd  -0x90(%rbp,%rax,8),%xmm0
  mulsd  %xmm1,%xmm0
  mov    -0x334(%rbp),%eax
  cltq
  movsd  -0x60(%rbp,%rax,8),%xmm1
  movapd %xmm1,%xmm2
  subsd  -0xd0(%rbp),%xmm2
  mov    -0x330(%rbp),%eax
  cltq
  movsd  -0x90(%rbp,%rax,8),%xmm1
  mulsd  %xmm2,%xmm1
  subsd  %xmm1,%xmm0
  mov    -0x330(%rbp),%eax
  cltq
  movsd  -0x60(%rbp,%rax,8),%xmm1
  subsd  -0xd0(%rbp),%xmm1
  mov    -0x334(%rbp),%eax
  cltq
  movsd  -0x60(%rbp,%rax,8),%xmm2
  subsd  -0xd0(%rbp),%xmm2
  subsd  %xmm2,%xmm1
  divsd  %xmm1,%xmm0
  mov    -0x334(%rbp),%eax
  cltq
  movsd  %xmm0,-0x90(%rbp,%rax,8)
  addl   $0x1,-0x334(%rbp)
L845:
  mov    -0x334(%rbp),%eax
  cmp    -0x324(%rbp),%eax
  jle    L466
  addl   $0x1,-0x330(%rbp)
L247:
  mov    -0x330(%rbp),%eax
  cmp    -0x324(%rbp),%eax
  jl     L1049
  mov    -0x400(%rbp),%rsi
  shr    $0x3,%rsi
  mov    -0x324(%rbp),%eax
  cltq
  movsd  -0x90(%rbp,%rax,8),%xmm0
  mov    -0x198(%rbp),%rcx
  mov    -0x344(%rbp),%eax
  movslq %eax,%rdx
  mov    -0x340(%rbp),%eax
  cltq
  imul   %rsi,%rax
  add    %rdx,%rax
  movsd  %xmm0,(%rcx,%rax,8)
  movsd  -0xe0(%rbp),%xmm0
  addsd  -0xd8(%rbp),%xmm0
  movsd  D127(%rip),%xmm1
  divsd  %xmm1,%xmm0
  movsd  -0x2f0(%rbp),%xmm1
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0x2f0(%rbp)
  addl   $0x1,-0x344(%rbp)
L538:
  mov    -0x344(%rbp),%eax
  cmp    -0x320(%rbp),%eax
  jle    L1167
  addl   $0x1,-0x340(%rbp)
L1059:
  mov    -0x340(%rbp),%eax
  cmp    -0x318(%rbp),%eax
  jle    L1145
  movl   $0x1,-0x340(%rbp)
  jmp    L1118
L636:
  movl   $0x1,-0x344(%rbp)
  jmp    L726
L69:
  mov    -0x3d0(%rbp),%rsi
  shr    $0x3,%rsi
  mov    %rbx,%rdi
  shr    $0x3,%rdi
  mov    -0x1e0(%rbp),%rcx
  mov    -0x344(%rbp),%eax
  movslq %eax,%rdx
  mov    -0x340(%rbp),%eax
  cltq
  imul   %rsi,%rax
  add    %rdx,%rax
  movsd  (%rcx,%rax,8),%xmm0
  mov    -0x250(%rbp),%rcx
  mov    -0x344(%rbp),%eax
  movslq %eax,%rdx
  mov    -0x340(%rbp),%eax
  cltq
  imul   %rdi,%rax
  add    %rdx,%rax
  movsd  %xmm0,(%rcx,%rax,8)
  mov    -0x3e0(%rbp),%rsi
  shr    $0x3,%rsi
  mov    %r12,%rdi
  shr    $0x3,%rdi
  mov    -0x1c8(%rbp),%rcx
  mov    -0x344(%rbp),%eax
  movslq %eax,%rdx
  mov    -0x340(%rbp),%eax
  cltq
  imul   %rsi,%rax
  add    %rdx,%rax
  movsd  (%rcx,%rax,8),%xmm0
  mov    -0x238(%rbp),%rcx
  mov    -0x344(%rbp),%eax
  movslq %eax,%rdx
  mov    -0x340(%rbp),%eax
  cltq
  imul   %rdi,%rax
  add    %rdx,%rax
  movsd  %xmm0,(%rcx,%rax,8)
  mov    -0x3f0(%rbp),%rsi
  shr    $0x3,%rsi
  mov    -0x358(%rbp),%rdi
  shr    $0x3,%rdi
  mov    -0x1b0(%rbp),%rcx
  mov    -0x344(%rbp),%eax
  movslq %eax,%rdx
  mov    -0x340(%rbp),%eax
  cltq
  imul   %rsi,%rax
  add    %rdx,%rax
  movsd  (%rcx,%rax,8),%xmm0
  mov    -0x2b0(%rbp),%rcx
  mov    -0x344(%rbp),%eax
  movslq %eax,%rdx
  mov    -0x340(%rbp),%eax
  cltq
  imul   %rdi,%rax
  add    %rdx,%rax
  movsd  %xmm0,(%rcx,%rax,8)
  mov    -0x400(%rbp),%rsi
  shr    $0x3,%rsi
  mov    %r13,%rdi
  shr    $0x3,%rdi
  mov    -0x198(%rbp),%rcx
  mov    -0x344(%rbp),%eax
  movslq %eax,%rdx
  mov    -0x340(%rbp),%eax
  cltq
  imul   %rsi,%rax
  add    %rdx,%rax
  movsd  (%rcx,%rax,8),%xmm0
  mov    -0x298(%rbp),%rcx
  mov    -0x344(%rbp),%eax
  movslq %eax,%rdx
  mov    -0x340(%rbp),%eax
  cltq
  imul   %rdi,%rax
  add    %rdx,%rax
  movsd  %xmm0,(%rcx,%rax,8)
  addl   $0x1,-0x344(%rbp)
L726:
  mov    -0x344(%rbp),%eax
  cmp    -0x320(%rbp),%eax
  jle    L69
  addl   $0x1,-0x340(%rbp)
L1118:
  mov    -0x340(%rbp),%eax
  cmp    -0x318(%rbp),%eax
  jle    L636
  mov    -0x2f0(%rbp),%rax
  movq   %rax,%xmm0
  call   <log@plt>
  movq   %xmm0,%rdx
  mov    -0x308(%rbp),%rax
  movq   %rdx,%xmm1
  movq   %rax,%xmm0
  lea    D2(%rip),%rax
  mov    %rax,%rdi
  mov    $0x2,%eax
  call   <printf@plt>
  movsd  -0x308(%rbp),%xmm0
  addsd  -0x2c8(%rbp),%xmm0
  movsd  %xmm0,-0x308(%rbp)
L927:
  movsd  D80(%rip),%xmm0
  comisd -0x308(%rbp),%xmm0
  jae    L1127
  mov    $0x0,%eax
  mov    -0x360(%rbp),%rsp
  mov    -0x38(%rbp),%rdx
  sub    %fs:0x28,%rdx
  je     L712
  call   <__stack_chk_fail@plt>
L712:
  lea    -0x28(%rbp),%rsp
  pop    %rbx
  pop    %r12
  pop    %r13
  pop    %r14
  pop    %r15
  pop    %rbp
  ret
```

tool_calls: name: read_data
arguments: data_tag: D14
type_guessed: f64
name: read_data
arguments: data_tag: D128
type_guessed: byte[8]
name: read_data
arguments: data_tag: D50
type_guessed: byte[8]
name: read_data
arguments: data_tag: D77
type_guessed: byte[8]
name: read_data
arguments: data_tag: D69
type_guessed: byte[8]
name: read_data
arguments: data_tag: D56
type_guessed: f32[2]
name: read_data
arguments: data_tag: D127
type_guessed: f64
name: read_data
arguments: data_tag: D2
type_guessed: string
name: read_data
arguments: data_tag: D80
type_guessed: f64

tool: D14: 3

tool: {"D128": [0x7b,0x14,0xae,0x47,0xe1,0x7a,0x84,0x3f]}

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

tool: {"D77": [0x8a,0x86,0xf8,0xe3,0xd6,0xe5,0x7d,0x3f]}

tool: {"D69": [0x03,0x95,0xf1,0xef,0x33,0x2e,0x3c,0x3f]}

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

tool: D127: 2

tool: D2: %g %g


tool: D80: 5.5

assistant: ```c
int main(void) {
  int iy, ix;
  int jy, jx;
  int ky, kx;
  double Ly = 3., Lx = 3.;
  double DQy, DQx, Q2, Q;
  double Qy, Qx, Ky, Kx, K2, K;
  int my = 6, mx = 6;
  int Ny, Ny1, Nx, Nx1;
  int i, k, N = 3;
  double f[5], g[5];
  double x[5], xx;
  Ny = 2 * my + 1;
  Ny1 = Ny + 5;
  Nx = 2 * mx + 1;
  Nx1 = Nx + 5;
  DQy = 2 * Ly / (Ny - 1);
  DQx = 2 * Lx / (Nx - 1);
  double Dt = .01, t;
  double bx[Nx1][Ny1], by[Nx1][Ny1], ex[Nx1][Ny1], ey[Nx1][Ny1], vx[Nx1][Ny1], vy[Nx1][Ny1], ax[Nx1][Ny1], ay[Nx1][Ny1];
  double qx[Nx1], Vx[Nx1][Ny1], Vy[Nx1][Ny1], Bx[Nx1][Ny1], By[Nx1][Ny1];
  double nx, ny, nxp, nyp;
  double lvx[Nx1][Ny1], lvy[Nx1][Ny1], lbx[Nx1][Ny1], lby[Nx1][Ny1], vn, Qb, Qpb, Qv, bb, nlv;
  double energy;
  double wc = 0;
  double nuk = 1 / 1000., num = 1 / 137., Pk, Pm;
  double v2, b2;
  for (iy = 1; iy <= Ny + 4; iy++)
    for (ix = 1; ix <= Nx + 4; ix++) {
      vx[ix][iy] = 4.3 * 10E-5;
      vy[ix][iy] = 4.3 * 10E-5;
      bx[ix][iy] = 4.3 * 10E-5;
      by[ix][iy] = 4.3 * 10E-5;
    }
  for (t = 0; t <= 5.5; t = t + Dt) {
    energy = 0.;
    Pk = nuk;
    Pm = 0.;
    for (ix = 1; ix <= Nx; ix++) {
      Qx = -Lx + (ix - 1) * DQx;
      qx[ix] = Qx;
      for (iy = 1; iy <= Ny; iy++) {
        Qy = -Ly + (iy - 1) * DQy;
        Q2 = Qx * Qx + Qy * Qy;
        Q = sqrt(Q2);
        if (Q != 0.) {
          nx = Qx / Q;
          ny = Qy / Q;
        } else {
          nx = 0;
          ny = 0;
        }
        ex[ix][iy] = ey[ix][iy] = ax[ix][iy] = ay[ix][iy] = 0;
        ex[ix][iy] += -num * Q2 * bx[ix][iy];
        ey[ix][iy] += +bx[ix][iy] - num * Q2 * by[ix][iy];
        ax[ix][iy] += 2 * nx * ny * vx[ix][iy] + 2 * wc * nx * (ny * vx[ix][iy] - nx * vy[ix][iy]) + 2 * wc * vy[ix][iy] - nuk * Q2 * vx[ix][iy];
        ay[ix][iy] += -vx[ix][iy] + 2 * ny * ny * vx[ix][iy] + 2 * wc * ny * (ny * vx[ix][iy] - nx * vy[ix][iy]) - 2 * wc * vx[ix][iy] - nuk * Q2 * vy[ix][iy];
        lvx[ix][iy] = lvy[ix][iy] = lbx[ix][iy] = lby[ix][iy] = 0;
        for (jx = 1; jx <= Nx; jx++) {
          Kx = -Lx + (jx - 1) * DQx;
          kx = ix - jx + mx + 1;
          if (kx < 0)
            goto jump;
          if (kx > Nx)
            goto jump;
          for (jy = 1; jy <= Ny; jy++) {
            Ky = -Ly + (jy - 1) * DQy;
            ky = iy - jy + my + 1;
            if (ky < 0)
              goto jump;
            if (ky > Ny)
              goto jump;
            vn = vx[jx][jy] * Qx + vy[jx][jy] * Qy;
            Qb = Qx * bx[kx][ky] + Qy * by[kx][ky];
            Qv = Qx * vx[jx][jy] + Qy * vy[jx][jy];
            Qpb = Kx * bx[kx][ky] + Ky * by[kx][ky];
            bb = bx[jx][jy] * bx[kx][ky] + by[jx][jy] * by[kx][ky];
            lvx[ix][iy] += vx[kx][ky] * vn + bx[jx][jy] * Qpb - Kx * bb;
            lvy[ix][iy] += vy[kx][ky] * vn + by[jx][jy] * Qpb - Ky * bb;
            lbx[ix][iy] += -vx[kx][ky] * Qb + bx[kx][ky] * Qv;
            lby[ix][iy] += -vy[kx][ky] * Qb + by[kx][ky] * Qv;
          jump:;
          }
        }
        if (Q != 0.) {
          nlv = nx * lvx[Nx1][Ny1] + ny * lvy[Nx1][Ny1];
          lvx[Nx1][Ny1] = nx * nlv;
          lvy[Nx1][Ny1] = ny * nlv;
        }
        vx[ix][iy] += (ax[ix][iy] + lvx[ix][iy]) * Dt;
        vy[ix][iy] += (ay[ix][iy] + lvy[ix][iy]) * Dt;
        bx[ix][iy] += (ex[ix][iy] + lbx[ix][iy]) * Dt;
        by[ix][iy] += (ey[ix][iy] + lby[ix][iy]) * Dt;
        v2 = vx[ix][iy] * vx[ix][iy] + vy[ix][iy] * vy[ix][iy];
        b2 = by[ix][iy] * by[ix][iy] + bx[ix][iy] * bx[ix][iy];
        xx = qx[ix] + Qy * Dt;
        if (ix == 1) {
          x[0] = qx[1];
          x[1] = qx[2];
          x[2] = qx[3];
          x[3] = qx[4];
          f[0] = vx[1][iy];
          f[1] = vx[2][iy];
          f[2] = vx[3][iy];
          f[3] = vx[4][iy];
        }
        if (ix > 1 && ix < Nx - 1) {
          x[0] = qx[ix - 1];
          x[1] = qx[ix];
          x[2] = qx[ix + 1];
          x[3] = qx[ix + 2];
          f[0] = vx[ix - 1][iy];
          f[1] = vx[ix][iy];
          f[2] = vx[ix + 1][iy];
          f[3] = vx[ix + 2][iy];
        }
        if (ix == Nx - 1) {
          x[0] = qx[Nx - 1];
          x[1] = qx[Nx];
          x[2] = qx[Nx - 1];
          x[3] = qx[Nx - 2];
          f[0] = vx[Nx - 1][iy];
          f[1] = vx[Nx][iy];
          f[2] = vx[Nx - 1][iy];
          f[3] = vx[Nx - 2][iy];
        }
        if (ix == Nx) {
          x[0] = qx[Nx];
          x[1] = qx[Nx - 1];
          x[2] = qx[Nx - 2];
          x[3] = qx[Nx - 3];
          f[0] = vx[Nx][iy];
          f[1] = vx[Nx - 1][iy];
          f[2] = vx[Nx - 2][iy];
          f[3] = vx[Nx - 3][iy];
        }
        for (k = 0; k < N; k++)
          for (i = k + 1; i <= N; i++) {
            f[i] = ((x[k] - xx) * f[i] - (x[i] - xx) * f[k]) / ((x[k] - xx) - (x[i] - xx));
          }
        Vx[ix][iy] = f[N];
        if (ix == 1) {
          x[0] = qx[1];
          x[1] = qx[2];
          x[2] = qx[3];
          x[3] = qx[4];
          f[0] = bx[1][iy];
          f[1] = bx[2][iy];
          f[2] = bx[3][iy];
          f[3] = bx[4][iy];
        }
        if (ix > 1 && ix < Nx - 1) {
          x[0] = qx[ix - 1];
          x[1] = qx[ix];
          x[2] = qx[ix + 1];
          x[3] = qx[ix + 2];
          f[0] = bx[ix - 1][iy];
          f[1] = bx[ix][iy];
          f[2] = bx[ix + 1][iy];
          f[3] = bx[ix + 2][iy];
        }
        if (ix == Nx - 1) {
          x[0] = qx[Nx - 1];
          x[1] = qx[Nx];
          x[2] = qx[Nx - 1];
          x[3] = qx[Nx - 2];
          f[0] = bx[Nx - 1][iy];
          f[1] = bx[Nx][iy];
          f[2] = bx[Nx - 1][iy];
          f[3] = bx[Nx - 2][iy];
        }
        if (ix == Nx) {
          x[0] = qx[Nx];
          x[1] = qx[Nx - 1];
          x[2] = qx[Nx - 2];
          x[3] = qx[Nx - 3];
          f[0] = bx[Nx][iy];
          f[1] = bx[Nx - 1][iy];
          f[2] = bx[Nx - 2][iy];
          f[3] = bx[Nx - 3][iy];
        }
        for (k = 0; k < N; k++)
          for (i = k + 1; i <= N; i++) {
            f[i] = ((x[k] - xx) * f[i] - (x[i] - xx) * f[k]) / ((x[k] - xx) - (x[i] - xx));
          }
        Bx[ix][iy] = f[N];
        if (ix == 1) {
          x[0] = qx[1];
          x[1] = qx[2];
          x[2] = qx[3];
          x[3] = qx[4];
          f[0] = vy[1][iy];
          f[1] = vy[2][iy];
          f[2] = vy[3][iy];
          f[3] = vy[4][iy];
        }
        if (ix > 1 && ix < Nx - 1) {
          x[0] = qx[ix - 1];
          x[1] = qx[ix];
          x[2] = qx[ix + 1];
          x[3] = qx[ix + 2];
          f[0] = vy[ix - 1][iy];
          f[1] = vy[ix][iy];
          f[2] = vy[ix + 1][iy];
          f[3] = vy[ix + 2][iy];
        }
        if (ix == Nx - 1) {
          x[0] = qx[Nx - 1];
          x[1] = qx[Nx];
          x[2] = qx[Nx - 1];
          x[3] = qx[Nx - 2];
          f[0] = vy[Nx - 1][iy];
          f[1] = vy[Nx][iy];
          f[2] = vy[Nx - 1][iy];
          f[3] = vy[Nx - 2][iy];
        }
        if (ix == Nx) {
          x[0] = qx[Nx];
          x[1] = qx[Nx - 1];
          x[2] = qx[Nx - 2];
          x[3] = qx[Nx - 3];
          f[0] = vy[Nx][iy];
          f[1] = vy[Nx - 1][iy];
          f[2] = vy[Nx - 2][iy];
          f[3] = vy[Nx - 3][iy];
        }
        for (k = 0; k < N; k++)
          for (i = k + 1; i <= N; i++) {
            f[i] = ((x[k] - xx) * f[i] - (x[i] - xx) * f[k]) / ((x[k] - xx) - (x[i] - xx));
          }
        Vy[ix][iy] = f[N];
        if (ix == 1) {
          x[0] = qx[1];
          x[1] = qx[2];
          x[2] = qx[3];
          x[3] = qx[4];
          f[0] = by[1][iy];
          f[1] = by[2][iy];
          f[2] = by[3][iy];
          f[3] = by[4][iy];
        }
        if (ix > 1 && ix < Nx - 1) {
          x[0] = qx[ix - 1];
          x[1] = qx[ix];
          x[2] = qx[ix + 1];
          x[3] = qx[ix + 2];
          f[0] = by[ix - 1][iy];
          f[1] = by[ix][iy];
          f[2] = by[ix + 1][iy];
          f[3] = by[ix + 2][iy];
        }
        if (ix == Nx - 1) {
          x[0] = qx[Nx - 1];
          x[1] = qx[Nx];
          x[2] = qx[Nx - 1];
          x[3] = qx[Nx - 2];
          f[0] = by[Nx - 1][iy];
          f[1] = by[Nx][iy];
          f[2] = by[Nx - 1][iy];
          f[3] = by[Nx - 2][iy];
        }
        if (ix == Nx) {
          x[0] = qx[Nx];
          x[1] = qx[Nx - 1];
          x[2] = qx[Nx - 2];
          x[3] = qx[Nx - 3];
          f[0] = by[Nx][iy];
          f[1] = by[Nx - 1][iy];
          f[2] = by[Nx - 2][iy];
          f[3] = by[Nx - 3][iy];
        }
        for (k = 0; k < N; k++)
          for (i = k + 1; i <= N; i++) {
            f[i] = ((x[k] - xx) * f[i] - (x[i] - xx) * f[k]) / ((x[k] - xx) - (x[i] - xx));
          }
        By[ix][iy] = f[N];
        energy += (v2 + b2) / 2.;
      }
    }
    for (ix = 1; ix <= Nx; ix++) {
      for (iy = 1; iy <= Ny; iy++) {
        vx[ix][iy] = Vx[ix][iy];
        vy[ix][iy] = Vy[ix][iy];
        bx[ix][iy] = Bx[ix][iy];
        by[ix][iy] = By[ix][iy];
      }
    }
    printf("%g %g\n", t, log(energy));
  }
  return 0;
}
```