user: 这段汇编代码用C语言表示是什么样的:

```asm
<cu_compute_matrix_stamps>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  push   %rbx
  sub    $0x118,%rsp
  mov    %edi,-0x104(%rbp)
  mov    %esi,-0x108(%rbp)
  mov    %edx,-0x10c(%rbp)
  mov    %ecx,-0x110(%rbp)
  mov    %r8d,-0x114(%rbp)
  mov    %r9d,-0x118(%rbp)
  mov    -0x110(%rbp),%eax
  cltq
  shl    $0x3,%rax
  mov    %rax,%rdi
  call   <malloc@plt>
  mov    %rax,-0x48(%rbp)
  mov    -0x114(%rbp),%eax
  cltq
  shl    $0x3,%rax
  mov    %rax,%rdi
  call   <malloc@plt>
  mov    %rax,-0x40(%rbp)
  mov    -0x110(%rbp),%eax
  cltq
  shl    $0x3,%rax
  mov    %rax,%rdi
  call   <malloc@plt>
  mov    %rax,-0x38(%rbp)
  mov    -0x114(%rbp),%eax
  cltq
  shl    $0x3,%rax
  mov    %rax,%rdi
  call   <malloc@plt>
  mov    %rax,-0x30(%rbp)
  movl   $0x0,-0xdc(%rbp)
  jmp    L1224
L110:
  pxor   %xmm0,%xmm0
  cvtsi2sdl -0xdc(%rbp),%xmm0
  mov    -0x110(%rbp),%eax
  sub    $0x1,%eax
  pxor   %xmm2,%xmm2
  cvtsi2sd %eax,%xmm2
  movsd  D12(%rip),%xmm1
  mulsd  %xmm2,%xmm1
  subsd  %xmm1,%xmm0
  mov    -0x110(%rbp),%eax
  sub    $0x1,%eax
  pxor   %xmm1,%xmm1
  cvtsi2sd %eax,%xmm1
  mov    -0xdc(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x48(%rbp),%rax
  add    %rdx,%rax
  divsd  %xmm1,%xmm0
  movsd  %xmm0,(%rax)
  addl   $0x1,-0xdc(%rbp)
L1224:
  mov    -0xdc(%rbp),%eax
  cmp    -0x110(%rbp),%eax
  jl     L110
  movl   $0x0,-0xdc(%rbp)
  jmp    L857
L804:
  pxor   %xmm0,%xmm0
  cvtsi2sdl -0xdc(%rbp),%xmm0
  mov    -0x114(%rbp),%eax
  sub    $0x1,%eax
  pxor   %xmm2,%xmm2
  cvtsi2sd %eax,%xmm2
  movsd  D12(%rip),%xmm1
  mulsd  %xmm2,%xmm1
  subsd  %xmm1,%xmm0
  mov    -0x114(%rbp),%eax
  sub    $0x1,%eax
  pxor   %xmm1,%xmm1
  cvtsi2sd %eax,%xmm1
  mov    -0xdc(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x40(%rbp),%rax
  add    %rdx,%rax
  divsd  %xmm1,%xmm0
  movsd  %xmm0,(%rax)
  addl   $0x1,-0xdc(%rbp)
L857:
  mov    -0xdc(%rbp),%eax
  cmp    -0x114(%rbp),%eax
  jl     L804
  movl   $0x0,-0xbc(%rbp)
  jmp    L854
L1307:
  movl   $0x0,-0xc0(%rbp)
  jmp    L373
L1015:
  mov    0x60(%rbp),%eax
  imul   -0xbc(%rbp),%eax
  mov    %eax,%edx
  mov    -0xc0(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    0x50(%rbp),%rax
  add    %rdx,%rax
  pxor   %xmm0,%xmm0
  movsd  %xmm0,(%rax)
  addl   $0x1,-0xc0(%rbp)
L373:
  mov    -0xc0(%rbp),%eax
  cmp    0x60(%rbp),%eax
  jl     L1015
  addl   $0x1,-0xbc(%rbp)
L854:
  mov    -0xbc(%rbp),%eax
  cmp    0x68(%rbp),%eax
  jl     L1307
  mov    -0x104(%rbp),%eax
  lea    0x1(%rax),%edx
  mov    -0x104(%rbp),%eax
  add    $0x2,%eax
  imul   %edx,%eax
  mov    %eax,%edx
  shr    $0x1f,%edx
  add    %edx,%eax
  sar    %eax
  mov    %eax,-0xb8(%rbp)
  mov    -0x108(%rbp),%eax
  lea    0x1(%rax),%edx
  mov    -0x108(%rbp),%eax
  add    $0x2,%eax
  imul   %edx,%eax
  mov    %eax,%edx
  shr    $0x1f,%edx
  add    %edx,%eax
  sar    %eax
  mov    %eax,-0xb4(%rbp)
  movl   $0x0,-0xbc(%rbp)
  jmp    L966
L108:
  movl   $0x0,-0xc0(%rbp)
  jmp    L12
L886:
  mov    -0xc0(%rbp),%eax
  cmp    -0xb8(%rbp),%eax
  jl     L1004
  mov    -0xc0(%rbp),%eax
  sub    -0xb8(%rbp),%eax
  cltd
  idivl  -0xb4(%rbp)
  add    $0x1,%eax
  jmp    L94
L1004:
  mov    $0x0,%eax
L94:
  mov    %eax,-0xb0(%rbp)
  mov    -0xbc(%rbp),%eax
  cmp    -0xb8(%rbp),%eax
  jl     L620
  mov    -0xbc(%rbp),%eax
  sub    -0xb8(%rbp),%eax
  cltd
  idivl  -0xb4(%rbp)
  add    $0x1,%eax
  jmp    L214
L620:
  mov    $0x0,%eax
L214:
  mov    %eax,-0xac(%rbp)
  movl   $0x0,-0xf4(%rbp)
  mov    -0xf4(%rbp),%eax
  mov    %eax,-0xf8(%rbp)
  mov    -0xb0(%rbp),%eax
  cmp    0x40(%rbp),%eax
  jge    L22
  mov    -0xb0(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    0x28(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%eax
  mov    %eax,-0xf8(%rbp)
  mov    -0xb0(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    0x30(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%eax
  mov    %eax,-0xf4(%rbp)
L22:
  mov    -0xac(%rbp),%eax
  cmp    0x40(%rbp),%eax
  jge    L59
  mov    -0xac(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    0x28(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%eax
  mov    %eax,-0xf0(%rbp)
  mov    -0xac(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    0x30(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%eax
  mov    %eax,-0xec(%rbp)
L59:
  cmpl   $0x0,-0xb0(%rbp)
  jne    L1292
  mov    -0x104(%rbp),%eax
  mov    %eax,-0xe8(%rbp)
  mov    -0xc0(%rbp),%eax
  mov    %eax,-0x100(%rbp)
  jmp    L357
L1292:
  mov    -0xb0(%rbp),%eax
  cmp    0x40(%rbp),%eax
  jge    L399
  mov    -0x108(%rbp),%eax
  mov    %eax,-0xe8(%rbp)
  mov    -0xc0(%rbp),%eax
  sub    -0xb8(%rbp),%eax
  mov    -0xb0(%rbp),%edx
  sub    $0x1,%edx
  imul   -0xb4(%rbp),%edx
  sub    %edx,%eax
  mov    %eax,-0x100(%rbp)
  jmp    L357
L399:
  mov    -0x10c(%rbp),%eax
  mov    %eax,-0xe8(%rbp)
  mov    -0xc0(%rbp),%eax
  sub    -0xb8(%rbp),%eax
  mov    -0xb0(%rbp),%edx
  sub    $0x1,%edx
  imul   -0xb4(%rbp),%edx
  sub    %edx,%eax
  mov    %eax,-0x100(%rbp)
L357:
  cmpl   $0x0,-0xac(%rbp)
  jne    L959
  mov    -0x104(%rbp),%eax
  mov    %eax,-0xe4(%rbp)
  mov    -0xbc(%rbp),%eax
  mov    %eax,-0xfc(%rbp)
  jmp    L1175
L959:
  mov    -0xac(%rbp),%eax
  cmp    0x40(%rbp),%eax
  jge    L723
  mov    -0x108(%rbp),%eax
  mov    %eax,-0xe4(%rbp)
  mov    -0xbc(%rbp),%eax
  sub    -0xb8(%rbp),%eax
  mov    -0xac(%rbp),%edx
  sub    $0x1,%edx
  imul   -0xb4(%rbp),%edx
  sub    %edx,%eax
  mov    %eax,-0xfc(%rbp)
  jmp    L1175
L723:
  mov    -0x10c(%rbp),%eax
  mov    %eax,-0xe4(%rbp)
  mov    -0xbc(%rbp),%eax
  sub    -0xb8(%rbp),%eax
  mov    -0xac(%rbp),%edx
  sub    $0x1,%edx
  imul   -0xb4(%rbp),%edx
  sub    %edx,%eax
  mov    %eax,-0xfc(%rbp)
L1175:
  cmpl   $0x0,-0xb0(%rbp)
  jle    L372
  mov    -0xb0(%rbp),%eax
  cmp    0x40(%rbp),%eax
  jge    L372
  cmpl   $0x0,-0xac(%rbp)
  jle    L372
  mov    -0xac(%rbp),%eax
  cmp    0x40(%rbp),%eax
  jge    L372
  mov    -0x100(%rbp),%eax
  cmp    -0xfc(%rbp),%eax
  jg     L258
L372:
  mov    -0x100(%rbp),%eax
  mov    %eax,-0xa8(%rbp)
  mov    -0xfc(%rbp),%eax
  mov    %eax,-0xa4(%rbp)
  movl   $0x0,-0xe0(%rbp)
  movl   $0x0,-0xd8(%rbp)
  jmp    L413
L950:
  movl   $0x0,-0xd4(%rbp)
  jmp    L137
L123:
  mov    -0xe0(%rbp),%eax
  cmp    -0x100(%rbp),%eax
  jne    L753
  mov    -0xd8(%rbp),%eax
  mov    %eax,-0xd0(%rbp)
  mov    -0xd4(%rbp),%eax
  mov    %eax,-0xcc(%rbp)
L753:
  addl   $0x1,-0xe0(%rbp)
  addl   $0x1,-0xd4(%rbp)
L137:
  mov    -0xe8(%rbp),%eax
  sub    -0xd8(%rbp),%eax
  cmp    %eax,-0xd4(%rbp)
  jle    L123
  addl   $0x1,-0xd8(%rbp)
L413:
  mov    -0xd8(%rbp),%eax
  cmp    -0xe8(%rbp),%eax
  jle    L950
  movl   $0x0,-0xe0(%rbp)
  movl   $0x0,-0xd8(%rbp)
  jmp    L1304
L457:
  movl   $0x0,-0xd4(%rbp)
  jmp    L392
L1053:
  mov    -0xe0(%rbp),%eax
  cmp    -0xfc(%rbp),%eax
  jne    L74
  mov    -0xd8(%rbp),%eax
  mov    %eax,-0xc8(%rbp)
  mov    -0xd4(%rbp),%eax
  mov    %eax,-0xc4(%rbp)
L74:
  addl   $0x1,-0xe0(%rbp)
  addl   $0x1,-0xd4(%rbp)
L392:
  mov    -0xe4(%rbp),%eax
  sub    -0xd8(%rbp),%eax
  cmp    %eax,-0xd4(%rbp)
  jle    L1053
  addl   $0x1,-0xd8(%rbp)
L1304:
  mov    -0xd8(%rbp),%eax
  cmp    -0xe4(%rbp),%eax
  jle    L457
  movl   $0x0,-0xdc(%rbp)
  jmp    L885
L699:
  mov    -0xd0(%rbp),%edx
  mov    -0xc8(%rbp),%eax
  add    %edx,%eax
  pxor   %xmm0,%xmm0
  cvtsi2sd %eax,%xmm0
  mov    -0xdc(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x48(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%rax
  mov    -0xdc(%rbp),%edx
  movslq %edx,%rdx
  lea    0x0(,%rdx,8),%rcx
  mov    -0x38(%rbp),%rdx
  lea    (%rcx,%rdx,1),%rbx
  movapd %xmm0,%xmm1
  movq   %rax,%xmm0
  call   <pow@plt>
  movq   %xmm0,%rax
  mov    %rax,(%rbx)
  addl   $0x1,-0xdc(%rbp)
L885:
  mov    -0xdc(%rbp),%eax
  cmp    -0x110(%rbp),%eax
  jl     L699
  movl   $0x0,-0xdc(%rbp)
  jmp    L200
L654:
  mov    -0xcc(%rbp),%edx
  mov    -0xc4(%rbp),%eax
  add    %edx,%eax
  pxor   %xmm0,%xmm0
  cvtsi2sd %eax,%xmm0
  mov    -0xdc(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x40(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%rax
  mov    -0xdc(%rbp),%edx
  movslq %edx,%rdx
  lea    0x0(,%rdx,8),%rcx
  mov    -0x30(%rbp),%rdx
  lea    (%rcx,%rdx,1),%rbx
  movapd %xmm0,%xmm1
  movq   %rax,%xmm0
  call   <pow@plt>
  movq   %xmm0,%rax
  mov    %rax,(%rbx)
  addl   $0x1,-0xdc(%rbp)
L200:
  mov    -0xdc(%rbp),%eax
  cmp    -0x114(%rbp),%eax
  jl     L654
  movsd  D23(%rip),%xmm0
  movsd  %xmm0,-0x28(%rbp)
  movsd  -0x28(%rbp),%xmm0
  movsd  %xmm0,-0x20(%rbp)
  pxor   %xmm0,%xmm0
  movsd  %xmm0,-0x88(%rbp)
  cmpl   $0x0,-0xb0(%rbp)
  jne    L439
  cmpl   $0x0,-0xac(%rbp)
  jne    L878
  movl   $0x0,-0x100(%rbp)
  jmp    L816
L741:
  mov    -0x100(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    0x20(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  cvttsd2si %xmm0,%eax
  sub    0x10(%rbp),%eax
  mov    $0x0,%edx
  test   %eax,%eax
  cmovs  %edx,%eax
  mov    %eax,-0xa0(%rbp)
  mov    -0x100(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    0x20(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  cvttsd2si %xmm0,%edx
  mov    0x10(%rbp),%eax
  add    %eax,%edx
  mov    -0x114(%rbp),%eax
  cmp    %edx,%eax
  cmovg  %edx,%eax
  mov    %eax,-0x9c(%rbp)
  mov    -0x100(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    0x18(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  cvttsd2si %xmm0,%eax
  sub    0x10(%rbp),%eax
  mov    $0x0,%edx
  test   %eax,%eax
  cmovs  %edx,%eax
  mov    %eax,-0x98(%rbp)
  mov    -0x100(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    0x18(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  cvttsd2si %xmm0,%edx
  mov    0x10(%rbp),%eax
  add    %eax,%edx
  mov    -0x110(%rbp),%eax
  cmp    %edx,%eax
  cmovg  %edx,%eax
  mov    %eax,-0x94(%rbp)
  mov    -0xa0(%rbp),%eax
  mov    %eax,-0xdc(%rbp)
  jmp    L888
L192:
  mov    -0x110(%rbp),%eax
  imul   -0xdc(%rbp),%eax
  mov    %eax,%edx
  mov    -0x98(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    0x70(%rbp),%rax
  add    %rdx,%rax
  mov    %rax,-0x78(%rbp)
  mov    -0x110(%rbp),%eax
  imul   -0xdc(%rbp),%eax
  mov    %eax,%edx
  mov    -0x98(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    0x70(%rbp),%rax
  add    %rdx,%rax
  mov    %rax,-0x68(%rbp)
  mov    -0x110(%rbp),%eax
  imul   -0xdc(%rbp),%eax
  mov    %eax,%edx
  mov    -0x98(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    0x80(%rbp),%rax
  add    %rdx,%rax
  mov    %rax,-0x58(%rbp)
  mov    -0x110(%rbp),%eax
  imul   -0xdc(%rbp),%eax
  mov    %eax,%edx
  mov    -0x98(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    0x88(%rbp),%rax
  add    %rdx,%rax
  mov    %rax,-0x50(%rbp)
  mov    -0x98(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x38(%rbp),%rax
  add    %rdx,%rax
  mov    %rax,-0x80(%rbp)
  mov    -0xdc(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x30(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  movsd  %xmm0,-0x18(%rbp)
  mov    -0x98(%rbp),%eax
  mov    %eax,-0xe0(%rbp)
  jmp    L805
L252:
  mov    -0x80(%rbp),%rax
  lea    0x8(%rax),%rdx
  mov    %rdx,-0x80(%rbp)
  movsd  (%rax),%xmm0
  movapd %xmm0,%xmm1
  mulsd  -0x18(%rbp),%xmm1
  mov    -0x78(%rbp),%rax
  lea    0x8(%rax),%rdx
  mov    %rdx,-0x78(%rbp)
  movsd  (%rax),%xmm0
  mulsd  %xmm0,%xmm1
  mov    -0x68(%rbp),%rax
  lea    0x8(%rax),%rdx
  mov    %rdx,-0x68(%rbp)
  movsd  (%rax),%xmm0
  mulsd  %xmm0,%xmm1
  mov    -0x58(%rbp),%rax
  lea    0x8(%rax),%rdx
  mov    %rdx,-0x58(%rbp)
  movsd  (%rax),%xmm0
  mulsd  %xmm0,%xmm1
  mov    -0x50(%rbp),%rax
  lea    0x8(%rax),%rdx
  mov    %rdx,-0x50(%rbp)
  movsd  (%rax),%xmm0
  mulsd  %xmm1,%xmm0
  movsd  -0x88(%rbp),%xmm1
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0x88(%rbp)
  addl   $0x1,-0xe0(%rbp)
L805:
  mov    -0xe0(%rbp),%eax
  cmp    -0x94(%rbp),%eax
  jl     L252
  addl   $0x1,-0xdc(%rbp)
L888:
  mov    -0xdc(%rbp),%eax
  cmp    -0x9c(%rbp),%eax
  jl     L192
  addl   $0x1,-0x100(%rbp)
L816:
  mov    -0x100(%rbp),%eax
  cmp    -0x118(%rbp),%eax
  jl     L741
  jmp    L1000
L878:
  mov    -0xac(%rbp),%eax
  cmp    0x40(%rbp),%eax
  jge    L344
  movl   $0x0,-0x100(%rbp)
  jmp    L1037
L454:
  mov    -0x100(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    0x20(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  cvttsd2si %xmm0,%eax
  sub    0x10(%rbp),%eax
  mov    $0x0,%edx
  test   %eax,%eax
  cmovs  %edx,%eax
  mov    %eax,-0xa0(%rbp)
  mov    -0x100(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    0x20(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  cvttsd2si %xmm0,%edx
  mov    0x10(%rbp),%eax
  add    %eax,%edx
  mov    -0x114(%rbp),%eax
  cmp    %edx,%eax
  cmovg  %edx,%eax
  mov    %eax,-0x9c(%rbp)
  mov    -0x100(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    0x18(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  cvttsd2si %xmm0,%eax
  sub    0x10(%rbp),%eax
  mov    $0x0,%edx
  test   %eax,%eax
  cmovs  %edx,%eax
  mov    %eax,-0x98(%rbp)
  mov    -0x100(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    0x18(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  cvttsd2si %xmm0,%edx
  mov    0x10(%rbp),%eax
  add    %eax,%edx
  mov    -0x110(%rbp),%eax
  cmp    %edx,%eax
  cmovg  %edx,%eax
  mov    %eax,-0x94(%rbp)
  mov    -0xa0(%rbp),%eax
  mov    %eax,-0xdc(%rbp)
  jmp    L1120
L30:
  mov    -0x110(%rbp),%eax
  imul   -0xdc(%rbp),%eax
  mov    %eax,%edx
  mov    -0x98(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    0x70(%rbp),%rax
  add    %rdx,%rax
  mov    %rax,-0x78(%rbp)
  mov    -0x110(%rbp),%eax
  imul   -0xdc(%rbp),%eax
  mov    %eax,%edx
  mov    -0x98(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    0x70(%rbp),%rax
  add    %rdx,%rax
  mov    %rax,-0x68(%rbp)
  mov    -0xac(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    0x38(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%eax
  test   %eax,%eax
  je     L1308
  mov    -0x98(%rbp),%edx
  mov    -0xf0(%rbp),%eax
  lea    (%rdx,%rax,1),%ecx
  mov    -0xdc(%rbp),%edx
  mov    -0xec(%rbp),%eax
  add    %edx,%eax
  imul   -0x110(%rbp),%eax
  add    %ecx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    0x78(%rbp),%rax
  add    %rdx,%rax
  mov    %rax,-0x60(%rbp)
  jmp    L205
L1308:
  mov    -0x98(%rbp),%edx
  mov    -0xf0(%rbp),%eax
  lea    (%rdx,%rax,1),%ecx
  mov    -0xdc(%rbp),%edx
  mov    -0xec(%rbp),%eax
  add    %edx,%eax
  imul   -0x110(%rbp),%eax
  add    %ecx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    0x70(%rbp),%rax
  add    %rdx,%rax
  mov    %rax,-0x60(%rbp)
L205:
  mov    -0x110(%rbp),%eax
  imul   -0xdc(%rbp),%eax
  mov    %eax,%edx
  mov    -0x98(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    0x80(%rbp),%rax
  add    %rdx,%rax
  mov    %rax,-0x58(%rbp)
  mov    -0x110(%rbp),%eax
  imul   -0xdc(%rbp),%eax
  mov    %eax,%edx
  mov    -0x98(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    0x88(%rbp),%rax
  add    %rdx,%rax
  mov    %rax,-0x50(%rbp)
  mov    -0x98(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x38(%rbp),%rax
  add    %rdx,%rax
  mov    %rax,-0x80(%rbp)
  mov    -0xdc(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x30(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  movsd  %xmm0,-0x18(%rbp)
  mov    -0x98(%rbp),%eax
  mov    %eax,-0xe0(%rbp)
  jmp    L222
L1269:
  mov    -0x80(%rbp),%rax
  lea    0x8(%rax),%rdx
  mov    %rdx,-0x80(%rbp)
  movsd  (%rax),%xmm0
  movapd %xmm0,%xmm1
  mulsd  -0x18(%rbp),%xmm1
  mov    -0x78(%rbp),%rax
  lea    0x8(%rax),%rdx
  mov    %rdx,-0x78(%rbp)
  movsd  (%rax),%xmm0
  mulsd  %xmm0,%xmm1
  mov    -0x60(%rbp),%rax
  lea    0x8(%rax),%rdx
  mov    %rdx,-0x60(%rbp)
  movsd  (%rax),%xmm0
  mov    -0x68(%rbp),%rax
  lea    0x8(%rax),%rdx
  mov    %rdx,-0x68(%rbp)
  movsd  (%rax),%xmm2
  subsd  %xmm2,%xmm0
  mulsd  %xmm0,%xmm1
  mov    -0x58(%rbp),%rax
  lea    0x8(%rax),%rdx
  mov    %rdx,-0x58(%rbp)
  movsd  (%rax),%xmm0
  mulsd  %xmm0,%xmm1
  mov    -0x50(%rbp),%rax
  lea    0x8(%rax),%rdx
  mov    %rdx,-0x50(%rbp)
  movsd  (%rax),%xmm0
  mulsd  %xmm1,%xmm0
  movsd  -0x88(%rbp),%xmm1
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0x88(%rbp)
  addl   $0x1,-0xe0(%rbp)
L222:
  mov    -0xe0(%rbp),%eax
  cmp    -0x94(%rbp),%eax
  jl     L1269
  addl   $0x1,-0xdc(%rbp)
L1120:
  mov    -0xdc(%rbp),%eax
  cmp    -0x9c(%rbp),%eax
  jl     L30
  addl   $0x1,-0x100(%rbp)
L1037:
  mov    -0x100(%rbp),%eax
  cmp    -0x118(%rbp),%eax
  jl     L454
  jmp    L1000
L344:
  movl   $0x0,-0x100(%rbp)
  jmp    L486
L897:
  mov    -0x100(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    0x20(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  cvttsd2si %xmm0,%eax
  sub    0x10(%rbp),%eax
  mov    $0x0,%edx
  test   %eax,%eax
  cmovs  %edx,%eax
  mov    %eax,-0xa0(%rbp)
  mov    -0x100(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    0x20(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  cvttsd2si %xmm0,%edx
  mov    0x10(%rbp),%eax
  add    %eax,%edx
  mov    -0x114(%rbp),%eax
  cmp    %edx,%eax
  cmovg  %edx,%eax
  mov    %eax,-0x9c(%rbp)
  mov    -0x100(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    0x18(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  cvttsd2si %xmm0,%eax
  sub    0x10(%rbp),%eax
  mov    $0x0,%edx
  test   %eax,%eax
  cmovs  %edx,%eax
  mov    %eax,-0x98(%rbp)
  mov    -0x100(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    0x18(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  cvttsd2si %xmm0,%edx
  mov    0x10(%rbp),%eax
  add    %eax,%edx
  mov    -0x110(%rbp),%eax
  cmp    %edx,%eax
  cmovg  %edx,%eax
  mov    %eax,-0x94(%rbp)
  mov    -0xa0(%rbp),%eax
  mov    %eax,-0xdc(%rbp)
  jmp    L287
L680:
  mov    -0x110(%rbp),%eax
  imul   -0xdc(%rbp),%eax
  mov    %eax,%edx
  mov    -0x98(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    0x70(%rbp),%rax
  add    %rdx,%rax
  mov    %rax,-0x78(%rbp)
  mov    -0x110(%rbp),%eax
  imul   -0xdc(%rbp),%eax
  mov    %eax,%edx
  mov    -0x98(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    0x80(%rbp),%rax
  add    %rdx,%rax
  mov    %rax,-0x58(%rbp)
  mov    -0x110(%rbp),%eax
  imul   -0xdc(%rbp),%eax
  mov    %eax,%edx
  mov    -0x98(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    0x88(%rbp),%rax
  add    %rdx,%rax
  mov    %rax,-0x50(%rbp)
  mov    -0x98(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x38(%rbp),%rax
  add    %rdx,%rax
  mov    %rax,-0x80(%rbp)
  mov    -0xdc(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x30(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  movsd  %xmm0,-0x18(%rbp)
  mov    -0x98(%rbp),%eax
  mov    %eax,-0xe0(%rbp)
  jmp    L981
L671:
  mov    -0x80(%rbp),%rax
  lea    0x8(%rax),%rdx
  mov    %rdx,-0x80(%rbp)
  movsd  (%rax),%xmm0
  movapd %xmm0,%xmm1
  mulsd  -0x18(%rbp),%xmm1
  mov    -0x78(%rbp),%rax
  lea    0x8(%rax),%rdx
  mov    %rdx,-0x78(%rbp)
  movsd  (%rax),%xmm0
  mulsd  %xmm0,%xmm1
  mov    -0x58(%rbp),%rax
  lea    0x8(%rax),%rdx
  mov    %rdx,-0x58(%rbp)
  movsd  (%rax),%xmm0
  mulsd  %xmm0,%xmm1
  mov    -0x50(%rbp),%rax
  lea    0x8(%rax),%rdx
  mov    %rdx,-0x50(%rbp)
  movsd  (%rax),%xmm0
  mulsd  %xmm1,%xmm0
  movsd  -0x88(%rbp),%xmm1
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0x88(%rbp)
  addl   $0x1,-0xe0(%rbp)
L981:
  mov    -0xe0(%rbp),%eax
  cmp    -0x94(%rbp),%eax
  jl     L671
  addl   $0x1,-0xdc(%rbp)
L287:
  mov    -0xdc(%rbp),%eax
  cmp    -0x9c(%rbp),%eax
  jl     L680
  addl   $0x1,-0x100(%rbp)
L486:
  mov    -0x100(%rbp),%eax
  cmp    -0x118(%rbp),%eax
  jl     L897
  jmp    L1000
L439:
  mov    -0xb0(%rbp),%eax
  cmp    0x40(%rbp),%eax
  jge    L879
  cmpl   $0x0,-0xac(%rbp)
  jne    L641
  movl   $0x0,-0x100(%rbp)
  jmp    L665
L820:
  mov    -0x100(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    0x20(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  cvttsd2si %xmm0,%eax
  sub    0x10(%rbp),%eax
  mov    $0x0,%edx
  test   %eax,%eax
  cmovs  %edx,%eax
  mov    %eax,-0xa0(%rbp)
  mov    -0x100(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    0x20(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  cvttsd2si %xmm0,%edx
  mov    0x10(%rbp),%eax
  add    %eax,%edx
  mov    -0x114(%rbp),%eax
  cmp    %edx,%eax
  cmovg  %edx,%eax
  mov    %eax,-0x9c(%rbp)
  mov    -0x100(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    0x18(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  cvttsd2si %xmm0,%eax
  sub    0x10(%rbp),%eax
  mov    $0x0,%edx
  test   %eax,%eax
  cmovs  %edx,%eax
  mov    %eax,-0x98(%rbp)
  mov    -0x100(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    0x18(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  cvttsd2si %xmm0,%edx
  mov    0x10(%rbp),%eax
  add    %eax,%edx
  mov    -0x110(%rbp),%eax
  cmp    %edx,%eax
  cmovg  %edx,%eax
  mov    %eax,-0x94(%rbp)
  mov    -0xa0(%rbp),%eax
  mov    %eax,-0xdc(%rbp)
  jmp    L371
L1081:
  mov    -0x110(%rbp),%eax
  imul   -0xdc(%rbp),%eax
  mov    %eax,%edx
  mov    -0x98(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    0x70(%rbp),%rax
  add    %rdx,%rax
  mov    %rax,-0x78(%rbp)
  mov    -0xb0(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    0x38(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%eax
  test   %eax,%eax
  je     L1172
  mov    -0x98(%rbp),%edx
  mov    -0xf8(%rbp),%eax
  lea    (%rdx,%rax,1),%ecx
  mov    -0xdc(%rbp),%edx
  mov    -0xf4(%rbp),%eax
  add    %edx,%eax
  imul   -0x110(%rbp),%eax
  add    %ecx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    0x78(%rbp),%rax
  add    %rdx,%rax
  mov    %rax,-0x70(%rbp)
  jmp    L43
L1172:
  mov    -0x98(%rbp),%edx
  mov    -0xf8(%rbp),%eax
  lea    (%rdx,%rax,1),%ecx
  mov    -0xdc(%rbp),%edx
  mov    -0xf4(%rbp),%eax
  add    %edx,%eax
  imul   -0x110(%rbp),%eax
  add    %ecx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    0x70(%rbp),%rax
  add    %rdx,%rax
  mov    %rax,-0x70(%rbp)
L43:
  mov    -0x110(%rbp),%eax
  imul   -0xdc(%rbp),%eax
  mov    %eax,%edx
  mov    -0x98(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    0x70(%rbp),%rax
  add    %rdx,%rax
  mov    %rax,-0x68(%rbp)
  mov    -0x110(%rbp),%eax
  imul   -0xdc(%rbp),%eax
  mov    %eax,%edx
  mov    -0x98(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    0x80(%rbp),%rax
  add    %rdx,%rax
  mov    %rax,-0x58(%rbp)
  mov    -0x110(%rbp),%eax
  imul   -0xdc(%rbp),%eax
  mov    %eax,%edx
  mov    -0x98(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    0x88(%rbp),%rax
  add    %rdx,%rax
  mov    %rax,-0x50(%rbp)
  mov    -0x98(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x38(%rbp),%rax
  add    %rdx,%rax
  mov    %rax,-0x80(%rbp)
  mov    -0xdc(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x30(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  movsd  %xmm0,-0x18(%rbp)
  mov    -0x98(%rbp),%eax
  mov    %eax,-0xe0(%rbp)
  jmp    L524
L305:
  mov    -0x80(%rbp),%rax
  lea    0x8(%rax),%rdx
  mov    %rdx,-0x80(%rbp)
  movsd  (%rax),%xmm0
  movapd %xmm0,%xmm1
  mulsd  -0x18(%rbp),%xmm1
  mov    -0x70(%rbp),%rax
  lea    0x8(%rax),%rdx
  mov    %rdx,-0x70(%rbp)
  movsd  (%rax),%xmm0
  mov    -0x78(%rbp),%rax
  lea    0x8(%rax),%rdx
  mov    %rdx,-0x78(%rbp)
  movsd  (%rax),%xmm2
  subsd  %xmm2,%xmm0
  mulsd  %xmm0,%xmm1
  mov    -0x68(%rbp),%rax
  lea    0x8(%rax),%rdx
  mov    %rdx,-0x68(%rbp)
  movsd  (%rax),%xmm0
  mulsd  %xmm0,%xmm1
  mov    -0x58(%rbp),%rax
  lea    0x8(%rax),%rdx
  mov    %rdx,-0x58(%rbp)
  movsd  (%rax),%xmm0
  mulsd  %xmm0,%xmm1
  mov    -0x50(%rbp),%rax
  lea    0x8(%rax),%rdx
  mov    %rdx,-0x50(%rbp)
  movsd  (%rax),%xmm0
  mulsd  %xmm1,%xmm0
  movsd  -0x88(%rbp),%xmm1
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0x88(%rbp)
  addl   $0x1,-0xe0(%rbp)
L524:
  mov    -0xe0(%rbp),%eax
  cmp    -0x94(%rbp),%eax
  jl     L305
  addl   $0x1,-0xdc(%rbp)
L371:
  mov    -0xdc(%rbp),%eax
  cmp    -0x9c(%rbp),%eax
  jl     L1081
  addl   $0x1,-0x100(%rbp)
L665:
  mov    -0x100(%rbp),%eax
  cmp    -0x118(%rbp),%eax
  jl     L820
  jmp    L1000
L641:
  mov    -0xac(%rbp),%eax
  cmp    0x40(%rbp),%eax
  jge    L960
  movl   $0x0,-0x100(%rbp)
  jmp    L511
L922:
  mov    -0x100(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    0x20(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  cvttsd2si %xmm0,%eax
  sub    0x10(%rbp),%eax
  mov    $0x0,%edx
  test   %eax,%eax
  cmovs  %edx,%eax
  mov    %eax,-0xa0(%rbp)
  mov    -0x100(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    0x20(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  cvttsd2si %xmm0,%edx
  mov    0x10(%rbp),%eax
  add    %eax,%edx
  mov    -0x114(%rbp),%eax
  cmp    %edx,%eax
  cmovg  %edx,%eax
  mov    %eax,-0x9c(%rbp)
  mov    -0x100(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    0x18(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  cvttsd2si %xmm0,%eax
  sub    0x10(%rbp),%eax
  mov    $0x0,%edx
  test   %eax,%eax
  cmovs  %edx,%eax
  mov    %eax,-0x98(%rbp)
  mov    -0x100(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    0x18(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  cvttsd2si %xmm0,%edx
  mov    0x10(%rbp),%eax
  add    %eax,%edx
  mov    -0x110(%rbp),%eax
  cmp    %edx,%eax
  cmovg  %edx,%eax
  mov    %eax,-0x94(%rbp)
  mov    -0xa0(%rbp),%eax
  mov    %eax,-0xdc(%rbp)
  jmp    L1019
L668:
  mov    -0x110(%rbp),%eax
  imul   -0xdc(%rbp),%eax
  mov    %eax,%edx
  mov    -0x98(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    0x70(%rbp),%rax
  add    %rdx,%rax
  mov    %rax,-0x78(%rbp)
  mov    -0x110(%rbp),%eax
  imul   -0xdc(%rbp),%eax
  mov    %eax,%edx
  mov    -0x98(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    0x70(%rbp),%rax
  add    %rdx,%rax
  mov    %rax,-0x68(%rbp)
  mov    -0xb0(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    0x38(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%eax
  test   %eax,%eax
  je     L998
  mov    -0x98(%rbp),%edx
  mov    -0xf8(%rbp),%eax
  lea    (%rdx,%rax,1),%ecx
  mov    -0xdc(%rbp),%edx
  mov    -0xf4(%rbp),%eax
  add    %edx,%eax
  imul   -0x110(%rbp),%eax
  add    %ecx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    0x78(%rbp),%rax
  add    %rdx,%rax
  mov    %rax,-0x70(%rbp)
  jmp    L356
L998:
  mov    -0x98(%rbp),%edx
  mov    -0xf8(%rbp),%eax
  lea    (%rdx,%rax,1),%ecx
  mov    -0xdc(%rbp),%edx
  mov    -0xf4(%rbp),%eax
  add    %edx,%eax
  imul   -0x110(%rbp),%eax
  add    %ecx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    0x70(%rbp),%rax
  add    %rdx,%rax
  mov    %rax,-0x70(%rbp)
L356:
  mov    -0xac(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    0x38(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%eax
  test   %eax,%eax
  je     L797
  mov    -0x98(%rbp),%edx
  mov    -0xf0(%rbp),%eax
  lea    (%rdx,%rax,1),%ecx
  mov    -0xdc(%rbp),%edx
  mov    -0xec(%rbp),%eax
  add    %edx,%eax
  imul   -0x110(%rbp),%eax
  add    %ecx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    0x78(%rbp),%rax
  add    %rdx,%rax
  mov    %rax,-0x60(%rbp)
  jmp    L391
L797:
  mov    -0x98(%rbp),%edx
  mov    -0xf0(%rbp),%eax
  lea    (%rdx,%rax,1),%ecx
  mov    -0xdc(%rbp),%edx
  mov    -0xec(%rbp),%eax
  add    %edx,%eax
  imul   -0x110(%rbp),%eax
  add    %ecx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    0x70(%rbp),%rax
  add    %rdx,%rax
  mov    %rax,-0x60(%rbp)
L391:
  mov    -0x110(%rbp),%eax
  imul   -0xdc(%rbp),%eax
  mov    %eax,%edx
  mov    -0x98(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    0x80(%rbp),%rax
  add    %rdx,%rax
  mov    %rax,-0x58(%rbp)
  mov    -0x110(%rbp),%eax
  imul   -0xdc(%rbp),%eax
  mov    %eax,%edx
  mov    -0x98(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    0x88(%rbp),%rax
  add    %rdx,%rax
  mov    %rax,-0x50(%rbp)
  mov    -0x98(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x38(%rbp),%rax
  add    %rdx,%rax
  mov    %rax,-0x80(%rbp)
  mov    -0xdc(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x30(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  movsd  %xmm0,-0x18(%rbp)
  mov    -0x98(%rbp),%eax
  mov    %eax,-0xe0(%rbp)
  jmp    L44
L731:
  mov    -0x80(%rbp),%rax
  lea    0x8(%rax),%rdx
  mov    %rdx,-0x80(%rbp)
  movsd  (%rax),%xmm0
  movapd %xmm0,%xmm1
  mulsd  -0x18(%rbp),%xmm1
  mov    -0x70(%rbp),%rax
  lea    0x8(%rax),%rdx
  mov    %rdx,-0x70(%rbp)
  movsd  (%rax),%xmm0
  mov    -0x78(%rbp),%rax
  lea    0x8(%rax),%rdx
  mov    %rdx,-0x78(%rbp)
  movsd  (%rax),%xmm2
  subsd  %xmm2,%xmm0
  mulsd  %xmm0,%xmm1
  mov    -0x60(%rbp),%rax
  lea    0x8(%rax),%rdx
  mov    %rdx,-0x60(%rbp)
  movsd  (%rax),%xmm0
  mov    -0x68(%rbp),%rax
  lea    0x8(%rax),%rdx
  mov    %rdx,-0x68(%rbp)
  movsd  (%rax),%xmm2
  subsd  %xmm2,%xmm0
  mulsd  %xmm0,%xmm1
  mov    -0x58(%rbp),%rax
  lea    0x8(%rax),%rdx
  mov    %rdx,-0x58(%rbp)
  movsd  (%rax),%xmm0
  mulsd  %xmm0,%xmm1
  mov    -0x50(%rbp),%rax
  lea    0x8(%rax),%rdx
  mov    %rdx,-0x50(%rbp)
  movsd  (%rax),%xmm0
  mulsd  %xmm1,%xmm0
  movsd  -0x88(%rbp),%xmm1
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0x88(%rbp)
  addl   $0x1,-0xe0(%rbp)
L44:
  mov    -0xe0(%rbp),%eax
  cmp    -0x94(%rbp),%eax
  jl     L731
  addl   $0x1,-0xdc(%rbp)
L1019:
  mov    -0xdc(%rbp),%eax
  cmp    -0x9c(%rbp),%eax
  jl     L668
  addl   $0x1,-0x100(%rbp)
L511:
  mov    -0x100(%rbp),%eax
  cmp    -0x118(%rbp),%eax
  jl     L922
  jmp    L1000
L960:
  movl   $0x0,-0x100(%rbp)
  jmp    L851
L239:
  mov    -0x100(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    0x20(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  cvttsd2si %xmm0,%eax
  sub    0x10(%rbp),%eax
  mov    $0x0,%edx
  test   %eax,%eax
  cmovs  %edx,%eax
  mov    %eax,-0xa0(%rbp)
  mov    -0x100(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    0x20(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  cvttsd2si %xmm0,%edx
  mov    0x10(%rbp),%eax
  add    %eax,%edx
  mov    -0x114(%rbp),%eax
  cmp    %edx,%eax
  cmovg  %edx,%eax
  mov    %eax,-0x9c(%rbp)
  mov    -0x100(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    0x18(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  cvttsd2si %xmm0,%eax
  sub    0x10(%rbp),%eax
  mov    $0x0,%edx
  test   %eax,%eax
  cmovs  %edx,%eax
  mov    %eax,-0x98(%rbp)
  mov    -0x100(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    0x18(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  cvttsd2si %xmm0,%edx
  mov    0x10(%rbp),%eax
  add    %eax,%edx
  mov    -0x110(%rbp),%eax
  cmp    %edx,%eax
  cmovg  %edx,%eax
  mov    %eax,-0x94(%rbp)
  mov    -0xa0(%rbp),%eax
  mov    %eax,-0xdc(%rbp)
  jmp    L436
L327:
  mov    -0x110(%rbp),%eax
  imul   -0xdc(%rbp),%eax
  mov    %eax,%edx
  mov    -0x98(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    0x70(%rbp),%rax
  add    %rdx,%rax
  mov    %rax,-0x78(%rbp)
  mov    -0xb0(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    0x38(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%eax
  test   %eax,%eax
  je     L442
  mov    -0x98(%rbp),%edx
  mov    -0xf8(%rbp),%eax
  lea    (%rdx,%rax,1),%ecx
  mov    -0xdc(%rbp),%edx
  mov    -0xf4(%rbp),%eax
  add    %edx,%eax
  imul   -0x110(%rbp),%eax
  add    %ecx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    0x78(%rbp),%rax
  add    %rdx,%rax
  mov    %rax,-0x70(%rbp)
  jmp    L1258
L442:
  mov    -0x98(%rbp),%edx
  mov    -0xf8(%rbp),%eax
  lea    (%rdx,%rax,1),%ecx
  mov    -0xdc(%rbp),%edx
  mov    -0xf4(%rbp),%eax
  add    %edx,%eax
  imul   -0x110(%rbp),%eax
  add    %ecx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    0x70(%rbp),%rax
  add    %rdx,%rax
  mov    %rax,-0x70(%rbp)
L1258:
  mov    -0x110(%rbp),%eax
  imul   -0xdc(%rbp),%eax
  mov    %eax,%edx
  mov    -0x98(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    0x80(%rbp),%rax
  add    %rdx,%rax
  mov    %rax,-0x58(%rbp)
  mov    -0x110(%rbp),%eax
  imul   -0xdc(%rbp),%eax
  mov    %eax,%edx
  mov    -0x98(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    0x88(%rbp),%rax
  add    %rdx,%rax
  mov    %rax,-0x50(%rbp)
  mov    -0x98(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x38(%rbp),%rax
  add    %rdx,%rax
  mov    %rax,-0x80(%rbp)
  mov    -0xdc(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x30(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  movsd  %xmm0,-0x18(%rbp)
  mov    -0x98(%rbp),%eax
  mov    %eax,-0xe0(%rbp)
  jmp    L844
L829:
  mov    -0x80(%rbp),%rax
  lea    0x8(%rax),%rdx
  mov    %rdx,-0x80(%rbp)
  movsd  (%rax),%xmm0
  movapd %xmm0,%xmm1
  mulsd  -0x18(%rbp),%xmm1
  mov    -0x70(%rbp),%rax
  lea    0x8(%rax),%rdx
  mov    %rdx,-0x70(%rbp)
  movsd  (%rax),%xmm0
  mov    -0x78(%rbp),%rax
  lea    0x8(%rax),%rdx
  mov    %rdx,-0x78(%rbp)
  movsd  (%rax),%xmm2
  subsd  %xmm2,%xmm0
  mulsd  %xmm0,%xmm1
  mov    -0x58(%rbp),%rax
  lea    0x8(%rax),%rdx
  mov    %rdx,-0x58(%rbp)
  movsd  (%rax),%xmm0
  mulsd  %xmm0,%xmm1
  mov    -0x50(%rbp),%rax
  lea    0x8(%rax),%rdx
  mov    %rdx,-0x50(%rbp)
  movsd  (%rax),%xmm0
  mulsd  %xmm1,%xmm0
  movsd  -0x88(%rbp),%xmm1
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0x88(%rbp)
  addl   $0x1,-0xe0(%rbp)
L844:
  mov    -0xe0(%rbp),%eax
  cmp    -0x94(%rbp),%eax
  jl     L829
  addl   $0x1,-0xdc(%rbp)
L436:
  mov    -0xdc(%rbp),%eax
  cmp    -0x9c(%rbp),%eax
  jl     L327
  addl   $0x1,-0x100(%rbp)
L851:
  mov    -0x100(%rbp),%eax
  cmp    -0x118(%rbp),%eax
  jl     L239
  jmp    L1000
L879:
  cmpl   $0x0,-0xac(%rbp)
  jne    L56
  movl   $0x0,-0x100(%rbp)
  jmp    L722
L776:
  mov    -0x100(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    0x20(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  cvttsd2si %xmm0,%eax
  sub    0x10(%rbp),%eax
  mov    $0x0,%edx
  test   %eax,%eax
  cmovs  %edx,%eax
  mov    %eax,-0xa0(%rbp)
  mov    -0x100(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    0x20(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  cvttsd2si %xmm0,%edx
  mov    0x10(%rbp),%eax
  add    %eax,%edx
  mov    -0x114(%rbp),%eax
  cmp    %edx,%eax
  cmovg  %edx,%eax
  mov    %eax,-0x9c(%rbp)
  mov    -0x100(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    0x18(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  cvttsd2si %xmm0,%eax
  sub    0x10(%rbp),%eax
  mov    $0x0,%edx
  test   %eax,%eax
  cmovs  %edx,%eax
  mov    %eax,-0x98(%rbp)
  mov    -0x100(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    0x18(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  cvttsd2si %xmm0,%edx
  mov    0x10(%rbp),%eax
  add    %eax,%edx
  mov    -0x110(%rbp),%eax
  cmp    %edx,%eax
  cmovg  %edx,%eax
  mov    %eax,-0x94(%rbp)
  mov    -0xa0(%rbp),%eax
  mov    %eax,-0xdc(%rbp)
  jmp    L1198
L177:
  mov    -0x110(%rbp),%eax
  imul   -0xdc(%rbp),%eax
  mov    %eax,%edx
  mov    -0x98(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    0x70(%rbp),%rax
  add    %rdx,%rax
  mov    %rax,-0x68(%rbp)
  mov    -0x110(%rbp),%eax
  imul   -0xdc(%rbp),%eax
  mov    %eax,%edx
  mov    -0x98(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    0x80(%rbp),%rax
  add    %rdx,%rax
  mov    %rax,-0x58(%rbp)
  mov    -0x110(%rbp),%eax
  imul   -0xdc(%rbp),%eax
  mov    %eax,%edx
  mov    -0x98(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    0x88(%rbp),%rax
  add    %rdx,%rax
  mov    %rax,-0x50(%rbp)
  mov    -0x98(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x38(%rbp),%rax
  add    %rdx,%rax
  mov    %rax,-0x80(%rbp)
  mov    -0xdc(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x30(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  movsd  %xmm0,-0x18(%rbp)
  mov    -0x98(%rbp),%eax
  mov    %eax,-0xe0(%rbp)
  jmp    L243
L711:
  mov    -0x80(%rbp),%rax
  lea    0x8(%rax),%rdx
  mov    %rdx,-0x80(%rbp)
  movsd  (%rax),%xmm0
  movapd %xmm0,%xmm1
  mulsd  -0x18(%rbp),%xmm1
  mov    -0x68(%rbp),%rax
  lea    0x8(%rax),%rdx
  mov    %rdx,-0x68(%rbp)
  movsd  (%rax),%xmm0
  mulsd  %xmm0,%xmm1
  mov    -0x58(%rbp),%rax
  lea    0x8(%rax),%rdx
  mov    %rdx,-0x58(%rbp)
  movsd  (%rax),%xmm0
  mulsd  %xmm0,%xmm1
  mov    -0x50(%rbp),%rax
  lea    0x8(%rax),%rdx
  mov    %rdx,-0x50(%rbp)
  movsd  (%rax),%xmm0
  mulsd  %xmm1,%xmm0
  movsd  -0x88(%rbp),%xmm1
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0x88(%rbp)
  addl   $0x1,-0xe0(%rbp)
L243:
  mov    -0xe0(%rbp),%eax
  cmp    -0x94(%rbp),%eax
  jl     L711
  addl   $0x1,-0xdc(%rbp)
L1198:
  mov    -0xdc(%rbp),%eax
  cmp    -0x9c(%rbp),%eax
  jl     L177
  addl   $0x1,-0x100(%rbp)
L722:
  mov    -0x100(%rbp),%eax
  cmp    -0x118(%rbp),%eax
  jl     L776
  jmp    L1000
L56:
  mov    -0xac(%rbp),%eax
  cmp    0x40(%rbp),%eax
  jge    L1084
  movl   $0x0,-0x100(%rbp)
  jmp    L295
L387:
  mov    -0x100(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    0x20(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  cvttsd2si %xmm0,%eax
  sub    0x10(%rbp),%eax
  mov    $0x0,%edx
  test   %eax,%eax
  cmovs  %edx,%eax
  mov    %eax,-0xa0(%rbp)
  mov    -0x100(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    0x20(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  cvttsd2si %xmm0,%edx
  mov    0x10(%rbp),%eax
  add    %eax,%edx
  mov    -0x114(%rbp),%eax
  cmp    %edx,%eax
  cmovg  %edx,%eax
  mov    %eax,-0x9c(%rbp)
  mov    -0x100(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    0x18(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  cvttsd2si %xmm0,%eax
  sub    0x10(%rbp),%eax
  mov    $0x0,%edx
  test   %eax,%eax
  cmovs  %edx,%eax
  mov    %eax,-0x98(%rbp)
  mov    -0x100(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    0x18(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  cvttsd2si %xmm0,%edx
  mov    0x10(%rbp),%eax
  add    %eax,%edx
  mov    -0x110(%rbp),%eax
  cmp    %edx,%eax
  cmovg  %edx,%eax
  mov    %eax,-0x94(%rbp)
  mov    -0xa0(%rbp),%eax
  mov    %eax,-0xdc(%rbp)
  jmp    L68
L928:
  mov    -0x110(%rbp),%eax
  imul   -0xdc(%rbp),%eax
  mov    %eax,%edx
  mov    -0x98(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    0x70(%rbp),%rax
  add    %rdx,%rax
  mov    %rax,-0x68(%rbp)
  mov    -0xac(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    0x38(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%eax
  test   %eax,%eax
  je     L151
  mov    -0x98(%rbp),%edx
  mov    -0xf0(%rbp),%eax
  lea    (%rdx,%rax,1),%ecx
  mov    -0xdc(%rbp),%edx
  mov    -0xec(%rbp),%eax
  add    %edx,%eax
  imul   -0x110(%rbp),%eax
  add    %ecx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    0x78(%rbp),%rax
  add    %rdx,%rax
  mov    %rax,-0x60(%rbp)
  jmp    L929
L151:
  mov    -0x98(%rbp),%edx
  mov    -0xf0(%rbp),%eax
  lea    (%rdx,%rax,1),%ecx
  mov    -0xdc(%rbp),%edx
  mov    -0xec(%rbp),%eax
  add    %edx,%eax
  imul   -0x110(%rbp),%eax
  add    %ecx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    0x70(%rbp),%rax
  add    %rdx,%rax
  mov    %rax,-0x60(%rbp)
L929:
  mov    -0x110(%rbp),%eax
  imul   -0xdc(%rbp),%eax
  mov    %eax,%edx
  mov    -0x98(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    0x80(%rbp),%rax
  add    %rdx,%rax
  mov    %rax,-0x58(%rbp)
  mov    -0x110(%rbp),%eax
  imul   -0xdc(%rbp),%eax
  mov    %eax,%edx
  mov    -0x98(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    0x88(%rbp),%rax
  add    %rdx,%rax
  mov    %rax,-0x50(%rbp)
  mov    -0x98(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x38(%rbp),%rax
  add    %rdx,%rax
  mov    %rax,-0x80(%rbp)
  mov    -0xdc(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x30(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  movsd  %xmm0,-0x18(%rbp)
  mov    -0x98(%rbp),%eax
  mov    %eax,-0xe0(%rbp)
  jmp    L158
L1289:
  mov    -0x80(%rbp),%rax
  lea    0x8(%rax),%rdx
  mov    %rdx,-0x80(%rbp)
  movsd  (%rax),%xmm0
  movapd %xmm0,%xmm1
  mulsd  -0x18(%rbp),%xmm1
  mov    -0x60(%rbp),%rax
  lea    0x8(%rax),%rdx
  mov    %rdx,-0x60(%rbp)
  movsd  (%rax),%xmm0
  mov    -0x68(%rbp),%rax
  lea    0x8(%rax),%rdx
  mov    %rdx,-0x68(%rbp)
  movsd  (%rax),%xmm2
  subsd  %xmm2,%xmm0
  mulsd  %xmm0,%xmm1
  mov    -0x58(%rbp),%rax
  lea    0x8(%rax),%rdx
  mov    %rdx,-0x58(%rbp)
  movsd  (%rax),%xmm0
  mulsd  %xmm0,%xmm1
  mov    -0x50(%rbp),%rax
  lea    0x8(%rax),%rdx
  mov    %rdx,-0x50(%rbp)
  movsd  (%rax),%xmm0
  mulsd  %xmm1,%xmm0
  movsd  -0x88(%rbp),%xmm1
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0x88(%rbp)
  addl   $0x1,-0xe0(%rbp)
L158:
  mov    -0xe0(%rbp),%eax
  cmp    -0x94(%rbp),%eax
  jl     L1289
  addl   $0x1,-0xdc(%rbp)
L68:
  mov    -0xdc(%rbp),%eax
  cmp    -0x9c(%rbp),%eax
  jl     L928
  addl   $0x1,-0x100(%rbp)
L295:
  mov    -0x100(%rbp),%eax
  cmp    -0x118(%rbp),%eax
  jl     L387
  jmp    L1000
L1084:
  movl   $0x0,-0x100(%rbp)
  jmp    L1111
L1088:
  mov    -0x100(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    0x20(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  cvttsd2si %xmm0,%eax
  sub    0x10(%rbp),%eax
  mov    $0x0,%edx
  test   %eax,%eax
  cmovs  %edx,%eax
  mov    %eax,-0xa0(%rbp)
  mov    -0x100(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    0x20(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  cvttsd2si %xmm0,%edx
  mov    0x10(%rbp),%eax
  add    %eax,%edx
  mov    -0x114(%rbp),%eax
  cmp    %edx,%eax
  cmovg  %edx,%eax
  mov    %eax,-0x9c(%rbp)
  mov    -0x100(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    0x18(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  cvttsd2si %xmm0,%eax
  sub    0x10(%rbp),%eax
  mov    $0x0,%edx
  test   %eax,%eax
  cmovs  %edx,%eax
  mov    %eax,-0x98(%rbp)
  mov    -0x100(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    0x18(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  cvttsd2si %xmm0,%edx
  mov    0x10(%rbp),%eax
  add    %eax,%edx
  mov    -0x110(%rbp),%eax
  cmp    %edx,%eax
  cmovg  %edx,%eax
  mov    %eax,-0x94(%rbp)
  mov    -0xa0(%rbp),%eax
  mov    %eax,-0xdc(%rbp)
  jmp    L1107
L10:
  mov    -0x110(%rbp),%eax
  imul   -0xdc(%rbp),%eax
  mov    %eax,%edx
  mov    -0x98(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    0x80(%rbp),%rax
  add    %rdx,%rax
  mov    %rax,-0x58(%rbp)
  mov    -0x110(%rbp),%eax
  imul   -0xdc(%rbp),%eax
  mov    %eax,%edx
  mov    -0x98(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    0x88(%rbp),%rax
  add    %rdx,%rax
  mov    %rax,-0x50(%rbp)
  mov    -0x98(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x38(%rbp),%rax
  add    %rdx,%rax
  mov    %rax,-0x80(%rbp)
  mov    -0xdc(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x30(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  movsd  %xmm0,-0x18(%rbp)
  mov    -0x98(%rbp),%eax
  mov    %eax,-0xe0(%rbp)
  jmp    L468
L795:
  mov    -0x80(%rbp),%rax
  lea    0x8(%rax),%rdx
  mov    %rdx,-0x80(%rbp)
  movsd  (%rax),%xmm0
  movapd %xmm0,%xmm1
  mulsd  -0x18(%rbp),%xmm1
  mov    -0x58(%rbp),%rax
  lea    0x8(%rax),%rdx
  mov    %rdx,-0x58(%rbp)
  movsd  (%rax),%xmm0
  mulsd  %xmm0,%xmm1
  mov    -0x50(%rbp),%rax
  lea    0x8(%rax),%rdx
  mov    %rdx,-0x50(%rbp)
  movsd  (%rax),%xmm0
  mulsd  %xmm1,%xmm0
  movsd  -0x88(%rbp),%xmm1
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0x88(%rbp)
  addl   $0x1,-0xe0(%rbp)
L468:
  mov    -0xe0(%rbp),%eax
  cmp    -0x94(%rbp),%eax
  jl     L795
  addl   $0x1,-0xdc(%rbp)
L1107:
  mov    -0xdc(%rbp),%eax
  cmp    -0x9c(%rbp),%eax
  jl     L10
  addl   $0x1,-0x100(%rbp)
L1111:
  mov    -0x100(%rbp),%eax
  cmp    -0x118(%rbp),%eax
  jl     L1088
L1000:
  mov    0x60(%rbp),%eax
  imul   -0xbc(%rbp),%eax
  mov    %eax,%edx
  mov    -0xc0(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    0x50(%rbp),%rax
  add    %rdx,%rax
  movsd  -0x88(%rbp),%xmm0
  movsd  %xmm0,(%rax)
  mov    0x60(%rbp),%eax
  imul   -0xc0(%rbp),%eax
  mov    %eax,%edx
  mov    -0xbc(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    0x50(%rbp),%rax
  add    %rdx,%rax
  movsd  -0x88(%rbp),%xmm0
  movsd  %xmm0,(%rax)
  cmpl   $0x0,-0xb0(%rbp)
  jle    L605
  mov    -0xb0(%rbp),%eax
  cmp    0x40(%rbp),%eax
  jge    L605
  cmpl   $0x0,-0xac(%rbp)
  jle    L605
  mov    -0xac(%rbp),%eax
  cmp    0x40(%rbp),%eax
  jge    L605
  mov    -0xb0(%rbp),%eax
  sub    $0x1,%eax
  imul   -0xb4(%rbp),%eax
  mov    %eax,%edx
  mov    -0xb8(%rbp),%eax
  add    %edx,%eax
  mov    %eax,-0x90(%rbp)
  mov    -0xac(%rbp),%eax
  sub    $0x1,%eax
  imul   -0xb4(%rbp),%eax
  mov    %eax,%edx
  mov    -0xb8(%rbp),%eax
  add    %edx,%eax
  mov    %eax,-0x8c(%rbp)
  mov    -0x90(%rbp),%edx
  mov    -0xa4(%rbp),%eax
  lea    (%rdx,%rax,1),%ecx
  mov    -0x8c(%rbp),%edx
  mov    -0xa8(%rbp),%eax
  add    %edx,%eax
  imul   0x60(%rbp),%eax
  add    %ecx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    0x50(%rbp),%rax
  add    %rdx,%rax
  movsd  -0x88(%rbp),%xmm0
  movsd  %xmm0,(%rax)
  mov    -0x8c(%rbp),%edx
  mov    -0xa8(%rbp),%eax
  lea    (%rdx,%rax,1),%ecx
  mov    -0x90(%rbp),%edx
  mov    -0xa4(%rbp),%eax
  add    %edx,%eax
  imul   0x60(%rbp),%eax
  add    %ecx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    0x50(%rbp),%rax
  add    %rdx,%rax
  movsd  -0x88(%rbp),%xmm0
  movsd  %xmm0,(%rax)
  jmp    L605
L258:
  nop
L605:
  addl   $0x1,-0xc0(%rbp)
L12:
  mov    -0xc0(%rbp),%eax
  cmp    -0xbc(%rbp),%eax
  jle    L886
  addl   $0x1,-0xbc(%rbp)
L966:
  mov    -0xbc(%rbp),%eax
  cmp    0x68(%rbp),%eax
  jl     L108
  nop
  nop
  mov    -0x8(%rbp),%rbx
  leave
  ret
```

tool_calls: name: unpack_data
arguments: label: D12
type: f64
name: unpack_data
arguments: label: D23
type: f64

tool: D12: 0.5

tool: D23: 1

assistant: ```c
void cu_compute_matrix_stamps(int dp, int ds, int db, int nx, int ny, int nstamps, int stamp_half_width, double *stamp_xpos, double *stamp_ypos, int *kxindex, int *kyindex, int *ext_basis, int nkernel, int kernelRadius, double *H, int BlockDimx, int gridDimx, int gridDimy, double *tex0, double *tex1, double *tex3, double *tex4) {
  int idx, idy, idx0, idy0, idx1, idy1;
  int np, ns, ki, kj, a, b, c, d, d1, d2, i, j, i1, i2, j1, j2;
  int l, m, l1, m1, l2, m2;
  double *px, *py, *x, *y, Bi, Bj, temp, pyj;
  double *ppx;
  double *pBi1, *pBi2, *pBj1, *pBj2, *pt3, *pt4;
  int blockIdx, blockIdy;
  x = (double *)malloc(nx * sizeof(double));
  y = (double *)malloc(ny * sizeof(double));
  px = (double *)malloc(nx * sizeof(double));
  py = (double *)malloc(ny * sizeof(double));
  for (j = 0; j < nx; j++) {
    x[j] = (j - 0.5 * (nx - 1)) / (nx - 1);
  }
  for (j = 0; j < ny; j++) {
    y[j] = (j - 0.5 * (ny - 1)) / (ny - 1);
  }
  for (blockIdy = 0; blockIdy < gridDimy; blockIdy++) {
    for (blockIdx = 0; blockIdx < gridDimx; blockIdx++) {
      H[blockIdx + gridDimx * blockIdy] = 0.0;
    }
  }
  np = (dp + 1) * (dp + 2) / 2;
  ns = (ds + 1) * (ds + 2) / 2;
  for (blockIdy = 0; blockIdy < gridDimy; blockIdy++) {
    for (blockIdx = 0; blockIdx <= blockIdy; blockIdx++) {
      ki = blockIdx < np ? 0 : (blockIdx - np) / ns + 1;
      kj = blockIdy < np ? 0 : (blockIdy - np) / ns + 1;
      a = b = 0;
      if (ki < nkernel) {
        a = kxindex[ki];
        b = kyindex[ki];
      }
      if (kj < nkernel) {
        c = kxindex[kj];
        d = kyindex[kj];
      }
      if (ki == 0) {
        d1 = dp;
        idx = blockIdx;
      } else if (ki < nkernel) {
        d1 = ds;
        idx = blockIdx - np - (ki - 1) * ns;
      } else {
        d1 = db;
        idx = blockIdx - np - (ki - 1) * ns;
      }
      if (kj == 0) {
        d2 = dp;
        idy = blockIdy;
      } else if (kj < nkernel) {
        d2 = ds;
        idy = blockIdy - np - (kj - 1) * ns;
      } else {
        d2 = db;
        idy = blockIdy - np - (kj - 1) * ns;
      }
      if ((ki > 0) && (ki < nkernel) && (kj > 0) && (kj < nkernel) && (idx > idy)) {
        continue;
      }
      idx0 = idx;
      idy0 = idy;
      i = 0;
      for (l = 0; l <= d1; l++) {
        for (m = 0; m <= d1 - l; m++) {
          if (i == idx) {
            l1 = l;
            m1 = m;
          }
          i++;
        }
      }
      i = 0;
      for (l = 0; l <= d2; l++) {
        for (m = 0; m <= d2 - l; m++) {
          if (i == idy) {
            l2 = l;
            m2 = m;
          }
          i++;
        }
      }
      for (j = 0; j < nx; j++) {
        px[j] = pow(x[j], l1 + l2);
      }
      for (j = 0; j < ny; j++) {
        py[j] = pow(y[j], m1 + m2);
      }
      Bi = Bj = 1.0;
      temp = 0.0;
      if (ki == 0) {
        if (kj == 0) {
          for (idx = 0; idx < nstamps; idx++) {
            j1 = ((0) > ((int)stamp_ypos[idx] - stamp_half_width) ? (0) : ((int)stamp_ypos[idx] - stamp_half_width));
            j2 = ((ny) < ((int)stamp_ypos[idx] + stamp_half_width) ? (ny) : ((int)stamp_ypos[idx] + stamp_half_width));
            i1 = ((0) > ((int)stamp_xpos[idx] - stamp_half_width) ? (0) : ((int)stamp_xpos[idx] - stamp_half_width));
            i2 = ((nx) < ((int)stamp_xpos[idx] + stamp_half_width) ? (nx) : ((int)stamp_xpos[idx] + stamp_half_width));
            for (j = j1; j < j2; j++) {
              pBi1 = &tex0[i1 + nx * j];
              pBj1 = &tex0[i1 + nx * j];
              pt3 = &tex3[i1 + nx * j];
              pt4 = &tex4[i1 + nx * j];
              ppx = &px[i1];
              pyj = py[j];
              for (i = i1; i < i2; i++) {
                temp += (*ppx++) * pyj * (*pBi1++) * (*pBj1++) * (*pt3++) * (*pt4++);
              }
            }
          }
        } else if (kj < nkernel) {
          for (idx = 0; idx < nstamps; idx++) {
            j1 = ((0) > ((int)stamp_ypos[idx] - stamp_half_width) ? (0) : ((int)stamp_ypos[idx] - stamp_half_width));
            j2 = ((ny) < ((int)stamp_ypos[idx] + stamp_half_width) ? (ny) : ((int)stamp_ypos[idx] + stamp_half_width));
            i1 = ((0) > ((int)stamp_xpos[idx] - stamp_half_width) ? (0) : ((int)stamp_xpos[idx] - stamp_half_width));
            i2 = ((nx) < ((int)stamp_xpos[idx] + stamp_half_width) ? (nx) : ((int)stamp_xpos[idx] + stamp_half_width));
            for (j = j1; j < j2; j++) {
              pBi1 = &tex0[i1 + nx * j];
              pBj1 = &tex0[i1 + nx * j];
              if (ext_basis[kj]) {
                pBj2 = &tex1[i1 + c + nx * (j + d)];
              } else {
                pBj2 = &tex0[i1 + c + nx * (j + d)];
              }
              pt3 = &tex3[i1 + nx * j];
              pt4 = &tex4[i1 + nx * j];
              ppx = &px[i1];
              pyj = py[j];
              for (i = i1; i < i2; i++) {
                temp += (*ppx++) * pyj * (*pBi1++) * ((*pBj2++) - (*pBj1++)) * (*pt3++) * (*pt4++);
              }
            }
          }
        } else {
          for (idx = 0; idx < nstamps; idx++) {
            j1 = ((0) > ((int)stamp_ypos[idx] - stamp_half_width) ? (0) : ((int)stamp_ypos[idx] - stamp_half_width));
            j2 = ((ny) < ((int)stamp_ypos[idx] + stamp_half_width) ? (ny) : ((int)stamp_ypos[idx] + stamp_half_width));
            i1 = ((0) > ((int)stamp_xpos[idx] - stamp_half_width) ? (0) : ((int)stamp_xpos[idx] - stamp_half_width));
            i2 = ((nx) < ((int)stamp_xpos[idx] + stamp_half_width) ? (nx) : ((int)stamp_xpos[idx] + stamp_half_width));
            for (j = j1; j < j2; j++) {
              pBi1 = &tex0[i1 + nx * j];
              pt3 = &tex3[i1 + nx * j];
              pt4 = &tex4[i1 + nx * j];
              ppx = &px[i1];
              pyj = py[j];
              for (i = i1; i < i2; i++) {
                temp += (*ppx++) * pyj * (*pBi1++) * (*pt3++) * (*pt4++);
              }
            }
          }
        }
      } else if (ki < nkernel) {
        if (kj == 0) {
          for (idx = 0; idx < nstamps; idx++) {
            j1 = ((0) > ((int)stamp_ypos[idx] - stamp_half_width) ? (0) : ((int)stamp_ypos[idx] - stamp_half_width));
            j2 = ((ny) < ((int)stamp_ypos[idx] + stamp_half_width) ? (ny) : ((int)stamp_ypos[idx] + stamp_half_width));
            i1 = ((0) > ((int)stamp_xpos[idx] - stamp_half_width) ? (0) : ((int)stamp_xpos[idx] - stamp_half_width));
            i2 = ((nx) < ((int)stamp_xpos[idx] + stamp_half_width) ? (nx) : ((int)stamp_xpos[idx] + stamp_half_width));
            for (j = j1; j < j2; j++) {
              pBi1 = &tex0[i1 + nx * j];
              if (ext_basis[ki]) {
                pBi2 = &tex1[i1 + a + nx * (j + b)];
              } else {
                pBi2 = &tex0[i1 + a + nx * (j + b)];
              }
              pBj1 = &tex0[i1 + nx * j];
              pt3 = &tex3[i1 + nx * j];
              pt4 = &tex4[i1 + nx * j];
              ppx = &px[i1];
              pyj = py[j];
              for (i = i1; i < i2; i++) {
                temp += (*ppx++) * pyj * ((*pBi2++) - (*pBi1++)) * (*pBj1++) * (*pt3++) * (*pt4++);
              }
            }
          }
        } else if (kj < nkernel) {
          for (idx = 0; idx < nstamps; idx++) {
            j1 = ((0) > ((int)stamp_ypos[idx] - stamp_half_width) ? (0) : ((int)stamp_ypos[idx] - stamp_half_width));
            j2 = ((ny) < ((int)stamp_ypos[idx] + stamp_half_width) ? (ny) : ((int)stamp_ypos[idx] + stamp_half_width));
            i1 = ((0) > ((int)stamp_xpos[idx] - stamp_half_width) ? (0) : ((int)stamp_xpos[idx] - stamp_half_width));
            i2 = ((nx) < ((int)stamp_xpos[idx] + stamp_half_width) ? (nx) : ((int)stamp_xpos[idx] + stamp_half_width));
            for (j = j1; j < j2; j++) {
              pBi1 = &tex0[i1 + nx * j];
              pBj1 = &tex0[i1 + nx * j];
              if (ext_basis[ki]) {
                pBi2 = &tex1[i1 + a + nx * (j + b)];
              } else {
                pBi2 = &tex0[i1 + a + nx * (j + b)];
              }
              if (ext_basis[kj]) {
                pBj2 = &tex1[i1 + c + nx * (j + d)];
              } else {
                pBj2 = &tex0[i1 + c + nx * (j + d)];
              }
              pt3 = &tex3[i1 + nx * j];
              pt4 = &tex4[i1 + nx * j];
              ppx = &px[i1];
              pyj = py[j];
              for (i = i1; i < i2; i++) {
                temp += (*ppx++) * pyj * ((*pBi2++) - (*pBi1++)) * ((*pBj2++) - (*pBj1++)) * (*pt3++) * (*pt4++);
              }
            }
          }
        } else {
          for (idx = 0; idx < nstamps; idx++) {
            j1 = ((0) > ((int)stamp_ypos[idx] - stamp_half_width) ? (0) : ((int)stamp_ypos[idx] - stamp_half_width));
            j2 = ((ny) < ((int)stamp_ypos[idx] + stamp_half_width) ? (ny) : ((int)stamp_ypos[idx] + stamp_half_width));
            i1 = ((0) > ((int)stamp_xpos[idx] - stamp_half_width) ? (0) : ((int)stamp_xpos[idx] - stamp_half_width));
            i2 = ((nx) < ((int)stamp_xpos[idx] + stamp_half_width) ? (nx) : ((int)stamp_xpos[idx] + stamp_half_width));
            for (j = j1; j < j2; j++) {
              pBi1 = &tex0[i1 + nx * j];
              if (ext_basis[ki]) {
                pBi2 = &tex1[i1 + a + nx * (j + b)];
              } else {
                pBi2 = &tex0[i1 + a + nx * (j + b)];
              }
              pt3 = &tex3[i1 + nx * j];
              pt4 = &tex4[i1 + nx * j];
              ppx = &px[i1];
              pyj = py[j];
              for (i = i1; i < i2; i++) {
                temp += (*ppx++) * pyj * ((*pBi2++) - (*pBi1++)) * (*pt3++) * (*pt4++);
              }
            }
          }
        }
      } else {
        if (kj == 0) {
          for (idx = 0; idx < nstamps; idx++) {
            j1 = ((0) > ((int)stamp_ypos[idx] - stamp_half_width) ? (0) : ((int)stamp_ypos[idx] - stamp_half_width));
            j2 = ((ny) < ((int)stamp_ypos[idx] + stamp_half_width) ? (ny) : ((int)stamp_ypos[idx] + stamp_half_width));
            i1 = ((0) > ((int)stamp_xpos[idx] - stamp_half_width) ? (0) : ((int)stamp_xpos[idx] - stamp_half_width));
            i2 = ((nx) < ((int)stamp_xpos[idx] + stamp_half_width) ? (nx) : ((int)stamp_xpos[idx] + stamp_half_width));
            for (j = j1; j < j2; j++) {
              pBj1 = &tex0[i1 + nx * j];
              pt3 = &tex3[i1 + nx * j];
              pt4 = &tex4[i1 + nx * j];
              ppx = &px[i1];
              pyj = py[j];
              for (i = i1; i < i2; i++) {
                temp += (*ppx++) * pyj * (*pBj1++) * (*pt3++) * (*pt4++);
              }
            }
          }
        } else if (kj < nkernel) {
          for (idx = 0; idx < nstamps; idx++) {
            j1 = ((0) > ((int)stamp_ypos[idx] - stamp_half_width) ? (0) : ((int)stamp_ypos[idx] - stamp_half_width));
            j2 = ((ny) < ((int)stamp_ypos[idx] + stamp_half_width) ? (ny) : ((int)stamp_ypos[idx] + stamp_half_width));
            i1 = ((0) > ((int)stamp_xpos[idx] - stamp_half_width) ? (0) : ((int)stamp_xpos[idx] - stamp_half_width));
            i2 = ((nx) < ((int)stamp_xpos[idx] + stamp_half_width) ? (nx) : ((int)stamp_xpos[idx] + stamp_half_width));
            for (j = j1; j < j2; j++) {
              pBj1 = &tex0[i1 + nx * j];
              if (ext_basis[kj]) {
                pBj2 = &tex1[i1 + c + nx * (j + d)];
              } else {
                pBj2 = &tex0[i1 + c + nx * (j + d)];
              }
              pt3 = &tex3[i1 + nx * j];
              pt4 = &tex4[i1 + nx * j];
              ppx = &px[i1];
              pyj = py[j];
              for (i = i1; i < i2; i++) {
                temp += (*ppx++) * pyj * ((*pBj2++) - (*pBj1++)) * (*pt3++) * (*pt4++);
              }
            }
          }
        } else {
          for (idx = 0; idx < nstamps; idx++) {
            j1 = ((0) > ((int)stamp_ypos[idx] - stamp_half_width) ? (0) : ((int)stamp_ypos[idx] - stamp_half_width));
            j2 = ((ny) < ((int)stamp_ypos[idx] + stamp_half_width) ? (ny) : ((int)stamp_ypos[idx] + stamp_half_width));
            i1 = ((0) > ((int)stamp_xpos[idx] - stamp_half_width) ? (0) : ((int)stamp_xpos[idx] - stamp_half_width));
            i2 = ((nx) < ((int)stamp_xpos[idx] + stamp_half_width) ? (nx) : ((int)stamp_xpos[idx] + stamp_half_width));
            for (j = j1; j < j2; j++) {
              pt3 = &tex3[i1 + nx * j];
              pt4 = &tex4[i1 + nx * j];
              ppx = &px[i1];
              pyj = py[j];
              for (i = i1; i < i2; i++) {
                temp += (*ppx++) * pyj * (*pt3++) * (*pt4++);
              }
            }
          }
        }
      }
      H[blockIdx + gridDimx * blockIdy] = temp;
      H[blockIdy + gridDimx * blockIdx] = temp;
      if ((ki > 0) && (ki < nkernel) && (kj > 0) && (kj < nkernel)) {
        idx1 = np + (ki - 1) * ns;
        idy1 = np + (kj - 1) * ns;
        H[(idx1 + idy0) + gridDimx * (idy1 + idx0)] = temp;
        H[(idy1 + idx0) + gridDimx * (idx1 + idy0)] = temp;
      }
    }
  }
}
```