user: What is the c source code of the assembly code below:

```asm
<simplx>:
  endbr64
  push   %r15
  push   %r14
  mov    %edi,%r14d
  push   %r13
  mov    %ecx,%r13d
  push   %r12
  mov    %r9,%r12
  push   %rbp
  mov    %r8,%rbp
  push   %rbx
  sub    $0x248,%rsp
  mov    0x280(%rsp),%rax
  mov    %rsi,0xa0(%rsp)
  mov    %rdx,0x140(%rsp)
  mov    0x290(%rsp),%r15
  mov    %rax,0x28(%rsp)
  mov    0x288(%rsp),%rax
  mov    0x298(%rsp),%rbx
  mov    0x2a0(%rsp),%r8d
  movss  %xmm0,0x14c(%rsp)
  mov    %rax,0x48(%rsp)
  mov    0x2a8(%rsp),%rax
  mov    %rax,0x8(%rsp)
  mov    0x2b0(%rsp),%rax
  mov    %rax,0x10(%rsp)
  mov    %fs:0x28,%rax
  mov    %rax,0x238(%rsp)
  xor    %eax,%eax
  test   %edi,%edi
  jle    L1756
  lea    -0x1(%r14),%eax
  mov    %rsi,%rdi
  lea    0x4(%rsi),%rsi
  cmp    $0x2,%eax
  mov    %eax,0x38(%rsp)
  mov    %rbx,%rax
  seta   %cl
  sub    %rsi,%rax
  cmp    $0x8,%rax
  jbe    L1217
  test   %cl,%cl
  je     L1217
  mov    %r14d,%edx
  xor    %eax,%eax
  shr    $0x2,%edx
  shl    $0x4,%rdx
L581:
  movups (%rdi,%rax,1),%xmm4
  movups %xmm4,(%rbx,%rax,1)
  add    $0x10,%rax
  cmp    %rdx,%rax
  jne    L581
  mov    %r14d,%eax
  and    $0xfffffffc,%eax
  test   $0x3,%r14b
  je     L4
  mov    0xa0(%rsp),%r9
  mov    %eax,%edi
  lea    0x0(,%rdi,4),%rdx
  movss  (%r9,%rdi,4),%xmm0
  movss  %xmm0,(%rbx,%rdi,4)
  lea    0x1(%rax),%edi
  cmp    %edi,%r14d
  jle    L4
  movss  0x4(%r9,%rdx,1),%xmm0
  add    $0x2,%eax
  movss  %xmm0,0x4(%rbx,%rdx,1)
  cmp    %eax,%r14d
  jle    L4
  movss  0x8(%r9,%rdx,1),%xmm0
  movss  %xmm0,0x8(%rbx,%rdx,1)
L4:
  pxor   %xmm4,%xmm4
  pxor   %xmm1,%xmm1
  pxor   %xmm0,%xmm0
  cvtsi2ss %r13d,%xmm4
  movss  %xmm4,0xe8(%rsp)
  cvtss2sd %xmm4,%xmm1
  ucomisd %xmm1,%xmm0
  ja     L101
  lea    0x4(%rbp),%rax
  mov    %r12,%rdi
  lea    0xf(%rbp),%rdx
  sub    %rax,%rdi
  mov    %rax,0xa8(%rsp)
  cmp    $0x8,%rdi
  mov    0xa0(%rsp),%rdi
  seta   %al
  sub    %rdi,%rdx
  cmp    $0x1e,%rdx
  seta   %dl
  and    %edx,%eax
  mov    %r12,%rdx
  sub    %rsi,%rdx
  cmp    $0x8,%rdx
  seta   %dl
  test   %dl,%al
  je     L1918
  test   %cl,%cl
  je     L1918
  movd   %r14d,%xmm7
  movapd %xmm1,%xmm4
  mov    %r14d,%edx
  xor    %eax,%eax
  pshufd $0x0,%xmm7,%xmm0
  unpcklpd %xmm4,%xmm4
  shr    $0x2,%edx
  pxor   %xmm7,%xmm7
  sqrtpd %xmm4,%xmm4
  shl    $0x4,%rdx
  mov    %rdi,%rcx
  pshufd $0xee,%xmm0,%xmm9
  cvtdq2pd %xmm0,%xmm10
  cvtdq2pd %xmm9,%xmm9
  addpd  %xmm4,%xmm10
  addpd  %xmm4,%xmm9
  movapd D0(%rip),%xmm11
  cvtdq2ps %xmm0,%xmm0
  mulps  D134(%rip),%xmm0
  addpd  %xmm11,%xmm10
  addpd  %xmm11,%xmm9
  addpd  %xmm11,%xmm4
  movhlps %xmm0,%xmm7
  cvtps2pd %xmm0,%xmm8
  cvtps2pd %xmm7,%xmm7
L1339:
  movlps 0x8(%rcx,%rax,1),%xmm5
  cvtps2pd (%rcx,%rax,1),%xmm0
  cvtps2pd %xmm5,%xmm11
  mulpd  %xmm10,%xmm0
  mulpd  %xmm9,%xmm11
  divpd  %xmm8,%xmm0
  divpd  %xmm7,%xmm11
  cvtpd2ps %xmm0,%xmm0
  cvtpd2ps %xmm11,%xmm11
  movlhps %xmm11,%xmm0
  movups %xmm0,0x0(%rbp,%rax,1)
  cvtps2pd (%rcx,%rax,1),%xmm0
  mulpd  %xmm4,%xmm0
  movlps 0x8(%rcx,%rax,1),%xmm6
  cvtps2pd %xmm6,%xmm11
  mulpd  %xmm4,%xmm11
  divpd  %xmm8,%xmm0
  divpd  %xmm7,%xmm11
  cvtpd2ps %xmm0,%xmm0
  cvtpd2ps %xmm11,%xmm11
  movlhps %xmm11,%xmm0
  movups %xmm0,(%r12,%rax,1)
  add    $0x10,%rax
  cmp    %rdx,%rax
  jne    L1339
  mov    %r14d,%edx
  and    $0xfffffffc,%edx
  test   $0x3,%r14b
  je     L1350
  pxor   %xmm4,%xmm4
  sqrtsd %xmm1,%xmm1
  pxor   %xmm0,%xmm0
  mov    %edx,%ecx
  cvtsi2sd %r14d,%xmm4
  movsd  D122(%rip),%xmm7
  pxor   %xmm6,%xmm6
  mov    0xa0(%rsp),%rdi
  cvtsi2ss %r14d,%xmm0
  lea    0x0(,%rcx,4),%rax
  mulss  D134(%rip),%xmm0
  lea    (%rdi,%rax,1),%rsi
  movapd %xmm1,%xmm5
  cvtss2sd (%rsi),%xmm6
  subsd  %xmm7,%xmm5
  addsd  %xmm1,%xmm4
  pxor   %xmm1,%xmm1
  cvtss2sd %xmm0,%xmm0
  subsd  %xmm7,%xmm4
  mulsd  %xmm4,%xmm6
  divsd  %xmm0,%xmm6
  cvtsd2ss %xmm6,%xmm6
  movss  %xmm6,0x0(%rbp,%rax,1)
  cvtss2sd (%rsi),%xmm1
  mulsd  %xmm5,%xmm1
  divsd  %xmm0,%xmm1
  cvtsd2ss %xmm1,%xmm1
  movss  %xmm1,(%r12,%rcx,4)
  lea    0x1(%rdx),%ecx
  cmp    %ecx,%r14d
  jle    L1350
  lea    0x4(%rdi,%rax,1),%rcx
  pxor   %xmm1,%xmm1
  add    $0x2,%edx
  cvtss2sd (%rcx),%xmm1
  mulsd  %xmm4,%xmm1
  divsd  %xmm0,%xmm1
  cvtsd2ss %xmm1,%xmm1
  movss  %xmm1,0x4(%rbp,%rax,1)
  pxor   %xmm1,%xmm1
  cvtss2sd (%rcx),%xmm1
  mulsd  %xmm5,%xmm1
  divsd  %xmm0,%xmm1
  cvtsd2ss %xmm1,%xmm1
  movss  %xmm1,0x4(%r12,%rax,1)
  cmp    %edx,%r14d
  jle    L1350
  lea    0x8(%rdi,%rax,1),%rdx
  pxor   %xmm1,%xmm1
  cvtss2sd (%rdx),%xmm1
  mulsd  %xmm4,%xmm1
  divsd  %xmm0,%xmm1
  cvtsd2ss %xmm1,%xmm1
  movss  %xmm1,0x8(%rbp,%rax,1)
  pxor   %xmm1,%xmm1
  cvtss2sd (%rdx),%xmm1
  mulsd  %xmm5,%xmm1
  divsd  %xmm0,%xmm1
  cvtsd2ss %xmm1,%xmm1
  movss  %xmm1,0x8(%r12,%rax,1)
L1350:
  movslq %r8d,%rax
  cmp    $0x1,%r13d
  jle    L1424
L1360:
  mov    %rax,%rdx
  mov    %r14d,%r10d
  mov    %r11d,0x40(%rsp)
  mov    %rbp,%rsi
  lea    0x4(,%rax,4),%rdi
  mov    %r13d,0x50(%rsp)
  and    $0xfffffffc,%r10d
  mov    0xa8(%rsp),%rcx
  mov    %rax,0x88(%rsp)
  mov    %rdi,(%rsp)
  lea    (%rbx,%rax,4),%rdi
  lea    -0x2(%r13),%eax
  lea    (%rcx,%rax,4),%rax
  mov    %rbp,0x58(%rsp)
  mov    %r10d,%ebp
  mov    %rax,0x18(%rsp)
  mov    %r14d,%eax
  shr    $0x2,%eax
  mov    %r15,0x80(%rsp)
  lea    -0x1(%rax),%ecx
  mov    %rdx,%rax
  add    $0x1,%rcx
  mov    %rax,%r15
  shl    $0x4,%rcx
  mov    %rcx,%r9
  mov    %rdx,%rcx
  lea    0x4(%r12),%rdx
  mov    %rdx,0x70(%rsp)
  mov    0x38(%rsp),%edx
  mov    %rdx,0x30(%rsp)
  mov    %r14d,%edx
  mov    0x30(%rsp),%r13
  and    $0x3,%edx
  mov    %edx,0x24(%rsp)
  mov    %r8d,%edx
  nopl   0x0(%rax)
L1782:
  test   %r14d,%r14d
  jle    L1223
  lea    0x0(,%rcx,4),%rax
  lea    (%rbx,%rax,1),%r10
  sub    $0x4,%rax
  cmp    $0x8,%rax
  seta   %r11b
  cmp    $0x1,%r14d
  setne  %al
  test   %al,%r11b
  je     L409
  mov    %r10,%rax
  sub    0x70(%rsp),%rax
  cmp    $0x8,%rax
  jbe    L409
  cmpl   $0x2,0x38(%rsp)
  jbe    L177
  xor    %eax,%eax
L953:
  movups (%rbx,%rax,1),%xmm0
  movups (%r12,%rax,1),%xmm7
  addps  %xmm7,%xmm0
  movups %xmm0,(%r10,%rax,1)
  add    $0x10,%rax
  cmp    %r9,%rax
  jne    L953
  cmp    %ebp,%r14d
  je     L1223
  mov    0x24(%rsp),%eax
  mov    %eax,%r11d
  cmp    $0x1,%eax
  je     L1163
  mov    %ebp,%r10d
  mov    %ebp,%eax
L1209:
  movq   (%rbx,%r10,4),%xmm0
  movq   (%r12,%r10,4),%xmm1
  add    %rcx,%r10
  addps  %xmm1,%xmm0
  movlps %xmm0,(%rbx,%r10,4)
  mov    %r11d,%r10d
  and    $0xfffffffe,%r10d
  add    %r10d,%eax
  cmp    %r10d,%r11d
  je     L1223
L1015:
  movslq %eax,%r10
  add    %edx,%eax
  movss  (%rbx,%r10,4),%xmm0
  addss  (%r12,%r10,4),%xmm0
  cltq
  movss  %xmm0,(%rbx,%rax,4)
L1223:
  movss  (%rdi),%xmm0
  addss  (%rsi),%xmm0
  add    %r8d,%edx
  add    $0x4,%rsi
  add    %r15,%rcx
  movss  %xmm0,(%rdi)
  add    (%rsp),%rdi
  cmp    0x18(%rsp),%rsi
  jne    L1782
  mov    0x40(%rsp),%r11d
  mov    0x50(%rsp),%r13d
  mov    0x58(%rsp),%rbp
  mov    0x80(%rsp),%r15
L998:
  mov    %r14d,%edx
  mov    %r14d,%esi
  mov    %r15,%rax
  xor    %r10d,%r10d
  shr    $0x2,%edx
  and    $0xfffffffc,%esi
  mov    %r11d,0x90(%rsp)
  sub    $0x1,%edx
  mov    %esi,0x24(%rsp)
  add    $0x1,%rdx
  mov    %r13d,0x18(%rsp)
  shl    $0x4,%rdx
  mov    %r12,0x98(%rsp)
  mov    %r10d,%r12d
  mov    %rdx,%r9
  movslq %esi,%rdx
  mov    %r15,0xe0(%rsp)
  lea    0x0(%rbp,%rdx,4),%rdi
  mov    %r8d,0x2a0(%rsp)
  mov    %r9,%r13
  mov    %rbx,%r8
  mov    %rdi,0x30(%rsp)
  lea    0x1(%rsi),%edi
  add    $0x2,%esi
  mov    %rax,%rbx
  movslq %edi,%rdx
  mov    %edi,0x40(%rsp)
  lea    0x0(%rbp,%rdx,4),%rdi
  movslq %esi,%rdx
  mov    %esi,0x58(%rsp)
  mov    %rdi,0x50(%rsp)
  lea    0x0(%rbp,%rdx,4),%rdi
  xor    %edx,%edx
  mov    %rdi,0x80(%rsp)
  mov    0x38(%rsp),%edi
  mov    %edx,%r15d
  movaps %xmm2,0xb0(%rsp)
  mov    %rdi,0x60(%rsp)
  movaps %xmm3,0xc0(%rsp)
  nopl   0x0(%rax)
L607:
  test   %r14d,%r14d
  jle    L524
  movslq %r12d,%rdx
  mov    %rbp,%rcx
  lea    0x4(,%rdx,4),%rdx
  lea    (%r8,%rdx,1),%rdi
  sub    %rdi,%rcx
  cmp    $0x8,%rcx
  jbe    L378
  cmpl   $0x2,0x38(%rsp)
  jbe    L378
  lea    -0x4(%r8,%rdx,1),%rcx
  xor    %edx,%edx
  nopw   0x0(%rax,%rax,1)
L1170:
  movups (%rcx,%rdx,1),%xmm2
  movups %xmm2,0x0(%rbp,%rdx,1)
  add    $0x10,%rdx
  cmp    %r13,%rdx
  jne    L1170
  mov    0x24(%rsp),%eax
  cmp    %eax,%r14d
  je     L524
  lea    (%r12,%rax,1),%edx
  mov    0x30(%rsp),%rax
  movslq %edx,%rdx
  movss  (%r8,%rdx,4),%xmm0
  movss  %xmm0,(%rax)
  mov    0x40(%rsp),%eax
  cmp    %eax,%r14d
  jle    L524
  lea    (%r12,%rax,1),%edx
  mov    0x50(%rsp),%rax
  movslq %edx,%rdx
  movss  (%r8,%rdx,4),%xmm0
  movss  %xmm0,(%rax)
  mov    0x58(%rsp),%eax
  cmp    %eax,%r14d
  jle    L524
  lea    (%r12,%rax,1),%edx
  mov    0x80(%rsp),%rax
  movslq %edx,%rdx
  movss  (%r8,%rdx,4),%xmm0
  movss  %xmm0,(%rax)
L524:
  mov    %r8,(%rsp)
  mov    %rbx,%rcx
  mov    0x10(%rsp),%rdi
  mov    %rbp,%rdx
  mov    0x8(%rsp),%rax
  mov    %r14d,%esi
  add    $0x1,%r15d
  add    $0x4,%rbx
  call   *%rax
  add    0x2a0(%rsp),%r12d
  cmp    %r15d,0x18(%rsp)
  mov    (%rsp),%r8
  jg     L607
  mov    %r8,%rbx
  mov    0x90(%rsp),%r11d
  mov    0x18(%rsp),%r13d
  mov    0x98(%rsp),%r12
  mov    0xe0(%rsp),%r15
  mov    0x2a0(%rsp),%r8d
  movaps 0xb0(%rsp),%xmm2
  movaps 0xc0(%rsp),%xmm3
L1615:
  mov    0x2b8(%rsp),%eax
  sub    $0x1,%eax
  mov    %rax,0x158(%rsp)
  mov    0x38(%rsp),%eax
  mov    %rax,%rsi
  mov    %rax,0x100(%rsp)
  lea    0x4(,%rax,4),%rax
  cmp    $0x2,%esi
  mov    %rax,0x138(%rsp)
  mov    %r12,%rax
  seta   0x18(%rsp)
  sub    0xa8(%rsp),%rax
  movzbl 0x18(%rsp),%esi
  cmp    $0x8,%rax
  seta   %al
  and    %esi,%eax
  mov    %al,0x1f5(%rsp)
  mov    %r14d,%eax
  shr    $0x2,%eax
  lea    -0x1(%rax),%esi
  lea    0x1(%rsi),%rax
  shl    $0x4,%rsi
  shl    $0x4,%rax
  mov    %rax,0x30(%rsp)
  mov    %r14d,%eax
  and    $0xfffffffc,%eax
  movslq %eax,%rcx
  mov    %eax,(%rsp)
  shl    $0x2,%rcx
  lea    0x0(%rbp,%rcx,1),%rdi
  mov    %rdi,0xf8(%rsp)
  lea    (%r12,%rcx,1),%rdi
  mov    %rdi,0x108(%rsp)
  lea    0x1(%rax),%edi
  movslq %edi,%rdx
  mov    %edi,0x24(%rsp)
  shl    $0x2,%rdx
  lea    0x0(%rbp,%rdx,1),%rdi
  mov    %rdi,0x110(%rsp)
  lea    (%r12,%rdx,1),%rdi
  mov    %rdi,0x118(%rsp)
  lea    0x2(%rax),%edi
  movslq %edi,%rax
  mov    %edi,0x40(%rsp)
  shl    $0x2,%rax
  lea    0x0(%rbp,%rax,1),%rdi
  mov    %rdi,0x120(%rsp)
  lea    (%r12,%rax,1),%rdi
  mov    %rdi,0x128(%rsp)
  mov    0x28(%rsp),%rdi
  lea    (%rdi,%rcx,1),%r9
  mov    %r9,0x160(%rsp)
  lea    (%rdi,%rdx,1),%r9
  mov    %r9,0x168(%rsp)
  lea    (%rdi,%rax,1),%r9
  mov    %r9,0x170(%rsp)
  mov    0x48(%rsp),%r9
  lea    (%r9,%rcx,1),%r10
  mov    %r10,0x1a0(%rsp)
  lea    (%r9,%rdx,1),%r10
  mov    %r10,0x1a8(%rsp)
  lea    (%r9,%rax,1),%r10
  mov    %r10,0x1b8(%rsp)
  mov    0x88(%rsp),%r10
  shl    $0x2,%r10
  mov    %r10,0x98(%rsp)
  lea    0x10(%rbp,%rsi,1),%r10
  lea    -0x1(%r13),%esi
  mov    %r10,0x228(%rsp)
  lea    0x4(%r15,%rsi,4),%r10
  mov    %rsi,0x150(%rsp)
  lea    0x4(%rdi),%rsi
  mov    %rsi,%rdi
  mov    %r10,0x80(%rsp)
  mov    %rsi,0x1c0(%rsp)
  mov    %r9,%rsi
  sub    0x70(%rsp),%rsi
  cmp    $0x8,%rsi
  mov    %r8d,0x2a0(%rsp)
  mov    %r12,%r8
  mov    %r11d,%r12d
  seta   0x1f6(%rsp)
  sub    %rdi,%r9
  mov    0x28(%rsp),%rdi
  movzbl 0x1f6(%rsp),%r10d
  cmp    $0x8,%r9
  mov    %r15,%r11
  movq   $0x0,0x60(%rsp)
  seta   %sil
  movl   $0x0,0x50(%rsp)
  movss  (%r11),%xmm5
  and    %r10d,%esi
  mov    $0x1,%r10d
  and    0x18(%rsp),%sil
  test   %r14d,%r14d
  mov    %r10d,%r9d
  mov    %sil,0x1f7(%rsp)
  cmovg  %r14d,%r9d
  mov    %r9d,%esi
  mov    %r9d,0x1fc(%rsp)
  and    $0xfffffffc,%r9d
  shr    $0x2,%esi
  mov    %r9d,0x1f8(%rsp)
  sub    $0x1,%esi
  add    $0x1,%rsi
  shl    $0x4,%rsi
  test   %r13d,%r13d
  mov    %rsi,0x200(%rsp)
  movslq %r9d,%rsi
  lea    (%rdi,%rsi,4),%rsi
  mov    %rsi,0x208(%rsp)
  lea    0x1(%r9),%esi
  mov    %esi,0x218(%rsp)
  movslq %esi,%rsi
  lea    (%rdi,%rsi,4),%rsi
  mov    %rsi,0x210(%rsp)
  lea    0x2(%r9),%esi
  mov    %esi,0x21c(%rsp)
  movslq %esi,%rsi
  lea    (%rdi,%rsi,4),%rsi
  mov    %r10d,%edi
  mov    %r14d,%r10d
  cmovg  %r13d,%edi
  mov    %rsi,0x220(%rsp)
  mov    %edi,%esi
  mov    %edi,0x148(%rsp)
  and    $0xfffffffc,%edi
  shr    $0x2,%esi
  mov    %edi,0xec(%rsp)
  mov    %rax,%rdi
  lea    0x230(%rsp),%rax
  sub    $0x1,%esi
  mov    %rax,0x130(%rsp)
  shl    $0x4,%rsi
  lea    0x10(%r15,%rsi,1),%rsi
  mov    0x30(%rsp),%r15
  mov    %rsi,0xf0(%rsp)
  mov    0xa0(%rsp),%rsi
  add    %rsi,%rdi
  add    %rsi,%rcx
  add    %rsi,%rdx
  mov    %rdi,0x1c8(%rsp)
  mov    %r14d,%edi
  sub    (%rsp),%edi
  mov    %rcx,0x178(%rsp)
  mov    0x2a0(%rsp),%r14d
  mov    %rdx,0x1b0(%rsp)
  mov    %edi,0x1f0(%rsp)
  test   %r13d,%r13d
  jle    L1162
  nopl   0x0(%rax)
L1222:
  mov    0x3c(%rsp),%esi
  mov    0x150(%rsp),%rcx
  movaps %xmm5,%xmm4
  xor    %eax,%eax
  jmp    L1334
  nopl   0x0(%rax,%rax,1)
L51:
  mov    %rdx,%rax
L1334:
  movss  (%r11,%rax,4),%xmm0
  mov    %eax,%edx
  comiss %xmm5,%xmm0
  jb     L1121
  mov    %eax,%r12d
  movaps %xmm0,%xmm5
L1121:
  comiss %xmm0,%xmm4
  jb     L1102
  mov    %edx,%esi
  movaps %xmm0,%xmm4
L1102:
  lea    0x1(%rax),%rdx
  cmp    %rax,%rcx
  jne    L51
  mov    %esi,0x3c(%rsp)
  test   %r10d,%r10d
  jle    L1751
  mov    0x138(%rsp),%rdx
  xor    %esi,%esi
  mov    %rbp,%rdi
  mov    %r11,0xb0(%rsp)
  mov    %r8,0xe0(%rsp)
  mov    %r10d,0x90(%rsp)
  movaps %xmm3,0xd0(%rsp)
  movaps %xmm2,0xc0(%rsp)
  movss  %xmm4,0x58(%rsp)
  movss  %xmm5,0x30(%rsp)
  call   <memset@plt>
  movss  0x30(%rsp),%xmm5
  mov    %rbp,%rcx
  xor    %esi,%esi
  movss  0x58(%rsp),%xmm4
  mov    0x90(%rsp),%r10d
  mov    0xe0(%rsp),%r8
  mov    0xb0(%rsp),%r11
  movaps 0xc0(%rsp),%xmm2
  movaps 0xd0(%rsp),%xmm3
  nopl   (%rax)
L1620:
  mov    %esi,%edx
  xor    %eax,%eax
  nopl   0x0(%rax)
L275:
  cmp    %eax,%r12d
  je     L12
  movslq %edx,%rdi
  movss  (%rcx),%xmm0
  add    $0x1,%eax
  add    %r14d,%edx
  addss  (%rbx,%rdi,4),%xmm0
  movss  %xmm0,(%rcx)
  cmp    %eax,%r13d
  jne    L275
  add    $0x1,%esi
  add    $0x4,%rcx
  cmp    %esi,%r10d
  jne    L1620
L706:
  pxor   %xmm6,%xmm6
  cmpb   $0x0,0x1f5(%rsp)
  cvtsi2ss %r10d,%xmm6
  je     L1267
L83:
  movaps %xmm6,%xmm1
  xor    %eax,%eax
  shufps $0x0,%xmm1,%xmm1
L413:
  movups 0x0(%rbp,%rax,1),%xmm0
  divps  %xmm1,%xmm0
  movups %xmm0,(%r8,%rax,1)
  add    $0x10,%rax
  cmp    %r15,%rax
  jne    L413
  cmp    (%rsp),%r10d
  je     L716
  mov    0xf8(%rsp),%rax
  movss  (%rax),%xmm0
  mov    0x108(%rsp),%rax
  divss  %xmm6,%xmm0
  movss  %xmm0,(%rax)
  cmp    0x24(%rsp),%r10d
  jle    L716
  mov    0x110(%rsp),%rax
  movss  (%rax),%xmm0
  mov    0x118(%rsp),%rax
  divss  %xmm6,%xmm0
  movss  %xmm0,(%rax)
  cmp    0x40(%rsp),%r10d
  jle    L716
  mov    0x120(%rsp),%rax
  movss  (%rax),%xmm0
  mov    0x128(%rsp),%rax
  divss  %xmm6,%xmm0
  movss  %xmm0,(%rax)
L716:
  mov    %r14d,%ecx
  mov    0x28(%rsp),%r9
  imul   %r12d,%ecx
  mov    %r9,%rsi
  sub    0x70(%rsp),%rsi
  cmp    $0x8,%rsi
  movslq %ecx,%rdx
  seta   %sil
  lea    0x4(,%rdx,4),%rax
  test   %sil,0x18(%rsp)
  je     L1753
  lea    (%rbx,%rax,1),%rdi
  mov    %r9,%rsi
  sub    %rdi,%rsi
  cmp    $0x8,%rsi
  jbe    L1753
  lea    -0x4(%rbx,%rax,1),%rdx
  mov    %r9,%rsi
  xor    %eax,%eax
  xchg   %ax,%ax
L1692:
  cvtps2pd (%r8,%rax,1),%xmm0
  addpd  %xmm0,%xmm0
  cvtps2pd (%rdx,%rax,1),%xmm1
  movlps 0x8(%rdx,%rax,1),%xmm3
  movlps 0x8(%r8,%rax,1),%xmm2
  cvtps2pd %xmm3,%xmm6
  subpd  %xmm1,%xmm0
  cvtps2pd %xmm2,%xmm1
  addpd  %xmm1,%xmm1
  subpd  %xmm6,%xmm1
  cvtpd2ps %xmm0,%xmm0
  cvtpd2ps %xmm1,%xmm1
  movlhps %xmm1,%xmm0
  movups %xmm0,(%rsi,%rax,1)
  add    $0x10,%rax
  cmp    %r15,%rax
  jne    L1692
  mov    (%rsp),%eax
  cmp    %eax,%r10d
  je     L792
  mov    0x108(%rsp),%rdi
  pxor   %xmm0,%xmm0
  add    %ecx,%eax
  pxor   %xmm1,%xmm1
  cltq
  cvtss2sd (%rdi),%xmm0
  addsd  %xmm0,%xmm0
  cvtss2sd (%rbx,%rax,4),%xmm1
  mov    0x160(%rsp),%rax
  subsd  %xmm1,%xmm0
  cvtsd2ss %xmm0,%xmm0
  movss  %xmm0,(%rax)
  mov    0x24(%rsp),%eax
  cmp    %eax,%r10d
  jle    L792
  mov    0x118(%rsp),%rsi
  pxor   %xmm0,%xmm0
  add    %ecx,%eax
  pxor   %xmm1,%xmm1
  cltq
  cvtss2sd (%rsi),%xmm0
  addsd  %xmm0,%xmm0
  cvtss2sd (%rbx,%rax,4),%xmm1
  mov    0x168(%rsp),%rax
  subsd  %xmm1,%xmm0
  cvtsd2ss %xmm0,%xmm0
  movss  %xmm0,(%rax)
  mov    0x40(%rsp),%eax
  cmp    %eax,%r10d
  jle    L792
  mov    0x128(%rsp),%rsi
  pxor   %xmm0,%xmm0
  add    %ecx,%eax
  pxor   %xmm1,%xmm1
  cltq
  cvtss2sd (%rsi),%xmm0
  addsd  %xmm0,%xmm0
  cvtss2sd (%rbx,%rax,4),%xmm1
  mov    0x170(%rsp),%rax
  subsd  %xmm1,%xmm0
  cvtsd2ss %xmm0,%xmm0
  movss  %xmm0,(%rax)
L792:
  mov    %r11,0xb0(%rsp)
  mov    %r10d,%esi
  mov    0x130(%rsp),%rcx
  mov    %r8,0xe0(%rsp)
  mov    0x28(%rsp),%rdx
  mov    %r10d,0x30(%rsp)
  mov    0x10(%rsp),%rdi
  movaps %xmm3,0xd0(%rsp)
  mov    0x8(%rsp),%rax
  movaps %xmm2,0xc0(%rsp)
  movss  %xmm4,0x90(%rsp)
  movss  %xmm5,0x58(%rsp)
  call   *%rax
  mov    0x30(%rsp),%r10d
  movss  0x58(%rsp),%xmm5
  mov    0xe0(%rsp),%r8
  mov    0xb0(%rsp),%r11
  movaps 0xc0(%rsp),%xmm2
  movaps 0xd0(%rsp),%xmm3
  movss  0x230(%rsp),%xmm1
  movss  0x90(%rsp),%xmm4
  comiss %xmm1,%xmm4
  ja     L837
L237:
  test   %r13d,%r13d
  jle    L326
  test   %r12d,%r12d
  je     L326
  mov    $0x1,%eax
  jmp    L1183
  xchg   %ax,%ax
L1481:
  mov    %eax,%edx
  add    $0x1,%rax
  cmp    %edx,%r12d
  je     L326
  cmp    %edx,%r13d
  jle    L326
L1183:
  movss  -0x4(%r11,%rax,4),%xmm0
  comiss %xmm1,%xmm0
  jbe    L1481
  test   %r10d,%r10d
  jle    L1534
L1855:
  mov    %r14d,%ecx
  imul   %r12d,%ecx
  movslq %ecx,%rax
  lea    (%rbx,%rax,4),%rdx
  mov    %rdx,%rax
  sub    0x1c0(%rsp),%rax
  cmp    $0x8,%rax
  mov    $0x0,%eax
  jbe    L1697
  cmp    $0x3,%r10d
  jle    L1697
  mov    0x200(%rsp),%rsi
  mov    0x28(%rsp),%rdi
  nopl   0x0(%rax)
L1500:
  movups (%rdi,%rax,1),%xmm7
  movups %xmm7,(%rdx,%rax,1)
  add    $0x10,%rax
  cmp    %rsi,%rax
  jne    L1500
  mov    0x1f8(%rsp),%eax
  mov    0x1fc(%rsp),%edi
  cmp    %edi,%eax
  je     L1534
  mov    0x208(%rsp),%rsi
  add    %ecx,%eax
  cltq
  movss  (%rsi),%xmm0
  movss  %xmm0,(%rbx,%rax,4)
  mov    0x218(%rsp),%eax
  cmp    %r10d,%eax
  jge    L1534
  mov    0x210(%rsp),%rsi
  add    %ecx,%eax
  cltq
  movss  (%rsi),%xmm0
  movss  %xmm0,(%rbx,%rax,4)
  mov    0x21c(%rsp),%eax
  cmp    %eax,%r10d
  jle    L1534
  mov    0x220(%rsp),%rdi
  add    %ecx,%eax
  cltq
  movss  (%rdi),%xmm0
  movss  %xmm0,(%rbx,%rax,4)
L1534:
  movslq %r12d,%rax
  movss  %xmm1,(%r11,%rax,4)
  test   %r13d,%r13d
  jle    L575
L1432:
  cmp    $0x3,%r13d
  jle    L624
L746:
  mov    0xf0(%rsp),%rdx
  mov    %r11,%rax
  pxor   %xmm0,%xmm0
  nopl   (%rax)
L315:
  movups (%rax),%xmm1
  add    $0x10,%rax
  addss  %xmm1,%xmm0
  movaps %xmm1,%xmm5
  shufps $0x55,%xmm1,%xmm5
  addss  %xmm0,%xmm5
  movaps %xmm1,%xmm0
  unpckhps %xmm1,%xmm0
  shufps $0xff,%xmm1,%xmm1
  addss  %xmm5,%xmm0
  addss  %xmm1,%xmm0
  cmp    %rax,%rdx
  jne    L315
  mov    0xec(%rsp),%eax
  mov    0x148(%rsp),%esi
  cmp    %esi,%eax
  je     L1655
L927:
  movslq %eax,%rcx
  addss  (%r11,%rcx,4),%xmm0
  lea    0x0(,%rcx,4),%rdx
  lea    0x1(%rax),%ecx
  cmp    %r13d,%ecx
  jge    L1401
  add    $0x2,%eax
  addss  0x4(%r11,%rdx,1),%xmm0
  cmp    %eax,%r13d
  jle    L1066
  addss  0x8(%r11,%rdx,1),%xmm0
L1066:
  movaps %xmm0,%xmm5
  divss  0xe8(%rsp),%xmm5
  cmp    $0x3,%r13d
  jle    L1674
L1065:
  mov    0xf0(%rsp),%rdx
  movaps %xmm5,%xmm7
  mov    %r11,%rax
  pxor   %xmm1,%xmm1
  shufps $0x0,%xmm7,%xmm7
  nopw   0x0(%rax,%rax,1)
L904:
  movups (%rax),%xmm0
  add    $0x10,%rax
  subps  %xmm7,%xmm0
  mulps  %xmm0,%xmm0
  addss  %xmm0,%xmm1
  movaps %xmm0,%xmm6
  shufps $0x55,%xmm0,%xmm6
  addss  %xmm1,%xmm6
  movaps %xmm0,%xmm1
  unpckhps %xmm0,%xmm1
  shufps $0xff,%xmm0,%xmm0
  addss  %xmm6,%xmm1
  addss  %xmm0,%xmm1
  cmp    %rdx,%rax
  jne    L904
  mov    0xec(%rsp),%eax
  mov    0x148(%rsp),%esi
  cmp    %esi,%eax
  je     L471
L1011:
  movslq %eax,%rcx
  add    $0x1,%eax
  movss  (%r11,%rcx,4),%xmm0
  lea    0x0(,%rcx,4),%rdx
  subss  %xmm5,%xmm0
  mulss  %xmm0,%xmm0
  addss  %xmm0,%xmm1
  cmp    %eax,%r13d
  jle    L471
L513:
  movss  0x4(%r11,%rdx,1),%xmm0
  add    $0x1,%eax
  subss  %xmm5,%xmm0
  mulss  %xmm0,%xmm0
  addss  %xmm0,%xmm1
  cmp    %eax,%r13d
  jle    L471
  movss  0x8(%r11,%rdx,1),%xmm0
  subss  %xmm5,%xmm0
  mulss  %xmm0,%xmm0
  addss  %xmm0,%xmm1
L471:
  divss  0xe8(%rsp),%xmm1
  test   %r10d,%r10d
  jle    L918
  mov    0x3c(%rsp),%ecx
  mov    0xa0(%rsp),%r9
  imul   %r14d,%ecx
  mov    %r9,%rsi
  movslq %ecx,%rdx
  lea    0x4(,%rdx,4),%rax
  lea    (%rbx,%rax,1),%rdi
  sub    %rdi,%rsi
  cmp    $0x8,%rsi
  jbe    L1358
  cmpb   $0x0,0x18(%rsp)
  je     L1358
  lea    -0x4(%rbx,%rax,1),%rdx
  mov    %r9,%rsi
  xor    %eax,%eax
  xchg   %ax,%ax
L1123:
  movups (%rdx,%rax,1),%xmm7
  movups %xmm7,(%rsi,%rax,1)
  add    $0x10,%rax
  cmp    %r15,%rax
  jne    L1123
  mov    (%rsp),%eax
  cmp    %eax,%r10d
  je     L918
  add    %ecx,%eax
  cltq
  movss  (%rbx,%rax,4),%xmm0
  mov    0x178(%rsp),%rax
  movss  %xmm0,(%rax)
  mov    0x24(%rsp),%eax
  cmp    %eax,%r10d
  jle    L918
  add    %ecx,%eax
  cltq
  movss  (%rbx,%rax,4),%xmm0
  mov    0x1b0(%rsp),%rax
  movss  %xmm0,(%rax)
  mov    0x40(%rsp),%eax
  cmp    %eax,%r10d
  jle    L918
  add    %ecx,%eax
  cltq
  movss  (%rbx,%rax,4),%xmm0
  mov    0x1c8(%rsp),%rax
  movss  %xmm0,(%rax)
L918:
  mov    0x140(%rsp),%rax
  movss  %xmm4,(%rax)
  movss  0x14c(%rsp),%xmm4
  comiss %xmm1,%xmm4
  ja     L1865
  movsd  D140(%rip),%xmm4
  movaps %xmm1,%xmm0
  subss  0x50(%rsp),%xmm0
  andps  D3(%rip),%xmm0
  cvtss2sd %xmm0,%xmm0
  comisd %xmm0,%xmm4
  ja     L1865
  mov    0x60(%rsp),%rsi
  lea    0x1(%rsi),%rax
  cmp    0x158(%rsp),%rsi
  je     L1865
  mov    %rax,0x60(%rsp)
  movss  (%r11),%xmm5
  movss  %xmm1,0x50(%rsp)
  test   %r13d,%r13d
  jg     L1222
L1162:
  mov    %r11,0xe0(%rsp)
  mov    %r8,0x90(%rsp)
  movaps %xmm3,0xc0(%rsp)
  movaps %xmm2,0xb0(%rsp)
  test   %r10d,%r10d
  jle    L1494
  mov    0x138(%rsp),%rdx
  xor    %esi,%esi
  mov    %rbp,%rdi
  mov    %r10d,0x58(%rsp)
  movss  %xmm5,0x30(%rsp)
  call   <memset@plt>
  movss  0x30(%rsp),%xmm5
  mov    0x58(%rsp),%r10d
  pxor   %xmm6,%xmm6
  cmpb   $0x0,0x1f5(%rsp)
  mov    0x90(%rsp),%r8
  cvtsi2ss %r10d,%xmm6
  mov    0xe0(%rsp),%r11
  movaps %xmm5,%xmm4
  movaps 0xb0(%rsp),%xmm2
  movaps 0xc0(%rsp),%xmm3
  jne    L83
L1267:
  mov    0x100(%rsp),%rcx
  xor    %eax,%eax
  nopl   0x0(%rax,%rax,1)
L547:
  movss  0x0(%rbp,%rax,4),%xmm0
  mov    %rax,%rdx
  divss  %xmm6,%xmm0
  movss  %xmm0,(%r8,%rax,4)
  add    $0x1,%rax
  cmp    %rdx,%rcx
  jne    L547
  jmp    L716
  nopl   0x0(%rax)
L12:
  lea    0x1(%r12),%eax
  add    %r14d,%edx
  cmp    %eax,%r13d
  jne    L275
  add    $0x1,%esi
  add    $0x4,%rcx
  cmp    %esi,%r10d
  jne    L1620
  jmp    L706
L1494:
  mov    %r10d,0x30(%rsp)
  mov    %r10d,%esi
  mov    0x130(%rsp),%rcx
  movss  %xmm5,0x58(%rsp)
  mov    0x28(%rsp),%rdx
  mov    0x10(%rsp),%rdi
  mov    0x8(%rsp),%rax
  call   *%rax
  movss  0x58(%rsp),%xmm5
  mov    0x30(%rsp),%r10d
  mov    0x90(%rsp),%r8
  mov    0xe0(%rsp),%r11
  movss  0x230(%rsp),%xmm1
  movaps 0xb0(%rsp),%xmm2
  movaps %xmm5,%xmm4
  movaps 0xc0(%rsp),%xmm3
  comiss %xmm1,%xmm5
  ja     L2005
L326:
  comiss %xmm1,%xmm5
  jae    L91
L228:
  test   %r10d,%r10d
  jle    L1200
  mov    %r14d,%ecx
  mov    0x48(%rsp),%r9
  imul   %r12d,%ecx
  mov    %r9,%rsi
  movslq %ecx,%rdx
  lea    0x4(,%rdx,4),%rax
  lea    (%rbx,%rax,1),%rdi
  sub    %rdi,%rsi
  cmp    $0x8,%rsi
  jbe    L1978
  movzbl 0x18(%rsp),%esi
  test   %sil,0x1f6(%rsp)
  je     L1978
  movaps 0x180(%rsp),%xmm7
  lea    -0x4(%rbx,%rax,1),%rdx
  mov    %r9,%rsi
  xor    %eax,%eax
  movaps 0x190(%rsp),%xmm8
  nopl   0x0(%rax,%rax,1)
L2019:
  cvtps2pd (%rdx,%rax,1),%xmm0
  cvtps2pd (%r8,%rax,1),%xmm1
  movlps 0x8(%rdx,%rax,1),%xmm7
  movlps 0x8(%r8,%rax,1),%xmm8
  mulpd  D46(%rip),%xmm1
  cvtps2pd %xmm8,%xmm6
  mulpd  D46(%rip),%xmm0
  mulpd  D46(%rip),%xmm6
  addpd  %xmm1,%xmm0
  cvtps2pd %xmm7,%xmm1
  mulpd  D46(%rip),%xmm1
  cvtpd2ps %xmm0,%xmm0
  addpd  %xmm6,%xmm1
  cvtpd2ps %xmm1,%xmm1
  movlhps %xmm1,%xmm0
  movups %xmm0,(%rsi,%rax,1)
  add    $0x10,%rax
  cmp    %r15,%rax
  jne    L2019
  mov    (%rsp),%eax
  movaps %xmm7,0x180(%rsp)
  movaps %xmm8,0x190(%rsp)
  cmp    %eax,%r10d
  je     L1200
  add    %ecx,%eax
  pxor   %xmm0,%xmm0
  movsd  D46(%rip),%xmm1
  pxor   %xmm6,%xmm6
  cltq
  cvtss2sd (%rbx,%rax,4),%xmm0
  mov    0x108(%rsp),%rax
  mulsd  %xmm1,%xmm0
  cvtss2sd (%rax),%xmm6
  mulsd  %xmm1,%xmm6
  mov    0x1a0(%rsp),%rax
  addsd  %xmm6,%xmm0
  cvtsd2ss %xmm0,%xmm0
  movss  %xmm0,(%rax)
  mov    0x24(%rsp),%eax
  cmp    %eax,%r10d
  jle    L1200
  add    %ecx,%eax
  pxor   %xmm0,%xmm0
  pxor   %xmm6,%xmm6
  cltq
  cvtss2sd (%rbx,%rax,4),%xmm0
  mov    0x118(%rsp),%rax
  mulsd  %xmm1,%xmm0
  cvtss2sd (%rax),%xmm6
  mulsd  %xmm1,%xmm6
  mov    0x1a8(%rsp),%rax
  addsd  %xmm6,%xmm0
  cvtsd2ss %xmm0,%xmm0
  movss  %xmm0,(%rax)
  mov    0x40(%rsp),%eax
  cmp    %eax,%r10d
  jle    L1200
  add    %ecx,%eax
  pxor   %xmm0,%xmm0
  pxor   %xmm6,%xmm6
  cltq
  cvtss2sd (%rbx,%rax,4),%xmm0
  mov    0x128(%rsp),%rax
  mulsd  %xmm1,%xmm0
  cvtss2sd (%rax),%xmm6
  mulsd  %xmm6,%xmm1
  mov    0x1b8(%rsp),%rax
  addsd  %xmm1,%xmm0
  cvtsd2ss %xmm0,%xmm0
  movss  %xmm0,(%rax)
L1200:
  mov    %r11,0xb0(%rsp)
  mov    %r10d,%esi
  mov    0x48(%rsp),%rdx
  lea    0x234(%rsp),%rcx
  mov    %r8,0xe0(%rsp)
  mov    0x10(%rsp),%rdi
  mov    %r10d,0x30(%rsp)
  mov    0x8(%rsp),%rax
  movaps %xmm3,0xd0(%rsp)
  movaps %xmm2,0xc0(%rsp)
  movss  %xmm4,0x90(%rsp)
  movss  %xmm5,0x58(%rsp)
  call   *%rax
  movss  0x58(%rsp),%xmm5
  mov    0x30(%rsp),%r10d
  mov    0xe0(%rsp),%r8
  mov    0xb0(%rsp),%r11
  movaps 0xc0(%rsp),%xmm2
  movaps 0xd0(%rsp),%xmm3
  movss  0x230(%rsp),%xmm0
  movss  0x90(%rsp),%xmm4
  minss  %xmm5,%xmm0
  movaps %xmm0,%xmm5
  movss  0x234(%rsp),%xmm0
  comiss %xmm5,%xmm0
  jbe    L194
  test   %r10d,%r10d
  jle    L591
  mov    0x138(%rsp),%rdx
  xor    %esi,%esi
  mov    %rbp,%rdi
  mov    %r11,0xe0(%rsp)
  mov    %r8,0x90(%rsp)
  mov    %r10d,0x58(%rsp)
  movaps %xmm3,0xc0(%rsp)
  movaps %xmm2,0xb0(%rsp)
  movss  %xmm4,0x30(%rsp)
  call   <memset@plt>
  test   %r13d,%r13d
  movss  0x30(%rsp),%xmm4
  mov    0x58(%rsp),%r10d
  mov    0x90(%rsp),%r8
  mov    0xe0(%rsp),%r11
  movaps 0xb0(%rsp),%xmm2
  movaps 0xc0(%rsp),%xmm3
  jle    L626
  mov    0x98(%rsp),%r9
  mov    %rbx,%rdi
  mov    %rbp,%rcx
  xor    %esi,%esi
  nopl   0x0(%rax)
L515:
  movss  (%rcx),%xmm0
  mov    %rdi,%rdx
  xor    %eax,%eax
  nopl   0x0(%rax)
L1496:
  addss  (%rdx),%xmm0
  add    $0x1,%eax
  add    %r9,%rdx
  movss  %xmm0,(%rcx)
  cmp    %eax,%r13d
  jne    L1496
  add    $0x1,%esi
  add    $0x4,%rcx
  add    $0x4,%rdi
  cmp    %esi,%r10d
  jne    L515
L626:
  cmpl   $0x2,0x38(%rsp)
  jbe    L1085
  movss  0xe8(%rsp),%xmm1
  mov    0x228(%rsp),%rdx
  mov    %rbp,%rax
  shufps $0x0,%xmm1,%xmm1
  cs nopw 0x0(%rax,%rax,1)
L1296:
  movups (%rax),%xmm0
  add    $0x10,%rax
  divps  %xmm1,%xmm0
  movups %xmm0,-0x10(%rax)
  cmp    %rdx,%rax
  jne    L1296
  mov    (%rsp),%eax
  mov    %eax,%edx
  cmp    %eax,%r10d
  je     L1555
L302:
  movss  0xe8(%rsp),%xmm7
  movslq %edx,%rax
  shl    $0x2,%rax
  lea    0x0(%rbp,%rax,1),%rcx
  movss  (%rcx),%xmm0
  divss  %xmm7,%xmm0
  movss  %xmm0,(%rcx)
  lea    0x1(%rdx),%ecx
  cmp    %ecx,%r10d
  jle    L1555
  lea    0x4(%rbp,%rax,1),%rcx
  add    $0x2,%edx
  movss  (%rcx),%xmm0
  divss  %xmm7,%xmm0
  movss  %xmm0,(%rcx)
  cmp    %r10d,%edx
  jge    L1555
  lea    0x8(%rbp,%rax,1),%rax
  movss  (%rax),%xmm0
  divss  %xmm7,%xmm0
  movss  %xmm0,(%rax)
L1555:
  test   %r13d,%r13d
  jle    L575
  mov    0x3c(%rsp),%r9d
  mov    %r12d,0xb0(%rsp)
  mov    %rbx,%rdx
  mov    %r13d,0x90(%rsp)
  imul   %r14d,%r9d
  mov    %r10d,0x30(%rsp)
  xor    %r10d,%r10d
  mov    %r8,0xc0(%rsp)
  mov    %r11,0xd0(%rsp)
  xor    %r11d,%r11d
  movslq %r9d,%rsi
  mov    %r14d,0x2a0(%rsp)
  mov    %r9d,%r8d
  mov    %rsi,%rax
  mov    %rsi,0x58(%rsp)
  lea    (%rbx,%rsi,4),%rdi
  mov    %rbx,%rsi
  neg    %rax
  shl    $0x2,%rax
  mov    %rax,%rcx
  sub    %rax,%rsi
  sub    %rbx,%rcx
  mov    %rsi,%rax
  xor    %esi,%esi
  sub    $0x4,%rcx
  mov    %rax,%r14
  mov    %rcx,0xe0(%rsp)
  nopl   0x0(%rax)
L1285:
  mov    0xe0(%rsp),%rax
  add    %rdx,%rax
  cmp    $0x8,%rax
  seta   %cl
  cmpl   $0x1,0x30(%rsp)
  setne  %al
  test   %al,%cl
  je     L1863
  mov    %rdx,%rax
  sub    0xa8(%rsp),%rax
  cmp    $0x8,%rax
  jbe    L1863
  cmpl   $0x2,0x38(%rsp)
  jbe    L810
  xor    %eax,%eax
  nopl   0x0(%rax)
L482:
  movups 0x0(%rbp,%rax,1),%xmm1
  movups (%rdi,%rax,1),%xmm7
  movups (%rdx,%rax,1),%xmm0
  addps  %xmm7,%xmm1
  subps  %xmm1,%xmm0
  movups %xmm0,(%rdx,%rax,1)
  add    $0x10,%rax
  cmp    %r15,%rax
  jne    L482
  mov    (%rsp),%eax
  cmp    %eax,0x30(%rsp)
  je     L1988
  mov    0x1f0(%rsp),%ecx
  mov    %ecx,%r12d
  cmp    $0x1,%ecx
  je     L1671
  mov    %eax,%ecx
L962:
  mov    0x58(%rsp),%r13
  movq   0x0(%rbp,%rcx,4),%xmm5
  lea    (%r10,%rcx,1),%r9
  lea    (%rbx,%r9,4),%r9
  add    %rcx,%r13
  movq   (%r9),%xmm0
  mov    %r12d,%ecx
  movq   (%rbx,%r13,4),%xmm1
  and    $0xfffffffe,%ecx
  add    %ecx,%eax
  addps  %xmm5,%xmm1
  subps  %xmm1,%xmm0
  movlps %xmm0,(%r9)
  cmp    %r12d,%ecx
  je     L1988
L1671:
  lea    (%rsi,%rax,1),%ecx
  movslq %ecx,%rcx
  lea    (%rbx,%rcx,4),%r9
  lea    (%rax,%r8,1),%ecx
  cltq
  movslq %ecx,%rcx
  movss  (%r9),%xmm0
  movss  (%rbx,%rcx,4),%xmm1
  addss  0x0(%rbp,%rax,4),%xmm1
  subss  %xmm1,%xmm0
  movss  %xmm0,(%r9)
L1988:
  add    $0x1,%r11d
  add    0x98(%rsp),%rdx
  add    0x2a0(%rsp),%esi
  add    0x88(%rsp),%r10
  cmp    %r11d,0x90(%rsp)
  jne    L1285
  mov    0xb0(%rsp),%r12d
  mov    0x30(%rsp),%r10d
  mov    0x90(%rsp),%r13d
  mov    0xc0(%rsp),%r8
  mov    0xd0(%rsp),%r11
  mov    0x2a0(%rsp),%r14d
L1095:
  mov    %r8,0xe0(%rsp)
  xor    %r9d,%r9d
  mov    %r11,0xb0(%rsp)
  mov    %r12d,0x30(%rsp)
  mov    %rbp,%r12
  mov    %r11,%rbp
  mov    %r13d,0x90(%rsp)
  mov    %r15,%r13
  mov    %rbx,%r15
  mov    %r9d,%ebx
  mov    %r14d,0x2a0(%rsp)
  mov    %r10d,%r14d
  movss  %xmm4,0x58(%rsp)
  movaps %xmm2,0xc0(%rsp)
  movaps %xmm3,0xd0(%rsp)
  nopl   0x0(%rax)
L1361:
  test   %r14d,%r14d
  jle    L99
  movslq %ebx,%rcx
  mov    %r12,%rsi
  lea    0x4(,%rcx,4),%rcx
  lea    (%r15,%rcx,1),%rdi
  sub    %rdi,%rsi
  cmp    $0x8,%rsi
  jbe    L615
  cmpb   $0x0,0x18(%rsp)
  je     L615
  lea    -0x4(%r15,%rcx,1),%rsi
  xor    %ecx,%ecx
  nopw   0x0(%rax,%rax,1)
L1152:
  movups (%rsi,%rcx,1),%xmm7
  movups %xmm7,(%r12,%rcx,1)
  add    $0x10,%rcx
  cmp    %r13,%rcx
  jne    L1152
  mov    (%rsp),%eax
  cmp    %eax,%r14d
  je     L99
  lea    (%rbx,%rax,1),%ecx
  mov    0xf8(%rsp),%rax
  movslq %ecx,%rcx
  movss  (%r15,%rcx,4),%xmm0
  movss  %xmm0,(%rax)
  mov    0x24(%rsp),%eax
  cmp    %eax,%r14d
  jle    L99
  lea    (%rbx,%rax,1),%ecx
  mov    0x110(%rsp),%rax
  movslq %ecx,%rcx
  movss  (%r15,%rcx,4),%xmm0
  movss  %xmm0,(%rax)
  mov    0x40(%rsp),%eax
  cmp    %eax,%r14d
  jle    L99
  lea    (%rbx,%rax,1),%ecx
  mov    0x120(%rsp),%rax
  movslq %ecx,%rcx
  movss  (%r15,%rcx,4),%xmm0
  movss  %xmm0,(%rax)
L99:
  mov    %rbp,%rcx
  mov    0x10(%rsp),%rdi
  mov    0x8(%rsp),%rax
  mov    %r12,%rdx
  mov    %r14d,%esi
  add    $0x4,%rbp
  call   *%rax
  add    0x2a0(%rsp),%ebx
  cmp    %rbp,0x80(%rsp)
  jne    L1361
  mov    %r15,%rbx
  mov    %r13,%r15
  mov    %r14d,%r10d
  mov    %r12,%rbp
  mov    0x90(%rsp),%r13d
  movss  0x58(%rsp),%xmm4
  mov    0x30(%rsp),%r12d
  mov    0xe0(%rsp),%r8
  mov    0xb0(%rsp),%r11
  mov    0x2a0(%rsp),%r14d
  movaps 0xc0(%rsp),%xmm2
  movaps 0xd0(%rsp),%xmm3
  cmp    $0x3,%r13d
  jg     L746
L624:
  xor    %eax,%eax
  pxor   %xmm0,%xmm0
  jmp    L927
L615:
  mov    0x100(%rsp),%rdx
  lea    -0x4(%r15,%rcx,1),%rdi
  xor    %ecx,%ecx
  nopl   (%rax)
L965:
  movss  (%rdi,%rcx,4),%xmm0
  mov    %rcx,%rax
  movss  %xmm0,(%r12,%rcx,4)
  add    $0x1,%rcx
  cmp    %rax,%rdx
  jne    L965
  jmp    L99
L1863:
  mov    0x100(%rsp),%r9
  xor    %eax,%eax
  xchg   %ax,%ax
L1831:
  movss  (%r14,%rax,4),%xmm1
  addss  0x0(%rbp,%rax,4),%xmm1
  mov    %rax,%rcx
  movss  (%rdx,%rax,4),%xmm0
  subss  %xmm1,%xmm0
  movss  %xmm0,(%rdx,%rax,4)
  add    $0x1,%rax
  cmp    %r9,%rcx
  jne    L1831
  jmp    L1988
L837:
  xor    %eax,%eax
  cmpb   $0x0,0x1f7(%rsp)
  je     L633
  mov    0x28(%rsp),%rdx
  mov    0x48(%rsp),%rcx
  movaps 0x1d0(%rsp),%xmm5
  movaps 0x1e0(%rsp),%xmm6
  nopl   (%rax)
L433:
  cvtps2pd (%rdx,%rax,1),%xmm0
  addpd  %xmm0,%xmm0
  movlps 0x8(%rdx,%rax,1),%xmm5
  cvtps2pd (%r8,%rax,1),%xmm1
  movlps 0x8(%r8,%rax,1),%xmm6
  cvtps2pd %xmm6,%xmm7
  subpd  %xmm1,%xmm0
  cvtps2pd %xmm5,%xmm1
  addpd  %xmm1,%xmm1
  subpd  %xmm7,%xmm1
  cvtpd2ps %xmm0,%xmm0
  cvtpd2ps %xmm1,%xmm1
  movlhps %xmm1,%xmm0
  movups %xmm0,(%rcx,%rax,1)
  add    $0x10,%rax
  cmp    %r15,%rax
  jne    L433
  movaps %xmm5,0x1d0(%rsp)
  movaps %xmm6,0x1e0(%rsp)
  cmp    (%rsp),%r10d
  je     L1545
  mov    0x160(%rsp),%rax
  pxor   %xmm0,%xmm0
  pxor   %xmm1,%xmm1
  cvtss2sd (%rax),%xmm0
  addsd  %xmm0,%xmm0
  mov    0x108(%rsp),%rax
  cvtss2sd (%rax),%xmm1
  mov    0x1a0(%rsp),%rax
  subsd  %xmm1,%xmm0
  cvtsd2ss %xmm0,%xmm0
  movss  %xmm0,(%rax)
  cmp    0x24(%rsp),%r10d
  jle    L1545
  mov    0x168(%rsp),%rax
  pxor   %xmm0,%xmm0
  pxor   %xmm1,%xmm1
  cvtss2sd (%rax),%xmm0
  addsd  %xmm0,%xmm0
  mov    0x118(%rsp),%rax
  cvtss2sd (%rax),%xmm1
  mov    0x1a8(%rsp),%rax
  subsd  %xmm1,%xmm0
  cvtsd2ss %xmm0,%xmm0
  movss  %xmm0,(%rax)
  cmp    0x40(%rsp),%r10d
  jle    L1545
  mov    0x170(%rsp),%rax
  pxor   %xmm0,%xmm0
  pxor   %xmm1,%xmm1
  cvtss2sd (%rax),%xmm0
  addsd  %xmm0,%xmm0
  mov    0x128(%rsp),%rax
  cvtss2sd (%rax),%xmm1
  mov    0x1b8(%rsp),%rax
  subsd  %xmm1,%xmm0
  cvtsd2ss %xmm0,%xmm0
  movss  %xmm0,(%rax)
L1545:
  mov    %r11,0xe0(%rsp)
  mov    %r10d,%esi
  mov    0x48(%rsp),%rdx
  lea    0x234(%rsp),%rcx
  mov    %r8,0x90(%rsp)
  mov    0x10(%rsp),%rdi
  mov    %r10d,0x30(%rsp)
  mov    0x8(%rsp),%rax
  movaps %xmm3,0xc0(%rsp)
  movaps %xmm2,0xb0(%rsp)
  movss  %xmm4,0x58(%rsp)
  call   *%rax
  movss  0x58(%rsp),%xmm4
  mov    0x30(%rsp),%r10d
  mov    0x90(%rsp),%r8
  mov    0xe0(%rsp),%r11
  movaps 0xb0(%rsp),%xmm2
  movaps 0xc0(%rsp),%xmm3
  movss  0x234(%rsp),%xmm0
  comiss %xmm4,%xmm0
  jb     L528
  movss  0x230(%rsp),%xmm1
  jmp    L1855
L194:
  test   %r10d,%r10d
  jle    L1247
L528:
  mov    %r14d,%ecx
  mov    0x48(%rsp),%rdi
  imul   %r12d,%ecx
  lea    0x4(%rdi),%rsi
  movslq %ecx,%rax
  lea    (%rbx,%rax,4),%rdx
  mov    %rdx,%rax
  sub    %rsi,%rax
  cmp    $0x8,%rax
  mov    $0x0,%eax
  jbe    L1390
  cmpb   $0x0,0x18(%rsp)
  je     L1390
  mov    %rdi,%rsi
  nopl   0x0(%rax,%rax,1)
L1650:
  movups (%rsi,%rax,1),%xmm7
  movups %xmm7,(%rdx,%rax,1)
  add    $0x10,%rax
  cmp    %r15,%rax
  jne    L1650
  mov    (%rsp),%eax
  cmp    %eax,%r10d
  je     L1247
  mov    0x1a0(%rsp),%rsi
  add    %ecx,%eax
  cltq
  movss  (%rsi),%xmm1
  movss  %xmm1,(%rbx,%rax,4)
  mov    0x24(%rsp),%eax
  cmp    %eax,%r10d
  jle    L1247
  mov    0x1a8(%rsp),%rdi
  add    %ecx,%eax
  cltq
  movss  (%rdi),%xmm1
  movss  %xmm1,(%rbx,%rax,4)
  mov    0x40(%rsp),%eax
  cmp    %eax,%r10d
  jle    L1247
  mov    0x1b8(%rsp),%rsi
  add    %ecx,%eax
  cltq
  movss  (%rsi),%xmm1
  movss  %xmm1,(%rbx,%rax,4)
L1247:
  movslq %r12d,%rax
  movss  %xmm0,(%r11,%rax,4)
  test   %r13d,%r13d
  jg     L1432
L575:
  pxor   %xmm1,%xmm1
  jmp    L471
L1655:
  movaps %xmm0,%xmm5
  divss  0xe8(%rsp),%xmm5
  jmp    L1065
L1358:
  mov    0x100(%rsp),%rsi
  mov    0xa0(%rsp),%rdi
  lea    (%rbx,%rdx,4),%rcx
  xor    %eax,%eax
  nopl   0x0(%rax)
L1779:
  movss  (%rcx,%rax,4),%xmm0
  mov    %rax,%rdx
  movss  %xmm0,(%rdi,%rax,4)
  add    $0x1,%rax
  cmp    %rdx,%rsi
  jne    L1779
  jmp    L918
L1753:
  mov    0x100(%rsp),%rcx
  mov    0x28(%rsp),%rsi
  lea    (%rbx,%rdx,4),%rdx
  xor    %eax,%eax
  xchg   %ax,%ax
L989:
  pxor   %xmm0,%xmm0
  pxor   %xmm1,%xmm1
  mov    %rax,%rdi
  cvtss2sd (%r8,%rax,4),%xmm0
  addsd  %xmm0,%xmm0
  cvtss2sd (%rdx,%rax,4),%xmm1
  subsd  %xmm1,%xmm0
  cvtsd2ss %xmm0,%xmm0
  movss  %xmm0,(%rsi,%rax,4)
  add    $0x1,%rax
  cmp    %rdi,%rcx
  jne    L989
  jmp    L792
L378:
  mov    0x60(%rsp),%rcx
  lea    -0x4(%r8,%rdx,1),%rdi
  xor    %edx,%edx
  nopl   0x0(%rax)
L1355:
  movss  (%rdi,%rdx,4),%xmm0
  mov    %rdx,%rax
  movss  %xmm0,0x0(%rbp,%rdx,4)
  add    $0x1,%rdx
  cmp    %rcx,%rax
  jne    L1355
  jmp    L524
L409:
  xor    %eax,%eax
  cs nopw 0x0(%rax,%rax,1)
L1308:
  movss  (%rbx,%rax,4),%xmm0
  addss  (%r12,%rax,4),%xmm0
  mov    %rax,%r11
  movss  %xmm0,(%r10,%rax,4)
  add    $0x1,%rax
  cmp    %r13,%r11
  jne    L1308
  jmp    L1223
L810:
  mov    0x30(%rsp),%r12d
  xor    %ecx,%ecx
  xor    %eax,%eax
  jmp    L962
L91:
  test   %r10d,%r10d
  jle    L538
  mov    %r14d,%ecx
  mov    0x28(%rsp),%rsi
  imul   %r12d,%ecx
  movslq %ecx,%rax
  lea    (%rbx,%rax,4),%rdx
  mov    %rdx,%rax
  sub    0x1c0(%rsp),%rax
  cmp    $0x8,%rax
  mov    $0x0,%eax
  jbe    L1695
  cmpb   $0x0,0x18(%rsp)
  je     L1695
L1227:
  movups (%rsi,%rax,1),%xmm7
  movups %xmm7,(%rdx,%rax,1)
  add    $0x10,%rax
  cmp    %r15,%rax
  jne    L1227
  mov    (%rsp),%eax
  cmp    %eax,%r10d
  je     L538
  mov    0x160(%rsp),%rsi
  add    %ecx,%eax
  cltq
  movss  (%rsi),%xmm0
  movss  %xmm0,(%rbx,%rax,4)
  mov    0x24(%rsp),%eax
  cmp    %eax,%r10d
  jle    L538
  mov    0x168(%rsp),%rsi
  add    %ecx,%eax
  cltq
  movss  (%rsi),%xmm0
  movss  %xmm0,(%rbx,%rax,4)
  mov    0x40(%rsp),%eax
  cmp    %eax,%r10d
  jle    L538
  mov    0x170(%rsp),%rdi
  add    %ecx,%eax
  cltq
  movss  (%rdi),%xmm0
  movss  %xmm0,(%rbx,%rax,4)
L538:
  movslq %r12d,%rax
  movaps %xmm1,%xmm5
  movss  %xmm1,(%r11,%rax,4)
  jmp    L228
L1695:
  movss  (%rsi,%rax,4),%xmm0
  mov    %rax,%rcx
  movss  %xmm0,(%rdx,%rax,4)
  add    $0x1,%rax
  cmp    %rcx,0x100(%rsp)
  jne    L1695
  jmp    L538
L1865:
  mov    0x238(%rsp),%rax
  sub    %fs:0x28,%rax
  jne    L1114
  add    $0x248,%rsp
  pop    %rbx
  pop    %rbp
  pop    %r12
  pop    %r13
  pop    %r14
  pop    %r15
  ret
L1751:
  mov    %r11,0xb0(%rsp)
  mov    %r10d,%esi
  mov    0x130(%rsp),%rcx
  mov    %r8,0xe0(%rsp)
  mov    0x28(%rsp),%rdx
  mov    %r10d,0x30(%rsp)
  mov    0x10(%rsp),%rdi
  movaps %xmm3,0xd0(%rsp)
  mov    0x8(%rsp),%rax
  movaps %xmm2,0xc0(%rsp)
  movss  %xmm4,0x90(%rsp)
  movss  %xmm5,0x58(%rsp)
  call   *%rax
  mov    0x30(%rsp),%r10d
  movss  0x58(%rsp),%xmm5
  mov    0xe0(%rsp),%r8
  mov    0xb0(%rsp),%r11
  movaps 0xc0(%rsp),%xmm2
  movaps 0xd0(%rsp),%xmm3
  movss  0x230(%rsp),%xmm1
  movss  0x90(%rsp),%xmm4
  comiss %xmm1,%xmm4
  jbe    L237
L2005:
  mov    %r11,0xe0(%rsp)
  mov    %r10d,%esi
  mov    0x48(%rsp),%rdx
  lea    0x234(%rsp),%rcx
  mov    %r8,0x90(%rsp)
  mov    0x10(%rsp),%rdi
  mov    %r10d,0x30(%rsp)
  mov    0x8(%rsp),%rax
  movaps %xmm3,0xc0(%rsp)
  movaps %xmm2,0xb0(%rsp)
  movss  %xmm4,0x58(%rsp)
  call   *%rax
  movss  0x58(%rsp),%xmm4
  mov    0x30(%rsp),%r10d
  mov    0x90(%rsp),%r8
  mov    0xe0(%rsp),%r11
  movaps 0xb0(%rsp),%xmm2
  movaps 0xc0(%rsp),%xmm3
  movss  0x234(%rsp),%xmm0
  comiss %xmm4,%xmm0
  jb     L1247
  movss  0x230(%rsp),%xmm1
  jmp    L1534
L1978:
  movsd  D46(%rip),%xmm1
  mov    0x48(%rsp),%rsi
  lea    (%rbx,%rdx,4),%rdx
  xor    %eax,%eax
  mov    0x100(%rsp),%rcx
L1797:
  pxor   %xmm0,%xmm0
  pxor   %xmm6,%xmm6
  mov    %rax,%rdi
  cvtss2sd (%rdx,%rax,4),%xmm0
  cvtss2sd (%r8,%rax,4),%xmm6
  mulsd  %xmm1,%xmm0
  mulsd  %xmm1,%xmm6
  addsd  %xmm6,%xmm0
  cvtsd2ss %xmm0,%xmm0
  movss  %xmm0,(%rsi,%rax,4)
  add    $0x1,%rax
  cmp    %rdi,%rcx
  jne    L1797
  jmp    L1200
L1674:
  movss  (%r11),%xmm1
  pxor   %xmm7,%xmm7
  mov    $0x1,%eax
  xor    %edx,%edx
  subss  %xmm5,%xmm1
  mulss  %xmm1,%xmm1
  addss  %xmm7,%xmm1
  jmp    L513
L1401:
  movaps %xmm0,%xmm5
  divss  0xe8(%rsp),%xmm5
  cmp    $0x3,%r13d
  jg     L1065
  xor    %eax,%eax
  pxor   %xmm1,%xmm1
  jmp    L1011
L1390:
  mov    0x100(%rsp),%rsi
  mov    0x48(%rsp),%rdi
L551:
  movss  (%rdi,%rax,4),%xmm1
  mov    %rax,%rcx
  movss  %xmm1,(%rdx,%rax,4)
  add    $0x1,%rax
  cmp    %rcx,%rsi
  jne    L551
  jmp    L1247
L1697:
  mov    0x28(%rsp),%rcx
L327:
  movss  (%rcx,%rax,4),%xmm0
  movss  %xmm0,(%rdx,%rax,4)
  add    $0x1,%rax
  cmp    %eax,%r10d
  jg     L327
  jmp    L1534
L633:
  mov    0x100(%rsp),%rdx
  mov    0x28(%rsp),%rcx
  mov    0x48(%rsp),%rsi
L1250:
  pxor   %xmm0,%xmm0
  pxor   %xmm1,%xmm1
  mov    %rax,%rdi
  cvtss2sd (%rcx,%rax,4),%xmm0
  addsd  %xmm0,%xmm0
  cvtss2sd (%r8,%rax,4),%xmm1
  subsd  %xmm1,%xmm0
  cvtsd2ss %xmm0,%xmm0
  movss  %xmm0,(%rsi,%rax,4)
  add    $0x1,%rax
  cmp    %rdx,%rdi
  jne    L1250
  jmp    L1545
L177:
  mov    %r14d,%r11d
  xor    %r10d,%r10d
  xor    %eax,%eax
  jmp    L1209
L1163:
  mov    %ebp,%eax
  jmp    L1015
L591:
  test   %r13d,%r13d
  jg     L1095
  jmp    L575
L1085:
  xor    %edx,%edx
  jmp    L302
L1217:
  mov    0xa0(%rsp),%rdi
  mov    %r14d,%edx
  xor    %eax,%eax
L77:
  movss  (%rdi,%rax,4),%xmm0
  movss  %xmm0,(%rbx,%rax,4)
  add    $0x1,%rax
  cmp    %rdx,%rax
  jne    L77
  jmp    L4
L1918:
  pxor   %xmm5,%xmm5
  sqrtsd %xmm1,%xmm1
  pxor   %xmm4,%xmm4
  mov    %r14d,%edx
  cvtsi2sd %r14d,%xmm5
  movsd  D122(%rip),%xmm0
  xor    %eax,%eax
  mov    0xa0(%rsp),%rcx
  cvtsi2ss %r14d,%xmm4
  mulss  D134(%rip),%xmm4
  addsd  %xmm1,%xmm5
  subsd  %xmm0,%xmm1
  cvtss2sd %xmm4,%xmm4
  subsd  %xmm0,%xmm5
L1441:
  pxor   %xmm0,%xmm0
  cvtss2sd (%rcx,%rax,4),%xmm0
  mulsd  %xmm5,%xmm0
  divsd  %xmm4,%xmm0
  cvtsd2ss %xmm0,%xmm0
  movss  %xmm0,0x0(%rbp,%rax,4)
  pxor   %xmm0,%xmm0
  cvtss2sd (%rcx,%rax,4),%xmm0
  mulsd  %xmm1,%xmm0
  divsd  %xmm4,%xmm0
  cvtsd2ss %xmm0,%xmm0
  movss  %xmm0,(%r12,%rax,4)
  add    $0x1,%rax
  cmp    %rdx,%rax
  jne    L1441
  movslq %r8d,%rax
  cmp    $0x1,%r13d
  jg     L1360
L1424:
  mov    %rax,0x88(%rsp)
  lea    0x4(%r12),%rax
  mov    %rax,0x70(%rsp)
  jne    L1615
  jmp    L998
  nopw   0x0(%rax,%rax,1)
L1756:
  pxor   %xmm4,%xmm4
  lea    0x4(%rbp),%rax
  cvtsi2ss %ecx,%xmm4
  mov    %rax,0xa8(%rsp)
  lea    -0x1(%rdi),%eax
  mov    %eax,0x38(%rsp)
  movss  %xmm4,0xe8(%rsp)
  jmp    L1350
L101:
  pxor   %xmm4,%xmm4
  mov    %r14d,%eax
  mov    %r15,0x40(%rsp)
  mov    %r13d,%r15d
  cvtsi2ss %r14d,%xmm4
  mov    %rax,0x18(%rsp)
  xor    %eax,%eax
  mov    %r11d,%r13d
  mov    %rbx,0x50(%rsp)
  mov    %rax,%rbx
  movss  %xmm4,0x24(%rsp)
  pxor   %xmm4,%xmm4
  cvtsi2sd %r14d,%xmm4
  movsd  %xmm4,0x30(%rsp)
L1574:
  mov    0xa0(%rsp),%rax
  movaps %xmm3,0x70(%rsp)
  movapd %xmm1,%xmm0
  pxor   %xmm3,%xmm3
  mov    %r8d,0x2a0(%rsp)
  cvtss2sd (%rax,%rbx,4),%xmm3
  movaps %xmm2,0x60(%rsp)
  movsd  %xmm3,(%rsp)
  movsd  %xmm1,0x58(%rsp)
  call   <sqrt@plt>
  addsd  0x30(%rsp),%xmm0
  movss  D134(%rip),%xmm4
  pxor   %xmm3,%xmm3
  mulss  0x24(%rsp),%xmm4
  subsd  D122(%rip),%xmm0
  mulsd  (%rsp),%xmm0
  movsd  0x58(%rsp),%xmm1
  mov    0xa0(%rsp),%rax
  cvtss2sd %xmm4,%xmm4
  movsd  %xmm4,0x80(%rsp)
  divsd  %xmm4,%xmm0
  cvtsd2ss %xmm0,%xmm0
  movss  %xmm0,0x0(%rbp,%rbx,4)
  movapd %xmm1,%xmm0
  cvtss2sd (%rax,%rbx,4),%xmm3
  movsd  %xmm3,(%rsp)
  call   <sqrt@plt>
  movsd  0x58(%rsp),%xmm1
  movaps 0x60(%rsp),%xmm2
  subsd  D122(%rip),%xmm0
  mulsd  (%rsp),%xmm0
  movsd  0x80(%rsp),%xmm4
  mov    0x2a0(%rsp),%r8d
  movaps 0x70(%rsp),%xmm3
  divsd  %xmm4,%xmm0
  cvtsd2ss %xmm0,%xmm0
  movss  %xmm0,(%r12,%rbx,4)
  add    $0x1,%rbx
  cmp    0x18(%rsp),%rbx
  jne    L1574
  lea    0x4(%rbp),%rax
  mov    %r13d,%r11d
  mov    0x50(%rsp),%rbx
  mov    %r15d,%r13d
  mov    %rax,0xa8(%rsp)
  mov    0x40(%rsp),%r15
  jmp    L1350
L1114:
  call   <__stack_chk_fail@plt>
```

tool_calls: name: read_data
arguments: tag: D0
type: f32[4]
name: read_data
arguments: tag: D134
type: byte[16]
name: read_data
arguments: tag: D122
type: f64
name: read_data
arguments: tag: D140
type: byte[8]
name: read_data
arguments: tag: D3
type: dword[4]
name: read_data
arguments: tag: D46
type: f64[2]

tool: {"D0": [0.0,-1.875,0.0,-1.875]}

tool: {"D134": [0xf3,0x04,0xb5,0x3f,0xf3,0x04,0xb5,0x3f,0xf3,0x04,0xb5,0x3f,0xf3,0x04,0xb5,0x3f]}

tool: D122: 1

tool: {"D140": [0x23,0x42,0x92,0x0c,0xa1,0x9c,0xc7,0x3b]}

tool: {"D3": [0x7fffffff,0x00000000,0x00000000,0x00000000]}

tool: {"D46": [0.5,0.5]}

assistant: ```c
void simplx(int n, float *x, float *f, float tol, int iw, float *xn, float *pdash, float *pastx, float *pdastx, float *y, float *p, int ldp, void (*funct)(void *, int, float *, float *), void *data, int maxcal) {
  float yerr, yerrold = 0.0, yh, yl, yast, ydast, fm, sqrt2;
  int iyhigh, iylow;
  int i, j, icount = 0;
  for (i = 0; i < n; i++)
    (p[(0) * ldp + (i)]) = x[i];
  sqrt2 = sqrt(2);
  for (i = 0; i < n; i++) {
    xn[i] = x[i] * (sqrt((float)iw) + n - 1) / (sqrt2 * n);
    pdash[i] = x[i] * (sqrt((float)iw) - 1.0) / (sqrt2 * n);
  }
  for (i = 1; i < iw; i++) {
    for (j = 0; j < n; j++)
      (p[(i)*ldp + (j)]) = (p[(0) * ldp + (j)]) + pdash[j];
    (p[(i)*ldp + (i - 1)]) += xn[i - 1];
  }
  for (i = 0; i < iw; i++) {
    for (j = 0; j < n; j++)
      xn[j] = (p[(i)*ldp + (j)]);
    funct(data, n, xn, &(y[i]));
  }
L110:
  yh = y[0];
  yl = y[0];
  for (i = 0; i < iw; i++) {
    if (yh <= y[i]) {
      yh = y[i];
      iyhigh = i;
    }
    if (yl >= y[i]) {
      yl = y[i];
      iylow = i;
    }
  }
  for (i = 0; i < n; i++)
    xn[i] = 0.0;
  for (i = 0; i < n; i++)
    for (j = 0; j < iw; j++)
      if (j != iyhigh)
        xn[i] += (p[(j)*ldp + (i)]);
  for (i = 0; i < n; i++)
    pdash[i] = xn[i] / (float)n;
  for (i = 0; i < n; i++)
    pastx[i] = 2.0 * pdash[i] - (p[(iyhigh)*ldp + (i)]);
  funct(data, n, pastx, &yast);
  if (yast < yl)
    goto L1000;
  for (i = 0; i < iw; i++) {
    if (i == iyhigh)
      break;
    if (yast < y[i])
      goto L2030;
  }
  goto L3000;
L2030:
  for (i = 0; i < n; i++)
    (p[(iyhigh)*ldp + (i)]) = pastx[i];
  y[iyhigh] = yast;
L2040:
  fm = 0.0;
  for (i = 0; i < iw; i++)
    fm += y[i];
  fm /= (float)iw;
  yerr = 0.0;
  for (i = 0; i < iw; i++)
    yerr += (y[i] - fm) * (y[i] - fm);
  yerr /= (float)iw;
  for (i = 0; i < n; i++)
    x[i] = (p[(iylow)*ldp + (i)]);
  *f = yl;
  if (yerr < tol)
    return;
  if (fabs(yerr - yerrold) < 1.e-20)
    return;
  yerrold = yerr;
  icount++;
  if (icount == maxcal)
    return;
  goto L110;
L1000:
  for (i = 0; i < n; i++)
    pdastx[i] = 2.0 * pastx[i] - pdash[i];
  funct(data, n, pdastx, &ydast);
  if (ydast >= yl)
    goto L2030;
L1030:
  for (i = 0; i < n; i++)
    (p[(iyhigh)*ldp + (i)]) = pdastx[i];
  y[iyhigh] = ydast;
  goto L2040;
L3000:
  if (yast <= yh) {
    for (i = 0; i < n; i++)
      (p[(iyhigh)*ldp + (i)]) = pastx[i];
    yh = yast;
    y[iyhigh] = yh;
  }
  for (i = 0; i < n; i++)
    pdastx[i] = 0.5 * (p[(iyhigh)*ldp + (i)]) + 0.5 * pdash[i];
  funct(data, n, pdastx, &ydast);
  if (ydast > ((((yast) < (yh)) ? (yast) : (yh)))) {
    for (i = 0; i < n; i++)
      xn[i] = 0.0;
    for (j = 0; j < n; j++)
      for (i = 0; i < iw; i++)
        xn[j] += (p[(i)*ldp + (j)]);
    for (i = 0; i < n; i++)
      xn[i] /= (float)iw;
    for (j = 0; j < iw; j++)
      for (i = 0; i < n; i++)
        (p[(j)*ldp + (i)]) -= xn[i] + (p[(iylow)*ldp + (i)]);
    for (j = 0; j < iw; j++) {
      for (i = 0; i < n; i++)
        xn[i] = (p[(j)*ldp + (i)]);
      funct(data, n, xn, &(y[j]));
    }
  } else
    goto L1030;
  goto L2040;
}
```