user: 提供的汇编代码用C语言表示会是什么样子:

```asm
<synth_1to1_486>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  sub    $0x120,%rsp
  mov    %rdi,-0x108(%rbp)
  mov    %esi,-0x10c(%rbp)
  mov    %rdx,-0x118(%rbp)
  mov    %ecx,-0x110(%rbp)
  mov    -0x118(%rbp),%rax
  mov    %rax,-0x28(%rbp)
  movl   $0x0,-0x6c(%rbp)
  mov    -0x10c(%rbp),%eax
  cltq
  add    %rax,%rax
  add    %rax,-0x28(%rbp)
  mov    -0x10c(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  lea    D7(%rip),%rax
  mov    (%rdx,%rax,1),%eax
  mov    %eax,-0x68(%rbp)
  mov    -0x10c(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x4,%rax
  add    %rdx,%rax
  shl    $0xa,%rax
  lea    D34(%rip),%rdx
  add    %rdx,%rax
  mov    %rax,-0x8(%rbp)
  mov    -0x68(%rbp),%eax
  mov    %eax,-0xfc(%rbp)
  movl   $0x0,-0x100(%rbp)
  jmp    L243
L711:
  addl   $0x1,-0xfc(%rbp)
  cmpl   $0x7f,-0xfc(%rbp)
  jle    L560
  movl   $0x0,-0xf8(%rbp)
  jmp    L1063
L606:
  mov    -0xf8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x4,%rax
  add    %rdx,%rax
  shl    $0x9,%rax
  mov    %rax,%rdx
  mov    -0x8(%rbp),%rax
  add    %rdx,%rax
  add    $0x4,%rax
  mov    %rax,-0x18(%rbp)
  mov    -0x18(%rbp),%rax
  add    $0x1c0,%rax
  mov    %rax,-0x10(%rbp)
  movl   $0x0,-0xf4(%rbp)
  jmp    L1234
L1008:
  movl   $0x0,-0xf0(%rbp)
  jmp    L169
L503:
  mov    -0xf0(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x10(%rbp),%rax
  add    %rdx,%rax
  mov    -0xf0(%rbp),%edx
  movslq %edx,%rdx
  lea    0x0(,%rdx,4),%rcx
  mov    -0x18(%rbp),%rdx
  add    %rcx,%rdx
  mov    (%rax),%eax
  mov    %eax,(%rdx)
  addl   $0x1,-0xf0(%rbp)
L169:
  cmpl   $0xe,-0xf0(%rbp)
  jle    L503
  addq   $0x200,-0x18(%rbp)
  addq   $0x200,-0x10(%rbp)
  addl   $0x1,-0xf4(%rbp)
L1234:
  cmpl   $0x10,-0xf4(%rbp)
  jle    L1008
  addl   $0x1,-0xf8(%rbp)
L1063:
  cmpl   $0x1,-0xf8(%rbp)
  jle    L606
  mov    -0x10c(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  lea    D7(%rip),%rax
  movl   $0x10,(%rdx,%rax,1)
  mov    -0x10c(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  lea    D7(%rip),%rax
  mov    (%rdx,%rax,1),%eax
  mov    %eax,-0xfc(%rbp)
L560:
  mov    -0xfc(%rbp),%eax
  and    $0x1,%eax
  test   %eax,%eax
  je     L1000
  mov    -0xfc(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x8(%rbp),%rax
  lea    (%rdx,%rax,1),%rsi
  mov    -0xfc(%rbp),%eax
  cltq
  add    $0x880,%rax
  lea    0x0(,%rax,4),%rdx
  mov    -0x8(%rbp),%rax
  lea    (%rdx,%rax,1),%rcx
  mov    -0x108(%rbp),%rax
  mov    %rax,%rdx
  mov    %rcx,%rdi
  mov    $0x0,%eax
  call   <dct64_486@plt>
  jmp    L53
L1000:
  mov    -0xfc(%rbp),%eax
  cltq
  add    $0x880,%rax
  lea    0x0(,%rax,4),%rdx
  mov    -0x8(%rbp),%rax
  lea    (%rdx,%rax,1),%rsi
  mov    -0xfc(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x8(%rbp),%rax
  lea    (%rdx,%rax,1),%rcx
  mov    -0x108(%rbp),%rax
  mov    %rax,%rdx
  mov    %rcx,%rdi
  mov    $0x0,%eax
  call   <dct64_486@plt>
L53:
  subq   $0xffffffffffffff80,-0x108(%rbp)
  addl   $0x1,-0x100(%rbp)
L243:
  mov    -0x100(%rbp),%eax
  cmp    -0x110(%rbp),%eax
  jl     L711
  mov    -0x10c(%rbp),%eax
  cltq
  lea    0x0(,%rax,4),%rcx
  lea    D7(%rip),%rdx
  mov    -0xfc(%rbp),%eax
  mov    %eax,(%rcx,%rdx,1)
  mov    -0x68(%rbp),%eax
  mov    %eax,-0xfc(%rbp)
  movl   $0x0,-0x100(%rbp)
  jmp    L843
L885:
  addl   $0x1,-0xfc(%rbp)
  cmpl   $0x7f,-0xfc(%rbp)
  jle    L1125
  movl   $0x10,-0xfc(%rbp)
L1125:
  mov    -0xfc(%rbp),%eax
  and    $0x1,%eax
  test   %eax,%eax
  je     L2
  mov    -0xfc(%rbp),%eax
  cltq
  shl    $0x2,%rax
  lea    -0x3c(%rax),%rdx
  mov    -0x8(%rbp),%rax
  add    %rdx,%rax
  mov    %rax,-0x20(%rbp)
  jmp    L846
L2:
  mov    -0xfc(%rbp),%eax
  cltq
  add    $0x880,%rax
  shl    $0x2,%rax
  lea    -0x3c(%rax),%rdx
  mov    -0x8(%rbp),%rax
  add    %rdx,%rax
  mov    %rax,-0x20(%rbp)
L846:
  mov    -0x20(%rbp),%rax
  mov    (%rax),%eax
  mov    %eax,%edx
  shl    $0x3,%eax
  sub    %eax,%edx
  mov    -0x20(%rbp),%rax
  add    $0x4,%rax
  mov    (%rax),%eax
  imul   $0x35,%eax,%eax
  add    %eax,%edx
  mov    -0x20(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%eax
  imul   $0xffffff8e,%eax,%eax
  add    %eax,%edx
  mov    -0x20(%rbp),%rax
  add    $0xc,%rax
  mov    (%rax),%eax
  imul   $0x1fd,%eax,%eax
  add    %eax,%edx
  mov    -0x20(%rbp),%rax
  add    $0x10,%rax
  mov    (%rax),%eax
  imul   $0xfffffaf8,%eax,%eax
  add    %eax,%edx
  mov    -0x20(%rbp),%rax
  add    $0x14,%rax
  mov    (%rax),%eax
  imul   $0x66b,%eax,%eax
  add    %eax,%edx
  mov    -0x20(%rbp),%rax
  add    $0x18,%rax
  mov    (%rax),%eax
  imul   $0xffffdb64,%eax,%eax
  add    %eax,%edx
  mov    -0x20(%rbp),%rax
  add    $0x1c,%rax
  mov    (%rax),%eax
  imul   $0x4947,%eax,%eax
  add    %eax,%edx
  mov    -0x20(%rbp),%rax
  add    $0x20,%rax
  mov    (%rax),%eax
  imul   $0x249c,%eax,%eax
  add    %eax,%edx
  mov    -0x20(%rbp),%rax
  add    $0x24,%rax
  mov    (%rax),%eax
  imul   $0x66b,%eax,%eax
  add    %eax,%edx
  mov    -0x20(%rbp),%rax
  add    $0x28,%rax
  mov    (%rax),%eax
  imul   $0x508,%eax,%eax
  add    %eax,%edx
  mov    -0x20(%rbp),%rax
  add    $0x2c,%rax
  mov    (%rax),%eax
  imul   $0x1fd,%eax,%eax
  add    %eax,%edx
  mov    -0x20(%rbp),%rax
  add    $0x30,%rax
  mov    (%rax),%eax
  imul   $0x72,%eax,%eax
  add    %eax,%edx
  mov    -0x20(%rbp),%rax
  add    $0x34,%rax
  mov    (%rax),%eax
  imul   $0x35,%eax,%eax
  lea    (%rdx,%rax,1),%ecx
  mov    -0x20(%rbp),%rax
  add    $0x38,%rax
  mov    (%rax),%edx
  mov    %edx,%eax
  shl    $0x3,%eax
  sub    %edx,%eax
  add    %ecx,%eax
  mov    %eax,-0xec(%rbp)
  mov    -0xec(%rbp),%eax
  add    $0x2000,%eax
  sar    $0xe,%eax
  mov    %eax,-0xec(%rbp)
  cmpl   $0xffff8000,-0xec(%rbp)
  jge    L922
  movl   $0xffff8000,-0xec(%rbp)
  jmp    L1192
L922:
  cmpl   $0x7fff,-0xec(%rbp)
  jle    L1192
  movl   $0x7fff,-0xec(%rbp)
L1192:
  mov    -0xec(%rbp),%eax
  mov    %eax,%edx
  mov    -0x28(%rbp),%rax
  mov    %dx,(%rax)
  addq   $0x200,-0x20(%rbp)
  mov    -0x20(%rbp),%rax
  mov    (%rax),%eax
  mov    %eax,-0x34(%rbp)
  mov    -0x34(%rbp),%edx
  mov    %edx,%eax
  shl    $0x2,%edx
  sub    %edx,%eax
  add    %eax,%eax
  mov    %eax,-0xe8(%rbp)
  movl   $0x0,-0xe4(%rbp)
  mov    -0x20(%rbp),%rax
  mov    0x4(%rax),%eax
  mov    %eax,-0x34(%rbp)
  mov    -0x34(%rbp),%eax
  imul   $0x34,%eax,%eax
  add    %eax,-0xe8(%rbp)
  mov    -0x34(%rbp),%eax
  mov    %eax,%ecx
  lea    0x0(,%rax,8),%edx
  mov    %ecx,%eax
  sub    %edx,%eax
  add    %eax,-0xe4(%rbp)
  mov    -0x20(%rbp),%rax
  mov    0x8(%rax),%eax
  mov    %eax,-0x34(%rbp)
  mov    -0x34(%rbp),%eax
  imul   $0xffffff9c,%eax,%eax
  add    %eax,-0xe8(%rbp)
  mov    -0x34(%rbp),%eax
  imul   $0x36,%eax,%eax
  add    %eax,-0xe4(%rbp)
  mov    -0x20(%rbp),%rax
  mov    0xc(%rax),%eax
  mov    %eax,-0x34(%rbp)
  mov    -0x34(%rbp),%eax
  imul   $0x203,%eax,%eax
  add    %eax,-0xe8(%rbp)
  mov    -0x34(%rbp),%eax
  imul   $0xffffff7f,%eax,%eax
  add    %eax,-0xe4(%rbp)
  mov    -0x20(%rbp),%rax
  mov    0x10(%rax),%eax
  mov    %eax,-0x34(%rbp)
  mov    -0x34(%rbp),%eax
  imul   $0xfffffb53,%eax,%eax
  add    %eax,-0xe8(%rbp)
  mov    -0x34(%rbp),%eax
  imul   $0x1f4,%eax,%eax
  add    %eax,-0xe4(%rbp)
  mov    -0x20(%rbp),%rax
  mov    0x14(%rax),%eax
  mov    %eax,-0x34(%rbp)
  mov    -0x34(%rbp),%eax
  imul   $0x6f7,%eax,%eax
  add    %eax,-0xe8(%rbp)
  mov    -0x34(%rbp),%eax
  imul   $0xfffffa9d,%eax,%eax
  add    %eax,-0xe4(%rbp)
  mov    -0x20(%rbp),%rax
  mov    0x18(%rax),%eax
  mov    %eax,-0x34(%rbp)
  mov    -0x34(%rbp),%eax
  imul   $0xffffdd32,%eax,%eax
  add    %eax,-0xe8(%rbp)
  mov    -0x34(%rbp),%eax
  imul   $0x5d1,%eax,%eax
  add    %eax,-0xe4(%rbp)
  mov    -0x20(%rbp),%rax
  mov    0x1c(%rax),%eax
  mov    %eax,-0x34(%rbp)
  mov    -0x34(%rbp),%eax
  imul   $0x493c,%eax,%eax
  add    %eax,-0xe8(%rbp)
  mov    -0x34(%rbp),%eax
  imul   $0xffffd996,%eax,%eax
  add    %eax,-0xe4(%rbp)
  mov    -0x20(%rbp),%rax
  mov    0x20(%rax),%eax
  mov    %eax,-0x34(%rbp)
  mov    -0x34(%rbp),%eax
  imul   $0x266a,%eax,%eax
  add    %eax,-0xe8(%rbp)
  mov    -0x34(%rbp),%eax
  imul   $0x493c,%eax,%eax
  add    %eax,-0xe4(%rbp)
  mov    -0x20(%rbp),%rax
  mov    0x24(%rax),%eax
  mov    %eax,-0x34(%rbp)
  mov    -0x34(%rbp),%eax
  imul   $0x5d1,%eax,%eax
  add    %eax,-0xe8(%rbp)
  mov    -0x34(%rbp),%eax
  imul   $0x22ce,%eax,%eax
  add    %eax,-0xe4(%rbp)
  mov    -0x20(%rbp),%rax
  mov    0x28(%rax),%eax
  mov    %eax,-0x34(%rbp)
  mov    -0x34(%rbp),%eax
  imul   $0x563,%eax,%eax
  add    %eax,-0xe8(%rbp)
  mov    -0x34(%rbp),%eax
  imul   $0x6f7,%eax,%eax
  add    %eax,-0xe4(%rbp)
  mov    -0x20(%rbp),%rax
  mov    0x2c(%rax),%eax
  mov    %eax,-0x34(%rbp)
  mov    -0x34(%rbp),%eax
  imul   $0x1f4,%eax,%eax
  add    %eax,-0xe8(%rbp)
  mov    -0x34(%rbp),%eax
  imul   $0x4ad,%eax,%eax
  add    %eax,-0xe4(%rbp)
  mov    -0x20(%rbp),%rax
  mov    0x30(%rax),%eax
  mov    %eax,-0x34(%rbp)
  mov    -0x34(%rbp),%eax
  mov    %eax,%edx
  shl    $0x7,%edx
  add    %edx,%eax
  add    %eax,-0xe8(%rbp)
  mov    -0x34(%rbp),%eax
  imul   $0x203,%eax,%eax
  add    %eax,-0xe4(%rbp)
  mov    -0x20(%rbp),%rax
  mov    0x34(%rax),%eax
  mov    %eax,-0x34(%rbp)
  mov    -0x34(%rbp),%eax
  imul   $0x36,%eax,%eax
  add    %eax,-0xe8(%rbp)
  mov    -0x34(%rbp),%eax
  imul   $0x64,%eax,%eax
  add    %eax,-0xe4(%rbp)
  mov    -0x20(%rbp),%rax
  mov    0x38(%rax),%eax
  mov    %eax,-0x34(%rbp)
  mov    -0x34(%rbp),%edx
  mov    %edx,%eax
  shl    $0x3,%eax
  sub    %edx,%eax
  add    %eax,-0xe8(%rbp)
  mov    -0x34(%rbp),%eax
  imul   $0x34,%eax,%eax
  add    %eax,-0xe4(%rbp)
  mov    -0x20(%rbp),%rax
  mov    0x3c(%rax),%eax
  mov    %eax,-0x34(%rbp)
  mov    -0x34(%rbp),%edx
  mov    %edx,%eax
  add    %eax,%eax
  add    %edx,%eax
  add    %eax,%eax
  add    %eax,-0xe4(%rbp)
  mov    -0xe8(%rbp),%eax
  add    $0x2000,%eax
  sar    $0xe,%eax
  mov    %eax,-0xe8(%rbp)
  mov    -0xe4(%rbp),%eax
  add    $0x2000,%eax
  sar    $0xe,%eax
  mov    %eax,-0xe4(%rbp)
  cmpl   $0xffff8000,-0xe8(%rbp)
  jge    L849
  movl   $0xffff8000,-0xe8(%rbp)
  jmp    L1061
L849:
  cmpl   $0x7fff,-0xe8(%rbp)
  jle    L1061
  movl   $0x7fff,-0xe8(%rbp)
L1061:
  mov    -0x28(%rbp),%rax
  add    $0x4,%rax
  mov    -0xe8(%rbp),%edx
  mov    %dx,(%rax)
  cmpl   $0xffff8000,-0xe4(%rbp)
  jge    L1171
  movl   $0xffff8000,-0xe4(%rbp)
  jmp    L1098
L1171:
  cmpl   $0x7fff,-0xe4(%rbp)
  jle    L1098
  movl   $0x7fff,-0xe4(%rbp)
L1098:
  mov    -0x28(%rbp),%rax
  add    $0x7c,%rax
  mov    -0xe4(%rbp),%edx
  mov    %dx,(%rax)
  addq   $0x200,-0x20(%rbp)
  mov    -0x20(%rbp),%rax
  mov    (%rax),%eax
  mov    %eax,-0x30(%rbp)
  mov    -0x30(%rbp),%edx
  mov    %edx,%eax
  shl    $0x2,%edx
  sub    %edx,%eax
  add    %eax,%eax
  mov    %eax,-0xe0(%rbp)
  movl   $0x0,-0xdc(%rbp)
  mov    -0x20(%rbp),%rax
  mov    0x4(%rax),%eax
  mov    %eax,-0x30(%rbp)
  mov    -0x30(%rbp),%eax
  imul   $0x32,%eax,%eax
  add    %eax,-0xe0(%rbp)
  mov    -0x30(%rbp),%edx
  mov    $0x0,%eax
  sub    %edx,%eax
  shl    $0x3,%eax
  add    %eax,-0xdc(%rbp)
  mov    -0x20(%rbp),%rax
  mov    0x8(%rax),%eax
  mov    %eax,-0x30(%rbp)
  mov    -0x30(%rbp),%eax
  imul   $0xffffffaa,%eax,%eax
  add    %eax,-0xe0(%rbp)
  mov    -0x30(%rbp),%eax
  imul   $0x37,%eax,%eax
  add    %eax,-0xdc(%rbp)
  mov    -0x20(%rbp),%rax
  mov    0xc(%rax),%eax
  mov    %eax,-0x30(%rbp)
  mov    -0x30(%rbp),%eax
  imul   $0x208,%eax,%eax
  add    %eax,-0xe0(%rbp)
  mov    -0x30(%rbp),%eax
  imul   $0xffffff6f,%eax,%eax
  add    %eax,-0xdc(%rbp)
  mov    -0x20(%rbp),%rax
  mov    0x10(%rax),%eax
  mov    %eax,-0x30(%rbp)
  mov    -0x30(%rbp),%eax
  imul   $0xfffffbae,%eax,%eax
  add    %eax,-0xe0(%rbp)
  mov    -0x30(%rbp),%eax
  imul   $0x1e8,%eax,%eax
  add    %eax,-0xdc(%rbp)
  mov    -0x20(%rbp),%rax
  mov    0x14(%rax),%eax
  mov    %eax,-0x30(%rbp)
  mov    -0x30(%rbp),%eax
  imul   $0x776,%eax,%eax
  add    %eax,-0xe0(%rbp)
  mov    -0x30(%rbp),%eax
  imul   $0xfffffa43,%eax,%eax
  add    %eax,-0xdc(%rbp)
  mov    -0x20(%rbp),%rax
  mov    0x18(%rax),%eax
  mov    %eax,-0x30(%rbp)
  mov    -0x30(%rbp),%eax
  imul   $0xffffdf01,%eax,%eax
  add    %eax,-0xe0(%rbp)
  mov    -0x30(%rbp),%eax
  imul   $0x52a,%eax,%eax
  add    %eax,-0xdc(%rbp)
  mov    -0x20(%rbp),%rax
  mov    0x1c(%rax),%eax
  mov    %eax,-0x30(%rbp)
  mov    -0x30(%rbp),%eax
  imul   $0x491a,%eax,%eax
  add    %eax,-0xe0(%rbp)
  mov    -0x30(%rbp),%eax
  imul   $0xffffd7ca,%eax,%eax
  add    %eax,-0xdc(%rbp)
  mov    -0x20(%rbp),%rax
  mov    0x20(%rax),%eax
  mov    %eax,-0x30(%rbp)
  mov    -0x30(%rbp),%eax
  imul   $0x2836,%eax,%eax
  add    %eax,-0xe0(%rbp)
  mov    -0x30(%rbp),%eax
  imul   $0x491a,%eax,%eax
  add    %eax,-0xdc(%rbp)
  mov    -0x20(%rbp),%rax
  mov    0x24(%rax),%eax
  mov    %eax,-0x30(%rbp)
  mov    -0x30(%rbp),%eax
  imul   $0x52a,%eax,%eax
  add    %eax,-0xe0(%rbp)
  mov    -0x30(%rbp),%eax
  imul   $0x20ff,%eax,%eax
  add    %eax,-0xdc(%rbp)
  mov    -0x20(%rbp),%rax
  mov    0x28(%rax),%eax
  mov    %eax,-0x30(%rbp)
  mov    -0x30(%rbp),%eax
  imul   $0x5bd,%eax,%eax
  add    %eax,-0xe0(%rbp)
  mov    -0x30(%rbp),%eax
  imul   $0x776,%eax,%eax
  add    %eax,-0xdc(%rbp)
  mov    -0x20(%rbp),%rax
  mov    0x2c(%rax),%eax
  mov    %eax,-0x30(%rbp)
  mov    -0x30(%rbp),%eax
  imul   $0x1e8,%eax,%eax
  add    %eax,-0xe0(%rbp)
  mov    -0x30(%rbp),%eax
  imul   $0x452,%eax,%eax
  add    %eax,-0xdc(%rbp)
  mov    -0x20(%rbp),%rax
  mov    0x30(%rax),%eax
  mov    %eax,-0x30(%rbp)
  mov    -0x30(%rbp),%eax
  imul   $0x91,%eax,%eax
  add    %eax,-0xe0(%rbp)
  mov    -0x30(%rbp),%eax
  imul   $0x208,%eax,%eax
  add    %eax,-0xdc(%rbp)
  mov    -0x20(%rbp),%rax
  mov    0x34(%rax),%eax
  mov    %eax,-0x30(%rbp)
  mov    -0x30(%rbp),%eax
  imul   $0x37,%eax,%eax
  add    %eax,-0xe0(%rbp)
  mov    -0x30(%rbp),%eax
  imul   $0x56,%eax,%eax
  add    %eax,-0xdc(%rbp)
  mov    -0x20(%rbp),%rax
  mov    0x38(%rax),%eax
  mov    %eax,-0x30(%rbp)
  mov    -0x30(%rbp),%eax
  shl    $0x3,%eax
  add    %eax,-0xe0(%rbp)
  mov    -0x30(%rbp),%eax
  imul   $0x32,%eax,%eax
  add    %eax,-0xdc(%rbp)
  mov    -0x20(%rbp),%rax
  mov    0x3c(%rax),%eax
  mov    %eax,-0x30(%rbp)
  mov    -0x30(%rbp),%edx
  mov    %edx,%eax
  add    %eax,%eax
  add    %edx,%eax
  add    %eax,%eax
  add    %eax,-0xdc(%rbp)
  mov    -0xe0(%rbp),%eax
  add    $0x2000,%eax
  sar    $0xe,%eax
  mov    %eax,-0xe0(%rbp)
  mov    -0xdc(%rbp),%eax
  add    $0x2000,%eax
  sar    $0xe,%eax
  mov    %eax,-0xdc(%rbp)
  cmpl   $0xffff8000,-0xe0(%rbp)
  jge    L324
  movl   $0xffff8000,-0xe0(%rbp)
  jmp    L403
L324:
  cmpl   $0x7fff,-0xe0(%rbp)
  jle    L403
  movl   $0x7fff,-0xe0(%rbp)
L403:
  mov    -0x28(%rbp),%rax
  add    $0x8,%rax
  mov    -0xe0(%rbp),%edx
  mov    %dx,(%rax)
  cmpl   $0xffff8000,-0xdc(%rbp)
  jge    L143
  movl   $0xffff8000,-0xdc(%rbp)
  jmp    L481
L143:
  cmpl   $0x7fff,-0xdc(%rbp)
  jle    L481
  movl   $0x7fff,-0xdc(%rbp)
L481:
  mov    -0x28(%rbp),%rax
  add    $0x78,%rax
  mov    -0xdc(%rbp),%edx
  mov    %dx,(%rax)
  addq   $0x200,-0x20(%rbp)
  mov    -0x20(%rbp),%rax
  mov    (%rax),%eax
  mov    %eax,-0x2c(%rbp)
  mov    -0x2c(%rbp),%edx
  mov    %edx,%eax
  shl    $0x2,%eax
  add    %edx,%eax
  mov    %eax,-0xd8(%rbp)
  negl   -0xd8(%rbp)
  movl   $0x0,-0xd4(%rbp)
  mov    -0x20(%rbp),%rax
  mov    0x4(%rax),%eax
  mov    %eax,-0x2c(%rbp)
  mov    -0x2c(%rbp),%eax
  imul   $0x31,%eax,%eax
  add    %eax,-0xd8(%rbp)
  mov    -0x2c(%rbp),%edx
  mov    %edx,%eax
  shl    $0x3,%eax
  add    %edx,%eax
  neg    %eax
  add    %eax,-0xd4(%rbp)
  mov    -0x20(%rbp),%rax
  mov    0x8(%rax),%eax
  mov    %eax,-0x2c(%rbp)
  mov    -0x2c(%rbp),%eax
  imul   $0xffffffb7,%eax,%eax
  add    %eax,-0xd8(%rbp)
  mov    -0x2c(%rbp),%eax
  imul   $0x38,%eax,%eax
  add    %eax,-0xd4(%rbp)
  mov    -0x20(%rbp),%rax
  mov    0xc(%rax),%eax
  mov    %eax,-0x2c(%rbp)
  mov    -0x2c(%rbp),%eax
  imul   $0x209,%eax,%eax
  add    %eax,-0xd8(%rbp)
  mov    -0x2c(%rbp),%eax
  imul   $0xffffff5f,%eax,%eax
  add    %eax,-0xd4(%rbp)
  mov    -0x20(%rbp),%rax
  mov    0x10(%rax),%eax
  mov    %eax,-0x2c(%rbp)
  mov    -0x2c(%rbp),%eax
  imul   $0xfffffc09,%eax,%eax
  add    %eax,-0xd8(%rbp)
  mov    -0x2c(%rbp),%eax
  imul   $0x1d9,%eax,%eax
  add    %eax,-0xd4(%rbp)
  mov    -0x20(%rbp),%rax
  mov    0x14(%rax),%eax
  mov    %eax,-0x2c(%rbp)
  mov    -0x2c(%rbp),%eax
  imul   $0x7e7,%eax,%eax
  add    %eax,-0xd8(%rbp)
  mov    -0x2c(%rbp),%eax
  imul   $0xfffff9e9,%eax,%eax
  add    %eax,-0xd4(%rbp)
  mov    -0x20(%rbp),%rax
  mov    0x18(%rax),%eax
  mov    %eax,-0x2c(%rbp)
  mov    -0x2c(%rbp),%eax
  imul   $0xffffe0ce,%eax,%eax
  add    %eax,-0xd8(%rbp)
  mov    -0x2c(%rbp),%eax
  imul   $0x474,%eax,%eax
  add    %eax,-0xd4(%rbp)
  mov    -0x20(%rbp),%rax
  mov    0x1c(%rax),%eax
  mov    %eax,-0x2c(%rbp)
  mov    -0x2c(%rbp),%eax
  imul   $0x48e1,%eax,%eax
  add    %eax,-0xd8(%rbp)
  mov    -0x2c(%rbp),%eax
  imul   $0xffffd601,%eax,%eax
  add    %eax,-0xd4(%rbp)
  mov    -0x20(%rbp),%rax
  mov    0x20(%rax),%eax
  mov    %eax,-0x2c(%rbp)
  mov    -0x2c(%rbp),%eax
  imul   $0x29ff,%eax,%eax
  add    %eax,-0xd8(%rbp)
  mov    -0x2c(%rbp),%eax
  imul   $0x48e1,%eax,%eax
  add    %eax,-0xd4(%rbp)
  mov    -0x20(%rbp),%rax
  mov    0x24(%rax),%eax
  mov    %eax,-0x2c(%rbp)
  mov    -0x2c(%rbp),%eax
  imul   $0x474,%eax,%eax
  add    %eax,-0xd8(%rbp)
  mov    -0x2c(%rbp),%eax
  imul   $0x1f32,%eax,%eax
  add    %eax,-0xd4(%rbp)
  mov    -0x20(%rbp),%rax
  mov    0x28(%rax),%eax
  mov    %eax,-0x2c(%rbp)
  mov    -0x2c(%rbp),%eax
  imul   $0x617,%eax,%eax
  add    %eax,-0xd8(%rbp)
  mov    -0x2c(%rbp),%eax
  imul   $0x7e7,%eax,%eax
  add    %eax,-0xd4(%rbp)
  mov    -0x20(%rbp),%rax
  mov    0x2c(%rax),%eax
  mov    %eax,-0x2c(%rbp)
  mov    -0x2c(%rbp),%eax
  imul   $0x1d9,%eax,%eax
  add    %eax,-0xd8(%rbp)
  mov    -0x2c(%rbp),%eax
  imul   $0x3f7,%eax,%eax
  add    %eax,-0xd4(%rbp)
  mov    -0x20(%rbp),%rax
  mov    0x30(%rax),%eax
  mov    %eax,-0x2c(%rbp)
  mov    -0x2c(%rbp),%eax
  imul   $0xa1,%eax,%eax
  add    %eax,-0xd8(%rbp)
  mov    -0x2c(%rbp),%eax
  imul   $0x209,%eax,%eax
  add    %eax,-0xd4(%rbp)
  mov    -0x20(%rbp),%rax
  mov    0x34(%rax),%eax
  mov    %eax,-0x2c(%rbp)
  mov    -0x2c(%rbp),%eax
  imul   $0x38,%eax,%eax
  add    %eax,-0xd8(%rbp)
  mov    -0x2c(%rbp),%edx
  mov    %edx,%eax
  shl    $0x3,%eax
  add    %edx,%eax
  shl    $0x3,%eax
  add    %edx,%eax
  add    %eax,-0xd4(%rbp)
  mov    -0x20(%rbp),%rax
  mov    0x38(%rax),%eax
  mov    %eax,-0x2c(%rbp)
  mov    -0x2c(%rbp),%edx
  mov    %edx,%eax
  shl    $0x3,%eax
  add    %edx,%eax
  add    %eax,-0xd8(%rbp)
  mov    -0x2c(%rbp),%eax
  imul   $0x31,%eax,%eax
  add    %eax,-0xd4(%rbp)
  mov    -0x20(%rbp),%rax
  mov    0x3c(%rax),%eax
  mov    %eax,-0x2c(%rbp)
  mov    -0x2c(%rbp),%edx
  mov    %edx,%eax
  shl    $0x2,%eax
  add    %edx,%eax
  add    %eax,-0xd4(%rbp)
  mov    -0xd8(%rbp),%eax
  add    $0x2000,%eax
  sar    $0xe,%eax
  mov    %eax,-0xd8(%rbp)
  mov    -0xd4(%rbp),%eax
  add    $0x2000,%eax
  sar    $0xe,%eax
  mov    %eax,-0xd4(%rbp)
  cmpl   $0xffff8000,-0xd8(%rbp)
  jge    L804
  movl   $0xffff8000,-0xd8(%rbp)
  jmp    L796
L804:
  cmpl   $0x7fff,-0xd8(%rbp)
  jle    L796
  movl   $0x7fff,-0xd8(%rbp)
L796:
  mov    -0x28(%rbp),%rax
  add    $0xc,%rax
  mov    -0xd8(%rbp),%edx
  mov    %dx,(%rax)
  cmpl   $0xffff8000,-0xd4(%rbp)
  jge    L1166
  movl   $0xffff8000,-0xd4(%rbp)
  jmp    L989
L1166:
  cmpl   $0x7fff,-0xd4(%rbp)
  jle    L989
  movl   $0x7fff,-0xd4(%rbp)
L989:
  mov    -0x28(%rbp),%rax
  add    $0x74,%rax
  mov    -0xd4(%rbp),%edx
  mov    %dx,(%rax)
  addq   $0x200,-0x20(%rbp)
  subq   $0xffffffffffffff80,-0x28(%rbp)
  addl   $0x1,-0x100(%rbp)
L843:
  mov    -0x100(%rbp),%eax
  cmp    -0x110(%rbp),%eax
  jl     L885
  mov    -0x110(%rbp),%eax
  shl    $0x6,%eax
  cltq
  add    %rax,%rax
  neg    %rax
  add    %rax,-0x28(%rbp)
  mov    -0x68(%rbp),%eax
  mov    %eax,-0xfc(%rbp)
  movl   $0x0,-0x100(%rbp)
  jmp    L338
L917:
  addl   $0x1,-0xfc(%rbp)
  cmpl   $0x7f,-0xfc(%rbp)
  jle    L567
  movl   $0x10,-0xfc(%rbp)
L567:
  mov    -0xfc(%rbp),%eax
  and    $0x1,%eax
  test   %eax,%eax
  je     L745
  mov    -0xfc(%rbp),%eax
  cltq
  add    $0x1f1,%rax
  lea    0x0(,%rax,4),%rdx
  mov    -0x8(%rbp),%rax
  add    %rdx,%rax
  mov    %rax,-0x20(%rbp)
  jmp    L1047
L745:
  mov    -0xfc(%rbp),%eax
  cltq
  add    $0xa71,%rax
  lea    0x0(,%rax,4),%rdx
  mov    -0x8(%rbp),%rax
  add    %rdx,%rax
  mov    %rax,-0x20(%rbp)
L1047:
  mov    -0x20(%rbp),%rax
  mov    (%rax),%eax
  mov    %eax,-0x44(%rbp)
  mov    -0x44(%rbp),%edx
  mov    $0x0,%eax
  sub    %edx,%eax
  shl    $0x2,%eax
  mov    %eax,-0xd0(%rbp)
  movl   $0x0,-0xcc(%rbp)
  mov    -0x20(%rbp),%rax
  mov    0x4(%rax),%eax
  mov    %eax,-0x44(%rbp)
  mov    -0x44(%rbp),%eax
  imul   $0x2f,%eax,%eax
  add    %eax,-0xd0(%rbp)
  mov    -0x44(%rbp),%eax
  imul   $0xfffffff6,%eax,%eax
  add    %eax,-0xcc(%rbp)
  mov    -0x20(%rbp),%rax
  mov    0x8(%rax),%eax
  mov    %eax,-0x44(%rbp)
  mov    -0x44(%rbp),%eax
  imul   $0xffffffc3,%eax,%eax
  add    %eax,-0xd0(%rbp)
  mov    -0x44(%rbp),%eax
  imul   $0x38,%eax,%eax
  add    %eax,-0xcc(%rbp)
  mov    -0x20(%rbp),%rax
  mov    0xc(%rax),%eax
  mov    %eax,-0x44(%rbp)
  mov    -0x44(%rbp),%eax
  imul   $0x209,%eax,%eax
  add    %eax,-0xd0(%rbp)
  mov    -0x44(%rbp),%eax
  imul   $0xffffff4f,%eax,%eax
  add    %eax,-0xcc(%rbp)
  mov    -0x20(%rbp),%rax
  mov    0x10(%rax),%eax
  mov    %eax,-0x44(%rbp)
  mov    -0x44(%rbp),%eax
  imul   $0xfffffc62,%eax,%eax
  add    %eax,-0xd0(%rbp)
  mov    -0x44(%rbp),%eax
  imul   $0x1c7,%eax,%eax
  add    %eax,-0xcc(%rbp)
  mov    -0x20(%rbp),%rax
  mov    0x14(%rax),%eax
  mov    %eax,-0x44(%rbp)
  mov    -0x44(%rbp),%eax
  imul   $0x84b,%eax,%eax
  add    %eax,-0xd0(%rbp)
  mov    -0x44(%rbp),%eax
  imul   $0xfffff991,%eax,%eax
  add    %eax,-0xcc(%rbp)
  mov    -0x20(%rbp),%rax
  mov    0x18(%rax),%eax
  mov    %eax,-0x44(%rbp)
  mov    -0x44(%rbp),%eax
  imul   $0xffffe298,%eax,%eax
  add    %eax,-0xd0(%rbp)
  mov    -0x44(%rbp),%eax
  imul   $0x3b0,%eax,%eax
  add    %eax,-0xcc(%rbp)
  mov    -0x20(%rbp),%rax
  mov    0x1c(%rax),%eax
  mov    %eax,-0x44(%rbp)
  mov    -0x44(%rbp),%eax
  imul   $0x4892,%eax,%eax
  add    %eax,-0xd0(%rbp)
  mov    -0x44(%rbp),%eax
  imul   $0xffffd43b,%eax,%eax
  add    %eax,-0xcc(%rbp)
  mov    -0x20(%rbp),%rax
  mov    0x20(%rax),%eax
  mov    %eax,-0x44(%rbp)
  mov    -0x44(%rbp),%eax
  imul   $0x2bc5,%eax,%eax
  add    %eax,-0xd0(%rbp)
  mov    -0x44(%rbp),%eax
  imul   $0x4892,%eax,%eax
  add    %eax,-0xcc(%rbp)
  mov    -0x20(%rbp),%rax
  mov    0x24(%rax),%eax
  mov    %eax,-0x44(%rbp)
  mov    -0x44(%rbp),%eax
  imul   $0x3b0,%eax,%eax
  add    %eax,-0xd0(%rbp)
  mov    -0x44(%rbp),%eax
  imul   $0x1d68,%eax,%eax
  add    %eax,-0xcc(%rbp)
  mov    -0x20(%rbp),%rax
  mov    0x28(%rax),%eax
  mov    %eax,-0x44(%rbp)
  mov    -0x44(%rbp),%eax
  imul   $0x66f,%eax,%eax
  add    %eax,-0xd0(%rbp)
  mov    -0x44(%rbp),%eax
  imul   $0x84b,%eax,%eax
  add    %eax,-0xcc(%rbp)
  mov    -0x20(%rbp),%rax
  mov    0x2c(%rax),%eax
  mov    %eax,-0x44(%rbp)
  mov    -0x44(%rbp),%eax
  imul   $0x1c7,%eax,%eax
  add    %eax,-0xd0(%rbp)
  mov    -0x44(%rbp),%eax
  imul   $0x39e,%eax,%eax
  add    %eax,-0xcc(%rbp)
  mov    -0x20(%rbp),%rax
  mov    0x30(%rax),%eax
  mov    %eax,-0x44(%rbp)
  mov    -0x44(%rbp),%eax
  imul   $0xb1,%eax,%eax
  add    %eax,-0xd0(%rbp)
  mov    -0x44(%rbp),%eax
  imul   $0x209,%eax,%eax
  add    %eax,-0xcc(%rbp)
  mov    -0x20(%rbp),%rax
  mov    0x34(%rax),%eax
  mov    %eax,-0x44(%rbp)
  mov    -0x44(%rbp),%eax
  imul   $0x38,%eax,%eax
  add    %eax,-0xd0(%rbp)
  mov    -0x44(%rbp),%eax
  imul   $0x3d,%eax,%eax
  add    %eax,-0xcc(%rbp)
  mov    -0x20(%rbp),%rax
  mov    0x38(%rax),%eax
  mov    %eax,-0x44(%rbp)
  mov    -0x44(%rbp),%edx
  mov    %edx,%eax
  shl    $0x2,%eax
  add    %edx,%eax
  add    %eax,%eax
  add    %eax,-0xd0(%rbp)
  mov    -0x44(%rbp),%eax
  imul   $0x2f,%eax,%eax
  add    %eax,-0xcc(%rbp)
  mov    -0x20(%rbp),%rax
  mov    0x3c(%rax),%eax
  mov    %eax,-0x44(%rbp)
  mov    -0x44(%rbp),%eax
  shl    $0x2,%eax
  add    %eax,-0xcc(%rbp)
  mov    -0xd0(%rbp),%eax
  add    $0x2000,%eax
  sar    $0xe,%eax
  mov    %eax,-0xd0(%rbp)
  mov    -0xcc(%rbp),%eax
  add    $0x2000,%eax
  sar    $0xe,%eax
  mov    %eax,-0xcc(%rbp)
  cmpl   $0xffff8000,-0xd0(%rbp)
  jge    L1102
  movl   $0xffff8000,-0xd0(%rbp)
  jmp    L1122
L1102:
  cmpl   $0x7fff,-0xd0(%rbp)
  jle    L1122
  movl   $0x7fff,-0xd0(%rbp)
L1122:
  mov    -0x28(%rbp),%rax
  add    $0x10,%rax
  mov    -0xd0(%rbp),%edx
  mov    %dx,(%rax)
  cmpl   $0xffff8000,-0xcc(%rbp)
  jge    L742
  movl   $0xffff8000,-0xcc(%rbp)
  jmp    L459
L742:
  cmpl   $0x7fff,-0xcc(%rbp)
  jle    L459
  movl   $0x7fff,-0xcc(%rbp)
L459:
  mov    -0x28(%rbp),%rax
  add    $0x70,%rax
  mov    -0xcc(%rbp),%edx
  mov    %dx,(%rax)
  addq   $0x200,-0x20(%rbp)
  mov    -0x20(%rbp),%rax
  mov    (%rax),%eax
  mov    %eax,-0x40(%rbp)
  mov    -0x40(%rbp),%edx
  mov    $0x0,%eax
  sub    %edx,%eax
  shl    $0x2,%eax
  mov    %eax,-0xc8(%rbp)
  movl   $0x0,-0xc4(%rbp)
  mov    -0x20(%rbp),%rax
  mov    0x4(%rax),%eax
  mov    %eax,-0x40(%rbp)
  mov    -0x40(%rbp),%eax
  imul   $0x2d,%eax,%eax
  add    %eax,-0xc8(%rbp)
  mov    -0x40(%rbp),%eax
  imul   $0xfffffff5,%eax,%eax
  add    %eax,-0xc4(%rbp)
  mov    -0x20(%rbp),%rax
  mov    0x8(%rax),%eax
  mov    %eax,-0x40(%rbp)
  mov    -0x40(%rbp),%eax
  imul   $0xffffffcf,%eax,%eax
  add    %eax,-0xc8(%rbp)
  mov    -0x40(%rbp),%eax
  imul   $0x39,%eax,%eax
  add    %eax,-0xc4(%rbp)
  mov    -0x20(%rbp),%rax
  mov    0xc(%rax),%eax
  mov    %eax,-0x40(%rbp)
  mov    -0x40(%rbp),%eax
  imul   $0x206,%eax,%eax
  add    %eax,-0xc8(%rbp)
  mov    -0x40(%rbp),%eax
  imul   $0xffffff3e,%eax,%eax
  add    %eax,-0xc4(%rbp)
  mov    -0x20(%rbp),%rax
  mov    0x10(%rax),%eax
  mov    %eax,-0x40(%rbp)
  mov    -0x40(%rbp),%eax
  imul   $0xfffffcbb,%eax,%eax
  add    %eax,-0xc8(%rbp)
  mov    -0x40(%rbp),%eax
  imul   $0x1b2,%eax,%eax
  add    %eax,-0xc4(%rbp)
  mov    -0x20(%rbp),%rax
  mov    0x14(%rax),%eax
  mov    %eax,-0x40(%rbp)
  mov    -0x40(%rbp),%eax
  imul   $0x8a2,%eax,%eax
  add    %eax,-0xc8(%rbp)
  mov    -0x40(%rbp),%eax
  imul   $0xfffff93b,%eax,%eax
  add    %eax,-0xc4(%rbp)
  mov    -0x20(%rbp),%rax
  mov    0x18(%rax),%eax
  mov    %eax,-0x40(%rbp)
  mov    -0x40(%rbp),%eax
  imul   $0xffffe460,%eax,%eax
  add    %eax,-0xc8(%rbp)
  mov    -0x40(%rbp),%eax
  imul   $0x2dd,%eax,%eax
  add    %eax,-0xc4(%rbp)
  mov    -0x20(%rbp),%rax
  mov    0x1c(%rax),%eax
  mov    %eax,-0x40(%rbp)
  mov    -0x40(%rbp),%eax
  imul   $0x482d,%eax,%eax
  add    %eax,-0xc8(%rbp)
  mov    -0x40(%rbp),%eax
  imul   $0xffffd27a,%eax,%eax
  add    %eax,-0xc4(%rbp)
  mov    -0x20(%rbp),%rax
  mov    0x20(%rax),%eax
  mov    %eax,-0x40(%rbp)
  mov    -0x40(%rbp),%eax
  imul   $0x2d86,%eax,%eax
  add    %eax,-0xc8(%rbp)
  mov    -0x40(%rbp),%eax
  imul   $0x482d,%eax,%eax
  add    %eax,-0xc4(%rbp)
  mov    -0x20(%rbp),%rax
  mov    0x24(%rax),%eax
  mov    %eax,-0x40(%rbp)
  mov    -0x40(%rbp),%eax
  imul   $0x2dd,%eax,%eax
  add    %eax,-0xc8(%rbp)
  mov    -0x40(%rbp),%eax
  imul   $0x1ba0,%eax,%eax
  add    %eax,-0xc4(%rbp)
  mov    -0x20(%rbp),%rax
  mov    0x28(%rax),%eax
  mov    %eax,-0x40(%rbp)
  mov    -0x40(%rbp),%eax
  imul   $0x6c5,%eax,%eax
  add    %eax,-0xc8(%rbp)
  mov    -0x40(%rbp),%eax
  imul   $0x8a2,%eax,%eax
  add    %eax,-0xc4(%rbp)
  mov    -0x20(%rbp),%rax
  mov    0x2c(%rax),%eax
  mov    %eax,-0x40(%rbp)
  mov    -0x40(%rbp),%eax
  imul   $0x1b2,%eax,%eax
  add    %eax,-0xc8(%rbp)
  mov    -0x40(%rbp),%eax
  imul   $0x345,%eax,%eax
  add    %eax,-0xc4(%rbp)
  mov    -0x20(%rbp),%rax
  mov    0x30(%rax),%eax
  mov    %eax,-0x40(%rbp)
  mov    -0x40(%rbp),%eax
  imul   $0xc2,%eax,%eax
  add    %eax,-0xc8(%rbp)
  mov    -0x40(%rbp),%eax
  imul   $0x206,%eax,%eax
  add    %eax,-0xc4(%rbp)
  mov    -0x20(%rbp),%rax
  mov    0x34(%rax),%eax
  mov    %eax,-0x40(%rbp)
  mov    -0x40(%rbp),%eax
  imul   $0x39,%eax,%eax
  add    %eax,-0xc8(%rbp)
  mov    -0x40(%rbp),%eax
  imul   $0x31,%eax,%eax
  add    %eax,-0xc4(%rbp)
  mov    -0x20(%rbp),%rax
  mov    0x38(%rax),%eax
  mov    %eax,-0x40(%rbp)
  mov    -0x40(%rbp),%edx
  mov    %edx,%eax
  shl    $0x2,%eax
  add    %edx,%eax
  add    %eax,%eax
  add    %edx,%eax
  add    %eax,-0xc8(%rbp)
  mov    -0x40(%rbp),%eax
  imul   $0x2d,%eax,%eax
  add    %eax,-0xc4(%rbp)
  mov    -0x20(%rbp),%rax
  mov    0x3c(%rax),%eax
  mov    %eax,-0x40(%rbp)
  mov    -0x40(%rbp),%eax
  shl    $0x2,%eax
  add    %eax,-0xc4(%rbp)
  mov    -0xc8(%rbp),%eax
  add    $0x2000,%eax
  sar    $0xe,%eax
  mov    %eax,-0xc8(%rbp)
  mov    -0xc4(%rbp),%eax
  add    $0x2000,%eax
  sar    $0xe,%eax
  mov    %eax,-0xc4(%rbp)
  cmpl   $0xffff8000,-0xc8(%rbp)
  jge    L1259
  movl   $0xffff8000,-0xc8(%rbp)
  jmp    L1011
L1259:
  cmpl   $0x7fff,-0xc8(%rbp)
  jle    L1011
  movl   $0x7fff,-0xc8(%rbp)
L1011:
  mov    -0x28(%rbp),%rax
  add    $0x14,%rax
  mov    -0xc8(%rbp),%edx
  mov    %dx,(%rax)
  cmpl   $0xffff8000,-0xc4(%rbp)
  jge    L563
  movl   $0xffff8000,-0xc4(%rbp)
  jmp    L1225
L563:
  cmpl   $0x7fff,-0xc4(%rbp)
  jle    L1225
  movl   $0x7fff,-0xc4(%rbp)
L1225:
  mov    -0x28(%rbp),%rax
  add    $0x6c,%rax
  mov    -0xc4(%rbp),%edx
  mov    %dx,(%rax)
  addq   $0x200,-0x20(%rbp)
  mov    -0x20(%rbp),%rax
  mov    (%rax),%eax
  mov    %eax,-0x3c(%rbp)
  mov    -0x3c(%rbp),%edx
  mov    $0x0,%eax
  sub    %edx,%eax
  shl    $0x2,%eax
  mov    %eax,-0xc0(%rbp)
  movl   $0x0,-0xbc(%rbp)
  mov    -0x20(%rbp),%rax
  mov    0x4(%rax),%eax
  mov    %eax,-0x3c(%rbp)
  mov    -0x3c(%rbp),%eax
  imul   $0x2c,%eax,%eax
  add    %eax,-0xc0(%rbp)
  mov    -0x3c(%rbp),%edx
  mov    %edx,%eax
  shl    $0x2,%edx
  sub    %edx,%eax
  shl    $0x2,%eax
  add    %eax,-0xbc(%rbp)
  mov    -0x20(%rbp),%rax
  mov    0x8(%rax),%eax
  mov    %eax,-0x3c(%rbp)
  mov    -0x3c(%rbp),%eax
  imul   $0xffffffda,%eax,%eax
  add    %eax,-0xc0(%rbp)
  mov    -0x3c(%rbp),%eax
  imul   $0x39,%eax,%eax
  add    %eax,-0xbc(%rbp)
  mov    -0x20(%rbp),%rax
  mov    0xc(%rax),%eax
  mov    %eax,-0x3c(%rbp)
  mov    -0x3c(%rbp),%eax
  imul   $0x202,%eax,%eax
  add    %eax,-0xc0(%rbp)
  mov    -0x3c(%rbp),%eax
  imul   $0xffffff2c,%eax,%eax
  add    %eax,-0xbc(%rbp)
  mov    -0x20(%rbp),%rax
  mov    0x10(%rax),%eax
  mov    %eax,-0x3c(%rbp)
  mov    -0x3c(%rbp),%eax
  imul   $0xfffffd11,%eax,%eax
  add    %eax,-0xc0(%rbp)
  mov    -0x3c(%rbp),%eax
  imul   $0x19b,%eax,%eax
  add    %eax,-0xbc(%rbp)
  mov    -0x20(%rbp),%rax
  mov    0x14(%rax),%eax
  mov    %eax,-0x3c(%rbp)
  mov    -0x3c(%rbp),%eax
  imul   $0x8ec,%eax,%eax
  add    %eax,-0xc0(%rbp)
  mov    -0x3c(%rbp),%eax
  imul   $0xfffff8e7,%eax,%eax
  add    %eax,-0xbc(%rbp)
  mov    -0x20(%rbp),%rax
  mov    0x18(%rax),%eax
  mov    %eax,-0x3c(%rbp)
  mov    -0x3c(%rbp),%eax
  imul   $0xffffe624,%eax,%eax
  add    %eax,-0xc0(%rbp)
  mov    -0x3c(%rbp),%eax
  imul   $0x1fd,%eax,%eax
  add    %eax,-0xbc(%rbp)
  mov    -0x20(%rbp),%rax
  mov    0x1c(%rax),%eax
  mov    %eax,-0x3c(%rbp)
  mov    -0x3c(%rbp),%eax
  imul   $0x47b1,%eax,%eax
  add    %eax,-0xc0(%rbp)
  mov    -0x3c(%rbp),%eax
  imul   $0xffffd0bf,%eax,%eax
  add    %eax,-0xbc(%rbp)
  mov    -0x20(%rbp),%rax
  mov    0x20(%rax),%eax
  mov    %eax,-0x3c(%rbp)
  mov    -0x3c(%rbp),%eax
  imul   $0x2f41,%eax,%eax
  add    %eax,-0xc0(%rbp)
  mov    -0x3c(%rbp),%eax
  imul   $0x47b1,%eax,%eax
  add    %eax,-0xbc(%rbp)
  mov    -0x20(%rbp),%rax
  mov    0x24(%rax),%eax
  mov    %eax,-0x3c(%rbp)
  mov    -0x3c(%rbp),%eax
  imul   $0x1fd,%eax,%eax
  add    %eax,-0xc0(%rbp)
  mov    -0x3c(%rbp),%eax
  imul   $0x19dc,%eax,%eax
  add    %eax,-0xbc(%rbp)
  mov    -0x20(%rbp),%rax
  mov    0x28(%rax),%eax
  mov    %eax,-0x3c(%rbp)
  mov    -0x3c(%rbp),%eax
  imul   $0x719,%eax,%eax
  add    %eax,-0xc0(%rbp)
  mov    -0x3c(%rbp),%eax
  imul   $0x8ec,%eax,%eax
  add    %eax,-0xbc(%rbp)
  mov    -0x20(%rbp),%rax
  mov    0x2c(%rax),%eax
  mov    %eax,-0x3c(%rbp)
  mov    -0x3c(%rbp),%eax
  imul   $0x19b,%eax,%eax
  add    %eax,-0xc0(%rbp)
  mov    -0x3c(%rbp),%eax
  imul   $0x2ef,%eax,%eax
  add    %eax,-0xbc(%rbp)
  mov    -0x20(%rbp),%rax
  mov    0x30(%rax),%eax
  mov    %eax,-0x3c(%rbp)
  mov    -0x3c(%rbp),%eax
  imul   $0xd4,%eax,%eax
  add    %eax,-0xc0(%rbp)
  mov    -0x3c(%rbp),%eax
  imul   $0x202,%eax,%eax
  add    %eax,-0xbc(%rbp)
  mov    -0x20(%rbp),%rax
  mov    0x34(%rax),%eax
  mov    %eax,-0x3c(%rbp)
  mov    -0x3c(%rbp),%eax
  imul   $0x39,%eax,%eax
  add    %eax,-0xc0(%rbp)
  mov    -0x3c(%rbp),%eax
  imul   $0x26,%eax,%eax
  add    %eax,-0xbc(%rbp)
  mov    -0x20(%rbp),%rax
  mov    0x38(%rax),%eax
  mov    %eax,-0x3c(%rbp)
  mov    -0x3c(%rbp),%edx
  mov    %edx,%eax
  add    %eax,%eax
  add    %edx,%eax
  shl    $0x2,%eax
  add    %eax,-0xc0(%rbp)
  mov    -0x3c(%rbp),%eax
  imul   $0x2c,%eax,%eax
  add    %eax,-0xbc(%rbp)
  mov    -0x20(%rbp),%rax
  mov    0x3c(%rax),%eax
  mov    %eax,-0x3c(%rbp)
  mov    -0x3c(%rbp),%eax
  shl    $0x2,%eax
  add    %eax,-0xbc(%rbp)
  mov    -0xc0(%rbp),%eax
  add    $0x2000,%eax
  sar    $0xe,%eax
  mov    %eax,-0xc0(%rbp)
  mov    -0xbc(%rbp),%eax
  add    $0x2000,%eax
  sar    $0xe,%eax
  mov    %eax,-0xbc(%rbp)
  cmpl   $0xffff8000,-0xc0(%rbp)
  jge    L313
  movl   $0xffff8000,-0xc0(%rbp)
  jmp    L1199
L313:
  cmpl   $0x7fff,-0xc0(%rbp)
  jle    L1199
  movl   $0x7fff,-0xc0(%rbp)
L1199:
  mov    -0x28(%rbp),%rax
  add    $0x18,%rax
  mov    -0xc0(%rbp),%edx
  mov    %dx,(%rax)
  cmpl   $0xffff8000,-0xbc(%rbp)
  jge    L171
  movl   $0xffff8000,-0xbc(%rbp)
  jmp    L1165
L171:
  cmpl   $0x7fff,-0xbc(%rbp)
  jle    L1165
  movl   $0x7fff,-0xbc(%rbp)
L1165:
  mov    -0x28(%rbp),%rax
  add    $0x68,%rax
  mov    -0xbc(%rbp),%edx
  mov    %dx,(%rax)
  addq   $0x200,-0x20(%rbp)
  mov    -0x20(%rbp),%rax
  mov    (%rax),%eax
  mov    %eax,-0x38(%rbp)
  mov    -0x38(%rbp),%eax
  mov    %eax,%ecx
  lea    0x0(,%rax,4),%edx
  mov    %ecx,%eax
  sub    %edx,%eax
  mov    %eax,-0xb8(%rbp)
  movl   $0x0,-0xb4(%rbp)
  mov    -0x20(%rbp),%rax
  mov    0x4(%rax),%eax
  mov    %eax,-0x38(%rbp)
  mov    -0x38(%rbp),%eax
  imul   $0x2a,%eax,%eax
  add    %eax,-0xb8(%rbp)
  mov    -0x38(%rbp),%eax
  imul   $0xfffffff3,%eax,%eax
  add    %eax,-0xb4(%rbp)
  mov    -0x20(%rbp),%rax
  mov    0x8(%rax),%eax
  mov    %eax,-0x38(%rbp)
  mov    -0x38(%rbp),%eax
  imul   $0xffffffe5,%eax,%eax
  add    %eax,-0xb8(%rbp)
  mov    -0x38(%rbp),%eax
  imul   $0x38,%eax,%eax
  add    %eax,-0xb4(%rbp)
  mov    -0x20(%rbp),%rax
  mov    0xc(%rax),%eax
  mov    %eax,-0x38(%rbp)
  mov    -0x38(%rbp),%eax
  imul   $0x1fc,%eax,%eax
  add    %eax,-0xb8(%rbp)
  mov    -0x38(%rbp),%eax
  imul   $0xffffff1b,%eax,%eax
  add    %eax,-0xb4(%rbp)
  mov    -0x20(%rbp),%rax
  mov    0x10(%rax),%eax
  mov    %eax,-0x38(%rbp)
  mov    -0x38(%rbp),%eax
  imul   $0xfffffd67,%eax,%eax
  add    %eax,-0xb8(%rbp)
  mov    -0x38(%rbp),%eax
  imul   $0x17f,%eax,%eax
  add    %eax,-0xb4(%rbp)
  mov    -0x20(%rbp),%rax
  mov    0x14(%rax),%eax
  mov    %eax,-0x38(%rbp)
  mov    -0x38(%rbp),%eax
  imul   $0x92b,%eax,%eax
  add    %eax,-0xb8(%rbp)
  mov    -0x38(%rbp),%eax
  imul   $0xfffff895,%eax,%eax
  add    %eax,-0xb4(%rbp)
  mov    -0x20(%rbp),%rax
  mov    0x18(%rax),%eax
  mov    %eax,-0x38(%rbp)
  mov    -0x38(%rbp),%eax
  imul   $0xffffe7e3,%eax,%eax
  add    %eax,-0xb8(%rbp)
  mov    -0x38(%rbp),%eax
  imul   $0x10e,%eax,%eax
  add    %eax,-0xb4(%rbp)
  mov    -0x20(%rbp),%rax
  mov    0x1c(%rax),%eax
  mov    %eax,-0x38(%rbp)
  mov    -0x38(%rbp),%eax
  imul   $0x4720,%eax,%eax
  add    %eax,-0xb8(%rbp)
  mov    -0x38(%rbp),%eax
  imul   $0xffffcf0a,%eax,%eax
  add    %eax,-0xb4(%rbp)
  mov    -0x20(%rbp),%rax
  mov    0x20(%rax),%eax
  mov    %eax,-0x38(%rbp)
  mov    -0x38(%rbp),%eax
  imul   $0x30f6,%eax,%eax
  add    %eax,-0xb8(%rbp)
  mov    -0x38(%rbp),%eax
  imul   $0x4720,%eax,%eax
  add    %eax,-0xb4(%rbp)
  mov    -0x20(%rbp),%rax
  mov    0x24(%rax),%eax
  mov    %eax,-0x38(%rbp)
  mov    -0x38(%rbp),%eax
  imul   $0x10e,%eax,%eax
  add    %eax,-0xb8(%rbp)
  mov    -0x38(%rbp),%eax
  imul   $0x181d,%eax,%eax
  add    %eax,-0xb4(%rbp)
  mov    -0x20(%rbp),%rax
  mov    0x28(%rax),%eax
  mov    %eax,-0x38(%rbp)
  mov    -0x38(%rbp),%eax
  imul   $0x76b,%eax,%eax
  add    %eax,-0xb8(%rbp)
  mov    -0x38(%rbp),%eax
  imul   $0x92b,%eax,%eax
  add    %eax,-0xb4(%rbp)
  mov    -0x20(%rbp),%rax
  mov    0x2c(%rax),%eax
  mov    %eax,-0x38(%rbp)
  mov    -0x38(%rbp),%eax
  imul   $0x17f,%eax,%eax
  add    %eax,-0xb8(%rbp)
  mov    -0x38(%rbp),%eax
  imul   $0x299,%eax,%eax
  add    %eax,-0xb4(%rbp)
  mov    -0x20(%rbp),%rax
  mov    0x30(%rax),%eax
  mov    %eax,-0x38(%rbp)
  mov    -0x38(%rbp),%eax
  imul   $0xe5,%eax,%eax
  add    %eax,-0xb8(%rbp)
  mov    -0x38(%rbp),%eax
  imul   $0x1fc,%eax,%eax
  add    %eax,-0xb4(%rbp)
  mov    -0x20(%rbp),%rax
  mov    0x34(%rax),%eax
  mov    %eax,-0x38(%rbp)
  mov    -0x38(%rbp),%eax
  imul   $0x38,%eax,%eax
  add    %eax,-0xb8(%rbp)
  mov    -0x38(%rbp),%edx
  mov    %edx,%eax
  add    %eax,%eax
  add    %edx,%eax
  lea    0x0(,%rax,8),%edx
  add    %edx,%eax
  add    %eax,-0xb4(%rbp)
  mov    -0x20(%rbp),%rax
  mov    0x38(%rax),%eax
  mov    %eax,-0x38(%rbp)
  mov    -0x38(%rbp),%edx
  mov    %edx,%eax
  add    %eax,%eax
  add    %edx,%eax
  shl    $0x2,%eax
  add    %edx,%eax
  add    %eax,-0xb8(%rbp)
  mov    -0x38(%rbp),%eax
  imul   $0x2a,%eax,%eax
  add    %eax,-0xb4(%rbp)
  mov    -0x20(%rbp),%rax
  mov    0x3c(%rax),%eax
  mov    %eax,-0x38(%rbp)
  mov    -0x38(%rbp),%edx
  mov    %edx,%eax
  add    %eax,%eax
  add    %edx,%eax
  add    %eax,-0xb4(%rbp)
  mov    -0xb8(%rbp),%eax
  add    $0x2000,%eax
  sar    $0xe,%eax
  mov    %eax,-0xb8(%rbp)
  mov    -0xb4(%rbp),%eax
  add    $0x2000,%eax
  sar    $0xe,%eax
  mov    %eax,-0xb4(%rbp)
  cmpl   $0xffff8000,-0xb8(%rbp)
  jge    L496
  movl   $0xffff8000,-0xb8(%rbp)
  jmp    L431
L496:
  cmpl   $0x7fff,-0xb8(%rbp)
  jle    L431
  movl   $0x7fff,-0xb8(%rbp)
L431:
  mov    -0x28(%rbp),%rax
  add    $0x1c,%rax
  mov    -0xb8(%rbp),%edx
  mov    %dx,(%rax)
  cmpl   $0xffff8000,-0xb4(%rbp)
  jge    L326
  movl   $0xffff8000,-0xb4(%rbp)
  jmp    L517
L326:
  cmpl   $0x7fff,-0xb4(%rbp)
  jle    L517
  movl   $0x7fff,-0xb4(%rbp)
L517:
  mov    -0x28(%rbp),%rax
  add    $0x64,%rax
  mov    -0xb4(%rbp),%edx
  mov    %dx,(%rax)
  addq   $0x200,-0x20(%rbp)
  subq   $0xffffffffffffff80,-0x28(%rbp)
  addl   $0x1,-0x100(%rbp)
L338:
  mov    -0x100(%rbp),%eax
  cmp    -0x110(%rbp),%eax
  jl     L917
  mov    -0x110(%rbp),%eax
  shl    $0x6,%eax
  cltq
  add    %rax,%rax
  neg    %rax
  add    %rax,-0x28(%rbp)
  mov    -0x68(%rbp),%eax
  mov    %eax,-0xfc(%rbp)
  movl   $0x0,-0x100(%rbp)
  jmp    L964
L119:
  addl   $0x1,-0xfc(%rbp)
  cmpl   $0x7f,-0xfc(%rbp)
  jle    L546
  movl   $0x10,-0xfc(%rbp)
L546:
  mov    -0xfc(%rbp),%eax
  and    $0x1,%eax
  test   %eax,%eax
  je     L429
  mov    -0xfc(%rbp),%eax
  cltq
  add    $0x3f1,%rax
  lea    0x0(,%rax,4),%rdx
  mov    -0x8(%rbp),%rax
  add    %rdx,%rax
  mov    %rax,-0x20(%rbp)
  jmp    L328
L429:
  mov    -0xfc(%rbp),%eax
  cltq
  add    $0xc71,%rax
  lea    0x0(,%rax,4),%rdx
  mov    -0x8(%rbp),%rax
  add    %rdx,%rax
  mov    %rax,-0x20(%rbp)
L328:
  mov    -0x20(%rbp),%rax
  mov    (%rax),%eax
  mov    %eax,-0x54(%rbp)
  mov    -0x54(%rbp),%eax
  mov    %eax,%ecx
  lea    0x0(,%rax,4),%edx
  mov    %ecx,%eax
  sub    %edx,%eax
  mov    %eax,-0xb0(%rbp)
  movl   $0x0,-0xac(%rbp)
  mov    -0x20(%rbp),%rax
  mov    0x4(%rax),%eax
  mov    %eax,-0x54(%rbp)
  mov    -0x54(%rbp),%edx
  mov    %edx,%eax
  shl    $0x2,%eax
  add    %edx,%eax
  shl    $0x3,%eax
  add    %eax,-0xb0(%rbp)
  mov    -0x54(%rbp),%edx
  mov    %edx,%eax
  shl    $0x3,%edx
  sub    %edx,%eax
  add    %eax,%eax
  add    %eax,-0xac(%rbp)
  mov    -0x20(%rbp),%rax
  mov    0x8(%rax),%eax
  mov    %eax,-0x54(%rbp)
  mov    -0x54(%rbp),%eax
  imul   $0xffffffee,%eax,%eax
  add    %eax,-0xb0(%rbp)
  mov    -0x54(%rbp),%eax
  imul   $0x38,%eax,%eax
  add    %eax,-0xac(%rbp)
  mov    -0x20(%rbp),%rax
  mov    0xc(%rax),%eax
  mov    %eax,-0x54(%rbp)
  mov    -0x54(%rbp),%eax
  imul   $0x1f4,%eax,%eax
  add    %eax,-0xb0(%rbp)
  mov    -0x54(%rbp),%eax
  imul   $0xffffff09,%eax,%eax
  add    %eax,-0xac(%rbp)
  mov    -0x20(%rbp),%rax
  mov    0x10(%rax),%eax
  mov    %eax,-0x54(%rbp)
  mov    -0x54(%rbp),%eax
  imul   $0xfffffdba,%eax,%eax
  add    %eax,-0xb0(%rbp)
  mov    -0x54(%rbp),%eax
  imul   $0x161,%eax,%eax
  add    %eax,-0xac(%rbp)
  mov    -0x20(%rbp),%rax
  mov    0x14(%rax),%eax
  mov    %eax,-0x54(%rbp)
  mov    -0x54(%rbp),%eax
  imul   $0x95e,%eax,%eax
  add    %eax,-0xb0(%rbp)
  mov    -0x54(%rbp),%eax
  imul   $0xfffff847,%eax,%eax
  add    %eax,-0xac(%rbp)
  mov    -0x20(%rbp),%rax
  mov    0x18(%rax),%eax
  mov    %eax,-0x54(%rbp)
  mov    -0x54(%rbp),%eax
  imul   $0xffffe99c,%eax,%eax
  add    %eax,-0xb0(%rbp)
  mov    -0x54(%rbp),%eax
  mov    %eax,%edx
  shl    $0x4,%edx
  add    %edx,%eax
  add    %eax,-0xac(%rbp)
  mov    -0x20(%rbp),%rax
  mov    0x1c(%rax),%eax
  mov    %eax,-0x54(%rbp)
  mov    -0x54(%rbp),%eax
  imul   $0x467a,%eax,%eax
  add    %eax,-0xb0(%rbp)
  mov    -0x54(%rbp),%eax
  imul   $0xffffcd5d,%eax,%eax
  add    %eax,-0xac(%rbp)
  mov    -0x20(%rbp),%rax
  mov    0x20(%rax),%eax
  mov    %eax,-0x54(%rbp)
  mov    -0x54(%rbp),%eax
  imul   $0x32a3,%eax,%eax
  add    %eax,-0xb0(%rbp)
  mov    -0x54(%rbp),%eax
  imul   $0x467a,%eax,%eax
  add    %eax,-0xac(%rbp)
  mov    -0x20(%rbp),%rax
  mov    0x24(%rax),%eax
  mov    %eax,-0x54(%rbp)
  mov    -0x54(%rbp),%eax
  mov    %eax,%edx
  shl    $0x4,%edx
  add    %edx,%eax
  add    %eax,-0xb0(%rbp)
  mov    -0x54(%rbp),%eax
  imul   $0x1664,%eax,%eax
  add    %eax,-0xac(%rbp)
  mov    -0x20(%rbp),%rax
  mov    0x28(%rax),%eax
  mov    %eax,-0x54(%rbp)
  mov    -0x54(%rbp),%eax
  imul   $0x7b9,%eax,%eax
  add    %eax,-0xb0(%rbp)
  mov    -0x54(%rbp),%eax
  imul   $0x95e,%eax,%eax
  add    %eax,-0xac(%rbp)
  mov    -0x20(%rbp),%rax
  mov    0x2c(%rax),%eax
  mov    %eax,-0x54(%rbp)
  mov    -0x54(%rbp),%eax
  imul   $0x161,%eax,%eax
  add    %eax,-0xb0(%rbp)
  mov    -0x54(%rbp),%eax
  imul   $0x246,%eax,%eax
  add    %eax,-0xac(%rbp)
  mov    -0x20(%rbp),%rax
  mov    0x30(%rax),%eax
  mov    %eax,-0x54(%rbp)
  mov    -0x54(%rbp),%eax
  imul   $0xf7,%eax,%eax
  add    %eax,-0xb0(%rbp)
  mov    -0x54(%rbp),%eax
  imul   $0x1f4,%eax,%eax
  add    %eax,-0xac(%rbp)
  mov    -0x20(%rbp),%rax
  mov    0x34(%rax),%eax
  mov    %eax,-0x54(%rbp)
  mov    -0x54(%rbp),%eax
  imul   $0x38,%eax,%eax
  add    %eax,-0xb0(%rbp)
  mov    -0x54(%rbp),%edx
  mov    %edx,%eax
  shl    $0x3,%eax
  add    %edx,%eax
  add    %eax,%eax
  add    %eax,-0xac(%rbp)
  mov    -0x20(%rbp),%rax
  mov    0x38(%rax),%eax
  mov    %eax,-0x54(%rbp)
  mov    -0x54(%rbp),%eax
  imul   $0xe,%eax,%eax
  add    %eax,-0xb0(%rbp)
  mov    -0x54(%rbp),%edx
  mov    %edx,%eax
  shl    $0x2,%eax
  add    %edx,%eax
  shl    $0x3,%eax
  add    %eax,-0xac(%rbp)
  mov    -0x20(%rbp),%rax
  mov    0x3c(%rax),%eax
  mov    %eax,-0x54(%rbp)
  mov    -0x54(%rbp),%edx
  mov    %edx,%eax
  add    %eax,%eax
  add    %edx,%eax
  add    %eax,-0xac(%rbp)
  mov    -0xb0(%rbp),%eax
  add    $0x2000,%eax
  sar    $0xe,%eax
  mov    %eax,-0xb0(%rbp)
  mov    -0xac(%rbp),%eax
  add    $0x2000,%eax
  sar    $0xe,%eax
  mov    %eax,-0xac(%rbp)
  cmpl   $0xffff8000,-0xb0(%rbp)
  jge    L63
  movl   $0xffff8000,-0xb0(%rbp)
  jmp    L686
L63:
  cmpl   $0x7fff,-0xb0(%rbp)
  jle    L686
  movl   $0x7fff,-0xb0(%rbp)
L686:
  mov    -0x28(%rbp),%rax
  add    $0x20,%rax
  mov    -0xb0(%rbp),%edx
  mov    %dx,(%rax)
  cmpl   $0xffff8000,-0xac(%rbp)
  jge    L392
  movl   $0xffff8000,-0xac(%rbp)
  jmp    L125
L392:
  cmpl   $0x7fff,-0xac(%rbp)
  jle    L125
  movl   $0x7fff,-0xac(%rbp)
L125:
  mov    -0x28(%rbp),%rax
  add    $0x60,%rax
  mov    -0xac(%rbp),%edx
  mov    %dx,(%rax)
  addq   $0x200,-0x20(%rbp)
  mov    -0x20(%rbp),%rax
  mov    (%rax),%eax
  mov    %eax,-0x50(%rbp)
  mov    -0x50(%rbp),%edx
  mov    $0x0,%eax
  sub    %edx,%eax
  add    %eax,%eax
  mov    %eax,-0xa8(%rbp)
  movl   $0x0,-0xa4(%rbp)
  mov    -0x20(%rbp),%rax
  mov    0x4(%rax),%eax
  mov    %eax,-0x50(%rbp)
  mov    -0x50(%rbp),%eax
  imul   $0x26,%eax,%eax
  add    %eax,-0xa8(%rbp)
  mov    -0x50(%rbp),%eax
  mov    %eax,%ecx
  shl    $0x4,%eax
  mov    %eax,%edx
  mov    %ecx,%eax
  sub    %edx,%eax
  add    %eax,-0xa4(%rbp)
  mov    -0x20(%rbp),%rax
  mov    0x8(%rax),%eax
  mov    %eax,-0x50(%rbp)
  mov    -0x50(%rbp),%edx
  mov    %edx,%eax
  shl    $0x3,%eax
  add    %edx,%eax
  neg    %eax
  add    %eax,-0xa8(%rbp)
  mov    -0x50(%rbp),%eax
  imul   $0x37,%eax,%eax
  add    %eax,-0xa4(%rbp)
  mov    -0x20(%rbp),%rax
  mov    0xc(%rax),%eax
  mov    %eax,-0x50(%rbp)
  mov    -0x50(%rbp),%eax
  imul   $0x1ea,%eax,%eax
  add    %eax,-0xa8(%rbp)
  mov    -0x50(%rbp),%eax
  imul   $0xfffffef6,%eax,%eax
  add    %eax,-0xa4(%rbp)
  mov    -0x20(%rbp),%rax
  mov    0x10(%rax),%eax
  mov    %eax,-0x50(%rbp)
  mov    -0x50(%rbp),%eax
  imul   $0xfffffe0b,%eax,%eax
  add    %eax,-0xa8(%rbp)
  mov    -0x50(%rbp),%edx
  mov    %edx,%eax
  shl    $0x2,%eax
  add    %edx,%eax
  shl    $0x6,%eax
  add    %eax,-0xa4(%rbp)
  mov    -0x20(%rbp),%rax
  mov    0x14(%rax),%eax
  mov    %eax,-0x50(%rbp)
  mov    -0x50(%rbp),%eax
  imul   $0x985,%eax,%eax
  add    %eax,-0xa8(%rbp)
  mov    -0x50(%rbp),%eax
  imul   $0xfffff7fc,%eax,%eax
  add    %eax,-0xa4(%rbp)
  mov    -0x20(%rbp),%rax
  mov    0x18(%rax),%eax
  mov    %eax,-0x50(%rbp)
  mov    -0x50(%rbp),%eax
  imul   $0xffffeb4f,%eax,%eax
  add    %eax,-0xa8(%rbp)
  mov    -0x50(%rbp),%eax
  imul   $0xffffff07,%eax,%eax
  add    %eax,-0xa4(%rbp)
  mov    -0x20(%rbp),%rax
  mov    0x1c(%rax),%eax
  mov    %eax,-0x50(%rbp)
  mov    -0x50(%rbp),%eax
  imul   $0x45bf,%eax,%eax
  add    %eax,-0xa8(%rbp)
  mov    -0x50(%rbp),%eax
  imul   $0xffffcbb9,%eax,%eax
  add    %eax,-0xa4(%rbp)
  mov    -0x20(%rbp),%rax
  mov    0x20(%rax),%eax
  mov    %eax,-0x50(%rbp)
  mov    -0x50(%rbp),%eax
  imul   $0x3447,%eax,%eax
  add    %eax,-0xa8(%rbp)
  mov    -0x50(%rbp),%eax
  imul   $0x45bf,%eax,%eax
  add    %eax,-0xa4(%rbp)
  mov    -0x20(%rbp),%rax
  mov    0x24(%rax),%eax
  mov    %eax,-0x50(%rbp)
  mov    -0x50(%rbp),%eax
  imul   $0xffffff07,%eax,%eax
  add    %eax,-0xa8(%rbp)
  mov    -0x50(%rbp),%eax
  imul   $0x14b1,%eax,%eax
  add    %eax,-0xa4(%rbp)
  mov    -0x20(%rbp),%rax
  mov    0x28(%rax),%eax
  mov    %eax,-0x50(%rbp)
  mov    -0x50(%rbp),%eax
  imul   $0x804,%eax,%eax
  add    %eax,-0xa8(%rbp)
  mov    -0x50(%rbp),%eax
  imul   $0x985,%eax,%eax
  add    %eax,-0xa4(%rbp)
  mov    -0x20(%rbp),%rax
  mov    0x2c(%rax),%eax
  mov    %eax,-0x50(%rbp)
  mov    -0x50(%rbp),%edx
  mov    %edx,%eax
  shl    $0x2,%eax
  add    %edx,%eax
  shl    $0x6,%eax
  add    %eax,-0xa8(%rbp)
  mov    -0x50(%rbp),%eax
  imul   $0x1f5,%eax,%eax
  add    %eax,-0xa4(%rbp)
  mov    -0x20(%rbp),%rax
  mov    0x30(%rax),%eax
  mov    %eax,-0x50(%rbp)
  mov    -0x50(%rbp),%eax
  imul   $0x10a,%eax,%eax
  add    %eax,-0xa8(%rbp)
  mov    -0x50(%rbp),%eax
  imul   $0x1ea,%eax,%eax
  add    %eax,-0xa4(%rbp)
  mov    -0x20(%rbp),%rax
  mov    0x34(%rax),%eax
  mov    %eax,-0x50(%rbp)
  mov    -0x50(%rbp),%eax
  imul   $0x37,%eax,%eax
  add    %eax,-0xa8(%rbp)
  mov    -0x50(%rbp),%edx
  mov    %edx,%eax
  shl    $0x3,%eax
  add    %edx,%eax
  add    %eax,-0xa4(%rbp)
  mov    -0x20(%rbp),%rax
  mov    0x38(%rax),%eax
  mov    %eax,-0x50(%rbp)
  mov    -0x50(%rbp),%edx
  mov    %edx,%eax
  shl    $0x4,%eax
  sub    %edx,%eax
  add    %eax,-0xa8(%rbp)
  mov    -0x50(%rbp),%eax
  imul   $0x26,%eax,%eax
  add    %eax,-0xa4(%rbp)
  mov    -0x20(%rbp),%rax
  mov    0x3c(%rax),%eax
  mov    %eax,-0x50(%rbp)
  mov    -0x50(%rbp),%eax
  add    %eax,%eax
  add    %eax,-0xa4(%rbp)
  mov    -0xa8(%rbp),%eax
  add    $0x2000,%eax
  sar    $0xe,%eax
  mov    %eax,-0xa8(%rbp)
  mov    -0xa4(%rbp),%eax
  add    $0x2000,%eax
  sar    $0xe,%eax
  mov    %eax,-0xa4(%rbp)
  cmpl   $0xffff8000,-0xa8(%rbp)
  jge    L60
  movl   $0xffff8000,-0xa8(%rbp)
  jmp    L968
L60:
  cmpl   $0x7fff,-0xa8(%rbp)
  jle    L968
  movl   $0x7fff,-0xa8(%rbp)
L968:
  mov    -0x28(%rbp),%rax
  add    $0x24,%rax
  mov    -0xa8(%rbp),%edx
  mov    %dx,(%rax)
  cmpl   $0xffff8000,-0xa4(%rbp)
  jge    L1037
  movl   $0xffff8000,-0xa4(%rbp)
  jmp    L1195
L1037:
  cmpl   $0x7fff,-0xa4(%rbp)
  jle    L1195
  movl   $0x7fff,-0xa4(%rbp)
L1195:
  mov    -0x28(%rbp),%rax
  add    $0x5c,%rax
  mov    -0xa4(%rbp),%edx
  mov    %dx,(%rax)
  addq   $0x200,-0x20(%rbp)
  mov    -0x20(%rbp),%rax
  mov    (%rax),%eax
  mov    %eax,-0x4c(%rbp)
  mov    -0x4c(%rbp),%edx
  mov    $0x0,%eax
  sub    %edx,%eax
  add    %eax,%eax
  mov    %eax,-0xa0(%rbp)
  movl   $0x0,-0x9c(%rbp)
  mov    -0x20(%rbp),%rax
  mov    0x4(%rax),%eax
  mov    %eax,-0x4c(%rbp)
  mov    -0x4c(%rbp),%edx
  mov    %edx,%eax
  shl    $0x3,%eax
  add    %edx,%eax
  shl    $0x2,%eax
  add    %eax,-0xa0(%rbp)
  mov    -0x4c(%rbp),%eax
  imul   $0xffffffef,%eax,%eax
  add    %eax,-0x9c(%rbp)
  mov    -0x20(%rbp),%rax
  mov    0x8(%rax),%eax
  mov    %eax,-0x4c(%rbp)
  mov    -0x4c(%rbp),%eax
  imul   $0x35,%eax,%eax
  add    %eax,-0x9c(%rbp)
  mov    -0x20(%rbp),%rax
  mov    0xc(%rax),%eax
  mov    %eax,-0x4c(%rbp)
  mov    -0x4c(%rbp),%eax
  imul   $0x1df,%eax,%eax
  add    %eax,-0xa0(%rbp)
  mov    -0x4c(%rbp),%eax
  imul   $0xfffffee4,%eax,%eax
  add    %eax,-0x9c(%rbp)
  mov    -0x20(%rbp),%rax
  mov    0x10(%rax),%eax
  mov    %eax,-0x4c(%rbp)
  mov    -0x4c(%rbp),%eax
  imul   $0xfffffe59,%eax,%eax
  add    %eax,-0xa0(%rbp)
  mov    -0x4c(%rbp),%eax
  imul   $0x11a,%eax,%eax
  add    %eax,-0x9c(%rbp)
  mov    -0x20(%rbp),%rax
  mov    0x14(%rax),%eax
  mov    %eax,-0x4c(%rbp)
  mov    -0x4c(%rbp),%eax
  imul   $0x9a1,%eax,%eax
  add    %eax,-0xa0(%rbp)
  mov    -0x4c(%rbp),%eax
  imul   $0xfffff7b6,%eax,%eax
  add    %eax,-0x9c(%rbp)
  mov    -0x20(%rbp),%rax
  mov    0x18(%rax),%eax
  mov    %eax,-0x4c(%rbp)
  mov    -0x4c(%rbp),%eax
  imul   $0xffffecfb,%eax,%eax
  add    %eax,-0xa0(%rbp)
  mov    -0x4c(%rbp),%eax
  imul   $0xfffffdee,%eax,%eax
  add    %eax,-0x9c(%rbp)
  mov    -0x20(%rbp),%rax
  mov    0x1c(%rax),%eax
  mov    %eax,-0x4c(%rbp)
  mov    -0x4c(%rbp),%eax
  imul   $0x44ef,%eax,%eax
  add    %eax,-0xa0(%rbp)
  mov    -0x4c(%rbp),%eax
  imul   $0xffffca1e,%eax,%eax
  add    %eax,-0x9c(%rbp)
  mov    -0x20(%rbp),%rax
  mov    0x20(%rax),%eax
  mov    %eax,-0x4c(%rbp)
  mov    -0x4c(%rbp),%eax
  imul   $0x35e2,%eax,%eax
  add    %eax,-0xa0(%rbp)
  mov    -0x4c(%rbp),%eax
  imul   $0x44ef,%eax,%eax
  add    %eax,-0x9c(%rbp)
  mov    -0x20(%rbp),%rax
  mov    0x24(%rax),%eax
  mov    %eax,-0x4c(%rbp)
  mov    -0x4c(%rbp),%eax
  imul   $0xfffffdee,%eax,%eax
  add    %eax,-0xa0(%rbp)
  mov    -0x4c(%rbp),%eax
  imul   $0x1305,%eax,%eax
  add    %eax,-0x9c(%rbp)
  mov    -0x20(%rbp),%rax
  mov    0x28(%rax),%eax
  mov    %eax,-0x4c(%rbp)
  mov    -0x4c(%rbp),%eax
  imul   $0x84a,%eax,%eax
  add    %eax,-0xa0(%rbp)
  mov    -0x4c(%rbp),%eax
  imul   $0x9a1,%eax,%eax
  add    %eax,-0x9c(%rbp)
  mov    -0x20(%rbp),%rax
  mov    0x2c(%rax),%eax
  mov    %eax,-0x4c(%rbp)
  mov    -0x4c(%rbp),%eax
  imul   $0x11a,%eax,%eax
  add    %eax,-0xa0(%rbp)
  mov    -0x4c(%rbp),%eax
  imul   $0x1a7,%eax,%eax
  add    %eax,-0x9c(%rbp)
  mov    -0x20(%rbp),%rax
  mov    0x30(%rax),%eax
  mov    %eax,-0x4c(%rbp)
  mov    -0x4c(%rbp),%eax
  imul   $0x11c,%eax,%eax
  add    %eax,-0xa0(%rbp)
  mov    -0x4c(%rbp),%eax
  imul   $0x1df,%eax,%eax
  add    %eax,-0x9c(%rbp)
  mov    -0x20(%rbp),%rax
  mov    0x34(%rax),%eax
  mov    %eax,-0x4c(%rbp)
  mov    -0x4c(%rbp),%eax
  imul   $0x35,%eax,%eax
  add    %eax,-0xa0(%rbp)
  mov    -0x20(%rbp),%rax
  mov    0x38(%rax),%eax
  mov    %eax,-0x4c(%rbp)
  mov    -0x4c(%rbp),%eax
  mov    %eax,%edx
  shl    $0x4,%edx
  add    %edx,%eax
  add    %eax,-0xa0(%rbp)
  mov    -0x4c(%rbp),%edx
  mov    %edx,%eax
  shl    $0x3,%eax
  add    %edx,%eax
  shl    $0x2,%eax
  add    %eax,-0x9c(%rbp)
  mov    -0x20(%rbp),%rax
  mov    0x3c(%rax),%eax
  mov    %eax,-0x4c(%rbp)
  mov    -0x4c(%rbp),%eax
  add    %eax,%eax
  add    %eax,-0x9c(%rbp)
  mov    -0xa0(%rbp),%eax
  add    $0x2000,%eax
  sar    $0xe,%eax
  mov    %eax,-0xa0(%rbp)
  mov    -0x9c(%rbp),%eax
  add    $0x2000,%eax
  sar    $0xe,%eax
  mov    %eax,-0x9c(%rbp)
  cmpl   $0xffff8000,-0xa0(%rbp)
  jge    L232
  movl   $0xffff8000,-0xa0(%rbp)
  jmp    L525
L232:
  cmpl   $0x7fff,-0xa0(%rbp)
  jle    L525
  movl   $0x7fff,-0xa0(%rbp)
L525:
  mov    -0x28(%rbp),%rax
  add    $0x28,%rax
  mov    -0xa0(%rbp),%edx
  mov    %dx,(%rax)
  cmpl   $0xffff8000,-0x9c(%rbp)
  jge    L853
  movl   $0xffff8000,-0x9c(%rbp)
  jmp    L295
L853:
  cmpl   $0x7fff,-0x9c(%rbp)
  jle    L295
  movl   $0x7fff,-0x9c(%rbp)
L295:
  mov    -0x28(%rbp),%rax
  add    $0x58,%rax
  mov    -0x9c(%rbp),%edx
  mov    %dx,(%rax)
  addq   $0x200,-0x20(%rbp)
  mov    -0x20(%rbp),%rax
  mov    (%rax),%eax
  mov    %eax,-0x48(%rbp)
  mov    -0x48(%rbp),%edx
  mov    $0x0,%eax
  sub    %edx,%eax
  add    %eax,%eax
  mov    %eax,-0x98(%rbp)
  movl   $0x0,-0x94(%rbp)
  mov    -0x20(%rbp),%rax
  mov    0x4(%rax),%eax
  mov    %eax,-0x48(%rbp)
  mov    -0x48(%rbp),%eax
  imul   $0x22,%eax,%eax
  add    %eax,-0x98(%rbp)
  mov    -0x48(%rbp),%eax
  imul   $0xffffffee,%eax,%eax
  add    %eax,-0x94(%rbp)
  mov    -0x20(%rbp),%rax
  mov    0x8(%rax),%eax
  mov    %eax,-0x48(%rbp)
  mov    -0x48(%rbp),%edx
  mov    %edx,%eax
  shl    $0x3,%eax
  sub    %edx,%eax
  add    %eax,-0x98(%rbp)
  mov    -0x48(%rbp),%eax
  imul   $0x34,%eax,%eax
  add    %eax,-0x94(%rbp)
  mov    -0x20(%rbp),%rax
  mov    0xc(%rax),%eax
  mov    %eax,-0x48(%rbp)
  mov    -0x48(%rbp),%eax
  imul   $0x1d3,%eax,%eax
  add    %eax,-0x98(%rbp)
  mov    -0x48(%rbp),%eax
  imul   $0xfffffed2,%eax,%eax
  add    %eax,-0x94(%rbp)
  mov    -0x20(%rbp),%rax
  mov    0x10(%rax),%eax
  mov    %eax,-0x48(%rbp)
  mov    -0x48(%rbp),%eax
  imul   $0xfffffea5,%eax,%eax
  add    %eax,-0x98(%rbp)
  mov    -0x48(%rbp),%eax
  imul   $0xf2,%eax,%eax
  add    %eax,-0x94(%rbp)
  mov    -0x20(%rbp),%rax
  mov    0x14(%rax),%eax
  mov    %eax,-0x48(%rbp)
  mov    -0x48(%rbp),%eax
  imul   $0x9b3,%eax,%eax
  add    %eax,-0x98(%rbp)
  mov    -0x48(%rbp),%eax
  imul   $0xfffff774,%eax,%eax
  add    %eax,-0x94(%rbp)
  mov    -0x20(%rbp),%rax
  mov    0x18(%rax),%eax
  mov    %eax,-0x48(%rbp)
  mov    -0x48(%rbp),%eax
  imul   $0xffffee9f,%eax,%eax
  add    %eax,-0x98(%rbp)
  mov    -0x48(%rbp),%eax
  imul   $0xfffffcc7,%eax,%eax
  add    %eax,-0x94(%rbp)
  mov    -0x20(%rbp),%rax
  mov    0x1c(%rax),%eax
  mov    %eax,-0x48(%rbp)
  mov    -0x48(%rbp),%eax
  imul   $0x440b,%eax,%eax
  add    %eax,-0x98(%rbp)
  mov    -0x48(%rbp),%eax
  imul   $0xffffc88e,%eax,%eax
  add    %eax,-0x94(%rbp)
  mov    -0x20(%rbp),%rax
  mov    0x20(%rax),%eax
  mov    %eax,-0x48(%rbp)
  mov    -0x48(%rbp),%eax
  imul   $0x3772,%eax,%eax
  add    %eax,-0x98(%rbp)
  mov    -0x48(%rbp),%eax
  imul   $0x440b,%eax,%eax
  add    %eax,-0x94(%rbp)
  mov    -0x20(%rbp),%rax
  mov    0x24(%rax),%eax
  mov    %eax,-0x48(%rbp)
  mov    -0x48(%rbp),%eax
  imul   $0xfffffcc7,%eax,%eax
  add    %eax,-0x98(%rbp)
  mov    -0x48(%rbp),%eax
  imul   $0x1161,%eax,%eax
  add    %eax,-0x94(%rbp)
  mov    -0x20(%rbp),%rax
  mov    0x28(%rax),%eax
  mov    %eax,-0x48(%rbp)
  mov    -0x48(%rbp),%eax
  imul   $0x88c,%eax,%eax
  add    %eax,-0x98(%rbp)
  mov    -0x48(%rbp),%eax
  imul   $0x9b3,%eax,%eax
  add    %eax,-0x94(%rbp)
  mov    -0x20(%rbp),%rax
  mov    0x2c(%rax),%eax
  mov    %eax,-0x48(%rbp)
  mov    -0x48(%rbp),%eax
  imul   $0xf2,%eax,%eax
  add    %eax,-0x98(%rbp)
  mov    -0x48(%rbp),%eax
  imul   $0x15b,%eax,%eax
  add    %eax,-0x94(%rbp)
  mov    -0x20(%rbp),%rax
  mov    0x30(%rax),%eax
  mov    %eax,-0x48(%rbp)
  mov    -0x48(%rbp),%eax
  imul   $0x12e,%eax,%eax
  add    %eax,-0x98(%rbp)
  mov    -0x48(%rbp),%eax
  imul   $0x1d3,%eax,%eax
  add    %eax,-0x94(%rbp)
  mov    -0x20(%rbp),%rax
  mov    0x34(%rax),%eax
  mov    %eax,-0x48(%rbp)
  mov    -0x48(%rbp),%eax
  imul   $0x34,%eax,%eax
  add    %eax,-0x98(%rbp)
  mov    -0x48(%rbp),%eax
  mov    %eax,%ecx
  lea    0x0(,%rax,8),%edx
  mov    %ecx,%eax
  sub    %edx,%eax
  add    %eax,-0x94(%rbp)
  mov    -0x20(%rbp),%rax
  mov    0x38(%rax),%eax
  mov    %eax,-0x48(%rbp)
  mov    -0x48(%rbp),%edx
  mov    %edx,%eax
  shl    $0x3,%eax
  add    %edx,%eax
  add    %eax,%eax
  add    %eax,-0x98(%rbp)
  mov    -0x48(%rbp),%eax
  imul   $0x22,%eax,%eax
  add    %eax,-0x94(%rbp)
  mov    -0x20(%rbp),%rax
  mov    0x3c(%rax),%eax
  mov    %eax,-0x48(%rbp)
  mov    -0x48(%rbp),%eax
  add    %eax,%eax
  add    %eax,-0x94(%rbp)
  mov    -0x98(%rbp),%eax
  add    $0x2000,%eax
  sar    $0xe,%eax
  mov    %eax,-0x98(%rbp)
  mov    -0x94(%rbp),%eax
  add    $0x2000,%eax
  sar    $0xe,%eax
  mov    %eax,-0x94(%rbp)
  cmpl   $0xffff8000,-0x98(%rbp)
  jge    L907
  movl   $0xffff8000,-0x98(%rbp)
  jmp    L1233
L907:
  cmpl   $0x7fff,-0x98(%rbp)
  jle    L1233
  movl   $0x7fff,-0x98(%rbp)
L1233:
  mov    -0x28(%rbp),%rax
  add    $0x2c,%rax
  mov    -0x98(%rbp),%edx
  mov    %dx,(%rax)
  cmpl   $0xffff8000,-0x94(%rbp)
  jge    L642
  movl   $0xffff8000,-0x94(%rbp)
  jmp    L998
L642:
  cmpl   $0x7fff,-0x94(%rbp)
  jle    L998
  movl   $0x7fff,-0x94(%rbp)
L998:
  mov    -0x28(%rbp),%rax
  add    $0x54,%rax
  mov    -0x94(%rbp),%edx
  mov    %dx,(%rax)
  addq   $0x200,-0x20(%rbp)
  subq   $0xffffffffffffff80,-0x28(%rbp)
  addl   $0x1,-0x100(%rbp)
L964:
  mov    -0x100(%rbp),%eax
  cmp    -0x110(%rbp),%eax
  jl     L119
  mov    -0x110(%rbp),%eax
  shl    $0x6,%eax
  cltq
  add    %rax,%rax
  neg    %rax
  add    %rax,-0x28(%rbp)
  mov    -0x68(%rbp),%eax
  mov    %eax,-0xfc(%rbp)
  movl   $0x0,-0x100(%rbp)
  jmp    L142
L174:
  addl   $0x1,-0xfc(%rbp)
  cmpl   $0x7f,-0xfc(%rbp)
  jle    L1131
  movl   $0x10,-0xfc(%rbp)
L1131:
  mov    -0xfc(%rbp),%eax
  and    $0x1,%eax
  test   %eax,%eax
  je     L293
  mov    -0xfc(%rbp),%eax
  cltq
  add    $0x5f1,%rax
  lea    0x0(,%rax,4),%rdx
  mov    -0x8(%rbp),%rax
  add    %rdx,%rax
  mov    %rax,-0x20(%rbp)
  jmp    L302
L293:
  mov    -0xfc(%rbp),%eax
  cltq
  add    $0xe71,%rax
  lea    0x0(,%rax,4),%rdx
  mov    -0x8(%rbp),%rax
  add    %rdx,%rax
  mov    %rax,-0x20(%rbp)
L302:
  mov    -0x20(%rbp),%rax
  mov    (%rax),%eax
  mov    %eax,-0x64(%rbp)
  mov    -0x64(%rbp),%edx
  mov    $0x0,%eax
  sub    %edx,%eax
  add    %eax,%eax
  mov    %eax,-0x90(%rbp)
  movl   $0x0,-0x8c(%rbp)
  mov    -0x20(%rbp),%rax
  mov    0x4(%rax),%eax
  mov    %eax,-0x64(%rbp)
  mov    -0x64(%rbp),%eax
  mov    %eax,%edx
  shl    $0x5,%edx
  add    %edx,%eax
  add    %eax,-0x90(%rbp)
  mov    -0x64(%rbp),%eax
  imul   $0xffffffed,%eax,%eax
  add    %eax,-0x8c(%rbp)
  mov    -0x20(%rbp),%rax
  mov    0x8(%rax),%eax
  mov    %eax,-0x64(%rbp)
  mov    -0x64(%rbp),%eax
  imul   $0xe,%eax,%eax
  add    %eax,-0x90(%rbp)
  mov    -0x64(%rbp),%eax
  imul   $0x32,%eax,%eax
  add    %eax,-0x8c(%rbp)
  mov    -0x20(%rbp),%rax
  mov    0xc(%rax),%eax
  mov    %eax,-0x64(%rbp)
  mov    -0x64(%rbp),%eax
  imul   $0x1c6,%eax,%eax
  add    %eax,-0x90(%rbp)
  mov    -0x64(%rbp),%eax
  imul   $0xfffffec0,%eax,%eax
  add    %eax,-0x8c(%rbp)
  mov    -0x20(%rbp),%rax
  mov    0x10(%rax),%eax
  mov    %eax,-0x64(%rbp)
  mov    -0x64(%rbp),%eax
  imul   $0xfffffeef,%eax,%eax
  add    %eax,-0x90(%rbp)
  mov    -0x64(%rbp),%eax
  imul   $0xc6,%eax,%eax
  add    %eax,-0x8c(%rbp)
  mov    -0x20(%rbp),%rax
  mov    0x14(%rax),%eax
  mov    %eax,-0x64(%rbp)
  mov    -0x64(%rbp),%eax
  imul   $0x9bb,%eax,%eax
  add    %eax,-0x90(%rbp)
  mov    -0x64(%rbp),%eax
  imul   $0xfffff737,%eax,%eax
  add    %eax,-0x8c(%rbp)
  mov    -0x20(%rbp),%rax
  mov    0x18(%rax),%eax
  mov    %eax,-0x64(%rbp)
  mov    -0x64(%rbp),%eax
  imul   $0xfffff03a,%eax,%eax
  add    %eax,-0x90(%rbp)
  mov    -0x64(%rbp),%eax
  imul   $0xfffffb93,%eax,%eax
  add    %eax,-0x8c(%rbp)
  mov    -0x20(%rbp),%rax
  mov    0x1c(%rax),%eax
  mov    %eax,-0x64(%rbp)
  mov    -0x64(%rbp),%eax
  imul   $0x4315,%eax,%eax
  add    %eax,-0x90(%rbp)
  mov    -0x64(%rbp),%eax
  imul   $0xffffc709,%eax,%eax
  add    %eax,-0x8c(%rbp)
  mov    -0x20(%rbp),%rax
  mov    0x20(%rax),%eax
  mov    %eax,-0x64(%rbp)
  mov    -0x64(%rbp),%eax
  imul   $0x38f7,%eax,%eax
  add    %eax,-0x90(%rbp)
  mov    -0x64(%rbp),%eax
  imul   $0x4315,%eax,%eax
  add    %eax,-0x8c(%rbp)
  mov    -0x20(%rbp),%rax
  mov    0x24(%rax),%eax
  mov    %eax,-0x64(%rbp)
  mov    -0x64(%rbp),%eax
  imul   $0xfffffb93,%eax,%eax
  add    %eax,-0x90(%rbp)
  mov    -0x64(%rbp),%eax
  imul   $0xfc6,%eax,%eax
  add    %eax,-0x8c(%rbp)
  mov    -0x20(%rbp),%rax
  mov    0x28(%rax),%eax
  mov    %eax,-0x64(%rbp)
  mov    -0x64(%rbp),%eax
  imul   $0x8c9,%eax,%eax
  add    %eax,-0x90(%rbp)
  mov    -0x64(%rbp),%eax
  imul   $0x9bb,%eax,%eax
  add    %eax,-0x8c(%rbp)
  mov    -0x20(%rbp),%rax
  mov    0x2c(%rax),%eax
  mov    %eax,-0x64(%rbp)
  mov    -0x64(%rbp),%eax
  imul   $0xc6,%eax,%eax
  add    %eax,-0x90(%rbp)
  mov    -0x64(%rbp),%eax
  imul   $0x111,%eax,%eax
  add    %eax,-0x8c(%rbp)
  mov    -0x20(%rbp),%rax
  mov    0x30(%rax),%eax
  mov    %eax,-0x64(%rbp)
  mov    -0x64(%rbp),%edx
  mov    %edx,%eax
  shl    $0x2,%eax
  add    %edx,%eax
  shl    $0x6,%eax
  add    %eax,-0x90(%rbp)
  mov    -0x64(%rbp),%eax
  imul   $0x1c6,%eax,%eax
  add    %eax,-0x8c(%rbp)
  mov    -0x20(%rbp),%rax
  mov    0x34(%rax),%eax
  mov    %eax,-0x64(%rbp)
  mov    -0x64(%rbp),%eax
  imul   $0x32,%eax,%eax
  add    %eax,-0x90(%rbp)
  mov    -0x64(%rbp),%edx
  mov    %edx,%eax
  shl    $0x3,%edx
  sub    %edx,%eax
  add    %eax,%eax
  add    %eax,-0x8c(%rbp)
  mov    -0x20(%rbp),%rax
  mov    0x38(%rax),%eax
  mov    %eax,-0x64(%rbp)
  mov    -0x64(%rbp),%edx
  mov    %edx,%eax
  shl    $0x3,%eax
  add    %edx,%eax
  add    %eax,%eax
  add    %edx,%eax
  add    %eax,-0x90(%rbp)
  mov    -0x64(%rbp),%eax
  mov    %eax,%edx
  shl    $0x5,%edx
  add    %edx,%eax
  add    %eax,-0x8c(%rbp)
  mov    -0x20(%rbp),%rax
  mov    0x3c(%rax),%eax
  mov    %eax,-0x64(%rbp)
  mov    -0x64(%rbp),%eax
  add    %eax,%eax
  add    %eax,-0x8c(%rbp)
  mov    -0x90(%rbp),%eax
  add    $0x2000,%eax
  sar    $0xe,%eax
  mov    %eax,-0x90(%rbp)
  mov    -0x8c(%rbp),%eax
  add    $0x2000,%eax
  sar    $0xe,%eax
  mov    %eax,-0x8c(%rbp)
  cmpl   $0xffff8000,-0x90(%rbp)
  jge    L915
  movl   $0xffff8000,-0x90(%rbp)
  jmp    L454
L915:
  cmpl   $0x7fff,-0x90(%rbp)
  jle    L454
  movl   $0x7fff,-0x90(%rbp)
L454:
  mov    -0x28(%rbp),%rax
  add    $0x30,%rax
  mov    -0x90(%rbp),%edx
  mov    %dx,(%rax)
  cmpl   $0xffff8000,-0x8c(%rbp)
  jge    L221
  movl   $0xffff8000,-0x8c(%rbp)
  jmp    L155
L221:
  cmpl   $0x7fff,-0x8c(%rbp)
  jle    L155
  movl   $0x7fff,-0x8c(%rbp)
L155:
  mov    -0x28(%rbp),%rax
  add    $0x50,%rax
  mov    -0x8c(%rbp),%edx
  mov    %dx,(%rax)
  addq   $0x200,-0x20(%rbp)
  mov    -0x20(%rbp),%rax
  mov    (%rax),%eax
  mov    %eax,-0x60(%rbp)
  mov    -0x60(%rbp),%eax
  neg    %eax
  mov    %eax,-0x88(%rbp)
  mov    -0x60(%rbp),%eax
  neg    %eax
  mov    %eax,-0x84(%rbp)
  mov    -0x20(%rbp),%rax
  mov    0x4(%rax),%eax
  mov    %eax,-0x60(%rbp)
  mov    -0x60(%rbp),%edx
  mov    %edx,%eax
  shl    $0x5,%eax
  sub    %edx,%eax
  add    %eax,-0x88(%rbp)
  mov    -0x60(%rbp),%eax
  imul   $0xffffffeb,%eax,%eax
  add    %eax,-0x84(%rbp)
  mov    -0x20(%rbp),%rax
  mov    0x8(%rax),%eax
  mov    %eax,-0x60(%rbp)
  mov    -0x60(%rbp),%edx
  mov    %edx,%eax
  shl    $0x2,%eax
  add    %edx,%eax
  shl    $0x2,%eax
  add    %eax,-0x88(%rbp)
  mov    -0x60(%rbp),%eax
  imul   $0x2f,%eax,%eax
  add    %eax,-0x84(%rbp)
  mov    -0x20(%rbp),%rax
  mov    0xc(%rax),%eax
  mov    %eax,-0x60(%rbp)
  mov    -0x60(%rbp),%eax
  imul   $0x1b7,%eax,%eax
  add    %eax,-0x88(%rbp)
  mov    -0x60(%rbp),%eax
  imul   $0xfffffead,%eax,%eax
  add    %eax,-0x84(%rbp)
  mov    -0x20(%rbp),%rax
  mov    0x10(%rax),%eax
  mov    %eax,-0x60(%rbp)
  mov    -0x60(%rbp),%eax
  imul   $0xffffff35,%eax,%eax
  add    %eax,-0x88(%rbp)
  mov    -0x60(%rbp),%eax
  imul   $0x97,%eax,%eax
  add    %eax,-0x84(%rbp)
  mov    -0x20(%rbp),%rax
  mov    0x14(%rax),%eax
  mov    %eax,-0x60(%rbp)
  mov    -0x60(%rbp),%eax
  imul   $0x9b9,%eax,%eax
  add    %eax,-0x88(%rbp)
  mov    -0x60(%rbp),%eax
  imul   $0xfffff700,%eax,%eax
  add    %eax,-0x84(%rbp)
  mov    -0x20(%rbp),%rax
  mov    0x18(%rax),%eax
  mov    %eax,-0x60(%rbp)
  mov    -0x60(%rbp),%eax
  imul   $0xfffff1cb,%eax,%eax
  add    %eax,-0x88(%rbp)
  mov    -0x60(%rbp),%eax
  imul   $0xfffffa52,%eax,%eax
  add    %eax,-0x84(%rbp)
  mov    -0x20(%rbp),%rax
  mov    0x1c(%rax),%eax
  mov    %eax,-0x60(%rbp)
  mov    -0x60(%rbp),%eax
  imul   $0x420b,%eax,%eax
  add    %eax,-0x88(%rbp)
  mov    -0x60(%rbp),%eax
  imul   $0xffffc591,%eax,%eax
  add    %eax,-0x84(%rbp)
  mov    -0x20(%rbp),%rax
  mov    0x20(%rax),%eax
  mov    %eax,-0x60(%rbp)
  mov    -0x60(%rbp),%eax
  imul   $0x3a6f,%eax,%eax
  add    %eax,-0x88(%rbp)
  mov    -0x60(%rbp),%eax
  imul   $0x420b,%eax,%eax
  add    %eax,-0x84(%rbp)
  mov    -0x20(%rbp),%rax
  mov    0x24(%rax),%eax
  mov    %eax,-0x60(%rbp)
  mov    -0x60(%rbp),%eax
  imul   $0xfffffa52,%eax,%eax
  add    %eax,-0x88(%rbp)
  mov    -0x60(%rbp),%eax
  imul   $0xe35,%eax,%eax
  add    %eax,-0x84(%rbp)
  mov    -0x20(%rbp),%rax
  mov    0x28(%rax),%eax
  mov    %eax,-0x60(%rbp)
  mov    -0x60(%rbp),%edx
  mov    %edx,%eax
  shl    $0x3,%eax
  add    %edx,%eax
  shl    $0x8,%eax
  add    %eax,-0x88(%rbp)
  mov    -0x60(%rbp),%eax
  imul   $0x9b9,%eax,%eax
  add    %eax,-0x84(%rbp)
  mov    -0x20(%rbp),%rax
  mov    0x2c(%rax),%eax
  mov    %eax,-0x60(%rbp)
  mov    -0x60(%rbp),%eax
  imul   $0x97,%eax,%eax
  add    %eax,-0x88(%rbp)
  mov    -0x60(%rbp),%eax
  imul   $0xcb,%eax,%eax
  add    %eax,-0x84(%rbp)
  mov    -0x20(%rbp),%rax
  mov    0x30(%rax),%eax
  mov    %eax,-0x60(%rbp)
  mov    -0x60(%rbp),%eax
  imul   $0x153,%eax,%eax
  add    %eax,-0x88(%rbp)
  mov    -0x60(%rbp),%eax
  imul   $0x1b7,%eax,%eax
  add    %eax,-0x84(%rbp)
  mov    -0x20(%rbp),%rax
  mov    0x34(%rax),%eax
  mov    %eax,-0x60(%rbp)
  mov    -0x60(%rbp),%eax
  imul   $0x2f,%eax,%eax
  add    %eax,-0x88(%rbp)
  mov    -0x60(%rbp),%eax
  imul   $0xffffffec,%eax,%eax
  add    %eax,-0x84(%rbp)
  mov    -0x20(%rbp),%rax
  mov    0x38(%rax),%eax
  mov    %eax,-0x60(%rbp)
  mov    -0x60(%rbp),%edx
  mov    %edx,%eax
  shl    $0x2,%eax
  add    %edx,%eax
  shl    $0x2,%eax
  add    %edx,%eax
  add    %eax,-0x88(%rbp)
  mov    -0x60(%rbp),%edx
  mov    %edx,%eax
  shl    $0x5,%eax
  sub    %edx,%eax
  add    %eax,-0x84(%rbp)
  mov    -0x20(%rbp),%rax
  mov    0x3c(%rax),%eax
  mov    %eax,-0x60(%rbp)
  mov    -0x60(%rbp),%eax
  sub    %eax,-0x88(%rbp)
  mov    -0x60(%rbp),%eax
  add    %eax,-0x84(%rbp)
  mov    -0x88(%rbp),%eax
  add    $0x2000,%eax
  sar    $0xe,%eax
  mov    %eax,-0x88(%rbp)
  mov    -0x84(%rbp),%eax
  add    $0x2000,%eax
  sar    $0xe,%eax
  mov    %eax,-0x84(%rbp)
  cmpl   $0xffff8000,-0x88(%rbp)
  jge    L1019
  movl   $0xffff8000,-0x88(%rbp)
  jmp    L928
L1019:
  cmpl   $0x7fff,-0x88(%rbp)
  jle    L928
  movl   $0x7fff,-0x88(%rbp)
L928:
  mov    -0x28(%rbp),%rax
  add    $0x34,%rax
  mov    -0x88(%rbp),%edx
  mov    %dx,(%rax)
  cmpl   $0xffff8000,-0x84(%rbp)
  jge    L558
  movl   $0xffff8000,-0x84(%rbp)
  jmp    L798
L558:
  cmpl   $0x7fff,-0x84(%rbp)
  jle    L798
  movl   $0x7fff,-0x84(%rbp)
L798:
  mov    -0x28(%rbp),%rax
  add    $0x4c,%rax
  mov    -0x84(%rbp),%edx
  mov    %dx,(%rax)
  addq   $0x200,-0x20(%rbp)
  mov    -0x20(%rbp),%rax
  mov    (%rax),%eax
  mov    %eax,-0x5c(%rbp)
  mov    -0x5c(%rbp),%eax
  neg    %eax
  mov    %eax,-0x80(%rbp)
  mov    -0x5c(%rbp),%eax
  neg    %eax
  mov    %eax,-0x7c(%rbp)
  mov    -0x20(%rbp),%rax
  mov    0x4(%rax),%eax
  mov    %eax,-0x5c(%rbp)
  mov    -0x5c(%rbp),%eax
  imul   $0x1d,%eax,%eax
  add    %eax,-0x80(%rbp)
  mov    -0x5c(%rbp),%eax
  imul   $0xffffffea,%eax,%eax
  add    %eax,-0x7c(%rbp)
  mov    -0x20(%rbp),%rax
  mov    0x8(%rax),%eax
  mov    %eax,-0x5c(%rbp)
  mov    -0x5c(%rbp),%eax
  imul   $0x1a,%eax,%eax
  add    %eax,-0x80(%rbp)
  mov    -0x5c(%rbp),%eax
  imul   $0x2c,%eax,%eax
  add    %eax,-0x7c(%rbp)
  mov    -0x20(%rbp),%rax
  mov    0xc(%rax),%eax
  mov    %eax,-0x5c(%rbp)
  mov    -0x5c(%rbp),%eax
  imul   $0x1a8,%eax,%eax
  add    %eax,-0x80(%rbp)
  mov    -0x5c(%rbp),%eax
  imul   $0xfffffe9b,%eax,%eax
  add    %eax,-0x7c(%rbp)
  mov    -0x20(%rbp),%rax
  mov    0x10(%rax),%eax
  mov    %eax,-0x5c(%rbp)
  mov    -0x5c(%rbp),%eax
  imul   $0xffffff78,%eax,%eax
  add    %eax,-0x80(%rbp)
  mov    -0x5c(%rbp),%eax
  imul   $0x64,%eax,%eax
  add    %eax,-0x7c(%rbp)
  mov    -0x20(%rbp),%rax
  mov    0x14(%rax),%eax
  mov    %eax,-0x5c(%rbp)
  mov    -0x5c(%rbp),%eax
  imul   $0x9af,%eax,%eax
  add    %eax,-0x80(%rbp)
  mov    -0x5c(%rbp),%eax
  imul   $0xfffff6ce,%eax,%eax
  add    %eax,-0x7c(%rbp)
  mov    -0x20(%rbp),%rax
  mov    0x18(%rax),%eax
  mov    %eax,-0x5c(%rbp)
  mov    -0x5c(%rbp),%eax
  imul   $0xfffff353,%eax,%eax
  add    %eax,-0x80(%rbp)
  mov    -0x5c(%rbp),%eax
  imul   $0xfffff904,%eax,%eax
  add    %eax,-0x7c(%rbp)
  mov    -0x20(%rbp),%rax
  mov    0x1c(%rax),%eax
  mov    %eax,-0x5c(%rbp)
  mov    -0x5c(%rbp),%eax
  imul   $0x40ef,%eax,%eax
  add    %eax,-0x80(%rbp)
  mov    -0x5c(%rbp),%eax
  imul   $0xffffc426,%eax,%eax
  add    %eax,-0x7c(%rbp)
  mov    -0x20(%rbp),%rax
  mov    0x20(%rax),%eax
  mov    %eax,-0x5c(%rbp)
  mov    -0x5c(%rbp),%eax
  imul   $0x3bda,%eax,%eax
  add    %eax,-0x80(%rbp)
  mov    -0x5c(%rbp),%eax
  imul   $0x40ef,%eax,%eax
  add    %eax,-0x7c(%rbp)
  mov    -0x20(%rbp),%rax
  mov    0x24(%rax),%eax
  mov    %eax,-0x5c(%rbp)
  mov    -0x5c(%rbp),%eax
  imul   $0xfffff904,%eax,%eax
  add    %eax,-0x80(%rbp)
  mov    -0x5c(%rbp),%eax
  imul   $0xcad,%eax,%eax
  add    %eax,-0x7c(%rbp)
  mov    -0x20(%rbp),%rax
  mov    0x28(%rax),%eax
  mov    %eax,-0x5c(%rbp)
  mov    -0x5c(%rbp),%eax
  imul   $0x932,%eax,%eax
  add    %eax,-0x80(%rbp)
  mov    -0x5c(%rbp),%eax
  imul   $0x9af,%eax,%eax
  add    %eax,-0x7c(%rbp)
  mov    -0x20(%rbp),%rax
  mov    0x2c(%rax),%eax
  mov    %eax,-0x5c(%rbp)
  mov    -0x5c(%rbp),%eax
  imul   $0x64,%eax,%eax
  add    %eax,-0x80(%rbp)
  mov    -0x5c(%rbp),%eax
  imul   $0x88,%eax,%eax
  add    %eax,-0x7c(%rbp)
  mov    -0x20(%rbp),%rax
  mov    0x30(%rax),%eax
  mov    %eax,-0x5c(%rbp)
  mov    -0x5c(%rbp),%eax
  imul   $0x165,%eax,%eax
  add    %eax,-0x80(%rbp)
  mov    -0x5c(%rbp),%eax
  imul   $0x1a8,%eax,%eax
  add    %eax,-0x7c(%rbp)
  mov    -0x20(%rbp),%rax
  mov    0x34(%rax),%eax
  mov    %eax,-0x5c(%rbp)
  mov    -0x5c(%rbp),%eax
  imul   $0x2c,%eax,%eax
  add    %eax,-0x80(%rbp)
  mov    -0x5c(%rbp),%eax
  imul   $0xffffffe6,%eax,%eax
  add    %eax,-0x7c(%rbp)
  mov    -0x20(%rbp),%rax
  mov    0x38(%rax),%eax
  mov    %eax,-0x5c(%rbp)
  mov    -0x5c(%rbp),%eax
  imul   $0x16,%eax,%eax
  add    %eax,-0x80(%rbp)
  mov    -0x5c(%rbp),%eax
  imul   $0x1d,%eax,%eax
  add    %eax,-0x7c(%rbp)
  mov    -0x20(%rbp),%rax
  mov    0x3c(%rax),%eax
  mov    %eax,-0x5c(%rbp)
  mov    -0x5c(%rbp),%eax
  sub    %eax,-0x80(%rbp)
  mov    -0x5c(%rbp),%eax
  add    %eax,-0x7c(%rbp)
  mov    -0x80(%rbp),%eax
  add    $0x2000,%eax
  sar    $0xe,%eax
  mov    %eax,-0x80(%rbp)
  mov    -0x7c(%rbp),%eax
  add    $0x2000,%eax
  sar    $0xe,%eax
  mov    %eax,-0x7c(%rbp)
  cmpl   $0xffff8000,-0x80(%rbp)
  jge    L33
  movl   $0xffff8000,-0x80(%rbp)
  jmp    L639
L33:
  cmpl   $0x7fff,-0x80(%rbp)
  jle    L639
  movl   $0x7fff,-0x80(%rbp)
L639:
  mov    -0x28(%rbp),%rax
  add    $0x38,%rax
  mov    -0x80(%rbp),%edx
  mov    %dx,(%rax)
  cmpl   $0xffff8000,-0x7c(%rbp)
  jge    L1261
  movl   $0xffff8000,-0x7c(%rbp)
  jmp    L552
L1261:
  cmpl   $0x7fff,-0x7c(%rbp)
  jle    L552
  movl   $0x7fff,-0x7c(%rbp)
L552:
  mov    -0x28(%rbp),%rax
  add    $0x48,%rax
  mov    -0x7c(%rbp),%edx
  mov    %dx,(%rax)
  addq   $0x200,-0x20(%rbp)
  mov    -0x20(%rbp),%rax
  mov    (%rax),%eax
  mov    %eax,-0x58(%rbp)
  mov    -0x58(%rbp),%eax
  neg    %eax
  mov    %eax,-0x78(%rbp)
  mov    -0x58(%rbp),%eax
  neg    %eax
  mov    %eax,-0x74(%rbp)
  mov    -0x20(%rbp),%rax
  mov    0x4(%rax),%eax
  mov    %eax,-0x58(%rbp)
  mov    -0x58(%rbp),%edx
  mov    %edx,%eax
  add    %eax,%eax
  add    %edx,%eax
  lea    0x0(,%rax,8),%edx
  add    %edx,%eax
  add    %eax,-0x78(%rbp)
  mov    -0x58(%rbp),%edx
  mov    %edx,%eax
  shl    $0x2,%edx
  sub    %edx,%eax
  shl    $0x3,%eax
  add    %eax,-0x74(%rbp)
  mov    -0x20(%rbp),%rax
  mov    0x8(%rax),%eax
  mov    %eax,-0x58(%rbp)
  mov    -0x58(%rbp),%edx
  mov    %edx,%eax
  shl    $0x5,%eax
  sub    %edx,%eax
  add    %eax,-0x78(%rbp)
  mov    -0x58(%rbp),%edx
  mov    %edx,%eax
  shl    $0x2,%eax
  add    %edx,%eax
  shl    $0x3,%eax
  add    %eax,-0x74(%rbp)
  mov    -0x20(%rbp),%rax
  mov    0xc(%rax),%eax
  mov    %eax,-0x58(%rbp)
  mov    -0x58(%rbp),%eax
  imul   $0x198,%eax,%eax
  add    %eax,-0x78(%rbp)
  mov    -0x58(%rbp),%eax
  imul   $0xfffffe8a,%eax,%eax
  add    %eax,-0x74(%rbp)
  mov    -0x20(%rbp),%rax
  mov    0x10(%rax),%eax
  mov    %eax,-0x58(%rbp)
  mov    -0x58(%rbp),%eax
  imul   $0xffffffb8,%eax,%eax
  add    %eax,-0x78(%rbp)
  mov    -0x58(%rbp),%eax
  imul   $0x2e,%eax,%eax
  add    %eax,-0x74(%rbp)
  mov    -0x20(%rbp),%rax
  mov    0x14(%rax),%eax
  mov    %eax,-0x58(%rbp)
  mov    -0x58(%rbp),%eax
  imul   $0x99b,%eax,%eax
  add    %eax,-0x78(%rbp)
  mov    -0x58(%rbp),%eax
  imul   $0xfffff6a4,%eax,%eax
  add    %eax,-0x74(%rbp)
  mov    -0x20(%rbp),%rax
  mov    0x18(%rax),%eax
  mov    %eax,-0x58(%rbp)
  mov    -0x58(%rbp),%eax
  imul   $0xfffff4d1,%eax,%eax
  add    %eax,-0x78(%rbp)
  mov    -0x58(%rbp),%eax
  imul   $0xfffff7a9,%eax,%eax
  add    %eax,-0x74(%rbp)
  mov    -0x20(%rbp),%rax
  mov    0x1c(%rax),%eax
  mov    %eax,-0x58(%rbp)
  mov    -0x58(%rbp),%eax
  imul   $0x3fc2,%eax,%eax
  add    %eax,-0x78(%rbp)
  mov    -0x58(%rbp),%eax
  imul   $0xffffc2c9,%eax,%eax
  add    %eax,-0x74(%rbp)
  mov    -0x20(%rbp),%rax
  mov    0x20(%rax),%eax
  mov    %eax,-0x58(%rbp)
  mov    -0x58(%rbp),%eax
  imul   $0x3d37,%eax,%eax
  add    %eax,-0x78(%rbp)
  mov    -0x58(%rbp),%eax
  imul   $0x3fc2,%eax,%eax
  add    %eax,-0x74(%rbp)
  mov    -0x20(%rbp),%rax
  mov    0x24(%rax),%eax
  mov    %eax,-0x58(%rbp)
  mov    -0x58(%rbp),%eax
  imul   $0xfffff7a9,%eax,%eax
  add    %eax,-0x78(%rbp)
  mov    -0x58(%rbp),%eax
  imul   $0xb2f,%eax,%eax
  add    %eax,-0x74(%rbp)
  mov    -0x20(%rbp),%rax
  mov    0x28(%rax),%eax
  mov    %eax,-0x58(%rbp)
  mov    -0x58(%rbp),%eax
  imul   $0x95c,%eax,%eax
  add    %eax,-0x78(%rbp)
  mov    -0x58(%rbp),%eax
  imul   $0x99b,%eax,%eax
  add    %eax,-0x74(%rbp)
  mov    -0x20(%rbp),%rax
  mov    0x2c(%rax),%eax
  mov    %eax,-0x58(%rbp)
  mov    -0x58(%rbp),%eax
  imul   $0x2e,%eax,%eax
  add    %eax,-0x78(%rbp)
  mov    -0x58(%rbp),%edx
  mov    %edx,%eax
  shl    $0x3,%eax
  add    %edx,%eax
  shl    $0x3,%eax
  add    %eax,-0x74(%rbp)
  mov    -0x20(%rbp),%rax
  mov    0x30(%rax),%eax
  mov    %eax,-0x58(%rbp)
  mov    -0x58(%rbp),%eax
  imul   $0x176,%eax,%eax
  add    %eax,-0x78(%rbp)
  mov    -0x58(%rbp),%eax
  imul   $0x198,%eax,%eax
  add    %eax,-0x74(%rbp)
  mov    -0x20(%rbp),%rax
  mov    0x34(%rax),%eax
  mov    %eax,-0x58(%rbp)
  mov    -0x58(%rbp),%edx
  mov    %edx,%eax
  shl    $0x2,%eax
  add    %edx,%eax
  shl    $0x3,%eax
  add    %eax,-0x78(%rbp)
  mov    -0x58(%rbp),%eax
  mov    %eax,%ecx
  shl    $0x5,%eax
  mov    %eax,%edx
  mov    %ecx,%eax
  sub    %edx,%eax
  add    %eax,-0x74(%rbp)
  mov    -0x20(%rbp),%rax
  mov    0x38(%rax),%eax
  mov    %eax,-0x58(%rbp)
  mov    -0x58(%rbp),%edx
  mov    %edx,%eax
  add    %eax,%eax
  add    %edx,%eax
  shl    $0x3,%eax
  add    %eax,-0x78(%rbp)
  mov    -0x58(%rbp),%edx
  mov    %edx,%eax
  add    %eax,%eax
  add    %edx,%eax
  lea    0x0(,%rax,8),%edx
  add    %edx,%eax
  add    %eax,-0x74(%rbp)
  mov    -0x20(%rbp),%rax
  mov    0x3c(%rax),%eax
  mov    %eax,-0x58(%rbp)
  mov    -0x58(%rbp),%eax
  sub    %eax,-0x78(%rbp)
  mov    -0x58(%rbp),%eax
  add    %eax,-0x74(%rbp)
  mov    -0x78(%rbp),%eax
  add    $0x2000,%eax
  sar    $0xe,%eax
  mov    %eax,-0x78(%rbp)
  mov    -0x74(%rbp),%eax
  add    $0x2000,%eax
  sar    $0xe,%eax
  mov    %eax,-0x74(%rbp)
  cmpl   $0xffff8000,-0x78(%rbp)
  jge    L349
  movl   $0xffff8000,-0x78(%rbp)
  jmp    L1026
L349:
  cmpl   $0x7fff,-0x78(%rbp)
  jle    L1026
  movl   $0x7fff,-0x78(%rbp)
L1026:
  mov    -0x28(%rbp),%rax
  add    $0x3c,%rax
  mov    -0x78(%rbp),%edx
  mov    %dx,(%rax)
  cmpl   $0xffff8000,-0x74(%rbp)
  jge    L727
  movl   $0xffff8000,-0x74(%rbp)
  jmp    L136
L727:
  cmpl   $0x7fff,-0x74(%rbp)
  jle    L136
  movl   $0x7fff,-0x74(%rbp)
L136:
  mov    -0x28(%rbp),%rax
  add    $0x44,%rax
  mov    -0x74(%rbp),%edx
  mov    %dx,(%rax)
  addq   $0x200,-0x20(%rbp)
  mov    -0x20(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%edx
  mov    %edx,%eax
  shl    $0x3,%eax
  add    %edx,%eax
  shl    $0x2,%eax
  mov    %eax,%edx
  mov    -0x20(%rbp),%rax
  mov    (%rax),%eax
  sub    %eax,%edx
  mov    -0x20(%rbp),%rax
  add    $0x10,%rax
  mov    (%rax),%eax
  imul   $0xfffffff5,%eax,%eax
  add    %eax,%edx
  mov    -0x20(%rbp),%rax
  add    $0x18,%rax
  mov    (%rax),%eax
  imul   $0xfffff643,%eax,%eax
  add    %eax,%edx
  mov    -0x20(%rbp),%rax
  add    $0x20,%rax
  mov    (%rax),%eax
  imul   $0x3e84,%eax,%eax
  add    %eax,%edx
  mov    -0x20(%rbp),%rax
  add    $0x28,%rax
  mov    (%rax),%eax
  imul   $0x97f,%eax,%eax
  add    %eax,%edx
  mov    -0x20(%rbp),%rax
  add    $0x30,%rax
  mov    (%rax),%eax
  imul   $0x187,%eax,%eax
  add    %eax,%edx
  mov    -0x20(%rbp),%rax
  add    $0x38,%rax
  mov    (%rax),%eax
  imul   $0x1a,%eax,%eax
  add    %edx,%eax
  mov    %eax,-0x70(%rbp)
  mov    -0x70(%rbp),%eax
  add    $0x2000,%eax
  sar    $0xe,%eax
  mov    %eax,-0x70(%rbp)
  cmpl   $0xffff8000,-0x70(%rbp)
  jge    L1013
  movl   $0xffff8000,-0x70(%rbp)
  jmp    L678
L1013:
  cmpl   $0x7fff,-0x70(%rbp)
  jle    L678
  movl   $0x7fff,-0x70(%rbp)
L678:
  mov    -0x28(%rbp),%rax
  add    $0x40,%rax
  mov    -0x70(%rbp),%edx
  mov    %dx,(%rax)
  addq   $0x200,-0x20(%rbp)
  subq   $0xffffffffffffff80,-0x28(%rbp)
  addl   $0x1,-0x100(%rbp)
L142:
  mov    -0x100(%rbp),%eax
  cmp    -0x110(%rbp),%eax
  jl     L174
  mov    -0x6c(%rbp),%eax
  leave
  ret
```

assistant: ```c
int synth_1to1_486(float *bandPtr, int channel, unsigned char *out, int nb_blocks) {
  static int buffs[2][2][17 * 128];
  static int bo[2] = {16 - 1, 16 - 1};
  short *samples = (short *)out;
  int *b0, (*buf)[17 * 128];
  int clip = 0;
  int block, b, bo_start;
  samples += channel;
  bo_start = bo[channel];
  buf = buffs[channel];
  b = bo_start;
  for (block = 0; block < nb_blocks; block++) {
    b++;
    if (b >= 128) {
      int *p, *q;
      int c, i, j;
      for (c = 0; c < 2; c++) {
        p = &buf[c][0] + 1;
        q = p + (128 - 16);
        for (i = 0; i < 17; i++) {
          for (j = 0; j < 16 - 1; j++)
            p[j] = q[j];
          p += 128;
          q += 128;
        }
      }
      b = bo[channel] = 16;
    }
    if (b & 1) {
      dct64_486(buf[1] + b, buf[0] + b, bandPtr);
    } else {
      dct64_486(buf[0] + b, buf[1] + b, bandPtr);
    }
    bandPtr += 32;
  }
  bo[channel] = b;
  b = bo_start;
  for (block = 0; block < nb_blocks; block++) {
    b++;
    if (b >= 128)
      b = 16;
    if (b & 1) {
      b0 = buf[0] + b - (16 - 1);
    } else {
      b0 = buf[1] + b - (16 - 1);
    }
    {
      int sum;
      sum = (-7) * b0[0] + (53) * b0[1] + (-114) * b0[2] + (509) * b0[3] + (-1288) * b0[4] + (1643) * b0[5] + (-9372) * b0[6] + (18759) * b0[7] + (9372) * b0[8] + (1643) * b0[9] + (1288) * b0[10] + (509) * b0[11] + (114) * b0[12] + (53) * b0[13] + (7) * b0[14] + (0) * b0[15];
      sum = (sum + (1 << 13)) >> 14;
      if (sum < -32768)
        sum = -32768;
      else if (sum > 32767)
        sum = 32767;
      samples[2 * (0)] = sum;
      b0 += 128;
    };
    {
      int sum1, sum2, v;
      v = b0[0];
      sum1 = (-6) * v;
      sum2 = (0) * v;
      v = b0[1];
      sum1 += (52) * v;
      sum2 += (-7) * v;
      v = b0[2];
      sum1 += (-100) * v;
      sum2 += (54) * v;
      v = b0[3];
      sum1 += (515) * v;
      sum2 += (-129) * v;
      v = b0[4];
      sum1 += (-1197) * v;
      sum2 += (500) * v;
      v = b0[5];
      sum1 += (1783) * v;
      sum2 += (-1379) * v;
      v = b0[6];
      sum1 += (-8910) * v;
      sum2 += (1489) * v;
      v = b0[7];
      sum1 += (18748) * v;
      sum2 += (-9834) * v;
      v = b0[8];
      sum1 += (9834) * v;
      sum2 += (18748) * v;
      v = b0[9];
      sum1 += (1489) * v;
      sum2 += (8910) * v;
      v = b0[10];
      sum1 += (1379) * v;
      sum2 += (1783) * v;
      v = b0[11];
      sum1 += (500) * v;
      sum2 += (1197) * v;
      v = b0[12];
      sum1 += (129) * v;
      sum2 += (515) * v;
      v = b0[13];
      sum1 += (54) * v;
      sum2 += (100) * v;
      v = b0[14];
      sum1 += (7) * v;
      sum2 += (52) * v;
      v = b0[15];
      sum1 += (0) * v;
      sum2 += (6) * v;
      sum1 = (sum1 + (1 << 13)) >> 14;
      sum2 = (sum2 + (1 << 13)) >> 14;
      if (sum1 < -32768)
        sum1 = -32768;
      else if (sum1 > 32767)
        sum1 = 32767;
      samples[(1) * 2] = sum1;
      if (sum2 < -32768)
        sum2 = -32768;
      else if (sum2 > 32767)
        sum2 = 32767;
      samples[(31) * 2] = sum2;
      b0 += 128;
    };
    {
      int sum1, sum2, v;
      v = b0[0];
      sum1 = (-6) * v;
      sum2 = (0) * v;
      v = b0[1];
      sum1 += (50) * v;
      sum2 += (-8) * v;
      v = b0[2];
      sum1 += (-86) * v;
      sum2 += (55) * v;
      v = b0[3];
      sum1 += (520) * v;
      sum2 += (-145) * v;
      v = b0[4];
      sum1 += (-1106) * v;
      sum2 += (488) * v;
      v = b0[5];
      sum1 += (1910) * v;
      sum2 += (-1469) * v;
      v = b0[6];
      sum1 += (-8447) * v;
      sum2 += (1322) * v;
      v = b0[7];
      sum1 += (18714) * v;
      sum2 += (-10294) * v;
      v = b0[8];
      sum1 += (10294) * v;
      sum2 += (18714) * v;
      v = b0[9];
      sum1 += (1322) * v;
      sum2 += (8447) * v;
      v = b0[10];
      sum1 += (1469) * v;
      sum2 += (1910) * v;
      v = b0[11];
      sum1 += (488) * v;
      sum2 += (1106) * v;
      v = b0[12];
      sum1 += (145) * v;
      sum2 += (520) * v;
      v = b0[13];
      sum1 += (55) * v;
      sum2 += (86) * v;
      v = b0[14];
      sum1 += (8) * v;
      sum2 += (50) * v;
      v = b0[15];
      sum1 += (0) * v;
      sum2 += (6) * v;
      sum1 = (sum1 + (1 << 13)) >> 14;
      sum2 = (sum2 + (1 << 13)) >> 14;
      if (sum1 < -32768)
        sum1 = -32768;
      else if (sum1 > 32767)
        sum1 = 32767;
      samples[(2) * 2] = sum1;
      if (sum2 < -32768)
        sum2 = -32768;
      else if (sum2 > 32767)
        sum2 = 32767;
      samples[(30) * 2] = sum2;
      b0 += 128;
    };
    {
      int sum1, sum2, v;
      v = b0[0];
      sum1 = (-5) * v;
      sum2 = (0) * v;
      v = b0[1];
      sum1 += (49) * v;
      sum2 += (-9) * v;
      v = b0[2];
      sum1 += (-73) * v;
      sum2 += (56) * v;
      v = b0[3];
      sum1 += (521) * v;
      sum2 += (-161) * v;
      v = b0[4];
      sum1 += (-1015) * v;
      sum2 += (473) * v;
      v = b0[5];
      sum1 += (2023) * v;
      sum2 += (-1559) * v;
      v = b0[6];
      sum1 += (-7986) * v;
      sum2 += (1140) * v;
      v = b0[7];
      sum1 += (18657) * v;
      sum2 += (-10751) * v;
      v = b0[8];
      sum1 += (10751) * v;
      sum2 += (18657) * v;
      v = b0[9];
      sum1 += (1140) * v;
      sum2 += (7986) * v;
      v = b0[10];
      sum1 += (1559) * v;
      sum2 += (2023) * v;
      v = b0[11];
      sum1 += (473) * v;
      sum2 += (1015) * v;
      v = b0[12];
      sum1 += (161) * v;
      sum2 += (521) * v;
      v = b0[13];
      sum1 += (56) * v;
      sum2 += (73) * v;
      v = b0[14];
      sum1 += (9) * v;
      sum2 += (49) * v;
      v = b0[15];
      sum1 += (0) * v;
      sum2 += (5) * v;
      sum1 = (sum1 + (1 << 13)) >> 14;
      sum2 = (sum2 + (1 << 13)) >> 14;
      if (sum1 < -32768)
        sum1 = -32768;
      else if (sum1 > 32767)
        sum1 = 32767;
      samples[(3) * 2] = sum1;
      if (sum2 < -32768)
        sum2 = -32768;
      else if (sum2 > 32767)
        sum2 = 32767;
      samples[(29) * 2] = sum2;
      b0 += 128;
    };
    samples += 64;
  }
  samples -= 64 * nb_blocks;
  b = bo_start;
  for (block = 0; block < nb_blocks; block++) {
    b++;
    if (b >= 128)
      b = 16;
    if (b & 1) {
      b0 = buf[0] + b - (16 - 1) + 4 * 128;
    } else {
      b0 = buf[1] + b - (16 - 1) + 4 * 128;
    }
    {
      int sum1, sum2, v;
      v = b0[0];
      sum1 = (-4) * v;
      sum2 = (0) * v;
      v = b0[1];
      sum1 += (47) * v;
      sum2 += (-10) * v;
      v = b0[2];
      sum1 += (-61) * v;
      sum2 += (56) * v;
      v = b0[3];
      sum1 += (521) * v;
      sum2 += (-177) * v;
      v = b0[4];
      sum1 += (-926) * v;
      sum2 += (455) * v;
      v = b0[5];
      sum1 += (2123) * v;
      sum2 += (-1647) * v;
      v = b0[6];
      sum1 += (-7528) * v;
      sum2 += (944) * v;
      v = b0[7];
      sum1 += (18578) * v;
      sum2 += (-11205) * v;
      v = b0[8];
      sum1 += (11205) * v;
      sum2 += (18578) * v;
      v = b0[9];
      sum1 += (944) * v;
      sum2 += (7528) * v;
      v = b0[10];
      sum1 += (1647) * v;
      sum2 += (2123) * v;
      v = b0[11];
      sum1 += (455) * v;
      sum2 += (926) * v;
      v = b0[12];
      sum1 += (177) * v;
      sum2 += (521) * v;
      v = b0[13];
      sum1 += (56) * v;
      sum2 += (61) * v;
      v = b0[14];
      sum1 += (10) * v;
      sum2 += (47) * v;
      v = b0[15];
      sum1 += (0) * v;
      sum2 += (4) * v;
      sum1 = (sum1 + (1 << 13)) >> 14;
      sum2 = (sum2 + (1 << 13)) >> 14;
      if (sum1 < -32768)
        sum1 = -32768;
      else if (sum1 > 32767)
        sum1 = 32767;
      samples[(4) * 2] = sum1;
      if (sum2 < -32768)
        sum2 = -32768;
      else if (sum2 > 32767)
        sum2 = 32767;
      samples[(28) * 2] = sum2;
      b0 += 128;
    };
    {
      int sum1, sum2, v;
      v = b0[0];
      sum1 = (-4) * v;
      sum2 = (0) * v;
      v = b0[1];
      sum1 += (45) * v;
      sum2 += (-11) * v;
      v = b0[2];
      sum1 += (-49) * v;
      sum2 += (57) * v;
      v = b0[3];
      sum1 += (518) * v;
      sum2 += (-194) * v;
      v = b0[4];
      sum1 += (-837) * v;
      sum2 += (434) * v;
      v = b0[5];
      sum1 += (2210) * v;
      sum2 += (-1733) * v;
      v = b0[6];
      sum1 += (-7072) * v;
      sum2 += (733) * v;
      v = b0[7];
      sum1 += (18477) * v;
      sum2 += (-11654) * v;
      v = b0[8];
      sum1 += (11654) * v;
      sum2 += (18477) * v;
      v = b0[9];
      sum1 += (733) * v;
      sum2 += (7072) * v;
      v = b0[10];
      sum1 += (1733) * v;
      sum2 += (2210) * v;
      v = b0[11];
      sum1 += (434) * v;
      sum2 += (837) * v;
      v = b0[12];
      sum1 += (194) * v;
      sum2 += (518) * v;
      v = b0[13];
      sum1 += (57) * v;
      sum2 += (49) * v;
      v = b0[14];
      sum1 += (11) * v;
      sum2 += (45) * v;
      v = b0[15];
      sum1 += (0) * v;
      sum2 += (4) * v;
      sum1 = (sum1 + (1 << 13)) >> 14;
      sum2 = (sum2 + (1 << 13)) >> 14;
      if (sum1 < -32768)
        sum1 = -32768;
      else if (sum1 > 32767)
        sum1 = 32767;
      samples[(5) * 2] = sum1;
      if (sum2 < -32768)
        sum2 = -32768;
      else if (sum2 > 32767)
        sum2 = 32767;
      samples[(27) * 2] = sum2;
      b0 += 128;
    };
    {
      int sum1, sum2, v;
      v = b0[0];
      sum1 = (-4) * v;
      sum2 = (0) * v;
      v = b0[1];
      sum1 += (44) * v;
      sum2 += (-12) * v;
      v = b0[2];
      sum1 += (-38) * v;
      sum2 += (57) * v;
      v = b0[3];
      sum1 += (514) * v;
      sum2 += (-212) * v;
      v = b0[4];
      sum1 += (-751) * v;
      sum2 += (411) * v;
      v = b0[5];
      sum1 += (2284) * v;
      sum2 += (-1817) * v;
      v = b0[6];
      sum1 += (-6620) * v;
      sum2 += (509) * v;
      v = b0[7];
      sum1 += (18353) * v;
      sum2 += (-12097) * v;
      v = b0[8];
      sum1 += (12097) * v;
      sum2 += (18353) * v;
      v = b0[9];
      sum1 += (509) * v;
      sum2 += (6620) * v;
      v = b0[10];
      sum1 += (1817) * v;
      sum2 += (2284) * v;
      v = b0[11];
      sum1 += (411) * v;
      sum2 += (751) * v;
      v = b0[12];
      sum1 += (212) * v;
      sum2 += (514) * v;
      v = b0[13];
      sum1 += (57) * v;
      sum2 += (38) * v;
      v = b0[14];
      sum1 += (12) * v;
      sum2 += (44) * v;
      v = b0[15];
      sum1 += (0) * v;
      sum2 += (4) * v;
      sum1 = (sum1 + (1 << 13)) >> 14;
      sum2 = (sum2 + (1 << 13)) >> 14;
      if (sum1 < -32768)
        sum1 = -32768;
      else if (sum1 > 32767)
        sum1 = 32767;
      samples[(6) * 2] = sum1;
      if (sum2 < -32768)
        sum2 = -32768;
      else if (sum2 > 32767)
        sum2 = 32767;
      samples[(26) * 2] = sum2;
      b0 += 128;
    };
    {
      int sum1, sum2, v;
      v = b0[0];
      sum1 = (-3) * v;
      sum2 = (0) * v;
      v = b0[1];
      sum1 += (42) * v;
      sum2 += (-13) * v;
      v = b0[2];
      sum1 += (-27) * v;
      sum2 += (56) * v;
      v = b0[3];
      sum1 += (508) * v;
      sum2 += (-229) * v;
      v = b0[4];
      sum1 += (-665) * v;
      sum2 += (383) * v;
      v = b0[5];
      sum1 += (2347) * v;
      sum2 += (-1899) * v;
      v = b0[6];
      sum1 += (-6173) * v;
      sum2 += (270) * v;
      v = b0[7];
      sum1 += (18208) * v;
      sum2 += (-12534) * v;
      v = b0[8];
      sum1 += (12534) * v;
      sum2 += (18208) * v;
      v = b0[9];
      sum1 += (270) * v;
      sum2 += (6173) * v;
      v = b0[10];
      sum1 += (1899) * v;
      sum2 += (2347) * v;
      v = b0[11];
      sum1 += (383) * v;
      sum2 += (665) * v;
      v = b0[12];
      sum1 += (229) * v;
      sum2 += (508) * v;
      v = b0[13];
      sum1 += (56) * v;
      sum2 += (27) * v;
      v = b0[14];
      sum1 += (13) * v;
      sum2 += (42) * v;
      v = b0[15];
      sum1 += (0) * v;
      sum2 += (3) * v;
      sum1 = (sum1 + (1 << 13)) >> 14;
      sum2 = (sum2 + (1 << 13)) >> 14;
      if (sum1 < -32768)
        sum1 = -32768;
      else if (sum1 > 32767)
        sum1 = 32767;
      samples[(7) * 2] = sum1;
      if (sum2 < -32768)
        sum2 = -32768;
      else if (sum2 > 32767)
        sum2 = 32767;
      samples[(25) * 2] = sum2;
      b0 += 128;
    };
    samples += 64;
  }
  samples -= 64 * nb_blocks;
  b = bo_start;
  for (block = 0; block < nb_blocks; block++) {
    b++;
    if (b >= 128)
      b = 16;
    if (b & 1) {
      b0 = buf[0] + b - (16 - 1) + 8 * 128;
    } else {
      b0 = buf[1] + b - (16 - 1) + 8 * 128;
    }
    {
      int sum1, sum2, v;
      v = b0[0];
      sum1 = (-3) * v;
      sum2 = (0) * v;
      v = b0[1];
      sum1 += (40) * v;
      sum2 += (-14) * v;
      v = b0[2];
      sum1 += (-18) * v;
      sum2 += (56) * v;
      v = b0[3];
      sum1 += (500) * v;
      sum2 += (-247) * v;
      v = b0[4];
      sum1 += (-582) * v;
      sum2 += (353) * v;
      v = b0[5];
      sum1 += (2398) * v;
      sum2 += (-1977) * v;
      v = b0[6];
      sum1 += (-5732) * v;
      sum2 += (17) * v;
      v = b0[7];
      sum1 += (18042) * v;
      sum2 += (-12963) * v;
      v = b0[8];
      sum1 += (12963) * v;
      sum2 += (18042) * v;
      v = b0[9];
      sum1 += (17) * v;
      sum2 += (5732) * v;
      v = b0[10];
      sum1 += (1977) * v;
      sum2 += (2398) * v;
      v = b0[11];
      sum1 += (353) * v;
      sum2 += (582) * v;
      v = b0[12];
      sum1 += (247) * v;
      sum2 += (500) * v;
      v = b0[13];
      sum1 += (56) * v;
      sum2 += (18) * v;
      v = b0[14];
      sum1 += (14) * v;
      sum2 += (40) * v;
      v = b0[15];
      sum1 += (0) * v;
      sum2 += (3) * v;
      sum1 = (sum1 + (1 << 13)) >> 14;
      sum2 = (sum2 + (1 << 13)) >> 14;
      if (sum1 < -32768)
        sum1 = -32768;
      else if (sum1 > 32767)
        sum1 = 32767;
      samples[(8) * 2] = sum1;
      if (sum2 < -32768)
        sum2 = -32768;
      else if (sum2 > 32767)
        sum2 = 32767;
      samples[(24) * 2] = sum2;
      b0 += 128;
    };
    {
      int sum1, sum2, v;
      v = b0[0];
      sum1 = (-2) * v;
      sum2 = (0) * v;
      v = b0[1];
      sum1 += (38) * v;
      sum2 += (-15) * v;
      v = b0[2];
      sum1 += (-9) * v;
      sum2 += (55) * v;
      v = b0[3];
      sum1 += (490) * v;
      sum2 += (-266) * v;
      v = b0[4];
      sum1 += (-501) * v;
      sum2 += (320) * v;
      v = b0[5];
      sum1 += (2437) * v;
      sum2 += (-2052) * v;
      v = b0[6];
      sum1 += (-5297) * v;
      sum2 += (-249) * v;
      v = b0[7];
      sum1 += (17855) * v;
      sum2 += (-13383) * v;
      v = b0[8];
      sum1 += (13383) * v;
      sum2 += (17855) * v;
      v = b0[9];
      sum1 += (-249) * v;
      sum2 += (5297) * v;
      v = b0[10];
      sum1 += (2052) * v;
      sum2 += (2437) * v;
      v = b0[11];
      sum1 += (320) * v;
      sum2 += (501) * v;
      v = b0[12];
      sum1 += (266) * v;
      sum2 += (490) * v;
      v = b0[13];
      sum1 += (55) * v;
      sum2 += (9) * v;
      v = b0[14];
      sum1 += (15) * v;
      sum2 += (38) * v;
      v = b0[15];
      sum1 += (0) * v;
      sum2 += (2) * v;
      sum1 = (sum1 + (1 << 13)) >> 14;
      sum2 = (sum2 + (1 << 13)) >> 14;
      if (sum1 < -32768)
        sum1 = -32768;
      else if (sum1 > 32767)
        sum1 = 32767;
      samples[(9) * 2] = sum1;
      if (sum2 < -32768)
        sum2 = -32768;
      else if (sum2 > 32767)
        sum2 = 32767;
      samples[(23) * 2] = sum2;
      b0 += 128;
    };
    {
      int sum1, sum2, v;
      v = b0[0];
      sum1 = (-2) * v;
      sum2 = (0) * v;
      v = b0[1];
      sum1 += (36) * v;
      sum2 += (-17) * v;
      v = b0[2];
      sum1 += (0) * v;
      sum2 += (53) * v;
      v = b0[3];
      sum1 += (479) * v;
      sum2 += (-284) * v;
      v = b0[4];
      sum1 += (-423) * v;
      sum2 += (282) * v;
      v = b0[5];
      sum1 += (2465) * v;
      sum2 += (-2122) * v;
      v = b0[6];
      sum1 += (-4869) * v;
      sum2 += (-530) * v;
      v = b0[7];
      sum1 += (17647) * v;
      sum2 += (-13794) * v;
      v = b0[8];
      sum1 += (13794) * v;
      sum2 += (17647) * v;
      v = b0[9];
      sum1 += (-530) * v;
      sum2 += (4869) * v;
      v = b0[10];
      sum1 += (2122) * v;
      sum2 += (2465) * v;
      v = b0[11];
      sum1 += (282) * v;
      sum2 += (423) * v;
      v = b0[12];
      sum1 += (284) * v;
      sum2 += (479) * v;
      v = b0[13];
      sum1 += (53) * v;
      sum2 += (0) * v;
      v = b0[14];
      sum1 += (17) * v;
      sum2 += (36) * v;
      v = b0[15];
      sum1 += (0) * v;
      sum2 += (2) * v;
      sum1 = (sum1 + (1 << 13)) >> 14;
      sum2 = (sum2 + (1 << 13)) >> 14;
      if (sum1 < -32768)
        sum1 = -32768;
      else if (sum1 > 32767)
        sum1 = 32767;
      samples[(10) * 2] = sum1;
      if (sum2 < -32768)
        sum2 = -32768;
      else if (sum2 > 32767)
        sum2 = 32767;
      samples[(22) * 2] = sum2;
      b0 += 128;
    };
    {
      int sum1, sum2, v;
      v = b0[0];
      sum1 = (-2) * v;
      sum2 = (0) * v;
      v = b0[1];
      sum1 += (34) * v;
      sum2 += (-18) * v;
      v = b0[2];
      sum1 += (7) * v;
      sum2 += (52) * v;
      v = b0[3];
      sum1 += (467) * v;
      sum2 += (-302) * v;
      v = b0[4];
      sum1 += (-347) * v;
      sum2 += (242) * v;
      v = b0[5];
      sum1 += (2483) * v;
      sum2 += (-2188) * v;
      v = b0[6];
      sum1 += (-4449) * v;
      sum2 += (-825) * v;
      v = b0[7];
      sum1 += (17419) * v;
      sum2 += (-14194) * v;
      v = b0[8];
      sum1 += (14194) * v;
      sum2 += (17419) * v;
      v = b0[9];
      sum1 += (-825) * v;
      sum2 += (4449) * v;
      v = b0[10];
      sum1 += (2188) * v;
      sum2 += (2483) * v;
      v = b0[11];
      sum1 += (242) * v;
      sum2 += (347) * v;
      v = b0[12];
      sum1 += (302) * v;
      sum2 += (467) * v;
      v = b0[13];
      sum1 += (52) * v;
      sum2 += (-7) * v;
      v = b0[14];
      sum1 += (18) * v;
      sum2 += (34) * v;
      v = b0[15];
      sum1 += (0) * v;
      sum2 += (2) * v;
      sum1 = (sum1 + (1 << 13)) >> 14;
      sum2 = (sum2 + (1 << 13)) >> 14;
      if (sum1 < -32768)
        sum1 = -32768;
      else if (sum1 > 32767)
        sum1 = 32767;
      samples[(11) * 2] = sum1;
      if (sum2 < -32768)
        sum2 = -32768;
      else if (sum2 > 32767)
        sum2 = 32767;
      samples[(21) * 2] = sum2;
      b0 += 128;
    };
    samples += 64;
  }
  samples -= 64 * nb_blocks;
  b = bo_start;
  for (block = 0; block < nb_blocks; block++) {
    b++;
    if (b >= 128)
      b = 16;
    if (b & 1) {
      b0 = buf[0] + b - (16 - 1) + 12 * 128;
    } else {
      b0 = buf[1] + b - (16 - 1) + 12 * 128;
    }
    {
      int sum1, sum2, v;
      v = b0[0];
      sum1 = (-2) * v;
      sum2 = (0) * v;
      v = b0[1];
      sum1 += (33) * v;
      sum2 += (-19) * v;
      v = b0[2];
      sum1 += (14) * v;
      sum2 += (50) * v;
      v = b0[3];
      sum1 += (454) * v;
      sum2 += (-320) * v;
      v = b0[4];
      sum1 += (-273) * v;
      sum2 += (198) * v;
      v = b0[5];
      sum1 += (2491) * v;
      sum2 += (-2249) * v;
      v = b0[6];
      sum1 += (-4038) * v;
      sum2 += (-1133) * v;
      v = b0[7];
      sum1 += (17173) * v;
      sum2 += (-14583) * v;
      v = b0[8];
      sum1 += (14583) * v;
      sum2 += (17173) * v;
      v = b0[9];
      sum1 += (-1133) * v;
      sum2 += (4038) * v;
      v = b0[10];
      sum1 += (2249) * v;
      sum2 += (2491) * v;
      v = b0[11];
      sum1 += (198) * v;
      sum2 += (273) * v;
      v = b0[12];
      sum1 += (320) * v;
      sum2 += (454) * v;
      v = b0[13];
      sum1 += (50) * v;
      sum2 += (-14) * v;
      v = b0[14];
      sum1 += (19) * v;
      sum2 += (33) * v;
      v = b0[15];
      sum1 += (0) * v;
      sum2 += (2) * v;
      sum1 = (sum1 + (1 << 13)) >> 14;
      sum2 = (sum2 + (1 << 13)) >> 14;
      if (sum1 < -32768)
        sum1 = -32768;
      else if (sum1 > 32767)
        sum1 = 32767;
      samples[(12) * 2] = sum1;
      if (sum2 < -32768)
        sum2 = -32768;
      else if (sum2 > 32767)
        sum2 = 32767;
      samples[(20) * 2] = sum2;
      b0 += 128;
    };
    {
      int sum1, sum2, v;
      v = b0[0];
      sum1 = (-1) * v;
      sum2 = (-1) * v;
      v = b0[1];
      sum1 += (31) * v;
      sum2 += (-21) * v;
      v = b0[2];
      sum1 += (20) * v;
      sum2 += (47) * v;
      v = b0[3];
      sum1 += (439) * v;
      sum2 += (-339) * v;
      v = b0[4];
      sum1 += (-203) * v;
      sum2 += (151) * v;
      v = b0[5];
      sum1 += (2489) * v;
      sum2 += (-2304) * v;
      v = b0[6];
      sum1 += (-3637) * v;
      sum2 += (-1454) * v;
      v = b0[7];
      sum1 += (16907) * v;
      sum2 += (-14959) * v;
      v = b0[8];
      sum1 += (14959) * v;
      sum2 += (16907) * v;
      v = b0[9];
      sum1 += (-1454) * v;
      sum2 += (3637) * v;
      v = b0[10];
      sum1 += (2304) * v;
      sum2 += (2489) * v;
      v = b0[11];
      sum1 += (151) * v;
      sum2 += (203) * v;
      v = b0[12];
      sum1 += (339) * v;
      sum2 += (439) * v;
      v = b0[13];
      sum1 += (47) * v;
      sum2 += (-20) * v;
      v = b0[14];
      sum1 += (21) * v;
      sum2 += (31) * v;
      v = b0[15];
      sum1 += (-1) * v;
      sum2 += (1) * v;
      sum1 = (sum1 + (1 << 13)) >> 14;
      sum2 = (sum2 + (1 << 13)) >> 14;
      if (sum1 < -32768)
        sum1 = -32768;
      else if (sum1 > 32767)
        sum1 = 32767;
      samples[(13) * 2] = sum1;
      if (sum2 < -32768)
        sum2 = -32768;
      else if (sum2 > 32767)
        sum2 = 32767;
      samples[(19) * 2] = sum2;
      b0 += 128;
    };
    {
      int sum1, sum2, v;
      v = b0[0];
      sum1 = (-1) * v;
      sum2 = (-1) * v;
      v = b0[1];
      sum1 += (29) * v;
      sum2 += (-22) * v;
      v = b0[2];
      sum1 += (26) * v;
      sum2 += (44) * v;
      v = b0[3];
      sum1 += (424) * v;
      sum2 += (-357) * v;
      v = b0[4];
      sum1 += (-136) * v;
      sum2 += (100) * v;
      v = b0[5];
      sum1 += (2479) * v;
      sum2 += (-2354) * v;
      v = b0[6];
      sum1 += (-3245) * v;
      sum2 += (-1788) * v;
      v = b0[7];
      sum1 += (16623) * v;
      sum2 += (-15322) * v;
      v = b0[8];
      sum1 += (15322) * v;
      sum2 += (16623) * v;
      v = b0[9];
      sum1 += (-1788) * v;
      sum2 += (3245) * v;
      v = b0[10];
      sum1 += (2354) * v;
      sum2 += (2479) * v;
      v = b0[11];
      sum1 += (100) * v;
      sum2 += (136) * v;
      v = b0[12];
      sum1 += (357) * v;
      sum2 += (424) * v;
      v = b0[13];
      sum1 += (44) * v;
      sum2 += (-26) * v;
      v = b0[14];
      sum1 += (22) * v;
      sum2 += (29) * v;
      v = b0[15];
      sum1 += (-1) * v;
      sum2 += (1) * v;
      sum1 = (sum1 + (1 << 13)) >> 14;
      sum2 = (sum2 + (1 << 13)) >> 14;
      if (sum1 < -32768)
        sum1 = -32768;
      else if (sum1 > 32767)
        sum1 = 32767;
      samples[(14) * 2] = sum1;
      if (sum2 < -32768)
        sum2 = -32768;
      else if (sum2 > 32767)
        sum2 = 32767;
      samples[(18) * 2] = sum2;
      b0 += 128;
    };
    {
      int sum1, sum2, v;
      v = b0[0];
      sum1 = (-1) * v;
      sum2 = (-1) * v;
      v = b0[1];
      sum1 += (27) * v;
      sum2 += (-24) * v;
      v = b0[2];
      sum1 += (31) * v;
      sum2 += (40) * v;
      v = b0[3];
      sum1 += (408) * v;
      sum2 += (-374) * v;
      v = b0[4];
      sum1 += (-72) * v;
      sum2 += (46) * v;
      v = b0[5];
      sum1 += (2459) * v;
      sum2 += (-2396) * v;
      v = b0[6];
      sum1 += (-2863) * v;
      sum2 += (-2135) * v;
      v = b0[7];
      sum1 += (16322) * v;
      sum2 += (-15671) * v;
      v = b0[8];
      sum1 += (15671) * v;
      sum2 += (16322) * v;
      v = b0[9];
      sum1 += (-2135) * v;
      sum2 += (2863) * v;
      v = b0[10];
      sum1 += (2396) * v;
      sum2 += (2459) * v;
      v = b0[11];
      sum1 += (46) * v;
      sum2 += (72) * v;
      v = b0[12];
      sum1 += (374) * v;
      sum2 += (408) * v;
      v = b0[13];
      sum1 += (40) * v;
      sum2 += (-31) * v;
      v = b0[14];
      sum1 += (24) * v;
      sum2 += (27) * v;
      v = b0[15];
      sum1 += (-1) * v;
      sum2 += (1) * v;
      sum1 = (sum1 + (1 << 13)) >> 14;
      sum2 = (sum2 + (1 << 13)) >> 14;
      if (sum1 < -32768)
        sum1 = -32768;
      else if (sum1 > 32767)
        sum1 = 32767;
      samples[(15) * 2] = sum1;
      if (sum2 < -32768)
        sum2 = -32768;
      else if (sum2 > 32767)
        sum2 = 32767;
      samples[(17) * 2] = sum2;
      b0 += 128;
    };
    {
      int sum;
      sum = (-1) * b0[0] + (0) * b0[1] + (36) * b0[2] + (0) * b0[3] + (-11) * b0[4] + (0) * b0[5] + (-2493) * b0[6] + (0) * b0[7] + (16004) * b0[8] + (0) * b0[9] + (2431) * b0[10] + (0) * b0[11] + (391) * b0[12] + (0) * b0[13] + (26) * b0[14] + (0) * b0[15];
      sum = (sum + (1 << 13)) >> 14;
      if (sum < -32768)
        sum = -32768;
      else if (sum > 32767)
        sum = 32767;
      samples[2 * (16)] = sum;
      b0 += 128;
    };
    samples += 64;
  }
  return clip;
}
```