user: 请将这段汇编代码片段转换成等效的C代码：

```asm
<fftmx>:
  endbr64
  push   %r15
  mov    %r9d,%eax
  push   %r14
  push   %r13
  push   %r12
  mov    %rdi,%r12
  push   %rbp
  mov    %rsi,%rbp
  push   %rbx
  sub    $0x128,%rsp
  neg    %eax
  cmovs  %r9d,%eax
  mov    %edx,0x104(%rsp)
  mov    0x170(%rsp),%r11
  mov    %ecx,0x100(%rsp)
  mov    0x180(%rsp),%r14
  imul   %eax,%r8d
  mov    %eax,%r10d
  mov    %r9d,0x108(%rsp)
  mov    %eax,0x68(%rsp)
  imul   %edx,%r10d
  mov    %r8d,0x94(%rsp)
  test   %r9d,%r9d
  js     L39
  pxor   %xmm1,%xmm1
  movsd  D13(%rip),%xmm0
  cvtsi2sd %ecx,%xmm1
  divsd  %xmm1,%xmm0
  test   %r10d,%r10d
  jle    L57
  movslq 0x68(%rsp),%rsi
  mov    $0x8,%eax
  mov    $0x1,%edx
  shl    $0x3,%rsi
L28:
  movsd  (%r12,%rax,1),%xmm1
  add    0x68(%rsp),%edx
  mulsd  %xmm0,%xmm1
  movsd  %xmm1,(%r12,%rax,1)
  movsd  0x0(%rbp,%rax,1),%xmm1
  mulsd  %xmm0,%xmm1
  movsd  %xmm1,0x0(%rbp,%rax,1)
  add    %rsi,%rax
  cmp    %edx,%r10d
  jge    L28
L57:
  movsd  D186(%rip),%xmm7
  movsd  %xmm7,0xe8(%rsp)
  movsd  D169(%rip),%xmm7
  movsd  %xmm7,0x88(%rsp)
  movsd  D42(%rip),%xmm7
  movsd  %xmm7,0x8(%rsp)
L619:
  mov    %r10d,%eax
  sub    0x68(%rsp),%eax
  mov    0x198(%rsp),%rdi
  mov    %eax,0x6c(%rsp)
  mov    0x94(%rsp),%eax
  cltd
  idivl  0x100(%rsp)
  mov    0x160(%rsp),%edx
  mov    %eax,0x58(%rsp)
  mov    %eax,0x5c(%rsp)
  shl    $0x5,%eax
  mov    %eax,0x10(%rsp)
  mov    0x168(%rsp),%rax
  movslq (%rax),%rax
  sub    %eax,%edx
  movslq %edx,%rdx
  mov    (%rdi,%rdx,4),%edi
  mov    %edi,0xf4(%rsp)
  test   %eax,%eax
  jle    L720
  mov    0x198(%rsp),%rbx
  mov    (%rbx,%rax,4),%eax
  cmp    %eax,%edi
  cmovge %edi,%eax
  mov    %eax,0xf4(%rsp)
L720:
  mov    0x58(%rsp),%eax
  pxor   %xmm0,%xmm0
  mov    0x68(%rsp),%edi
  pxor   %xmm2,%xmm2
  mov    0x94(%rsp),%r9d
  movl   $0x0,0x60(%rsp)
  movapd %xmm2,%xmm1
  cvtsi2sd %eax,%xmm0
  add    %edi,%edi
  add    %eax,%eax
  movq   $0x1,0xd0(%rsp)
  mulsd  D44(%rip),%xmm0
  mov    %r9d,%ebx
  mov    %edi,0xf0(%rsp)
  mov    %r14,%r9
  mov    %eax,0x90(%rsp)
  mov    %r10d,%r14d
  mov    0x178(%rsp),%r10
  movq   $0x0,0xe0(%rsp)
  movl   $0x0,0x80(%rsp)
  movsd  %xmm2,0xd8(%rsp)
  movsd  %xmm0,0xf8(%rsp)
L124:
  pxor   %xmm0,%xmm0
  mov    %r9,0x180(%rsp)
  movsd  0xf8(%rsp),%xmm7
  cvtsi2sd %ebx,%xmm0
  mov    %r10,0x178(%rsp)
  mov    %r11,0x170(%rsp)
  movsd  %xmm2,0x28(%rsp)
  movsd  %xmm1,0x20(%rsp)
  divsd  %xmm0,%xmm7
  movsd  D146(%rip),%xmm0
  mulsd  %xmm7,%xmm0
  movsd  %xmm7,0x18(%rsp)
  mulsd  0x8(%rsp),%xmm0
  call   <sin@plt>
  movapd %xmm0,%xmm3
  addsd  %xmm0,%xmm3
  mulsd  %xmm0,%xmm3
  movsd  0x8(%rsp),%xmm0
  mulsd  0x18(%rsp),%xmm0
  movsd  %xmm3,0x40(%rsp)
  call   <sin@plt>
  mov    0x198(%rsp),%rax
  mov    0xd0(%rsp),%rdi
  movsd  0x20(%rsp),%xmm1
  movsd  0x28(%rsp),%xmm2
  movsd  %xmm0,0x38(%rsp)
  mov    (%rax,%rdi,4),%r13d
  mov    0x170(%rsp),%r11
  mov    0x178(%rsp),%r10
  mov    0x180(%rsp),%r9
  cmp    $0x2,%r13d
  je     L919
  cmp    $0x4,%r13d
  je     L376
  mov    %ebx,%eax
  cltd
  idiv   %r13d
  mov    %eax,0x20(%rsp)
  mov    %eax,0xcc(%rsp)
  cmp    $0x3,%r13d
  je     L412
  cmp    $0x5,%r13d
  je     L380
  cmp    0x80(%rsp),%r13d
  je     L982
  pxor   %xmm0,%xmm0
  movsd  0x8(%rsp),%xmm1
  lea    0x118(%rsp),%rdi
  lea    0x110(%rsp),%rsi
  cvtsi2sd %r13d,%xmm0
  mulsd  D80(%rip),%xmm0
  mov    %r9,0x180(%rsp)
  mov    %r10,0x178(%rsp)
  mov    %r11,0x170(%rsp)
  divsd  %xmm0,%xmm1
  movapd %xmm1,%xmm0
  call   <sincos@plt>
  mov    D13(%rip),%rdi
  movslq %r13d,%rax
  cmp    $0x1,%r13d
  mov    0x178(%rsp),%r10
  mov    0x170(%rsp),%r11
  movsd  0x110(%rsp),%xmm2
  mov    0x180(%rsp),%r9
  movsd  0x118(%rsp),%xmm3
  mov    %rdi,(%r10,%rax,8)
  mov    0x188(%rsp),%rdi
  movq   $0x0,(%rdi,%rax,8)
  jle    L982
  movq   D172(%rip),%xmm4
  mov    $0x1,%edx
  pxor   %xmm0,%xmm0
  mov    %rdi,%rcx
L0:
  movsd  (%r10,%rax,8),%xmm1
  mulsd  %xmm3,%xmm0
  mulsd  %xmm2,%xmm1
  addsd  %xmm0,%xmm1
  movsd  %xmm1,(%r10,%rdx,8)
  movsd  (%r10,%rax,8),%xmm0
  movsd  (%rcx,%rax,8),%xmm1
  mulsd  %xmm3,%xmm0
  mulsd  %xmm2,%xmm1
  subsd  %xmm1,%xmm0
  movsd  %xmm0,(%rcx,%rdx,8)
  movsd  (%r10,%rdx,8),%xmm0
  movsd  %xmm0,-0x8(%r10,%rax,8)
  movsd  (%rcx,%rdx,8),%xmm0
  add    $0x1,%rdx
  xorpd  %xmm4,%xmm0
  movsd  %xmm0,-0x8(%rcx,%rax,8)
  sub    $0x1,%rax
  cmp    %eax,%edx
  jl     L0
L982:
  movslq 0x20(%rsp),%rax
  mov    %ebx,0x98(%rsp)
  mov    %r14d,0x10c(%rsp)
  mov    %rax,%rdi
  mov    %rax,0x30(%rsp)
  neg    %rax
  lea    0x0(,%rax,8),%r15
  lea    (%r12,%r15,1),%rax
  mov    %rax,0xa8(%rsp)
  lea    0x0(%rbp,%r15,1),%rax
  mov    %rax,0xa0(%rsp)
  mov    %edi,%eax
  lea    0x18(%r11),%rdi
  mov    %rdi,0xb8(%rsp)
  lea    0x18(%r9),%rdi
  neg    %eax
  mov    %rdi,0xc0(%rsp)
  lea    0x1(%r13),%edi
  cltq
  mov    %edi,0xc8(%rsp)
  mov    0x188(%rsp),%rdi
  mov    %rax,0xb0(%rsp)
  mov    $0x1,%eax
L610:
  mov    0x98(%rsp),%ebx
  mov    %r13d,0x70(%rsp)
  mov    0xa8(%rsp),%r14
  mov    0xb0(%rsp),%r13
  lea    (%rax,%rbx,1),%esi
  movslq %eax,%rbx
  add    0x20(%rsp),%eax
  lea    0x0(,%rbx,8),%rdx
  mov    %esi,0x28(%rsp)
  movslq %esi,%rsi
  cltq
  lea    (%r12,%rdx,1),%r8
  lea    0x0(%rbp,%rdx,1),%rcx
  mov    %rsi,0x50(%rsp)
  mov    %rsi,%rdx
  movsd  (%r8),%xmm6
  movsd  (%rcx),%xmm7
  mov    %rcx,0x48(%rsp)
  mov    %rbx,0x78(%rsp)
  mov    0xb8(%rsp),%rsi
  mov    %r8,0x80(%rsp)
  mov    0xc0(%rsp),%rcx
  movapd %xmm7,%xmm1
  movapd %xmm6,%xmm2
  mov    0xa0(%rsp),%r8
  mov    0x30(%rsp),%rbx
  nopl   (%rax)
L670:
  movsd  (%r12,%rax,8),%xmm0
  addsd  (%r14,%rdx,8),%xmm0
  add    $0x10,%rsi
  add    $0x10,%rcx
  movsd  %xmm0,-0x18(%rsi)
  addsd  %xmm0,%xmm2
  movsd  0x0(%rbp,%rax,8),%xmm0
  addsd  (%r8,%rdx,8),%xmm0
  movsd  %xmm0,-0x18(%rcx)
  addsd  %xmm0,%xmm1
  movsd  (%r12,%rax,8),%xmm0
  subsd  (%r14,%rdx,8),%xmm0
  movsd  %xmm0,-0x10(%rsi)
  movsd  0x0(%rbp,%rax,8),%xmm0
  add    %rbx,%rax
  subsd  (%r8,%rdx,8),%xmm0
  add    %r13,%rdx
  movsd  %xmm0,-0x10(%rcx)
  cmp    %edx,%eax
  jl     L670
  mov    0x48(%rsp),%rax
  mov    0x78(%rsp),%rbx
  mov    $0x1,%esi
  mov    0x80(%rsp),%r8
  mov    0x70(%rsp),%r13d
  mov    0xc8(%rsp),%r14d
  movsd  %xmm2,(%r8)
  mov    0x50(%rsp),%r8
  movsd  %xmm1,(%rax)
  mov    0x30(%rsp),%rax
  add    %rax,%rbx
  sub    %rax,%r8
  shl    $0x3,%rbx
  shl    $0x3,%r8
  nopl   0x0(%rax,%rax,1)
L274:
  pxor   %xmm4,%xmm4
  movapd %xmm7,%xmm1
  movapd %xmm6,%xmm2
  mov    %esi,%edx
  mov    $0x1,%eax
  movapd %xmm4,%xmm3
  nopw   0x0(%rax,%rax,1)
L84:
  movslq %edx,%rcx
  movsd  0x8(%r11,%rax,8),%xmm5
  add    %esi,%edx
  movsd  (%r10,%rcx,8),%xmm0
  mulsd  %xmm0,%xmm5
  mulsd  0x8(%r9,%rax,8),%xmm0
  addsd  %xmm5,%xmm2
  movsd  0x10(%r11,%rax,8),%xmm5
  addsd  %xmm0,%xmm1
  movsd  (%rdi,%rcx,8),%xmm0
  mov    %edx,%ecx
  sub    %r13d,%ecx
  cmp    %edx,%r13d
  mulsd  %xmm0,%xmm5
  cmovl  %ecx,%edx
  mulsd  0x10(%r9,%rax,8),%xmm0
  add    $0x2,%rax
  addsd  %xmm5,%xmm3
  addsd  %xmm0,%xmm4
  cmp    %eax,%r13d
  jg     L84
  movapd %xmm2,%xmm0
  addsd  %xmm4,%xmm2
  add    $0x1,%esi
  mov    %r14d,%eax
  subsd  %xmm4,%xmm0
  sub    %esi,%eax
  movsd  %xmm0,(%r12,%rbx,1)
  movapd %xmm1,%xmm0
  subsd  %xmm3,%xmm1
  addsd  %xmm3,%xmm0
  movsd  %xmm0,0x0(%rbp,%rbx,1)
  sub    %r15,%rbx
  movsd  %xmm2,(%r12,%r8,1)
  movsd  %xmm1,0x0(%rbp,%r8,1)
  add    %r15,%r8
  cmp    %eax,%esi
  jl     L274
  mov    0x6c(%rsp),%ebx
  mov    0x28(%rsp),%eax
  cmp    %eax,%ebx
  jge    L928
  sub    %ebx,%eax
  cmp    %eax,0x20(%rsp)
  jge    L610
  mov    %r13d,0x80(%rsp)
  mov    0x98(%rsp),%ebx
  mov    0x10c(%rsp),%r14d
L382:
  mov    0xd0(%rsp),%eax
  cmp    %eax,0x160(%rsp)
  je     L644
  mov    0x20(%rsp),%edi
  mov    0x58(%rsp),%esi
  mov    %ebx,%ecx
  mov    %r14d,%r13d
  movsd  D13(%rip),%xmm0
  subsd  0x40(%rsp),%xmm0
  mov    %r10,0x178(%rsp)
  mov    %edi,%eax
  sub    %esi,%ecx
  lea    0x1(%rsi),%r15d
  sub    %edi,%r13d
  sub    %esi,%eax
  mov    0x10(%rsp),%esi
  sub    0x68(%rsp),%eax
  mov    %ecx,0x30(%rsp)
  mov    %eax,0x50(%rsp)
  mov    %edi,%eax
  cmp    %edi,%esi
  mov    %r9,0x180(%rsp)
  cmovle %esi,%edi
  mov    %r11,0x170(%rsp)
  mov    %eax,%r11d
  movsd  %xmm0,0x70(%rsp)
  mov    %edi,0x78(%rsp)
  lea    0x118(%rsp),%rdi
  mov    %rdi,0x48(%rsp)
  mov    %r12,%rdi
  mov    %r13d,%r12d
  mov    %rdi,%r13
L641:
  movsd  0x38(%rsp),%xmm6
  movsd  0x70(%rsp),%xmm5
  mov    0x78(%rsp),%r10d
  nopl   0x0(%rax)
L336:
  add    %r11d,%r15d
  movapd %xmm6,%xmm0
  movapd %xmm5,%xmm1
  nopl   0x0(%rax,%rax,1)
L354:
  movslq %r15d,%rax
  movapd %xmm1,%xmm3
  add    %ebx,%r15d
  shl    $0x3,%rax
  lea    0x0(%r13,%rax,1),%rdx
  add    %rbp,%rax
  movsd  (%rdx),%xmm2
  movsd  (%rax),%xmm4
  mulsd  %xmm2,%xmm3
  mulsd  %xmm0,%xmm4
  mulsd  %xmm0,%xmm2
  subsd  %xmm4,%xmm3
  movsd  %xmm3,(%rdx)
  movsd  (%rax),%xmm3
  mulsd  %xmm1,%xmm3
  addsd  %xmm3,%xmm2
  movsd  %xmm2,(%rax)
  cmp    %r15d,%r14d
  jge    L354
  movapd %xmm1,%xmm2
  movapd %xmm5,%xmm3
  sub    %r12d,%r15d
  mulsd  %xmm0,%xmm3
  mulsd  %xmm6,%xmm2
  mulsd  %xmm5,%xmm1
  mulsd  %xmm6,%xmm0
  addsd  %xmm3,%xmm2
  subsd  %xmm0,%xmm1
  cmp    %r15d,%ebx
  jl     L990
  movapd %xmm2,%xmm0
  jmp    L354
  nopl   (%rax)
L990:
  sub    0x30(%rsp),%r15d
  cmp    %r15d,%r10d
  jge    L309
  mov    %r10d,0x20(%rsp)
  cmp    %r15d,%r11d
  jle    L213
  lea    -0x1(%r15),%eax
  pxor   %xmm0,%xmm0
  mov    0x48(%rsp),%rdi
  lea    0x110(%rsp),%rsi
  cltd
  mov    %r11d,0x28(%rsp)
  idivl  0x58(%rsp)
  cvtsi2sd %eax,%xmm0
  mulsd  0x18(%rsp),%xmm0
  mulsd  0x8(%rsp),%xmm0
  call   <sincos@plt>
  mov    0x28(%rsp),%r11d
  mov    0x20(%rsp),%r10d
  movsd  0x110(%rsp),%xmm5
  add    0x10(%rsp),%r10d
  movsd  0x118(%rsp),%xmm6
  cmp    %r11d,%r10d
  cmovg  %r11d,%r10d
  jmp    L336
  nopl   0x0(%rax)
L309:
  movsd  0x40(%rsp),%xmm7
  movsd  0x38(%rsp),%xmm4
  movapd %xmm7,%xmm0
  movapd %xmm4,%xmm1
  mulsd  %xmm6,%xmm1
  mulsd  %xmm5,%xmm0
  mulsd  %xmm6,%xmm7
  addsd  %xmm1,%xmm0
  movapd %xmm4,%xmm1
  mulsd  %xmm5,%xmm1
  subsd  %xmm0,%xmm5
  subsd  %xmm7,%xmm1
  addsd  %xmm1,%xmm6
  jmp    L336
L213:
  sub    0x50(%rsp),%r15d
  cmp    %r15d,0x90(%rsp)
  jge    L641
  mov    0x170(%rsp),%r11
  mov    0x178(%rsp),%r10
  mov    %r13,%r12
  mov    0x180(%rsp),%r9
L517:
  addq   $0x1,0xd0(%rsp)
  mov    0xcc(%rsp),%ebx
  jmp    L124
L928:
  mov    0x28(%rsp),%eax
  jmp    L610
L919:
  mov    %ebx,%r15d
  mov    0x6c(%rsp),%esi
  mov    $0x1,%r13d
  shr    $0x1f,%r15d
  add    %ebx,%r15d
  sar    %r15d
  mov    %r15d,0xcc(%rsp)
  lea    0x2(%r15),%r8d
L245:
  lea    0x0(%r13,%r15,1),%ecx
  movslq %r13d,%rax
  movslq %ecx,%rdx
  shl    $0x3,%rax
  lea    (%r15,%rcx,1),%r13d
  shl    $0x3,%rdx
  lea    (%r12,%rax,1),%rbx
  add    %rbp,%rax
  lea    (%r12,%rdx,1),%rdi
  movsd  (%rbx),%xmm4
  add    %rbp,%rdx
  movsd  (%rdi),%xmm3
  movsd  (%rdx),%xmm0
  subsd  %xmm3,%xmm4
  movsd  %xmm4,(%rdi)
  movsd  (%rax),%xmm4
  subsd  %xmm0,%xmm4
  movsd  %xmm4,(%rdx)
  addsd  (%rbx),%xmm3
  movsd  %xmm3,(%rbx)
  addsd  (%rax),%xmm0
  movsd  %xmm0,(%rax)
  cmp    %r13d,%esi
  jge    L245
  sub    %esi,%r13d
  cmp    %r13d,0x58(%rsp)
  jge    L245
  cmp    %r13d,%r15d
  jl     L644
  lea    0x118(%rsp),%rax
  movsd  D13(%rip),%xmm0
  subsd  0x40(%rsp),%xmm0
  mov    %r10,0x178(%rsp)
  mov    %rax,0x48(%rsp)
  lea    0x110(%rsp),%rax
  mov    %rbp,%rcx
  mov    %r8d,%ebp
  mov    %rax,0x50(%rsp)
  mov    %r9,0x180(%rsp)
  mov    %r11,0x170(%rsp)
  mov    0x58(%rsp),%r11d
  movsd  %xmm0,0x70(%rsp)
  movsd  %xmm1,0x78(%rsp)
  movsd  %xmm2,0x98(%rsp)
L1004:
  mov    %ebp,%ebx
  mov    0x10(%rsp),%eax
  movsd  0x38(%rsp),%xmm5
  shr    $0x1f,%ebx
  movsd  0x70(%rsp),%xmm3
  add    %ebp,%ebx
  mov    %eax,%r10d
  sar    %ebx
  cmp    %eax,%ebx
  cmovle %ebx,%r10d
  nopl   0x0(%rax,%rax,1)
L958:
  lea    0x0(%r13,%r15,1),%edx
  movslq %r13d,%r13
  movslq %edx,%rax
  shl    $0x3,%r13
  shl    $0x3,%rax
  lea    (%r12,%r13,1),%rsi
  add    %rcx,%r13
  lea    (%r12,%rax,1),%rdi
  movsd  (%rsi),%xmm2
  add    %rcx,%rax
  movsd  0x0(%r13),%xmm1
  movsd  (%rdi),%xmm4
  subsd  (%rax),%xmm1
  movapd %xmm2,%xmm0
  addsd  %xmm4,%xmm2
  subsd  %xmm4,%xmm0
  movapd %xmm5,%xmm4
  mulsd  %xmm1,%xmm4
  mulsd  %xmm3,%xmm1
  movsd  %xmm2,(%rsi)
  movsd  0x0(%r13),%xmm2
  addsd  (%rax),%xmm2
  movsd  %xmm2,0x0(%r13)
  movapd %xmm3,%xmm2
  lea    (%r15,%rdx,1),%r13d
  mulsd  %xmm0,%xmm2
  mulsd  %xmm5,%xmm0
  subsd  %xmm4,%xmm2
  addsd  %xmm1,%xmm0
  movsd  %xmm2,(%rdi)
  movsd  %xmm0,(%rax)
  cmp    %r13d,%r14d
  jg     L958
  mov    %r13d,%eax
  mov    %ebp,%r13d
  xorpd  D172(%rip),%xmm3
  sub    %r14d,%eax
  sub    %eax,%r13d
  cmp    %r13d,%eax
  jl     L958
  add    %r11d,%r13d
  cmp    %r13d,%r10d
  jge    L633
  mov    %r10d,0x20(%rsp)
  cmp    %r13d,%eax
  jle    L526
  lea    -0x1(%r13),%eax
  pxor   %xmm0,%xmm0
  mov    0x50(%rsp),%rsi
  mov    0x48(%rsp),%rdi
  cltd
  mov    %rcx,0x30(%rsp)
  idiv   %r11d
  mov    %r11d,0x28(%rsp)
  cvtsi2sd %eax,%xmm0
  mulsd  0x18(%rsp),%xmm0
  mulsd  0x8(%rsp),%xmm0
  call   <sincos@plt>
  mov    0x20(%rsp),%r10d
  add    0x10(%rsp),%r10d
  cmp    %r10d,%ebx
  mov    0x28(%rsp),%r11d
  mov    0x30(%rsp),%rcx
  movsd  0x110(%rsp),%xmm3
  cmovle %ebx,%r10d
  movsd  0x118(%rsp),%xmm5
  jmp    L958
  nopw   0x0(%rax,%rax,1)
L633:
  movsd  0x40(%rsp),%xmm7
  movsd  0x38(%rsp),%xmm6
  movapd %xmm7,%xmm0
  movapd %xmm6,%xmm1
  mulsd  %xmm5,%xmm1
  mulsd  %xmm3,%xmm0
  mulsd  %xmm3,%xmm6
  mulsd  %xmm5,%xmm7
  addsd  %xmm1,%xmm0
  movapd %xmm6,%xmm1
  subsd  %xmm7,%xmm1
  subsd  %xmm0,%xmm3
  addsd  %xmm1,%xmm5
  jmp    L958
L526:
  add    0xf0(%rsp),%ebp
  mov    %ebp,%eax
  sub    %r15d,%eax
  mov    %eax,%r13d
  shr    $0x1f,%r13d
  add    %eax,%r13d
  sar    %r13d
  add    %r11d,%r13d
  cmp    %r13d,0x90(%rsp)
  jge    L1004
  movsd  0x78(%rsp),%xmm1
  mov    0x170(%rsp),%r11
  mov    %rcx,%rbp
  mov    0x178(%rsp),%r10
  mov    0x180(%rsp),%r9
  movsd  0x98(%rsp),%xmm2
  jmp    L517
L376:
  test   %ebx,%ebx
  lea    0x3(%rbx),%eax
  mov    $0x1,%r15d
  mov    %r11,0x170(%rsp)
  cmovs  %eax,%ebx
  mov    %r14d,%eax
  sub    0x58(%rsp),%eax
  mov    %r15d,%r8d
  mov    %eax,0x28(%rsp)
  movsd  0xd8(%rsp),%xmm11
  sar    $0x2,%ebx
  mov    %r10,0x178(%rsp)
  movsd  0xe0(%rsp),%xmm12
  mov    %ebx,%eax
  sub    0x68(%rsp),%eax
  mov    %ebx,0xcc(%rsp)
  mov    %eax,0x48(%rsp)
  mov    0x10(%rsp),%eax
  mov    %r9,0x180(%rsp)
  mov    0x108(%rsp),%r15d
  cmp    %ebx,%eax
  cmovg  %ebx,%eax
  mov    %eax,0x50(%rsp)
  lea    0x118(%rsp),%rax
  mov    %rax,0x30(%rsp)
L127:
  mov    D13(%rip),%rax
  mov    0x50(%rsp),%r13d
  pxor   %xmm8,%xmm8
  movq   %rax,%xmm10
  mov    %r15d,%eax
  mov    %r14d,%r15d
  mov    %r13d,%r14d
  mov    %r8d,%r13d
  mov    %eax,%r8d
  nopl   0x0(%rax)
L27:
  lea    0x0(%r13,%rbx,1),%edx
  movslq %r13d,%r13
  lea    (%rbx,%rdx,1),%eax
  lea    0x0(,%r13,8),%rcx
  movslq %edx,%rdx
  lea    (%rbx,%rax,1),%edi
  cltq
  lea    (%r12,%rcx,1),%r9
  shl    $0x3,%rdx
  shl    $0x3,%rax
  movslq %edi,%rsi
  movsd  (%r9),%xmm0
  lea    (%r12,%rdx,1),%r13
  lea    (%r12,%rax,1),%r10
  shl    $0x3,%rsi
  add    %rbp,%rcx
  add    %rbp,%rax
  movsd  (%r10),%xmm3
  lea    (%r12,%rsi,1),%r11
  movapd %xmm0,%xmm6
  add    %rbp,%rdx
  movsd  0x0(%r13),%xmm9
  movsd  (%r11),%xmm4
  add    %rbp,%rsi
  addsd  %xmm3,%xmm6
  subsd  %xmm3,%xmm0
  movapd %xmm9,%xmm3
  subsd  %xmm4,%xmm9
  addsd  %xmm4,%xmm3
  movapd %xmm6,%xmm4
  addsd  %xmm3,%xmm4
  subsd  %xmm3,%xmm6
  movsd  %xmm4,(%r9)
  movsd  (%rcx),%xmm3
  movsd  (%rax),%xmm4
  movsd  (%rsi),%xmm13
  movapd %xmm3,%xmm7
  subsd  %xmm4,%xmm3
  addsd  %xmm4,%xmm7
  movsd  (%rdx),%xmm4
  movapd %xmm4,%xmm5
  subsd  %xmm13,%xmm4
  addsd  %xmm13,%xmm5
  movapd %xmm7,%xmm13
  addsd  %xmm5,%xmm13
  subsd  %xmm5,%xmm7
  movapd %xmm0,%xmm5
  movsd  %xmm13,(%rcx)
  test   %r8d,%r8d
  js     L479
  pxor   %xmm14,%xmm14
  subsd  %xmm4,%xmm5
  addsd  %xmm4,%xmm0
  ucomisd %xmm14,%xmm8
  movapd %xmm9,%xmm4
  addsd  %xmm3,%xmm4
  subsd  %xmm9,%xmm3
  jp     L507
L466:
  je     L482
L507:
  movapd %xmm5,%xmm9
  movapd %xmm4,%xmm13
  mulsd  %xmm10,%xmm9
  mulsd  %xmm10,%xmm4
  mulsd  %xmm8,%xmm13
  mulsd  %xmm8,%xmm5
  subsd  %xmm13,%xmm9
  addsd  %xmm4,%xmm5
  movapd %xmm1,%xmm4
  mulsd  %xmm6,%xmm4
  movsd  %xmm9,0x0(%r13)
  mulsd  %xmm2,%xmm6
  lea    (%rbx,%rdi,1),%r13d
  movsd  %xmm5,(%rdx)
  movapd %xmm2,%xmm5
  mulsd  %xmm7,%xmm5
  mulsd  %xmm1,%xmm7
  subsd  %xmm5,%xmm4
  movapd %xmm3,%xmm5
  mulsd  %xmm12,%xmm5
  addsd  %xmm7,%xmm6
  mulsd  %xmm11,%xmm3
  movsd  %xmm4,(%r10)
  movapd %xmm0,%xmm4
  mulsd  %xmm11,%xmm4
  movsd  %xmm6,(%rax)
  mulsd  %xmm12,%xmm0
  subsd  %xmm5,%xmm4
  addsd  %xmm3,%xmm0
  movsd  %xmm4,(%r11)
  movsd  %xmm0,(%rsi)
  cmp    %r13d,%r15d
  jge    L27
L602:
  sub    0x28(%rsp),%r13d
  cmp    %r13d,%r14d
  jge    L348
  cmp    %r13d,%ebx
  jle    L586
  lea    -0x1(%r13),%eax
  pxor   %xmm0,%xmm0
  mov    0x30(%rsp),%rdi
  lea    0x110(%rsp),%rsi
  cltd
  mov    %r8d,0x20(%rsp)
  idivl  0x58(%rsp)
  cvtsi2sd %eax,%xmm0
  mulsd  0x18(%rsp),%xmm0
  mulsd  0x8(%rsp),%xmm0
  call   <sincos@plt>
  add    0x10(%rsp),%r14d
  mov    0x20(%rsp),%r8d
  movsd  0x110(%rsp),%xmm10
  cmp    %ebx,%r14d
  movsd  0x118(%rsp),%xmm8
  cmovg  %ebx,%r14d
L356:
  movapd %xmm8,%xmm0
  movapd %xmm10,%xmm1
  movapd %xmm10,%xmm2
  movapd %xmm10,%xmm11
  movapd %xmm8,%xmm12
  mulsd  %xmm8,%xmm0
  mulsd  %xmm10,%xmm1
  mulsd  %xmm8,%xmm2
  subsd  %xmm0,%xmm1
  movapd %xmm8,%xmm0
  addsd  %xmm2,%xmm2
  mulsd  %xmm1,%xmm11
  mulsd  %xmm2,%xmm0
  mulsd  %xmm1,%xmm12
  subsd  %xmm0,%xmm11
  movapd %xmm10,%xmm0
  mulsd  %xmm2,%xmm0
  addsd  %xmm0,%xmm12
  jmp    L27
L482:
  movsd  %xmm5,0x0(%r13)
  lea    (%rbx,%rdi,1),%r13d
  movsd  %xmm4,(%rdx)
  movsd  %xmm6,(%r10)
  movsd  %xmm7,(%rax)
  movsd  %xmm0,(%r11)
  movsd  %xmm3,(%rsi)
  cmp    %r13d,%r15d
  jge    L27
  jmp    L602
  xchg   %ax,%ax
L479:
  pxor   %xmm15,%xmm15
  addsd  %xmm4,%xmm5
  subsd  %xmm4,%xmm0
  ucomisd %xmm15,%xmm8
  movapd %xmm3,%xmm4
  addsd  %xmm9,%xmm3
  subsd  %xmm9,%xmm4
  jnp    L466
  jmp    L507
  nopl   0x0(%rax,%rax,1)
L348:
  movsd  0x40(%rsp),%xmm7
  movsd  0x38(%rsp),%xmm6
  movapd %xmm7,%xmm0
  movapd %xmm6,%xmm1
  mulsd  %xmm8,%xmm1
  mulsd  %xmm10,%xmm0
  mulsd  %xmm10,%xmm6
  mulsd  %xmm8,%xmm7
  addsd  %xmm1,%xmm0
  movapd %xmm6,%xmm1
  subsd  %xmm7,%xmm1
  subsd  %xmm0,%xmm10
  addsd  %xmm1,%xmm8
  jmp    L356
L586:
  mov    %r15d,%r14d
  mov    %r8d,%r15d
  mov    %r13d,%r8d
  sub    0x48(%rsp),%r8d
  cmp    %r8d,0x58(%rsp)
  jge    L127
  mov    %edi,0x60(%rsp)
  mov    0x170(%rsp),%r11
  mov    0x178(%rsp),%r10
  mov    0x180(%rsp),%r9
  movsd  %xmm11,0xd8(%rsp)
  movsd  %xmm12,0xe0(%rsp)
  cmp    %ebx,0x58(%rsp)
  jne    L517
L644:
  mov    0x190(%rsp),%rax
  mov    0x94(%rsp),%edi
  mov    %r14d,%r10d
  mov    %r9,%r14
  mov    %edi,0x4(%rax)
  mov    0x168(%rsp),%rax
  mov    (%rax),%edx
  test   %edx,%edx
  je     L154
  add    %edx,%edx
  mov    0x190(%rsp),%rdi
  mov    0x58(%rsp),%ebx
  lea    0x1(%rdx),%eax
  cmp    %eax,0x160(%rsp)
  cmovl  %edx,%eax
  movslq %eax,%rsi
  mov    %ebx,0x4(%rdi,%rsi,4)
  cmp    $0x1,%eax
  jle    L375
  mov    0x198(%rsp),%r8
  mov    $0x1,%ecx
L472:
  mov    (%rdi,%rcx,4),%eax
  cltd
  idivl  (%r8,%rcx,4)
  mov    %eax,0x4(%rdi,%rcx,4)
  mov    0x4(%rdi,%rsi,4),%eax
  imul   (%r8,%rcx,4),%eax
  add    $0x1,%rcx
  mov    %eax,(%rdi,%rsi,4)
  sub    $0x1,%rsi
  cmp    %ecx,%esi
  jg     L472
L450:
  mov    %eax,0x60(%rsp)
  mov    0x190(%rsp),%rax
  mov    0x100(%rsp),%ebx
  mov    0x8(%rax),%r9d
  mov    0x58(%rsp),%eax
  lea    0x1(%rax),%ecx
  lea    0x1(%r9),%eax
  cmp    %ebx,0x104(%rsp)
  je     L392
  mov    0x58(%rsp),%edx
  mov    %r10d,%esi
  mov    0x94(%rsp),%edi
  mov    %r11,0x170(%rsp)
  mov    0x190(%rsp),%r15
  mov    0x190(%rsp),%r13
  mov    %r10d,0x8(%rsp)
  sub    %edx,%esi
  mov    %edi,%ebx
  mov    %r14,0x180(%rsp)
  mov    %edi,%r14d
  mov    %esi,0x10(%rsp)
  mov    %r10d,%esi
  mov    0x4(%r15),%r15d
  sub    %edx,%ebx
  sub    %r9d,%esi
  add    $0x8,%r13
  mov    %edx,%r10d
  mov    %esi,0x18(%rsp)
  movslq 0x68(%rsp),%rsi
  mov    %rsi,%r8
L582:
  lea    (%rcx,%r10,1),%r11d
  cltq
  movslq %ecx,%rcx
  nopl   0x0(%rax)
L400:
  movsd  (%r12,%rcx,8),%xmm0
  movsd  (%r12,%rax,8),%xmm1
  lea    (%r8,%rcx,1),%edi
  lea    (%r8,%rax,1),%edx
  movsd  %xmm1,(%r12,%rcx,8)
  movsd  %xmm0,(%r12,%rax,8)
  movsd  0x0(%rbp,%rax,8),%xmm1
  movsd  0x0(%rbp,%rcx,8),%xmm0
  movsd  %xmm1,0x0(%rbp,%rcx,8)
  add    %rsi,%rcx
  movsd  %xmm0,0x0(%rbp,%rax,8)
  add    %rsi,%rax
  cmp    %ecx,%r11d
  jg     L400
  lea    (%rdi,%rbx,1),%ecx
  lea    (%rdx,%rbx,1),%eax
  cmp    %ecx,0x8(%rsp)
  jg     L582
  sub    0x18(%rsp),%eax
  sub    0x10(%rsp),%ecx
  cmp    %eax,%r14d
  jg     L582
  mov    %ecx,%edi
L667:
  mov    %r13,%rdx
  mov    %r15d,%ecx
L938:
  sub    %ecx,%eax
  add    $0x4,%rdx
  add    (%rdx),%eax
  mov    -0x4(%rdx),%ecx
  cmp    %eax,%ecx
  jl     L938
  mov    %edi,%edx
L785:
  mov    %edx,%ecx
  add    %r10d,%edx
  mov    %edx,%edi
  cmp    %ecx,%eax
  jg     L582
  add    %r9d,%eax
  cmp    %eax,%r14d
  jg     L785
  cmp    %edx,%r14d
  jg     L667
  mov    0x8(%rsp),%r10d
  mov    0x170(%rsp),%r11
  mov    0x180(%rsp),%r14
L764:
  mov    0x168(%rsp),%rax
  mov    (%rax),%edx
  mov    0x60(%rsp),%eax
  mov    %eax,0x5c(%rsp)
L154:
  lea    0x1(%rdx,%rdx,1),%eax
  cmp    0x160(%rsp),%eax
  jge    L48
  mov    0x190(%rsp),%rdi
  movslq %edx,%rax
  mov    0x4(%rdi,%rax,4),%eax
  mov    0x198(%rsp),%rdi
  mov    %eax,0x38(%rsp)
  mov    0x160(%rsp),%eax
  mov    %rdi,%rsi
  sub    %edx,%eax
  mov    $0x1,%edx
  cltq
  movl   $0x1,0x4(%rdi,%rax,4)
  jmp    L570
L417:
  mov    0x4(%rsi,%rax,4),%edx
L570:
  imul   (%rsi,%rax,4),%edx
  mov    0x168(%rsp),%rdi
  mov    %edx,(%rsi,%rax,4)
  mov    (%rdi),%ecx
  sub    $0x1,%rax
  cmp    %eax,%ecx
  jne    L417
  mov    0x168(%rsp),%rdi
  lea    0x1(%rcx),%eax
  lea    0x2(%rcx),%esi
  mov    %eax,(%rdi)
  mov    0x198(%rsp),%rdi
  cltq
  mov    (%rdi,%rax,4),%edx
  mov    0x4(%rdi,%rax,4),%ecx
  lea    -0x1(%rdx),%r9d
  test   %r9d,%r9d
  jle    L413
  mov    0x190(%rsp),%rax
  mov    0x190(%rsp),%rbx
  mov    0x168(%rsp),%r13
  lea    0x4(%rax),%rdi
  lea    -0x2(%rdx),%eax
  lea    0x8(%rbx,%rax,4),%r8
  mov    0x198(%rsp),%rbx
  xor    %eax,%eax
L772:
  movslq %esi,%rsi
  add    %ecx,%eax
  lea    (%rbx,%rsi,4),%rsi
  cmp    %edx,%eax
  jl     L256
L615:
  sub    %edx,%eax
  mov    %ecx,%edx
  mov    0x4(%rsi),%ecx
  add    $0x4,%rsi
  add    %ecx,%eax
  cmp    %edx,%eax
  jge    L615
L256:
  mov    %eax,(%rdi)
  movslq 0x0(%r13),%r15
  add    $0x4,%rdi
  mov    (%rbx,%r15,4),%edx
  mov    0x4(%rbx,%r15,4),%ecx
  lea    0x1(%r15),%esi
  cmp    %rdi,%r8
  jne    L772
L413:
  mov    0x190(%rsp),%rcx
  mov    $0x1,%edx
  jmp    L298
L481:
  mov    %eax,%esi
  neg    %esi
  mov    %esi,(%rcx,%rdx,4)
  cmp    %eax,%r9d
  je     L784
L280:
  add    $0x1,%rdx
L298:
  movslq (%rcx,%rdx,4),%rax
  mov    %edx,%r8d
  test   %eax,%eax
  js     L280
  mov    %edx,%edi
  cmp    %edx,%eax
  je     L481
L612:
  lea    (%rcx,%rax,4),%rsi
  movslq (%rsi),%rax
  mov    %eax,%ebx
  neg    %ebx
  mov    %ebx,(%rsi)
  cmp    %edi,%eax
  jne    L612
  mov    %r8d,0x60(%rsp)
  jmp    L280
L380:
  movsd  0x88(%rsp),%xmm7
  mov    %r11,0x170(%rsp)
  mov    $0x1,%edi
  movsd  D76(%rip),%xmm8
  mov    %r10,0x178(%rsp)
  movapd %xmm7,%xmm0
  mov    %r9,0x180(%rsp)
  mov    0x20(%rsp),%r9d
  mulsd  %xmm7,%xmm0
  mulsd  D17(%rip),%xmm7
  subsd  %xmm0,%xmm8
  movapd %xmm7,%xmm13
L614:
  lea    (%rdi,%r9,1),%edx
  movapd %xmm8,%xmm5
  movapd %xmm8,%xmm11
  movsd  0x88(%rsp),%xmm15
  lea    (%r9,%rdx,1),%eax
  movslq %edx,%rdx
  lea    (%r9,%rax,1),%esi
  shl    $0x3,%rdx
  cltq
  lea    (%r9,%rsi,1),%ecx
  lea    (%r12,%rdx,1),%r15
  add    %rbp,%rdx
  mov    %esi,0x60(%rsp)
  mov    %ecx,0x28(%rsp)
  movslq %ecx,%rcx
  movsd  (%r15),%xmm2
  lea    0x0(,%rax,8),%r11
  shl    $0x3,%rcx
  movsd  (%rdx),%xmm3
  movslq %esi,%rax
  lea    (%r12,%r11,1),%r8
  lea    (%r12,%rcx,1),%r13
  add    %rbp,%rcx
  shl    $0x3,%rax
  movapd %xmm2,%xmm1
  movsd  (%rcx),%xmm4
  movsd  (%r8),%xmm7
  lea    (%r12,%rax,1),%rsi
  add    %rbp,%r11
  movsd  0x0(%r13),%xmm0
  lea    0x0(%rbp,%rax,1),%r10
  movslq %edi,%rax
  movsd  (%r11),%xmm6
  movapd %xmm7,%xmm10
  shl    $0x3,%rax
  addsd  %xmm0,%xmm1
  subsd  %xmm0,%xmm2
  movapd %xmm3,%xmm0
  addsd  %xmm4,%xmm0
  subsd  %xmm4,%xmm3
  movsd  (%rsi),%xmm4
  movapd %xmm6,%xmm9
  lea    (%r12,%rax,1),%rdi
  add    %rbp,%rax
  addsd  %xmm4,%xmm10
  subsd  %xmm4,%xmm7
  movsd  (%r10),%xmm4
  movsd  (%rdi),%xmm14
  movsd  (%rax),%xmm12
  mulsd  %xmm2,%xmm15
  addsd  %xmm4,%xmm9
  subsd  %xmm4,%xmm6
  movapd %xmm1,%xmm4
  addsd  %xmm14,%xmm4
  mulsd  %xmm10,%xmm5
  mulsd  %xmm13,%xmm2
  mulsd  %xmm9,%xmm11
  addsd  %xmm10,%xmm4
  mulsd  D73(%rip),%xmm10
  movsd  %xmm4,(%rdi)
  movapd %xmm0,%xmm4
  addsd  %xmm12,%xmm4
  addsd  %xmm9,%xmm4
  mulsd  D73(%rip),%xmm9
  movsd  %xmm4,(%rax)
  movsd  D73(%rip),%xmm4
  mulsd  %xmm1,%xmm4
  mulsd  %xmm8,%xmm1
  addsd  %xmm4,%xmm5
  movsd  D73(%rip),%xmm4
  addsd  %xmm10,%xmm1
  mulsd  %xmm0,%xmm4
  addsd  %xmm14,%xmm5
  mulsd  %xmm8,%xmm0
  addsd  %xmm14,%xmm1
  addsd  %xmm11,%xmm4
  movapd %xmm13,%xmm11
  mulsd  %xmm7,%xmm11
  addsd  %xmm9,%xmm0
  addsd  %xmm12,%xmm4
  addsd  %xmm12,%xmm0
  addsd  %xmm11,%xmm15
  movapd %xmm13,%xmm11
  mulsd  %xmm6,%xmm11
  movsd  %xmm15,0x30(%rsp)
  movsd  0x88(%rsp),%xmm15
  mulsd  %xmm3,%xmm15
  mulsd  %xmm13,%xmm3
  addsd  %xmm15,%xmm11
  movapd %xmm5,%xmm15
  subsd  %xmm11,%xmm15
  addsd  %xmm11,%xmm5
  movsd  0x30(%rsp),%xmm11
  movsd  %xmm15,(%r15)
  movsd  %xmm5,0x0(%r13)
  movapd %xmm11,%xmm5
  addsd  %xmm4,%xmm5
  subsd  %xmm11,%xmm4
  movsd  %xmm5,(%rdx)
  movsd  0x88(%rsp),%xmm5
  movsd  %xmm4,(%rcx)
  movapd %xmm1,%xmm4
  mov    0x28(%rsp),%ecx
  mulsd  %xmm5,%xmm6
  mulsd  %xmm5,%xmm7
  lea    (%r9,%rcx,1),%edi
  subsd  %xmm6,%xmm3
  subsd  %xmm7,%xmm2
  addsd  %xmm3,%xmm1
  subsd  %xmm3,%xmm4
  movsd  %xmm4,(%r8)
  movsd  %xmm1,(%rsi)
  movapd %xmm0,%xmm1
  subsd  %xmm2,%xmm0
  addsd  %xmm2,%xmm1
  movsd  %xmm1,(%r11)
  movsd  %xmm0,(%r10)
  mov    0x6c(%rsp),%eax
  cmp    %edi,%eax
  jg     L614
  sub    %eax,%edi
  cmp    %edi,%r9d
  jge    L614
  mov    0x170(%rsp),%r11
  mov    0x178(%rsp),%r10
  mov    0x180(%rsp),%r9
  jmp    L382
L412:
  movsd  D199(%rip),%xmm4
  mov    0x20(%rsp),%ecx
  mov    $0x1,%eax
L583:
  movsd  0xe8(%rsp),%xmm7
  lea    (%rax,%rcx,1),%edi
  movslq %eax,%rdx
  lea    (%rcx,%rdi,1),%esi
  movslq %edi,%rax
  shl    $0x3,%rdx
  movslq %esi,%rdi
  shl    $0x3,%rax
  lea    (%r12,%rdx,1),%r13
  add    %rbp,%rdx
  shl    $0x3,%rdi
  lea    (%r12,%rax,1),%r15
  add    %rbp,%rax
  movsd  (%rdx),%xmm2
  lea    (%r12,%rdi,1),%r8
  movsd  (%r15),%xmm1
  add    %rbp,%rdi
  movsd  (%rax),%xmm0
  movsd  0x0(%r13),%xmm3
  addsd  (%r8),%xmm1
  addsd  (%rdi),%xmm0
  movapd %xmm3,%xmm5
  addsd  %xmm1,%xmm5
  mulsd  %xmm4,%xmm1
  movsd  %xmm5,0x0(%r13)
  movapd %xmm2,%xmm5
  addsd  %xmm0,%xmm5
  mulsd  %xmm4,%xmm0
  addsd  %xmm3,%xmm1
  movsd  %xmm5,(%rdx)
  movsd  (%rax),%xmm3
  subsd  (%rdi),%xmm3
  movapd %xmm1,%xmm5
  addsd  %xmm2,%xmm0
  movsd  (%r15),%xmm2
  subsd  (%r8),%xmm2
  mulsd  %xmm7,%xmm3
  mulsd  %xmm7,%xmm2
  subsd  %xmm3,%xmm5
  addsd  %xmm3,%xmm1
  movsd  %xmm5,(%r15)
  movapd %xmm0,%xmm5
  subsd  %xmm2,%xmm0
  addsd  %xmm2,%xmm5
  movsd  %xmm5,(%rax)
  lea    (%rcx,%rsi,1),%eax
  movsd  %xmm1,(%r8)
  movsd  %xmm0,(%rdi)
  mov    0x6c(%rsp),%edi
  cmp    %eax,%edi
  jg     L583
  sub    %edi,%eax
  cmp    %eax,%ecx
  jge    L583
  jmp    L382
L366:
  mov    0x38(%rsp),%edi
  sub    %edi,0x40(%rsp)
  jns    L603
L48:
  add    $0x128,%rsp
  pop    %rbx
  pop    %rbp
  pop    %r12
  pop    %r13
  pop    %r14
  pop    %r15
  ret
L784:
  mov    0x68(%rsp),%r13d
  mov    0xf4(%rsp),%eax
  movslq 0x60(%rsp),%rbx
  imul   %r13d,%eax
  mov    %r13d,%edi
  mov    %rbx,0x60(%rsp)
  mov    %eax,0x30(%rsp)
  mov    %r10d,%eax
  sub    0x38(%rsp),%eax
  mov    %eax,%edx
  mov    %eax,0x40(%rsp)
  sub    %r13d,%edx
  test   %eax,%eax
  js     L48
  sub    %eax,%edx
  neg    %edi
  mov    0x190(%rsp),%r15
  mov    %r11,%rbx
  mov    %edx,%eax
  movslq %edi,%rcx
  add    $0x1,%eax
  mov    %eax,0x68(%rsp)
L603:
  mov    0x68(%rsp),%eax
  add    0x40(%rsp),%eax
  mov    %eax,0x48(%rsp)
  mov    0x60(%rsp),%rax
  mov    %rax,0x20(%rsp)
L18:
  mov    0x20(%rsp),%rdi
  mov    (%r15,%rdi,4),%eax
  mov    %eax,0x28(%rsp)
  test   %eax,%eax
  js     L954
  mov    0x5c(%rsp),%esi
  mov    %edi,0x50(%rsp)
  imul   %esi,%eax
  add    0x48(%rsp),%eax
  mov    %esi,0x8(%rsp)
  mov    %eax,0x58(%rsp)
L391:
  mov    0x8(%rsp),%eax
  mov    0x30(%rsp),%r11d
  mov    $0x8,%edx
  mov    0x58(%rsp),%edi
  cmp    %r11d,%eax
  cmovle %eax,%r11d
  sub    %r11d,%eax
  add    %eax,%edi
  mov    %eax,0x8(%rsp)
  lea    (%rdi,%r11,1),%r8d
  movslq %r8d,%rax
  nopl   0x0(%rax)
L319:
  movsd  (%r12,%rax,8),%xmm0
  movsd  %xmm0,(%rbx,%rdx,1)
  movsd  0x0(%rbp,%rax,8),%xmm0
  add    %rcx,%rax
  movsd  %xmm0,(%r14,%rdx,1)
  add    $0x8,%rdx
  cmp    %eax,%edi
  jne    L319
  mov    %rbx,0x10(%rsp)
  mov    0x28(%rsp),%r10d
  mov    %r14,0x18(%rsp)
  mov    0x5c(%rsp),%ebx
  mov    0x20(%rsp),%r14
  nopw   0x0(%rax,%rax,1)
L1001:
  movslq %r10d,%rax
  mov    %r8d,%esi
  mov    (%r15,%rax,4),%eax
  add    %eax,%r10d
  neg    %eax
  imul   %ebx,%r10d
  sub    %r10d,%esi
  mov    %eax,%r10d
  movslq %r8d,%rax
  add    %r13d,%r8d
  movslq %esi,%rdx
  sub    %r8d,%esi
  nopl   (%rax)
L91:
  movsd  (%r12,%rdx,8),%xmm0
  lea    (%rsi,%rax,1),%r9d
  mov    %edx,%r8d
  movsd  %xmm0,(%r12,%rax,8)
  movsd  0x0(%rbp,%rdx,8),%xmm0
  add    %rcx,%rdx
  movsd  %xmm0,0x0(%rbp,%rax,8)
  add    %rcx,%rax
  cmp    %eax,%edi
  jne    L91
  cmp    %r14d,%r10d
  je     L232
  mov    %r9d,%edi
  lea    (%r9,%r11,1),%r8d
  jmp    L1001
L39:
  movsd  D161(%rip),%xmm7
  movsd  %xmm7,0xe8(%rsp)
  movsd  D106(%rip),%xmm7
  movsd  %xmm7,0x88(%rsp)
  movsd  D41(%rip),%xmm7
  movsd  %xmm7,0x8(%rsp)
  jmp    L619
  nopl   0x0(%rax)
L232:
  lea    (%r11,%r9,1),%eax
  mov    0x10(%rsp),%rbx
  mov    0x18(%rsp),%r14
  mov    $0x8,%edx
  cltq
  nopl   (%rax)
L318:
  movsd  (%rbx,%rdx,1),%xmm0
  movsd  %xmm0,(%r12,%rax,8)
  movsd  (%r14,%rdx,1),%xmm0
  add    $0x8,%rdx
  movsd  %xmm0,0x0(%rbp,%rax,8)
  add    %rcx,%rax
  lea    0x0(%r13,%rax,1),%esi
  cmp    %esi,%r8d
  jne    L318
  mov    0x8(%rsp),%eax
  test   %eax,%eax
  jne    L391
  cmpl   $0x1,0x50(%rsp)
  je     L366
L954:
  subq   $0x1,0x20(%rsp)
  jmp    L18
L392:
  mov    0x190(%rsp),%rdi
  mov    0x4(%rdi),%r15d
  lea    0x8(%rdi),%r13
  mov    0x94(%rsp),%edi
L753:
  movslq %ecx,%rsi
  movslq %eax,%rdx
  add    %r9d,%eax
  shl    $0x3,%rsi
  shl    $0x3,%rdx
  lea    (%r12,%rdx,1),%r8
  lea    (%r12,%rsi,1),%rbx
  add    %rbp,%rdx
  add    %rbp,%rsi
  movsd  (%r8),%xmm1
  movsd  (%rbx),%xmm0
  movsd  %xmm1,(%rbx)
  movsd  %xmm0,(%r8)
  mov    0x68(%rsp),%r8d
  movsd  (%rsi),%xmm0
  movsd  (%rdx),%xmm1
  add    %r8d,%ecx
  movsd  %xmm1,(%rsi)
  movsd  %xmm0,(%rdx)
  cmp    %eax,%edi
  jg     L753
L373:
  mov    %r13,%rdx
  mov    %r15d,%esi
L7:
  sub    %esi,%eax
  add    $0x4,%rdx
  add    (%rdx),%eax
  mov    -0x4(%rdx),%esi
  cmp    %eax,%esi
  jl     L7
  mov    %eax,%edx
  mov    %ecx,%esi
L554:
  mov    %esi,%ecx
  mov    %edx,%eax
  add    %r8d,%esi
  add    %r9d,%edx
  cmp    %ecx,%eax
  jg     L753
  cmp    %edx,%edi
  jg     L554
  cmp    %esi,%edi
  jle    L764
  mov    %esi,%ecx
  mov    %edx,%eax
  jmp    L373
L375:
  mov    0x58(%rsp),%eax
  jmp    L450
```

tool_calls: name: extract_symbolic_data
arguments: data_tag: D13
type_guessed: f64
name: extract_symbolic_data
arguments: data_tag: D186
type_guessed: f64
name: extract_symbolic_data
arguments: data_tag: D169
type_guessed: f64
name: extract_symbolic_data
arguments: data_tag: D42
type_guessed: f64
name: extract_symbolic_data
arguments: data_tag: D44
type_guessed: f64
name: extract_symbolic_data
arguments: data_tag: D146
type_guessed: f64
name: extract_symbolic_data
arguments: data_tag: D80
type_guessed: f32[2]
name: extract_symbolic_data
arguments: data_tag: D172
type_guessed: f32[4]
name: extract_symbolic_data
arguments: data_tag: D76
type_guessed: byte[8]
name: extract_symbolic_data
arguments: data_tag: D17
type_guessed: byte[8]
name: extract_symbolic_data
arguments: data_tag: D73
type_guessed: f64
name: extract_symbolic_data
arguments: data_tag: D199
type_guessed: f32[2]
name: extract_symbolic_data
arguments: data_tag: D161
type_guessed: byte[8]
name: extract_symbolic_data
arguments: data_tag: D106
type_guessed: byte[8]
name: extract_symbolic_data
arguments: data_tag: D41
type_guessed: byte[8]

tool: D13: 1

tool: D186: 0.8660254037844387

tool: D169: 0.9510565162951535

tool: D42: 0.7853981633974483

tool: D44: 8

tool: D146: 0.5

tool: {"D80": [0.0,1.5]}

tool: {"D172": [0.0,-0.0,0.0,0.0]}

tool: {"D76": [0x62,0x2d,0xa0,0x91,0x21,0x72,0xb8,0x3f]}

tool: {"D17": [0x50,0xe9,0x2f,0x37,0xef,0xc6,0xe3,0x3f]}

tool: D73: 0.30901699437494745

tool: {"D199": [0.0,-1.75]}

tool: {"D161": [0xab,0x4c,0x58,0xe8,0x7a,0xb6,0xeb,0xbf]}

tool: {"D106": [0xff,0x54,0x44,0x13,0x0e,0x6f,0xee,0xbf]}

tool: {"D41": [0x18,0x2d,0x44,0x54,0xfb,0x21,0xe9,0xbf]}

assistant: ```c
void fftmx(double *a, double *b, int ntot, int n, int nspan, int isn, int m, int *kt, double *at, double *ck, double *bt, double *sk, int *np, int nfac[]) {
  int i, inc, j, jc, jf, jj, k, k1, k2, k3, k4, kk, klim, ks, kspan, kspnn, lim, maxf, mm, nn, nt;
  double aa, aj, ajm, ajp, ak, akm, akp, bb, bj, bjm, bjp, bk, bkm, bkp, c1, c2, c3, c72, cd, dr, rad, sd, s1, s2, s3, s72, s120;
  double xx;
  c2 = c3 = s2 = s3 = k3 = 0;
  inc = abs(isn);
  nt = inc * ntot;
  ks = inc * nspan;
  rad = 0.785398163397448278900;
  c72 = 0.309016994374947451270;
  s72 = 0.951056516295153531190;
  s120 = 0.866025403784438707600;
  if (isn < 0) {
    s72 = -s72;
    s120 = -s120;
    rad = -rad;
  } else {
    ak = 1.0 / (double)n;
    for (j = 1; j <= nt; j += inc) {
      a[j] *= (double)ak;
      b[j] *= (double)ak;
    }
  }
  kspan = ks;
  nn = nt - inc;
  jc = ks / n;
  lim = 32;
  klim = lim * jc;
  i = 0;
  jf = 0;
  maxf = m - (*kt);
  maxf = nfac[maxf];
  if ((*kt) > 0 && maxf < nfac[*kt])
    maxf = nfac[*kt];
lbl40:
  dr = (8.0 * (double)jc) / ((double)kspan);
  xx = sin((double)0.5 * dr * rad);
  cd = 2.0 * xx * xx;
  sd = sin(dr * rad);
  kk = 1;
  if (nfac[++i] != 2)
    goto lbl110;
  kspan /= 2;
  k1 = kspan + 2;
  do {
    do {
      k2 = kk + kspan;
      ak = a[k2];
      bk = b[k2];
      a[k2] = (a[kk]) - (double)ak;
      b[k2] = (b[kk]) - (double)bk;
      a[kk] = (a[kk]) + (double)ak;
      b[kk] = (b[kk]) + (double)bk;
      kk = k2 + kspan;
    } while (kk <= nn);
    kk -= nn;
  } while (kk <= jc);
  if (kk > kspan)
    goto lbl350;
lbl60:
  c1 = 1.0 - cd;
  s1 = sd;
  mm = (k1 / 2 < klim ? k1 / 2 : klim);
  goto lbl80;
lbl70:
  ak = c1 - ((cd * c1) + (sd * s1));
  s1 = ((sd * c1) - (cd * s1)) + s1;
  c1 = ak;
lbl80:
  do {
    do {
      k2 = kk + kspan;
      ak = a[kk] - a[k2];
      bk = b[kk] - b[k2];
      a[kk] = a[kk] + a[k2];
      b[kk] = b[kk] + b[k2];
      a[k2] = (double)((c1 * ak) - (s1 * bk));
      b[k2] = (double)((s1 * ak) + (c1 * bk));
      kk = k2 + kspan;
    } while (kk < nt);
    k2 = kk - nt;
    c1 = -c1;
    kk = k1 - k2;
  } while (kk > k2);
  kk += jc;
  if (kk <= mm)
    goto lbl70;
  if (kk < k2)
    goto lbl90;
  k1 += (inc + inc);
  kk = ((k1 - kspan) / 2) + jc;
  if (kk <= (jc + jc))
    goto lbl60;
  goto lbl40;
lbl90:
  s1 = ((double)((kk - 1) / jc)) * dr * rad;
  c1 = cos(s1);
  s1 = sin(s1);
  mm = (k1 / 2 < mm + klim ? k1 / 2 : mm + klim);
  goto lbl80;
lbl100:
  k1 = kk + kspan;
  k2 = k1 + kspan;
  ak = a[kk];
  bk = b[kk];
  aj = a[k1] + a[k2];
  bj = b[k1] + b[k2];
  a[kk] = (double)(ak + aj);
  b[kk] = (double)(bk + bj);
  ak += (-0.5 * aj);
  bk += (-0.5 * bj);
  aj = (a[k1] - a[k2]) * s120;
  bj = (b[k1] - b[k2]) * s120;
  a[k1] = (double)(ak - bj);
  b[k1] = (double)(bk + aj);
  a[k2] = (double)(ak + bj);
  b[k2] = (double)(bk - aj);
  kk = k2 + kspan;
  if (kk < nn)
    goto lbl100;
  kk -= nn;
  if (kk <= kspan)
    goto lbl100;
  goto lbl290;
lbl110:
  if (nfac[i] != 4)
    goto lbl230;
  kspnn = kspan;
  kspan = kspan / 4;
lbl120:
  c1 = 1.0;
  s1 = 0;
  mm = (kspan < klim ? kspan : klim);
  goto lbl150;
lbl130:
  c2 = c1 - ((cd * c1) + (sd * s1));
  s1 = ((sd * c1) - (cd * s1)) + s1;
  c1 = c2;
lbl140:
  c2 = (c1 * c1) - (s1 * s1);
  s2 = c1 * s1 * 2.0;
  c3 = (c2 * c1) - (s2 * s1);
  s3 = (c2 * s1) + (s2 * c1);
lbl150:
  k1 = kk + kspan;
  k2 = k1 + kspan;
  k3 = k2 + kspan;
  akp = a[kk] + a[k2];
  akm = a[kk] - a[k2];
  ajp = a[k1] + a[k3];
  ajm = a[k1] - a[k3];
  a[kk] = (double)(akp + ajp);
  ajp = akp - ajp;
  bkp = b[kk] + b[k2];
  bkm = b[kk] - b[k2];
  bjp = b[k1] + b[k3];
  bjm = b[k1] - b[k3];
  b[kk] = (double)(bkp + bjp);
  bjp = bkp - bjp;
  if (isn < 0)
    goto lbl180;
  akp = akm - bjm;
  akm = akm + bjm;
  bkp = bkm + ajm;
  bkm = bkm - ajm;
  if (s1 == 0.0)
    goto lbl190;
lbl160:
  a[k1] = (double)((akp * c1) - (bkp * s1));
  b[k1] = (double)((akp * s1) + (bkp * c1));
  a[k2] = (double)((ajp * c2) - (bjp * s2));
  b[k2] = (double)((ajp * s2) + (bjp * c2));
  a[k3] = (double)((akm * c3) - (bkm * s3));
  b[k3] = (double)((akm * s3) + (bkm * c3));
  kk = k3 + kspan;
  if (kk <= nt)
    goto lbl150;
lbl170:
  kk -= (nt - jc);
  if (kk <= mm)
    goto lbl130;
  if (kk < kspan)
    goto lbl200;
  kk -= (kspan - inc);
  if (kk <= jc)
    goto lbl120;
  if (kspan == jc)
    goto lbl350;
  goto lbl40;
lbl180:
  akp = akm + bjm;
  akm = akm - bjm;
  bkp = bkm - ajm;
  bkm = bkm + ajm;
  if (s1 != 0.0)
    goto lbl160;
lbl190:
  a[k1] = (double)akp;
  b[k1] = (double)bkp;
  a[k2] = (double)ajp;
  b[k2] = (double)bjp;
  a[k3] = (double)akm;
  b[k3] = (double)bkm;
  kk = k3 + kspan;
  if (kk <= nt)
    goto lbl150;
  goto lbl170;
lbl200:
  s1 = ((double)((kk - 1) / jc)) * dr * rad;
  c1 = cos(s1);
  s1 = sin(s1);
  mm = (kspan < mm + klim ? kspan : mm + klim);
  goto lbl140;
lbl210:
  c2 = (c72 * c72) - (s72 * s72);
  s2 = 2.0 * c72 * s72;
lbl220:
  k1 = kk + kspan;
  k2 = k1 + kspan;
  k3 = k2 + kspan;
  k4 = k3 + kspan;
  akp = a[k1] + a[k4];
  akm = a[k1] - a[k4];
  bkp = b[k1] + b[k4];
  bkm = b[k1] - b[k4];
  ajp = a[k2] + a[k3];
  ajm = a[k2] - a[k3];
  bjp = b[k2] + b[k3];
  bjm = b[k2] - b[k3];
  aa = a[kk];
  bb = b[kk];
  a[kk] = (double)(aa + akp + ajp);
  b[kk] = (double)(bb + bkp + bjp);
  ak = (akp * c72) + (ajp * c2) + aa;
  bk = (bkp * c72) + (bjp * c2) + bb;
  aj = (akm * s72) + (ajm * s2);
  bj = (bkm * s72) + (bjm * s2);
  a[k1] = (double)(ak - bj);
  a[k4] = (double)(ak + bj);
  b[k1] = (double)(bk + aj);
  b[k4] = (double)(bk - aj);
  ak = (akp * c2) + (ajp * c72) + aa;
  bk = (bkp * c2) + (bjp * c72) + bb;
  aj = (akm * s2) - (ajm * s72);
  bj = (bkm * s2) - (bjm * s72);
  a[k2] = (double)(ak - bj);
  a[k3] = (double)(ak + bj);
  b[k2] = (double)(bk + aj);
  b[k3] = (double)(bk - aj);
  kk = k4 + kspan;
  if (kk < nn)
    goto lbl220;
  kk -= nn;
  if (kk <= kspan)
    goto lbl220;
  goto lbl290;
lbl230:
  k = nfac[i];
  kspnn = kspan;
  kspan /= k;
  if (k == 3)
    goto lbl100;
  if (k == 5)
    goto lbl210;
  if (k == jf)
    goto lbl250;
  jf = k;
  s1 = rad / (((double)(k)) / 8.0);
  c1 = cos(s1);
  s1 = sin(s1);
  ck[jf] = 1.0;
  sk[jf] = 0.0;
  for (j = 1; j < k; j++) {
    ck[j] = (double)((ck[k]) * c1 + (sk[k]) * s1);
    sk[j] = (double)((ck[k]) * s1 - (sk[k]) * c1);
    k--;
    ck[k] = ck[j];
    sk[k] = -(sk[j]);
  }
lbl250:
  k1 = kk;
  k2 = kk + kspnn;
  aa = a[kk];
  bb = b[kk];
  ak = aa;
  bk = bb;
  j = 1;
  k1 += kspan;
  do {
    k2 -= kspan;
    j++;
    at[j] = a[k1] + a[k2];
    ak = at[j] + ak;
    bt[j] = b[k1] + b[k2];
    bk = bt[j] + bk;
    j++;
    at[j] = a[k1] - a[k2];
    bt[j] = b[k1] - b[k2];
    k1 += kspan;
  } while (k1 < k2);
  a[kk] = (double)ak;
  b[kk] = (double)bk;
  k1 = kk;
  k2 = kk + kspnn;
  j = 1;
lbl270:
  k1 += kspan;
  k2 -= kspan;
  jj = j;
  ak = aa;
  bk = bb;
  aj = 0.0;
  bj = 0.0;
  k = 1;
  do {
    k++;
    ak = (at[k] * ck[jj]) + ak;
    bk = (bt[k] * ck[jj]) + bk;
    k++;
    aj = (at[k] * sk[jj]) + aj;
    bj = (bt[k] * sk[jj]) + bj;
    jj += j;
    if (jj > jf)
      jj -= jf;
  } while (k < jf);
  k = jf - j;
  a[k1] = (double)(ak - bj);
  b[k1] = (double)(bk + aj);
  a[k2] = (double)(ak + bj);
  b[k2] = (double)(bk - aj);
  j++;
  if (j < k)
    goto lbl270;
  kk += kspnn;
  if (kk <= nn)
    goto lbl250;
  kk -= nn;
  if (kk <= kspan)
    goto lbl250;
lbl290:
  if (i == m)
    goto lbl350;
  kk = jc + 1;
lbl300:
  c2 = 1.0 - cd;
  s1 = sd;
  mm = (kspan < klim ? kspan : klim);
  goto lbl320;
lbl310:
  c2 = c1 - ((cd * c1) + (sd * s1));
  s1 = s1 + ((sd * c1) - (cd * s1));
lbl320:
  c1 = c2;
  s2 = s1;
  kk += kspan;
lbl330:
  ak = a[kk];
  a[kk] = (double)((c2 * ak) - (s2 * b[kk]));
  b[kk] = (double)((s2 * ak) + (c2 * b[kk]));
  kk += kspnn;
  if (kk <= nt)
    goto lbl330;
  ak = s1 * s2;
  s2 = (s1 * c2) + (c1 * s2);
  c2 = (c1 * c2) - ak;
  kk -= (nt - kspan);
  if (kk <= kspnn)
    goto lbl330;
  kk -= (kspnn - jc);
  if (kk <= mm)
    goto lbl310;
  if (kk < kspan)
    goto lbl340;
  kk -= (kspan - jc - inc);
  if (kk <= (jc + jc))
    goto lbl300;
  goto lbl40;
lbl340:
  s1 = ((double)((kk - 1) / jc)) * dr * rad;
  c2 = cos(s1);
  s1 = sin(s1);
  mm = (kspan < mm + klim ? kspan : mm + klim);
  goto lbl320;
lbl350:
  np[1] = ks;
  if (!(*kt))
    goto lbl440;
  k = *kt + *kt + 1;
  if (m < k)
    k--;
  np[k + 1] = jc;
  for (j = 1; j < k; j++, k--) {
    np[j + 1] = np[j] / nfac[j];
    np[k] = np[k + 1] * nfac[j];
  }
  k3 = np[k + 1];
  kspan = np[2];
  kk = jc + 1;
  k2 = kspan + 1;
  j = 1;
  if (n != ntot)
    goto lbl400;
lbl370:
  do {
    ak = a[kk];
    a[kk] = a[k2];
    a[k2] = (double)ak;
    bk = b[kk];
    b[kk] = b[k2];
    b[k2] = (double)bk;
    kk += inc;
    k2 += kspan;
  } while (k2 < ks);
lbl380:
  do {
    k2 -= np[j++];
    k2 += np[j + 1];
  } while (k2 > np[j]);
  j = 1;
lbl390:
  if (kk < k2) {
    goto lbl370;
  }
  kk += inc;
  k2 += kspan;
  if (k2 < ks)
    goto lbl390;
  if (kk < ks)
    goto lbl380;
  jc = k3;
  goto lbl440;
lbl400:
  do {
    do {
      k = kk + jc;
      do {
        ak = a[kk];
        a[kk] = a[k2];
        a[k2] = (double)ak;
        bk = b[kk];
        b[kk] = b[k2];
        b[k2] = (double)bk;
        kk += inc;
        k2 += inc;
      } while (kk < k);
      kk += (ks - jc);
      k2 += (ks - jc);
    } while (kk < nt);
    k2 -= (nt - kspan);
    kk -= (nt - jc);
  } while (k2 < ks);
lbl420:
  do {
    k2 -= np[j++];
    k2 += np[j + 1];
  } while (k2 > np[j]);
  j = 1;
lbl430:
  if (kk < k2)
    goto lbl400;
  kk += jc;
  k2 += kspan;
  if (k2 < ks)
    goto lbl430;
  if (kk < ks)
    goto lbl420;
  jc = k3;
lbl440:
  if ((2 * (*kt)) + 1 >= m)
    return;
  kspnn = *(np + *(kt) + 1);
  j = m - *kt;
  nfac[j + 1] = 1;
lbl450:
  nfac[j] = nfac[j] * nfac[j + 1];
  j--;
  if (j != *kt)
    goto lbl450;
  *kt = *(kt) + 1;
  nn = nfac[*kt] - 1;
  jj = 0;
  j = 0;
  goto lbl480;
lbl460:
  jj -= k2;
  k2 = kk;
  kk = nfac[++k];
lbl470:
  jj += kk;
  if (jj >= k2)
    goto lbl460;
  np[j] = jj;
lbl480:
  k2 = nfac[*kt];
  k = *kt + 1;
  kk = nfac[k];
  j++;
  if (j <= nn)
    goto lbl470;
  j = 0;
  goto lbl500;
lbl490:
  k = kk;
  kk = np[k];
  np[k] = -kk;
  if (kk != j)
    goto lbl490;
  k3 = kk;
lbl500:
  kk = np[++j];
  if (kk < 0)
    goto lbl500;
  if (kk != j)
    goto lbl490;
  np[j] = -j;
  if (j != nn)
    goto lbl500;
  maxf *= inc;
  goto lbl570;
lbl510:
  j--;
  if (np[j] < 0)
    goto lbl510;
  jj = jc;
lbl520:
  kspan = jj;
  if (jj > maxf)
    kspan = maxf;
  jj -= kspan;
  k = np[j];
  kk = (jc * k) + i + jj;
  k1 = kk + kspan;
  k2 = 0;
lbl530:
  k2++;
  at[k2] = a[k1];
  bt[k2] = b[k1];
  k1 -= inc;
  if (k1 != kk)
    goto lbl530;
lbl540:
  k1 = kk + kspan;
  k2 = k1 - (jc * (k + np[k]));
  k = -(np[k]);
lbl550:
  a[k1] = a[k2];
  b[k1] = b[k2];
  k1 -= inc;
  k2 -= inc;
  if (k1 != kk)
    goto lbl550;
  kk = k2;
  if (k != j)
    goto lbl540;
  k1 = kk + kspan;
  k2 = 0;
lbl560:
  k2++;
  a[k1] = at[k2];
  b[k1] = bt[k2];
  k1 -= inc;
  if (k1 != kk)
    goto lbl560;
  if (jj)
    goto lbl520;
  if (j != 1)
    goto lbl510;
lbl570:
  j = k3 + 1;
  nt -= kspnn;
  i = nt - inc + 1;
  if (nt >= 0)
    goto lbl510;
  return;
}
```