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

```asm
<dradbg>:
  endbr64
  push   %r15
  pxor   %xmm1,%xmm1
  mov    %esi,%eax
  mov    %edx,%r15d
  push   %r14
  imul   %edi,%eax
  push   %r13
  mov    %r9,%r13
  push   %r12
  push   %rbp
  push   %rbx
  mov    %r8,%rbx
  sub    $0x1c8,%rsp
  movss  D4(%rip),%xmm0
  mov    %ecx,0x184(%rsp)
  mov    %esi,%ecx
  lea    0x1b0(%rsp),%rsi
  mov    0x200(%rsp),%r12
  cvtsi2ss %ecx,%xmm1
  mov    %eax,0x8(%rsp)
  mov    %edi,%eax
  mov    0x208(%rsp),%rbp
  imul   %edx,%eax
  mov    %edi,0x3c(%rsp)
  lea    0x1b8(%rsp),%rdi
  mov    0x210(%rsp),%r14
  mov    %ecx,0x10c(%rsp)
  divss  %xmm1,%xmm0
  mov    %eax,0x108(%rsp)
  cvtss2sd %xmm0,%xmm0
  call   <sincos@plt>
  mov    0x10c(%rsp),%esi
  mov    0x3c(%rsp),%r8d
  pxor   %xmm1,%xmm1
  pxor   %xmm2,%xmm2
  cvtsd2ss 0x1b0(%rsp),%xmm1
  lea    0x1(%rsi),%eax
  lea    -0x1(%r8),%edi
  cvtsd2ss 0x1b8(%rsp),%xmm2
  mov    %eax,%esi
  mov    %edi,0x18(%rsp)
  sar    %edi
  sar    %esi
  mov    %edi,0x188(%rsp)
  mov    %esi,0x38(%rsp)
  cmp    %r15d,%r8d
  jl     L1431
  test   %r15d,%r15d
  jle    L416
  test   %r8d,%r8d
  jle    L387
  movslq %r8d,%rax
  mov    %r13,0x40(%rsp)
  mov    %r8d,%edi
  mov    %rbp,%rdx
  lea    0x0(,%rax,4),%rsi
  movslq 0x8(%rsp),%rax
  xor    %r11d,%r11d
  xor    %r9d,%r9d
  mov    %rsi,(%rsp)
  mov    %r8d,%esi
  shr    $0x2,%esi
  shl    $0x2,%rax
  mov    %r12,0x200(%rsp)
  mov    %esi,%ecx
  mov    %r8d,%esi
  mov    %rax,0x10(%rsp)
  mov    %rbx,%rax
  and    $0xfffffffc,%esi
  sub    $0x1,%ecx
  mov    %r14,0x210(%rsp)
  mov    %rdi,%r14
  lea    0x1(%rsi),%r10d
  add    $0x1,%rcx
  mov    %esi,%r12d
  mov    %r10d,0x30(%rsp)
  lea    0x2(%rsi),%r10d
  shl    $0x4,%rcx
  mov    %r10d,0x28(%rsp)
  xor    %r10d,%r10d
L1073:
  lea    0x4(%rax),%rdi
  mov    %rdx,%rsi
  sub    %rdi,%rsi
  cmp    $0x8,%rsi
  jbe    L1363
  xor    %esi,%esi
  cmpl   $0x2,0x18(%rsp)
  jbe    L1363
  nop
L1044:
  movups (%rax,%rsi,1),%xmm6
  movups %xmm6,(%rdx,%rsi,1)
  add    $0x10,%rsi
  cmp    %rcx,%rsi
  jne    L1044
  lea    (%r9,%r12,1),%esi
  lea    (%r11,%r12,1),%edi
  cmp    %r12d,%r8d
  je     L115
  movslq %edi,%r13
  add    $0x1,%edi
  movss  (%rbx,%r13,4),%xmm0
  movslq %esi,%r13
  add    $0x1,%esi
  movss  %xmm0,0x0(%rbp,%r13,4)
  cmp    0x30(%rsp),%r8d
  jle    L115
  movslq %edi,%rdi
  movslq %esi,%rsi
  movss  (%rbx,%rdi,4),%xmm0
  lea    0x0(,%rdi,4),%r13
  mov    %r13,0x20(%rsp)
  lea    0x0(,%rsi,4),%r13
  movss  %xmm0,0x0(%rbp,%rsi,4)
  cmp    0x28(%rsp),%r8d
  jle    L115
  mov    0x20(%rsp),%rsi
  movss  0x4(%rbx,%rsi,1),%xmm0
  movss  %xmm0,0x4(%rbp,%r13,1)
L115:
  add    $0x1,%r10d
  add    %r8d,%r9d
  add    0x8(%rsp),%r11d
  add    (%rsp),%rdx
  add    0x10(%rsp),%rax
  cmp    %r10d,%r15d
  jne    L1073
  mov    0x40(%rsp),%r13
  mov    0x200(%rsp),%r12
  mov    0x210(%rsp),%r14
L387:
  mov    0x10c(%rsp),%eax
  imul   0x108(%rsp),%eax
  mov    %eax,0xb8(%rsp)
  mov    0x3c(%rsp),%eax
  add    %eax,%eax
  cmpl   $0x1,0x38(%rsp)
  mov    %eax,(%rsp)
  jle    L464
L481:
  cmpl   $0x1,0x3c(%rsp)
  jne    L728
  movslq 0x108(%rsp),%rdx
  mov    0x8(%rsp),%ecx
  lea    0x8(%rbx),%r10
  movl   $0x1,(%rsp)
  mov    %r10,0xa0(%rsp)
  lea    0x0(,%rdx,4),%rax
  mov    %rdx,%r11
  movl   $0x2,0x18(%rsp)
  mov    %rax,0x30(%rsp)
  add    %rbp,%rax
  mov    %rax,0x98(%rsp)
  movslq 0xb8(%rsp),%rax
  movl   $0x0,0x28(%rsp)
  mov    %rax,%rdi
  mov    %edx,%eax
  mov    %r12,0x200(%rsp)
  sub    %rdx,%rdi
  neg    %eax
  lea    0x0(%rbp,%rdi,4),%rsi
  cltq
  sub    %rdx,%rdi
  sub    %rdx,%rax
  mov    %rdi,0xa8(%rsp)
  mov    %r11d,%edi
  movslq %ecx,%rdx
  mov    %rax,0x40(%rsp)
  lea    -0x1(%rdi),%rax
  mov    %rdx,%r8
  imul   %rdx,%rax
  test   %edx,%edx
  mov    $0x4,%edx
  lea    0x4(,%rax,4),%rax
  cmovns %rax,%rdx
  sub    $0x4,%rax
  mov    %rdx,%r9
  xor    %edx,%edx
  test   %ecx,%ecx
  cmovs  %rax,%rdx
  lea    0x0(,%r8,4),%rax
  mov    %rdx,%r10
  lea    0x0(,%rdi,4),%rdx
  mov    %r11d,%edi
  shr    $0x2,%edi
  mov    %rdx,0x88(%rsp)
  mov    %r8,%rdx
  sub    $0x1,%edi
  shl    $0x4,%rdx
  add    $0x1,%rdi
  shl    $0x4,%rdi
  mov    %rdi,0x90(%rsp)
  mov    %r11d,%edi
  and    $0xfffffffc,%edi
  imul   %edi,%ecx
  mov    %edi,0x60(%rsp)
  mov    %ecx,0x68(%rsp)
  lea    0x1(%rdi),%ecx
  add    $0x2,%edi
  mov    %ecx,0x80(%rsp)
  mov    0xb8(%rsp),%ecx
  mov    %edi,0x78(%rsp)
  mov    %r11d,%edi
  lea    -0x1(%r11),%r11d
  mov    %ecx,0x20(%rsp)
  mov    0x88(%rsp),%rcx
  mov    %r11d,0x48(%rsp)
  lea    -0x4(%r9),%r11
  mov    0x90(%rsp),%r9
  sub    $0x4,%rcx
  mov    %r11,0x50(%rsp)
  lea    -0x4(%r10),%r11
  mov    0xa8(%rsp),%r10
  mov    %rcx,0x10(%rsp)
  lea    -0x4(,%r8,8),%rcx
  mov    0xa0(%rsp),%r8
  mov    %rcx,0x70(%rsp)
  mov    0x98(%rsp),%rcx
  mov    %r11,0x58(%rsp)
  mov    %r13,0x98(%rsp)
  mov    %edi,%r13d
  mov    %r15d,0x90(%rsp)
  mov    %r14,0x210(%rsp)
L1170:
  mov    0x50(%rsp),%r14
  mov    %r8,%rdi
  add    %r13d,0x28(%rsp)
  lea    -0x4(,%r10,4),%r11
  sub    %rbx,%rdi
  add    0x58(%rsp),%rdi
  sub    %r13d,0x20(%rsp)
  add    %r8,%r14
  add    %rbx,%rdi
  cmp    $0x8,%r11
  mov    0x10(%rsp),%r15
  seta   %r12b
  cmpl   $0x17,0x48(%rsp)
  seta   %r11b
  and    %r11d,%r12d
  lea    (%r15,%rcx,1),%r11
  cmp    %r11,%rdi
  seta   %r11b
  cmp    %rcx,%r14
  setb   %r15b
  or     %r15d,%r11d
  test   %r11b,%r12b
  je     L965
  mov    0x10(%rsp),%r15
  lea    (%r15,%rsi,1),%r11
  cmp    %r11,%rdi
  seta   %dil
  cmp    %rsi,%r14
  setb   %r11b
  or     %dil,%r11b
  je     L965
  mov    0x70(%rsp),%rdi
  lea    -0x4(%r8),%r11
  xor    %r12d,%r12d
  add    %r8,%rdi
  nopl   0x0(%rax,%rax,1)
L1336:
  movss  (%rdi,%rax,1),%xmm0
  movss  (%rdi),%xmm3
  movss  (%r11,%rax,1),%xmm4
  unpcklps %xmm0,%xmm3
  movss  (%r11),%xmm0
  unpcklps %xmm4,%xmm0
  movlhps %xmm3,%xmm0
  addps  %xmm0,%xmm0
  movups %xmm0,(%rcx,%r12,1)
  movss  0x4(%rdi,%rax,1),%xmm0
  movss  0x4(%rdi),%xmm3
  add    %rdx,%rdi
  movss  0x4(%r11,%rax,1),%xmm4
  unpcklps %xmm0,%xmm3
  movss  0x4(%r11),%xmm0
  add    %rdx,%r11
  unpcklps %xmm4,%xmm0
  movlhps %xmm3,%xmm0
  addps  %xmm0,%xmm0
  movups %xmm0,(%rsi,%r12,1)
  add    $0x10,%r12
  cmp    %r9,%r12
  jne    L1336
  mov    0x60(%rsp),%r14d
  mov    0x28(%rsp),%r15d
  mov    0x20(%rsp),%r11d
  mov    0x18(%rsp),%edi
  add    %r14d,%r15d
  add    0x68(%rsp),%edi
  add    %r14d,%r11d
  cmp    %r14d,%r13d
  je     L1625
  movslq %edi,%r12
  movslq %r15d,%r14
  add    0x8(%rsp),%edi
  add    $0x1,%r15d
  movss  -0x4(%rbx,%r12,4),%xmm0
  addss  %xmm0,%xmm0
  movss  %xmm0,0x0(%rbp,%r14,4)
  movss  (%rbx,%r12,4),%xmm0
  movslq %r11d,%r14
  add    $0x1,%r11d
  addss  %xmm0,%xmm0
  movss  %xmm0,0x0(%rbp,%r14,4)
  cmp    0x80(%rsp),%r13d
  jle    L1625
  movslq %edi,%r12
  movslq %r15d,%r15
  movslq %r11d,%r11
  add    0x8(%rsp),%edi
  movss  -0x4(%rbx,%r12,4),%xmm0
  lea    0x0(,%r15,4),%r14
  addss  %xmm0,%xmm0
  movss  %xmm0,0x0(%rbp,%r15,4)
  movss  (%rbx,%r12,4),%xmm0
  lea    0x0(,%r11,4),%r15
  addss  %xmm0,%xmm0
  movss  %xmm0,0x0(%rbp,%r11,4)
  cmp    0x78(%rsp),%r13d
  jle    L1625
  movslq %edi,%rdi
  movss  -0x4(%rbx,%rdi,4),%xmm0
  addss  %xmm0,%xmm0
  movss  %xmm0,0x4(%rbp,%r14,1)
  movss  (%rbx,%rdi,4),%xmm0
  addss  %xmm0,%xmm0
  movss  %xmm0,0x4(%rbp,%r15,1)
L1625:
  mov    0x30(%rsp),%r14
  addl   $0x1,(%rsp)
  add    $0x8,%r8
  addl   $0x2,0x18(%rsp)
  mov    (%rsp),%edi
  add    %r14,%rcx
  sub    %r14,%rsi
  add    0x40(%rsp),%r10
  cmp    %edi,0x38(%rsp)
  jne    L1170
  mov    0x90(%rsp),%r15d
  mov    0x98(%rsp),%r13
  mov    0x200(%rsp),%r12
  mov    0x210(%rsp),%r14
L1122:
  mov    0x184(%rsp),%ebx
  mov    0x10c(%rsp),%esi
  pxor   %xmm5,%xmm5
  imul   %ebx,%esi
  mov    %ebx,%eax
  movslq %ebx,%rcx
  neg    %eax
  mov    %rcx,0x40(%rsp)
  movslq %eax,%r8
  movslq %esi,%rdx
  lea    0x0(,%r8,4),%rax
  mov    %esi,%r9d
  mov    %esi,0xe0(%rsp)
  mov    %rdx,%r10
  mov    %rcx,%rsi
  sub    %ebx,%r9d
  mov    %rax,0x80(%rsp)
  sub    %rcx,%r10
  lea    (%rsi,%rsi,1),%rbx
  sub    %r8,%rcx
  mov    %r8,0x88(%rsp)
  lea    0x0(,%rsi,4),%rdi
  lea    0x0(,%r10,4),%rax
  sub    %rsi,%r8
  mov    %rbx,0x148(%rsp)
  mov    %rax,0x58(%rsp)
  lea    (%r12,%rax,1),%r11
  lea    0x10(%rdi),%rax
  sub    %rdx,%rbx
  mov    %rax,0x78(%rsp)
  lea    0x10(,%r10,4),%rax
  sub    0x148(%rsp),%rdx
  mov    %rax,0x98(%rsp)
  mov    0x78(%rsp),%rax
  lea    -0x4(,%rdx,4),%rdx
  mov    %rdx,0xf8(%rsp)
  lea    0x4(%r14,%rdi,1),%rdx
  add    %r12,%rax
  mov    %rdx,0x128(%rsp)
  mov    %rax,0x70(%rsp)
  mov    0x58(%rsp),%rax
  mov    %r8,0xa8(%rsp)
  shl    $0x2,%r8
  lea    (%r14,%rax,1),%rdx
  mov    %rbx,0xf0(%rsp)
  lea    (%r12,%rdi,1),%rbx
  mov    %rdx,0x110(%rsp)
  lea    0x10(%r14,%rax,1),%rdx
  lea    0x4(%r14,%rax,1),%rax
  mov    %rax,0x138(%rsp)
  lea    -0x1(%rsi),%eax
  mov    %eax,0xa0(%rsp)
  mov    %esi,%eax
  shr    $0x2,%eax
  mov    %rdi,0x68(%rsp)
  sub    $0x1,%eax
  mov    %r8,0x140(%rsp)
  lea    (%r14,%rdi,1),%r8
  mov    %rdx,0x130(%rsp)
  add    $0x1,%rax
  mov    %rdi,%rdx
  mov    %esi,%edi
  and    $0xfffffffc,%edi
  mov    %rcx,0x120(%rsp)
  shl    $0x4,%rax
  mov    %rsi,%rcx
  mov    %r9d,0x178(%rsp)
  add    %edi,%r9d
  add    %edi,%esi
  mov    %rax,0x198(%rsp)
  lea    (%rcx,%rcx,1),%eax
  mov    %r10,0x118(%rsp)
  cltq
  mov    %r8,0x150(%rsp)
  add    %rdx,%r8
  add    %rcx,%rax
  mov    %r9d,0x180(%rsp)
  mov    %rdx,%r9
  mov    %r10,%rdx
  sub    %rcx,%r10
  mov    %esi,0x17c(%rsp)
  lea    (%r14,%r10,4),%rsi
  mov    %edi,0xb0(%rsp)
  mov    %r8,0x160(%rsp)
  movss  D18(%rip),%xmm6
  mov    %r10,0x170(%rsp)
  mov    %rdx,%r10
  sub    %rax,%r10
  mov    %rsi,0x158(%rsp)
  mov    %ecx,%esi
  mov    %r10,0x168(%rsp)
  mov    0xa0(%rsp),%r10d
  mov    %esi,%eax
  mov    %rcx,0x48(%rsp)
  sub    %edi,%eax
  mov    %r10,0x1a0(%rsp)
  shl    $0x2,%r10
  lea    0x4(%r10),%rcx
  mov    %r10,0x1a8(%rsp)
  mov    %rdx,0x50(%rsp)
  mov    %r9,0x90(%rsp)
  movl   $0x0,0xd8(%rsp)
  movl   $0x1,0xe8(%rsp)
  mov    %rcx,0x100(%rsp)
  mov    %eax,0xd0(%rsp)
  mov    %rbp,0x208(%rsp)
  mov    %r13,0x190(%rsp)
  mov    0x198(%rsp),%r13
  mov    %r15d,0x18c(%rsp)
  mov    %esi,%r15d
  nopw   0x0(%rax,%rax,1)
L1125:
  movaps %xmm6,%xmm0
  movaps %xmm2,%xmm3
  movaps %xmm1,%xmm6
  add    %r15d,0xd8(%rsp)
  mulss  %xmm0,%xmm6
  sub    %r15d,0xe0(%rsp)
  mulss  %xmm5,%xmm3
  mulss  %xmm2,%xmm0
  mulss  %xmm1,%xmm5
  subss  %xmm3,%xmm6
  addss  %xmm0,%xmm5
  test   %r15d,%r15d
  jle    L277
  cmp    $0x1,%r15d
  mov    0x110(%rsp),%rdi
  lea    0x4(%r14),%rcx
  setne  %dl
  cmpq   $0x8,0xf8(%rsp)
  seta   %al
  and    %eax,%edx
  mov    0x70(%rsp),%rax
  cmp    %rax,%rdi
  setae  %al
  cmp    0x130(%rsp),%rbx
  setae  %sil
  or     %esi,%eax
  mov    0x128(%rsp),%rsi
  and    %edx,%eax
  mov    %rbx,%rdx
  sub    %rsi,%rdx
  cmp    $0x8,%rdx
  seta   %dl
  and    %edx,%eax
  mov    %rbx,%rdx
  sub    %rcx,%rdx
  cmp    $0x8,%rdx
  seta   %dl
  and    %edx,%eax
  mov    %r11,%rdx
  sub    %rsi,%rdx
  cmp    $0x8,%rdx
  seta   %dl
  and    %edx,%eax
  mov    %r11,%rdx
  sub    0x138(%rsp),%rdx
  cmp    $0x8,%rdx
  seta   %dl
  test   %dl,%al
  je     L613
  mov    %r11,%rax
  sub    %rcx,%rax
  cmp    $0x8,%rax
  jbe    L613
  cmpl   $0x2,0xa0(%rsp)
  jbe    L1138
  mov    0x150(%rsp),%rcx
  movaps %xmm6,%xmm4
  movaps %xmm5,%xmm3
  xor    %eax,%eax
  mov    %rdi,%rdx
  shufps $0x0,%xmm4,%xmm4
  shufps $0x0,%xmm3,%xmm3
  cs nopw 0x0(%rax,%rax,1)
L419:
  movups (%rcx,%rax,1),%xmm0
  movups (%r14,%rax,1),%xmm7
  mulps  %xmm4,%xmm0
  addps  %xmm7,%xmm0
  movups %xmm0,(%rbx,%rax,1)
  movups (%rdx,%rax,1),%xmm0
  mulps  %xmm3,%xmm0
  movups %xmm0,(%r11,%rax,1)
  add    $0x10,%rax
  cmp    %r13,%rax
  jne    L419
  mov    0xb0(%rsp),%edi
  mov    0xd8(%rsp),%edx
  mov    0xe0(%rsp),%eax
  add    %edi,%edx
  add    %edi,%eax
  cmp    %edi,%r15d
  je     L1446
  mov    0xd0(%rsp),%esi
  mov    %esi,%r9d
  cmp    $0x1,%esi
  je     L1121
  mov    0x180(%rsp),%ebp
  mov    0x17c(%rsp),%r10d
  mov    %edi,%ecx
  mov    %edi,%esi
L44:
  mov    0x40(%rsp),%rdi
  movaps %xmm6,%xmm3
  mov    %r9d,%r8d
  shufps $0xe0,%xmm3,%xmm3
  and    $0xfffffffe,%r8d
  add    %rcx,%rdi
  add    %r8d,%esi
  add    %r8d,%edx
  add    %r8d,%eax
  movq   (%r14,%rdi,4),%xmm0
  mov    0x48(%rsp),%rdi
  mulps  %xmm3,%xmm0
  movq   (%r14,%rcx,4),%xmm3
  add    %rcx,%rdi
  addps  %xmm3,%xmm0
  movaps %xmm5,%xmm3
  shufps $0xe0,%xmm3,%xmm3
  movlps %xmm0,(%r12,%rdi,4)
  mov    0x118(%rsp),%rdi
  add    %rcx,%rdi
  add    0x50(%rsp),%rcx
  movq   (%r14,%rdi,4),%xmm0
  lea    (%r8,%r10,1),%edi
  mulps  %xmm3,%xmm0
  movlps %xmm0,(%r12,%rcx,4)
  lea    (%r8,%rbp,1),%ecx
  cmp    %r9d,%r8d
  je     L1446
L370:
  movslq %edi,%rdi
  movslq %esi,%rsi
  movslq %edx,%rdx
  movslq %ecx,%rcx
  movss  (%r14,%rdi,4),%xmm0
  cltq
  mulss  %xmm6,%xmm0
  addss  (%r14,%rsi,4),%xmm0
  movss  %xmm0,(%r12,%rdx,4)
  movss  (%r14,%rcx,4),%xmm0
  mulss  %xmm5,%xmm0
  movss  %xmm0,(%r12,%rax,4)
L1446:
  cmpl   $0x2,0x38(%rsp)
  jle    L205
  mov    0xb0(%rsp),%esi
  mov    %r15d,0x18(%rsp)
  movaps %xmm6,%xmm4
  movaps %xmm5,%xmm3
  mov    0xd8(%rsp),%eax
  movl   $0x2,(%rsp)
  mov    0x158(%rsp),%r8
  mov    0x160(%rsp),%r9
  add    %esi,%eax
  mov    %eax,0xc0(%rsp)
  mov    0xe0(%rsp),%eax
  add    %esi,%eax
  mov    %eax,0xc8(%rsp)
  mov    0x170(%rsp),%rax
  mov    %rax,0x10(%rsp)
  mov    0x148(%rsp),%rax
  mov    %rax,0x8(%rsp)
  mov    0x168(%rsp),%rax
  mov    %rax,0x60(%rsp)
  mov    0x178(%rsp),%eax
  mov    %eax,0x20(%rsp)
  nopw   0x0(%rax,%rax,1)
L1418:
  mov    0x58(%rsp),%rsi
  add    %r15d,0x18(%rsp)
  movaps %xmm4,%xmm0
  movaps %xmm5,%xmm7
  lea    0x4(%r9),%rcx
  mulss  %xmm3,%xmm7
  movaps %xmm6,%xmm4
  sub    %r15d,0x20(%rsp)
  mulss  %xmm0,%xmm4
  cmp    %rsi,0x78(%rsp)
  mov    0x90(%rsp),%rsi
  mulss  %xmm6,%xmm3
  setle  %al
  cmp    %rsi,0x98(%rsp)
  mulss  %xmm5,%xmm0
  setle  %dl
  or     %eax,%edx
  cmp    $0x1,%r15d
  setne  %al
  and    %eax,%edx
  lea    0x10(%r8),%rax
  subss  %xmm7,%xmm4
  cmp    %rax,%rbx
  setae  %al
  cmp    0x70(%rsp),%r8
  addss  %xmm0,%xmm3
  setae  %sil
  or     %esi,%eax
  and    %edx,%eax
  mov    %rbx,%rdx
  sub    %rcx,%rdx
  cmp    $0x8,%rdx
  seta   %dl
  and    %edx,%eax
  mov    %r11,%rdx
  sub    %rcx,%rdx
  cmp    $0x8,%rdx
  seta   %dl
  test   %dl,%al
  je     L799
  lea    0x4(%r8),%rdx
  mov    %r11,%rax
  sub    %rdx,%rax
  cmp    $0x8,%rax
  jbe    L799
  cmpl   $0x2,0xa0(%rsp)
  jbe    L95
  movaps %xmm4,%xmm8
  movaps %xmm3,%xmm7
  xor    %eax,%eax
  shufps $0x0,%xmm8,%xmm8
  shufps $0x0,%xmm7,%xmm7
  nopl   0x0(%rax)
L1036:
  movups (%r9,%rax,1),%xmm0
  movups (%rbx,%rax,1),%xmm9
  mulps  %xmm8,%xmm0
  addps  %xmm9,%xmm0
  movups %xmm0,(%rbx,%rax,1)
  movups (%r8,%rax,1),%xmm0
  movups (%r11,%rax,1),%xmm10
  mulps  %xmm7,%xmm0
  addps  %xmm10,%xmm0
  movups %xmm0,(%r11,%rax,1)
  add    $0x10,%rax
  cmp    %rax,%r13
  jne    L1036
  mov    0xb0(%rsp),%edi
  mov    0x18(%rsp),%edx
  mov    0x20(%rsp),%eax
  add    %edi,%edx
  add    %edi,%eax
  cmp    %edi,%r15d
  je     L857
  mov    0xd0(%rsp),%esi
  mov    %esi,0x28(%rsp)
  cmp    $0x1,%esi
  je     L917
  mov    0xc8(%rsp),%esi
  mov    %esi,0x30(%rsp)
  mov    0xc0(%rsp),%esi
L781:
  mov    0x48(%rsp),%rcx
  movaps %xmm4,%xmm7
  shufps $0xe0,%xmm7,%xmm7
  lea    (%rdi,%rcx,1),%r10
  mov    0x50(%rsp),%rcx
  lea    (%r12,%r10,4),%rbp
  lea    (%rdi,%rcx,1),%r10
  mov    0x8(%rsp),%rcx
  lea    (%r12,%r10,4),%r10
  add    %rdi,%rcx
  add    0x10(%rsp),%rdi
  movq   (%r14,%rcx,4),%xmm0
  mov    0x30(%rsp),%ecx
  mulps  %xmm7,%xmm0
  movq   0x0(%rbp),%xmm7
  addps  %xmm7,%xmm0
  movaps %xmm3,%xmm7
  shufps $0xe0,%xmm7,%xmm7
  movlps %xmm0,0x0(%rbp)
  movq   (%r14,%rdi,4),%xmm0
  mulps  %xmm7,%xmm0
  movq   (%r10),%xmm7
  addps  %xmm7,%xmm0
  movlps %xmm0,(%r10)
  mov    0x28(%rsp),%r10d
  mov    %r10d,%edi
  and    $0xfffffffe,%edi
  add    %edi,%esi
  add    %edi,%ecx
  add    %edi,%edx
  add    %edi,%eax
  cmp    %r10d,%edi
  je     L857
L1448:
  movslq %edx,%rdx
  movslq %esi,%rsi
  cltq
  movslq %ecx,%rcx
  movss  (%r14,%rdx,4),%xmm0
  lea    (%r12,%rsi,4),%rsi
  lea    (%r12,%rcx,4),%rdx
  mulss  %xmm4,%xmm0
  addss  (%rsi),%xmm0
  movss  %xmm0,(%rsi)
  movss  (%r14,%rax,4),%xmm0
  mulss  %xmm3,%xmm0
  addss  (%rdx),%xmm0
  movss  %xmm0,(%rdx)
L857:
  mov    0xa8(%rsp),%rdi
  addl   $0x1,(%rsp)
  add    %rdi,0x60(%rsp)
  mov    0x88(%rsp),%rsi
  mov    0x40(%rsp),%rdi
  add    %rsi,0x10(%rsp)
  add    %rdi,0x8(%rsp)
  mov    (%rsp),%eax
  add    0x68(%rsp),%r9
  add    0x80(%rsp),%r8
  cmp    %eax,0x38(%rsp)
  jne    L1418
L84:
  mov    0x80(%rsp),%rdi
  mov    0x68(%rsp),%rax
  addl   $0x1,0xe8(%rsp)
  mov    0x120(%rsp),%rcx
  add    %rdi,0x58(%rsp)
  add    %rdi,%r11
  mov    0xe8(%rsp),%esi
  add    %rax,%rbx
  add    %rdi,0x98(%rsp)
  mov    0x40(%rsp),%rdi
  add    %rcx,0xf0(%rsp)
  add    %rdi,0x48(%rsp)
  mov    0x88(%rsp),%rdi
  add    %rax,0x78(%rsp)
  add    %rdi,0x50(%rsp)
  mov    0x140(%rsp),%rdi
  add    %rax,0x90(%rsp)
  add    %rax,0x70(%rsp)
  add    %rdi,0xf8(%rsp)
  cmp    %esi,0x38(%rsp)
  jg     L1125
L205:
  mov    0x184(%rsp),%esi
  mov    0x18c(%rsp),%r15d
  mov    0x190(%rsp),%r13
  mov    0x208(%rsp),%rbp
  test   %esi,%esi
  jle    L1030
  mov    0x1a8(%rsp),%rax
  mov    0x40(%rsp),%rdi
  xor    %r11d,%r11d
  mov    %rbp,0x208(%rsp)
  mov    0xb0(%rsp),%r9d
  mov    %r15d,0x8(%rsp)
  mov    $0x1,%r10d
  lea    0x4(%r14,%rax,1),%rbx
  mov    $0x4,%eax
  mov    %r13,0x10(%rsp)
  mov    0x150(%rsp),%rcx
  sub    %r14,%rax
  mov    0x198(%rsp),%r8
  mov    %r12,0x200(%rsp)
  mov    %r9d,%r13d
  mov    %rax,%rdx
  mov    %esi,%eax
  sub    %r9d,%esi
  mov    %esi,(%rsp)
  mov    %eax,%r12d
  mov    %rdx,%r15
  nopl   (%rax)
L297:
  lea    (%r15,%rcx,1),%rax
  add    %r12d,%r11d
  neg    %rax
  cmp    $0x8,%rax
  jbe    L1593
  cmp    $0x1,%r12d
  je     L1593
  cmpl   $0x2,0xa0(%rsp)
  jbe    L972
  xor    %eax,%eax
  xchg   %ax,%ax
L847:
  movups (%rcx,%rax,1),%xmm0
  movups (%r14,%rax,1),%xmm5
  addps  %xmm5,%xmm0
  movups %xmm0,(%r14,%rax,1)
  add    $0x10,%rax
  cmp    %r8,%rax
  jne    L847
  lea    (%r11,%r13,1),%eax
  cmp    %r13d,%r12d
  je     L1093
  mov    (%rsp),%esi
  mov    %esi,%ebp
  cmp    $0x1,%esi
  je     L101
  mov    %r13d,%esi
  mov    %r13d,%edx
L1417:
  lea    (%r14,%rsi,4),%r9
  add    %rdi,%rsi
  movq   (%r14,%rsi,4),%xmm0
  movq   (%r9),%xmm1
  mov    %ebp,%esi
  and    $0xfffffffe,%esi
  addps  %xmm1,%xmm0
  add    %esi,%edx
  add    %esi,%eax
  movlps %xmm0,(%r9)
  cmp    %ebp,%esi
  je     L1093
L1612:
  movslq %edx,%rdx
  cltq
  lea    (%r14,%rdx,4),%rdx
  movss  (%rdx),%xmm0
  addss  (%r14,%rax,4),%xmm0
  movss  %xmm0,(%rdx)
L1093:
  add    $0x1,%r10d
  add    0x40(%rsp),%rdi
  add    0x68(%rsp),%rcx
  cmp    %r10d,0x38(%rsp)
  jg     L297
  mov    0x8(%rsp),%r15d
  mov    0x10(%rsp),%r13
  mov    0x200(%rsp),%r12
  mov    0x208(%rsp),%rbp
L1030:
  test   %r15d,%r15d
  jle    L417
  cmpl   $0x1,0x3c(%rsp)
  jne    L977
  movslq 0x108(%rsp),%r9
  movslq 0xb8(%rsp),%rdx
  movl   $0x0,0x20(%rsp)
  lea    0x10(%rbp,%r9,4),%rax
  mov    %rdx,%rsi
  mov    %r9,%rbx
  mov    %r9,0x40(%rsp)
  mov    %rax,0x10(%rsp)
  mov    %r9d,%eax
  sub    %r9,%rsi
  lea    0x0(,%r9,4),%r11
  neg    %eax
  mov    %rsi,0x8(%rsp)
  lea    0x0(%r13,%r11,1),%rcx
  lea    0x0(,%rsi,4),%rdi
  movslq %eax,%r10
  lea    0x0(%rbp,%r11,1),%r8
  mov    %r10,%rax
  mov    %r10,0x48(%rsp)
  sub    %r9,%rax
  shl    $0x2,%rax
  mov    %rax,0x50(%rsp)
  lea    -0x1(%rsi),%rax
  sub    %r9,%rax
  sub    %r10,%r9
  lea    (%rbx,%rbx,1),%r10
  shl    $0x2,%rax
  mov    %r9,0x58(%rsp)
  mov    %rbx,%r9
  sub    %rdx,%r10
  mov    %rax,0x18(%rsp)
  mov    %rsi,%rax
  lea    0x0(%r13,%rdi,1),%rsi
  add    %rbp,%rdi
  lea    0x10(%r13,%rax,4),%r15
  lea    -0x1(%rbx),%eax
  mov    %r9,(%rsp)
  mov    %eax,0x60(%rsp)
  mov    %ebx,%eax
  and    $0xfffffffc,%ebx
  shr    $0x2,%eax
  mov    %ebx,0x68(%rsp)
  sub    $0x1,%eax
  add    $0x1,%rax
  shl    $0x4,%rax
  mov    %rax,%r14
  mov    %r9d,%eax
  mov    %rax,%rbx
  shl    $0x2,%rax
  mov    %rax,0x78(%rsp)
  and    $0x3,%ebx
  mov    %r14,%rax
  mov    %r15,%r14
  mov    %ebx,0x70(%rsp)
  mov    %rax,0x28(%rsp)
L899:
  mov    0x108(%rsp),%eax
  add    %eax,0x20(%rsp)
  sub    %eax,0xb8(%rsp)
  mov    0x10(%rsp),%rbx
  cmp    $0x1,%eax
  setne  %al
  cmpq   $0x8,0x18(%rsp)
  seta   %dl
  and    %edx,%eax
  cmp    %rbx,%rsi
  setae  %dl
  cmp    %r14,%r8
  setae  %r9b
  or     %r9d,%edx
  and    %eax,%edx
  lea    0x10(%rcx),%rax
  cmp    %rax,%r8
  setae  %al
  cmp    %rbx,%rcx
  setae  %r9b
  or     %r9d,%eax
  lea    0x4(%rcx),%r9
  and    %edx,%eax
  mov    %rdi,%rdx
  sub    %r9,%rdx
  cmp    $0x8,%rdx
  seta   %dl
  test   %dl,%al
  je     L853
  lea    -0xc(%r14),%rdx
  mov    %rdi,%rax
  sub    %rdx,%rax
  cmp    $0x8,%rax
  jbe    L853
  cmpl   $0x2,0x60(%rsp)
  jbe    L740
  mov    0x28(%rsp),%r15
  xor    %eax,%eax
  nopl   (%rax)
L1248:
  movups (%rsi,%rax,1),%xmm5
  movups (%rcx,%rax,1),%xmm0
  subps  %xmm5,%xmm0
  movups %xmm0,(%r8,%rax,1)
  movups (%rcx,%rax,1),%xmm0
  movups (%rsi,%rax,1),%xmm5
  addps  %xmm5,%xmm0
  movups %xmm0,(%rdi,%rax,1)
  add    $0x10,%rax
  cmp    %rax,%r15
  jne    L1248
  mov    0x68(%rsp),%r9d
  mov    0x20(%rsp),%edx
  mov    %r15,0x28(%rsp)
  mov    0xb8(%rsp),%eax
  add    %r9d,%edx
  add    %r9d,%eax
  cmp    %r9d,0x108(%rsp)
  je     L1239
  mov    0x70(%rsp),%ebx
  mov    %ebx,0x30(%rsp)
  cmp    $0x1,%ebx
  je     L1503
L1376:
  mov    (%rsp),%rbx
  add    %r9,%rbx
  add    0x8(%rsp),%r9
  lea    0x0(%r13,%rbx,4),%r12
  lea    0x0(%r13,%r9,4),%r15
  movq   (%r15),%xmm1
  movq   (%r12),%xmm0
  subps  %xmm1,%xmm0
  movlps %xmm0,0x0(%rbp,%rbx,4)
  movq   (%r12),%xmm0
  movq   (%r15),%xmm1
  mov    0x30(%rsp),%ebx
  addps  %xmm1,%xmm0
  movlps %xmm0,0x0(%rbp,%r9,4)
  mov    %ebx,%r9d
  and    $0xfffffffe,%r9d
  add    %r9d,%edx
  add    %r9d,%eax
  cmp    %ebx,%r9d
  je     L1239
L1503:
  movslq %edx,%rdx
  cltq
  lea    0x0(%r13,%rdx,4),%r9
  lea    0x0(%r13,%rax,4),%rbx
  movss  (%r9),%xmm0
  subss  (%rbx),%xmm0
  movss  %xmm0,0x0(%rbp,%rdx,4)
  movss  (%r9),%xmm0
  addss  (%rbx),%xmm0
  movss  %xmm0,0x0(%rbp,%rax,4)
L1239:
  mov    0x50(%rsp),%rdx
  addl   $0x1,0x3c(%rsp)
  add    %r11,%rcx
  add    %r11,%r8
  add    %rdx,0x18(%rsp)
  mov    0x3c(%rsp),%eax
  sub    %r11,%rsi
  sub    %r11,%r14
  mov    0x40(%rsp),%rdx
  add    %r11,0x10(%rsp)
  sub    %r11,%rdi
  add    %rdx,(%rsp)
  add    0x58(%rsp),%r10
  mov    0x48(%rsp),%rdx
  add    %rdx,0x8(%rsp)
  cmp    %eax,0x38(%rsp)
  jg     L899
L1304:
  add    $0x1c8,%rsp
  pop    %rbx
  pop    %rbp
  pop    %r12
  pop    %r13
  pop    %r14
  pop    %r15
  ret
L1431:
  test   %r8d,%r8d
  jle    L432
  test   %r15d,%r15d
  jle    L416
  cmp    $0x1,%r8d
  jne    L755
  mov    0x108(%rsp),%esi
  movslq 0x8(%rsp),%rcx
  mov    %rbx,%rdx
  mov    %rbp,%rax
  sub    $0x1,%esi
  shl    $0x2,%rcx
  lea    0x4(%rbp,%rsi,4),%rsi
  nopl   0x0(%rax,%rax,1)
L603:
  movss  (%rdx),%xmm0
  add    $0x4,%rax
  add    %rcx,%rdx
  movss  %xmm0,-0x4(%rax)
  cmp    %rsi,%rax
  jne    L603
  jmp    L387
  nopw   0x0(%rax,%rax,1)
L799:
  mov    0x100(%rsp),%rdi
  mov    0x58(%rsp),%rax
  mov    %r9,%rdx
  mov    0xf0(%rsp),%rsi
  lea    (%rdi,%r9,1),%rcx
  mov    0x60(%rsp),%rdi
  add    %r12,%rax
  nopl   0x0(%rax)
L1422:
  movss  (%rdx),%xmm0
  mulss  %xmm4,%xmm0
  addss  (%rax,%rsi,4),%xmm0
  movss  %xmm0,(%rax,%rsi,4)
  movss  (%rdx,%rdi,4),%xmm0
  add    $0x4,%rdx
  add    $0x4,%rax
  mulss  %xmm3,%xmm0
  addss  -0x4(%rax),%xmm0
  movss  %xmm0,-0x4(%rax)
  cmp    %rcx,%rdx
  jne    L1422
  jmp    L857
L95:
  mov    0x20(%rsp),%eax
  mov    0x18(%rsp),%edx
  mov    %r15d,0x28(%rsp)
  xor    %edi,%edi
  mov    0xe0(%rsp),%esi
  mov    %esi,0x30(%rsp)
  mov    0xd8(%rsp),%esi
  jmp    L781
L917:
  mov    0xc8(%rsp),%ecx
  mov    0xc0(%rsp),%esi
  jmp    L1448
L613:
  mov    0x110(%rsp),%rcx
  mov    0x150(%rsp),%rsi
  xor    %eax,%eax
  mov    0x1a0(%rsp),%rdi
  nopw   0x0(%rax,%rax,1)
L1545:
  movss  (%rsi,%rax,4),%xmm0
  mov    %rax,%rdx
  mulss  %xmm6,%xmm0
  addss  (%r14,%rax,4),%xmm0
  movss  %xmm0,(%rbx,%rax,4)
  movss  (%rcx,%rax,4),%xmm0
  mulss  %xmm5,%xmm0
  movss  %xmm0,(%r11,%rax,4)
  add    $0x1,%rax
  cmp    %rdi,%rdx
  jne    L1545
  jmp    L1446
L965:
  mov    0x88(%rsp),%rdi
  mov    %r8,%r11
  lea    (%rdi,%rcx,1),%r12
  mov    %rcx,%rdi
  cs nopw 0x0(%rax,%rax,1)
L321:
  movss  -0x4(%r11),%xmm0
  addss  %xmm0,%xmm0
  movss  %xmm0,(%rdi)
  movss  (%r11),%xmm0
  add    %rax,%r11
  addss  %xmm0,%xmm0
  movss  %xmm0,(%rdi,%r10,4)
  add    $0x4,%rdi
  cmp    %r12,%rdi
  jne    L321
  jmp    L1625
L1593:
  mov    %r14,%rax
  nopl   0x0(%rax)
L1135:
  movss  (%rax),%xmm0
  addss  (%rax,%rdi,4),%xmm0
  add    $0x4,%rax
  movss  %xmm0,-0x4(%rax)
  cmp    %rax,%rbx
  jne    L1135
  jmp    L1093
L853:
  mov    0x78(%rsp),%rax
  mov    0x28(%rsp),%r15
  mov    %rdi,%rdx
  lea    (%rax,%rsi,1),%r9
  mov    %rsi,%rax
  nopl   0x0(%rax,%rax,1)
L1152:
  movss  (%rax,%r10,4),%xmm0
  subss  (%rax),%xmm0
  movss  %xmm0,(%rdx,%r10,4)
  movss  (%rax,%r10,4),%xmm0
  addss  (%rax),%xmm0
  add    $0x4,%rax
  add    $0x4,%rdx
  movss  %xmm0,-0x4(%rdx)
  cmp    %rax,%r9
  jne    L1152
  mov    %r15,0x28(%rsp)
  jmp    L1239
L277:
  cmpl   $0x2,0x38(%rsp)
  jg     L84
  jmp    L205
L1363:
  xor    %esi,%esi
  nopl   0x0(%rax,%rax,1)
L1517:
  movss  (%rax,%rsi,4),%xmm0
  movss  %xmm0,(%rdx,%rsi,4)
  add    $0x1,%rsi
  cmp    %r14,%rsi
  jne    L1517
  jmp    L115
L1138:
  mov    0x178(%rsp),%ebp
  mov    %r15d,%r9d
  mov    %r15d,%r10d
  xor    %ecx,%ecx
  mov    0xe0(%rsp),%eax
  mov    0xd8(%rsp),%edx
  xor    %esi,%esi
  jmp    L44
L972:
  mov    %r12d,%ebp
  mov    %r11d,%eax
  xor    %esi,%esi
  xor    %edx,%edx
  jmp    L1417
L417:
  cmpl   $0x1,0x3c(%rsp)
  je     L1304
L572:
  cmp    0x188(%rsp),%r15d
  jg     L1445
  cmpl   $0x1,0x38(%rsp)
  jle    L1296
  test   %r15d,%r15d
  jle    L1296
  mov    0x3c(%rsp),%esi
  cmp    $0x2,%esi
  jle    L1296
  movslq 0x108(%rsp),%rbx
  movl   $0x0,0x40(%rsp)
  movl   $0x1,0xa0(%rsp)
  mov    %ebx,%eax
  mov    %rbx,0xe8(%rsp)
  neg    %eax
  mov    %rbx,0xb0(%rsp)
  cltq
  mov    %r14,0x210(%rsp)
  mov    %rax,0xe0(%rsp)
  sub    %rbx,%rax
  mov    %rax,0xf0(%rsp)
  movslq 0xb8(%rsp),%rax
  mov    %r15d,0x48(%rsp)
  sub    %rbx,%rax
  mov    %r12,0x200(%rsp)
  mov    %rax,0xa8(%rsp)
  sub    %rbx,%rax
  mov    %rax,%r9
  movslq %esi,%rax
  sub    $0x3,%esi
  mov    %esi,%edx
  mov    %rax,0x50(%rsp)
  shl    $0x2,%rax
  mov    %r9,%r15
  shr    $0x3,%edx
  mov    %rax,0x58(%rsp)
  lea    -0x1(%rdx),%eax
  lea    0x0(,%rdx,8),%edi
  mov    %esi,0x70(%rsp)
  add    $0x1,%rax
  mov    %edi,0x80(%rsp)
  shl    $0x5,%rax
  mov    %rax,%r10
  lea    0x2(,%rdx,8),%eax
  lea    0x2(%rax),%edi
  mov    %r10,%r12
  mov    %edi,0x88(%rsp)
  lea    0x4(%rax),%edi
  add    $0x6,%eax
  mov    %eax,0x98(%rsp)
  mov    %esi,%eax
  shr    %eax
  mov    %edi,0x90(%rsp)
  add    %rax,%rax
  mov    %rax,0xc0(%rsp)
  lea    0x20(%rbp),%rax
  mov    %rax,0x68(%rsp)
  lea    0x20(%r13),%rax
  mov    %rax,0x60(%rsp)
  lea    0x4(%r13),%rax
  mov    %rax,0x78(%rsp)
  lea    -0x4(%r13),%rax
  mov    %rax,0xc8(%rsp)
  lea    -0x4(%rbp),%rax
  mov    %rax,0xd0(%rsp)
  lea    0x8(%rbp),%rax
  mov    %rax,0xd8(%rsp)
L203:
  mov    0xa8(%rsp),%rax
  movl   $0x0,(%rsp)
  mov    0x108(%rsp),%ebx
  add    %ebx,0x40(%rsp)
  lea    0x4(,%rax,4),%r14
  mov    0xb0(%rsp),%rax
  sub    %ebx,0xb8(%rsp)
  xor    %ebx,%ebx
  mov    %rax,0x30(%rsp)
  lea    0x4(,%rax,4),%r11
  mov    %r15,%rax
  mov    %r12,%r15
  mov    %rax,%r12
  nopw   0x0(%rax,%rax,1)
L218:
  mov    0xb8(%rsp),%eax
  mov    0x68(%rsp),%rdi
  lea    0x20(%r11),%r8
  lea    (%r11,%rbp,1),%rdx
  mov    0x60(%rsp),%rsi
  lea    (%r14,%r13,1),%rcx
  add    %ebx,%eax
  lea    (%rdi,%r11,1),%r10
  add    %r14,%rdi
  mov    %eax,0x20(%rsp)
  mov    0x40(%rsp),%eax
  lea    (%rsi,%r11,1),%r9
  add    %r14,%rsi
  mov    %rdi,0x10(%rsp)
  lea    0x20(%r14),%rdi
  add    %ebx,%eax
  cmp    %r11,%rdi
  mov    %rsi,0x8(%rsp)
  lea    (%r14,%rbp,1),%rsi
  setle  %dil
  cmp    %r14,%r8
  mov    %eax,0x28(%rsp)
  lea    0x0(%r13,%r11,1),%rax
  setle  %r8b
  or     %edi,%r8d
  cmpl   $0x7,0x70(%rsp)
  seta   %dil
  and    %edi,%r8d
  cmp    %r9,%rdx
  setae  %dil
  cmp    %r10,%rax
  setae  0x18(%rsp)
  or     0x18(%rsp),%dil
  and    %r8d,%edi
  cmp    0x8(%rsp),%rdx
  setae  %r8b
  cmp    %r10,%rcx
  setae  %r10b
  or     %r10d,%r8d
  mov    0x10(%rsp),%r10
  and    %edi,%r8d
  cmp    %r10,%rax
  setae  %dil
  cmp    %r9,%rsi
  setae  %r9b
  or     %r9d,%edi
  test   %dil,%r8b
  je     L1067
  cmp    0x8(%rsp),%rsi
  mov    0x78(%rsp),%rdi
  setae  %r9b
  cmp    %r10,%rcx
  setae  %r10b
  lea    (%rdi,%r11,1),%r8
  xor    %edi,%edi
  or     %r9b,%r10b
  je     L1067
  nopw   0x0(%rax,%rax,1)
L75:
  movups (%rax,%rdi,1),%xmm1
  movups 0x10(%rax,%rdi,1),%xmm6
  movups (%rcx,%rdi,1),%xmm0
  movaps %xmm1,%xmm4
  shufps $0x88,%xmm6,%xmm4
  movups 0x10(%rcx,%rdi,1),%xmm6
  movaps %xmm0,%xmm3
  movaps %xmm4,%xmm2
  shufps $0x88,%xmm6,%xmm3
  shufps $0xdd,%xmm6,%xmm0
  movups 0x10(%rax,%rdi,1),%xmm6
  subps  %xmm0,%xmm2
  addps  %xmm4,%xmm0
  shufps $0xdd,%xmm6,%xmm1
  addps  %xmm3,%xmm1
  movaps %xmm2,%xmm4
  unpcklps %xmm1,%xmm4
  unpckhps %xmm1,%xmm2
  movups %xmm2,0x10(%rdx,%rdi,1)
  movaps %xmm0,%xmm2
  movups %xmm4,(%rdx,%rdi,1)
  movups (%r8,%rdi,1),%xmm1
  movups 0x10(%r8,%rdi,1),%xmm5
  shufps $0x88,%xmm5,%xmm1
  subps  %xmm3,%xmm1
  unpcklps %xmm1,%xmm2
  unpckhps %xmm1,%xmm0
  movups %xmm2,(%rsi,%rdi,1)
  movups %xmm0,0x10(%rsi,%rdi,1)
  add    $0x20,%rdi
  cmp    %rdi,%r15
  jne    L75
  mov    0x80(%rsp),%eax
  mov    0x28(%rsp),%esi
  mov    0x20(%rsp),%ecx
  lea    0x2(%rax,%rsi,1),%esi
  lea    0x2(%rax,%rcx,1),%ecx
  movslq %esi,%rsi
  movslq %ecx,%rcx
  lea    0x0(,%rsi,4),%rdx
  lea    0x0(,%rcx,4),%rax
  lea    -0x4(%r13,%rdx,1),%rdi
  lea    0x0(%r13,%rax,1),%r8
  movss  (%rdi),%xmm0
  subss  (%r8),%xmm0
  movss  %xmm0,-0x4(%rbp,%rdx,1)
  movss  (%rdi),%xmm0
  addss  (%r8),%xmm0
  lea    -0x4(%r13,%rax,1),%rdi
  lea    0x0(%r13,%rdx,1),%r8
  movss  %xmm0,-0x4(%rbp,%rax,1)
  movss  (%rdi),%xmm0
  addss  (%r8),%xmm0
  movss  %xmm0,0x0(%rbp,%rsi,4)
  movss  (%r8),%xmm0
  subss  (%rdi),%xmm0
  mov    0x88(%rsp),%esi
  mov    0x3c(%rsp),%edi
  movss  %xmm0,0x0(%rbp,%rcx,4)
  cmp    %esi,%edi
  jle    L386
  lea    0x4(%r13,%rdx,1),%rsi
  lea    0x8(%r13,%rax,1),%rcx
  movss  (%rsi),%xmm0
  subss  (%rcx),%xmm0
  movss  %xmm0,0x4(%rbp,%rdx,1)
  movss  (%rsi),%xmm0
  addss  (%rcx),%xmm0
  lea    0x8(%r13,%rdx,1),%rsi
  lea    0x4(%r13,%rax,1),%rcx
  movss  %xmm0,0x4(%rbp,%rax,1)
  movss  (%rsi),%xmm0
  addss  (%rcx),%xmm0
  movss  %xmm0,0x8(%rbp,%rdx,1)
  movss  (%rsi),%xmm0
  subss  (%rcx),%xmm0
  mov    0x90(%rsp),%esi
  movss  %xmm0,0x8(%rbp,%rax,1)
  cmp    %esi,%edi
  jle    L386
  lea    0xc(%r13,%rdx,1),%rsi
  lea    0x10(%r13,%rax,1),%rcx
  movss  (%rsi),%xmm0
  subss  (%rcx),%xmm0
  movss  %xmm0,0xc(%rbp,%rdx,1)
  movss  (%rsi),%xmm0
  addss  (%rcx),%xmm0
  lea    0x10(%r13,%rdx,1),%rsi
  lea    0xc(%r13,%rax,1),%rcx
  movss  %xmm0,0xc(%rbp,%rax,1)
  movss  (%rsi),%xmm0
  addss  (%rcx),%xmm0
  movss  %xmm0,0x10(%rbp,%rdx,1)
  movss  (%rsi),%xmm0
  subss  (%rcx),%xmm0
  movss  %xmm0,0x10(%rbp,%rax,1)
  cmp    %edi,0x98(%rsp)
  jge    L386
  lea    0x14(%r13,%rdx,1),%rcx
  lea    0x18(%r13,%rax,1),%rsi
  movss  (%rcx),%xmm0
  subss  (%rsi),%xmm0
  movss  %xmm0,0x14(%rbp,%rdx,1)
  movss  (%rsi),%xmm0
  addss  (%rcx),%xmm0
  lea    0x18(%r13,%rdx,1),%rsi
  lea    0x14(%r13,%rax,1),%rcx
  movss  %xmm0,0x14(%rbp,%rax,1)
  movss  (%rcx),%xmm0
  addss  (%rsi),%xmm0
  movss  %xmm0,0x18(%rbp,%rdx,1)
  movss  (%rsi),%xmm0
  subss  (%rcx),%xmm0
  movss  %xmm0,0x18(%rbp,%rax,1)
L386:
  mov    0x58(%rsp),%rdi
  addl   $0x1,(%rsp)
  mov    0x50(%rsp),%rsi
  mov    (%rsp),%eax
  add    %rsi,0x30(%rsp)
  add    0x3c(%rsp),%ebx
  add    %rdi,%r14
  add    %rdi,%r11
  cmp    %eax,0x48(%rsp)
  jne    L218
  mov    %r12,%rax
  mov    0xe0(%rsp),%rsi
  mov    %r15,%r12
  addl   $0x1,0xa0(%rsp)
  mov    %rax,%r15
  add    %rsi,0xa8(%rsp)
  mov    0xa0(%rsp),%eax
  mov    0xe8(%rsp),%rsi
  add    0xf0(%rsp),%r15
  add    %rsi,0xb0(%rsp)
  cmp    %eax,0x38(%rsp)
  jne    L203
  mov    0x48(%rsp),%r15d
  mov    0x200(%rsp),%r12
  mov    0x210(%rsp),%r14
L1296:
  mov    0x184(%rsp),%eax
  test   %eax,%eax
  jle    L1156
  lea    0x4(%r14),%rdx
  mov    %r12,%rax
  sub    %rdx,%rax
  cmp    $0x8,%rax
  jbe    L143
  mov    0x184(%rsp),%ebx
  lea    -0x1(%rbx),%eax
  cmp    $0x2,%eax
  jbe    L143
  shr    $0x2,%ebx
  xor    %eax,%eax
  mov    %ebx,%edx
  shl    $0x4,%rdx
L1629:
  movups (%r14,%rax,1),%xmm5
  movups %xmm5,(%r12,%rax,1)
  add    $0x10,%rax
  cmp    %rdx,%rax
  jne    L1629
  mov    0x184(%rsp),%ebx
  mov    %ebx,%eax
  and    $0xfffffffc,%eax
  test   $0x3,%bl
  je     L1156
  mov    %eax,%ecx
  movss  (%r14,%rcx,4),%xmm0
  lea    0x0(,%rcx,4),%rdx
  movss  %xmm0,(%r12,%rcx,4)
  lea    0x1(%rax),%ecx
  cmp    %ecx,%ebx
  jle    L1156
  movss  0x4(%r14,%rdx,1),%xmm0
  add    $0x2,%eax
  movss  %xmm0,0x4(%r12,%rdx,1)
  cmp    %eax,%ebx
  jle    L1156
  movss  0x8(%r14,%rdx,1),%xmm0
  movss  %xmm0,0x8(%r12,%rdx,1)
L1156:
  cmpl   $0x1,0x10c(%rsp)
  jle    L1304
  test   %r15d,%r15d
  jle    L1304
  movslq 0x108(%rsp),%rax
  mov    0x10c(%rsp),%r9d
  mov    $0x1,%esi
  lea    0x0(,%rax,4),%r8
  mov    %rax,0xb0(%rsp)
  movslq 0x3c(%rsp),%rax
  mov    %r8,%rdi
  mov    %rax,0x20(%rsp)
  lea    0x0(,%rax,4),%rcx
L1510:
  mov    %rdi,%rax
  xor    %edx,%edx
  nopl   0x0(%rax,%rax,1)
L1070:
  movss  0x0(%rbp,%rax,1),%xmm0
  add    $0x1,%edx
  movss  %xmm0,0x0(%r13,%rax,1)
  add    %rcx,%rax
  cmp    %edx,%r15d
  jne    L1070
  add    $0x1,%esi
  add    %r8,%rdi
  cmp    %esi,%r9d
  jne    L1510
  cmp    0x188(%rsp),%r15d
  jl     L1523
  mov    0x3c(%rsp),%ebx
  mov    %ebx,%eax
  not    %eax
  cmp    $0x2,%ebx
  jle    L1304
  mov    0x20(%rsp),%rcx
  cltq
  xor    %r9d,%r9d
  mov    $0x1,%r10d
  mov    0x218(%rsp),%rbx
  lea    0x2(%rax,%rcx,1),%rax
  lea    0x0(,%rcx,4),%rsi
  lea    (%rbx,%rax,4),%rdi
  mov    0xb0(%rsp),%rbx
  mov    %rbx,%rax
  shl    $0x2,%rbx
  sub    %rcx,%rax
  mov    %rbx,%r8
  sub    0x218(%rsp),%r8
  lea    0x0(,%rax,4),%r14
  mov    0x3c(%rsp),%eax
  add    $0x4,%r8
  sub    $0x3,%eax
  and    $0xfffffffe,%eax
  lea    0x2(%rax),%r12d
L1429:
  add    0x108(%rsp),%r9d
  mov    %rdi,%rdx
  lea    (%r12,%r9,1),%ebx
  mov    %r9d,%r11d
  nopl   0x0(%rax)
L820:
  add    $0x2,%r11d
  lea    (%rdx,%r8,1),%rax
  xor    %ecx,%ecx
  nopw   0x0(%rax,%rax,1)
L1641:
  movss  -0x4(%rdx),%xmm0
  movss  (%rdx),%xmm1
  add    $0x1,%ecx
  mulss  0x0(%rbp,%rax,1),%xmm1
  mulss  -0x4(%rbp,%rax,1),%xmm0
  subss  %xmm1,%xmm0
  movss  %xmm0,-0x4(%r13,%rax,1)
  movss  -0x4(%rdx),%xmm0
  movss  (%rdx),%xmm1
  mulss  0x0(%rbp,%rax,1),%xmm0
  mulss  -0x4(%rbp,%rax,1),%xmm1
  addss  %xmm1,%xmm0
  movss  %xmm0,0x0(%r13,%rax,1)
  add    %rsi,%rax
  cmp    %ecx,%r15d
  jne    L1641
  add    $0x8,%rdx
  cmp    %ebx,%r11d
  jne    L820
  add    $0x1,%r10d
  add    %rsi,%rdi
  add    %r14,%r8
  cmp    %r10d,0x10c(%rsp)
  jne    L1429
  jmp    L1304
  nopl   0x0(%rax)
L1067:
  mov    0xc8(%rsp),%rax
  mov    0xd8(%rsp),%rdi
  mov    0x30(%rsp),%rsi
  add    0xc0(%rsp),%rsi
  lea    (%rax,%r11,1),%rcx
  lea    (%rax,%r14,1),%rdx
  mov    0xd0(%rsp),%rax
  lea    (%rdi,%rsi,4),%rsi
  add    %r11,%rax
  nopl   0x0(%rax)
L1299:
  movss  0x4(%rcx),%xmm0
  subss  0x8(%rdx),%xmm0
  add    $0x8,%rcx
  add    $0x8,%rdx
  movss  %xmm0,0x4(%rax)
  movss  (%rdx),%xmm0
  addss  -0x4(%rcx),%xmm0
  movss  %xmm0,0x4(%rax,%r12,4)
  movss  -0x4(%rdx),%xmm0
  addss  (%rcx),%xmm0
  movss  %xmm0,0x8(%rax)
  movss  (%rcx),%xmm0
  subss  -0x4(%rdx),%xmm0
  movss  %xmm0,0x8(%rax,%r12,4)
  add    $0x8,%rax
  cmp    %rax,%rsi
  jne    L1299
  jmp    L386
L740:
  mov    0x108(%rsp),%eax
  mov    0x20(%rsp),%edx
  xor    %r9d,%r9d
  mov    %eax,0x30(%rsp)
  mov    0xb8(%rsp),%eax
  jmp    L1376
L1121:
  mov    %edi,%esi
  mov    0x180(%rsp),%ecx
  mov    0x17c(%rsp),%edi
  jmp    L370
L101:
  mov    %r13d,%edx
  jmp    L1612
L1445:
  cmpl   $0x1,0x38(%rsp)
  jle    L1296
  mov    0x3c(%rsp),%esi
  cmp    $0x2,%esi
  jle    L1296
  test   %r15d,%r15d
  jle    L1296
  movslq 0x108(%rsp),%rax
  movslq %esi,%rsi
  xor    %r11d,%r11d
  movslq 0xb8(%rsp),%r9
  mov    %r12,0x200(%rsp)
  mov    %rax,%rdi
  lea    0x0(,%rax,4),%rbx
  sub    %rax,%r9
  neg    %edi
  sub    %rax,%r9
  mov    %rbx,0x8(%rsp)
  lea    0x8(,%rax,4),%rbx
  movslq %edi,%rdx
  shl    $0x2,%r9
  sub    %rax,%rdx
  mov    %rsi,%rax
  shl    $0x2,%rsi
  sub    $0x3,%eax
  lea    0x0(,%rdx,4),%rdi
  and    $0xfffffffe,%eax
  mov    %rdi,(%rsp)
  mov    $0x1,%edi
  add    $0x2,%eax
  mov    %edi,%r12d
  mov    %eax,0x10(%rsp)
L440:
  mov    0x10(%rsp),%eax
  add    0x108(%rsp),%r11d
  mov    %rbx,%rdi
  mov    %r11d,%r8d
  lea    (%rax,%r11,1),%r10d
  nopl   (%rax)
L500:
  add    $0x2,%r8d
  lea    (%r9,%rdi,1),%rdx
  mov    %rdi,%rax
  xor    %ecx,%ecx
  nopl   (%rax)
L912:
  movss  -0x4(%r13,%rax,1),%xmm0
  subss  0x0(%r13,%rdx,1),%xmm0
  add    $0x1,%ecx
  movss  %xmm0,-0x4(%rbp,%rax,1)
  movss  -0x4(%r13,%rax,1),%xmm0
  addss  0x0(%r13,%rdx,1),%xmm0
  movss  %xmm0,-0x4(%rbp,%rdx,1)
  movss  0x0(%r13,%rax,1),%xmm0
  addss  -0x4(%r13,%rdx,1),%xmm0
  movss  %xmm0,0x0(%rbp,%rax,1)
  movss  0x0(%r13,%rax,1),%xmm0
  add    %rsi,%rax
  subss  -0x4(%r13,%rdx,1),%xmm0
  movss  %xmm0,0x0(%rbp,%rdx,1)
  add    %rsi,%rdx
  cmp    %ecx,%r15d
  jne    L912
  add    $0x8,%rdi
  cmp    %r10d,%r8d
  jne    L500
  add    $0x1,%r12d
  add    0x8(%rsp),%rbx
  add    (%rsp),%r9
  cmp    %r12d,0x38(%rsp)
  jne    L440
  mov    0x200(%rsp),%r12
  jmp    L1296
L1523:
  mov    0x3c(%rsp),%eax
  mov    %eax,%ebx
  not    %ebx
  mov    %ebx,0x78(%rsp)
  cmp    $0x2,%eax
  jle    L1304
  mov    0x20(%rsp),%rbx
  movslq 0x78(%rsp),%rax
  movl   $0x0,0x80(%rsp)
  mov    0x218(%rsp),%rsi
  mov    %r15d,0x38(%rsp)
  lea    0x9(%rax,%rbx,1),%rdx
  lea    0x1(%rax,%rbx,1),%rax
  movl   $0x1,0x88(%rsp)
  lea    (%rsi,%rdx,4),%rsi
  lea    0x0(,%rbx,4),%r12
  mov    0x218(%rsp),%rbx
  mov    %rsi,0x18(%rsp)
  mov    0xb0(%rsp),%rsi
  lea    (%rbx,%rax,4),%r11
  lea    0x0(,%rsi,4),%rax
  mov    %rsi,0xa0(%rsp)
  mov    %rax,0xb8(%rsp)
  lea    0x4(,%rsi,4),%rax
  mov    %rax,0xa8(%rsp)
  mov    0x3c(%rsp),%eax
  sub    $0x3,%eax
  mov    %eax,0x30(%rsp)
  shr    %eax
  lea    0x1(%rax),%ebx
  mov    %eax,%edx
  mov    %ebx,%eax
  mov    %ebx,0x48(%rsp)
  and    $0xfffffffc,%ebx
  shr    $0x2,%eax
  mov    %ebx,0x40(%rsp)
  sub    $0x1,%eax
  add    $0x1,%rax
  shl    $0x5,%rax
  mov    %rax,%r14
  lea    (%rbx,%rbx,1),%eax
  lea    0x4(%rax),%ebx
  mov    %eax,0x28(%rsp)
  add    $0x6,%eax
  mov    %eax,0x60(%rsp)
  mov    %edx,%eax
  add    %rax,%rax
  mov    %ebx,0x50(%rsp)
  mov    %rax,0x90(%rsp)
  lea    0x8(%rbp),%rax
  mov    %rax,0x98(%rsp)
L647:
  mov    0xa8(%rsp),%rsi
  mov    0x3c(%rsp),%eax
  mov    %r14,(%rsp)
  xor    %r8d,%r8d
  add    %eax,0x78(%rsp)
  mov    0x78(%rsp),%ebx
  add    0x28(%rsp),%ebx
  mov    0x108(%rsp),%eax
  lea    (%rsi,%rbp,1),%rdx
  add    %eax,0x80(%rsp)
  lea    0x0(%r13,%rsi,1),%rax
  lea    0x2(%rbx),%esi
  mov    %ebx,%ecx
  movslq %esi,%rsi
  mov    0x218(%rsp),%rbx
  mov    0x80(%rsp),%r9d
  shl    $0x2,%rsi
  mov    0xa0(%rsp),%r10
  lea    -0x4(%rbx,%rsi,1),%rbx
  add    0x218(%rsp),%rsi
  mov    %rsi,0x10(%rsp)
  lea    0x4(%rcx),%esi
  add    $0x6,%ecx
  mov    %rbx,0x8(%rsp)
  movslq %esi,%rsi
  mov    0x218(%rsp),%rbx
  movslq %ecx,%rcx
  shl    $0x2,%rsi
  shl    $0x2,%rcx
  lea    -0x4(%rbx,%rsi,1),%rbx
  add    0x218(%rsp),%rsi
  mov    %rsi,0x58(%rsp)
  mov    0x218(%rsp),%rsi
  lea    -0x4(%rsi,%rcx,1),%rsi
  add    0x218(%rsp),%rcx
  mov    %rsi,0x70(%rsp)
  mov    %rcx,0x68(%rsp)
  nopl   0x0(%rax)
L642:
  lea    0x20(%rdx),%rsi
  lea    0x20(%rax),%rcx
  cmp    %rsi,%rax
  setae  %sil
  cmp    %rdx,%rcx
  setbe  %dil
  or     %edi,%esi
  cmp    %r11,%rcx
  setbe  %cl
  cmp    0x18(%rsp),%rax
  setae  %dil
  or     %edi,%ecx
  test   %cl,%sil
  je     L1079
  xor    %ecx,%ecx
  cmpl   $0x5,0x30(%rsp)
  mov    (%rsp),%r14
  jbe    L1079
  nopl   0x0(%rax,%rax,1)
L1103:
  movups (%rdx,%rcx,1),%xmm1
  movups 0x10(%rdx,%rcx,1),%xmm5
  movups (%r11,%rcx,1),%xmm3
  movups 0x10(%r11,%rcx,1),%xmm6
  movaps %xmm1,%xmm0
  shufps $0xdd,%xmm5,%xmm1
  shufps $0x88,%xmm5,%xmm0
  movaps %xmm3,%xmm4
  movaps %xmm0,%xmm2
  movaps %xmm1,%xmm5
  shufps $0x88,%xmm6,%xmm4
  shufps $0xdd,%xmm6,%xmm3
  mulps  %xmm4,%xmm2
  mulps  %xmm3,%xmm5
  mulps  %xmm4,%xmm1
  mulps  %xmm3,%xmm0
  subps  %xmm5,%xmm2
  addps  %xmm1,%xmm0
  movaps %xmm2,%xmm1
  unpcklps %xmm0,%xmm1
  unpckhps %xmm0,%xmm2
  movups %xmm1,(%rax,%rcx,1)
  movups %xmm2,0x10(%rax,%rcx,1)
  add    $0x20,%rcx
  cmp    %r14,%rcx
  jne    L1103
  mov    0x28(%rsp),%esi
  mov    %r14,(%rsp)
  lea    (%r9,%rsi,1),%ecx
  mov    0x48(%rsp),%esi
  cmp    %esi,0x40(%rsp)
  je     L692
  mov    0x8(%rsp),%rsi
  add    $0x2,%ecx
  movslq %ecx,%r14
  movss  (%rsi),%xmm0
  lea    0x0(,%r14,4),%rcx
  mov    0x10(%rsp),%rsi
  lea    0x0(%rbp,%rcx,1),%r15
  lea    -0x4(%rbp,%rcx,1),%rdi
  movss  (%r15),%xmm1
  mulss  (%rdi),%xmm0
  mulss  (%rsi),%xmm1
  mov    0x8(%rsp),%rsi
  subss  %xmm1,%xmm0
  movss  %xmm0,-0x4(%r13,%rcx,1)
  movss  (%r15),%xmm0
  mulss  (%rsi),%xmm0
  mov    0x10(%rsp),%rsi
  mov    0x3c(%rsp),%r15d
  movss  (%rsi),%xmm1
  mulss  (%rdi),%xmm1
  addss  %xmm1,%xmm0
  movss  %xmm0,0x0(%r13,%r14,4)
  cmp    %r15d,0x50(%rsp)
  jge    L692
  mov    0x58(%rsp),%r14
  lea    0x8(%rbp,%rcx,1),%rsi
  lea    0x4(%rbp,%rcx,1),%rdi
  movss  (%rbx),%xmm0
  mulss  (%rdi),%xmm0
  movss  (%r14),%xmm1
  mulss  (%rsi),%xmm1
  subss  %xmm1,%xmm0
  movss  %xmm0,0x4(%r13,%rcx,1)
  movss  (%rdi),%xmm0
  movss  (%rbx),%xmm1
  mulss  (%r14),%xmm0
  mulss  (%rsi),%xmm1
  mov    0x60(%rsp),%esi
  addss  %xmm1,%xmm0
  movss  %xmm0,0x8(%r13,%rcx,1)
  cmp    %esi,%r15d
  jle    L692
  mov    0x70(%rsp),%r14
  mov    0x68(%rsp),%r15
  lea    0xc(%rbp,%rcx,1),%rdi
  lea    0x10(%rbp,%rcx,1),%rsi
  movss  (%rdi),%xmm0
  movss  (%rsi),%xmm1
  mulss  (%r14),%xmm0
  mulss  (%r15),%xmm1
  subss  %xmm1,%xmm0
  movss  %xmm0,0xc(%r13,%rcx,1)
  movss  (%rdi),%xmm0
  movss  (%rsi),%xmm1
  mulss  (%r15),%xmm0
  mulss  (%r14),%xmm1
  addss  %xmm1,%xmm0
  movss  %xmm0,0x10(%r13,%rcx,1)
L692:
  add    0x3c(%rsp),%r9d
  add    $0x1,%r8d
  add    %r12,%rax
  add    %r12,%rdx
  add    0x20(%rsp),%r10
  cmp    %r8d,0x38(%rsp)
  jne    L642
  mov    0xb0(%rsp),%rsi
  addl   $0x1,0x88(%rsp)
  add    %r12,%r11
  add    %rsi,0xa0(%rsp)
  mov    (%rsp),%r14
  mov    0xb8(%rsp),%rsi
  add    %r12,0x18(%rsp)
  add    %rsi,0xa8(%rsp)
  mov    0x88(%rsp),%eax
  cmp    %eax,0x10c(%rsp)
  jne    L647
  jmp    L1304
L416:
  mov    0x10c(%rsp),%eax
  imul   0x108(%rsp),%eax
  mov    %eax,0xb8(%rsp)
  mov    0x3c(%rsp),%eax
  add    %eax,%eax
  cmpl   $0x1,0x38(%rsp)
  mov    %eax,(%rsp)
  jle    L464
L861:
  cmpl   $0x1,0x3c(%rsp)
  je     L1122
L1353:
  cmp    0x188(%rsp),%r15d
  jle    L968
  mov    0x3c(%rsp),%ecx
  cmp    $0x2,%ecx
  jle    L1122
  test   %r15d,%r15d
  jle    L1122
  movslq 0x108(%rsp),%rsi
  movslq %ecx,%r9
  movslq 0xb8(%rsp),%rdi
  mov    %r12,0x200(%rsp)
  movslq 0x8(%rsp),%r8
  mov    %r13,0x40(%rsp)
  shl    $0x2,%r9
  mov    %rsi,%rax
  mov    %rsi,0x10(%rsp)
  sub    %rsi,%rdi
  mov    %rsi,%r13
  neg    %eax
  mov    %rbp,0x208(%rsp)
  sub    %rsi,%rdi
  shl    $0x2,%r8
  cltq
  mov    %r14,0x210(%rsp)
  sub    %rsi,%rax
  mov    %rax,0x18(%rsp)
  movslq (%rsp),%rax
  movl   $0x1,(%rsp)
  lea    0x0(,%rax,4),%rdx
  shl    $0x3,%rax
  mov    %rax,0x28(%rsp)
  lea    (%rbx,%rdx,1),%rax
  lea    0x8(%rbx,%rdx,1),%r10
  lea    (%rax,%rax,1),%rbx
  lea    -0x3(%rcx),%eax
  mov    %rdx,0x20(%rsp)
  mov    %r10,%r14
  shr    %eax
  lea    0x8(%rbp),%rcx
  mov    %rbx,%rbp
  add    $0x1,%eax
  mov    %rcx,0x30(%rsp)
  add    %rax,%rax
  mov    %rax,0x8(%rsp)
L1421:
  mov    0x30(%rsp),%rax
  mov    %r13,%r11
  mov    %r14,%r10
  lea    (%rax,%r13,4),%rbx
  mov    0x8(%rsp),%rax
  lea    (%rax,%r13,1),%r12
  nopl   (%rax)
L918:
  mov    %rbp,%rcx
  mov    %rbx,%rdx
  mov    %r10,%rax
  xor    %esi,%esi
  sub    %r10,%rcx
  xchg   %ax,%ax
L1127:
  movss  -0x4(%rax),%xmm0
  addss  -0x4(%rcx),%xmm0
  add    $0x1,%esi
  movss  %xmm0,-0x4(%rdx)
  movss  -0x4(%rax),%xmm0
  subss  -0x4(%rcx),%xmm0
  movss  %xmm0,-0x4(%rdx,%rdi,4)
  movss  (%rax),%xmm0
  subss  (%rcx),%xmm0
  movss  %xmm0,(%rdx)
  movss  (%rax),%xmm0
  addss  (%rcx),%xmm0
  add    %r8,%rax
  add    %r8,%rcx
  movss  %xmm0,(%rdx,%rdi,4)
  add    %r9,%rdx
  cmp    %esi,%r15d
  jne    L1127
  add    $0x2,%r11
  add    $0x8,%r10
  add    $0x8,%rbx
  cmp    %r12,%r11
  jne    L918
  addl   $0x1,(%rsp)
  add    0x10(%rsp),%r13
  mov    (%rsp),%eax
  add    0x18(%rsp),%rdi
  add    0x20(%rsp),%r14
  add    0x28(%rsp),%rbp
  cmp    %eax,0x38(%rsp)
  jne    L1421
  mov    0x40(%rsp),%r13
  mov    0x200(%rsp),%r12
  mov    0x208(%rsp),%rbp
  mov    0x210(%rsp),%r14
  jmp    L1122
L432:
  mov    0x10c(%rsp),%eax
  imul   0x108(%rsp),%eax
  mov    %eax,0xb8(%rsp)
  mov    0x3c(%rsp),%eax
  add    %eax,%eax
  cmpl   $0x1,0x38(%rsp)
  mov    %eax,(%rsp)
  jle    L464
  test   %r15d,%r15d
  jg     L481
  jmp    L861
  nopl   0x0(%rax)
L1079:
  mov    0x90(%rsp),%r14
  lea    -0x4(%r11),%rsi
  lea    -0x4(%rdx),%rcx
  lea    -0x4(%rax),%rdi
  lea    (%r10,%r14,1),%r15
  mov    0x98(%rsp),%r14
  lea    (%r14,%r15,4),%r15
  mov    (%rsp),%r14
  nopl   0x0(%rax,%rax,1)
L466:
  movss  0x4(%rcx),%xmm0
  add    $0x8,%rcx
  movss  (%rcx),%xmm1
  add    $0x8,%rsi
  mulss  (%rsi),%xmm1
  add    $0x8,%rdi
  mulss  -0x4(%rsi),%xmm0
  subss  %xmm1,%xmm0
  movss  %xmm0,-0x4(%rdi)
  movss  -0x4(%rcx),%xmm0
  movss  (%rcx),%xmm1
  mulss  (%rsi),%xmm0
  mulss  -0x4(%rsi),%xmm1
  addss  %xmm1,%xmm0
  movss  %xmm0,(%rdi)
  cmp    %rcx,%r15
  jne    L466
  mov    %r14,(%rsp)
  jmp    L692
L968:
  cmpl   $0x1,0x38(%rsp)
  jle    L1296
  test   %r15d,%r15d
  jle    L1122
  movslq 0x3c(%rsp),%rdi
  cmp    $0x2,%edi
  jle    L1122
  movslq 0x108(%rsp),%rax
  movslq 0xb8(%rsp),%rdx
  mov    $0xfffffffffffffff8,%r11
  mov    %r12,0x200(%rsp)
  mov    %r14,0x210(%rsp)
  mov    %rdi,%r12
  mov    %rax,%rsi
  mov    %rax,%rcx
  neg    %esi
  movslq %esi,%rsi
  sub    %rsi,%rcx
  mov    %rsi,0x10(%rsp)
  lea    (%rax,%rax,1),%rsi
  mov    %rcx,0x18(%rsp)
  sub    %rdx,%rsi
  mov    %rdx,%rcx
  movslq (%rsp),%rdx
  sub    %rax,%rcx
  lea    -0x3(%rdi),%eax
  movl   $0x1,(%rsp)
  shl    $0x2,%rdx
  shr    %eax
  mov    %rcx,%r14
  add    %rdx,%rbx
  mov    %rdx,0x20(%rsp)
  shl    $0x3,%rax
  mov    %rbx,%rdx
  movslq 0x8(%rsp),%rbx
  sub    %rax,%r11
  mov    %r13,0x8(%rsp)
  mov    %rdx,%r13
  shl    $0x2,%rbx
L908:
  mov    %r14,%r10
  mov    %r13,%r8
  xor    %r9d,%r9d
  nopl   0x0(%rax,%rax,1)
L172:
  lea    0x0(%rbp,%r10,4),%rcx
  lea    (%r11,%r8,1),%rdi
  mov    %r8,%rax
  mov    %r8,%rdx
  nopw   0x0(%rax,%rax,1)
L1163:
  movss  0x4(%rdx),%xmm0
  addss  -0xc(%rax),%xmm0
  sub    $0x8,%rax
  add    $0x8,%rdx
  movss  %xmm0,0x4(%rcx,%rsi,4)
  movss  -0x4(%rdx),%xmm0
  subss  -0x4(%rax),%xmm0
  movss  %xmm0,0x4(%rcx)
  movss  (%rdx),%xmm0
  subss  (%rax),%xmm0
  movss  %xmm0,0x8(%rcx,%rsi,4)
  movss  (%rdx),%xmm0
  addss  (%rax),%xmm0
  add    $0x8,%rcx
  movss  %xmm0,(%rcx)
  cmp    %rdi,%rax
  jne    L1163
  add    $0x1,%r9d
  add    %rbx,%r8
  add    %r12,%r10
  cmp    %r9d,%r15d
  jne    L172
  addl   $0x1,(%rsp)
  add    0x18(%rsp),%rsi
  mov    (%rsp),%eax
  add    0x20(%rsp),%r13
  add    0x10(%rsp),%r14
  cmp    %eax,0x38(%rsp)
  jne    L908
  mov    0x8(%rsp),%r13
  mov    0x200(%rsp),%r12
  mov    0x210(%rsp),%r14
  jmp    L1122
L728:
  movslq (%rsp),%rax
  movslq 0x108(%rsp),%rdx
  mov    $0x1,%r11d
  movslq 0x8(%rsp),%rdi
  shl    $0x2,%rax
  lea    0x0(,%rdx,4),%rsi
  mov    %rax,0x10(%rsp)
  lea    (%rbx,%rax,1),%r9
  mov    %rdx,%rax
  shl    $0x2,%rdi
  neg    %eax
  mov    %rsi,0x18(%rsp)
  lea    0x0(%rbp,%rsi,1),%r10
  movslq 0xb8(%rsp),%rsi
  cltq
  sub    %rdx,%rax
  sub    %rdx,%rsi
  mov    %rax,0x20(%rsp)
  movslq 0x3c(%rsp),%rax
  sub    %rdx,%rsi
  lea    0x0(,%rax,4),%r8
L1371:
  mov    %r10,%rdx
  mov    %r9,%rax
  xor    %ecx,%ecx
  nop
L470:
  movss  -0x4(%rax),%xmm0
  add    $0x1,%ecx
  addss  %xmm0,%xmm0
  movss  %xmm0,(%rdx)
  movss  (%rax),%xmm0
  add    %rdi,%rax
  addss  %xmm0,%xmm0
  movss  %xmm0,(%rdx,%rsi,4)
  add    %r8,%rdx
  cmp    %ecx,%r15d
  jne    L470
  add    $0x1,%r11d
  add    0x10(%rsp),%r9
  add    0x18(%rsp),%r10
  add    0x20(%rsp),%rsi
  cmp    %r11d,0x38(%rsp)
  jne    L1371
  jmp    L1353
L977:
  movslq 0x108(%rsp),%rdx
  movslq 0xb8(%rsp),%rax
  mov    $0x1,%r8d
  movslq 0x3c(%rsp),%rsi
  lea    0x0(,%rdx,4),%r10
  sub    %rdx,%rax
  lea    0x0(,%rax,4),%r9
  shl    $0x2,%rsi
  mov    %r10,%rdi
L649:
  mov    %r9,%rdx
  mov    %rdi,%rax
  xor    %ecx,%ecx
  nopl   0x0(%rax)
L646:
  movss  0x0(%r13,%rax,1),%xmm0
  subss  0x0(%r13,%rdx,1),%xmm0
  add    $0x1,%ecx
  movss  %xmm0,0x0(%rbp,%rax,1)
  movss  0x0(%r13,%rax,1),%xmm0
  add    %rsi,%rax
  addss  0x0(%r13,%rdx,1),%xmm0
  movss  %xmm0,0x0(%rbp,%rdx,1)
  add    %rsi,%rdx
  cmp    %ecx,%r15d
  jne    L646
  add    $0x1,%r8d
  add    %r10,%rdi
  sub    %r10,%r9
  cmp    %r8d,0x38(%rsp)
  jg     L649
  jmp    L572
L143:
  mov    0x184(%rsp),%edx
  xor    %eax,%eax
L1151:
  movss  (%r14,%rax,4),%xmm0
  movss  %xmm0,(%r12,%rax,4)
  add    $0x1,%rax
  cmp    %rdx,%rax
  jne    L1151
  jmp    L1156
L464:
  cmpl   $0x1,0x3c(%rsp)
  jne    L1296
  jmp    L1304
L755:
  movslq 0x8(%rsp),%rdi
  movslq 0x3c(%rsp),%rsi
  mov    %rbx,%r8
  mov    %rbp,%r9
  xor    %r10d,%r10d
  shl    $0x2,%rdi
  shl    $0x2,%rsi
L1579:
  mov    %r9,%rcx
  mov    %r8,%rdx
  xor    %eax,%eax
  nopw   0x0(%rax,%rax,1)
L539:
  movss  (%rdx),%xmm0
  add    $0x1,%eax
  add    %rdi,%rdx
  movss  %xmm0,(%rcx)
  add    %rsi,%rcx
  cmp    %eax,%r15d
  jne    L539
  add    $0x1,%r10d
  add    $0x4,%r8
  add    $0x4,%r9
  cmp    %r10d,0x3c(%rsp)
  jne    L1579
  jmp    L387
```

tool_calls: name: unpack_data
arguments: data_label: D4
type_infered: byte[4]
name: unpack_data
arguments: data_label: D18
type_infered: byte[4]

tool: {"D4": [0xdb,0x0f,0xc9,0x40]}

tool: {"D18": [0x00,0x00,0x80,0x3f]}

assistant: ```c
void dradbg(int ido, int ip, int l1, int idl1, float *cc, float *c1, float *c2, float *ch, float *ch2, float *wa) {
  static float tpi = 6.283185307179586f;
  int idij, ipph, i, j, k, l, ik, is, t0, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12;
  float dc2, ai1, ai2, ar1, ar2, ds2;
  int nbd;
  float dcp, arg, dsp, ar1h, ar2h;
  int ipp2;
  t10 = ip * ido;
  t0 = l1 * ido;
  arg = tpi / (float)ip;
  dcp = cos(arg);
  dsp = sin(arg);
  nbd = (ido - 1) >> 1;
  ipp2 = ip;
  ipph = (ip + 1) >> 1;
  if (ido < l1)
    goto L103;
  t1 = 0;
  t2 = 0;
  for (k = 0; k < l1; k++) {
    t3 = t1;
    t4 = t2;
    for (i = 0; i < ido; i++) {
      ch[t3] = cc[t4];
      t3++;
      t4++;
    }
    t1 += ido;
    t2 += t10;
  }
  goto L106;
L103:
  t1 = 0;
  for (i = 0; i < ido; i++) {
    t2 = t1;
    t3 = t1;
    for (k = 0; k < l1; k++) {
      ch[t2] = cc[t3];
      t2 += ido;
      t3 += t10;
    }
    t1++;
  }
L106:
  t1 = 0;
  t2 = ipp2 * t0;
  t7 = (t5 = ido << 1);
  for (j = 1; j < ipph; j++) {
    t1 += t0;
    t2 -= t0;
    t3 = t1;
    t4 = t2;
    t6 = t5;
    for (k = 0; k < l1; k++) {
      ch[t3] = cc[t6 - 1] + cc[t6 - 1];
      ch[t4] = cc[t6] + cc[t6];
      t3 += ido;
      t4 += ido;
      t6 += t10;
    }
    t5 += t7;
  }
  if (ido == 1)
    goto L116;
  if (nbd < l1)
    goto L112;
  t1 = 0;
  t2 = ipp2 * t0;
  t7 = 0;
  for (j = 1; j < ipph; j++) {
    t1 += t0;
    t2 -= t0;
    t3 = t1;
    t4 = t2;
    t7 += (ido << 1);
    t8 = t7;
    for (k = 0; k < l1; k++) {
      t5 = t3;
      t6 = t4;
      t9 = t8;
      t11 = t8;
      for (i = 2; i < ido; i += 2) {
        t5 += 2;
        t6 += 2;
        t9 += 2;
        t11 -= 2;
        ch[t5 - 1] = cc[t9 - 1] + cc[t11 - 1];
        ch[t6 - 1] = cc[t9 - 1] - cc[t11 - 1];
        ch[t5] = cc[t9] - cc[t11];
        ch[t6] = cc[t9] + cc[t11];
      }
      t3 += ido;
      t4 += ido;
      t8 += t10;
    }
  }
  goto L116;
L112:
  t1 = 0;
  t2 = ipp2 * t0;
  t7 = 0;
  for (j = 1; j < ipph; j++) {
    t1 += t0;
    t2 -= t0;
    t3 = t1;
    t4 = t2;
    t7 += (ido << 1);
    t8 = t7;
    t9 = t7;
    for (i = 2; i < ido; i += 2) {
      t3 += 2;
      t4 += 2;
      t8 += 2;
      t9 -= 2;
      t5 = t3;
      t6 = t4;
      t11 = t8;
      t12 = t9;
      for (k = 0; k < l1; k++) {
        ch[t5 - 1] = cc[t11 - 1] + cc[t12 - 1];
        ch[t6 - 1] = cc[t11 - 1] - cc[t12 - 1];
        ch[t5] = cc[t11] - cc[t12];
        ch[t6] = cc[t11] + cc[t12];
        t5 += ido;
        t6 += ido;
        t11 += t10;
        t12 += t10;
      }
    }
  }
L116:
  ar1 = 1.f;
  ai1 = 0.f;
  t1 = 0;
  t9 = (t2 = ipp2 * idl1);
  t3 = (ip - 1) * idl1;
  for (l = 1; l < ipph; l++) {
    t1 += idl1;
    t2 -= idl1;
    ar1h = dcp * ar1 - dsp * ai1;
    ai1 = dcp * ai1 + dsp * ar1;
    ar1 = ar1h;
    t4 = t1;
    t5 = t2;
    t6 = 0;
    t7 = idl1;
    t8 = t3;
    for (ik = 0; ik < idl1; ik++) {
      c2[t4++] = ch2[t6++] + ar1 * ch2[t7++];
      c2[t5++] = ai1 * ch2[t8++];
    }
    dc2 = ar1;
    ds2 = ai1;
    ar2 = ar1;
    ai2 = ai1;
    t6 = idl1;
    t7 = t9 - idl1;
    for (j = 2; j < ipph; j++) {
      t6 += idl1;
      t7 -= idl1;
      ar2h = dc2 * ar2 - ds2 * ai2;
      ai2 = dc2 * ai2 + ds2 * ar2;
      ar2 = ar2h;
      t4 = t1;
      t5 = t2;
      t11 = t6;
      t12 = t7;
      for (ik = 0; ik < idl1; ik++) {
        c2[t4++] += ar2 * ch2[t11++];
        c2[t5++] += ai2 * ch2[t12++];
      }
    }
  }
  t1 = 0;
  for (j = 1; j < ipph; j++) {
    t1 += idl1;
    t2 = t1;
    for (ik = 0; ik < idl1; ik++)
      ch2[ik] += ch2[t2++];
  }
  t1 = 0;
  t2 = ipp2 * t0;
  for (j = 1; j < ipph; j++) {
    t1 += t0;
    t2 -= t0;
    t3 = t1;
    t4 = t2;
    for (k = 0; k < l1; k++) {
      ch[t3] = c1[t3] - c1[t4];
      ch[t4] = c1[t3] + c1[t4];
      t3 += ido;
      t4 += ido;
    }
  }
  if (ido == 1)
    goto L132;
  if (nbd < l1)
    goto L128;
  t1 = 0;
  t2 = ipp2 * t0;
  for (j = 1; j < ipph; j++) {
    t1 += t0;
    t2 -= t0;
    t3 = t1;
    t4 = t2;
    for (k = 0; k < l1; k++) {
      t5 = t3;
      t6 = t4;
      for (i = 2; i < ido; i += 2) {
        t5 += 2;
        t6 += 2;
        ch[t5 - 1] = c1[t5 - 1] - c1[t6];
        ch[t6 - 1] = c1[t5 - 1] + c1[t6];
        ch[t5] = c1[t5] + c1[t6 - 1];
        ch[t6] = c1[t5] - c1[t6 - 1];
      }
      t3 += ido;
      t4 += ido;
    }
  }
  goto L132;
L128:
  t1 = 0;
  t2 = ipp2 * t0;
  for (j = 1; j < ipph; j++) {
    t1 += t0;
    t2 -= t0;
    t3 = t1;
    t4 = t2;
    for (i = 2; i < ido; i += 2) {
      t3 += 2;
      t4 += 2;
      t5 = t3;
      t6 = t4;
      for (k = 0; k < l1; k++) {
        ch[t5 - 1] = c1[t5 - 1] - c1[t6];
        ch[t6 - 1] = c1[t5 - 1] + c1[t6];
        ch[t5] = c1[t5] + c1[t6 - 1];
        ch[t6] = c1[t5] - c1[t6 - 1];
        t5 += ido;
        t6 += ido;
      }
    }
  }
L132:
  if (ido == 1)
    return;
  for (ik = 0; ik < idl1; ik++)
    c2[ik] = ch2[ik];
  t1 = 0;
  for (j = 1; j < ip; j++) {
    t2 = (t1 += t0);
    for (k = 0; k < l1; k++) {
      c1[t2] = ch[t2];
      t2 += ido;
    }
  }
  if (nbd > l1)
    goto L139;
  is = -ido - 1;
  t1 = 0;
  for (j = 1; j < ip; j++) {
    is += ido;
    t1 += t0;
    idij = is;
    t2 = t1;
    for (i = 2; i < ido; i += 2) {
      t2 += 2;
      idij += 2;
      t3 = t2;
      for (k = 0; k < l1; k++) {
        c1[t3 - 1] = wa[idij - 1] * ch[t3 - 1] - wa[idij] * ch[t3];
        c1[t3] = wa[idij - 1] * ch[t3] + wa[idij] * ch[t3 - 1];
        t3 += ido;
      }
    }
  }
  return;
L139:
  is = -ido - 1;
  t1 = 0;
  for (j = 1; j < ip; j++) {
    is += ido;
    t1 += t0;
    t2 = t1;
    for (k = 0; k < l1; k++) {
      idij = is;
      t3 = t2;
      for (i = 2; i < ido; i += 2) {
        idij += 2;
        t3 += 2;
        c1[t3 - 1] = wa[idij - 1] * ch[t3 - 1] - wa[idij] * ch[t3];
        c1[t3] = wa[idij - 1] * ch[t3] + wa[idij] * ch[t3 - 1];
      }
      t2 += ido;
    }
  }
}
```