user: Translate the below assembly code into C programming language:

```asm
<fftmx>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  sub    $0x160,%rsp
  mov    %rdi,-0x148(%rbp)
  mov    %rsi,-0x150(%rbp)
  mov    %edx,-0x154(%rbp)
  mov    %ecx,-0x158(%rbp)
  mov    %r8d,-0x15c(%rbp)
  mov    %r9d,-0x160(%rbp)
  movl   $0x0,-0x114(%rbp)
  pxor   %xmm0,%xmm0
  movsd  %xmm0,-0x70(%rbp)
  movsd  -0x70(%rbp),%xmm0
  movsd  %xmm0,-0x78(%rbp)
  movsd  -0x78(%rbp),%xmm0
  movsd  %xmm0,-0x90(%rbp)
  movsd  -0x90(%rbp),%xmm0
  movsd  %xmm0,-0x98(%rbp)
  mov    -0x160(%rbp),%eax
  mov    %eax,%edx
  neg    %edx
  cmovns %edx,%eax
  mov    %eax,-0xfc(%rbp)
  mov    -0xfc(%rbp),%eax
  imul   -0x154(%rbp),%eax
  mov    %eax,-0x100(%rbp)
  mov    -0xfc(%rbp),%eax
  imul   -0x15c(%rbp),%eax
  mov    %eax,-0xf8(%rbp)
  movsd  D33(%rip),%xmm0
  movsd  %xmm0,-0x88(%rbp)
  movsd  D91(%rip),%xmm0
  movsd  %xmm0,-0x58(%rbp)
  movsd  D112(%rip),%xmm0
  movsd  %xmm0,-0x68(%rbp)
  movsd  D7(%rip),%xmm0
  movsd  %xmm0,-0x60(%rbp)
  cmpl   $0x0,-0x160(%rbp)
  jns    L553
  movsd  -0x68(%rbp),%xmm0
  movq   D31(%rip),%xmm1
  xorpd  %xmm1,%xmm0
  movsd  %xmm0,-0x68(%rbp)
  movsd  -0x60(%rbp),%xmm0
  movq   D31(%rip),%xmm1
  xorpd  %xmm1,%xmm0
  movsd  %xmm0,-0x60(%rbp)
  movsd  -0x88(%rbp),%xmm0
  movq   D31(%rip),%xmm1
  xorpd  %xmm1,%xmm0
  movsd  %xmm0,-0x88(%rbp)
  jmp    L491
L553:
  pxor   %xmm1,%xmm1
  cvtsi2sdl -0x158(%rbp),%xmm1
  movsd  D149(%rip),%xmm0
  divsd  %xmm1,%xmm0
  movsd  %xmm0,-0xd8(%rbp)
  movl   $0x1,-0x130(%rbp)
  jmp    L91
L692:
  mov    -0x130(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x148(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mov    -0x130(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x148(%rbp),%rax
  add    %rdx,%rax
  mulsd  -0xd8(%rbp),%xmm0
  movsd  %xmm0,(%rax)
  mov    -0x130(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x150(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mov    -0x130(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x150(%rbp),%rax
  add    %rdx,%rax
  mulsd  -0xd8(%rbp),%xmm0
  movsd  %xmm0,(%rax)
  mov    -0xfc(%rbp),%eax
  add    %eax,-0x130(%rbp)
L91:
  mov    -0x130(%rbp),%eax
  cmp    -0x100(%rbp),%eax
  jle    L692
L491:
  mov    -0xf8(%rbp),%eax
  mov    %eax,-0x10c(%rbp)
  mov    -0x100(%rbp),%eax
  sub    -0xfc(%rbp),%eax
  mov    %eax,-0xf4(%rbp)
  mov    -0xf8(%rbp),%eax
  cltd
  idivl  -0x158(%rbp)
  mov    %eax,-0x12c(%rbp)
  movl   $0x20,-0xf0(%rbp)
  mov    -0xf0(%rbp),%eax
  imul   -0x12c(%rbp),%eax
  mov    %eax,-0xec(%rbp)
  movl   $0x0,-0x134(%rbp)
  movl   $0x0,-0x128(%rbp)
  mov    0x18(%rbp),%rax
  mov    (%rax),%edx
  mov    0x10(%rbp),%eax
  sub    %edx,%eax
  mov    %eax,-0x108(%rbp)
  mov    -0x108(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    0x48(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%eax
  mov    %eax,-0x108(%rbp)
  mov    0x18(%rbp),%rax
  mov    (%rax),%eax
  test   %eax,%eax
  jle    L404
  mov    0x18(%rbp),%rax
  mov    (%rax),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    0x48(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%eax
  cmp    %eax,-0x108(%rbp)
  jge    L404
  mov    0x18(%rbp),%rax
  mov    (%rax),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    0x48(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%eax
  mov    %eax,-0x108(%rbp)
  jmp    L512
L404:
  nop
L512:
  pxor   %xmm1,%xmm1
  cvtsi2sdl -0x12c(%rbp),%xmm1
  movsd  D187(%rip),%xmm0
  mulsd  %xmm1,%xmm0
  pxor   %xmm1,%xmm1
  cvtsi2sdl -0x10c(%rbp),%xmm1
  divsd  %xmm1,%xmm0
  movsd  %xmm0,-0x50(%rbp)
  movsd  -0x50(%rbp),%xmm1
  movsd  D38(%rip),%xmm0
  mulsd  %xmm1,%xmm0
  mulsd  -0x88(%rbp),%xmm0
  movq   %xmm0,%rax
  movq   %rax,%xmm0
  call   <sin@plt>
  movq   %xmm0,%rax
  mov    %rax,-0x48(%rbp)
  movsd  -0x48(%rbp),%xmm0
  addsd  %xmm0,%xmm0
  movsd  -0x48(%rbp),%xmm1
  mulsd  %xmm1,%xmm0
  movsd  %xmm0,-0x40(%rbp)
  movsd  -0x50(%rbp),%xmm0
  mulsd  -0x88(%rbp),%xmm0
  movq   %xmm0,%rax
  movq   %rax,%xmm0
  call   <sin@plt>
  movq   %xmm0,%rax
  mov    %rax,-0x38(%rbp)
  movl   $0x1,-0x110(%rbp)
  addl   $0x1,-0x134(%rbp)
  mov    -0x134(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    0x48(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%eax
  cmp    $0x2,%eax
  jne    L200
  mov    -0x10c(%rbp),%eax
  mov    %eax,%edx
  shr    $0x1f,%edx
  add    %edx,%eax
  sar    %eax
  mov    %eax,-0x10c(%rbp)
  mov    -0x10c(%rbp),%eax
  add    $0x2,%eax
  mov    %eax,-0x11c(%rbp)
L120:
  mov    -0x110(%rbp),%edx
  mov    -0x10c(%rbp),%eax
  add    %edx,%eax
  mov    %eax,-0x118(%rbp)
  mov    -0x118(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x148(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  movsd  %xmm0,-0xd8(%rbp)
  mov    -0x118(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x150(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  movsd  %xmm0,-0xb8(%rbp)
  mov    -0x110(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x148(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mov    -0x118(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x148(%rbp),%rax
  add    %rdx,%rax
  subsd  -0xd8(%rbp),%xmm0
  movsd  %xmm0,(%rax)
  mov    -0x110(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x150(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mov    -0x118(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x150(%rbp),%rax
  add    %rdx,%rax
  subsd  -0xb8(%rbp),%xmm0
  movsd  %xmm0,(%rax)
  mov    -0x110(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x148(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mov    -0x110(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x148(%rbp),%rax
  add    %rdx,%rax
  addsd  -0xd8(%rbp),%xmm0
  movsd  %xmm0,(%rax)
  mov    -0x110(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x150(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mov    -0x110(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x150(%rbp),%rax
  add    %rdx,%rax
  addsd  -0xb8(%rbp),%xmm0
  movsd  %xmm0,(%rax)
  mov    -0x118(%rbp),%edx
  mov    -0x10c(%rbp),%eax
  add    %edx,%eax
  mov    %eax,-0x110(%rbp)
  mov    -0x110(%rbp),%eax
  cmp    -0xf4(%rbp),%eax
  jle    L120
  mov    -0xf4(%rbp),%eax
  sub    %eax,-0x110(%rbp)
  mov    -0x110(%rbp),%eax
  cmp    -0x12c(%rbp),%eax
  jle    L120
  mov    -0x110(%rbp),%eax
  cmp    -0x10c(%rbp),%eax
  jg     L1256
  nop
L1106:
  movsd  D149(%rip),%xmm0
  subsd  -0x40(%rbp),%xmm0
  movsd  %xmm0,-0xa0(%rbp)
  movsd  -0x38(%rbp),%xmm0
  movsd  %xmm0,-0x80(%rbp)
  mov    -0x11c(%rbp),%eax
  mov    %eax,%edx
  shr    $0x1f,%edx
  add    %edx,%eax
  sar    %eax
  mov    %eax,%edx
  mov    -0xec(%rbp),%eax
  cmp    %edx,%eax
  cmovg  %edx,%eax
  mov    %eax,-0x104(%rbp)
  jmp    L369
L789:
  nop
  movsd  -0x40(%rbp),%xmm0
  movapd %xmm0,%xmm1
  mulsd  -0xa0(%rbp),%xmm1
  movsd  -0x38(%rbp),%xmm0
  mulsd  -0x80(%rbp),%xmm0
  addsd  %xmm0,%xmm1
  movsd  -0xa0(%rbp),%xmm0
  subsd  %xmm1,%xmm0
  movsd  %xmm0,-0xd8(%rbp)
  movsd  -0x38(%rbp),%xmm0
  mulsd  -0xa0(%rbp),%xmm0
  movsd  -0x40(%rbp),%xmm1
  mulsd  -0x80(%rbp),%xmm1
  subsd  %xmm1,%xmm0
  movsd  -0x80(%rbp),%xmm1
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0x80(%rbp)
  movsd  -0xd8(%rbp),%xmm0
  movsd  %xmm0,-0xa0(%rbp)
L369:
  mov    -0x110(%rbp),%edx
  mov    -0x10c(%rbp),%eax
  add    %edx,%eax
  mov    %eax,-0x118(%rbp)
  mov    -0x110(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x148(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mov    -0x118(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x148(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm1
  subsd  %xmm1,%xmm0
  movsd  %xmm0,-0xd8(%rbp)
  mov    -0x110(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x150(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mov    -0x118(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x150(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm1
  subsd  %xmm1,%xmm0
  movsd  %xmm0,-0xb8(%rbp)
  mov    -0x110(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x148(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm1
  mov    -0x118(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x148(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mov    -0x110(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x148(%rbp),%rax
  add    %rdx,%rax
  addsd  %xmm1,%xmm0
  movsd  %xmm0,(%rax)
  mov    -0x110(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x150(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm1
  mov    -0x118(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x150(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mov    -0x110(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x150(%rbp),%rax
  add    %rdx,%rax
  addsd  %xmm1,%xmm0
  movsd  %xmm0,(%rax)
  movsd  -0xa0(%rbp),%xmm0
  mulsd  -0xd8(%rbp),%xmm0
  movsd  -0x80(%rbp),%xmm1
  mulsd  -0xb8(%rbp),%xmm1
  mov    -0x118(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x148(%rbp),%rax
  add    %rdx,%rax
  subsd  %xmm1,%xmm0
  movsd  %xmm0,(%rax)
  movsd  -0x80(%rbp),%xmm0
  movapd %xmm0,%xmm1
  mulsd  -0xd8(%rbp),%xmm1
  movsd  -0xa0(%rbp),%xmm0
  mulsd  -0xb8(%rbp),%xmm0
  mov    -0x118(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x150(%rbp),%rax
  add    %rdx,%rax
  addsd  %xmm1,%xmm0
  movsd  %xmm0,(%rax)
  mov    -0x118(%rbp),%edx
  mov    -0x10c(%rbp),%eax
  add    %edx,%eax
  mov    %eax,-0x110(%rbp)
  mov    -0x110(%rbp),%eax
  cmp    -0x100(%rbp),%eax
  jl     L369
  mov    -0x110(%rbp),%eax
  sub    -0x100(%rbp),%eax
  mov    %eax,-0x118(%rbp)
  movsd  -0xa0(%rbp),%xmm0
  movq   D31(%rip),%xmm1
  xorpd  %xmm1,%xmm0
  movsd  %xmm0,-0xa0(%rbp)
  mov    -0x11c(%rbp),%eax
  sub    -0x118(%rbp),%eax
  mov    %eax,-0x110(%rbp)
  mov    -0x110(%rbp),%eax
  cmp    -0x118(%rbp),%eax
  jg     L369
  mov    -0x12c(%rbp),%eax
  add    %eax,-0x110(%rbp)
  mov    -0x110(%rbp),%eax
  cmp    -0x104(%rbp),%eax
  jle    L789
  mov    -0x110(%rbp),%eax
  cmp    -0x118(%rbp),%eax
  jl     L712
  mov    -0xfc(%rbp),%eax
  add    %eax,%eax
  add    %eax,-0x11c(%rbp)
  mov    -0x11c(%rbp),%eax
  sub    -0x10c(%rbp),%eax
  mov    %eax,%edx
  shr    $0x1f,%edx
  add    %edx,%eax
  sar    %eax
  mov    %eax,%edx
  mov    -0x12c(%rbp),%eax
  add    %edx,%eax
  mov    %eax,-0x110(%rbp)
  mov    -0x12c(%rbp),%eax
  add    %eax,%eax
  cmp    %eax,-0x110(%rbp)
  jg     L512
  jmp    L1106
L712:
  nop
  mov    -0x110(%rbp),%eax
  sub    $0x1,%eax
  cltd
  idivl  -0x12c(%rbp)
  pxor   %xmm0,%xmm0
  cvtsi2sd %eax,%xmm0
  mulsd  -0x50(%rbp),%xmm0
  movsd  -0x88(%rbp),%xmm1
  mulsd  %xmm1,%xmm0
  movsd  %xmm0,-0x80(%rbp)
  mov    -0x80(%rbp),%rax
  movq   %rax,%xmm0
  call   <cos@plt>
  movq   %xmm0,%rax
  mov    %rax,-0xa0(%rbp)
  mov    -0x80(%rbp),%rax
  movq   %rax,%xmm0
  call   <sin@plt>
  movq   %xmm0,%rax
  mov    %rax,-0x80(%rbp)
  mov    -0x104(%rbp),%edx
  mov    -0xec(%rbp),%eax
  add    %edx,%eax
  mov    -0x11c(%rbp),%edx
  mov    %edx,%ecx
  shr    $0x1f,%ecx
  add    %ecx,%edx
  sar    %edx
  cmp    %edx,%eax
  cmovg  %edx,%eax
  mov    %eax,-0x104(%rbp)
  jmp    L369
L447:
  mov    -0x110(%rbp),%edx
  mov    -0x10c(%rbp),%eax
  add    %edx,%eax
  mov    %eax,-0x11c(%rbp)
  mov    -0x11c(%rbp),%edx
  mov    -0x10c(%rbp),%eax
  add    %edx,%eax
  mov    %eax,-0x118(%rbp)
  mov    -0x110(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x148(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  movsd  %xmm0,-0xd8(%rbp)
  mov    -0x110(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x150(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  movsd  %xmm0,-0xb8(%rbp)
  mov    -0x11c(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x148(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm1
  mov    -0x118(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x148(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0xe0(%rbp)
  mov    -0x11c(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x150(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm1
  mov    -0x118(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x150(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0xc0(%rbp)
  mov    -0x110(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x148(%rbp),%rax
  add    %rdx,%rax
  movsd  -0xd8(%rbp),%xmm0
  addsd  -0xe0(%rbp),%xmm0
  movsd  %xmm0,(%rax)
  mov    -0x110(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x150(%rbp),%rax
  add    %rdx,%rax
  movsd  -0xb8(%rbp),%xmm0
  addsd  -0xc0(%rbp),%xmm0
  movsd  %xmm0,(%rax)
  movsd  -0xe0(%rbp),%xmm1
  movsd  D74(%rip),%xmm0
  mulsd  %xmm1,%xmm0
  movsd  -0xd8(%rbp),%xmm1
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0xd8(%rbp)
  movsd  -0xc0(%rbp),%xmm1
  movsd  D74(%rip),%xmm0
  mulsd  %xmm1,%xmm0
  movsd  -0xb8(%rbp),%xmm1
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0xb8(%rbp)
  mov    -0x11c(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x148(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mov    -0x118(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x148(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm1
  subsd  %xmm1,%xmm0
  movsd  -0x60(%rbp),%xmm1
  mulsd  %xmm1,%xmm0
  movsd  %xmm0,-0xe0(%rbp)
  mov    -0x11c(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x150(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mov    -0x118(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x150(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm1
  subsd  %xmm1,%xmm0
  movsd  -0x60(%rbp),%xmm1
  mulsd  %xmm1,%xmm0
  movsd  %xmm0,-0xc0(%rbp)
  mov    -0x11c(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x148(%rbp),%rax
  add    %rdx,%rax
  movsd  -0xd8(%rbp),%xmm0
  subsd  -0xc0(%rbp),%xmm0
  movsd  %xmm0,(%rax)
  mov    -0x11c(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x150(%rbp),%rax
  add    %rdx,%rax
  movsd  -0xb8(%rbp),%xmm0
  addsd  -0xe0(%rbp),%xmm0
  movsd  %xmm0,(%rax)
  mov    -0x118(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x148(%rbp),%rax
  add    %rdx,%rax
  movsd  -0xd8(%rbp),%xmm0
  addsd  -0xc0(%rbp),%xmm0
  movsd  %xmm0,(%rax)
  mov    -0x118(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x150(%rbp),%rax
  add    %rdx,%rax
  movsd  -0xb8(%rbp),%xmm0
  subsd  -0xe0(%rbp),%xmm0
  movsd  %xmm0,(%rax)
  mov    -0x118(%rbp),%edx
  mov    -0x10c(%rbp),%eax
  add    %edx,%eax
  mov    %eax,-0x110(%rbp)
  mov    -0x110(%rbp),%eax
  cmp    -0xf4(%rbp),%eax
  jge    L900
  jmp    L447
L900:
  mov    -0xf4(%rbp),%eax
  sub    %eax,-0x110(%rbp)
  mov    -0x110(%rbp),%eax
  cmp    -0x10c(%rbp),%eax
  jg     L337
  jmp    L447
L200:
  nop
  mov    -0x134(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    0x48(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%eax
  cmp    $0x4,%eax
  jne    L1312
  mov    -0x10c(%rbp),%eax
  mov    %eax,-0xe8(%rbp)
  mov    -0x10c(%rbp),%eax
  lea    0x3(%rax),%edx
  test   %eax,%eax
  cmovs  %edx,%eax
  sar    $0x2,%eax
  mov    %eax,-0x10c(%rbp)
L1267:
  movsd  D149(%rip),%xmm0
  movsd  %xmm0,-0xa0(%rbp)
  pxor   %xmm0,%xmm0
  movsd  %xmm0,-0x80(%rbp)
  mov    -0xec(%rbp),%edx
  mov    -0x10c(%rbp),%eax
  cmp    %eax,%edx
  cmovle %edx,%eax
  mov    %eax,-0x104(%rbp)
  jmp    L29
L1288:
  nop
  movsd  -0x40(%rbp),%xmm0
  movapd %xmm0,%xmm1
  mulsd  -0xa0(%rbp),%xmm1
  movsd  -0x38(%rbp),%xmm0
  mulsd  -0x80(%rbp),%xmm0
  addsd  %xmm0,%xmm1
  movsd  -0xa0(%rbp),%xmm0
  subsd  %xmm1,%xmm0
  movsd  %xmm0,-0x98(%rbp)
  movsd  -0x38(%rbp),%xmm0
  mulsd  -0xa0(%rbp),%xmm0
  movsd  -0x40(%rbp),%xmm1
  mulsd  -0x80(%rbp),%xmm1
  subsd  %xmm1,%xmm0
  movsd  -0x80(%rbp),%xmm1
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0x80(%rbp)
  movsd  -0x98(%rbp),%xmm0
  movsd  %xmm0,-0xa0(%rbp)
L65:
  movsd  -0xa0(%rbp),%xmm0
  movapd %xmm0,%xmm1
  mulsd  %xmm0,%xmm1
  movsd  -0x80(%rbp),%xmm0
  movapd %xmm0,%xmm2
  mulsd  %xmm0,%xmm2
  subsd  %xmm2,%xmm1
  movapd %xmm1,%xmm0
  movsd  %xmm0,-0x98(%rbp)
  movsd  -0xa0(%rbp),%xmm0
  mulsd  -0x80(%rbp),%xmm0
  addsd  %xmm0,%xmm0
  movsd  %xmm0,-0x78(%rbp)
  movsd  -0x98(%rbp),%xmm0
  mulsd  -0xa0(%rbp),%xmm0
  movsd  -0x78(%rbp),%xmm1
  mulsd  -0x80(%rbp),%xmm1
  subsd  %xmm1,%xmm0
  movsd  %xmm0,-0x90(%rbp)
  movsd  -0x98(%rbp),%xmm0
  movapd %xmm0,%xmm1
  mulsd  -0x80(%rbp),%xmm1
  movsd  -0x78(%rbp),%xmm0
  mulsd  -0xa0(%rbp),%xmm0
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0x70(%rbp)
L29:
  mov    -0x110(%rbp),%edx
  mov    -0x10c(%rbp),%eax
  add    %edx,%eax
  mov    %eax,-0x11c(%rbp)
  mov    -0x11c(%rbp),%edx
  mov    -0x10c(%rbp),%eax
  add    %edx,%eax
  mov    %eax,-0x118(%rbp)
  mov    -0x118(%rbp),%edx
  mov    -0x10c(%rbp),%eax
  add    %edx,%eax
  mov    %eax,-0x114(%rbp)
  mov    -0x110(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x148(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm1
  mov    -0x118(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x148(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0xc8(%rbp)
  mov    -0x110(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x148(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mov    -0x118(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x148(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm1
  subsd  %xmm1,%xmm0
  movsd  %xmm0,-0xd0(%rbp)
  mov    -0x11c(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x148(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm1
  mov    -0x114(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x148(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0x30(%rbp)
  mov    -0x11c(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x148(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mov    -0x114(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x148(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm1
  subsd  %xmm1,%xmm0
  movsd  %xmm0,-0x28(%rbp)
  mov    -0x110(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x148(%rbp),%rax
  add    %rdx,%rax
  movsd  -0xc8(%rbp),%xmm0
  addsd  -0x30(%rbp),%xmm0
  movsd  %xmm0,(%rax)
  movsd  -0xc8(%rbp),%xmm0
  subsd  -0x30(%rbp),%xmm0
  movsd  %xmm0,-0x30(%rbp)
  mov    -0x110(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x150(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm1
  mov    -0x118(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x150(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0xa8(%rbp)
  mov    -0x110(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x150(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mov    -0x118(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x150(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm1
  subsd  %xmm1,%xmm0
  movsd  %xmm0,-0xb0(%rbp)
  mov    -0x11c(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x150(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm1
  mov    -0x114(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x150(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0x20(%rbp)
  mov    -0x11c(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x150(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mov    -0x114(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x150(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm1
  subsd  %xmm1,%xmm0
  movsd  %xmm0,-0x18(%rbp)
  mov    -0x110(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x150(%rbp),%rax
  add    %rdx,%rax
  movsd  -0xa8(%rbp),%xmm0
  addsd  -0x20(%rbp),%xmm0
  movsd  %xmm0,(%rax)
  movsd  -0xa8(%rbp),%xmm0
  subsd  -0x20(%rbp),%xmm0
  movsd  %xmm0,-0x20(%rbp)
  cmpl   $0x0,-0x160(%rbp)
  js     L1158
  movsd  -0xd0(%rbp),%xmm0
  subsd  -0x18(%rbp),%xmm0
  movsd  %xmm0,-0xc8(%rbp)
  movsd  -0xd0(%rbp),%xmm0
  addsd  -0x18(%rbp),%xmm0
  movsd  %xmm0,-0xd0(%rbp)
  movsd  -0xb0(%rbp),%xmm0
  addsd  -0x28(%rbp),%xmm0
  movsd  %xmm0,-0xa8(%rbp)
  movsd  -0xb0(%rbp),%xmm0
  subsd  -0x28(%rbp),%xmm0
  movsd  %xmm0,-0xb0(%rbp)
  pxor   %xmm0,%xmm0
  ucomisd -0x80(%rbp),%xmm0
  jp     L1250
  pxor   %xmm0,%xmm0
  ucomisd -0x80(%rbp),%xmm0
  je     L487
  jmp    L1250
L839:
  nop
L1250:
  movsd  -0xc8(%rbp),%xmm0
  mulsd  -0xa0(%rbp),%xmm0
  movsd  -0xa8(%rbp),%xmm1
  mulsd  -0x80(%rbp),%xmm1
  mov    -0x11c(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x148(%rbp),%rax
  add    %rdx,%rax
  subsd  %xmm1,%xmm0
  movsd  %xmm0,(%rax)
  movsd  -0xc8(%rbp),%xmm0
  movapd %xmm0,%xmm1
  mulsd  -0x80(%rbp),%xmm1
  movsd  -0xa8(%rbp),%xmm0
  mulsd  -0xa0(%rbp),%xmm0
  mov    -0x11c(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x150(%rbp),%rax
  add    %rdx,%rax
  addsd  %xmm1,%xmm0
  movsd  %xmm0,(%rax)
  movsd  -0x30(%rbp),%xmm0
  mulsd  -0x98(%rbp),%xmm0
  movsd  -0x20(%rbp),%xmm1
  mulsd  -0x78(%rbp),%xmm1
  mov    -0x118(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x148(%rbp),%rax
  add    %rdx,%rax
  subsd  %xmm1,%xmm0
  movsd  %xmm0,(%rax)
  movsd  -0x30(%rbp),%xmm0
  movapd %xmm0,%xmm1
  mulsd  -0x78(%rbp),%xmm1
  movsd  -0x20(%rbp),%xmm0
  mulsd  -0x98(%rbp),%xmm0
  mov    -0x118(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x150(%rbp),%rax
  add    %rdx,%rax
  addsd  %xmm1,%xmm0
  movsd  %xmm0,(%rax)
  movsd  -0xd0(%rbp),%xmm0
  mulsd  -0x90(%rbp),%xmm0
  movsd  -0xb0(%rbp),%xmm1
  mulsd  -0x70(%rbp),%xmm1
  mov    -0x114(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x148(%rbp),%rax
  add    %rdx,%rax
  subsd  %xmm1,%xmm0
  movsd  %xmm0,(%rax)
  movsd  -0xd0(%rbp),%xmm0
  movapd %xmm0,%xmm1
  mulsd  -0x70(%rbp),%xmm1
  movsd  -0xb0(%rbp),%xmm0
  mulsd  -0x90(%rbp),%xmm0
  mov    -0x114(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x150(%rbp),%rax
  add    %rdx,%rax
  addsd  %xmm1,%xmm0
  movsd  %xmm0,(%rax)
  mov    -0x114(%rbp),%edx
  mov    -0x10c(%rbp),%eax
  add    %edx,%eax
  mov    %eax,-0x110(%rbp)
  mov    -0x110(%rbp),%eax
  cmp    -0x100(%rbp),%eax
  jg     L328
  jmp    L29
L328:
  nop
  jmp    L1150
L837:
  nop
L1150:
  mov    -0x100(%rbp),%eax
  sub    -0x12c(%rbp),%eax
  sub    %eax,-0x110(%rbp)
  mov    -0x110(%rbp),%eax
  cmp    -0x104(%rbp),%eax
  jle    L1288
  mov    -0x110(%rbp),%eax
  cmp    -0x10c(%rbp),%eax
  jl     L1367
  mov    -0x10c(%rbp),%eax
  sub    -0xfc(%rbp),%eax
  sub    %eax,-0x110(%rbp)
  mov    -0x110(%rbp),%eax
  cmp    -0x12c(%rbp),%eax
  jg     L1142
  jmp    L1267
L1142:
  mov    -0x10c(%rbp),%eax
  cmp    -0x12c(%rbp),%eax
  je     L1068
  jmp    L512
L1158:
  nop
  movsd  -0xd0(%rbp),%xmm0
  addsd  -0x18(%rbp),%xmm0
  movsd  %xmm0,-0xc8(%rbp)
  movsd  -0xd0(%rbp),%xmm0
  subsd  -0x18(%rbp),%xmm0
  movsd  %xmm0,-0xd0(%rbp)
  movsd  -0xb0(%rbp),%xmm0
  subsd  -0x28(%rbp),%xmm0
  movsd  %xmm0,-0xa8(%rbp)
  movsd  -0xb0(%rbp),%xmm0
  addsd  -0x28(%rbp),%xmm0
  movsd  %xmm0,-0xb0(%rbp)
  pxor   %xmm0,%xmm0
  ucomisd -0x80(%rbp),%xmm0
  jp     L839
  pxor   %xmm0,%xmm0
  ucomisd -0x80(%rbp),%xmm0
  je     L406
  jmp    L839
L487:
  nop
L406:
  mov    -0x11c(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x148(%rbp),%rax
  add    %rdx,%rax
  movsd  -0xc8(%rbp),%xmm0
  movsd  %xmm0,(%rax)
  mov    -0x11c(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x150(%rbp),%rax
  add    %rdx,%rax
  movsd  -0xa8(%rbp),%xmm0
  movsd  %xmm0,(%rax)
  mov    -0x118(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x148(%rbp),%rax
  add    %rdx,%rax
  movsd  -0x30(%rbp),%xmm0
  movsd  %xmm0,(%rax)
  mov    -0x118(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x150(%rbp),%rax
  add    %rdx,%rax
  movsd  -0x20(%rbp),%xmm0
  movsd  %xmm0,(%rax)
  mov    -0x114(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x148(%rbp),%rax
  add    %rdx,%rax
  movsd  -0xd0(%rbp),%xmm0
  movsd  %xmm0,(%rax)
  mov    -0x114(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x150(%rbp),%rax
  add    %rdx,%rax
  movsd  -0xb0(%rbp),%xmm0
  movsd  %xmm0,(%rax)
  mov    -0x114(%rbp),%edx
  mov    -0x10c(%rbp),%eax
  add    %edx,%eax
  mov    %eax,-0x110(%rbp)
  mov    -0x110(%rbp),%eax
  cmp    -0x100(%rbp),%eax
  jg     L837
  jmp    L29
L1367:
  nop
  mov    -0x110(%rbp),%eax
  sub    $0x1,%eax
  cltd
  idivl  -0x12c(%rbp)
  pxor   %xmm0,%xmm0
  cvtsi2sd %eax,%xmm0
  mulsd  -0x50(%rbp),%xmm0
  movsd  -0x88(%rbp),%xmm1
  mulsd  %xmm1,%xmm0
  movsd  %xmm0,-0x80(%rbp)
  mov    -0x80(%rbp),%rax
  movq   %rax,%xmm0
  call   <cos@plt>
  movq   %xmm0,%rax
  mov    %rax,-0xa0(%rbp)
  mov    -0x80(%rbp),%rax
  movq   %rax,%xmm0
  call   <sin@plt>
  movq   %xmm0,%rax
  mov    %rax,-0x80(%rbp)
  mov    -0x104(%rbp),%edx
  mov    -0xec(%rbp),%eax
  add    %eax,%edx
  mov    -0x10c(%rbp),%eax
  cmp    %edx,%eax
  cmovg  %edx,%eax
  mov    %eax,-0x104(%rbp)
  jmp    L65
L1076:
  nop
  movsd  -0x58(%rbp),%xmm0
  movapd %xmm0,%xmm1
  mulsd  %xmm0,%xmm1
  movsd  -0x68(%rbp),%xmm0
  movapd %xmm0,%xmm2
  mulsd  %xmm0,%xmm2
  subsd  %xmm2,%xmm1
  movapd %xmm1,%xmm0
  movsd  %xmm0,-0x98(%rbp)
  movsd  -0x58(%rbp),%xmm0
  addsd  %xmm0,%xmm0
  movsd  -0x68(%rbp),%xmm1
  mulsd  %xmm1,%xmm0
  movsd  %xmm0,-0x78(%rbp)
L297:
  mov    -0x110(%rbp),%edx
  mov    -0x10c(%rbp),%eax
  add    %edx,%eax
  mov    %eax,-0x11c(%rbp)
  mov    -0x11c(%rbp),%edx
  mov    -0x10c(%rbp),%eax
  add    %edx,%eax
  mov    %eax,-0x118(%rbp)
  mov    -0x118(%rbp),%edx
  mov    -0x10c(%rbp),%eax
  add    %edx,%eax
  mov    %eax,-0x114(%rbp)
  mov    -0x114(%rbp),%edx
  mov    -0x10c(%rbp),%eax
  add    %edx,%eax
  mov    %eax,-0xe4(%rbp)
  mov    -0x11c(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x148(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm1
  mov    -0xe4(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x148(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0xc8(%rbp)
  mov    -0x11c(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x148(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mov    -0xe4(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x148(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm1
  subsd  %xmm1,%xmm0
  movsd  %xmm0,-0xd0(%rbp)
  mov    -0x11c(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x150(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm1
  mov    -0xe4(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x150(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0xa8(%rbp)
  mov    -0x11c(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x150(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mov    -0xe4(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x150(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm1
  subsd  %xmm1,%xmm0
  movsd  %xmm0,-0xb0(%rbp)
  mov    -0x118(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x148(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm1
  mov    -0x114(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x148(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0x30(%rbp)
  mov    -0x118(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x148(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mov    -0x114(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x148(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm1
  subsd  %xmm1,%xmm0
  movsd  %xmm0,-0x28(%rbp)
  mov    -0x118(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x150(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm1
  mov    -0x114(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x150(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0x20(%rbp)
  mov    -0x118(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x150(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mov    -0x114(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x150(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm1
  subsd  %xmm1,%xmm0
  movsd  %xmm0,-0x18(%rbp)
  mov    -0x110(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x148(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  movsd  %xmm0,-0x10(%rbp)
  mov    -0x110(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x150(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  movsd  %xmm0,-0x8(%rbp)
  movsd  -0x10(%rbp),%xmm0
  addsd  -0xc8(%rbp),%xmm0
  mov    -0x110(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x148(%rbp),%rax
  add    %rdx,%rax
  addsd  -0x30(%rbp),%xmm0
  movsd  %xmm0,(%rax)
  movsd  -0x8(%rbp),%xmm0
  addsd  -0xa8(%rbp),%xmm0
  mov    -0x110(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x150(%rbp),%rax
  add    %rdx,%rax
  addsd  -0x20(%rbp),%xmm0
  movsd  %xmm0,(%rax)
  movsd  -0xc8(%rbp),%xmm0
  movapd %xmm0,%xmm1
  mulsd  -0x58(%rbp),%xmm1
  movsd  -0x30(%rbp),%xmm0
  mulsd  -0x98(%rbp),%xmm0
  addsd  %xmm1,%xmm0
  movsd  -0x10(%rbp),%xmm1
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0xd8(%rbp)
  movsd  -0xa8(%rbp),%xmm0
  movapd %xmm0,%xmm1
  mulsd  -0x58(%rbp),%xmm1
  movsd  -0x20(%rbp),%xmm0
  mulsd  -0x98(%rbp),%xmm0
  addsd  %xmm1,%xmm0
  movsd  -0x8(%rbp),%xmm1
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0xb8(%rbp)
  movsd  -0xd0(%rbp),%xmm0
  movapd %xmm0,%xmm1
  mulsd  -0x68(%rbp),%xmm1
  movsd  -0x28(%rbp),%xmm0
  mulsd  -0x78(%rbp),%xmm0
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0xe0(%rbp)
  movsd  -0xb0(%rbp),%xmm0
  movapd %xmm0,%xmm1
  mulsd  -0x68(%rbp),%xmm1
  movsd  -0x18(%rbp),%xmm0
  mulsd  -0x78(%rbp),%xmm0
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0xc0(%rbp)
  mov    -0x11c(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x148(%rbp),%rax
  add    %rdx,%rax
  movsd  -0xd8(%rbp),%xmm0
  subsd  -0xc0(%rbp),%xmm0
  movsd  %xmm0,(%rax)
  mov    -0xe4(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x148(%rbp),%rax
  add    %rdx,%rax
  movsd  -0xd8(%rbp),%xmm0
  addsd  -0xc0(%rbp),%xmm0
  movsd  %xmm0,(%rax)
  mov    -0x11c(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x150(%rbp),%rax
  add    %rdx,%rax
  movsd  -0xb8(%rbp),%xmm0
  addsd  -0xe0(%rbp),%xmm0
  movsd  %xmm0,(%rax)
  mov    -0xe4(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x150(%rbp),%rax
  add    %rdx,%rax
  movsd  -0xb8(%rbp),%xmm0
  subsd  -0xe0(%rbp),%xmm0
  movsd  %xmm0,(%rax)
  movsd  -0xc8(%rbp),%xmm0
  movapd %xmm0,%xmm1
  mulsd  -0x98(%rbp),%xmm1
  movsd  -0x30(%rbp),%xmm0
  mulsd  -0x58(%rbp),%xmm0
  addsd  %xmm1,%xmm0
  movsd  -0x10(%rbp),%xmm1
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0xd8(%rbp)
  movsd  -0xa8(%rbp),%xmm0
  movapd %xmm0,%xmm1
  mulsd  -0x98(%rbp),%xmm1
  movsd  -0x20(%rbp),%xmm0
  mulsd  -0x58(%rbp),%xmm0
  addsd  %xmm1,%xmm0
  movsd  -0x8(%rbp),%xmm1
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0xb8(%rbp)
  movsd  -0xd0(%rbp),%xmm0
  mulsd  -0x78(%rbp),%xmm0
  movsd  -0x28(%rbp),%xmm1
  mulsd  -0x68(%rbp),%xmm1
  subsd  %xmm1,%xmm0
  movsd  %xmm0,-0xe0(%rbp)
  movsd  -0xb0(%rbp),%xmm0
  mulsd  -0x78(%rbp),%xmm0
  movsd  -0x18(%rbp),%xmm1
  mulsd  -0x68(%rbp),%xmm1
  subsd  %xmm1,%xmm0
  movsd  %xmm0,-0xc0(%rbp)
  mov    -0x118(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x148(%rbp),%rax
  add    %rdx,%rax
  movsd  -0xd8(%rbp),%xmm0
  subsd  -0xc0(%rbp),%xmm0
  movsd  %xmm0,(%rax)
  mov    -0x114(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x148(%rbp),%rax
  add    %rdx,%rax
  movsd  -0xd8(%rbp),%xmm0
  addsd  -0xc0(%rbp),%xmm0
  movsd  %xmm0,(%rax)
  mov    -0x118(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x150(%rbp),%rax
  add    %rdx,%rax
  movsd  -0xb8(%rbp),%xmm0
  addsd  -0xe0(%rbp),%xmm0
  movsd  %xmm0,(%rax)
  mov    -0x114(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x150(%rbp),%rax
  add    %rdx,%rax
  movsd  -0xb8(%rbp),%xmm0
  subsd  -0xe0(%rbp),%xmm0
  movsd  %xmm0,(%rax)
  mov    -0xe4(%rbp),%edx
  mov    -0x10c(%rbp),%eax
  add    %edx,%eax
  mov    %eax,-0x110(%rbp)
  mov    -0x110(%rbp),%eax
  cmp    -0xf4(%rbp),%eax
  jge    L787
  jmp    L297
L787:
  mov    -0xf4(%rbp),%eax
  sub    %eax,-0x110(%rbp)
  mov    -0x110(%rbp),%eax
  cmp    -0x10c(%rbp),%eax
  jg     L318
  jmp    L297
L1312:
  nop
  mov    -0x134(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    0x48(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%eax
  mov    %eax,-0x120(%rbp)
  mov    -0x10c(%rbp),%eax
  mov    %eax,-0xe8(%rbp)
  mov    -0x10c(%rbp),%eax
  cltd
  idivl  -0x120(%rbp)
  mov    %eax,-0x10c(%rbp)
  cmpl   $0x3,-0x120(%rbp)
  jne    L801
  jmp    L447
L801:
  cmpl   $0x5,-0x120(%rbp)
  je     L1076
  mov    -0x120(%rbp),%eax
  cmp    -0x128(%rbp),%eax
  je     L394
  mov    -0x120(%rbp),%eax
  mov    %eax,-0x128(%rbp)
  pxor   %xmm0,%xmm0
  cvtsi2sdl -0x120(%rbp),%xmm0
  movsd  D187(%rip),%xmm2
  movapd %xmm0,%xmm1
  divsd  %xmm2,%xmm1
  movsd  -0x88(%rbp),%xmm0
  divsd  %xmm1,%xmm0
  movsd  %xmm0,-0x80(%rbp)
  mov    -0x80(%rbp),%rax
  movq   %rax,%xmm0
  call   <cos@plt>
  movq   %xmm0,%rax
  mov    %rax,-0xa0(%rbp)
  mov    -0x80(%rbp),%rax
  movq   %rax,%xmm0
  call   <sin@plt>
  movq   %xmm0,%rax
  mov    %rax,-0x80(%rbp)
  mov    -0x128(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    0x28(%rbp),%rax
  add    %rdx,%rax
  movsd  D149(%rip),%xmm0
  movsd  %xmm0,(%rax)
  mov    -0x128(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    0x38(%rbp),%rax
  add    %rdx,%rax
  pxor   %xmm0,%xmm0
  movsd  %xmm0,(%rax)
  movl   $0x1,-0x130(%rbp)
  jmp    L107
L1253:
  mov    -0x120(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    0x28(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  movapd %xmm0,%xmm1
  mulsd  -0xa0(%rbp),%xmm1
  mov    -0x120(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    0x38(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mulsd  -0x80(%rbp),%xmm0
  mov    -0x130(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    0x28(%rbp),%rax
  add    %rdx,%rax
  addsd  %xmm1,%xmm0
  movsd  %xmm0,(%rax)
  mov    -0x120(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    0x28(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mulsd  -0x80(%rbp),%xmm0
  mov    -0x120(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    0x38(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm1
  mulsd  -0xa0(%rbp),%xmm1
  mov    -0x130(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    0x38(%rbp),%rax
  add    %rdx,%rax
  subsd  %xmm1,%xmm0
  movsd  %xmm0,(%rax)
  subl   $0x1,-0x120(%rbp)
  mov    -0x130(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    0x28(%rbp),%rax
  add    %rax,%rdx
  mov    -0x120(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rcx
  mov    0x28(%rbp),%rax
  add    %rcx,%rax
  movsd  (%rdx),%xmm0
  movsd  %xmm0,(%rax)
  mov    -0x130(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    0x38(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mov    -0x120(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    0x38(%rbp),%rax
  add    %rdx,%rax
  movq   D31(%rip),%xmm1
  xorpd  %xmm1,%xmm0
  movsd  %xmm0,(%rax)
  addl   $0x1,-0x130(%rbp)
L107:
  mov    -0x130(%rbp),%eax
  cmp    -0x120(%rbp),%eax
  jl     L1253
  jmp    L51
L394:
  nop
L51:
  mov    -0x110(%rbp),%eax
  mov    %eax,-0x11c(%rbp)
  mov    -0x110(%rbp),%edx
  mov    -0xe8(%rbp),%eax
  add    %edx,%eax
  mov    %eax,-0x118(%rbp)
  mov    -0x110(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x148(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  movsd  %xmm0,-0x10(%rbp)
  mov    -0x110(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x150(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  movsd  %xmm0,-0x8(%rbp)
  movsd  -0x10(%rbp),%xmm0
  movsd  %xmm0,-0xd8(%rbp)
  movsd  -0x8(%rbp),%xmm0
  movsd  %xmm0,-0xb8(%rbp)
  movl   $0x1,-0x130(%rbp)
  mov    -0x10c(%rbp),%eax
  add    %eax,-0x11c(%rbp)
L1331:
  mov    -0x10c(%rbp),%eax
  sub    %eax,-0x118(%rbp)
  addl   $0x1,-0x130(%rbp)
  mov    -0x11c(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x148(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm1
  mov    -0x118(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x148(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mov    -0x130(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    0x20(%rbp),%rax
  add    %rdx,%rax
  addsd  %xmm1,%xmm0
  movsd  %xmm0,(%rax)
  mov    -0x130(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    0x20(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  movsd  -0xd8(%rbp),%xmm1
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0xd8(%rbp)
  mov    -0x11c(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x150(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm1
  mov    -0x118(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x150(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mov    -0x130(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    0x30(%rbp),%rax
  add    %rdx,%rax
  addsd  %xmm1,%xmm0
  movsd  %xmm0,(%rax)
  mov    -0x130(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    0x30(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  movsd  -0xb8(%rbp),%xmm1
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0xb8(%rbp)
  addl   $0x1,-0x130(%rbp)
  mov    -0x11c(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x148(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mov    -0x118(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x148(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm1
  mov    -0x130(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    0x20(%rbp),%rax
  add    %rdx,%rax
  subsd  %xmm1,%xmm0
  movsd  %xmm0,(%rax)
  mov    -0x11c(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x150(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mov    -0x118(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x150(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm1
  mov    -0x130(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    0x30(%rbp),%rax
  add    %rdx,%rax
  subsd  %xmm1,%xmm0
  movsd  %xmm0,(%rax)
  mov    -0x10c(%rbp),%eax
  add    %eax,-0x11c(%rbp)
  mov    -0x11c(%rbp),%eax
  cmp    -0x118(%rbp),%eax
  jl     L1331
  mov    -0x110(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x148(%rbp),%rax
  add    %rdx,%rax
  movsd  -0xd8(%rbp),%xmm0
  movsd  %xmm0,(%rax)
  mov    -0x110(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x150(%rbp),%rax
  add    %rdx,%rax
  movsd  -0xb8(%rbp),%xmm0
  movsd  %xmm0,(%rax)
  mov    -0x110(%rbp),%eax
  mov    %eax,-0x11c(%rbp)
  mov    -0x110(%rbp),%edx
  mov    -0xe8(%rbp),%eax
  add    %edx,%eax
  mov    %eax,-0x118(%rbp)
  movl   $0x1,-0x130(%rbp)
L858:
  mov    -0x10c(%rbp),%eax
  add    %eax,-0x11c(%rbp)
  mov    -0x10c(%rbp),%eax
  sub    %eax,-0x118(%rbp)
  mov    -0x130(%rbp),%eax
  mov    %eax,-0x124(%rbp)
  movsd  -0x10(%rbp),%xmm0
  movsd  %xmm0,-0xd8(%rbp)
  movsd  -0x8(%rbp),%xmm0
  movsd  %xmm0,-0xb8(%rbp)
  pxor   %xmm0,%xmm0
  movsd  %xmm0,-0xe0(%rbp)
  pxor   %xmm0,%xmm0
  movsd  %xmm0,-0xc0(%rbp)
  movl   $0x1,-0x120(%rbp)
L479:
  addl   $0x1,-0x120(%rbp)
  mov    -0x120(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    0x20(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm1
  mov    -0x124(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    0x28(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mulsd  %xmm1,%xmm0
  movsd  -0xd8(%rbp),%xmm1
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0xd8(%rbp)
  mov    -0x120(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    0x30(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm1
  mov    -0x124(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    0x28(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mulsd  %xmm1,%xmm0
  movsd  -0xb8(%rbp),%xmm1
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0xb8(%rbp)
  addl   $0x1,-0x120(%rbp)
  mov    -0x120(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    0x20(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm1
  mov    -0x124(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    0x38(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mulsd  %xmm1,%xmm0
  movsd  -0xe0(%rbp),%xmm1
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0xe0(%rbp)
  mov    -0x120(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    0x30(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm1
  mov    -0x124(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    0x38(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mulsd  %xmm1,%xmm0
  movsd  -0xc0(%rbp),%xmm1
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0xc0(%rbp)
  mov    -0x130(%rbp),%eax
  add    %eax,-0x124(%rbp)
  mov    -0x124(%rbp),%eax
  cmp    -0x128(%rbp),%eax
  jle    L667
  mov    -0x128(%rbp),%eax
  sub    %eax,-0x124(%rbp)
L667:
  mov    -0x120(%rbp),%eax
  cmp    -0x128(%rbp),%eax
  jl     L479
  mov    -0x128(%rbp),%eax
  sub    -0x130(%rbp),%eax
  mov    %eax,-0x120(%rbp)
  mov    -0x11c(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x148(%rbp),%rax
  add    %rdx,%rax
  movsd  -0xd8(%rbp),%xmm0
  subsd  -0xc0(%rbp),%xmm0
  movsd  %xmm0,(%rax)
  mov    -0x11c(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x150(%rbp),%rax
  add    %rdx,%rax
  movsd  -0xb8(%rbp),%xmm0
  addsd  -0xe0(%rbp),%xmm0
  movsd  %xmm0,(%rax)
  mov    -0x118(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x148(%rbp),%rax
  add    %rdx,%rax
  movsd  -0xd8(%rbp),%xmm0
  addsd  -0xc0(%rbp),%xmm0
  movsd  %xmm0,(%rax)
  mov    -0x118(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x150(%rbp),%rax
  add    %rdx,%rax
  movsd  -0xb8(%rbp),%xmm0
  subsd  -0xe0(%rbp),%xmm0
  movsd  %xmm0,(%rax)
  addl   $0x1,-0x130(%rbp)
  mov    -0x130(%rbp),%eax
  cmp    -0x120(%rbp),%eax
  jge    L658
  jmp    L858
L658:
  mov    -0xe8(%rbp),%eax
  add    %eax,-0x110(%rbp)
  mov    -0x110(%rbp),%eax
  cmp    -0xf4(%rbp),%eax
  jg     L795
  jmp    L51
L795:
  mov    -0xf4(%rbp),%eax
  sub    %eax,-0x110(%rbp)
  mov    -0x110(%rbp),%eax
  cmp    -0x10c(%rbp),%eax
  jg     L1348
  jmp    L51
L337:
  nop
  jmp    L668
L318:
  nop
  jmp    L668
L1348:
  nop
L668:
  mov    -0x134(%rbp),%eax
  cmp    0x10(%rbp),%eax
  je     L408
  mov    -0x12c(%rbp),%eax
  add    $0x1,%eax
  mov    %eax,-0x110(%rbp)
L1202:
  movsd  D149(%rip),%xmm0
  subsd  -0x40(%rbp),%xmm0
  movsd  %xmm0,-0x98(%rbp)
  movsd  -0x38(%rbp),%xmm0
  movsd  %xmm0,-0x80(%rbp)
  mov    -0xec(%rbp),%edx
  mov    -0x10c(%rbp),%eax
  cmp    %eax,%edx
  cmovle %edx,%eax
  mov    %eax,-0x104(%rbp)
  jmp    L862
L681:
  nop
  movsd  -0x40(%rbp),%xmm0
  movapd %xmm0,%xmm1
  mulsd  -0xa0(%rbp),%xmm1
  movsd  -0x38(%rbp),%xmm0
  mulsd  -0x80(%rbp),%xmm0
  addsd  %xmm0,%xmm1
  movsd  -0xa0(%rbp),%xmm0
  subsd  %xmm1,%xmm0
  movsd  %xmm0,-0x98(%rbp)
  movsd  -0x38(%rbp),%xmm0
  mulsd  -0xa0(%rbp),%xmm0
  movsd  -0x40(%rbp),%xmm1
  mulsd  -0x80(%rbp),%xmm1
  subsd  %xmm1,%xmm0
  movsd  -0x80(%rbp),%xmm1
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0x80(%rbp)
L862:
  movsd  -0x98(%rbp),%xmm0
  movsd  %xmm0,-0xa0(%rbp)
  movsd  -0x80(%rbp),%xmm0
  movsd  %xmm0,-0x78(%rbp)
  mov    -0x10c(%rbp),%eax
  add    %eax,-0x110(%rbp)
L875:
  mov    -0x110(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x148(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  movsd  %xmm0,-0xd8(%rbp)
  movsd  -0x98(%rbp),%xmm0
  mulsd  -0xd8(%rbp),%xmm0
  mov    -0x110(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x150(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm1
  mulsd  -0x78(%rbp),%xmm1
  mov    -0x110(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x148(%rbp),%rax
  add    %rdx,%rax
  subsd  %xmm1,%xmm0
  movsd  %xmm0,(%rax)
  movsd  -0x78(%rbp),%xmm0
  movapd %xmm0,%xmm1
  mulsd  -0xd8(%rbp),%xmm1
  mov    -0x110(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x150(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mulsd  -0x98(%rbp),%xmm0
  mov    -0x110(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x150(%rbp),%rax
  add    %rdx,%rax
  addsd  %xmm1,%xmm0
  movsd  %xmm0,(%rax)
  mov    -0xe8(%rbp),%eax
  add    %eax,-0x110(%rbp)
  mov    -0x110(%rbp),%eax
  cmp    -0x100(%rbp),%eax
  jg     L5
  jmp    L875
L5:
  movsd  -0x80(%rbp),%xmm0
  mulsd  -0x78(%rbp),%xmm0
  movsd  %xmm0,-0xd8(%rbp)
  movsd  -0x80(%rbp),%xmm0
  movapd %xmm0,%xmm1
  mulsd  -0x98(%rbp),%xmm1
  movsd  -0xa0(%rbp),%xmm0
  mulsd  -0x78(%rbp),%xmm0
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0x78(%rbp)
  movsd  -0xa0(%rbp),%xmm0
  mulsd  -0x98(%rbp),%xmm0
  subsd  -0xd8(%rbp),%xmm0
  movsd  %xmm0,-0x98(%rbp)
  mov    -0x100(%rbp),%eax
  sub    -0x10c(%rbp),%eax
  sub    %eax,-0x110(%rbp)
  mov    -0x110(%rbp),%eax
  cmp    -0xe8(%rbp),%eax
  jg     L1322
  jmp    L875
L1322:
  mov    -0xe8(%rbp),%eax
  sub    -0x12c(%rbp),%eax
  sub    %eax,-0x110(%rbp)
  mov    -0x110(%rbp),%eax
  cmp    -0x104(%rbp),%eax
  jle    L681
  mov    -0x110(%rbp),%eax
  cmp    -0x10c(%rbp),%eax
  jl     L1324
  mov    -0x10c(%rbp),%eax
  sub    -0x12c(%rbp),%eax
  sub    -0xfc(%rbp),%eax
  sub    %eax,-0x110(%rbp)
  mov    -0x12c(%rbp),%eax
  add    %eax,%eax
  cmp    %eax,-0x110(%rbp)
  jg     L512
  jmp    L1202
L1324:
  nop
  mov    -0x110(%rbp),%eax
  sub    $0x1,%eax
  cltd
  idivl  -0x12c(%rbp)
  pxor   %xmm0,%xmm0
  cvtsi2sd %eax,%xmm0
  mulsd  -0x50(%rbp),%xmm0
  movsd  -0x88(%rbp),%xmm1
  mulsd  %xmm1,%xmm0
  movsd  %xmm0,-0x80(%rbp)
  mov    -0x80(%rbp),%rax
  movq   %rax,%xmm0
  call   <cos@plt>
  movq   %xmm0,%rax
  mov    %rax,-0x98(%rbp)
  mov    -0x80(%rbp),%rax
  movq   %rax,%xmm0
  call   <sin@plt>
  movq   %xmm0,%rax
  mov    %rax,-0x80(%rbp)
  mov    -0x104(%rbp),%edx
  mov    -0xec(%rbp),%eax
  add    %eax,%edx
  mov    -0x10c(%rbp),%eax
  cmp    %edx,%eax
  cmovg  %edx,%eax
  mov    %eax,-0x104(%rbp)
  jmp    L862
L1256:
  nop
  jmp    L366
L1068:
  nop
  jmp    L366
L408:
  nop
L366:
  mov    0x40(%rbp),%rax
  lea    0x4(%rax),%rdx
  mov    -0xf8(%rbp),%eax
  mov    %eax,(%rdx)
  mov    0x18(%rbp),%rax
  mov    (%rax),%eax
  test   %eax,%eax
  je     L365
  mov    0x18(%rbp),%rax
  mov    (%rax),%eax
  add    %eax,%eax
  add    $0x1,%eax
  mov    %eax,-0x120(%rbp)
  mov    0x10(%rbp),%eax
  cmp    -0x120(%rbp),%eax
  jge    L1
  subl   $0x1,-0x120(%rbp)
L1:
  mov    -0x120(%rbp),%eax
  cltq
  add    $0x1,%rax
  lea    0x0(,%rax,4),%rdx
  mov    0x40(%rbp),%rax
  add    %rax,%rdx
  mov    -0x12c(%rbp),%eax
  mov    %eax,(%rdx)
  movl   $0x1,-0x130(%rbp)
  jmp    L1000
L1268:
  mov    -0x130(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    0x40(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%eax
  mov    -0x130(%rbp),%edx
  movslq %edx,%rdx
  lea    0x0(,%rdx,4),%rcx
  mov    0x48(%rbp),%rdx
  add    %rcx,%rdx
  mov    (%rdx),%edi
  mov    -0x130(%rbp),%ecx
  movslq %ecx,%rcx
  add    $0x1,%rcx
  lea    0x0(,%rcx,4),%rsi
  mov    0x40(%rbp),%rcx
  add    %rsi,%rcx
  cltd
  idiv   %edi
  mov    %eax,(%rcx)
  mov    -0x120(%rbp),%eax
  cltq
  add    $0x1,%rax
  lea    0x0(,%rax,4),%rdx
  mov    0x40(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%ecx
  mov    -0x130(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    0x48(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%eax
  mov    -0x120(%rbp),%edx
  movslq %edx,%rdx
  lea    0x0(,%rdx,4),%rsi
  mov    0x40(%rbp),%rdx
  add    %rsi,%rdx
  imul   %ecx,%eax
  mov    %eax,(%rdx)
  addl   $0x1,-0x130(%rbp)
  subl   $0x1,-0x120(%rbp)
L1000:
  mov    -0x130(%rbp),%eax
  cmp    -0x120(%rbp),%eax
  jl     L1268
  mov    -0x120(%rbp),%eax
  cltq
  add    $0x1,%rax
  lea    0x0(,%rax,4),%rdx
  mov    0x40(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%eax
  mov    %eax,-0x114(%rbp)
  mov    0x40(%rbp),%rax
  mov    0x8(%rax),%eax
  mov    %eax,-0x10c(%rbp)
  mov    -0x12c(%rbp),%eax
  add    $0x1,%eax
  mov    %eax,-0x110(%rbp)
  mov    -0x10c(%rbp),%eax
  add    $0x1,%eax
  mov    %eax,-0x118(%rbp)
  movl   $0x1,-0x130(%rbp)
  mov    -0x158(%rbp),%eax
  cmp    -0x154(%rbp),%eax
  je     L370
  jmp    L823
L370:
  nop
L601:
  mov    -0x110(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x148(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  movsd  %xmm0,-0xd8(%rbp)
  mov    -0x118(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x148(%rbp),%rax
  add    %rax,%rdx
  mov    -0x110(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rcx
  mov    -0x148(%rbp),%rax
  add    %rcx,%rax
  movsd  (%rdx),%xmm0
  movsd  %xmm0,(%rax)
  mov    -0x118(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x148(%rbp),%rax
  add    %rdx,%rax
  movsd  -0xd8(%rbp),%xmm0
  movsd  %xmm0,(%rax)
  mov    -0x110(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x150(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  movsd  %xmm0,-0xb8(%rbp)
  mov    -0x118(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x150(%rbp),%rax
  add    %rax,%rdx
  mov    -0x110(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rcx
  mov    -0x150(%rbp),%rax
  add    %rcx,%rax
  movsd  (%rdx),%xmm0
  movsd  %xmm0,(%rax)
  mov    -0x118(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x150(%rbp),%rax
  add    %rdx,%rax
  movsd  -0xb8(%rbp),%xmm0
  movsd  %xmm0,(%rax)
  mov    -0xfc(%rbp),%eax
  add    %eax,-0x110(%rbp)
  mov    -0x10c(%rbp),%eax
  add    %eax,-0x118(%rbp)
  mov    -0x118(%rbp),%eax
  cmp    -0xf8(%rbp),%eax
  jl     L601
  nop
L730:
  mov    -0x130(%rbp),%eax
  lea    0x1(%rax),%edx
  mov    %edx,-0x130(%rbp)
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    0x40(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%eax
  sub    %eax,-0x118(%rbp)
  mov    -0x130(%rbp),%eax
  cltq
  add    $0x1,%rax
  lea    0x0(,%rax,4),%rdx
  mov    0x40(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%eax
  add    %eax,-0x118(%rbp)
  mov    -0x130(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    0x40(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%eax
  cmp    %eax,-0x118(%rbp)
  jg     L730
  movl   $0x1,-0x130(%rbp)
L70:
  mov    -0x110(%rbp),%eax
  cmp    -0x118(%rbp),%eax
  jge    L690
  jmp    L601
L690:
  mov    -0xfc(%rbp),%eax
  add    %eax,-0x110(%rbp)
  mov    -0x10c(%rbp),%eax
  add    %eax,-0x118(%rbp)
  mov    -0x118(%rbp),%eax
  cmp    -0xf8(%rbp),%eax
  jge    L123
  jmp    L70
L123:
  mov    -0x110(%rbp),%eax
  cmp    -0xf8(%rbp),%eax
  jge    L1140
  jmp    L730
L1140:
  mov    -0x114(%rbp),%eax
  mov    %eax,-0x12c(%rbp)
  jmp    L1302
L823:
  mov    -0x110(%rbp),%edx
  mov    -0x12c(%rbp),%eax
  add    %edx,%eax
  mov    %eax,-0x120(%rbp)
L285:
  mov    -0x110(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x148(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  movsd  %xmm0,-0xd8(%rbp)
  mov    -0x118(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x148(%rbp),%rax
  add    %rax,%rdx
  mov    -0x110(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rcx
  mov    -0x148(%rbp),%rax
  add    %rcx,%rax
  movsd  (%rdx),%xmm0
  movsd  %xmm0,(%rax)
  mov    -0x118(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x148(%rbp),%rax
  add    %rdx,%rax
  movsd  -0xd8(%rbp),%xmm0
  movsd  %xmm0,(%rax)
  mov    -0x110(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x150(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  movsd  %xmm0,-0xb8(%rbp)
  mov    -0x118(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x150(%rbp),%rax
  add    %rax,%rdx
  mov    -0x110(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rcx
  mov    -0x150(%rbp),%rax
  add    %rcx,%rax
  movsd  (%rdx),%xmm0
  movsd  %xmm0,(%rax)
  mov    -0x118(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x150(%rbp),%rax
  add    %rdx,%rax
  movsd  -0xb8(%rbp),%xmm0
  movsd  %xmm0,(%rax)
  mov    -0xfc(%rbp),%eax
  add    %eax,-0x110(%rbp)
  mov    -0xfc(%rbp),%eax
  add    %eax,-0x118(%rbp)
  mov    -0x110(%rbp),%eax
  cmp    -0x120(%rbp),%eax
  jl     L285
  mov    -0xf8(%rbp),%eax
  sub    -0x12c(%rbp),%eax
  add    %eax,-0x110(%rbp)
  mov    -0xf8(%rbp),%eax
  sub    -0x12c(%rbp),%eax
  add    %eax,-0x118(%rbp)
  mov    -0x110(%rbp),%eax
  cmp    -0x100(%rbp),%eax
  jl     L823
  mov    -0x100(%rbp),%eax
  sub    -0x10c(%rbp),%eax
  sub    %eax,-0x118(%rbp)
  mov    -0x100(%rbp),%eax
  sub    -0x12c(%rbp),%eax
  sub    %eax,-0x110(%rbp)
  mov    -0x118(%rbp),%eax
  cmp    -0xf8(%rbp),%eax
  jl     L823
  nop
L1190:
  mov    -0x130(%rbp),%eax
  lea    0x1(%rax),%edx
  mov    %edx,-0x130(%rbp)
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    0x40(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%eax
  sub    %eax,-0x118(%rbp)
  mov    -0x130(%rbp),%eax
  cltq
  add    $0x1,%rax
  lea    0x0(,%rax,4),%rdx
  mov    0x40(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%eax
  add    %eax,-0x118(%rbp)
  mov    -0x130(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    0x40(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%eax
  cmp    %eax,-0x118(%rbp)
  jg     L1190
  movl   $0x1,-0x130(%rbp)
L382:
  mov    -0x110(%rbp),%eax
  cmp    -0x118(%rbp),%eax
  jge    L228
  jmp    L823
L228:
  mov    -0x12c(%rbp),%eax
  add    %eax,-0x110(%rbp)
  mov    -0x10c(%rbp),%eax
  add    %eax,-0x118(%rbp)
  mov    -0x118(%rbp),%eax
  cmp    -0xf8(%rbp),%eax
  jge    L1131
  jmp    L382
L1131:
  mov    -0x110(%rbp),%eax
  cmp    -0xf8(%rbp),%eax
  jge    L540
  jmp    L1190
L540:
  mov    -0x114(%rbp),%eax
  mov    %eax,-0x12c(%rbp)
  jmp    L1302
L365:
  nop
L1302:
  mov    0x18(%rbp),%rax
  mov    (%rax),%eax
  add    %eax,%eax
  add    $0x1,%eax
  cmp    %eax,0x10(%rbp)
  jle    L327
  mov    0x18(%rbp),%rax
  mov    (%rax),%eax
  cltq
  add    $0x1,%rax
  lea    0x0(,%rax,4),%rdx
  mov    0x40(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%eax
  mov    %eax,-0xe8(%rbp)
  mov    0x18(%rbp),%rax
  mov    (%rax),%edx
  mov    0x10(%rbp),%eax
  sub    %edx,%eax
  mov    %eax,-0x130(%rbp)
  mov    -0x130(%rbp),%eax
  cltq
  add    $0x1,%rax
  lea    0x0(,%rax,4),%rdx
  mov    0x48(%rbp),%rax
  add    %rdx,%rax
  movl   $0x1,(%rax)
L580:
  mov    -0x130(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    0x48(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%ecx
  mov    -0x130(%rbp),%eax
  cltq
  add    $0x1,%rax
  lea    0x0(,%rax,4),%rdx
  mov    0x48(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%eax
  mov    -0x130(%rbp),%edx
  movslq %edx,%rdx
  lea    0x0(,%rdx,4),%rsi
  mov    0x48(%rbp),%rdx
  add    %rsi,%rdx
  imul   %ecx,%eax
  mov    %eax,(%rdx)
  subl   $0x1,-0x130(%rbp)
  mov    0x18(%rbp),%rax
  mov    (%rax),%eax
  cmp    %eax,-0x130(%rbp)
  je     L149
  jmp    L580
L149:
  mov    0x18(%rbp),%rax
  mov    (%rax),%eax
  lea    0x1(%rax),%edx
  mov    0x18(%rbp),%rax
  mov    %edx,(%rax)
  mov    0x18(%rbp),%rax
  mov    (%rax),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    0x48(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%eax
  sub    $0x1,%eax
  mov    %eax,-0xf4(%rbp)
  movl   $0x0,-0x124(%rbp)
  movl   $0x0,-0x130(%rbp)
  jmp    L1249
L870:
  nop
  mov    -0x118(%rbp),%eax
  sub    %eax,-0x124(%rbp)
  mov    -0x110(%rbp),%eax
  mov    %eax,-0x118(%rbp)
  addl   $0x1,-0x120(%rbp)
  mov    -0x120(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    0x48(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%eax
  mov    %eax,-0x110(%rbp)
L390:
  mov    -0x110(%rbp),%eax
  add    %eax,-0x124(%rbp)
  mov    -0x124(%rbp),%eax
  cmp    -0x118(%rbp),%eax
  jge    L870
  mov    -0x130(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    0x40(%rbp),%rax
  add    %rax,%rdx
  mov    -0x124(%rbp),%eax
  mov    %eax,(%rdx)
L1249:
  mov    0x18(%rbp),%rax
  mov    (%rax),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    0x48(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%eax
  mov    %eax,-0x118(%rbp)
  mov    0x18(%rbp),%rax
  mov    (%rax),%eax
  add    $0x1,%eax
  mov    %eax,-0x120(%rbp)
  mov    -0x120(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    0x48(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%eax
  mov    %eax,-0x110(%rbp)
  addl   $0x1,-0x130(%rbp)
  mov    -0x130(%rbp),%eax
  cmp    -0xf4(%rbp),%eax
  jg     L751
  jmp    L390
L751:
  movl   $0x0,-0x130(%rbp)
  jmp    L1308
L142:
  mov    -0x110(%rbp),%eax
  mov    %eax,-0x120(%rbp)
  mov    -0x120(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    0x40(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%eax
  mov    %eax,-0x110(%rbp)
  mov    -0x120(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    0x40(%rbp),%rax
  add    %rdx,%rax
  mov    -0x110(%rbp),%edx
  neg    %edx
  mov    %edx,(%rax)
  mov    -0x110(%rbp),%eax
  cmp    -0x130(%rbp),%eax
  je     L978
  jmp    L142
L978:
  mov    -0x110(%rbp),%eax
  mov    %eax,-0x114(%rbp)
L1308:
  addl   $0x1,-0x130(%rbp)
  mov    -0x130(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    0x40(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%eax
  mov    %eax,-0x110(%rbp)
  cmpl   $0x0,-0x110(%rbp)
  jns    L884
  jmp    L1308
L884:
  mov    -0x110(%rbp),%eax
  cmp    -0x130(%rbp),%eax
  je     L239
  jmp    L142
L239:
  mov    -0x130(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    0x40(%rbp),%rax
  add    %rdx,%rax
  mov    -0x130(%rbp),%edx
  neg    %edx
  mov    %edx,(%rax)
  mov    -0x130(%rbp),%eax
  cmp    -0xf4(%rbp),%eax
  je     L946
  jmp    L1308
L946:
  mov    -0x108(%rbp),%eax
  imul   -0xfc(%rbp),%eax
  mov    %eax,-0x108(%rbp)
  jmp    L9
L934:
  subl   $0x1,-0x130(%rbp)
  mov    -0x130(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    0x40(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%eax
  test   %eax,%eax
  jns    L218
  jmp    L934
L218:
  mov    -0x12c(%rbp),%eax
  mov    %eax,-0x124(%rbp)
L1361:
  mov    -0x124(%rbp),%eax
  mov    %eax,-0x10c(%rbp)
  mov    -0x124(%rbp),%eax
  cmp    -0x108(%rbp),%eax
  jle    L747
  mov    -0x108(%rbp),%eax
  mov    %eax,-0x10c(%rbp)
L747:
  mov    -0x10c(%rbp),%eax
  sub    %eax,-0x124(%rbp)
  mov    -0x130(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    0x40(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%eax
  mov    %eax,-0x120(%rbp)
  mov    -0x12c(%rbp),%eax
  imul   -0x120(%rbp),%eax
  mov    %eax,%edx
  mov    -0x134(%rbp),%eax
  add    %eax,%edx
  mov    -0x124(%rbp),%eax
  add    %edx,%eax
  mov    %eax,-0x110(%rbp)
  mov    -0x110(%rbp),%edx
  mov    -0x10c(%rbp),%eax
  add    %edx,%eax
  mov    %eax,-0x11c(%rbp)
  movl   $0x0,-0x118(%rbp)
L1215:
  addl   $0x1,-0x118(%rbp)
  mov    -0x11c(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x148(%rbp),%rax
  add    %rax,%rdx
  mov    -0x118(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rcx
  mov    0x20(%rbp),%rax
  add    %rcx,%rax
  movsd  (%rdx),%xmm0
  movsd  %xmm0,(%rax)
  mov    -0x11c(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x150(%rbp),%rax
  add    %rax,%rdx
  mov    -0x118(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rcx
  mov    0x30(%rbp),%rax
  add    %rcx,%rax
  movsd  (%rdx),%xmm0
  movsd  %xmm0,(%rax)
  mov    -0xfc(%rbp),%eax
  sub    %eax,-0x11c(%rbp)
  mov    -0x11c(%rbp),%eax
  cmp    -0x110(%rbp),%eax
  je     L78
  jmp    L1215
L78:
  nop
L434:
  mov    -0x110(%rbp),%edx
  mov    -0x10c(%rbp),%eax
  add    %edx,%eax
  mov    %eax,-0x11c(%rbp)
  mov    -0x120(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    0x40(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%edx
  mov    -0x120(%rbp),%eax
  add    %edx,%eax
  imul   -0x12c(%rbp),%eax
  mov    %eax,%edx
  mov    -0x11c(%rbp),%eax
  sub    %edx,%eax
  mov    %eax,-0x118(%rbp)
  mov    -0x120(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    0x40(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%eax
  neg    %eax
  mov    %eax,-0x120(%rbp)
L1173:
  mov    -0x118(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x148(%rbp),%rax
  add    %rax,%rdx
  mov    -0x11c(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rcx
  mov    -0x148(%rbp),%rax
  add    %rcx,%rax
  movsd  (%rdx),%xmm0
  movsd  %xmm0,(%rax)
  mov    -0x118(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x150(%rbp),%rax
  add    %rax,%rdx
  mov    -0x11c(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rcx
  mov    -0x150(%rbp),%rax
  add    %rcx,%rax
  movsd  (%rdx),%xmm0
  movsd  %xmm0,(%rax)
  mov    -0xfc(%rbp),%eax
  sub    %eax,-0x11c(%rbp)
  mov    -0xfc(%rbp),%eax
  sub    %eax,-0x118(%rbp)
  mov    -0x11c(%rbp),%eax
  cmp    -0x110(%rbp),%eax
  je     L215
  jmp    L1173
L215:
  mov    -0x118(%rbp),%eax
  mov    %eax,-0x110(%rbp)
  mov    -0x120(%rbp),%eax
  cmp    -0x130(%rbp),%eax
  je     L535
  jmp    L434
L535:
  mov    -0x110(%rbp),%edx
  mov    -0x10c(%rbp),%eax
  add    %edx,%eax
  mov    %eax,-0x11c(%rbp)
  movl   $0x0,-0x118(%rbp)
L831:
  addl   $0x1,-0x118(%rbp)
  mov    -0x118(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    0x20(%rbp),%rax
  add    %rax,%rdx
  mov    -0x11c(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rcx
  mov    -0x148(%rbp),%rax
  add    %rcx,%rax
  movsd  (%rdx),%xmm0
  movsd  %xmm0,(%rax)
  mov    -0x118(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    0x30(%rbp),%rax
  add    %rax,%rdx
  mov    -0x11c(%rbp),%eax
  cltq
  lea    0x0(,%rax,8),%rcx
  mov    -0x150(%rbp),%rax
  add    %rcx,%rax
  movsd  (%rdx),%xmm0
  movsd  %xmm0,(%rax)
  mov    -0xfc(%rbp),%eax
  sub    %eax,-0x11c(%rbp)
  mov    -0x11c(%rbp),%eax
  cmp    -0x110(%rbp),%eax
  je     L591
  jmp    L831
L591:
  cmpl   $0x0,-0x124(%rbp)
  je     L773
  jmp    L1361
L773:
  cmpl   $0x1,-0x130(%rbp)
  je     L656
  jmp    L934
L656:
  nop
L9:
  mov    -0x114(%rbp),%eax
  add    $0x1,%eax
  mov    %eax,-0x130(%rbp)
  mov    -0xe8(%rbp),%eax
  sub    %eax,-0x100(%rbp)
  mov    -0x100(%rbp),%eax
  sub    -0xfc(%rbp),%eax
  add    $0x1,%eax
  mov    %eax,-0x134(%rbp)
  cmpl   $0x0,-0x100(%rbp)
  js     L282
  jmp    L934
L327:
  nop
  jmp    L578
L282:
  nop
L578:
  leave
  ret
```

tool_calls: name: disassemble_data
arguments: data_tag: D33
data_type: f64
name: disassemble_data
arguments: data_tag: D91
data_type: f64
name: disassemble_data
arguments: data_tag: D112
data_type: f64
name: disassemble_data
arguments: data_tag: D7
data_type: f64
name: disassemble_data
arguments: data_tag: D31
data_type: f32[2]
name: disassemble_data
arguments: data_tag: D149
data_type: f64
name: disassemble_data
arguments: data_tag: D187
data_type: f64
name: disassemble_data
arguments: data_tag: D38
data_type: f64
name: disassemble_data
arguments: data_tag: D74
data_type: f32[2]

tool: D33: 0.7853981633974483

tool: D91: 0.30901699437494745

tool: D112: 0.9510565162951535

tool: D7: 0.8660254037844387

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

tool: D149: 1

tool: D187: 8

tool: D38: 0.5

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

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