user: 提供的汇编代码用C语言表示会是什么样子:

```asm
<cu_compute_matrix_stamps>:
  endbr64
  push   %r15
  movslq %ecx,%rax
  push   %r14
  lea    0x0(,%rax,8),%r15
  mov    %r8d,%r14d
  push   %r13
  push   %r12
  push   %rbp
  push   %rbx
  sub    $0x128,%rsp
  mov    %edi,0x90(%rsp)
  mov    %r15,%rdi
  mov    %esi,0xb8(%rsp)
  mov    %edx,0xbc(%rsp)
  mov    %r8d,0x1c(%rsp)
  mov    %r9d,0xa4(%rsp)
  mov    %ecx,0x18(%rsp)
  mov    %rax,0xc0(%rsp)
  call   <malloc@plt>
  mov    %rax,0xa8(%rsp)
  movslq %r14d,%rax
  lea    0x0(,%rax,8),%r14
  mov    %rax,0xc8(%rsp)
  mov    %r14,%rdi
  call   <malloc@plt>
  mov    %r15,%rdi
  mov    %rax,0xb0(%rsp)
  call   <malloc@plt>
  mov    %r14,%rdi
  mov    %rax,0x20(%rsp)
  call   <malloc@plt>
  mov    %rax,0x10(%rsp)
  mov    0x18(%rsp),%eax
  test   %eax,%eax
  jle    L881
  mov    0x18(%rsp),%eax
  pxor   %xmm1,%xmm1
  movsd  D14(%rip),%xmm2
  sub    $0x1,%eax
  cvtsi2sd %eax,%xmm1
  xor    %eax,%eax
  mulsd  %xmm1,%xmm2
L319:
  pxor   %xmm0,%xmm0
  mov    0xa8(%rsp),%rsi
  cvtsi2sd %eax,%xmm0
  subsd  %xmm2,%xmm0
  divsd  %xmm1,%xmm0
  movsd  %xmm0,(%rsi,%rax,8)
  add    $0x1,%rax
  cmp    0xc0(%rsp),%rax
  jne    L319
L881:
  mov    0x1c(%rsp),%eax
  test   %eax,%eax
  jle    L367
  mov    0x1c(%rsp),%eax
  pxor   %xmm1,%xmm1
  movsd  D14(%rip),%xmm2
  sub    $0x1,%eax
  cvtsi2sd %eax,%xmm1
  xor    %eax,%eax
  mulsd  %xmm1,%xmm2
L623:
  pxor   %xmm0,%xmm0
  mov    0xb0(%rsp),%rsi
  cvtsi2sd %eax,%xmm0
  subsd  %xmm2,%xmm0
  divsd  %xmm1,%xmm0
  movsd  %xmm0,(%rsi,%rax,8)
  add    $0x1,%rax
  cmp    0xc8(%rsp),%rax
  jne    L623
L367:
  mov    0x1b8(%rsp),%eax
  test   %eax,%eax
  jle    L211
  mov    0x1b0(%rsp),%eax
  xor    %r14d,%r14d
  movl   $0x0,0x10c(%rsp)
  sub    $0x1,%eax
  lea    0x8(,%rax,8),%rdx
L727:
  mov    0x1b0(%rsp),%eax
  test   %eax,%eax
  jle    L304
  mov    0x1a0(%rsp),%rsi
  movslq %r14d,%rax
  mov    %rdx,0x8(%rsp)
  lea    (%rsi,%rax,8),%rdi
  xor    %esi,%esi
  call   <memset@plt>
  mov    0x8(%rsp),%rdx
L304:
  mov    0x10c(%rsp),%eax
  add    0x1b0(%rsp),%r14d
  add    $0x1,%eax
  cmp    %eax,0x1b8(%rsp)
  je     L903
  mov    %eax,0x10c(%rsp)
  jmp    L727
L211:
  add    $0x128,%rsp
  pop    %rbx
  pop    %rbp
  pop    %r12
  pop    %r13
  pop    %r14
  pop    %r15
  ret
L903:
  mov    0x90(%rsp),%edi
  movl   $0x0,0x6c(%rsp)
  movl   $0x0,0x110(%rsp)
  lea    0x1(%rdi),%edx
  lea    0x2(%rdi),%eax
  mov    0xb8(%rsp),%edi
  imul   %edx,%eax
  mov    %eax,%edx
  shr    $0x1f,%edx
  add    %edx,%eax
  lea    0x2(%rdi),%edx
  sar    %eax
  mov    %eax,%esi
  mov    %eax,0x58(%rsp)
  lea    0x1(%rdi),%eax
  mov    0x170(%rsp),%rdi
  imul   %edx,%eax
  mov    %eax,%edx
  shr    $0x1f,%edx
  add    %edx,%eax
  sar    %eax
  mov    %eax,0x78(%rsp)
  mov    0xa4(%rsp),%eax
  sub    $0x1,%eax
  mov    %rax,0xe8(%rsp)
  lea    0x8(%rdi,%rax,8),%rax
  mov    %rax,0x30(%rsp)
  mov    $0x1,%eax
  sub    %esi,%eax
  mov    %eax,0x114(%rsp)
L21:
  mov    0x58(%rsp),%eax
  mov    0x114(%rsp),%edi
  mov    %ebx,0x5c(%rsp)
  mov    %r12d,%r14d
  mov    0x110(%rsp),%esi
  mov    %ebp,0x60(%rsp)
  neg    %eax
  mov    %eax,0x50(%rsp)
  mov    0x6c(%rsp),%eax
  mov    %esi,0x88(%rsp)
  add    %eax,%edi
  mov    %eax,0x8c(%rsp)
  mov    %edi,0xa0(%rsp)
  jmp    L1066
L752:
  mov    %ebx,%eax
  cltd
  idivl  0x78(%rsp)
  add    $0x1,%eax
  test   %eax,%eax
  mov    %eax,0x54(%rsp)
  setg   %dl
  cmp    0x190(%rsp),%eax
  setl   %al
  and    %eax,%edx
  mov    %dl,0x97(%rsp)
L600:
  mov    0x58(%rsp),%ebx
  mov    0x6c(%rsp),%eax
  movl   $0x0,0x28(%rsp)
  cmp    %eax,%ebx
  jg     L274
  sub    %ebx,%eax
  cltd
  idivl  0x78(%rsp)
  add    $0x1,%eax
  mov    %eax,0x28(%rsp)
L274:
  movslq 0x54(%rsp),%rax
  cmp    0x190(%rsp),%eax
  jge    L372
  mov    0x178(%rsp),%rbx
  mov    (%rbx,%rax,4),%ebx
  mov    %ebx,0x40(%rsp)
  mov    0x180(%rsp),%rbx
  mov    (%rbx,%rax,4),%eax
  mov    %eax,0x70(%rsp)
L451:
  movslq 0x28(%rsp),%rax
  cmp    0x190(%rsp),%eax
  jge    L997
  mov    0x178(%rsp),%rbx
  mov    (%rbx,%rax,4),%ebx
  mov    %ebx,0x108(%rsp)
  mov    0x180(%rsp),%rbx
  mov    (%rbx,%rax,4),%eax
  mov    %eax,0x68(%rsp)
L997:
  mov    0x54(%rsp),%ebx
  mov    0x90(%rsp),%r8d
  test   %ebx,%ebx
  je     L676
  lea    -0x1(%rbx),%eax
  mov    0x50(%rsp),%esi
  mov    0xbc(%rsp),%r8d
  imul   0x78(%rsp),%eax
  sub    %eax,%esi
  cmp    0x190(%rsp),%ebx
  cmovl  0xb8(%rsp),%r8d
  mov    %esi,0x64(%rsp)
L676:
  mov    0x28(%rsp),%ebx
  test   %ebx,%ebx
  je     L1086
  lea    -0x1(%rbx),%eax
  mov    0x6c(%rsp),%edx
  sub    0x58(%rsp),%edx
  imul   0x78(%rsp),%eax
  sub    %eax,%edx
  mov    %edx,0x7c(%rsp)
  cmp    0x190(%rsp),%ebx
  jge    L1067
  cmpb   $0x0,0x97(%rsp)
  je     L477
  mov    0x28(%rsp),%ebp
  test   %ebp,%ebp
  jle    L477
  mov    0x7c(%rsp),%ebx
  cmp    %ebx,0x64(%rsp)
  jle    L477
L1025:
  addl   $0x1,0x50(%rsp)
  mov    0x1b0(%rsp),%ebx
  addl   $0x1,0x88(%rsp)
  mov    0x50(%rsp),%eax
  add    %ebx,0x8c(%rsp)
  cmp    0xa0(%rsp),%eax
  je     L745
L1066:
  mov    0x50(%rsp),%ebx
  mov    0x58(%rsp),%esi
  mov    %ebx,%eax
  add    %esi,%eax
  mov    %eax,0x64(%rsp)
  cmp    %eax,%esi
  jle    L752
  movb   $0x0,0x97(%rsp)
  movl   $0x0,0x54(%rsp)
  jmp    L600
L1086:
  mov    0x6c(%rsp),%eax
  mov    0x90(%rsp),%r9d
  mov    %eax,0x7c(%rsp)
L584:
  test   %r8d,%r8d
  js     L162
  lea    0x1(%r8),%r10d
  mov    0x64(%rsp),%r11d
  xor    %esi,%esi
  mov    %r10d,%ecx
  nopw   0x0(%rax,%rax,1)
L273:
  mov    %r10d,%edi
  xor    %eax,%eax
  sub    %ecx,%edi
  test   %r8d,%r8d
  js     L239
  nopl   0x0(%rax)
L338:
  lea    (%rsi,%rax,1),%edx
  cmp    %edx,%r11d
  cmove  %eax,%r13d
  cmove  %edi,%r14d
  add    $0x1,%eax
  cmp    %ecx,%eax
  jne    L338
  lea    0x1(%rsi,%r8,1),%esi
L239:
  sub    $0x1,%r8d
  sub    $0x1,%ecx
  jne    L273
L162:
  test   %r9d,%r9d
  js     L870
  lea    0x1(%r9),%r8d
  mov    0x5c(%rsp),%r12d
  mov    0x60(%rsp),%ebx
  xor    %esi,%esi
  mov    0x7c(%rsp),%r10d
  mov    %r8d,%ecx
  nopw   0x0(%rax,%rax,1)
L148:
  mov    %r8d,%edi
  xor    %eax,%eax
  sub    %ecx,%edi
  test   %r9d,%r9d
  js     L560
  nopl   0x0(%rax)
L27:
  lea    (%rsi,%rax,1),%edx
  cmp    %edx,%r10d
  cmove  %eax,%ebx
  cmove  %edi,%r12d
  add    $0x1,%eax
  cmp    %ecx,%eax
  jne    L27
  lea    0x1(%rsi,%r9,1),%esi
L560:
  sub    $0x1,%r9d
  sub    $0x1,%ecx
  jne    L148
  mov    %r12d,0x5c(%rsp)
  mov    %ebx,0x60(%rsp)
L870:
  mov    0x18(%rsp),%ebx
  test   %ebx,%ebx
  jle    L1139
  mov    0x5c(%rsp),%eax
  pxor   %xmm1,%xmm1
  xor    %ebp,%ebp
  mov    %r15,0x38(%rsp)
  mov    %rbp,%rbx
  mov    0xa8(%rsp),%r15
  mov    0x20(%rsp),%rbp
  add    %r14d,%eax
  mov    0xc0(%rsp),%r12
  cvtsi2sd %eax,%xmm1
  nopl   0x0(%rax)
L144:
  movsd  (%r15,%rbx,8),%xmm0
  movsd  %xmm1,0x8(%rsp)
  call   <pow@plt>
  movsd  0x8(%rsp),%xmm1
  movsd  %xmm0,0x0(%rbp,%rbx,8)
  add    $0x1,%rbx
  cmp    %r12,%rbx
  jne    L144
  mov    0x38(%rsp),%r15
L1139:
  mov    0x1c(%rsp),%r11d
  test   %r11d,%r11d
  jle    L705
  mov    0x60(%rsp),%eax
  pxor   %xmm1,%xmm1
  xor    %ebp,%ebp
  mov    %r15,0x38(%rsp)
  mov    %rbp,%rbx
  mov    0xb0(%rsp),%r15
  mov    0x10(%rsp),%rbp
  add    %r13d,%eax
  mov    0xc8(%rsp),%r12
  cvtsi2sd %eax,%xmm1
  nopl   0x0(%rax,%rax,1)
L8:
  movsd  (%r15,%rbx,8),%xmm0
  movsd  %xmm1,0x8(%rsp)
  call   <pow@plt>
  movsd  0x8(%rsp),%xmm1
  movsd  %xmm0,0x0(%rbp,%rbx,8)
  add    $0x1,%rbx
  cmp    %r12,%rbx
  jne    L8
  mov    0x38(%rsp),%r15
L705:
  mov    0x54(%rsp),%r10d
  test   %r10d,%r10d
  jne    L814
  mov    0x28(%rsp),%r9d
  test   %r9d,%r9d
  je     L889
  mov    0x28(%rsp),%eax
  cmp    0x190(%rsp),%eax
  jl     L137
  mov    0xa4(%rsp),%edi
  test   %edi,%edi
  jle    L730
  mov    0x168(%rsp),%rax
  mov    %r14d,0x40(%rsp)
  pxor   %xmm1,%xmm1
  mov    %r13d,0x48(%rsp)
  mov    0x1c0(%rsp),%r12
  mov    %rax,0x28(%rsp)
  mov    0x170(%rsp),%rax
  mov    0x1d0(%rsp),%r13
  mov    0x1d8(%rsp),%r14
  mov    %rax,0x8(%rsp)
  mov    0x10(%rsp),%rax
  add    $0x8,%rax
  mov    %rax,0x38(%rsp)
  nopl   (%rax)
L395:
  mov    0x8(%rsp),%rax
  mov    0x1c(%rsp),%ebx
  mov    $0x0,%ecx
  mov    $0x0,%esi
  mov    0x18(%rsp),%r9d
  cvttsd2si (%rax),%eax
  mov    %eax,%edx
  sub    0x160(%rsp),%edx
  cmovs  %ecx,%edx
  add    0x160(%rsp),%eax
  cmp    %ebx,%eax
  cmovg  %ebx,%eax
  mov    0x28(%rsp),%rbx
  cvttsd2si (%rbx),%ecx
  mov    %ecx,%ebx
  sub    0x160(%rsp),%ebx
  cmovs  %esi,%ebx
  add    0x160(%rsp),%ecx
  cmp    %r9d,%ecx
  cmovg  %r9d,%ecx
  mov    %ecx,%r11d
  cmp    %eax,%edx
  jge    L631
  mov    0x20(%rsp),%rsi
  movslq %ebx,%rdi
  mov    0x10(%rsp),%rcx
  sub    $0x1,%eax
  sub    %edx,%eax
  lea    (%rsi,%rdi,8),%r8
  movslq %edx,%rsi
  lea    (%rcx,%rsi,8),%r10
  mov    %r9d,%ecx
  add    %rsi,%rax
  imul   %edx,%ecx
  movslq %ecx,%rcx
  add    %rdi,%rcx
  mov    0x38(%rsp),%rdi
  lea    0x0(,%rcx,8),%r9
  lea    (%rdi,%rax,8),%rbp
  lea    -0x1(%r11),%eax
  sub    %ebx,%eax
  lea    0x8(,%rax,8),%rdi
  nopl   (%rax)
L452:
  movsd  (%r10),%xmm2
  lea    (%r12,%r9,1),%rsi
  lea    0x0(%r13,%r9,1),%rcx
  lea    (%r14,%r9,1),%rdx
  cmp    %r11d,%ebx
  jge    L945
  xor    %eax,%eax
  nopl   0x0(%rax)
L193:
  movsd  (%r8,%rax,1),%xmm0
  mulsd  %xmm2,%xmm0
  mulsd  (%rsi,%rax,1),%xmm0
  mulsd  (%rcx,%rax,1),%xmm0
  mulsd  (%rdx,%rax,1),%xmm0
  add    $0x8,%rax
  addsd  %xmm0,%xmm1
  cmp    %rax,%rdi
  jne    L193
L945:
  add    $0x8,%r10
  add    %r15,%r9
  cmp    %r10,%rbp
  jne    L452
L631:
  addq   $0x8,0x8(%rsp)
  mov    0x8(%rsp),%rax
  addq   $0x8,0x28(%rsp)
  cmp    0x30(%rsp),%rax
  jne    L395
L951:
  mov    0x40(%rsp),%r14d
  mov    0x48(%rsp),%r13d
L483:
  movslq 0x88(%rsp),%rax
  mov    0x1a0(%rsp),%rbx
  movsd  %xmm1,(%rbx,%rax,8)
  movslq 0x8c(%rsp),%rax
  movsd  %xmm1,(%rbx,%rax,8)
  jmp    L1025
L372:
  movl   $0x0,0x70(%rsp)
  movl   $0x0,0x40(%rsp)
  jmp    L451
L814:
  movslq 0x54(%rsp),%rax
  cmp    0x190(%rsp),%eax
  jge    L6
  mov    0x28(%rsp),%ecx
  test   %ecx,%ecx
  je     L773
  mov    0x28(%rsp),%eax
  cmp    0x190(%rsp),%eax
  jl     L132
  mov    0xa4(%rsp),%eax
  test   %eax,%eax
  jle    L203
  movslq 0x54(%rsp),%rax
  mov    0x188(%rsp),%rbx
  mov    %r14d,0x54(%rsp)
  pxor   %xmm2,%xmm2
  mov    %r13d,0x64(%rsp)
  lea    (%rbx,%rax,4),%rax
  mov    %rax,0x48(%rsp)
  mov    0x168(%rsp),%rax
  mov    %rax,0x28(%rsp)
  mov    0x170(%rsp),%rax
  mov    %rax,0x8(%rsp)
  movslq 0x40(%rsp),%rax
  mov    %rax,0x38(%rsp)
  mov    0x10(%rsp),%rax
  add    $0x8,%rax
  mov    %rax,0x40(%rsp)
L506:
  mov    0x8(%rsp),%rax
  mov    0x1c(%rsp),%ebx
  mov    $0x0,%edx
  cvttsd2si (%rax),%eax
  mov    %eax,%r8d
  sub    0x160(%rsp),%r8d
  cmovs  %edx,%r8d
  add    0x160(%rsp),%eax
  cmp    %ebx,%eax
  cmovg  %ebx,%eax
  mov    0x18(%rsp),%ebx
  mov    %eax,%esi
  mov    0x28(%rsp),%rax
  cvttsd2si (%rax),%eax
  mov    %eax,%r12d
  sub    0x160(%rsp),%r12d
  cmovs  %edx,%r12d
  add    0x160(%rsp),%eax
  cmp    %ebx,%eax
  cmovg  %ebx,%eax
  mov    %eax,%ebp
  cmp    %esi,%r8d
  jge    L437
  mov    0x48(%rsp),%rax
  movslq %r12d,%rdx
  mov    0x38(%rsp),%rdi
  movslq %r8d,%r13
  mov    0x1c8(%rsp),%r11
  sub    $0x1,%esi
  mov    (%rax),%r14d
  mov    0x20(%rsp),%rax
  lea    (%rdx,%rdi,1),%rcx
  sub    %r8d,%esi
  mov    0x1d0(%rsp),%rdi
  add    %r13,%rsi
  lea    (%rax,%rdx,8),%r9
  mov    0x70(%rsp),%eax
  add    %r8d,%eax
  imul   %ebx,%eax
  imul   %r8d,%ebx
  mov    0x40(%rsp),%r8
  cltq
  add    %rax,%rcx
  movslq %ebx,%rbx
  lea    (%r11,%rcx,8),%r11
  mov    0x10(%rsp),%rcx
  sub    %rbx,%rax
  add    %rbx,%rdx
  add    0x38(%rsp),%rax
  shl    $0x3,%rdx
  lea    (%rcx,%r13,8),%r10
  lea    0x0(,%rax,8),%rbx
  mov    0x1c0(%rsp),%rcx
  add    %rdx,%rdi
  lea    -0x1(%rbp),%eax
  lea    (%r8,%rsi,8),%r13
  sub    %r12d,%eax
  add    %rdx,%rcx
  add    0x1d8(%rsp),%rdx
  lea    0x8(,%rax,8),%r8
  nopw   0x0(%rax,%rax,1)
L390:
  lea    (%rbx,%rcx,1),%rsi
  test   %r14d,%r14d
  movsd  (%r10),%xmm3
  cmovne %r11,%rsi
  cmp    %ebp,%r12d
  jge    L508
  xor    %eax,%eax
  nop
L661:
  movsd  (%r9,%rax,1),%xmm1
  movsd  (%rsi,%rax,1),%xmm0
  subsd  (%rcx,%rax,1),%xmm0
  mulsd  %xmm3,%xmm1
  mulsd  %xmm1,%xmm0
  mulsd  (%rdi,%rax,1),%xmm0
  mulsd  (%rdx,%rax,1),%xmm0
  add    $0x8,%rax
  addsd  %xmm0,%xmm2
  cmp    %rax,%r8
  jne    L661
L508:
  add    $0x8,%r10
  add    %r15,%r11
  add    %r15,%rcx
  add    %r15,%rdi
  add    %r15,%rdx
  cmp    %r13,%r10
  jne    L390
L437:
  addq   $0x8,0x8(%rsp)
  mov    0x8(%rsp),%rax
  addq   $0x8,0x28(%rsp)
  cmp    0x30(%rsp),%rax
  jne    L506
L259:
  mov    0x54(%rsp),%r14d
  mov    0x64(%rsp),%r13d
L668:
  movslq 0x88(%rsp),%rax
  mov    0x1a0(%rsp),%rbx
  movsd  %xmm2,(%rbx,%rax,8)
  movslq 0x8c(%rsp),%rax
  movsd  %xmm2,(%rbx,%rax,8)
  jmp    L1025
L1067:
  mov    0xbc(%rsp),%r9d
  jmp    L584
L6:
  mov    0x28(%rsp),%esi
  test   %esi,%esi
  je     L426
  mov    0x28(%rsp),%eax
  cmp    0x190(%rsp),%eax
  jl     L1032
  mov    0x10(%rsp),%rax
  mov    0xa4(%rsp),%edx
  xor    %r11d,%r11d
  pxor   %xmm2,%xmm2
  add    $0x8,%rax
  mov    %rax,0x8(%rsp)
  test   %edx,%edx
  jle    L668
  mov    0x20(%rsp),%rbx
  mov    0x18(%rsp),%r12d
  mov    %r14d,0x28(%rsp)
  mov    %r13d,0x38(%rsp)
  mov    0x160(%rsp),%ebp
  mov    0x1c(%rsp),%r13d
L1072:
  mov    0x170(%rsp),%rax
  mov    $0x0,%edx
  mov    $0x0,%ecx
  mov    0x168(%rsp),%rdi
  cvttsd2si (%rax,%r11,8),%eax
  mov    %eax,%esi
  sub    %ebp,%esi
  cmovs  %edx,%esi
  cvttsd2si (%rdi,%r11,8),%edx
  add    %ebp,%eax
  cmp    %r13d,%eax
  cmovg  %r13d,%eax
  mov    %edx,%r10d
  sub    %ebp,%r10d
  cmovs  %ecx,%r10d
  add    %ebp,%edx
  cmp    %r12d,%edx
  cmovg  %r12d,%edx
  mov    %edx,%r9d
  cmp    %eax,%esi
  jge    L844
  mov    0x10(%rsp),%rdx
  movslq %esi,%r14
  sub    $0x1,%eax
  movslq %r10d,%rcx
  sub    %esi,%eax
  lea    (%rbx,%rcx,8),%rdi
  lea    (%rdx,%r14,8),%r8
  mov    %r12d,%edx
  add    %r14,%rax
  imul   %esi,%edx
  mov    0x8(%rsp),%rsi
  lea    (%rsi,%rax,8),%r14
  lea    -0x1(%r9),%eax
  movslq %edx,%rdx
  sub    %r10d,%eax
  add    %rcx,%rdx
  mov    0x1d0(%rsp),%rcx
  lea    0x8(,%rax,8),%rsi
  shl    $0x3,%rdx
  add    %rdx,%rcx
  add    0x1d8(%rsp),%rdx
  nopl   (%rax)
L382:
  movsd  (%r8),%xmm1
  cmp    %r9d,%r10d
  jge    L1010
  xor    %eax,%eax
  nopl   0x0(%rax)
L1075:
  movsd  (%rdi,%rax,1),%xmm0
  mulsd  %xmm1,%xmm0
  mulsd  (%rcx,%rax,1),%xmm0
  mulsd  (%rdx,%rax,1),%xmm0
  add    $0x8,%rax
  addsd  %xmm0,%xmm2
  cmp    %rsi,%rax
  jne    L1075
L1010:
  add    $0x8,%r8
  add    %r15,%rcx
  add    %r15,%rdx
  cmp    %r14,%r8
  jne    L382
L844:
  lea    0x1(%r11),%rax
  cmp    %r11,0xe8(%rsp)
  je     L54
  mov    %rax,%r11
  jmp    L1072
L137:
  mov    0xa4(%rsp),%esi
  test   %esi,%esi
  jle    L730
  movslq 0x28(%rsp),%rax
  mov    %r14d,0x54(%rsp)
  pxor   %xmm1,%xmm1
  mov    0x188(%rsp),%rbx
  mov    %r13d,0x64(%rsp)
  lea    (%rbx,%rax,4),%rax
  mov    %rax,0x40(%rsp)
  mov    0x168(%rsp),%rax
  mov    %rax,0x28(%rsp)
  mov    0x170(%rsp),%rax
  mov    %rax,0x8(%rsp)
  movslq 0x108(%rsp),%rax
  mov    %rax,0x38(%rsp)
  mov    0x10(%rsp),%rax
  add    $0x8,%rax
  mov    %rax,0x48(%rsp)
  nopl   0x0(%rax)
L715:
  mov    0x8(%rsp),%rax
  mov    0x1c(%rsp),%ebx
  mov    $0x0,%edx
  cvttsd2si (%rax),%eax
  mov    %eax,%r8d
  sub    0x160(%rsp),%r8d
  cmovs  %edx,%r8d
  add    0x160(%rsp),%eax
  cmp    %ebx,%eax
  cmovg  %ebx,%eax
  mov    0x18(%rsp),%ebx
  mov    %eax,%esi
  mov    0x28(%rsp),%rax
  cvttsd2si (%rax),%eax
  mov    %eax,%r12d
  sub    0x160(%rsp),%r12d
  cmovs  %edx,%r12d
  add    0x160(%rsp),%eax
  cmp    %ebx,%eax
  cmovg  %ebx,%eax
  mov    %eax,%ebp
  cmp    %esi,%r8d
  jge    L1036
  mov    0x40(%rsp),%rax
  movslq %r12d,%rdx
  mov    0x38(%rsp),%rdi
  movslq %r8d,%r13
  mov    0x1c8(%rsp),%r11
  sub    $0x1,%esi
  mov    (%rax),%r14d
  mov    0x20(%rsp),%rax
  lea    (%rdx,%rdi,1),%rcx
  sub    %r8d,%esi
  mov    0x1d0(%rsp),%rdi
  add    %r13,%rsi
  lea    (%rax,%rdx,8),%r9
  mov    0x68(%rsp),%eax
  add    %r8d,%eax
  imul   %ebx,%eax
  imul   %r8d,%ebx
  mov    0x48(%rsp),%r8
  cltq
  add    %rax,%rcx
  movslq %ebx,%rbx
  lea    (%r11,%rcx,8),%r11
  mov    0x10(%rsp),%rcx
  sub    %rbx,%rax
  add    %rbx,%rdx
  add    0x38(%rsp),%rax
  shl    $0x3,%rdx
  lea    (%rcx,%r13,8),%r10
  lea    0x0(,%rax,8),%rbx
  mov    0x1c0(%rsp),%rcx
  add    %rdx,%rdi
  lea    -0x1(%rbp),%eax
  lea    (%r8,%rsi,8),%r13
  sub    %r12d,%eax
  add    %rdx,%rcx
  add    0x1d8(%rsp),%rdx
  lea    0x8(,%rax,8),%r8
  nopw   0x0(%rax,%rax,1)
L965:
  lea    (%rbx,%rcx,1),%rsi
  test   %r14d,%r14d
  movsd  (%r10),%xmm4
  cmovne %r11,%rsi
  cmp    %ebp,%r12d
  jge    L832
  xor    %eax,%eax
  nop
L90:
  movsd  (%r9,%rax,1),%xmm0
  movsd  (%rcx,%rax,1),%xmm3
  movsd  (%rsi,%rax,1),%xmm2
  mulsd  %xmm4,%xmm0
  subsd  %xmm3,%xmm2
  mulsd  %xmm3,%xmm0
  mulsd  %xmm2,%xmm0
  mulsd  (%rdi,%rax,1),%xmm0
  mulsd  (%rdx,%rax,1),%xmm0
  add    $0x8,%rax
  addsd  %xmm0,%xmm1
  cmp    %rax,%r8
  jne    L90
L832:
  add    $0x8,%r10
  add    %r15,%r11
  add    %r15,%rcx
  add    %r15,%rdi
  add    %r15,%rdx
  cmp    %r10,%r13
  jne    L965
L1036:
  addq   $0x8,0x8(%rsp)
  mov    0x8(%rsp),%rax
  addq   $0x8,0x28(%rsp)
  cmp    0x30(%rsp),%rax
  jne    L715
  mov    0x54(%rsp),%r14d
  mov    0x64(%rsp),%r13d
  jmp    L483
L745:
  mov    0x6c(%rsp),%esi
  mov    0x1b0(%rsp),%ecx
  mov    %r14d,%r12d
  add    %ecx,0x110(%rsp)
  mov    0x5c(%rsp),%ebx
  mov    0x60(%rsp),%ebp
  lea    0x1(%rsi),%eax
  cmp    %esi,0x10c(%rsp)
  je     L211
  mov    %eax,0x6c(%rsp)
  jmp    L21
L889:
  mov    0xa4(%rsp),%r8d
  test   %r8d,%r8d
  jle    L730
  mov    0x168(%rsp),%rax
  mov    %r14d,0x40(%rsp)
  pxor   %xmm1,%xmm1
  mov    %r13d,0x48(%rsp)
  mov    0x1c0(%rsp),%r12
  mov    %rax,0x28(%rsp)
  mov    0x170(%rsp),%rax
  mov    0x1d0(%rsp),%r13
  mov    0x1d8(%rsp),%r14
  mov    %rax,0x8(%rsp)
  mov    0x10(%rsp),%rax
  add    $0x8,%rax
  mov    %rax,0x38(%rsp)
  nopl   0x0(%rax)
L493:
  mov    0x8(%rsp),%rax
  mov    0x1c(%rsp),%ebx
  mov    $0x0,%ecx
  mov    $0x0,%esi
  mov    0x18(%rsp),%r9d
  cvttsd2si (%rax),%eax
  mov    %eax,%edx
  sub    0x160(%rsp),%edx
  cmovs  %ecx,%edx
  add    0x160(%rsp),%eax
  cmp    %ebx,%eax
  cmovg  %ebx,%eax
  mov    0x28(%rsp),%rbx
  cvttsd2si (%rbx),%ecx
  mov    %ecx,%ebx
  sub    0x160(%rsp),%ebx
  cmovs  %esi,%ebx
  add    0x160(%rsp),%ecx
  cmp    %r9d,%ecx
  cmovg  %r9d,%ecx
  mov    %ecx,%r11d
  cmp    %eax,%edx
  jge    L849
  mov    0x20(%rsp),%rsi
  movslq %ebx,%rdi
  mov    0x10(%rsp),%rcx
  sub    $0x1,%eax
  sub    %edx,%eax
  lea    (%rsi,%rdi,8),%r8
  movslq %edx,%rsi
  lea    (%rcx,%rsi,8),%r10
  mov    %r9d,%ecx
  add    %rsi,%rax
  imul   %edx,%ecx
  movslq %ecx,%rcx
  add    %rdi,%rcx
  mov    0x38(%rsp),%rdi
  lea    0x0(,%rcx,8),%r9
  lea    (%rdi,%rax,8),%rbp
  lea    -0x1(%r11),%eax
  sub    %ebx,%eax
  lea    0x8(,%rax,8),%rdi
  nopl   (%rax)
L643:
  movsd  (%r10),%xmm3
  lea    (%r12,%r9,1),%rsi
  lea    0x0(%r13,%r9,1),%rcx
  lea    (%r14,%r9,1),%rdx
  cmp    %r11d,%ebx
  jge    L758
  xor    %eax,%eax
  nopl   0x0(%rax)
L243:
  movsd  (%r8,%rax,1),%xmm0
  movsd  (%rsi,%rax,1),%xmm2
  mulsd  %xmm3,%xmm0
  mulsd  %xmm2,%xmm0
  mulsd  %xmm2,%xmm0
  mulsd  (%rcx,%rax,1),%xmm0
  mulsd  (%rdx,%rax,1),%xmm0
  add    $0x8,%rax
  addsd  %xmm0,%xmm1
  cmp    %rdi,%rax
  jne    L243
L758:
  add    $0x8,%r10
  add    %r15,%r9
  cmp    %r10,%rbp
  jne    L643
L849:
  addq   $0x8,0x8(%rsp)
  mov    0x8(%rsp),%rax
  addq   $0x8,0x28(%rsp)
  cmp    0x30(%rsp),%rax
  jne    L493
  jmp    L951
L1032:
  mov    0xa4(%rsp),%eax
  test   %eax,%eax
  jle    L893
  movslq 0x28(%rsp),%rax
  mov    0x188(%rsp),%rbx
  pxor   %xmm1,%xmm1
  mov    %r14d,0x80(%rsp)
  mov    %r13d,0x98(%rsp)
  lea    (%rbx,%rax,4),%rax
  mov    %rax,0x48(%rsp)
  mov    0x168(%rsp),%rax
  mov    %rax,0x38(%rsp)
  mov    0x170(%rsp),%rax
  mov    %rax,0x8(%rsp)
  movslq 0x108(%rsp),%rax
  mov    %rax,0x40(%rsp)
  mov    0x10(%rsp),%rax
  add    $0x8,%rax
  mov    %rax,0x70(%rsp)
L699:
  mov    0x8(%rsp),%rax
  mov    0x1c(%rsp),%ebx
  mov    $0x0,%edx
  cvttsd2si (%rax),%eax
  mov    %eax,%r8d
  sub    0x160(%rsp),%r8d
  cmovs  %edx,%r8d
  add    0x160(%rsp),%eax
  cmp    %ebx,%eax
  cmovg  %ebx,%eax
  mov    0x18(%rsp),%ebx
  mov    %eax,%esi
  mov    0x38(%rsp),%rax
  cvttsd2si (%rax),%eax
  mov    %eax,%r12d
  sub    0x160(%rsp),%r12d
  cmovs  %edx,%r12d
  add    0x160(%rsp),%eax
  cmp    %ebx,%eax
  cmovg  %ebx,%eax
  mov    %eax,%ebp
  cmp    %esi,%r8d
  jge    L576
  mov    0x48(%rsp),%rax
  movslq %r12d,%rdx
  mov    0x40(%rsp),%rdi
  movslq %r8d,%r13
  mov    0x1c8(%rsp),%r11
  sub    $0x1,%esi
  mov    (%rax),%r14d
  mov    0x20(%rsp),%rax
  lea    (%rdx,%rdi,1),%rcx
  sub    %r8d,%esi
  mov    0x1d0(%rsp),%rdi
  add    %r13,%rsi
  lea    (%rax,%rdx,8),%r9
  mov    0x68(%rsp),%eax
  add    %r8d,%eax
  imul   %ebx,%eax
  imul   %r8d,%ebx
  mov    0x70(%rsp),%r8
  cltq
  add    %rax,%rcx
  movslq %ebx,%rbx
  lea    (%r11,%rcx,8),%r11
  mov    0x10(%rsp),%rcx
  sub    %rbx,%rax
  add    %rbx,%rdx
  add    0x40(%rsp),%rax
  shl    $0x3,%rdx
  lea    (%rcx,%r13,8),%r10
  lea    0x0(,%rax,8),%rbx
  mov    0x1c0(%rsp),%rcx
  add    %rdx,%rdi
  lea    -0x1(%rbp),%eax
  lea    (%r8,%rsi,8),%r13
  sub    %r12d,%eax
  add    %rdx,%rcx
  add    0x1d8(%rsp),%rdx
  lea    0x8(,%rax,8),%r8
  nopl   0x0(%rax,%rax,1)
L1014:
  lea    (%rcx,%rbx,1),%rsi
  test   %r14d,%r14d
  movsd  (%r10),%xmm3
  cmovne %r11,%rsi
  cmp    %ebp,%r12d
  jge    L318
  xor    %eax,%eax
  nopw   0x0(%rax,%rax,1)
L1101:
  movsd  (%r9,%rax,1),%xmm2
  movsd  (%rsi,%rax,1),%xmm0
  subsd  (%rcx,%rax,1),%xmm0
  mulsd  %xmm3,%xmm2
  mulsd  %xmm2,%xmm0
  mulsd  (%rdi,%rax,1),%xmm0
  mulsd  (%rdx,%rax,1),%xmm0
  add    $0x8,%rax
  addsd  %xmm0,%xmm1
  cmp    %r8,%rax
  jne    L1101
L318:
  add    $0x8,%r10
  add    %r15,%r11
  add    %r15,%rcx
  add    %r15,%rdi
  add    %r15,%rdx
  cmp    %r13,%r10
  jne    L1014
L576:
  addq   $0x8,0x8(%rsp)
  mov    0x8(%rsp),%rax
  addq   $0x8,0x38(%rsp)
  cmp    0x30(%rsp),%rax
  jne    L699
  mov    0x80(%rsp),%r14d
  mov    0x98(%rsp),%r13d
L73:
  movslq 0x88(%rsp),%rax
  mov    0x1a0(%rsp),%rbx
  cmpb   $0x0,0x97(%rsp)
  movsd  %xmm1,(%rbx,%rax,8)
  movslq 0x8c(%rsp),%rax
  movsd  %xmm1,(%rbx,%rax,8)
  je     L1025
  mov    0x28(%rsp),%ebx
  test   %ebx,%ebx
  jle    L1025
  cmp    0x190(%rsp),%ebx
  jge    L1025
  mov    0x78(%rsp),%edi
  sub    $0x1,%ebx
  mov    0x54(%rsp),%eax
  mov    %ebx,%edx
  mov    0x58(%rsp),%esi
  mov    0x1b0(%rsp),%ecx
  imul   %edi,%edx
  sub    $0x1,%eax
  mov    0x1a0(%rsp),%rbx
  imul   %edi,%eax
  add    %esi,%edx
  add    0x64(%rsp),%edx
  imul   %edx,%ecx
  add    %esi,%eax
  add    0x7c(%rsp),%eax
  add    %eax,%ecx
  imul   0x1b0(%rsp),%eax
  movslq %ecx,%rcx
  movsd  %xmm1,(%rbx,%rcx,8)
  add    %edx,%eax
  cltq
  movsd  %xmm1,(%rbx,%rax,8)
  jmp    L1025
L132:
  mov    0xa4(%rsp),%eax
  test   %eax,%eax
  jle    L893
  mov    0x188(%rsp),%rbx
  movslq 0x54(%rsp),%rax
  pxor   %xmm1,%xmm1
  mov    %r14d,0x118(%rsp)
  mov    %r13d,0x11c(%rsp)
  lea    (%rbx,%rax,4),%rax
  mov    %rax,0xd0(%rsp)
  movslq 0x28(%rsp),%rax
  lea    (%rbx,%rax,4),%rax
  movslq 0x108(%rsp),%rbx
  mov    %rax,0xd8(%rsp)
  mov    0x168(%rsp),%rax
  mov    %rbx,0xe0(%rsp)
  mov    %rax,0x98(%rsp)
  mov    %rbx,%rax
  neg    %rax
  shl    $0x3,%rax
  mov    %rax,0xf0(%rsp)
  mov    0x170(%rsp),%rax
  mov    %rax,0x80(%rsp)
  mov    0x10(%rsp),%rax
  add    $0x8,%rax
  mov    %rax,0xf8(%rsp)
  movslq 0x40(%rsp),%rax
  sub    %rbx,%rax
  mov    %rax,0x100(%rsp)
L48:
  mov    0x1c(%rsp),%ebx
  mov    $0x0,%edx
  mov    $0x0,%ecx
  mov    0x80(%rsp),%rax
  cvttsd2si (%rax),%eax
  mov    %eax,%r9d
  sub    0x160(%rsp),%r9d
  cmovs  %edx,%r9d
  add    0x160(%rsp),%eax
  cmp    %ebx,%eax
  cmovg  %ebx,%eax
  mov    0x98(%rsp),%rbx
  cvttsd2si (%rbx),%edx
  mov    0x18(%rsp),%ebx
  mov    %edx,%r14d
  sub    0x160(%rsp),%r14d
  cmovs  %ecx,%r14d
  add    0x160(%rsp),%edx
  cmp    %ebx,%edx
  cmovg  %ebx,%edx
  mov    %edx,0x8(%rsp)
  cmp    %eax,%r9d
  jge    L1049
  mov    0xd0(%rsp),%rsi
  movslq %r14d,%rdx
  sub    $0x1,%eax
  movslq %r9d,%r8
  mov    0xd8(%rsp),%rdi
  sub    %r9d,%eax
  mov    0x1c8(%rsp),%r12
  mov    (%rsi),%esi
  add    %r8,%rax
  mov    %esi,0x38(%rsp)
  mov    (%rdi),%esi
  mov    0x20(%rsp),%rdi
  mov    %esi,0x40(%rsp)
  mov    0x68(%rsp),%esi
  lea    (%rdi,%rdx,8),%r10
  mov    0xe0(%rsp),%rdi
  lea    (%rsi,%r9,1),%ecx
  mov    0x10(%rsp),%rsi
  imul   %ebx,%ecx
  lea    (%rdx,%rdi,1),%r11
  mov    %ebx,%edi
  imul   %r9d,%edi
  lea    (%rsi,%r8,8),%rbp
  mov    0xf8(%rsp),%r8
  mov    0x1d0(%rsp),%rsi
  lea    (%r8,%rax,8),%r8
  movslq %ecx,%rcx
  mov    %r8,0x48(%rsp)
  mov    0xf0(%rsp),%r8
  movslq %edi,%rdi
  add    %rcx,%r11
  lea    0x0(,%rcx,8),%rax
  add    %rdi,%rdx
  shl    $0x3,%r11
  lea    (%r8,%rdi,8),%r13
  mov    0x70(%rsp),%r8d
  shl    $0x3,%rdx
  add    %r11,%r12
  sub    %rax,%r13
  mov    0x8(%rsp),%eax
  add    %rdx,%rsi
  add    0x1c0(%rsp),%r11
  lea    (%r8,%r9,1),%ebx
  add    0x1d8(%rsp),%rdx
  imul   0x18(%rsp),%ebx
  sub    $0x1,%eax
  sub    %r14d,%eax
  lea    0x8(,%rax,8),%r9
  movslq %ebx,%rbx
  add    0x100(%rsp),%rbx
  sub    %rcx,%rbx
  shl    $0x3,%rbx
  nopl   0x0(%rax)
L1023:
  mov    0x38(%rsp),%r8d
  lea    (%rbx,%r12,1),%rax
  lea    (%rbx,%r11,1),%rcx
  movsd  0x0(%rbp),%xmm4
  lea    0x0(%r13,%r11,1),%rdi
  test   %r8d,%r8d
  mov    %r12,%r8
  cmovne %rax,%rcx
  mov    0x40(%rsp),%eax
  test   %eax,%eax
  cmove  %r11,%r8
  cmp    0x8(%rsp),%r14d
  jge    L1058
  xor    %eax,%eax
  nopl   0x0(%rax)
L971:
  movsd  (%r10,%rax,1),%xmm0
  movsd  (%rdi,%rax,1),%xmm3
  movsd  (%rcx,%rax,1),%xmm2
  mulsd  %xmm4,%xmm0
  subsd  %xmm3,%xmm2
  mulsd  %xmm2,%xmm0
  movsd  (%r8,%rax,1),%xmm2
  subsd  %xmm3,%xmm2
  mulsd  %xmm2,%xmm0
  mulsd  (%rsi,%rax,1),%xmm0
  mulsd  (%rdx,%rax,1),%xmm0
  add    $0x8,%rax
  addsd  %xmm0,%xmm1
  cmp    %rax,%r9
  jne    L971
L1058:
  add    %r15,%r12
  add    %r15,%r11
  add    $0x8,%rbp
  add    %r15,%rsi
  add    %r15,%rdx
  cmp    %rbp,0x48(%rsp)
  jne    L1023
L1049:
  addq   $0x8,0x80(%rsp)
  mov    0x80(%rsp),%rax
  addq   $0x8,0x98(%rsp)
  cmp    0x30(%rsp),%rax
  jne    L48
  mov    0x118(%rsp),%r14d
  mov    0x11c(%rsp),%r13d
  jmp    L73
L54:
  mov    0x28(%rsp),%r14d
  mov    0x38(%rsp),%r13d
  jmp    L668
L773:
  mov    0xa4(%rsp),%edx
  test   %edx,%edx
  jle    L203
  mov    0x188(%rsp),%rbx
  mov    %r14d,0x54(%rsp)
  pxor   %xmm2,%xmm2
  mov    %r13d,0x64(%rsp)
  lea    (%rbx,%rax,4),%rax
  mov    %rax,0x48(%rsp)
  mov    0x168(%rsp),%rax
  mov    %rax,0x28(%rsp)
  mov    0x170(%rsp),%rax
  mov    %rax,0x8(%rsp)
  movslq 0x40(%rsp),%rax
  mov    %rax,0x38(%rsp)
  mov    0x10(%rsp),%rax
  add    $0x8,%rax
  mov    %rax,0x40(%rsp)
L81:
  mov    0x8(%rsp),%rax
  mov    0x1c(%rsp),%ebx
  mov    $0x0,%edx
  cvttsd2si (%rax),%eax
  mov    %eax,%r8d
  sub    0x160(%rsp),%r8d
  cmovs  %edx,%r8d
  add    0x160(%rsp),%eax
  cmp    %ebx,%eax
  cmovg  %ebx,%eax
  mov    0x18(%rsp),%ebx
  mov    %eax,%esi
  mov    0x28(%rsp),%rax
  cvttsd2si (%rax),%eax
  mov    %eax,%r12d
  sub    0x160(%rsp),%r12d
  cmovs  %edx,%r12d
  add    0x160(%rsp),%eax
  cmp    %ebx,%eax
  cmovg  %ebx,%eax
  mov    %eax,%ebp
  cmp    %esi,%r8d
  jge    L170
  mov    0x48(%rsp),%rax
  movslq %r12d,%rdx
  mov    0x38(%rsp),%rdi
  movslq %r8d,%r13
  mov    0x1c8(%rsp),%r11
  sub    $0x1,%esi
  mov    (%rax),%r14d
  mov    0x20(%rsp),%rax
  lea    (%rdx,%rdi,1),%rcx
  sub    %r8d,%esi
  mov    0x1d0(%rsp),%rdi
  add    %r13,%rsi
  lea    (%rax,%rdx,8),%r9
  mov    0x70(%rsp),%eax
  add    %r8d,%eax
  imul   %ebx,%eax
  imul   %r8d,%ebx
  mov    0x40(%rsp),%r8
  cltq
  add    %rax,%rcx
  movslq %ebx,%rbx
  lea    (%r11,%rcx,8),%r11
  mov    0x10(%rsp),%rcx
  sub    %rbx,%rax
  add    %rbx,%rdx
  add    0x38(%rsp),%rax
  shl    $0x3,%rdx
  lea    (%rcx,%r13,8),%r10
  lea    0x0(,%rax,8),%rbx
  mov    0x1c0(%rsp),%rcx
  add    %rdx,%rdi
  lea    -0x1(%rbp),%eax
  lea    (%r8,%rsi,8),%r13
  sub    %r12d,%eax
  add    %rdx,%rcx
  add    0x1d8(%rsp),%rdx
  lea    0x8(,%rax,8),%r8
  nop
L4:
  lea    (%rbx,%rcx,1),%rsi
  test   %r14d,%r14d
  movsd  (%r10),%xmm4
  cmovne %r11,%rsi
  cmp    %ebp,%r12d
  jge    L354
  xor    %eax,%eax
  nopw   0x0(%rax,%rax,1)
L637:
  movsd  (%r9,%rax,1),%xmm1
  movsd  (%rcx,%rax,1),%xmm3
  movsd  (%rsi,%rax,1),%xmm0
  mulsd  %xmm4,%xmm1
  subsd  %xmm3,%xmm0
  mulsd  %xmm1,%xmm0
  mulsd  %xmm3,%xmm0
  mulsd  (%rdi,%rax,1),%xmm0
  mulsd  (%rdx,%rax,1),%xmm0
  add    $0x8,%rax
  addsd  %xmm0,%xmm2
  cmp    %rax,%r8
  jne    L637
L354:
  add    $0x8,%r10
  add    %r15,%r11
  add    %r15,%rcx
  add    %r15,%rdi
  add    %r15,%rdx
  cmp    %r10,%r13
  jne    L4
L170:
  addq   $0x8,0x8(%rsp)
  mov    0x8(%rsp),%rax
  addq   $0x8,0x28(%rsp)
  cmp    0x30(%rsp),%rax
  jne    L81
  jmp    L259
L426:
  mov    0xa4(%rsp),%ecx
  test   %ecx,%ecx
  jle    L203
  mov    0x168(%rsp),%rax
  mov    %r14d,0x40(%rsp)
  pxor   %xmm2,%xmm2
  mov    %r13d,0x48(%rsp)
  mov    0x1c0(%rsp),%r12
  mov    %rax,0x28(%rsp)
  mov    0x170(%rsp),%rax
  mov    0x1d0(%rsp),%r13
  mov    0x1d8(%rsp),%r14
  mov    %rax,0x8(%rsp)
  mov    0x10(%rsp),%rax
  add    $0x8,%rax
  mov    %rax,0x38(%rsp)
L1158:
  mov    0x8(%rsp),%rax
  mov    0x1c(%rsp),%ebx
  mov    $0x0,%ecx
  mov    $0x0,%esi
  mov    0x18(%rsp),%r9d
  cvttsd2si (%rax),%eax
  mov    %eax,%edx
  sub    0x160(%rsp),%edx
  cmovs  %ecx,%edx
  add    0x160(%rsp),%eax
  cmp    %ebx,%eax
  cmovg  %ebx,%eax
  mov    0x28(%rsp),%rbx
  cvttsd2si (%rbx),%ecx
  mov    %ecx,%ebx
  sub    0x160(%rsp),%ebx
  cmovs  %esi,%ebx
  add    0x160(%rsp),%ecx
  cmp    %r9d,%ecx
  cmovg  %r9d,%ecx
  mov    %ecx,%r11d
  cmp    %eax,%edx
  jge    L778
  mov    0x20(%rsp),%rsi
  movslq %ebx,%rdi
  mov    0x10(%rsp),%rcx
  sub    $0x1,%eax
  sub    %edx,%eax
  lea    (%rsi,%rdi,8),%r8
  movslq %edx,%rsi
  lea    (%rcx,%rsi,8),%r10
  mov    %r9d,%ecx
  add    %rsi,%rax
  mov    0x38(%rsp),%rsi
  imul   %edx,%ecx
  lea    (%rsi,%rax,8),%rbp
  lea    -0x1(%r11),%eax
  sub    %ebx,%eax
  movslq %ecx,%rcx
  add    %rdi,%rcx
  lea    0x8(,%rax,8),%rdi
  lea    0x0(,%rcx,8),%r9
  nopw   0x0(%rax,%rax,1)
L688:
  movsd  (%r10),%xmm1
  lea    (%r12,%r9,1),%rdx
  lea    0x0(%r13,%r9,1),%rcx
  lea    (%r14,%r9,1),%rsi
  cmp    %r11d,%ebx
  jge    L284
  xor    %eax,%eax
  nopl   0x0(%rax)
L774:
  movsd  (%r8,%rax,1),%xmm0
  mulsd  %xmm1,%xmm0
  mulsd  (%rdx,%rax,1),%xmm0
  mulsd  (%rcx,%rax,1),%xmm0
  mulsd  (%rsi,%rax,1),%xmm0
  add    $0x8,%rax
  addsd  %xmm0,%xmm2
  cmp    %rdi,%rax
  jne    L774
L284:
  add    $0x8,%r10
  add    %r15,%r9
  cmp    %rbp,%r10
  jne    L688
L778:
  addq   $0x8,0x8(%rsp)
  mov    0x8(%rsp),%rax
  addq   $0x8,0x28(%rsp)
  cmp    0x30(%rsp),%rax
  jne    L1158
  mov    0x40(%rsp),%r14d
  mov    0x48(%rsp),%r13d
  jmp    L668
L730:
  pxor   %xmm1,%xmm1
  jmp    L483
L203:
  pxor   %xmm2,%xmm2
  jmp    L668
L893:
  pxor   %xmm1,%xmm1
  jmp    L73
L477:
  mov    0xb8(%rsp),%r9d
  jmp    L584
```

tool_calls: name: unpack_data
arguments: data_tag: D14
type_guessed: f64

tool: D14: 0.5

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;
      }
    }
  }
}
```