user: Converte this assembly snippet into its equivalent C code:

```asm
<fk2mtg>:
  endbr64
  push   %r15
  cvtss2sd %xmm0,%xmm0
  pxor   %xmm1,%xmm1
  mov    %rsi,%r15
  push   %r14
  mov    %rdx,%r14
  push   %r13
  push   %r12
  push   %rbp
  push   %rbx
  mov    %edi,%ebx
  sub    $0x108,%rsp
  mulsd  D459(%rip),%xmm0
  mov    %rdx,(%rsp)
  movaps %xmm11,0x40(%rsp)
  movaps %xmm9,0x20(%rsp)
  movaps %xmm14,0x80(%rsp)
  movaps %xmm13,0x70(%rsp)
  cvtsd2ss %xmm0,%xmm1
  cvttss2si %xmm1,%ebp
  movaps %xmm12,0x60(%rsp)
  movss  %xmm1,0xc(%rsp)
  mov    %ebp,%edi
  call   <sin@plt>
  mov    %ebp,%edi
  movss  %xmm0,0x30(%rsp)
  call   <cos@plt>
  movss  0xc(%rsp),%xmm1
  movss  %xmm0,0x18(%rsp)
  addss  %xmm1,%xmm1
  cvttss2si %xmm1,%ebp
  mov    %ebp,%edi
  call   <sin@plt>
  mov    %ebp,%edi
  movss  %xmm0,0x10(%rsp)
  call   <cos@plt>
  test   %ebx,%ebx
  jle    L1116
  mov    (%r14),%rax
  mov    0x48(%r15),%rsi
  lea    -0x1(%rbx),%edx
  movaps %xmm0,%xmm10
  cmp    $0x2,%edx
  mov    (%r15),%rdi
  mov    0x30(%r15),%rcx
  mov    %edx,0xc(%rsp)
  lea    0x4(%rsi),%r14
  mov    %rax,%rdx
  seta   %r11b
  mov    %rax,%r8
  sub    %r14,%rdx
  lea    0x4(%rdi),%r9
  lea    0x4(%rcx),%r10
  mov    %r14,0x38(%rsp)
  cmp    $0x8,%rdx
  mov    %r9,0x50(%rsp)
  movss  0x10(%rsp),%xmm8
  seta   %dl
  sub    %r9,%r8
  mov    %r10,0x58(%rsp)
  movss  0x18(%rsp),%xmm4
  and    %r11d,%edx
  cmp    $0x8,%r8
  movss  0x30(%rsp),%xmm7
  movaps 0x20(%rsp),%xmm9
  seta   %r8b
  movaps 0x40(%rsp),%xmm11
  test   %r8b,%dl
  je     L318
  mov    %rax,%rdx
  sub    %r10,%rdx
  cmp    $0x8,%rdx
  jbe    L318
  mov    %ebx,%r8d
  movaps D380(%rip),%xmm6
  movaps %xmm0,%xmm5
  xor    %edx,%edx
  shr    $0x2,%r8d
  movaps 0x60(%rsp),%xmm12
  shufps $0x0,%xmm5,%xmm5
  movapd D368(%rip),%xmm3
  movaps 0x70(%rsp),%xmm13
  movapd D114(%rip),%xmm2
  shl    $0x4,%r8
  movd   %xmm0,%r9d
  movaps 0x80(%rsp),%xmm14
  nopw   0x0(%rax,%rax,1)
L939:
  cvtps2pd (%rsi,%rdx,1),%xmm0
  cvtps2pd (%rdi,%rdx,1),%xmm1
  divpd  %xmm3,%xmm0
  movups (%rcx,%rdx,1),%xmm15
  movlps 0x8(%rsi,%rdx,1),%xmm12
  movlps 0x8(%rdi,%rdx,1),%xmm13
  mulps  %xmm5,%xmm15
  cvtps2pd %xmm13,%xmm10
  mulps  %xmm6,%xmm15
  movhlps %xmm15,%xmm14
  divpd  %xmm2,%xmm1
  divpd  %xmm2,%xmm10
  subpd  %xmm1,%xmm0
  cvtps2pd %xmm15,%xmm1
  cvtps2pd %xmm14,%xmm15
  subpd  %xmm1,%xmm0
  cvtps2pd %xmm12,%xmm1
  cvtpd2ps %xmm0,%xmm0
  divpd  %xmm3,%xmm1
  subpd  %xmm10,%xmm1
  subpd  %xmm15,%xmm1
  cvtpd2ps %xmm1,%xmm1
  movlhps %xmm1,%xmm0
  movups %xmm0,(%rax,%rdx,1)
  add    $0x10,%rdx
  cmp    %rdx,%r8
  jne    L939
  mov    %ebx,%r8d
  mov    %ebx,%edx
  movd   %r9d,%xmm10
  mov    %rdx,0x18(%rsp)
  and    $0xfffffffc,%r8d
  test   $0x3,%bl
  je     L701
  movsd  D368(%rip),%xmm2
  mov    %r8d,%r9d
  pxor   %xmm5,%xmm5
  pxor   %xmm0,%xmm0
  movsd  D114(%rip),%xmm1
  cvtss2sd (%rsi,%r9,4),%xmm5
  cvtss2sd (%rdi,%r9,4),%xmm0
  movss  (%rcx,%r9,4),%xmm3
  divsd  %xmm2,%xmm5
  lea    0x0(,%r9,4),%rdx
  mulss  %xmm10,%xmm3
  divsd  %xmm1,%xmm0
  subsd  %xmm0,%xmm5
  movss  D380(%rip),%xmm0
  mulss  %xmm0,%xmm3
  cvtss2sd %xmm3,%xmm3
  subsd  %xmm3,%xmm5
  cvtsd2ss %xmm5,%xmm5
  movss  %xmm5,(%rax,%r9,4)
  lea    0x1(%r8),%r9d
  cmp    %ebx,%r9d
  jge    L701
  pxor   %xmm5,%xmm5
  pxor   %xmm3,%xmm3
  add    $0x2,%r8d
  cvtss2sd 0x4(%rsi,%rdx,1),%xmm5
  cvtss2sd 0x4(%rdi,%rdx,1),%xmm3
  divsd  %xmm2,%xmm5
  divsd  %xmm1,%xmm3
  subsd  %xmm3,%xmm5
  movss  0x4(%rcx,%rdx,1),%xmm3
  mulss  %xmm10,%xmm3
  mulss  %xmm0,%xmm3
  cvtss2sd %xmm3,%xmm3
  subsd  %xmm3,%xmm5
  cvtsd2ss %xmm5,%xmm5
  movss  %xmm5,0x4(%rax,%rdx,1)
  cmp    %r8d,%ebx
  jle    L701
  pxor   %xmm3,%xmm3
  cvtss2sd 0x8(%rsi,%rdx,1),%xmm3
  divsd  %xmm2,%xmm3
  pxor   %xmm2,%xmm2
  cvtss2sd 0x8(%rdi,%rdx,1),%xmm2
  divsd  %xmm1,%xmm2
  movss  0x8(%rcx,%rdx,1),%xmm1
  mulss  %xmm10,%xmm1
  mulss  %xmm1,%xmm0
  cvtss2sd %xmm0,%xmm0
  subsd  %xmm2,%xmm3
  subsd  %xmm0,%xmm3
  cvtsd2ss %xmm3,%xmm3
  movss  %xmm3,0x8(%rax,%rdx,1)
L701:
  mov    (%rsp),%rax
  mov    0x50(%r15),%r8
  mov    0x8(%r15),%r9
  mov    0x38(%r15),%rdx
  mov    0x8(%rax),%rax
  lea    0x4(%r8),%r14
  lea    0x4(%r9),%rbp
  lea    0x4(%rdx),%r12
  mov    %r14,0x30(%rsp)
  mov    %rax,%r10
  mov    %rbp,0x20(%rsp)
  sub    %r14,%r10
  mov    %r12,0x40(%rsp)
  cmp    $0x8,%r10
  seta   %r10b
  and    %r11d,%r10d
  mov    %rax,%r11
  sub    %rbp,%r11
  cmp    $0x8,%r11
  seta   %r11b
  test   %r11b,%r10b
  je     L212
  mov    %rax,%r10
  sub    %r12,%r10
  cmp    $0x8,%r10
  jbe    L212
  mov    %ebx,%r11d
  movaps D380(%rip),%xmm6
  movapd D368(%rip),%xmm3
  movaps %xmm10,%xmm13
  shr    $0x2,%r11d
  xor    %r10d,%r10d
  movapd D114(%rip),%xmm2
  movaps 0x90(%rsp),%xmm5
  shl    $0x4,%r11
  movd   %xmm10,%r14d
  shufps $0x0,%xmm13,%xmm13
  movaps 0xa0(%rsp),%xmm12
  movaps 0xb0(%rsp),%xmm14
  nopl   0x0(%rax)
L1424:
  cvtps2pd (%r8,%r10,1),%xmm0
  cvtps2pd (%r9,%r10,1),%xmm1
  divpd  %xmm3,%xmm0
  movups (%rdx,%r10,1),%xmm15
  movlps 0x8(%r8,%r10,1),%xmm5
  movlps 0x8(%r9,%r10,1),%xmm12
  mulps  %xmm13,%xmm15
  cvtps2pd %xmm12,%xmm10
  mulps  %xmm6,%xmm15
  movhlps %xmm15,%xmm14
  divpd  %xmm2,%xmm1
  divpd  %xmm2,%xmm10
  subpd  %xmm1,%xmm0
  cvtps2pd %xmm15,%xmm1
  cvtps2pd %xmm14,%xmm15
  subpd  %xmm1,%xmm0
  cvtps2pd %xmm5,%xmm1
  cvtpd2ps %xmm0,%xmm0
  divpd  %xmm3,%xmm1
  subpd  %xmm10,%xmm1
  subpd  %xmm15,%xmm1
  cvtpd2ps %xmm1,%xmm1
  movlhps %xmm1,%xmm0
  movups %xmm0,(%rax,%r10,1)
  add    $0x10,%r10
  cmp    %r10,%r11
  jne    L1424
  mov    %ebx,%r11d
  movd   %r14d,%xmm10
  and    $0xfffffffc,%r11d
  test   $0x3,%bl
  je     L455
  movsd  D368(%rip),%xmm2
  mov    %r11d,%ebp
  pxor   %xmm3,%xmm3
  pxor   %xmm0,%xmm0
  movsd  D114(%rip),%xmm1
  cvtss2sd (%r8,%rbp,4),%xmm3
  cvtss2sd (%r9,%rbp,4),%xmm0
  movss  (%rdx,%rbp,4),%xmm5
  divsd  %xmm2,%xmm3
  lea    0x0(,%rbp,4),%r10
  mulss  %xmm10,%xmm5
  divsd  %xmm1,%xmm0
  subsd  %xmm0,%xmm3
  movss  D380(%rip),%xmm0
  mulss  %xmm0,%xmm5
  cvtss2sd %xmm5,%xmm5
  subsd  %xmm5,%xmm3
  cvtsd2ss %xmm3,%xmm3
  movss  %xmm3,(%rax,%rbp,4)
  lea    0x1(%r11),%ebp
  cmp    %ebp,%ebx
  jle    L455
  pxor   %xmm3,%xmm3
  pxor   %xmm5,%xmm5
  add    $0x2,%r11d
  cvtss2sd 0x4(%r8,%r10,1),%xmm3
  cvtss2sd 0x4(%r9,%r10,1),%xmm5
  divsd  %xmm2,%xmm3
  divsd  %xmm1,%xmm5
  subsd  %xmm5,%xmm3
  movss  0x4(%rdx,%r10,1),%xmm5
  mulss  %xmm10,%xmm5
  mulss  %xmm0,%xmm5
  cvtss2sd %xmm5,%xmm5
  subsd  %xmm5,%xmm3
  cvtsd2ss %xmm3,%xmm3
  movss  %xmm3,0x4(%rax,%r10,1)
  cmp    %ebx,%r11d
  jge    L455
  pxor   %xmm3,%xmm3
  cvtss2sd 0x8(%r8,%r10,1),%xmm3
  divsd  %xmm2,%xmm3
  pxor   %xmm2,%xmm2
  cvtss2sd 0x8(%r9,%r10,1),%xmm2
  divsd  %xmm1,%xmm2
  subsd  %xmm2,%xmm3
  movss  0x8(%rdx,%r10,1),%xmm2
  mulss  %xmm10,%xmm2
  movapd %xmm3,%xmm1
  mulss  %xmm0,%xmm2
  pxor   %xmm0,%xmm0
  cvtss2sd %xmm2,%xmm2
  subsd  %xmm2,%xmm1
  cvtsd2ss %xmm1,%xmm0
  movss  %xmm0,0x8(%rax,%r10,1)
L455:
  mov    (%rsp),%r14
  mov    0x40(%r15),%rax
  cmp    $0x1,%ebx
  mov    0x10(%r14),%r12
  lea    0x4(%rax),%r11
  setne  %r14b
  mov    %r11,0x10(%rsp)
  mov    %r12,%r10
  sub    %r11,%r10
  cmp    $0x8,%r10
  jbe    L1128
  test   %r14b,%r14b
  je     L1128
L422:
  mov    %ebx,%r11d
  movaps D512(%rip),%xmm1
  movaps %xmm8,%xmm2
  xor    %r10d,%r10d
  shr    $0x2,%r11d
  shufps $0x0,%xmm2,%xmm2
  shl    $0x4,%r11
  nopw   0x0(%rax,%rax,1)
L1542:
  movups (%rax,%r10,1),%xmm0
  xorps  %xmm1,%xmm0
  mulps  %xmm2,%xmm0
  mulps  %xmm6,%xmm0
  movups %xmm0,(%r12,%r10,1)
  add    $0x10,%r10
  cmp    %r11,%r10
  jne    L1542
  mov    %ebx,%r11d
  and    $0xfffffffc,%r11d
  mov    %r11d,%r10d
  cmp    %ebx,%r11d
  je     L819
  mov    %ebx,%ebp
  sub    %r11d,%ebp
  cmp    $0x1,%ebp
  je     L612
L1066:
  movq   (%rax,%r11,4),%xmm0
  movaps %xmm8,%xmm1
  movq   D512(%rip),%xmm6
  shufps $0xe0,%xmm1,%xmm1
  xorps  %xmm6,%xmm0
  mulps  %xmm1,%xmm0
  movq   D380(%rip),%xmm1
  mulps  %xmm1,%xmm0
  movlps %xmm0,(%r12,%r11,4)
  mov    %ebp,%r11d
  and    $0xfffffffe,%r11d
  add    %r11d,%r10d
  cmp    %r11d,%ebp
  je     L819
L612:
  movslq %r10d,%r10
  movss  D380(%rip),%xmm0
  movss  (%rax,%r10,4),%xmm1
  xorps  D107(%rip),%xmm1
  mulss  %xmm8,%xmm1
  mulss  %xmm0,%xmm1
  movss  %xmm1,(%r12,%r10,4)
L819:
  mov    $0x1,%r14d
L1341:
  mov    (%rsp),%r11
  mov    0x18(%r11),%r11
  mov    %r11,%r10
  sub    0x58(%rsp),%r10
  cmp    $0x8,%r10
  jbe    L750
  test   %r14b,%r14b
  je     L750
  cmpl   $0x2,0xc(%rsp)
  jbe    L1062
  mov    %ebx,%ebp
  movaps D512(%rip),%xmm1
  movaps %xmm8,%xmm2
  xor    %r10d,%r10d
  shr    $0x2,%ebp
  shufps $0x0,%xmm2,%xmm2
  shl    $0x4,%rbp
  xchg   %ax,%ax
L17:
  movups (%rcx,%r10,1),%xmm0
  xorps  %xmm1,%xmm0
  mulps  %xmm2,%xmm0
  movups %xmm0,(%r11,%r10,1)
  add    $0x10,%r10
  cmp    %r10,%rbp
  jne    L17
  mov    %ebx,%ebp
  and    $0xfffffffc,%ebp
  mov    %ebp,%r10d
  cmp    %ebx,%ebp
  je     L1075
  mov    %ebx,%r13d
  sub    %ebp,%r13d
  cmp    $0x1,%r13d
  je     L1293
L119:
  movq   (%rcx,%rbp,4),%xmm0
  movaps %xmm8,%xmm1
  movq   D512(%rip),%xmm6
  shufps $0xe0,%xmm1,%xmm1
  xorps  %xmm6,%xmm0
  mulps  %xmm1,%xmm0
  movlps %xmm0,(%r11,%rbp,4)
  mov    %r13d,%ebp
  and    $0xfffffffe,%ebp
  add    %ebp,%r10d
  cmp    %ebp,%r13d
  je     L1075
L1293:
  movslq %r10d,%r10
  movss  (%rcx,%r10,4),%xmm0
  xorps  D107(%rip),%xmm0
  mulss  %xmm8,%xmm0
  movss  %xmm0,(%r11,%r10,4)
L1075:
  mov    (%rsp),%r11
  mov    0x20(%r11),%r11
  mov    %r11,%r10
  sub    0x40(%rsp),%r10
  cmp    $0x8,%r10
  jbe    L1150
  test   %r14b,%r14b
  je     L1150
  cmpl   $0x2,0xc(%rsp)
  jbe    L1025
  mov    %ebx,%ebp
  movaps D512(%rip),%xmm1
  movaps %xmm8,%xmm2
  xor    %r10d,%r10d
  shr    $0x2,%ebp
  shufps $0x0,%xmm2,%xmm2
  shl    $0x4,%rbp
  nopl   0x0(%rax,%rax,1)
L1384:
  movups (%rdx,%r10,1),%xmm0
  xorps  %xmm1,%xmm0
  mulps  %xmm2,%xmm0
  movups %xmm0,(%r11,%r10,1)
  add    $0x10,%r10
  cmp    %r10,%rbp
  jne    L1384
  mov    %ebx,%ebp
  and    $0xfffffffc,%ebp
  mov    %ebp,%r10d
  cmp    %ebx,%ebp
  je     L275
  mov    %ebx,%r13d
  sub    %ebp,%r13d
  cmp    $0x1,%r13d
  je     L1394
L49:
  movq   (%rdx,%rbp,4),%xmm0
  movaps %xmm8,%xmm1
  movq   D512(%rip),%xmm6
  shufps $0xe0,%xmm1,%xmm1
  xorps  %xmm6,%xmm0
  mulps  %xmm1,%xmm0
  movlps %xmm0,(%r11,%rbp,4)
  mov    %r13d,%ebp
  and    $0xfffffffe,%ebp
  add    %ebp,%r10d
  cmp    %ebp,%r13d
  je     L275
L1394:
  movslq %r10d,%r10
  movss  (%rdx,%r10,4),%xmm0
  xorps  D107(%rip),%xmm0
  mulss  %xmm8,%xmm0
  movss  %xmm0,(%r11,%r10,4)
L275:
  mov    (%rsp),%r11
  mov    0x28(%r11),%r11
  mov    %r11,%r10
  sub    0x10(%rsp),%r10
  cmp    $0x8,%r10
  jbe    L1566
  test   %r14b,%r14b
  je     L1566
  cmpl   $0x2,0xc(%rsp)
  jbe    L1393
  mov    %ebx,%ebp
  movaps %xmm10,%xmm1
  xor    %r10d,%r10d
  shr    $0x2,%ebp
  shufps $0x0,%xmm1,%xmm1
  shl    $0x4,%rbp
  nopl   0x0(%rax)
L50:
  movups (%rax,%r10,1),%xmm0
  mulps  %xmm1,%xmm0
  movups %xmm0,(%r11,%r10,1)
  add    $0x10,%r10
  cmp    %rbp,%r10
  jne    L50
  mov    %ebx,%ebp
  and    $0xfffffffc,%ebp
  mov    %ebp,%r10d
  cmp    %ebx,%ebp
  je     L250
  mov    %ebx,%r13d
  sub    %ebp,%r13d
  cmp    $0x1,%r13d
  je     L1058
L304:
  movq   (%rax,%rbp,4),%xmm0
  movaps %xmm10,%xmm1
  shufps $0xe0,%xmm1,%xmm1
  mulps  %xmm1,%xmm0
  movlps %xmm0,(%r11,%rbp,4)
  mov    %r13d,%ebp
  and    $0xfffffffe,%ebp
  add    %ebp,%r10d
  cmp    %ebp,%r13d
  je     L250
L1058:
  movslq %r10d,%r10
  movss  (%rax,%r10,4),%xmm0
  mulss  %xmm10,%xmm0
  movss  %xmm0,(%r11,%r10,4)
L250:
  mov    (%rsp),%rax
  mov    0x18(%r15),%r10
  mov    0x30(%rax),%r11
  lea    0x4(%r10),%rax
  mov    %rax,0x80(%rsp)
  mov    %r11,%rbp
  sub    %rax,%rbp
  cmp    $0x8,%rbp
  jbe    L1319
  test   %r14b,%r14b
  je     L1319
  cmpl   $0x2,0xc(%rsp)
  jbe    L528
  mov    %ebx,%ebp
  movaps D512(%rip),%xmm1
  movaps %xmm4,%xmm2
  xor    %eax,%eax
  shr    $0x2,%ebp
  shufps $0x0,%xmm2,%xmm2
  shl    $0x4,%rbp
  nopw   0x0(%rax,%rax,1)
L1470:
  movups (%r10,%rax,1),%xmm0
  xorps  %xmm1,%xmm0
  mulps  %xmm2,%xmm0
  movups %xmm0,(%r11,%rax,1)
  add    $0x10,%rax
  cmp    %rbp,%rax
  jne    L1470
  mov    %ebx,%ebp
  and    $0xfffffffc,%ebp
  mov    %ebp,%eax
  cmp    %ebx,%ebp
  je     L9
  mov    %ebx,%r13d
  sub    %ebp,%r13d
  cmp    $0x1,%r13d
  je     L1586
L687:
  movq   (%r10,%rbp,4),%xmm0
  movaps %xmm4,%xmm1
  movq   D512(%rip),%xmm6
  shufps $0xe0,%xmm1,%xmm1
  xorps  %xmm6,%xmm0
  mulps  %xmm1,%xmm0
  movlps %xmm0,(%r11,%rbp,4)
  mov    %r13d,%ebp
  and    $0xfffffffe,%ebp
  add    %ebp,%eax
  cmp    %ebp,%r13d
  je     L9
L1586:
  cltq
  movss  (%r10,%rax,4),%xmm0
  xorps  D107(%rip),%xmm0
  mulss  %xmm4,%xmm0
  movss  %xmm0,(%r11,%rax,4)
L9:
  mov    (%rsp),%rax
  mov    0x20(%r15),%r11
  mov    0x38(%rax),%rbp
  lea    0x4(%r11),%rax
  mov    %rax,0x70(%rsp)
  mov    %rbp,%r13
  sub    %rax,%r13
  cmp    $0x8,%r13
  jbe    L141
  test   %r14b,%r14b
  je     L141
  cmpl   $0x2,0xc(%rsp)
  jbe    L1465
  mov    %ebx,%r13d
  movaps D512(%rip),%xmm1
  movaps %xmm4,%xmm2
  xor    %eax,%eax
  shr    $0x2,%r13d
  shufps $0x0,%xmm2,%xmm2
  shl    $0x4,%r13
  nopw   0x0(%rax,%rax,1)
L1276:
  movups (%r11,%rax,1),%xmm0
  xorps  %xmm1,%xmm0
  mulps  %xmm2,%xmm0
  movups %xmm0,0x0(%rbp,%rax,1)
  add    $0x10,%rax
  cmp    %rax,%r13
  jne    L1276
  mov    %ebx,%r13d
  and    $0xfffffffc,%r13d
  mov    %r13d,%eax
  cmp    %ebx,%r13d
  je     L361
  mov    %ebx,%r14d
  sub    %r13d,%r14d
  cmp    $0x1,%r14d
  je     L625
L99:
  movq   (%r11,%r13,4),%xmm0
  movaps %xmm4,%xmm1
  movq   D512(%rip),%xmm6
  shufps $0xe0,%xmm1,%xmm1
  xorps  %xmm6,%xmm0
  mulps  %xmm1,%xmm0
  movlps %xmm0,0x0(%rbp,%r13,4)
  mov    %r14d,%r13d
  and    $0xfffffffe,%r13d
  add    %r13d,%eax
  cmp    %r13d,%r14d
  je     L361
L625:
  cltq
  movss  (%r11,%rax,4),%xmm0
  xorps  D107(%rip),%xmm0
  mulss  %xmm4,%xmm0
  movss  %xmm0,0x0(%rbp,%rax,4)
L361:
  mov    (%rsp),%rax
  mov    0x28(%r15),%rbp
  cmp    $0x1,%ebx
  setg   0x10(%rsp)
  movzbl 0x10(%rsp),%r14d
  mov    0x40(%rax),%r13
  lea    0x4(%rbp),%rax
  mov    %rax,0x60(%rsp)
  mov    %r13,%r15
  sub    %rax,%r15
  cmp    $0x8,%r15
  jbe    L463
  test   %r14b,%r14b
  je     L463
  test   %ebx,%ebx
  mov    $0x1,%r14d
  cmovg  %ebx,%r14d
  cmp    $0x3,%ebx
  jle    L958
  mov    %r14d,%r15d
  movaps D512(%rip),%xmm1
  movaps %xmm7,%xmm2
  xor    %eax,%eax
  shr    $0x2,%r15d
  shufps $0x0,%xmm2,%xmm2
  shl    $0x4,%r15
  nopl   0x0(%rax)
L16:
  movups 0x0(%rbp,%rax,1),%xmm0
  xorps  %xmm1,%xmm0
  mulps  %xmm2,%xmm0
  movups %xmm0,0x0(%r13,%rax,1)
  add    $0x10,%rax
  cmp    %rax,%r15
  jne    L16
  mov    %r14d,%r15d
  and    $0xfffffffc,%r15d
  mov    %r15d,%eax
  cmp    %r15d,%r14d
  je     L1492
L575:
  sub    %r15d,%r14d
  cmp    $0x1,%r14d
  je     L1510
  movq   0x0(%rbp,%r15,4),%xmm0
  movaps %xmm7,%xmm1
  movq   D512(%rip),%xmm6
  shufps $0xe0,%xmm1,%xmm1
  xorps  %xmm6,%xmm0
  mulps  %xmm1,%xmm0
  movlps %xmm0,0x0(%r13,%r15,4)
  mov    %r14d,%r15d
  and    $0xfffffffe,%r15d
  add    %r15d,%eax
  cmp    %r15d,%r14d
  je     L1492
L1510:
  cltq
  movss  0x0(%rbp,%rax,4),%xmm0
  xorps  D107(%rip),%xmm0
  mulss  %xmm7,%xmm0
  movss  %xmm0,0x0(%r13,%rax,4)
L1492:
  mov    (%rsp),%rax
  cmp    $0x3,%ebx
  setg   0xc(%rsp)
  movzbl 0xc(%rsp),%r15d
  mov    0x48(%rax),%r13
  mov    %r13,%rax
  sub    0x38(%rsp),%rax
  mov    %r13,%r14
  cmp    $0x8,%rax
  seta   %al
  sub    0x50(%rsp),%r14
  cmp    $0x8,%r14
  seta   %r14b
  and    %r14d,%eax
  test   %al,%r15b
  je     L798
  mov    %r13,%rax
  sub    0x58(%rsp),%rax
  cmp    $0x8,%rax
  jbe    L798
  test   %ebx,%ebx
  mov    $0x1,%r15d
  movaps D380(%rip),%xmm6
  movapd D368(%rip),%xmm3
  cmovg  %ebx,%r15d
  movapd D114(%rip),%xmm2
  movaps 0xc0(%rsp),%xmm5
  xor    %eax,%eax
  movaps %xmm10,%xmm12
  mov    %r15d,%r14d
  shufps $0x0,%xmm12,%xmm12
  shr    $0x2,%r14d
  shl    $0x4,%r14
  nopl   0x0(%rax)
L1471:
  cvtps2pd (%rsi,%rax,1),%xmm1
  cvtps2pd (%rdi,%rax,1),%xmm0
  divpd  %xmm3,%xmm1
  movups (%rcx,%rax,1),%xmm8
  movlps 0x8(%rsi,%rax,1),%xmm9
  movlps 0x8(%rdi,%rax,1),%xmm5
  mulps  %xmm12,%xmm8
  cvtps2pd %xmm5,%xmm13
  mulps  %xmm6,%xmm8
  movhlps %xmm8,%xmm11
  divpd  %xmm2,%xmm0
  divpd  %xmm2,%xmm13
  subpd  %xmm0,%xmm1
  cvtps2pd %xmm8,%xmm0
  cvtps2pd %xmm11,%xmm8
  addpd  %xmm0,%xmm1
  cvtps2pd %xmm9,%xmm0
  cvtpd2ps %xmm1,%xmm1
  divpd  %xmm3,%xmm0
  subpd  %xmm13,%xmm0
  addpd  %xmm8,%xmm0
  cvtpd2ps %xmm0,%xmm0
  movlhps %xmm0,%xmm1
  movups %xmm1,0x0(%r13,%rax,1)
  add    $0x10,%rax
  cmp    %r14,%rax
  jne    L1471
  mov    %r15d,%r14d
  and    $0xfffffffc,%r14d
  and    $0x3,%r15d
  je     L1444
  movsd  D368(%rip),%xmm2
  mov    %r14d,%r15d
  pxor   %xmm3,%xmm3
  pxor   %xmm0,%xmm0
  movsd  D114(%rip),%xmm1
  cvtss2sd (%rsi,%r15,4),%xmm3
  cvtss2sd (%rdi,%r15,4),%xmm0
  movss  (%rcx,%r15,4),%xmm5
  divsd  %xmm2,%xmm3
  lea    0x0(,%r15,4),%rax
  mulss  %xmm10,%xmm5
  divsd  %xmm1,%xmm0
  subsd  %xmm0,%xmm3
  movss  D380(%rip),%xmm0
  mulss  %xmm0,%xmm5
  cvtss2sd %xmm5,%xmm5
  addsd  %xmm5,%xmm3
  cvtsd2ss %xmm3,%xmm3
  movss  %xmm3,0x0(%r13,%r15,4)
  lea    0x1(%r14),%r15d
  cmp    %r15d,%ebx
  jle    L1444
  pxor   %xmm3,%xmm3
  pxor   %xmm5,%xmm5
  add    $0x2,%r14d
  cvtss2sd 0x4(%rsi,%rax,1),%xmm3
  cvtss2sd 0x4(%rdi,%rax,1),%xmm5
  divsd  %xmm2,%xmm3
  divsd  %xmm1,%xmm5
  subsd  %xmm5,%xmm3
  movss  0x4(%rcx,%rax,1),%xmm5
  mulss  %xmm10,%xmm5
  mulss  %xmm0,%xmm5
  cvtss2sd %xmm5,%xmm5
  addsd  %xmm5,%xmm3
  cvtsd2ss %xmm3,%xmm3
  movss  %xmm3,0x4(%r13,%rax,1)
  cmp    %ebx,%r14d
  jge    L1444
  pxor   %xmm3,%xmm3
  cvtss2sd 0x8(%rsi,%rax,1),%xmm3
  divsd  %xmm2,%xmm3
  pxor   %xmm2,%xmm2
  cvtss2sd 0x8(%rdi,%rax,1),%xmm2
  divsd  %xmm1,%xmm2
  subsd  %xmm2,%xmm3
  movss  0x8(%rcx,%rax,1),%xmm2
  mulss  %xmm10,%xmm2
  movapd %xmm3,%xmm1
  mulss  %xmm2,%xmm0
  cvtss2sd %xmm0,%xmm0
  addsd  %xmm0,%xmm1
  cvtsd2ss %xmm1,%xmm1
  movss  %xmm1,0x8(%r13,%rax,1)
L1444:
  mov    (%rsp),%rax
  mov    0x50(%rax),%rcx
  mov    %rcx,%rax
  sub    0x30(%rsp),%rax
  mov    %rcx,%r13
  cmp    $0x8,%rax
  seta   %al
  sub    0x20(%rsp),%r13
  cmp    $0x8,%r13
  seta   %r13b
  and    %r13d,%eax
  test   %al,0xc(%rsp)
  je     L1064
  mov    %rcx,%rax
  sub    0x40(%rsp),%rax
  cmp    $0x8,%rax
  jbe    L1064
  test   %ebx,%ebx
  mov    $0x1,%r14d
  movaps D380(%rip),%xmm6
  movapd D368(%rip),%xmm3
  cmovg  %ebx,%r14d
  movaps %xmm10,%xmm5
  xor    %eax,%eax
  movapd D114(%rip),%xmm2
  movaps 0xd0(%rsp),%xmm8
  shufps $0x0,%xmm5,%xmm5
  movaps 0xe0(%rsp),%xmm9
  movaps 0xf0(%rsp),%xmm11
  mov    %r14d,%r13d
  shr    $0x2,%r13d
  shl    $0x4,%r13
  xchg   %ax,%ax
L1007:
  cvtps2pd (%r8,%rax,1),%xmm1
  cvtps2pd (%r9,%rax,1),%xmm0
  divpd  %xmm3,%xmm1
  movups (%rdx,%rax,1),%xmm12
  movlps 0x8(%r8,%rax,1),%xmm8
  movlps 0x8(%r9,%rax,1),%xmm9
  mulps  %xmm5,%xmm12
  cvtps2pd %xmm9,%xmm13
  mulps  %xmm6,%xmm12
  movhlps %xmm12,%xmm11
  divpd  %xmm2,%xmm0
  divpd  %xmm2,%xmm13
  subpd  %xmm0,%xmm1
  cvtps2pd %xmm12,%xmm0
  cvtps2pd %xmm11,%xmm12
  addpd  %xmm0,%xmm1
  cvtps2pd %xmm8,%xmm0
  cvtpd2ps %xmm1,%xmm1
  divpd  %xmm3,%xmm0
  subpd  %xmm13,%xmm0
  addpd  %xmm12,%xmm0
  cvtpd2ps %xmm0,%xmm0
  movlhps %xmm0,%xmm1
  movups %xmm1,(%rcx,%rax,1)
  add    $0x10,%rax
  cmp    %r13,%rax
  jne    L1007
  mov    %r14d,%r13d
  and    $0xfffffffc,%r13d
  and    $0x3,%r14d
  je     L1208
  movsd  D368(%rip),%xmm2
  mov    %r13d,%r14d
  pxor   %xmm0,%xmm0
  pxor   %xmm1,%xmm1
  movsd  D114(%rip),%xmm3
  cvtss2sd (%r8,%r14,4),%xmm0
  cvtss2sd (%r9,%r14,4),%xmm1
  movss  (%rdx,%r14,4),%xmm5
  divsd  %xmm2,%xmm0
  lea    0x0(,%r14,4),%rax
  mulss  %xmm10,%xmm5
  divsd  %xmm3,%xmm1
  subsd  %xmm1,%xmm0
  movss  D380(%rip),%xmm1
  mulss  %xmm1,%xmm5
  cvtss2sd %xmm5,%xmm5
  addsd  %xmm5,%xmm0
  cvtsd2ss %xmm0,%xmm0
  movss  %xmm0,(%rcx,%r14,4)
  lea    0x1(%r13),%r14d
  cmp    %r14d,%ebx
  jle    L1208
  pxor   %xmm0,%xmm0
  pxor   %xmm5,%xmm5
  add    $0x2,%r13d
  cvtss2sd 0x4(%r8,%rax,1),%xmm0
  cvtss2sd 0x4(%r9,%rax,1),%xmm5
  divsd  %xmm2,%xmm0
  divsd  %xmm3,%xmm5
  subsd  %xmm5,%xmm0
  movss  0x4(%rdx,%rax,1),%xmm5
  mulss  %xmm10,%xmm5
  mulss  %xmm1,%xmm5
  cvtss2sd %xmm5,%xmm5
  addsd  %xmm5,%xmm0
  cvtsd2ss %xmm0,%xmm0
  movss  %xmm0,0x4(%rcx,%rax,1)
  cmp    %ebx,%r13d
  jge    L1208
  pxor   %xmm0,%xmm0
  cvtss2sd 0x8(%r8,%rax,1),%xmm0
  divsd  %xmm2,%xmm0
  pxor   %xmm2,%xmm2
  cvtss2sd 0x8(%r9,%rax,1),%xmm2
  divsd  %xmm3,%xmm2
  subsd  %xmm2,%xmm0
  movss  0x8(%rdx,%rax,1),%xmm2
  mulss  %xmm10,%xmm2
  mulss  %xmm2,%xmm1
  cvtss2sd %xmm1,%xmm1
  addsd  %xmm1,%xmm0
  cvtsd2ss %xmm0,%xmm0
  movss  %xmm0,0x8(%rcx,%rax,1)
L1208:
  mov    (%rsp),%rax
  lea    0x4(%r12),%rcx
  mov    0x58(%rax),%rdx
  mov    %rdx,%rax
  sub    %rcx,%rax
  cmp    $0x8,%rax
  jbe    L814
  cmpb   $0x0,0xc(%rsp)
  je     L814
  test   %ebx,%ebx
  mov    $0x1,%r13d
  movaps D512(%rip),%xmm1
  cmovg  %ebx,%r13d
  xor    %eax,%eax
  mov    %r13d,%ecx
  shr    $0x2,%ecx
  shl    $0x4,%rcx
  nopw   0x0(%rax,%rax,1)
L288:
  movups (%r12,%rax,1),%xmm0
  xorps  %xmm1,%xmm0
  movups %xmm0,(%rdx,%rax,1)
  add    $0x10,%rax
  cmp    %rcx,%rax
  jne    L288
  mov    %r13d,%eax
  and    $0xfffffffc,%eax
  and    $0x3,%r13d
  je     L487
  mov    %eax,%r13d
  movss  D107(%rip),%xmm2
  movss  (%r12,%r13,4),%xmm0
  lea    0x0(,%r13,4),%rcx
  xorps  %xmm2,%xmm0
  movss  %xmm0,(%rdx,%r13,4)
  lea    0x1(%rax),%r13d
  cmp    %ebx,%r13d
  jge    L487
  movss  0x4(%r12,%rcx,1),%xmm0
  add    $0x2,%eax
  xorps  %xmm2,%xmm0
  movss  %xmm0,0x4(%rdx,%rcx,1)
  cmp    %eax,%ebx
  jle    L487
  movss  0x8(%r12,%rcx,1),%xmm0
  xorps  %xmm2,%xmm0
  movss  %xmm0,0x8(%rdx,%rcx,1)
L487:
  mov    (%rsp),%rax
  mov    0x60(%rax),%rdx
  mov    %rdx,%rax
  sub    0x80(%rsp),%rax
  cmp    $0x8,%rax
  jbe    L1476
  cmpb   $0x0,0x10(%rsp)
  je     L1476
  test   %ebx,%ebx
  mov    $0x1,%ecx
  cmovg  %ebx,%ecx
L1337:
  mov    %ecx,%r12d
  movaps %xmm7,%xmm2
  xor    %eax,%eax
  shr    $0x2,%r12d
  shufps $0x0,%xmm2,%xmm2
  shl    $0x4,%r12
  nopl   0x0(%rax)
L434:
  movups (%r10,%rax,1),%xmm0
  xorps  %xmm1,%xmm0
  mulps  %xmm2,%xmm0
  movups %xmm0,(%rdx,%rax,1)
  add    $0x10,%rax
  cmp    %r12,%rax
  jne    L434
  mov    %ecx,%r12d
  and    $0xfffffffc,%r12d
  mov    %r12d,%eax
  cmp    %r12d,%ecx
  je     L896
L431:
  sub    %r12d,%ecx
  cmp    $0x1,%ecx
  je     L862
  movq   (%r10,%r12,4),%xmm0
  movaps %xmm7,%xmm1
  movq   D512(%rip),%xmm6
  shufps $0xe0,%xmm1,%xmm1
  xorps  %xmm6,%xmm0
  mulps  %xmm1,%xmm0
  movlps %xmm0,(%rdx,%r12,4)
  mov    %ecx,%r12d
  and    $0xfffffffe,%r12d
  add    %r12d,%eax
  cmp    %r12d,%ecx
  je     L896
L862:
  cltq
  movss  (%r10,%rax,4),%xmm0
  xorps  D107(%rip),%xmm0
  mulss  %xmm7,%xmm0
  movss  %xmm0,(%rdx,%rax,4)
L896:
  mov    (%rsp),%rax
  mov    0x68(%rax),%rdx
  mov    %rdx,%rax
  sub    0x70(%rsp),%rax
  cmp    $0x8,%rax
  jbe    L969
  cmpb   $0x0,0x10(%rsp)
  je     L969
  test   %ebx,%ebx
  mov    $0x1,%ecx
  cmovg  %ebx,%ecx
  cmp    $0x3,%ebx
  jle    L229
  mov    %ecx,%r10d
  movaps D512(%rip),%xmm1
  movaps %xmm7,%xmm2
  xor    %eax,%eax
  shr    $0x2,%r10d
  shufps $0x0,%xmm2,%xmm2
  shl    $0x4,%r10
  nopl   0x0(%rax)
L1304:
  movups (%r11,%rax,1),%xmm0
  xorps  %xmm1,%xmm0
  mulps  %xmm2,%xmm0
  movups %xmm0,(%rdx,%rax,1)
  add    $0x10,%rax
  cmp    %r10,%rax
  jne    L1304
  mov    %ecx,%r10d
  and    $0xfffffffc,%r10d
  mov    %r10d,%eax
  cmp    %ecx,%r10d
  je     L757
L818:
  sub    %r10d,%ecx
  cmp    $0x1,%ecx
  je     L417
  movq   (%r11,%r10,4),%xmm0
  movaps %xmm7,%xmm1
  movq   D512(%rip),%xmm6
  shufps $0xe0,%xmm1,%xmm1
  xorps  %xmm6,%xmm0
  mulps  %xmm1,%xmm0
  movlps %xmm0,(%rdx,%r10,4)
  mov    %ecx,%r10d
  and    $0xfffffffe,%r10d
  add    %r10d,%eax
  cmp    %r10d,%ecx
  je     L757
L417:
  cltq
  movss  (%r11,%rax,4),%xmm0
  xorps  D107(%rip),%xmm0
  mulss  %xmm7,%xmm0
  movss  %xmm0,(%rdx,%rax,4)
L757:
  mov    (%rsp),%rax
  mov    0x70(%rax),%rdx
  mov    %rdx,%rax
  sub    0x60(%rsp),%rax
  cmp    $0x8,%rax
  jbe    L1240
  cmpb   $0x0,0x10(%rsp)
  je     L1240
  test   %ebx,%ebx
  mov    $0x1,%ecx
  cmovg  %ebx,%ecx
  cmp    $0x3,%ebx
  jle    L237
  mov    %ecx,%r10d
  movaps %xmm4,%xmm1
  xor    %eax,%eax
  shr    $0x2,%r10d
  shufps $0x0,%xmm1,%xmm1
  shl    $0x4,%r10
  nopw   0x0(%rax,%rax,1)
L633:
  movups 0x0(%rbp,%rax,1),%xmm0
  mulps  %xmm1,%xmm0
  movups %xmm0,(%rdx,%rax,1)
  add    $0x10,%rax
  cmp    %r10,%rax
  jne    L633
  mov    %ecx,%r10d
  and    $0xfffffffc,%r10d
  mov    %r10d,%eax
  cmp    %ecx,%r10d
  je     L1100
L140:
  sub    %r10d,%ecx
  cmp    $0x1,%ecx
  je     L405
  movq   0x0(%rbp,%r10,4),%xmm0
  movaps %xmm4,%xmm1
  shufps $0xe0,%xmm1,%xmm1
  mulps  %xmm1,%xmm0
  movlps %xmm0,(%rdx,%r10,4)
  mov    %ecx,%r10d
  and    $0xfffffffe,%r10d
  add    %r10d,%eax
  cmp    %ecx,%r10d
  je     L1100
L405:
  cltq
  mulss  0x0(%rbp,%rax,4),%xmm4
  movss  %xmm4,(%rdx,%rax,4)
L1100:
  mov    (%rsp),%rax
  mov    0x78(%rax),%rdx
  mov    %rdx,%rax
  sub    0x50(%rsp),%rax
  cmp    $0x8,%rax
  mov    %rdx,%rax
  seta   %cl
  sub    0x38(%rsp),%rax
  cmp    $0x8,%rax
  seta   %al
  test   %al,%cl
  je     L1168
  cmpb   $0x0,0xc(%rsp)
  je     L1168
  test   %ebx,%ebx
  mov    $0x1,%r10d
  movaps D281(%rip),%xmm1
  cmovg  %ebx,%r10d
  xor    %eax,%eax
  mov    %r10d,%ecx
  shr    $0x2,%ecx
  shl    $0x4,%rcx
  xchg   %ax,%ax
L127:
  movups (%rdi,%rax,1),%xmm0
  movups (%rsi,%rax,1),%xmm6
  addps  %xmm6,%xmm0
  divps  %xmm1,%xmm0
  movups %xmm0,(%rdx,%rax,1)
  add    $0x10,%rax
  cmp    %rcx,%rax
  jne    L127
  mov    %r10d,%ecx
  and    $0xfffffffc,%ecx
  and    $0x3,%r10d
  je     L708
  mov    %ecx,%r10d
  movss  D281(%rip),%xmm1
  movss  (%rsi,%r10,4),%xmm0
  addss  (%rdi,%r10,4),%xmm0
  lea    0x0(,%r10,4),%rax
  divss  %xmm1,%xmm0
  movss  %xmm0,(%rdx,%r10,4)
  lea    0x1(%rcx),%r10d
  cmp    %ebx,%r10d
  jge    L708
  movss  0x4(%rdi,%rax,1),%xmm0
  addss  0x4(%rsi,%rax,1),%xmm0
  add    $0x2,%ecx
  divss  %xmm1,%xmm0
  movss  %xmm0,0x4(%rdx,%rax,1)
  cmp    %ebx,%ecx
  jge    L708
  movss  0x8(%rdi,%rax,1),%xmm0
  addss  0x8(%rsi,%rax,1),%xmm0
  divss  %xmm1,%xmm0
  movss  %xmm0,0x8(%rdx,%rax,1)
L708:
  mov    (%rsp),%rax
  mov    0x80(%rax),%rdx
  mov    %rdx,%rax
  sub    0x30(%rsp),%rax
  cmp    $0x8,%rax
  mov    %rdx,%rax
  seta   %cl
  sub    0x20(%rsp),%rax
  cmp    $0x8,%rax
  seta   %al
  test   %al,%cl
  je     L515
  cmpb   $0x0,0xc(%rsp)
  je     L515
  test   %ebx,%ebx
  mov    $0x1,%esi
  movaps D281(%rip),%xmm1
  cmovg  %ebx,%esi
  xor    %eax,%eax
  mov    %esi,%ecx
  shr    $0x2,%ecx
  shl    $0x4,%rcx
  nopl   0x0(%rax)
L1404:
  movups (%r9,%rax,1),%xmm0
  movups (%r8,%rax,1),%xmm6
  addps  %xmm6,%xmm0
  divps  %xmm1,%xmm0
  movups %xmm0,(%rdx,%rax,1)
  add    $0x10,%rax
  cmp    %rcx,%rax
  jne    L1404
  mov    %esi,%eax
  and    $0xfffffffc,%eax
  and    $0x3,%esi
  je     L1446
  mov    %eax,%esi
  movss  D281(%rip),%xmm1
  movss  (%r8,%rsi,4),%xmm0
  addss  (%r9,%rsi,4),%xmm0
  lea    0x0(,%rsi,4),%rcx
  divss  %xmm1,%xmm0
  movss  %xmm0,(%rdx,%rsi,4)
  lea    0x1(%rax),%esi
  cmp    %ebx,%esi
  jge    L1446
  movss  0x4(%r8,%rcx,1),%xmm0
  addss  0x4(%r9,%rcx,1),%xmm0
  add    $0x2,%eax
  divss  %xmm1,%xmm0
  movss  %xmm0,0x4(%rdx,%rcx,1)
  cmp    %ebx,%eax
  jge    L1446
  movss  0x8(%r9,%rcx,1),%xmm0
  addss  0x8(%r8,%rcx,1),%xmm0
  divss  %xmm1,%xmm0
  movss  %xmm0,0x8(%rdx,%rcx,1)
L1446:
  mov    0x18(%rsp),%rdx
  mov    $0x4,%eax
  shl    $0x2,%rdx
  test   %ebx,%ebx
  cmovle %rax,%rdx
  mov    (%rsp),%rax
  xor    %esi,%esi
  mov    0x88(%rax),%rdi
  add    $0x108,%rsp
  pop    %rbx
  pop    %rbp
  pop    %r12
  pop    %r13
  pop    %r14
  pop    %r15
  jmp    1070 <memset@plt>
  nopl   0x0(%rax,%rax,1)
L515:
  movss  D281(%rip),%xmm1
  mov    0x18(%rsp),%rcx
  xor    %eax,%eax
  nop
L964:
  movss  (%r9,%rax,4),%xmm0
  addss  (%r8,%rax,4),%xmm0
  divss  %xmm1,%xmm0
  movss  %xmm0,(%rdx,%rax,4)
  add    $0x1,%rax
  cmp    %rax,%rcx
  jne    L964
  jmp    L1446
L969:
  mov    0x18(%rsp),%rcx
  xor    %eax,%eax
  movss  D107(%rip),%xmm2
  nop
L947:
  movss  (%r11,%rax,4),%xmm0
  xorps  %xmm2,%xmm0
  mulss  %xmm7,%xmm0
  movss  %xmm0,(%rdx,%rax,4)
  add    $0x1,%rax
  cmp    %rax,%rcx
  jne    L947
  jmp    L757
L1240:
  mov    0x18(%rsp),%rcx
  xor    %eax,%eax
  nopw   0x0(%rax,%rax,1)
L1434:
  movss  0x0(%rbp,%rax,4),%xmm0
  mulss  %xmm4,%xmm0
  movss  %xmm0,(%rdx,%rax,4)
  add    $0x1,%rax
  cmp    %rax,%rcx
  jne    L1434
  jmp    L1100
  nopl   (%rax)
L1168:
  movss  D281(%rip),%xmm1
  mov    0x18(%rsp),%rcx
  xor    %eax,%eax
  nop
L270:
  movss  (%rdi,%rax,4),%xmm0
  addss  (%rsi,%rax,4),%xmm0
  divss  %xmm1,%xmm0
  movss  %xmm0,(%rdx,%rax,4)
  add    $0x1,%rax
  cmp    %rax,%rcx
  jne    L270
  jmp    L708
  nopl   0x0(%rax)
L318:
  mov    %ebx,%r8d
  movsd  D368(%rip),%xmm2
  xor    %edx,%edx
  movsd  D114(%rip),%xmm1
  mov    %r8,0x18(%rsp)
  movss  D380(%rip),%xmm0
  nopw   0x0(%rax,%rax,1)
L1188:
  pxor   %xmm3,%xmm3
  pxor   %xmm5,%xmm5
  cvtss2sd (%rsi,%rdx,4),%xmm3
  cvtss2sd (%rdi,%rdx,4),%xmm5
  divsd  %xmm2,%xmm3
  divsd  %xmm1,%xmm5
  subsd  %xmm5,%xmm3
  movss  (%rcx,%rdx,4),%xmm5
  mulss  %xmm10,%xmm5
  mulss  %xmm0,%xmm5
  cvtss2sd %xmm5,%xmm5
  subsd  %xmm5,%xmm3
  cvtsd2ss %xmm3,%xmm3
  movss  %xmm3,(%rax,%rdx,4)
  add    $0x1,%rdx
  cmp    %rdx,%r8
  jne    L1188
  jmp    L701
  nopl   0x0(%rax,%rax,1)
L1566:
  mov    0x18(%rsp),%rbp
  xor    %r10d,%r10d
  nopl   0x0(%rax,%rax,1)
L1443:
  movss  (%rax,%r10,4),%xmm0
  mulss  %xmm10,%xmm0
  movss  %xmm0,(%r11,%r10,4)
  add    $0x1,%r10
  cmp    %r10,%rbp
  jne    L1443
  jmp    L250
  nop
L212:
  movsd  D368(%rip),%xmm2
  movsd  D114(%rip),%xmm1
  xor    %r10d,%r10d
  movss  D380(%rip),%xmm0
  mov    0x18(%rsp),%r11
L339:
  pxor   %xmm3,%xmm3
  pxor   %xmm5,%xmm5
  cvtss2sd (%r8,%r10,4),%xmm3
  cvtss2sd (%r9,%r10,4),%xmm5
  divsd  %xmm2,%xmm3
  divsd  %xmm1,%xmm5
  subsd  %xmm5,%xmm3
  movss  (%rdx,%r10,4),%xmm5
  mulss  %xmm10,%xmm5
  mulss  %xmm0,%xmm5
  cvtss2sd %xmm5,%xmm5
  subsd  %xmm5,%xmm3
  cvtsd2ss %xmm3,%xmm3
  movss  %xmm3,(%rax,%r10,4)
  add    $0x1,%r10
  cmp    %r10,%r11
  jne    L339
  mov    (%rsp),%r14
  mov    0x40(%r15),%rax
  cmp    $0x1,%ebx
  setne  %r10b
  mov    0x10(%r14),%r12
  lea    0x4(%rax),%r11
  mov    %r10d,%r14d
  mov    %r11,0x10(%rsp)
  mov    %r12,%rbp
  sub    %r11,%rbp
  cmp    $0x8,%rbp
  jbe    L1294
  test   %r10b,%r10b
  je     L1294
  cmpl   $0x2,0xc(%rsp)
  jbe    L617
  movaps D380(%rip),%xmm6
  jmp    L422
  nopl   0x0(%rax)
L463:
  mov    0x18(%rsp),%r14
  xor    %eax,%eax
  movss  D107(%rip),%xmm2
  nop
L40:
  movss  0x0(%rbp,%rax,4),%xmm0
  xorps  %xmm2,%xmm0
  mulss  %xmm7,%xmm0
  movss  %xmm0,0x0(%r13,%rax,4)
  add    $0x1,%rax
  cmp    %r14,%rax
  jne    L40
  jmp    L1492
  nopw   0x0(%rax,%rax,1)
L798:
  movsd  D368(%rip),%xmm2
  movsd  D114(%rip),%xmm1
  xor    %eax,%eax
  movss  D380(%rip),%xmm0
  mov    0x18(%rsp),%r14
  nopw   0x0(%rax,%rax,1)
L1205:
  pxor   %xmm3,%xmm3
  pxor   %xmm5,%xmm5
  cvtss2sd (%rsi,%rax,4),%xmm3
  cvtss2sd (%rdi,%rax,4),%xmm5
  divsd  %xmm2,%xmm3
  divsd  %xmm1,%xmm5
  subsd  %xmm5,%xmm3
  movss  (%rcx,%rax,4),%xmm5
  mulss  %xmm10,%xmm5
  mulss  %xmm0,%xmm5
  cvtss2sd %xmm5,%xmm5
  addsd  %xmm5,%xmm3
  cvtsd2ss %xmm3,%xmm3
  movss  %xmm3,0x0(%r13,%rax,4)
  add    $0x1,%rax
  cmp    %rax,%r14
  jne    L1205
  jmp    L1444
  nopl   (%rax)
L1319:
  mov    0x18(%rsp),%rbp
  xor    %eax,%eax
  movss  D107(%rip),%xmm2
  nop
L922:
  movss  (%r10,%rax,4),%xmm0
  xorps  %xmm2,%xmm0
  mulss  %xmm4,%xmm0
  movss  %xmm0,(%r11,%rax,4)
  add    $0x1,%rax
  cmp    %rbp,%rax
  jne    L922
  jmp    L9
  nopl   0x0(%rax)
L750:
  mov    0x18(%rsp),%rbp
  xor    %r10d,%r10d
  movss  D107(%rip),%xmm2
  nopl   0x0(%rax,%rax,1)
L59:
  movss  (%rcx,%r10,4),%xmm0
  xorps  %xmm2,%xmm0
  mulss  %xmm8,%xmm0
  movss  %xmm0,(%r11,%r10,4)
  add    $0x1,%r10
  cmp    %rbp,%r10
  jne    L59
  jmp    L1075
  nopw   0x0(%rax,%rax,1)
L1150:
  mov    0x18(%rsp),%rbp
  xor    %r10d,%r10d
  movss  D107(%rip),%xmm2
  nopl   0x0(%rax,%rax,1)
L261:
  movss  (%rdx,%r10,4),%xmm0
  xorps  %xmm2,%xmm0
  mulss  %xmm8,%xmm0
  movss  %xmm0,(%r11,%r10,4)
  add    $0x1,%r10
  cmp    %r10,%rbp
  jne    L261
  jmp    L275
  nopw   0x0(%rax,%rax,1)
L814:
  mov    0x18(%rsp),%rcx
  xor    %eax,%eax
  movss  D107(%rip),%xmm2
  nopw   0x0(%rax,%rax,1)
L319:
  movss  (%r12,%rax,4),%xmm0
  xorps  %xmm2,%xmm0
  movss  %xmm0,(%rdx,%rax,4)
  add    $0x1,%rax
  cmp    %rax,%rcx
  jne    L319
  mov    (%rsp),%rax
  mov    0x60(%rax),%rdx
  mov    %rdx,%rax
  sub    0x80(%rsp),%rax
  cmp    $0x8,%rax
  jbe    L540
  cmpb   $0x0,0x10(%rsp)
  je     L540
  test   %ebx,%ebx
  mov    $0x1,%ecx
  cmovg  %ebx,%ecx
  cmp    $0x3,%ebx
  jle    L514
  movaps D512(%rip),%xmm1
  jmp    L1337
  xchg   %ax,%ax
L1064:
  movsd  D368(%rip),%xmm2
  movsd  D114(%rip),%xmm1
  xor    %eax,%eax
  movss  D380(%rip),%xmm0
  mov    0x18(%rsp),%r13
  nop
L1302:
  pxor   %xmm3,%xmm3
  pxor   %xmm5,%xmm5
  cvtss2sd (%r8,%rax,4),%xmm3
  cvtss2sd (%r9,%rax,4),%xmm5
  divsd  %xmm2,%xmm3
  divsd  %xmm1,%xmm5
  subsd  %xmm5,%xmm3
  movss  (%rdx,%rax,4),%xmm5
  mulss  %xmm10,%xmm5
  mulss  %xmm0,%xmm5
  cvtss2sd %xmm5,%xmm5
  addsd  %xmm5,%xmm3
  cvtsd2ss %xmm3,%xmm3
  movss  %xmm3,(%rcx,%rax,4)
  add    $0x1,%rax
  cmp    %rax,%r13
  jne    L1302
  jmp    L1208
  nopl   (%rax)
L141:
  mov    0x18(%rsp),%r13
  xor    %eax,%eax
  movss  D107(%rip),%xmm2
  nop
L1406:
  movss  (%r11,%rax,4),%xmm0
  xorps  %xmm2,%xmm0
  mulss  %xmm4,%xmm0
  movss  %xmm0,0x0(%rbp,%rax,4)
  add    $0x1,%rax
  cmp    %r13,%rax
  jne    L1406
  jmp    L361
  nopl   0x0(%rax)
L1128:
  movss  D380(%rip),%xmm0
L1294:
  mov    0x18(%rsp),%r11
  xor    %r10d,%r10d
  movss  D107(%rip),%xmm2
L1363:
  movss  (%rax,%r10,4),%xmm1
  xorps  %xmm2,%xmm1
  mulss  %xmm8,%xmm1
  mulss  %xmm0,%xmm1
  movss  %xmm1,(%r12,%r10,4)
  add    $0x1,%r10
  cmp    %r10,%r11
  jne    L1363
  jmp    L1341
  cs nopw 0x0(%rax,%rax,1)
L1476:
  movss  D107(%rip),%xmm2
L540:
  mov    0x18(%rsp),%rcx
  xor    %eax,%eax
  nop
L1155:
  movss  (%r10,%rax,4),%xmm0
  xorps  %xmm2,%xmm0
  mulss  %xmm7,%xmm0
  movss  %xmm0,(%rdx,%rax,4)
  add    $0x1,%rax
  cmp    %rax,%rcx
  jne    L1155
  jmp    L896
L1116:
  add    $0x108,%rsp
  pop    %rbx
  pop    %rbp
  pop    %r12
  pop    %r13
  pop    %r14
  pop    %r15
  ret
L1062:
  mov    %ebx,%r13d
  xor    %ebp,%ebp
  xor    %r10d,%r10d
  jmp    L119
L617:
  mov    %ebx,%ebp
  xor    %r11d,%r11d
  xor    %r10d,%r10d
  jmp    L1066
L514:
  xor    %r12d,%r12d
  xor    %eax,%eax
  jmp    L431
L958:
  xor    %r15d,%r15d
  xor    %eax,%eax
  jmp    L575
L237:
  xor    %r10d,%r10d
  xor    %eax,%eax
  jmp    L140
L1393:
  mov    %ebx,%r13d
  xor    %ebp,%ebp
  xor    %r10d,%r10d
  jmp    L304
L1025:
  mov    %ebx,%r13d
  xor    %ebp,%ebp
  xor    %r10d,%r10d
  jmp    L49
L1465:
  mov    %ebx,%r14d
  xor    %r13d,%r13d
  xor    %eax,%eax
  jmp    L99
L528:
  mov    %ebx,%r13d
  xor    %ebp,%ebp
  xor    %eax,%eax
  jmp    L687
L229:
  xor    %r10d,%r10d
  xor    %eax,%eax
  jmp    L818
```

tool_calls: name: extract_symbolic_data
arguments: label: D459
type_guessed: byte[8]
name: extract_symbolic_data
arguments: label: D380
type_guessed: byte[16]
name: extract_symbolic_data
arguments: label: D368
type_guessed: f64[2]
name: extract_symbolic_data
arguments: label: D114
type_guessed: f64[2]
name: extract_symbolic_data
arguments: label: D512
type_guessed: byte[16]
name: extract_symbolic_data
arguments: label: D107
type_guessed: byte[16]
name: extract_symbolic_data
arguments: label: D281
type_guessed: byte[16]

tool: {"D459": [0x11,0xdd,0x52,0xa2,0x46,0xdf,0x91,0x3f]}

tool: {"D380": [0x00,0x00,0x00,0x3f,0x00,0x00,0x00,0x3f,0x00,0x00,0x00,0x3f,0x00,0x00,0x00,0x3f]}

tool: {"D368": [3.0,3.0]}

tool: {"D114": [6.0,6.0]}

tool: {"D512": [0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x80]}

tool: {"D107": [0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00]}

tool: {"D281": [0x00,0x00,0x40,0x40,0x00,0x00,0x40,0x40,0x00,0x00,0x40,0x40,0x00,0x00,0x40,0x40]}

assistant: ```c
void fk2mtg(float az, int npt, float *fk[12], float *mt[18]) {
  int i;
  float sa, ca, sa2, ca2;
  az = az * 1.745329252e-2;
  sa = sin(az);
  ca = cos(az);
  sa2 = sin(2 * az);
  ca2 = cos(2 * az);
  for (i = 0; i < npt; i++)
    mt[0][i] = fk[9][i] / 3. - fk[0][i] / 6. - fk[6][i] * ca2 / 2;
  for (i = 0; i < npt; i++)
    mt[1][i] = fk[10][i] / 3. - fk[1][i] / 6. - fk[7][i] * ca2 / 2;
  for (i = 0; i < npt; i++)
    mt[2][i] = -fk[8][i] * sa2 / 2;
  for (i = 0; i < npt; i++)
    mt[3][i] = -fk[6][i] * sa2;
  for (i = 0; i < npt; i++)
    mt[4][i] = -fk[7][i] * sa2;
  for (i = 0; i < npt; i++)
    mt[5][i] = fk[8][i] * ca2;
  for (i = 0; i < npt; i++)
    mt[6][i] = -fk[3][i] * ca;
  for (i = 0; i < npt; i++)
    mt[7][i] = -fk[4][i] * ca;
  for (i = 0; i < npt; i++)
    mt[8][i] = -fk[5][i] * sa;
  for (i = 0; i < npt; i++)
    mt[9][i] = fk[9][i] / 3. - fk[0][i] / 6. + fk[6][i] * ca2 / 2;
  for (i = 0; i < npt; i++)
    mt[10][i] = fk[10][i] / 3. - fk[1][i] / 6. + fk[7][i] * ca2 / 2;
  for (i = 0; i < npt; i++)
    mt[11][i] = -mt[2][i];
  for (i = 0; i < npt; i++)
    mt[12][i] = -fk[3][i] * sa;
  for (i = 0; i < npt; i++)
    mt[13][i] = -fk[4][i] * sa;
  for (i = 0; i < npt; i++)
    mt[14][i] = fk[5][i] * ca;
  for (i = 0; i < npt; i++)
    mt[15][i] = (fk[9][i] + fk[0][i]) / 3.;
  for (i = 0; i < npt; i++)
    mt[16][i] = (fk[10][i] + fk[1][i]) / 3.;
  for (i = 0; i < npt; i++)
    mt[17][i] = 0.;
  return;
}
```