user: 请从给定的汇编指令推导出C源代码:

```asm
<DCT_8x4>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  push   %r15
  push   %r14
  push   %r13
  push   %r12
  push   %rbx
  mov    %rdi,-0x60(%rbp)
  mov    %rsi,-0x68(%rbp)
  mov    -0x60(%rbp),%rax
  mov    (%rax),%eax
  mov    %eax,-0x58(%rbp)
  mov    -0x60(%rbp),%rax
  mov    0x10(%rax),%eax
  mov    %eax,-0x54(%rbp)
  mov    -0x60(%rbp),%rax
  mov    0x40(%rax),%eax
  mov    %eax,-0x50(%rbp)
  mov    -0x60(%rbp),%rax
  mov    0x50(%rax),%eax
  mov    %eax,-0x4c(%rbp)
  mov    -0x60(%rbp),%rax
  mov    (%rax),%eax
  test   %eax,%eax
  je     L4176
  mov    -0x60(%rbp),%rax
  mov    (%rax),%eax
  imul   $0x5a80,%eax,%eax
  jmp    L3950
L4176:
  mov    $0x0,%eax
L3950:
  mov    -0x60(%rbp),%rdx
  mov    %eax,(%rdx)
  mov    -0x60(%rbp),%rax
  add    $0x10,%rax
  mov    (%rax),%eax
  test   %eax,%eax
  je     L4299
  mov    -0x60(%rbp),%rax
  add    $0x10,%rax
  mov    (%rax),%eax
  imul   $0x5a80,%eax,%eax
  jmp    L4151
L4299:
  mov    $0x0,%eax
L4151:
  mov    -0x60(%rbp),%rdx
  add    $0x10,%rdx
  mov    %eax,(%rdx)
  mov    -0x60(%rbp),%rax
  add    $0x40,%rax
  mov    (%rax),%eax
  test   %eax,%eax
  je     L2419
  mov    -0x60(%rbp),%rax
  add    $0x40,%rax
  mov    (%rax),%eax
  imul   $0x5a80,%eax,%eax
  jmp    L3291
L2419:
  mov    $0x0,%eax
L3291:
  mov    -0x60(%rbp),%rdx
  add    $0x40,%rdx
  mov    %eax,(%rdx)
  mov    -0x60(%rbp),%rax
  add    $0x50,%rax
  mov    (%rax),%eax
  test   %eax,%eax
  je     L1133
  mov    -0x60(%rbp),%rax
  add    $0x50,%rax
  mov    (%rax),%eax
  imul   $0x5a80,%eax,%eax
  jmp    L1224
L1133:
  mov    $0x0,%eax
L1224:
  mov    -0x60(%rbp),%rdx
  add    $0x50,%rdx
  mov    %eax,(%rdx)
  mov    -0x60(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%edx
  mov    -0x60(%rbp),%rax
  add    $0x48,%rax
  mov    (%rax),%eax
  add    %edx,%eax
  mov    %eax,-0x48(%rbp)
  mov    -0x60(%rbp),%rax
  add    $0x18,%rax
  mov    (%rax),%edx
  mov    -0x60(%rbp),%rax
  add    $0x58,%rax
  mov    (%rax),%eax
  add    %edx,%eax
  mov    %eax,-0x44(%rbp)
  mov    -0x60(%rbp),%rax
  add    $0x4,%rax
  mov    (%rax),%edx
  mov    -0x60(%rbp),%rax
  add    $0x44,%rax
  mov    (%rax),%eax
  add    %edx,%eax
  mov    %eax,-0x40(%rbp)
  mov    -0x60(%rbp),%rax
  add    $0xc,%rax
  mov    (%rax),%edx
  mov    -0x60(%rbp),%rax
  add    $0x4c,%rax
  mov    (%rax),%eax
  add    %edx,%eax
  mov    %eax,-0x3c(%rbp)
  mov    -0x60(%rbp),%rax
  add    $0x14,%rax
  mov    (%rax),%edx
  mov    -0x60(%rbp),%rax
  add    $0x54,%rax
  mov    (%rax),%eax
  add    %edx,%eax
  mov    %eax,-0x38(%rbp)
  mov    -0x60(%rbp),%rax
  add    $0x1c,%rax
  mov    (%rax),%edx
  mov    -0x60(%rbp),%rax
  add    $0x5c,%rax
  mov    (%rax),%eax
  add    %edx,%eax
  mov    %eax,-0x34(%rbp)
  mov    $0x1000000,%r13d
  mov    -0x60(%rbp),%rax
  mov    (%rax),%edx
  mov    -0x60(%rbp),%rax
  add    $0x10,%rax
  mov    (%rax),%eax
  add    %eax,%edx
  mov    -0x60(%rbp),%rax
  add    $0x40,%rax
  mov    (%rax),%eax
  add    %eax,%edx
  mov    -0x60(%rbp),%rax
  add    $0x50,%rax
  mov    (%rax),%eax
  add    %edx,%eax
  add    %eax,%r13d
  cmpl   $0x0,-0x48(%rbp)
  je     L3755
  mov    -0x48(%rbp),%eax
  imul   $0x763e,%eax,%eax
  jmp    L433
L3755:
  mov    $0x0,%eax
L433:
  add    %eax,%r13d
  cmpl   $0x0,-0x44(%rbp)
  je     L2930
  mov    -0x44(%rbp),%eax
  imul   $0x30fa,%eax,%eax
  jmp    L190
L2930:
  mov    $0x0,%eax
L190:
  add    %eax,%r13d
  mov    -0x60(%rbp),%rax
  add    $0x24,%rax
  mov    (%rax),%eax
  test   %eax,%eax
  je     L2460
  mov    -0x60(%rbp),%rax
  add    $0x24,%rax
  mov    (%rax),%eax
  imul   $0xa402,%eax,%eax
  jmp    L194
L2460:
  mov    $0x0,%eax
L194:
  mov    %eax,%r12d
  mov    -0x60(%rbp),%rax
  add    $0x2c,%rax
  mov    (%rax),%eax
  test   %eax,%eax
  je     L3425
  mov    -0x60(%rbp),%rax
  add    $0x2c,%rax
  mov    (%rax),%eax
  imul   $0x8b0a,%eax,%eax
  jmp    L4003
L3425:
  mov    $0x0,%eax
L4003:
  add    %eax,%r12d
  mov    -0x60(%rbp),%rax
  add    $0x34,%rax
  mov    (%rax),%eax
  test   %eax,%eax
  je     L1040
  mov    -0x60(%rbp),%rax
  add    $0x34,%rax
  mov    (%rax),%eax
  imul   $0x5ce7,%eax,%eax
  jmp    L2720
L1040:
  mov    $0x0,%eax
L2720:
  add    %eax,%r12d
  mov    -0x60(%rbp),%rax
  add    $0x3c,%rax
  mov    (%rax),%eax
  test   %eax,%eax
  je     L1048
  mov    -0x60(%rbp),%rax
  add    $0x3c,%rax
  mov    (%rax),%eax
  imul   $0x209f,%eax,%eax
  jmp    L1497
L1048:
  mov    $0x0,%eax
L1497:
  add    %eax,%r12d
  mov    -0x60(%rbp),%rax
  add    $0x64,%rax
  mov    (%rax),%eax
  test   %eax,%eax
  je     L2820
  mov    -0x60(%rbp),%rax
  add    $0x64,%rax
  mov    (%rax),%eax
  imul   $0x43ef,%eax,%eax
  jmp    L2133
L2820:
  mov    $0x0,%eax
L2133:
  add    %eax,%r12d
  mov    -0x60(%rbp),%rax
  add    $0x6c,%rax
  mov    (%rax),%eax
  test   %eax,%eax
  je     L368
  mov    -0x60(%rbp),%rax
  add    $0x6c,%rax
  mov    (%rax),%eax
  imul   $0x3997,%eax,%eax
  jmp    L2730
L368:
  mov    $0x0,%eax
L2730:
  add    %eax,%r12d
  mov    -0x60(%rbp),%rax
  add    $0x74,%rax
  mov    (%rax),%eax
  test   %eax,%eax
  je     L2961
  mov    -0x60(%rbp),%rax
  add    $0x74,%rax
  mov    (%rax),%eax
  imul   $0x267b,%eax,%eax
  jmp    L3238
L2961:
  mov    $0x0,%eax
L3238:
  add    %eax,%r12d
  mov    -0x60(%rbp),%rax
  add    $0x7c,%rax
  mov    (%rax),%eax
  test   %eax,%eax
  je     L763
  mov    -0x60(%rbp),%rax
  add    $0x7c,%rax
  mov    (%rax),%eax
  imul   $0xd83,%eax,%eax
  jmp    L2710
L763:
  mov    $0x0,%eax
L2710:
  add    %eax,%r12d
  cmpl   $0x0,-0x40(%rbp)
  je     L4397
  mov    -0x40(%rbp),%eax
  imul   $0x7d86,%eax,%eax
  jmp    L2840
L4397:
  mov    $0x0,%eax
L2840:
  mov    %eax,%r15d
  cmpl   $0x0,-0x3c(%rbp)
  je     L3637
  mov    -0x3c(%rbp),%eax
  imul   $0x6a6a,%eax,%eax
  jmp    L1741
L3637:
  mov    $0x0,%eax
L1741:
  add    %eax,%r15d
  cmpl   $0x0,-0x38(%rbp)
  je     L1433
  mov    -0x38(%rbp),%eax
  imul   $0x471a,%eax,%eax
  jmp    L2579
L1433:
  mov    $0x0,%eax
L2579:
  add    %eax,%r15d
  cmpl   $0x0,-0x34(%rbp)
  je     L4271
  mov    -0x34(%rbp),%eax
  imul   $0x18f8,%eax,%eax
  jmp    L3430
L4271:
  mov    $0x0,%eax
L3430:
  add    %eax,%r15d
  mov    -0x60(%rbp),%rax
  add    $0x28,%rax
  mov    (%rax),%eax
  test   %eax,%eax
  je     L1285
  mov    -0x60(%rbp),%rax
  add    $0x28,%rax
  mov    (%rax),%eax
  imul   $0x9a7e,%eax,%eax
  jmp    L805
L1285:
  mov    $0x0,%eax
L805:
  mov    %eax,%r14d
  mov    -0x60(%rbp),%rax
  add    $0x38,%rax
  mov    (%rax),%edx
  mov    -0x60(%rbp),%rax
  add    $0x68,%rax
  mov    (%rax),%eax
  add    %edx,%eax
  test   %eax,%eax
  je     L630
  mov    -0x60(%rbp),%rax
  add    $0x38,%rax
  mov    (%rax),%edx
  mov    -0x60(%rbp),%rax
  add    $0x68,%rax
  mov    (%rax),%eax
  add    %edx,%eax
  imul   $0x3ffe,%eax,%eax
  jmp    L734
L630:
  mov    $0x0,%eax
L734:
  add    %eax,%r14d
  mov    -0x60(%rbp),%rax
  add    $0x78,%rax
  mov    (%rax),%eax
  test   %eax,%eax
  je     L3565
  mov    -0x60(%rbp),%rax
  add    $0x78,%rax
  mov    (%rax),%eax
  imul   $0x1a81,%eax,%eax
  jmp    L817
L3565:
  mov    $0x0,%eax
L817:
  add    %eax,%r14d
  mov    -0x60(%rbp),%rax
  add    $0x20,%rax
  mov    (%rax),%edx
  mov    -0x60(%rbp),%rax
  add    $0x30,%rax
  mov    (%rax),%eax
  add    %edx,%eax
  test   %eax,%eax
  je     L1221
  mov    -0x60(%rbp),%rax
  add    $0x20,%rax
  mov    (%rax),%edx
  mov    -0x60(%rbp),%rax
  add    $0x30,%rax
  mov    (%rax),%eax
  add    %edx,%eax
  imul   $0x763e,%eax,%eax
  jmp    L3547
L1221:
  mov    $0x0,%eax
L3547:
  add    %eax,%r14d
  mov    -0x60(%rbp),%rax
  add    $0x60,%rax
  mov    (%rax),%edx
  mov    -0x60(%rbp),%rax
  add    $0x70,%rax
  mov    (%rax),%eax
  add    %edx,%eax
  test   %eax,%eax
  je     L695
  mov    -0x60(%rbp),%rax
  add    $0x60,%rax
  mov    (%rax),%edx
  mov    -0x60(%rbp),%rax
  add    $0x70,%rax
  mov    (%rax),%eax
  add    %edx,%eax
  imul   $0x30fa,%eax,%eax
  jmp    L1605
L695:
  mov    $0x0,%eax
L1605:
  add    %eax,%r14d
  lea    0x0(%r13,%r12,1),%eax
  add    %r15d,%eax
  add    %r14d,%eax
  sar    $0x11,%eax
  mov    %eax,%ebx
  mov    %ebx,%eax
  mov    $0x0,%al
  test   %eax,%eax
  je     L4210
  test   %ebx,%ebx
  jns    L3530
  mov    $0x0,%eax
  jmp    L1937
L3530:
  mov    $0xffffffff,%eax
  jmp    L1937
L4210:
  mov    %ebx,%eax
L1937:
  mov    -0x68(%rbp),%rdx
  mov    %al,(%rdx)
  mov    %r13d,%eax
  sub    %r12d,%eax
  sub    %r15d,%eax
  add    %r14d,%eax
  sub    -0x54(%rbp),%eax
  sub    -0x4c(%rbp),%eax
  sar    $0x11,%eax
  mov    %eax,%ebx
  mov    %ebx,%eax
  mov    $0x0,%al
  test   %eax,%eax
  je     L749
  test   %ebx,%ebx
  jns    L1192
  mov    $0x0,%eax
  jmp    L2057
L1192:
  mov    $0xffffffff,%eax
  jmp    L2057
L749:
  mov    %ebx,%eax
L2057:
  mov    -0x68(%rbp),%rdx
  add    $0x7,%rdx
  mov    %al,(%rdx)
  mov    %r13d,%eax
  sub    %r12d,%eax
  add    %r15d,%eax
  sub    %r14d,%eax
  sub    -0x50(%rbp),%eax
  sub    -0x4c(%rbp),%eax
  sar    $0x11,%eax
  mov    %eax,%ebx
  mov    %ebx,%eax
  mov    $0x0,%al
  test   %eax,%eax
  je     L4181
  test   %ebx,%ebx
  jns    L2898
  mov    $0x0,%eax
  jmp    L1801
L2898:
  mov    $0xffffffff,%eax
  jmp    L1801
L4181:
  mov    %ebx,%eax
L1801:
  mov    -0x68(%rbp),%rdx
  add    $0x18,%rdx
  mov    %al,(%rdx)
  lea    0x0(%r13,%r12,1),%eax
  sub    %r15d,%eax
  sub    %r14d,%eax
  sub    -0x54(%rbp),%eax
  sub    -0x50(%rbp),%eax
  sub    -0x4c(%rbp),%eax
  sar    $0x11,%eax
  mov    %eax,%ebx
  mov    %ebx,%eax
  mov    $0x0,%al
  test   %eax,%eax
  je     L3467
  test   %ebx,%ebx
  jns    L1512
  mov    $0x0,%eax
  jmp    L1753
L1512:
  mov    $0xffffffff,%eax
  jmp    L1753
L3467:
  mov    %ebx,%eax
L1753:
  mov    -0x68(%rbp),%rdx
  add    $0x1f,%rdx
  mov    %al,(%rdx)
  mov    $0x1000000,%r13d
  mov    -0x60(%rbp),%rax
  mov    (%rax),%eax
  mov    -0x60(%rbp),%rdx
  add    $0x10,%rdx
  mov    (%rdx),%edx
  sub    %edx,%eax
  mov    %eax,%ecx
  mov    -0x60(%rbp),%rax
  add    $0x40,%rax
  mov    (%rax),%eax
  lea    (%rcx,%rax,1),%edx
  mov    -0x60(%rbp),%rax
  add    $0x50,%rax
  mov    (%rax),%eax
  sub    %eax,%edx
  add    %edx,%r13d
  cmpl   $0x0,-0x48(%rbp)
  je     L3708
  mov    -0x48(%rbp),%eax
  imul   $0x30fa,%eax,%eax
  jmp    L3338
L3708:
  mov    $0x0,%eax
L3338:
  add    %eax,%r13d
  cmpl   $0x0,-0x44(%rbp)
  je     L1164
  mov    -0x44(%rbp),%eax
  imul   $0x763e,%eax,%eax
  jmp    L1315
L1164:
  mov    $0x0,%eax
L1315:
  sub    %eax,%r13d
  mov    -0x60(%rbp),%rax
  add    $0x24,%rax
  mov    (%rax),%eax
  test   %eax,%eax
  je     L3503
  mov    -0x60(%rbp),%rax
  add    $0x24,%rax
  mov    (%rax),%eax
  imul   $0x8b0a,%eax,%eax
  jmp    L2600
L3503:
  mov    $0x0,%eax
L2600:
  mov    %eax,%r12d
  mov    -0x60(%rbp),%rax
  add    $0x2c,%rax
  mov    (%rax),%eax
  test   %eax,%eax
  je     L1736
  mov    -0x60(%rbp),%rax
  add    $0x2c,%rax
  mov    (%rax),%eax
  imul   $0x209f,%eax,%eax
  jmp    L4293
L1736:
  mov    $0x0,%eax
L4293:
  sub    %eax,%r12d
  mov    -0x60(%rbp),%rax
  add    $0x34,%rax
  mov    (%rax),%eax
  test   %eax,%eax
  je     L4315
  mov    -0x60(%rbp),%rax
  add    $0x34,%rax
  mov    (%rax),%eax
  imul   $0xa402,%eax,%eax
  jmp    L3051
L4315:
  mov    $0x0,%eax
L3051:
  sub    %eax,%r12d
  mov    -0x60(%rbp),%rax
  add    $0x3c,%rax
  mov    (%rax),%eax
  test   %eax,%eax
  je     L329
  mov    -0x60(%rbp),%rax
  add    $0x3c,%rax
  mov    (%rax),%eax
  imul   $0x5ce7,%eax,%eax
  jmp    L3622
L329:
  mov    $0x0,%eax
L3622:
  sub    %eax,%r12d
  mov    -0x60(%rbp),%rax
  add    $0x64,%rax
  mov    (%rax),%eax
  test   %eax,%eax
  je     L276
  mov    -0x60(%rbp),%rax
  add    $0x64,%rax
  mov    (%rax),%eax
  imul   $0x3997,%eax,%eax
  jmp    L1782
L276:
  mov    $0x0,%eax
L1782:
  sub    %eax,%r12d
  mov    -0x60(%rbp),%rax
  add    $0x6c,%rax
  mov    (%rax),%eax
  test   %eax,%eax
  je     L3629
  mov    -0x60(%rbp),%rax
  add    $0x6c,%rax
  mov    (%rax),%eax
  imul   $0xd83,%eax,%eax
  jmp    L2451
L3629:
  mov    $0x0,%eax
L2451:
  sub    %eax,%r12d
  mov    -0x60(%rbp),%rax
  add    $0x74,%rax
  mov    (%rax),%eax
  test   %eax,%eax
  je     L2430
  mov    -0x60(%rbp),%rax
  add    $0x74,%rax
  mov    (%rax),%eax
  imul   $0x43ef,%eax,%eax
  jmp    L1142
L2430:
  mov    $0x0,%eax
L1142:
  sub    %eax,%r12d
  mov    -0x60(%rbp),%rax
  add    $0x7c,%rax
  mov    (%rax),%eax
  test   %eax,%eax
  je     L4288
  mov    -0x60(%rbp),%rax
  add    $0x7c,%rax
  mov    (%rax),%eax
  imul   $0x267b,%eax,%eax
  jmp    L3409
L4288:
  mov    $0x0,%eax
L3409:
  sub    %eax,%r12d
  cmpl   $0x0,-0x40(%rbp)
  je     L4194
  mov    -0x40(%rbp),%eax
  imul   $0x6a6a,%eax,%eax
  jmp    L1042
L4194:
  mov    $0x0,%eax
L1042:
  mov    %eax,%r15d
  cmpl   $0x0,-0x3c(%rbp)
  je     L1510
  mov    -0x3c(%rbp),%eax
  imul   $0x18f8,%eax,%eax
  jmp    L3825
L1510:
  mov    $0x0,%eax
L3825:
  sub    %eax,%r15d
  cmpl   $0x0,-0x38(%rbp)
  je     L1927
  mov    -0x38(%rbp),%eax
  imul   $0x7d86,%eax,%eax
  jmp    L2395
L1927:
  mov    $0x0,%eax
L2395:
  sub    %eax,%r15d
  cmpl   $0x0,-0x34(%rbp)
  je     L3194
  mov    -0x34(%rbp),%eax
  imul   $0x471a,%eax,%eax
  jmp    L2948
L3194:
  mov    $0x0,%eax
L2948:
  sub    %eax,%r15d
  mov    -0x60(%rbp),%rax
  add    $0x28,%rax
  mov    (%rax),%edx
  mov    -0x60(%rbp),%rax
  add    $0x78,%rax
  mov    (%rax),%eax
  cmp    %eax,%edx
  je     L523
  mov    -0x60(%rbp),%rax
  add    $0x28,%rax
  mov    (%rax),%eax
  mov    -0x60(%rbp),%rdx
  add    $0x78,%rdx
  mov    (%rdx),%edx
  sub    %edx,%eax
  imul   $0x3ffe,%eax,%eax
  jmp    L82
L523:
  mov    $0x0,%eax
L82:
  mov    %eax,%r14d
  mov    -0x60(%rbp),%rax
  add    $0x38,%rax
  mov    (%rax),%eax
  test   %eax,%eax
  je     L715
  mov    -0x60(%rbp),%rax
  add    $0x38,%rax
  mov    (%rax),%eax
  imul   $0x9a7e,%eax,%eax
  jmp    L1240
L715:
  mov    $0x0,%eax
L1240:
  sub    %eax,%r14d
  mov    -0x60(%rbp),%rax
  add    $0x68,%rax
  mov    (%rax),%eax
  test   %eax,%eax
  je     L3037
  mov    -0x60(%rbp),%rax
  add    $0x68,%rax
  mov    (%rax),%eax
  imul   $0x1a81,%eax,%eax
  jmp    L1837
L3037:
  mov    $0x0,%eax
L1837:
  add    %eax,%r14d
  mov    -0x60(%rbp),%rax
  add    $0x60,%rax
  mov    (%rax),%edx
  mov    -0x60(%rbp),%rax
  add    $0x70,%rax
  mov    (%rax),%eax
  cmp    %eax,%edx
  je     L3427
  mov    -0x60(%rbp),%rax
  add    $0x60,%rax
  mov    (%rax),%eax
  mov    -0x60(%rbp),%rdx
  add    $0x70,%rdx
  mov    (%rdx),%edx
  sub    %edx,%eax
  imul   $0x30fa,%eax,%eax
  jmp    L712
L3427:
  mov    $0x0,%eax
L712:
  add    %eax,%r14d
  mov    -0x60(%rbp),%rax
  add    $0x20,%rax
  mov    (%rax),%edx
  mov    -0x60(%rbp),%rax
  add    $0x30,%rax
  mov    (%rax),%eax
  cmp    %eax,%edx
  je     L264
  mov    -0x60(%rbp),%rax
  add    $0x20,%rax
  mov    (%rax),%eax
  mov    -0x60(%rbp),%rdx
  add    $0x30,%rdx
  mov    (%rdx),%edx
  sub    %edx,%eax
  imul   $0x763e,%eax,%eax
  jmp    L2284
L264:
  mov    $0x0,%eax
L2284:
  add    %eax,%r14d
  lea    0x0(%r13,%r12,1),%eax
  add    %r15d,%eax
  lea    (%r14,%rax,1),%edx
  mov    -0x54(%rbp),%eax
  add    %eax,%edx
  mov    -0x4c(%rbp),%eax
  add    %edx,%eax
  sar    $0x11,%eax
  mov    %eax,%ebx
  mov    %ebx,%eax
  mov    $0x0,%al
  test   %eax,%eax
  je     L2893
  test   %ebx,%ebx
  jns    L2304
  mov    $0x0,%eax
  jmp    L1902
L2304:
  mov    $0xffffffff,%eax
  jmp    L1902
L2893:
  mov    %ebx,%eax
L1902:
  mov    -0x68(%rbp),%rdx
  add    $0x1,%rdx
  mov    %al,(%rdx)
  mov    %r13d,%eax
  sub    %r12d,%eax
  sub    %r15d,%eax
  add    %r14d,%eax
  sar    $0x11,%eax
  mov    %eax,%ebx
  mov    %ebx,%eax
  mov    $0x0,%al
  test   %eax,%eax
  je     L4398
  test   %ebx,%ebx
  jns    L1347
  mov    $0x0,%eax
  jmp    L3938
L1347:
  mov    $0xffffffff,%eax
  jmp    L3938
L4398:
  mov    %ebx,%eax
L3938:
  mov    -0x68(%rbp),%rdx
  add    $0x6,%rdx
  mov    %al,(%rdx)
  mov    %r13d,%eax
  sub    %r12d,%eax
  add    %r15d,%eax
  sub    %r14d,%eax
  mov    %eax,%edx
  mov    -0x54(%rbp),%eax
  add    %edx,%eax
  sub    -0x50(%rbp),%eax
  mov    %eax,%edx
  mov    -0x4c(%rbp),%eax
  add    %edx,%eax
  sar    $0x11,%eax
  mov    %eax,%ebx
  mov    %ebx,%eax
  mov    $0x0,%al
  test   %eax,%eax
  je     L2491
  test   %ebx,%ebx
  jns    L2045
  mov    $0x0,%eax
  jmp    L3059
L2045:
  mov    $0xffffffff,%eax
  jmp    L3059
L2491:
  mov    %ebx,%eax
L3059:
  mov    -0x68(%rbp),%rdx
  add    $0x19,%rdx
  mov    %al,(%rdx)
  lea    0x0(%r13,%r12,1),%eax
  sub    %r15d,%eax
  sub    %r14d,%eax
  mov    %eax,%edx
  mov    -0x4c(%rbp),%eax
  add    %edx,%eax
  sar    $0x11,%eax
  mov    %eax,%ebx
  mov    %ebx,%eax
  mov    $0x0,%al
  test   %eax,%eax
  je     L1209
  test   %ebx,%ebx
  jns    L668
  mov    $0x0,%eax
  jmp    L2750
L668:
  mov    $0xffffffff,%eax
  jmp    L2750
L1209:
  mov    %ebx,%eax
L2750:
  mov    -0x68(%rbp),%rdx
  add    $0x1e,%rdx
  mov    %al,(%rdx)
  mov    $0x1000000,%r13d
  mov    -0x60(%rbp),%rax
  mov    (%rax),%eax
  mov    -0x60(%rbp),%rdx
  add    $0x10,%rdx
  mov    (%rdx),%edx
  sub    %edx,%eax
  mov    %eax,%ecx
  mov    -0x60(%rbp),%rax
  add    $0x40,%rax
  mov    (%rax),%eax
  lea    (%rcx,%rax,1),%edx
  mov    -0x60(%rbp),%rax
  add    $0x50,%rax
  mov    (%rax),%eax
  sub    %eax,%edx
  add    %edx,%r13d
  cmpl   $0x0,-0x48(%rbp)
  je     L929
  mov    -0x48(%rbp),%eax
  imul   $0x30fa,%eax,%eax
  jmp    L2392
L929:
  mov    $0x0,%eax
L2392:
  sub    %eax,%r13d
  cmpl   $0x0,-0x44(%rbp)
  je     L3586
  mov    -0x44(%rbp),%eax
  imul   $0x763e,%eax,%eax
  jmp    L1946
L3586:
  mov    $0x0,%eax
L1946:
  add    %eax,%r13d
  mov    -0x60(%rbp),%rax
  add    $0x24,%rax
  mov    (%rax),%eax
  test   %eax,%eax
  je     L880
  mov    -0x60(%rbp),%rax
  add    $0x24,%rax
  mov    (%rax),%eax
  imul   $0x5ce7,%eax,%eax
  jmp    L3695
L880:
  mov    $0x0,%eax
L3695:
  mov    %eax,%r12d
  mov    -0x60(%rbp),%rax
  add    $0x2c,%rax
  mov    (%rax),%eax
  test   %eax,%eax
  je     L1239
  mov    -0x60(%rbp),%rax
  add    $0x2c,%rax
  mov    (%rax),%eax
  imul   $0xa402,%eax,%eax
  jmp    L2666
L1239:
  mov    $0x0,%eax
L2666:
  sub    %eax,%r12d
  mov    -0x60(%rbp),%rax
  add    $0x34,%rax
  mov    (%rax),%eax
  test   %eax,%eax
  je     L427
  mov    -0x60(%rbp),%rax
  add    $0x34,%rax
  mov    (%rax),%eax
  imul   $0x209f,%eax,%eax
  jmp    L3876
L427:
  mov    $0x0,%eax
L3876:
  add    %eax,%r12d
  mov    -0x60(%rbp),%rax
  add    $0x3c,%rax
  mov    (%rax),%eax
  test   %eax,%eax
  je     L4079
  mov    -0x60(%rbp),%rax
  add    $0x3c,%rax
  mov    (%rax),%eax
  imul   $0x8b0a,%eax,%eax
  jmp    L3707
L4079:
  mov    $0x0,%eax
L3707:
  add    %eax,%r12d
  mov    -0x60(%rbp),%rax
  add    $0x64,%rax
  mov    (%rax),%eax
  test   %eax,%eax
  je     L3563
  mov    -0x60(%rbp),%rax
  add    $0x64,%rax
  mov    (%rax),%eax
  imul   $0x267b,%eax,%eax
  jmp    L4037
L3563:
  mov    $0x0,%eax
L4037:
  add    %eax,%r12d
  mov    -0x60(%rbp),%rax
  add    $0x6c,%rax
  mov    (%rax),%eax
  test   %eax,%eax
  je     L748
  mov    -0x60(%rbp),%rax
  add    $0x6c,%rax
  mov    (%rax),%eax
  imul   $0x43ef,%eax,%eax
  jmp    L120
L748:
  mov    $0x0,%eax
L120:
  sub    %eax,%r12d
  mov    -0x60(%rbp),%rax
  add    $0x74,%rax
  mov    (%rax),%eax
  test   %eax,%eax
  je     L1393
  mov    -0x60(%rbp),%rax
  add    $0x74,%rax
  mov    (%rax),%eax
  imul   $0xd83,%eax,%eax
  jmp    L45
L1393:
  mov    $0x0,%eax
L45:
  add    %eax,%r12d
  mov    -0x60(%rbp),%rax
  add    $0x7c,%rax
  mov    (%rax),%eax
  test   %eax,%eax
  je     L1430
  mov    -0x60(%rbp),%rax
  add    $0x7c,%rax
  mov    (%rax),%eax
  imul   $0x3997,%eax,%eax
  jmp    L1648
L1430:
  mov    $0x0,%eax
L1648:
  add    %eax,%r12d
  cmpl   $0x0,-0x40(%rbp)
  je     L3087
  mov    -0x40(%rbp),%eax
  imul   $0x471a,%eax,%eax
  jmp    L4221
L3087:
  mov    $0x0,%eax
L4221:
  mov    %eax,%r15d
  cmpl   $0x0,-0x3c(%rbp)
  je     L3878
  mov    -0x3c(%rbp),%eax
  imul   $0x7d86,%eax,%eax
  jmp    L927
L3878:
  mov    $0x0,%eax
L927:
  sub    %eax,%r15d
  cmpl   $0x0,-0x38(%rbp)
  je     L905
  mov    -0x38(%rbp),%eax
  imul   $0x18f8,%eax,%eax
  jmp    L1983
L905:
  mov    $0x0,%eax
L1983:
  add    %eax,%r15d
  cmpl   $0x0,-0x34(%rbp)
  je     L151
  mov    -0x34(%rbp),%eax
  imul   $0x6a6a,%eax,%eax
  jmp    L3366
L151:
  mov    $0x0,%eax
L3366:
  add    %eax,%r15d
  mov    -0x60(%rbp),%rax
  add    $0x28,%rax
  mov    (%rax),%edx
  mov    -0x60(%rbp),%rax
  add    $0x78,%rax
  mov    (%rax),%eax
  cmp    %eax,%edx
  je     L672
  mov    -0x60(%rbp),%rax
  add    $0x28,%rax
  mov    (%rax),%eax
  mov    -0x60(%rbp),%rdx
  add    $0x78,%rdx
  mov    (%rdx),%ecx
  sub    %ecx,%eax
  mov    %eax,%edx
  mov    %edx,%eax
  shl    $0xd,%edx
  sub    %edx,%eax
  add    %eax,%eax
  jmp    L854
L672:
  mov    $0x0,%eax
L854:
  mov    %eax,%r14d
  mov    -0x60(%rbp),%rax
  add    $0x38,%rax
  mov    (%rax),%eax
  test   %eax,%eax
  je     L4297
  mov    -0x60(%rbp),%rax
  add    $0x38,%rax
  mov    (%rax),%eax
  imul   $0x9a7e,%eax,%eax
  jmp    L3376
L4297:
  mov    $0x0,%eax
L3376:
  add    %eax,%r14d
  mov    -0x60(%rbp),%rax
  add    $0x68,%rax
  mov    (%rax),%eax
  test   %eax,%eax
  je     L671
  mov    -0x60(%rbp),%rax
  add    $0x68,%rax
  mov    (%rax),%eax
  imul   $0x1a81,%eax,%eax
  jmp    L4226
L671:
  mov    $0x0,%eax
L4226:
  sub    %eax,%r14d
  mov    -0x60(%rbp),%rax
  add    $0x60,%rax
  mov    (%rax),%edx
  mov    -0x60(%rbp),%rax
  add    $0x70,%rax
  mov    (%rax),%eax
  cmp    %eax,%edx
  je     L2075
  mov    -0x60(%rbp),%rax
  add    $0x60,%rax
  mov    (%rax),%eax
  mov    -0x60(%rbp),%rdx
  add    $0x70,%rdx
  mov    (%rdx),%edx
  sub    %edx,%eax
  imul   $0x30fa,%eax,%eax
  jmp    L155
L2075:
  mov    $0x0,%eax
L155:
  add    %eax,%r14d
  mov    -0x60(%rbp),%rax
  add    $0x20,%rax
  mov    (%rax),%edx
  mov    -0x60(%rbp),%rax
  add    $0x30,%rax
  mov    (%rax),%eax
  cmp    %eax,%edx
  je     L1906
  mov    -0x60(%rbp),%rax
  add    $0x20,%rax
  mov    (%rax),%eax
  mov    -0x60(%rbp),%rdx
  add    $0x30,%rdx
  mov    (%rdx),%edx
  sub    %edx,%eax
  imul   $0x763e,%eax,%eax
  jmp    L2427
L1906:
  mov    $0x0,%eax
L2427:
  add    %eax,%r14d
  lea    0x0(%r13,%r12,1),%eax
  add    %r15d,%eax
  add    %r14d,%eax
  sar    $0x11,%eax
  mov    %eax,%ebx
  mov    %ebx,%eax
  mov    $0x0,%al
  test   %eax,%eax
  je     L2933
  test   %ebx,%ebx
  jns    L1087
  mov    $0x0,%eax
  jmp    L1088
L1087:
  mov    $0xffffffff,%eax
  jmp    L1088
L2933:
  mov    %ebx,%eax
L1088:
  mov    -0x68(%rbp),%rdx
  add    $0x2,%rdx
  mov    %al,(%rdx)
  mov    %r13d,%eax
  sub    %r12d,%eax
  sub    %r15d,%eax
  add    %r14d,%eax
  sar    $0x11,%eax
  mov    %eax,%ebx
  mov    %ebx,%eax
  mov    $0x0,%al
  test   %eax,%eax
  je     L1050
  test   %ebx,%ebx
  jns    L1624
  mov    $0x0,%eax
  jmp    L3767
L1624:
  mov    $0xffffffff,%eax
  jmp    L3767
L1050:
  mov    %ebx,%eax
L3767:
  mov    -0x68(%rbp),%rdx
  add    $0x5,%rdx
  mov    %al,(%rdx)
  mov    %r13d,%eax
  sub    %r12d,%eax
  add    %r15d,%eax
  sub    %r14d,%eax
  sub    -0x50(%rbp),%eax
  sar    $0x11,%eax
  mov    %eax,%ebx
  mov    %ebx,%eax
  mov    $0x0,%al
  test   %eax,%eax
  je     L11
  test   %ebx,%ebx
  jns    L3915
  mov    $0x0,%eax
  jmp    L782
L3915:
  mov    $0xffffffff,%eax
  jmp    L782
L11:
  mov    %ebx,%eax
L782:
  mov    -0x68(%rbp),%rdx
  add    $0x1a,%rdx
  mov    %al,(%rdx)
  lea    0x0(%r13,%r12,1),%eax
  sub    %r15d,%eax
  sub    %r14d,%eax
  mov    %eax,%edx
  mov    -0x54(%rbp),%eax
  add    %edx,%eax
  sub    -0x50(%rbp),%eax
  mov    %eax,%edx
  mov    -0x4c(%rbp),%eax
  add    %edx,%eax
  sar    $0x11,%eax
  mov    %eax,%ebx
  mov    %ebx,%eax
  mov    $0x0,%al
  test   %eax,%eax
  je     L3172
  test   %ebx,%ebx
  jns    L3989
  mov    $0x0,%eax
  jmp    L992
L3989:
  mov    $0xffffffff,%eax
  jmp    L992
L3172:
  mov    %ebx,%eax
L992:
  mov    -0x68(%rbp),%rdx
  add    $0x1d,%rdx
  mov    %al,(%rdx)
  mov    $0x1000000,%r13d
  mov    -0x60(%rbp),%rax
  mov    (%rax),%edx
  mov    -0x60(%rbp),%rax
  add    $0x10,%rax
  mov    (%rax),%eax
  add    %eax,%edx
  mov    -0x60(%rbp),%rax
  add    $0x40,%rax
  mov    (%rax),%eax
  add    %eax,%edx
  mov    -0x60(%rbp),%rax
  add    $0x50,%rax
  mov    (%rax),%eax
  add    %edx,%eax
  add    %eax,%r13d
  cmpl   $0x0,-0x48(%rbp)
  je     L1251
  mov    -0x48(%rbp),%eax
  imul   $0x763e,%eax,%eax
  jmp    L4095
L1251:
  mov    $0x0,%eax
L4095:
  sub    %eax,%r13d
  cmpl   $0x0,-0x44(%rbp)
  je     L635
  mov    -0x44(%rbp),%eax
  imul   $0x30fa,%eax,%eax
  jmp    L2453
L635:
  mov    $0x0,%eax
L2453:
  sub    %eax,%r13d
  mov    -0x60(%rbp),%rax
  add    $0x24,%rax
  mov    (%rax),%eax
  test   %eax,%eax
  je     L2752
  mov    -0x60(%rbp),%rax
  add    $0x24,%rax
  mov    (%rax),%eax
  imul   $0x209f,%eax,%eax
  jmp    L4209
L2752:
  mov    $0x0,%eax
L4209:
  mov    %eax,%r12d
  mov    -0x60(%rbp),%rax
  add    $0x2c,%rax
  mov    (%rax),%eax
  test   %eax,%eax
  je     L2632
  mov    -0x60(%rbp),%rax
  add    $0x2c,%rax
  mov    (%rax),%eax
  imul   $0x5ce7,%eax,%eax
  jmp    L1635
L2632:
  mov    $0x0,%eax
L1635:
  sub    %eax,%r12d
  mov    -0x60(%rbp),%rax
  add    $0x34,%rax
  mov    (%rax),%eax
  test   %eax,%eax
  je     L1931
  mov    -0x60(%rbp),%rax
  add    $0x34,%rax
  mov    (%rax),%eax
  imul   $0x8b0a,%eax,%eax
  jmp    L1479
L1931:
  mov    $0x0,%eax
L1479:
  add    %eax,%r12d
  mov    -0x60(%rbp),%rax
  add    $0x64,%rax
  mov    (%rax),%eax
  test   %eax,%eax
  je     L3512
  mov    -0x60(%rbp),%rax
  add    $0x64,%rax
  mov    (%rax),%eax
  imul   $0xd83,%eax,%eax
  jmp    L3651
L3512:
  mov    $0x0,%eax
L3651:
  add    %eax,%r12d
  mov    -0x60(%rbp),%rax
  add    $0x6c,%rax
  mov    (%rax),%eax
  test   %eax,%eax
  je     L2954
  mov    -0x60(%rbp),%rax
  add    $0x6c,%rax
  mov    (%rax),%eax
  imul   $0x267b,%eax,%eax
  jmp    L3872
L2954:
  mov    $0x0,%eax
L3872:
  sub    %eax,%r12d
  mov    -0x60(%rbp),%rax
  add    $0x74,%rax
  mov    (%rax),%eax
  test   %eax,%eax
  je     L1970
  mov    -0x60(%rbp),%rax
  add    $0x74,%rax
  mov    (%rax),%eax
  imul   $0x3997,%eax,%eax
  jmp    L890
L1970:
  mov    $0x0,%eax
L890:
  add    %eax,%r12d
  cmpl   $0x0,-0x40(%rbp)
  je     L3646
  mov    -0x40(%rbp),%eax
  imul   $0x18f8,%eax,%eax
  jmp    L1593
L3646:
  mov    $0x0,%eax
L1593:
  mov    %eax,%r15d
  cmpl   $0x0,-0x3c(%rbp)
  je     L4058
  mov    -0x3c(%rbp),%eax
  imul   $0x471a,%eax,%eax
  jmp    L1045
L4058:
  mov    $0x0,%eax
L1045:
  sub    %eax,%r15d
  cmpl   $0x0,-0x38(%rbp)
  je     L1004
  mov    -0x38(%rbp),%eax
  imul   $0x6a6a,%eax,%eax
  jmp    L1713
L1004:
  mov    $0x0,%eax
L1713:
  add    %eax,%r15d
  mov    -0x60(%rbp),%rax
  add    $0x28,%rax
  mov    (%rax),%eax
  test   %eax,%eax
  je     L1179
  mov    -0x60(%rbp),%rax
  add    $0x28,%rax
  mov    (%rax),%eax
  imul   $0xffff6582,%eax,%eax
  jmp    L3050
L1179:
  mov    $0x0,%eax
L3050:
  mov    %eax,%r14d
  mov    -0x60(%rbp),%rax
  add    $0x38,%rax
  mov    (%rax),%edx
  mov    -0x60(%rbp),%rax
  add    $0x68,%rax
  mov    (%rax),%eax
  add    %edx,%eax
  test   %eax,%eax
  je     L1865
  mov    -0x60(%rbp),%rax
  add    $0x38,%rax
  mov    (%rax),%edx
  mov    -0x60(%rbp),%rax
  add    $0x68,%rax
  mov    (%rax),%eax
  add    %edx,%eax
  imul   $0x3ffe,%eax,%eax
  jmp    L1566
L1865:
  mov    $0x0,%eax
L1566:
  add    %eax,%r14d
  mov    -0x60(%rbp),%rax
  add    $0x78,%rax
  mov    (%rax),%eax
  test   %eax,%eax
  je     L3389
  mov    -0x60(%rbp),%rax
  add    $0x78,%rax
  mov    (%rax),%eax
  imul   $0x1a81,%eax,%eax
  jmp    L1620
L3389:
  mov    $0x0,%eax
L1620:
  sub    %eax,%r14d
  mov    -0x60(%rbp),%rax
  add    $0x20,%rax
  mov    (%rax),%edx
  mov    -0x60(%rbp),%rax
  add    $0x30,%rax
  mov    (%rax),%eax
  add    %edx,%eax
  test   %eax,%eax
  je     L1636
  mov    -0x60(%rbp),%rax
  add    $0x20,%rax
  mov    (%rax),%edx
  mov    -0x60(%rbp),%rax
  add    $0x30,%rax
  mov    (%rax),%eax
  add    %edx,%eax
  imul   $0x763e,%eax,%eax
  jmp    L10
L1636:
  mov    $0x0,%eax
L10:
  add    %eax,%r14d
  mov    -0x60(%rbp),%rax
  add    $0x60,%rax
  mov    (%rax),%edx
  mov    -0x60(%rbp),%rax
  add    $0x70,%rax
  mov    (%rax),%eax
  add    %edx,%eax
  test   %eax,%eax
  je     L4380
  mov    -0x60(%rbp),%rax
  add    $0x60,%rax
  mov    (%rax),%edx
  mov    -0x60(%rbp),%rax
  add    $0x70,%rax
  mov    (%rax),%eax
  add    %edx,%eax
  imul   $0x30fa,%eax,%eax
  jmp    L1697
L4380:
  mov    $0x0,%eax
L1697:
  add    %eax,%r14d
  cmpl   $0x0,-0x34(%rbp)
  je     L1923
  mov    -0x34(%rbp),%eax
  imul   $0x7d86,%eax,%eax
  jmp    L4253
L1923:
  mov    $0x0,%eax
L4253:
  mov    %eax,-0x30(%rbp)
  mov    -0x60(%rbp),%rax
  add    $0x3c,%rax
  mov    (%rax),%eax
  test   %eax,%eax
  je     L2104
  mov    -0x60(%rbp),%rax
  add    $0x3c,%rax
  mov    (%rax),%eax
  imul   $0xa402,%eax,%edx
  jmp    L861
L2104:
  mov    $0x0,%edx
L861:
  mov    -0x60(%rbp),%rax
  add    $0x7c,%rax
  mov    (%rax),%eax
  test   %eax,%eax
  je     L3671
  mov    -0x60(%rbp),%rax
  add    $0x7c,%rax
  mov    (%rax),%eax
  imul   $0x43ef,%eax,%eax
  jmp    L323
L3671:
  mov    $0x0,%eax
L323:
  add    %edx,%eax
  mov    %eax,-0x2c(%rbp)
  lea    0x0(%r13,%r12,1),%eax
  add    %r15d,%eax
  add    %r14d,%eax
  sub    -0x30(%rbp),%eax
  sub    -0x2c(%rbp),%eax
  sub    -0x54(%rbp),%eax
  sub    -0x4c(%rbp),%eax
  sar    $0x11,%eax
  mov    %eax,%ebx
  mov    %ebx,%eax
  mov    $0x0,%al
  test   %eax,%eax
  je     L526
  test   %ebx,%ebx
  jns    L1082
  mov    $0x0,%eax
  jmp    L2797
L1082:
  mov    $0xffffffff,%eax
  jmp    L2797
L526:
  mov    %ebx,%eax
L2797:
  mov    -0x68(%rbp),%rdx
  add    $0x3,%rdx
  mov    %al,(%rdx)
  mov    %r13d,%eax
  sub    %r12d,%eax
  sub    %r15d,%eax
  add    %r14d,%eax
  sar    $0x11,%eax
  mov    %eax,%ebx
  mov    %ebx,%eax
  mov    $0x0,%al
  test   %eax,%eax
  je     L1312
  test   %ebx,%ebx
  jns    L1463
  mov    $0x0,%eax
  jmp    L1204
L1463:
  mov    $0xffffffff,%eax
  jmp    L1204
L1312:
  mov    %ebx,%eax
L1204:
  mov    -0x68(%rbp),%rdx
  add    $0x4,%rdx
  mov    %al,(%rdx)
  mov    %r13d,%eax
  sub    %r12d,%eax
  add    %r15d,%eax
  sub    %r14d,%eax
  sub    -0x30(%rbp),%eax
  mov    %eax,%edx
  mov    -0x2c(%rbp),%eax
  add    %edx,%eax
  sar    $0x11,%eax
  mov    %eax,%ebx
  mov    %ebx,%eax
  mov    $0x0,%al
  test   %eax,%eax
  je     L3145
  test   %ebx,%ebx
  jns    L3579
  mov    $0x0,%eax
  jmp    L510
L3579:
  mov    $0xffffffff,%eax
  jmp    L510
L3145:
  mov    %ebx,%eax
L510:
  mov    -0x68(%rbp),%rdx
  add    $0x1b,%rdx
  mov    %al,(%rdx)
  lea    0x0(%r13,%r12,1),%eax
  sub    %r15d,%eax
  sub    %r14d,%eax
  sub    -0x50(%rbp),%eax
  sub    -0x4c(%rbp),%eax
  sar    $0x11,%eax
  mov    %eax,%ebx
  mov    %ebx,%eax
  mov    $0x0,%al
  test   %eax,%eax
  je     L379
  test   %ebx,%ebx
  jns    L2879
  mov    $0x0,%eax
  jmp    L3819
L2879:
  mov    $0xffffffff,%eax
  jmp    L3819
L379:
  mov    %ebx,%eax
L3819:
  mov    -0x68(%rbp),%rdx
  add    $0x1c,%rdx
  mov    %al,(%rdx)
  mov    -0x60(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%eax
  mov    -0x60(%rbp),%rdx
  add    $0x48,%rdx
  mov    (%rdx),%edx
  sub    %edx,%eax
  mov    %eax,-0x48(%rbp)
  mov    -0x60(%rbp),%rax
  add    $0x18,%rax
  mov    (%rax),%eax
  mov    -0x60(%rbp),%rdx
  add    $0x58,%rdx
  mov    (%rdx),%edx
  sub    %edx,%eax
  mov    %eax,-0x44(%rbp)
  mov    -0x60(%rbp),%rax
  add    $0x4,%rax
  mov    (%rax),%eax
  mov    -0x60(%rbp),%rdx
  add    $0x44,%rdx
  mov    (%rdx),%edx
  sub    %edx,%eax
  mov    %eax,-0x40(%rbp)
  mov    -0x60(%rbp),%rax
  add    $0xc,%rax
  mov    (%rax),%eax
  mov    -0x60(%rbp),%rdx
  add    $0x4c,%rdx
  mov    (%rdx),%edx
  sub    %edx,%eax
  mov    %eax,-0x3c(%rbp)
  mov    -0x60(%rbp),%rax
  add    $0x14,%rax
  mov    (%rax),%eax
  mov    -0x60(%rbp),%rdx
  add    $0x54,%rdx
  mov    (%rdx),%edx
  sub    %edx,%eax
  mov    %eax,-0x38(%rbp)
  mov    -0x60(%rbp),%rax
  add    $0x1c,%rax
  mov    (%rax),%eax
  mov    -0x60(%rbp),%rdx
  add    $0x5c,%rdx
  mov    (%rdx),%edx
  sub    %edx,%eax
  mov    %eax,-0x34(%rbp)
  mov    $0x1000000,%r13d
  mov    -0x60(%rbp),%rax
  mov    (%rax),%edx
  mov    -0x60(%rbp),%rax
  add    $0x10,%rax
  mov    (%rax),%eax
  add    %eax,%edx
  mov    -0x60(%rbp),%rax
  add    $0x40,%rax
  mov    (%rax),%eax
  sub    %eax,%edx
  mov    -0x60(%rbp),%rax
  add    $0x50,%rax
  mov    (%rax),%eax
  sub    %eax,%edx
  add    %edx,%r13d
  cmpl   $0x0,-0x48(%rbp)
  je     L1948
  mov    -0x48(%rbp),%eax
  imul   $0x763e,%eax,%eax
  jmp    L3688
L1948:
  mov    $0x0,%eax
L3688:
  add    %eax,%r13d
  cmpl   $0x0,-0x44(%rbp)
  je     L3760
  mov    -0x44(%rbp),%eax
  imul   $0x30fa,%eax,%eax
  jmp    L2025
L3760:
  mov    $0x0,%eax
L2025:
  add    %eax,%r13d
  mov    -0x60(%rbp),%rax
  add    $0x24,%rax
  mov    (%rax),%eax
  test   %eax,%eax
  je     L1422
  mov    -0x60(%rbp),%rax
  add    $0x24,%rax
  mov    (%rax),%eax
  imul   $0x43ef,%eax,%eax
  jmp    L122
L1422:
  mov    $0x0,%eax
L122:
  mov    %eax,%r12d
  mov    -0x60(%rbp),%rax
  add    $0x2c,%rax
  mov    (%rax),%eax
  test   %eax,%eax
  je     L2169
  mov    -0x60(%rbp),%rax
  add    $0x2c,%rax
  mov    (%rax),%eax
  imul   $0x3997,%eax,%eax
  jmp    L4172
L2169:
  mov    $0x0,%eax
L4172:
  add    %eax,%r12d
  mov    -0x60(%rbp),%rax
  add    $0x34,%rax
  mov    (%rax),%eax
  test   %eax,%eax
  je     L2576
  mov    -0x60(%rbp),%rax
  add    $0x34,%rax
  mov    (%rax),%eax
  imul   $0x267b,%eax,%eax
  jmp    L2413
L2576:
  mov    $0x0,%eax
L2413:
  add    %eax,%r12d
  mov    -0x60(%rbp),%rax
  add    $0x3c,%rax
  mov    (%rax),%eax
  test   %eax,%eax
  je     L4138
  mov    -0x60(%rbp),%rax
  add    $0x3c,%rax
  mov    (%rax),%eax
  imul   $0xd83,%eax,%eax
  jmp    L290
L4138:
  mov    $0x0,%eax
L290:
  add    %eax,%r12d
  mov    -0x60(%rbp),%rax
  add    $0x64,%rax
  mov    (%rax),%eax
  test   %eax,%eax
  je     L308
  mov    -0x60(%rbp),%rax
  add    $0x64,%rax
  mov    (%rax),%eax
  imul   $0xa402,%eax,%eax
  jmp    L1502
L308:
  mov    $0x0,%eax
L1502:
  sub    %eax,%r12d
  mov    -0x60(%rbp),%rax
  add    $0x6c,%rax
  mov    (%rax),%eax
  test   %eax,%eax
  je     L2857
  mov    -0x60(%rbp),%rax
  add    $0x6c,%rax
  mov    (%rax),%eax
  imul   $0x8b0a,%eax,%eax
  jmp    L518
L2857:
  mov    $0x0,%eax
L518:
  sub    %eax,%r12d
  mov    -0x60(%rbp),%rax
  add    $0x74,%rax
  mov    (%rax),%eax
  test   %eax,%eax
  je     L1623
  mov    -0x60(%rbp),%rax
  add    $0x74,%rax
  mov    (%rax),%eax
  imul   $0x5ce7,%eax,%eax
  jmp    L1967
L1623:
  mov    $0x0,%eax
L1967:
  sub    %eax,%r12d
  mov    -0x60(%rbp),%rax
  add    $0x7c,%rax
  mov    (%rax),%eax
  test   %eax,%eax
  je     L4090
  mov    -0x60(%rbp),%rax
  add    $0x7c,%rax
  mov    (%rax),%eax
  imul   $0x209f,%eax,%eax
  jmp    L3365
L4090:
  mov    $0x0,%eax
L3365:
  sub    %eax,%r12d
  cmpl   $0x0,-0x40(%rbp)
  je     L1676
  mov    -0x40(%rbp),%eax
  imul   $0x7d86,%eax,%eax
  jmp    L1296
L1676:
  mov    $0x0,%eax
L1296:
  mov    %eax,%r15d
  cmpl   $0x0,-0x3c(%rbp)
  je     L1790
  mov    -0x3c(%rbp),%eax
  imul   $0x6a6a,%eax,%eax
  jmp    L1024
L1790:
  mov    $0x0,%eax
L1024:
  add    %eax,%r15d
  cmpl   $0x0,-0x38(%rbp)
  je     L2588
  mov    -0x38(%rbp),%eax
  imul   $0x471a,%eax,%eax
  jmp    L388
L2588:
  mov    $0x0,%eax
L388:
  add    %eax,%r15d
  cmpl   $0x0,-0x34(%rbp)
  je     L1852
  mov    -0x34(%rbp),%eax
  imul   $0x18f8,%eax,%eax
  jmp    L1044
L1852:
  mov    $0x0,%eax
L1044:
  add    %eax,%r15d
  mov    -0x60(%rbp),%rax
  add    $0x28,%rax
  mov    (%rax),%edx
  mov    -0x60(%rbp),%rax
  add    $0x78,%rax
  mov    (%rax),%eax
  cmp    %eax,%edx
  je     L3817
  mov    -0x60(%rbp),%rax
  add    $0x28,%rax
  mov    (%rax),%eax
  mov    -0x60(%rbp),%rdx
  add    $0x78,%rdx
  mov    (%rdx),%edx
  sub    %edx,%eax
  imul   $0x3ffe,%eax,%eax
  jmp    L3714
L3817:
  mov    $0x0,%eax
L3714:
  mov    %eax,%r14d
  mov    -0x60(%rbp),%rax
  add    $0x38,%rax
  mov    (%rax),%eax
  test   %eax,%eax
  je     L2590
  mov    -0x60(%rbp),%rax
  add    $0x38,%rax
  mov    (%rax),%eax
  imul   $0x1a81,%eax,%eax
  jmp    L3874
L2590:
  mov    $0x0,%eax
L3874:
  add    %eax,%r14d
  mov    -0x60(%rbp),%rax
  add    $0x68,%rax
  mov    (%rax),%eax
  test   %eax,%eax
  je     L211
  mov    -0x60(%rbp),%rax
  add    $0x68,%rax
  mov    (%rax),%eax
  imul   $0x9a7e,%eax,%eax
  jmp    L366
L211:
  mov    $0x0,%eax
L366:
  sub    %eax,%r14d
  mov    -0x60(%rbp),%rax
  add    $0x60,%rax
  mov    (%rax),%edx
  mov    -0x60(%rbp),%rax
  add    $0x70,%rax
  mov    (%rax),%eax
  add    %edx,%eax
  test   %eax,%eax
  je     L445
  mov    -0x60(%rbp),%rax
  add    $0x60,%rax
  mov    (%rax),%edx
  mov    -0x60(%rbp),%rax
  add    $0x70,%rax
  mov    (%rax),%eax
  add    %edx,%eax
  imul   $0x763e,%eax,%eax
  jmp    L2822
L445:
  mov    $0x0,%eax
L2822:
  sub    %eax,%r14d
  mov    -0x60(%rbp),%rax
  add    $0x20,%rax
  mov    (%rax),%edx
  mov    -0x60(%rbp),%rax
  add    $0x30,%rax
  mov    (%rax),%eax
  add    %edx,%eax
  test   %eax,%eax
  je     L941
  mov    -0x60(%rbp),%rax
  add    $0x20,%rax
  mov    (%rax),%edx
  mov    -0x60(%rbp),%rax
  add    $0x30,%rax
  mov    (%rax),%eax
  add    %edx,%eax
  imul   $0x30fa,%eax,%eax
  jmp    L1212
L941:
  mov    $0x0,%eax
L1212:
  add    %eax,%r14d
  lea    0x0(%r13,%r12,1),%eax
  add    %r15d,%eax
  add    %r14d,%eax
  sar    $0x11,%eax
  mov    %eax,%ebx
  mov    %ebx,%eax
  mov    $0x0,%al
  test   %eax,%eax
  je     L4361
  test   %ebx,%ebx
  jns    L2509
  mov    $0x0,%eax
  jmp    L864
L2509:
  mov    $0xffffffff,%eax
  jmp    L864
L4361:
  mov    %ebx,%eax
L864:
  mov    -0x68(%rbp),%rdx
  add    $0x8,%rdx
  mov    %al,(%rdx)
  mov    %r13d,%eax
  sub    %r12d,%eax
  sub    %r15d,%eax
  add    %r14d,%eax
  sub    -0x54(%rbp),%eax
  mov    %eax,%edx
  mov    -0x50(%rbp),%eax
  add    %eax,%edx
  mov    -0x4c(%rbp),%eax
  add    %edx,%eax
  sar    $0x11,%eax
  mov    %eax,%ebx
  mov    %ebx,%eax
  mov    $0x0,%al
  test   %eax,%eax
  je     L2671
  test   %ebx,%ebx
  jns    L133
  mov    $0x0,%eax
  jmp    L2856
L133:
  mov    $0xffffffff,%eax
  jmp    L2856
L2671:
  mov    %ebx,%eax
L2856:
  mov    -0x68(%rbp),%rdx
  add    $0xf,%rdx
  mov    %al,(%rdx)
  mov    %r13d,%eax
  sub    %r12d,%eax
  add    %r15d,%eax
  sub    %r14d,%eax
  sar    $0x11,%eax
  mov    %eax,%ebx
  mov    %ebx,%eax
  mov    $0x0,%al
  test   %eax,%eax
  je     L5
  test   %ebx,%ebx
  jns    L3734
  mov    $0x0,%eax
  jmp    L455
L3734:
  mov    $0xffffffff,%eax
  jmp    L455
L5:
  mov    %ebx,%eax
L455:
  mov    -0x68(%rbp),%rdx
  add    $0x10,%rdx
  mov    %al,(%rdx)
  lea    0x0(%r13,%r12,1),%eax
  sub    %r15d,%eax
  sub    %r14d,%eax
  sub    -0x54(%rbp),%eax
  mov    %eax,%edx
  mov    -0x4c(%rbp),%eax
  add    %edx,%eax
  sar    $0x11,%eax
  mov    %eax,%ebx
  mov    %ebx,%eax
  mov    $0x0,%al
  test   %eax,%eax
  je     L1892
  test   %ebx,%ebx
  jns    L2432
  mov    $0x0,%eax
  jmp    L176
L2432:
  mov    $0xffffffff,%eax
  jmp    L176
L1892:
  mov    %ebx,%eax
L176:
  mov    -0x68(%rbp),%rdx
  add    $0x17,%rdx
  mov    %al,(%rdx)
  mov    $0x1000000,%r13d
  mov    -0x60(%rbp),%rax
  mov    (%rax),%eax
  mov    -0x60(%rbp),%rdx
  add    $0x10,%rdx
  mov    (%rdx),%ecx
  sub    %ecx,%eax
  mov    %eax,%edx
  mov    -0x60(%rbp),%rax
  add    $0x40,%rax
  mov    (%rax),%eax
  sub    %eax,%edx
  mov    -0x60(%rbp),%rax
  add    $0x50,%rax
  mov    (%rax),%eax
  add    %edx,%eax
  add    %eax,%r13d
  cmpl   $0x0,-0x48(%rbp)
  je     L2337
  mov    -0x48(%rbp),%eax
  imul   $0x30fa,%eax,%eax
  jmp    L3578
L2337:
  mov    $0x0,%eax
L3578:
  add    %eax,%r13d
  cmpl   $0x0,-0x44(%rbp)
  je     L2920
  mov    -0x44(%rbp),%eax
  imul   $0x763e,%eax,%eax
  jmp    L3926
L2920:
  mov    $0x0,%eax
L3926:
  sub    %eax,%r13d
  mov    -0x60(%rbp),%rax
  add    $0x24,%rax
  mov    (%rax),%eax
  test   %eax,%eax
  je     L2637
  mov    -0x60(%rbp),%rax
  add    $0x24,%rax
  mov    (%rax),%eax
  imul   $0x3997,%eax,%eax
  jmp    L1
L2637:
  mov    $0x0,%eax
L1:
  mov    %eax,%r12d
  mov    -0x60(%rbp),%rax
  add    $0x2c,%rax
  mov    (%rax),%eax
  test   %eax,%eax
  je     L2369
  mov    -0x60(%rbp),%rax
  add    $0x2c,%rax
  mov    (%rax),%eax
  imul   $0xd83,%eax,%eax
  jmp    L3362
L2369:
  mov    $0x0,%eax
L3362:
  sub    %eax,%r12d
  mov    -0x60(%rbp),%rax
  add    $0x34,%rax
  mov    (%rax),%eax
  test   %eax,%eax
  je     L3461
  mov    -0x60(%rbp),%rax
  add    $0x34,%rax
  mov    (%rax),%eax
  imul   $0x43ef,%eax,%eax
  jmp    L2383
L3461:
  mov    $0x0,%eax
L2383:
  sub    %eax,%r12d
  mov    -0x60(%rbp),%rax
  add    $0x3c,%rax
  mov    (%rax),%eax
  test   %eax,%eax
  je     L2696
  mov    -0x60(%rbp),%rax
  add    $0x3c,%rax
  mov    (%rax),%eax
  imul   $0x267b,%eax,%eax
  jmp    L430
L2696:
  mov    $0x0,%eax
L430:
  sub    %eax,%r12d
  mov    -0x60(%rbp),%rax
  add    $0x64,%rax
  mov    (%rax),%eax
  test   %eax,%eax
  je     L3015
  mov    -0x60(%rbp),%rax
  add    $0x64,%rax
  mov    (%rax),%eax
  imul   $0x8b0a,%eax,%eax
  jmp    L1675
L3015:
  mov    $0x0,%eax
L1675:
  sub    %eax,%r12d
  mov    -0x60(%rbp),%rax
  add    $0x6c,%rax
  mov    (%rax),%eax
  test   %eax,%eax
  je     L1560
  mov    -0x60(%rbp),%rax
  add    $0x6c,%rax
  mov    (%rax),%eax
  imul   $0x209f,%eax,%eax
  jmp    L3655
L1560:
  mov    $0x0,%eax
L3655:
  add    %eax,%r12d
  mov    -0x60(%rbp),%rax
  add    $0x74,%rax
  mov    (%rax),%eax
  test   %eax,%eax
  je     L220
  mov    -0x60(%rbp),%rax
  add    $0x74,%rax
  mov    (%rax),%eax
  imul   $0xa402,%eax,%eax
  jmp    L4166
L220:
  mov    $0x0,%eax
L4166:
  add    %eax,%r12d
  mov    -0x60(%rbp),%rax
  add    $0x7c,%rax
  mov    (%rax),%eax
  test   %eax,%eax
  je     L347
  mov    -0x60(%rbp),%rax
  add    $0x7c,%rax
  mov    (%rax),%eax
  imul   $0x5ce7,%eax,%eax
  jmp    L963
L347:
  mov    $0x0,%eax
L963:
  add    %eax,%r12d
  cmpl   $0x0,-0x40(%rbp)
  je     L1178
  mov    -0x40(%rbp),%eax
  imul   $0x6a6a,%eax,%eax
  jmp    L1785
L1178:
  mov    $0x0,%eax
L1785:
  mov    %eax,%r15d
  cmpl   $0x0,-0x3c(%rbp)
  je     L1012
  mov    -0x3c(%rbp),%eax
  imul   $0x18f8,%eax,%eax
  jmp    L1298
L1012:
  mov    $0x0,%eax
L1298:
  sub    %eax,%r15d
  cmpl   $0x0,-0x38(%rbp)
  je     L4009
  mov    -0x38(%rbp),%eax
  imul   $0x7d86,%eax,%eax
  jmp    L1187
L4009:
  mov    $0x0,%eax
L1187:
  sub    %eax,%r15d
  cmpl   $0x0,-0x34(%rbp)
  je     L1728
  mov    -0x34(%rbp),%eax
  imul   $0x471a,%eax,%eax
  jmp    L3399
L1728:
  mov    $0x0,%eax
L3399:
  sub    %eax,%r15d
  mov    -0x60(%rbp),%rax
  add    $0x28,%rax
  mov    (%rax),%eax
  test   %eax,%eax
  je     L4140
  mov    -0x60(%rbp),%rax
  add    $0x28,%rax
  mov    (%rax),%eax
  imul   $0x1a81,%eax,%eax
  jmp    L2479
L4140:
  mov    $0x0,%eax
L2479:
  mov    %eax,%r14d
  mov    -0x60(%rbp),%rax
  add    $0x38,%rax
  mov    (%rax),%edx
  mov    -0x60(%rbp),%rax
  add    $0x68,%rax
  mov    (%rax),%eax
  add    %edx,%eax
  test   %eax,%eax
  je     L669
  mov    -0x60(%rbp),%rax
  add    $0x38,%rax
  mov    (%rax),%edx
  mov    -0x60(%rbp),%rax
  add    $0x68,%rax
  mov    (%rax),%eax
  add    %edx,%eax
  imul   $0x3ffe,%eax,%eax
  jmp    L4269
L669:
  mov    $0x0,%eax
L4269:
  sub    %eax,%r14d
  mov    -0x60(%rbp),%rax
  add    $0x78,%rax
  mov    (%rax),%eax
  test   %eax,%eax
  je     L1245
  mov    -0x60(%rbp),%rax
  add    $0x78,%rax
  mov    (%rax),%eax
  imul   $0x9a7e,%eax,%eax
  jmp    L1248
L1245:
  mov    $0x0,%eax
L1248:
  add    %eax,%r14d
  mov    -0x60(%rbp),%rax
  add    $0x20,%rax
  mov    (%rax),%edx
  mov    -0x60(%rbp),%rax
  add    $0x30,%rax
  mov    (%rax),%eax
  cmp    %eax,%edx
  je     L3401
  mov    -0x60(%rbp),%rax
  add    $0x20,%rax
  mov    (%rax),%eax
  mov    -0x60(%rbp),%rdx
  add    $0x30,%rdx
  mov    (%rdx),%edx
  sub    %edx,%eax
  imul   $0x30fa,%eax,%eax
  jmp    L67
L3401:
  mov    $0x0,%eax
L67:
  add    %eax,%r14d
  mov    -0x60(%rbp),%rax
  add    $0x60,%rax
  mov    (%rax),%edx
  mov    -0x60(%rbp),%rax
  add    $0x70,%rax
  mov    (%rax),%eax
  cmp    %eax,%edx
  je     L2864
  mov    -0x60(%rbp),%rax
  add    $0x60,%rax
  mov    (%rax),%eax
  mov    -0x60(%rbp),%rdx
  add    $0x70,%rdx
  mov    (%rdx),%edx
  sub    %edx,%eax
  imul   $0x763e,%eax,%eax
  jmp    L558
L2864:
  mov    $0x0,%eax
L558:
  sub    %eax,%r14d
  lea    0x0(%r13,%r12,1),%eax
  add    %r15d,%eax
  lea    (%r14,%rax,1),%edx
  mov    -0x54(%rbp),%eax
  add    %eax,%edx
  mov    -0x50(%rbp),%eax
  add    %edx,%eax
  sub    -0x4c(%rbp),%eax
  sar    $0x11,%eax
  mov    %eax,%ebx
  mov    %ebx,%eax
  mov    $0x0,%al
  test   %eax,%eax
  je     L4155
  test   %ebx,%ebx
  jns    L1096
  mov    $0x0,%eax
  jmp    L3897
L1096:
  mov    $0xffffffff,%eax
  jmp    L3897
L4155:
  mov    %ebx,%eax
L3897:
  mov    -0x68(%rbp),%rdx
  add    $0x9,%rdx
  mov    %al,(%rdx)
  mov    %r13d,%eax
  sub    %r12d,%eax
  sub    %r15d,%eax
  lea    (%r14,%rax,1),%edx
  mov    -0x50(%rbp),%eax
  add    %edx,%eax
  sar    $0x11,%eax
  mov    %eax,%ebx
  mov    %ebx,%eax
  mov    $0x0,%al
  test   %eax,%eax
  je     L4010
  test   %ebx,%ebx
  jns    L2060
  mov    $0x0,%eax
  jmp    L1848
L2060:
  mov    $0xffffffff,%eax
  jmp    L1848
L4010:
  mov    %ebx,%eax
L1848:
  mov    -0x68(%rbp),%rdx
  add    $0xe,%rdx
  mov    %al,(%rdx)
  mov    %r13d,%eax
  sub    %r12d,%eax
  add    %r15d,%eax
  sub    %r14d,%eax
  mov    %eax,%edx
  mov    -0x54(%rbp),%eax
  add    %edx,%eax
  sar    $0x11,%eax
  mov    %eax,%ebx
  mov    %ebx,%eax
  mov    $0x0,%al
  test   %eax,%eax
  je     L3405
  test   %ebx,%ebx
  jns    L2958
  mov    $0x0,%eax
  jmp    L17
L2958:
  mov    $0xffffffff,%eax
  jmp    L17
L3405:
  mov    %ebx,%eax
L17:
  mov    -0x68(%rbp),%rdx
  add    $0x11,%rdx
  mov    %al,(%rdx)
  lea    0x0(%r13,%r12,1),%eax
  sub    %r15d,%eax
  sub    %r14d,%eax
  sar    $0x11,%eax
  mov    %eax,%ebx
  mov    %ebx,%eax
  mov    $0x0,%al
  test   %eax,%eax
  je     L843
  test   %ebx,%ebx
  jns    L3549
  mov    $0x0,%eax
  jmp    L436
L3549:
  mov    $0xffffffff,%eax
  jmp    L436
L843:
  mov    %ebx,%eax
L436:
  mov    -0x68(%rbp),%rdx
  add    $0x16,%rdx
  mov    %al,(%rdx)
  mov    $0x1000000,%r13d
  mov    -0x60(%rbp),%rax
  mov    (%rax),%eax
  mov    -0x60(%rbp),%rdx
  add    $0x10,%rdx
  mov    (%rdx),%ecx
  sub    %ecx,%eax
  mov    %eax,%edx
  mov    -0x60(%rbp),%rax
  add    $0x40,%rax
  mov    (%rax),%eax
  sub    %eax,%edx
  mov    -0x60(%rbp),%rax
  add    $0x50,%rax
  mov    (%rax),%eax
  add    %edx,%eax
  add    %eax,%r13d
  cmpl   $0x0,-0x48(%rbp)
  je     L143
  mov    -0x48(%rbp),%eax
  imul   $0x30fa,%eax,%eax
  jmp    L84
L143:
  mov    $0x0,%eax
L84:
  sub    %eax,%r13d
  cmpl   $0x0,-0x44(%rbp)
  je     L2131
  mov    -0x44(%rbp),%eax
  imul   $0x763e,%eax,%eax
  jmp    L2809
L2131:
  mov    $0x0,%eax
L2809:
  add    %eax,%r13d
  mov    -0x60(%rbp),%rax
  add    $0x24,%rax
  mov    (%rax),%eax
  test   %eax,%eax
  je     L1896
  mov    -0x60(%rbp),%rax
  add    $0x24,%rax
  mov    (%rax),%eax
  imul   $0x267b,%eax,%eax
  jmp    L1846
L1896:
  mov    $0x0,%eax
L1846:
  mov    %eax,%r12d
  mov    -0x60(%rbp),%rax
  add    $0x2c,%rax
  mov    (%rax),%eax
  test   %eax,%eax
  je     L3286
  mov    -0x60(%rbp),%rax
  add    $0x2c,%rax
  mov    (%rax),%eax
  imul   $0x43ef,%eax,%eax
  jmp    L3533
L3286:
  mov    $0x0,%eax
L3533:
  sub    %eax,%r12d
  mov    -0x60(%rbp),%rax
  add    $0x34,%rax
  mov    (%rax),%eax
  test   %eax,%eax
  je     L2495
  mov    -0x60(%rbp),%rax
  add    $0x34,%rax
  mov    (%rax),%eax
  imul   $0xd83,%eax,%eax
  jmp    L708
L2495:
  mov    $0x0,%eax
L708:
  add    %eax,%r12d
  mov    -0x60(%rbp),%rax
  add    $0x3c,%rax
  mov    (%rax),%eax
  test   %eax,%eax
  je     L2164
  mov    -0x60(%rbp),%rax
  add    $0x3c,%rax
  mov    (%rax),%eax
  imul   $0x3997,%eax,%eax
  jmp    L3191
L2164:
  mov    $0x0,%eax
L3191:
  add    %eax,%r12d
  mov    -0x60(%rbp),%rax
  add    $0x64,%rax
  mov    (%rax),%eax
  test   %eax,%eax
  je     L1275
  mov    -0x60(%rbp),%rax
  add    $0x64,%rax
  mov    (%rax),%eax
  imul   $0x5ce7,%eax,%eax
  jmp    L288
L1275:
  mov    $0x0,%eax
L288:
  sub    %eax,%r12d
  mov    -0x60(%rbp),%rax
  add    $0x6c,%rax
  mov    (%rax),%eax
  test   %eax,%eax
  je     L1442
  mov    -0x60(%rbp),%rax
  add    $0x6c,%rax
  mov    (%rax),%eax
  imul   $0xa402,%eax,%eax
  jmp    L3687
L1442:
  mov    $0x0,%eax
L3687:
  add    %eax,%r12d
  mov    -0x60(%rbp),%rax
  add    $0x74,%rax
  mov    (%rax),%eax
  test   %eax,%eax
  je     L3046
  mov    -0x60(%rbp),%rax
  add    $0x74,%rax
  mov    (%rax),%eax
  imul   $0x209f,%eax,%eax
  jmp    L214
L3046:
  mov    $0x0,%eax
L214:
  sub    %eax,%r12d
  mov    -0x60(%rbp),%rax
  add    $0x7c,%rax
  mov    (%rax),%eax
  test   %eax,%eax
  je     L1372
  mov    -0x60(%rbp),%rax
  add    $0x7c,%rax
  mov    (%rax),%eax
  imul   $0x8b0a,%eax,%eax
  jmp    L3014
L1372:
  mov    $0x0,%eax
L3014:
  sub    %eax,%r12d
  cmpl   $0x0,-0x40(%rbp)
  je     L1686
  mov    -0x40(%rbp),%eax
  imul   $0x471a,%eax,%eax
  jmp    L2623
L1686:
  mov    $0x0,%eax
L2623:
  mov    %eax,%r15d
  cmpl   $0x0,-0x3c(%rbp)
  je     L892
  mov    -0x3c(%rbp),%eax
  imul   $0x7d86,%eax,%eax
  jmp    L2975
L892:
  mov    $0x0,%eax
L2975:
  sub    %eax,%r15d
  cmpl   $0x0,-0x38(%rbp)
  je     L4107
  mov    -0x38(%rbp),%eax
  imul   $0x18f8,%eax,%eax
  jmp    L469
L4107:
  mov    $0x0,%eax
L469:
  add    %eax,%r15d
  cmpl   $0x0,-0x34(%rbp)
  je     L4355
  mov    -0x34(%rbp),%eax
  imul   $0x6a6a,%eax,%eax
  jmp    L3320
L4355:
  mov    $0x0,%eax
L3320:
  add    %eax,%r15d
  mov    -0x60(%rbp),%rax
  add    $0x28,%rax
  mov    (%rax),%eax
  test   %eax,%eax
  je     L1971
  mov    -0x60(%rbp),%rax
  add    $0x28,%rax
  mov    (%rax),%eax
  imul   $0xffffe57f,%eax,%eax
  jmp    L12
L1971:
  mov    $0x0,%eax
L12:
  mov    %eax,%r14d
  mov    -0x60(%rbp),%rax
  add    $0x38,%rax
  mov    (%rax),%edx
  mov    -0x60(%rbp),%rax
  add    $0x68,%rax
  mov    (%rax),%eax
  add    %edx,%eax
  test   %eax,%eax
  je     L794
  mov    -0x60(%rbp),%rax
  add    $0x38,%rax
  mov    (%rax),%edx
  mov    -0x60(%rbp),%rax
  add    $0x68,%rax
  mov    (%rax),%eax
  add    %edx,%eax
  imul   $0x3ffe,%eax,%eax
  jmp    L799
L794:
  mov    $0x0,%eax
L799:
  add    %eax,%r14d
  mov    -0x60(%rbp),%rax
  add    $0x78,%rax
  mov    (%rax),%eax
  test   %eax,%eax
  je     L429
  mov    -0x60(%rbp),%rax
  add    $0x78,%rax
  mov    (%rax),%eax
  imul   $0x9a7e,%eax,%eax
  jmp    L2319
L429:
  mov    $0x0,%eax
L2319:
  sub    %eax,%r14d
  mov    -0x60(%rbp),%rax
  add    $0x20,%rax
  mov    (%rax),%edx
  mov    -0x60(%rbp),%rax
  add    $0x30,%rax
  mov    (%rax),%eax
  cmp    %eax,%edx
  je     L1362
  mov    -0x60(%rbp),%rax
  add    $0x20,%rax
  mov    (%rax),%eax
  mov    -0x60(%rbp),%rdx
  add    $0x30,%rdx
  mov    (%rdx),%edx
  sub    %edx,%eax
  imul   $0x30fa,%eax,%eax
  jmp    L2233
L1362:
  mov    $0x0,%eax
L2233:
  add    %eax,%r14d
  mov    -0x60(%rbp),%rax
  add    $0x60,%rax
  mov    (%rax),%edx
  mov    -0x60(%rbp),%rax
  add    $0x70,%rax
  mov    (%rax),%eax
  cmp    %eax,%edx
  je     L3161
  mov    -0x60(%rbp),%rax
  add    $0x60,%rax
  mov    (%rax),%eax
  mov    -0x60(%rbp),%rdx
  add    $0x70,%rdx
  mov    (%rdx),%edx
  sub    %edx,%eax
  imul   $0x763e,%eax,%eax
  jmp    L3009
L3161:
  mov    $0x0,%eax
L3009:
  sub    %eax,%r14d
  lea    0x0(%r13,%r12,1),%eax
  add    %r15d,%eax
  add    %r14d,%eax
  sar    $0x11,%eax
  mov    %eax,%ebx
  mov    %ebx,%eax
  mov    $0x0,%al
  test   %eax,%eax
  je     L225
  test   %ebx,%ebx
  jns    L2195
  mov    $0x0,%eax
  jmp    L2712
L2195:
  mov    $0xffffffff,%eax
  jmp    L2712
L225:
  mov    %ebx,%eax
L2712:
  mov    -0x68(%rbp),%rdx
  add    $0xa,%rdx
  mov    %al,(%rdx)
  mov    %r13d,%eax
  sub    %r12d,%eax
  sub    %r15d,%eax
  lea    (%r14,%rax,1),%edx
  mov    -0x54(%rbp),%eax
  add    %eax,%edx
  mov    -0x50(%rbp),%eax
  add    %edx,%eax
  sub    -0x4c(%rbp),%eax
  sar    $0x11,%eax
  mov    %eax,%ebx
  mov    %ebx,%eax
  mov    $0x0,%al
  test   %eax,%eax
  je     L4110
  test   %ebx,%ebx
  jns    L1891
  mov    $0x0,%eax
  jmp    L3215
L1891:
  mov    $0xffffffff,%eax
  jmp    L3215
L4110:
  mov    %ebx,%eax
L3215:
  mov    -0x68(%rbp),%rdx
  add    $0xd,%rdx
  mov    %al,(%rdx)
  mov    %r13d,%eax
  sub    %r12d,%eax
  add    %r15d,%eax
  sub    %r14d,%eax
  sar    $0x11,%eax
  mov    %eax,%ebx
  mov    %ebx,%eax
  mov    $0x0,%al
  test   %eax,%eax
  je     L1781
  test   %ebx,%ebx
  jns    L2566
  mov    $0x0,%eax
  jmp    L1436
L2566:
  mov    $0xffffffff,%eax
  jmp    L1436
L1781:
  mov    %ebx,%eax
L1436:
  mov    -0x68(%rbp),%rdx
  add    $0x12,%rdx
  mov    %al,(%rdx)
  lea    0x0(%r13,%r12,1),%eax
  sub    %r15d,%eax
  sub    %r14d,%eax
  mov    %eax,%edx
  mov    -0x54(%rbp),%eax
  add    %edx,%eax
  sar    $0x11,%eax
  mov    %eax,%ebx
  mov    %ebx,%eax
  mov    $0x0,%al
  test   %eax,%eax
  je     L679
  test   %ebx,%ebx
  jns    L1318
  mov    $0x0,%eax
  jmp    L3689
L1318:
  mov    $0xffffffff,%eax
  jmp    L3689
L679:
  mov    %ebx,%eax
L3689:
  mov    -0x68(%rbp),%rdx
  add    $0x15,%rdx
  mov    %al,(%rdx)
  mov    $0x1000000,%r13d
  mov    -0x60(%rbp),%rax
  mov    (%rax),%edx
  mov    -0x60(%rbp),%rax
  add    $0x10,%rax
  mov    (%rax),%eax
  add    %eax,%edx
  mov    -0x60(%rbp),%rax
  add    $0x40,%rax
  mov    (%rax),%eax
  sub    %eax,%edx
  mov    -0x60(%rbp),%rax
  add    $0x50,%rax
  mov    (%rax),%eax
  sub    %eax,%edx
  add    %edx,%r13d
  cmpl   $0x0,-0x48(%rbp)
  je     L3502
  mov    -0x48(%rbp),%eax
  imul   $0x763e,%eax,%eax
  jmp    L2706
L3502:
  mov    $0x0,%eax
L2706:
  sub    %eax,%r13d
  cmpl   $0x0,-0x44(%rbp)
  je     L4232
  mov    -0x44(%rbp),%eax
  imul   $0x30fa,%eax,%eax
  jmp    L837
L4232:
  mov    $0x0,%eax
L837:
  sub    %eax,%r13d
  mov    -0x60(%rbp),%rax
  add    $0x24,%rax
  mov    (%rax),%eax
  test   %eax,%eax
  je     L33
  mov    -0x60(%rbp),%rax
  add    $0x24,%rax
  mov    (%rax),%eax
  imul   $0xd83,%eax,%eax
  jmp    L2082
L33:
  mov    $0x0,%eax
L2082:
  mov    %eax,%r12d
  mov    -0x60(%rbp),%rax
  add    $0x2c,%rax
  mov    (%rax),%eax
  test   %eax,%eax
  je     L80
  mov    -0x60(%rbp),%rax
  add    $0x2c,%rax
  mov    (%rax),%eax
  imul   $0x267b,%eax,%eax
  jmp    L3330
L80:
  mov    $0x0,%eax
L3330:
  sub    %eax,%r12d
  mov    -0x60(%rbp),%rax
  add    $0x34,%rax
  mov    (%rax),%eax
  test   %eax,%eax
  je     L4204
  mov    -0x60(%rbp),%rax
  add    $0x34,%rax
  mov    (%rax),%eax
  imul   $0x3997,%eax,%eax
  jmp    L1509
L4204:
  mov    $0x0,%eax
L1509:
  add    %eax,%r12d
  mov    -0x60(%rbp),%rax
  add    $0x64,%rax
  mov    (%rax),%eax
  test   %eax,%eax
  je     L1234
  mov    -0x60(%rbp),%rax
  add    $0x64,%rax
  mov    (%rax),%eax
  imul   $0x209f,%eax,%eax
  jmp    L1791
L1234:
  mov    $0x0,%eax
L1791:
  sub    %eax,%r12d
  mov    -0x60(%rbp),%rax
  add    $0x6c,%rax
  mov    (%rax),%eax
  test   %eax,%eax
  je     L1444
  mov    -0x60(%rbp),%rax
  add    $0x6c,%rax
  mov    (%rax),%eax
  imul   $0x5ce7,%eax,%eax
  jmp    L761
L1444:
  mov    $0x0,%eax
L761:
  add    %eax,%r12d
  mov    -0x60(%rbp),%rax
  add    $0x74,%rax
  mov    (%rax),%eax
  test   %eax,%eax
  je     L3325
  mov    -0x60(%rbp),%rax
  add    $0x74,%rax
  mov    (%rax),%eax
  imul   $0x8b0a,%eax,%eax
  jmp    L2633
L3325:
  mov    $0x0,%eax
L2633:
  sub    %eax,%r12d
  cmpl   $0x0,-0x40(%rbp)
  je     L2861
  mov    -0x40(%rbp),%eax
  imul   $0x18f8,%eax,%eax
  jmp    L1655
L2861:
  mov    $0x0,%eax
L1655:
  mov    %eax,%r15d
  cmpl   $0x0,-0x3c(%rbp)
  je     L450
  mov    -0x3c(%rbp),%eax
  imul   $0x471a,%eax,%eax
  jmp    L719
L450:
  mov    $0x0,%eax
L719:
  sub    %eax,%r15d
  cmpl   $0x0,-0x38(%rbp)
  je     L1213
  mov    -0x38(%rbp),%eax
  imul   $0x6a6a,%eax,%eax
  jmp    L3369
L1213:
  mov    $0x0,%eax
L3369:
  add    %eax,%r15d
  mov    -0x60(%rbp),%rax
  add    $0x28,%rax
  mov    (%rax),%edx
  mov    -0x60(%rbp),%rax
  add    $0x78,%rax
  mov    (%rax),%eax
  cmp    %eax,%edx
  je     L3261
  mov    -0x60(%rbp),%rax
  add    $0x28,%rax
  mov    (%rax),%eax
  mov    -0x60(%rbp),%rdx
  add    $0x78,%rdx
  mov    (%rdx),%ecx
  sub    %ecx,%eax
  mov    %eax,%edx
  mov    %edx,%eax
  shl    $0xd,%edx
  sub    %edx,%eax
  add    %eax,%eax
  jmp    L3669
L3261:
  mov    $0x0,%eax
L3669:
  mov    %eax,%r14d
  mov    -0x60(%rbp),%rax
  add    $0x38,%rax
  mov    (%rax),%eax
  test   %eax,%eax
  je     L1654
  mov    -0x60(%rbp),%rax
  add    $0x38,%rax
  mov    (%rax),%eax
  imul   $0x1a81,%eax,%eax
  jmp    L3192
L1654:
  mov    $0x0,%eax
L3192:
  sub    %eax,%r14d
  mov    -0x60(%rbp),%rax
  add    $0x68,%rax
  mov    (%rax),%eax
  test   %eax,%eax
  je     L673
  mov    -0x60(%rbp),%rax
  add    $0x68,%rax
  mov    (%rax),%eax
  imul   $0x9a7e,%eax,%eax
  jmp    L1216
L673:
  mov    $0x0,%eax
L1216:
  add    %eax,%r14d
  mov    -0x60(%rbp),%rax
  add    $0x60,%rax
  mov    (%rax),%edx
  mov    -0x60(%rbp),%rax
  add    $0x70,%rax
  mov    (%rax),%eax
  add    %edx,%eax
  test   %eax,%eax
  je     L3308
  mov    -0x60(%rbp),%rax
  add    $0x60,%rax
  mov    (%rax),%edx
  mov    -0x60(%rbp),%rax
  add    $0x70,%rax
  mov    (%rax),%eax
  add    %edx,%eax
  imul   $0x763e,%eax,%eax
  jmp    L1402
L3308:
  mov    $0x0,%eax
L1402:
  sub    %eax,%r14d
  mov    -0x60(%rbp),%rax
  add    $0x20,%rax
  mov    (%rax),%edx
  mov    -0x60(%rbp),%rax
  add    $0x30,%rax
  mov    (%rax),%eax
  add    %edx,%eax
  test   %eax,%eax
  je     L988
  mov    -0x60(%rbp),%rax
  add    $0x20,%rax
  mov    (%rax),%edx
  mov    -0x60(%rbp),%rax
  add    $0x30,%rax
  mov    (%rax),%eax
  add    %edx,%eax
  imul   $0x30fa,%eax,%eax
  jmp    L607
L988:
  mov    $0x0,%eax
L607:
  add    %eax,%r14d
  cmpl   $0x0,-0x34(%rbp)
  je     L1524
  mov    -0x34(%rbp),%eax
  imul   $0x7d86,%eax,%eax
  jmp    L739
L1524:
  mov    $0x0,%eax
L739:
  mov    %eax,-0x30(%rbp)
  mov    -0x60(%rbp),%rax
  add    $0x3c,%rax
  mov    (%rax),%eax
  test   %eax,%eax
  je     L2738
  mov    -0x60(%rbp),%rax
  add    $0x3c,%rax
  mov    (%rax),%eax
  imul   $0xffffbc11,%eax,%edx
  jmp    L3471
L2738:
  mov    $0x0,%edx
L3471:
  mov    -0x60(%rbp),%rax
  add    $0x7c,%rax
  mov    (%rax),%eax
  test   %eax,%eax
  je     L773
  mov    -0x60(%rbp),%rax
  add    $0x7c,%rax
  mov    (%rax),%eax
  imul   $0xa402,%eax,%eax
  jmp    L4358
L773:
  mov    $0x0,%eax
L4358:
  add    %edx,%eax
  mov    %eax,-0x2c(%rbp)
  lea    0x0(%r13,%r12,1),%eax
  add    %r15d,%eax
  add    %r14d,%eax
  sub    -0x30(%rbp),%eax
  mov    %eax,%edx
  mov    -0x2c(%rbp),%eax
  add    %eax,%edx
  mov    -0x50(%rbp),%eax
  add    %eax,%edx
  mov    -0x4c(%rbp),%eax
  add    %edx,%eax
  sar    $0x11,%eax
  mov    %eax,%ebx
  mov    %ebx,%eax
  mov    $0x0,%al
  test   %eax,%eax
  je     L1492
  test   %ebx,%ebx
  jns    L1277
  mov    $0x0,%eax
  jmp    L2199
L1277:
  mov    $0xffffffff,%eax
  jmp    L2199
L1492:
  mov    %ebx,%eax
L2199:
  mov    -0x68(%rbp),%rdx
  add    $0xb,%rdx
  mov    %al,(%rdx)
  mov    %r13d,%eax
  sub    %r12d,%eax
  sub    %r15d,%eax
  lea    (%r14,%rax,1),%edx
  mov    -0x50(%rbp),%eax
  add    %eax,%edx
  mov    -0x4c(%rbp),%eax
  add    %edx,%eax
  sar    $0x11,%eax
  mov    %eax,%ebx
  mov    %ebx,%eax
  mov    $0x0,%al
  test   %eax,%eax
  je     L1835
  test   %ebx,%ebx
  jns    L3496
  mov    $0x0,%eax
  jmp    L2246
L3496:
  mov    $0xffffffff,%eax
  jmp    L2246
L1835:
  mov    %ebx,%eax
L2246:
  mov    -0x68(%rbp),%rdx
  add    $0xc,%rdx
  mov    %al,(%rdx)
  mov    %r13d,%eax
  sub    %r12d,%eax
  add    %r15d,%eax
  sub    %r14d,%eax
  sub    -0x30(%rbp),%eax
  sub    -0x2c(%rbp),%eax
  sub    -0x54(%rbp),%eax
  mov    %eax,%edx
  mov    -0x4c(%rbp),%eax
  add    %edx,%eax
  sar    $0x11,%eax
  mov    %eax,%ebx
  mov    %ebx,%eax
  mov    $0x0,%al
  test   %eax,%eax
  je     L4363
  test   %ebx,%ebx
  jns    L713
  mov    $0x0,%eax
  jmp    L498
L713:
  mov    $0xffffffff,%eax
  jmp    L498
L4363:
  mov    %ebx,%eax
L498:
  mov    -0x68(%rbp),%rdx
  add    $0x13,%rdx
  mov    %al,(%rdx)
  lea    0x0(%r13,%r12,1),%eax
  sub    %r15d,%eax
  sub    %r14d,%eax
  sar    $0x11,%eax
  mov    %eax,%ebx
  mov    %ebx,%eax
  mov    $0x0,%al
  test   %eax,%eax
  je     L2596
  test   %ebx,%ebx
  jns    L296
  mov    $0x0,%eax
  jmp    L2443
L296:
  mov    $0xffffffff,%eax
  jmp    L2443
L2596:
  mov    %ebx,%eax
L2443:
  mov    -0x68(%rbp),%rdx
  add    $0x14,%rdx
  mov    %al,(%rdx)
  nop
  pop    %rbx
  pop    %r12
  pop    %r13
  pop    %r14
  pop    %r15
  pop    %rbp
  ret
```

assistant: ```c
void DCT_8x4(int *coeff, unsigned char *out) {
  register int base, val1, val2, val3;
  int tmp1, tmp2;
  int C0, C4, C16, C20;
  int C2_18, C6_22, C1_17, C3_19, C5_21, C7_23;
  register int t;
  C0 = coeff[0];
  C4 = coeff[4];
  C16 = coeff[16];
  C20 = coeff[20];
  coeff[0] = ((coeff[0]) ? 23168 * (coeff[0]) : 0);
  coeff[4] = ((coeff[4]) ? 23168 * (coeff[4]) : 0);
  coeff[16] = ((coeff[16]) ? 23168 * (coeff[16]) : 0);
  coeff[20] = ((coeff[20]) ? 23168 * (coeff[20]) : 0);
  C2_18 = coeff[2] + coeff[18];
  C6_22 = coeff[6] + coeff[22];
  C1_17 = coeff[1] + coeff[17];
  C3_19 = coeff[3] + coeff[19];
  C5_21 = coeff[5] + coeff[21];
  C7_23 = coeff[7] + coeff[23];
  base = 0x1000000;
  base += coeff[0] + coeff[4] + coeff[16] + coeff[20];
  base += ((C2_18) ? 30270 * (C2_18) : 0);
  base += ((C6_22) ? 12538 * (C6_22) : 0);
  val1 = ((coeff[9]) ? 41986 * (coeff[9]) : 0);
  val1 += ((coeff[11]) ? 35594 * (coeff[11]) : 0);
  val1 += ((coeff[13]) ? 23783 * (coeff[13]) : 0);
  val1 += ((coeff[15]) ? 8351 * (coeff[15]) : 0);
  val1 += ((coeff[25]) ? 17391 * (coeff[25]) : 0);
  val1 += ((coeff[27]) ? 14743 * (coeff[27]) : 0);
  val1 += ((coeff[29]) ? 9851 * (coeff[29]) : 0);
  val1 += ((coeff[31]) ? 3459 * (coeff[31]) : 0);
  val2 = ((C1_17) ? 32134 * (C1_17) : 0);
  val2 += ((C3_19) ? 27242 * (C3_19) : 0);
  val2 += ((C5_21) ? 18202 * (C5_21) : 0);
  val2 += ((C7_23) ? 6392 * (C7_23) : 0);
  val3 = ((coeff[10]) ? 39550 * (coeff[10]) : 0);
  val3 += ((coeff[14] + coeff[26]) ? 16382 * (coeff[14] + coeff[26]) : 0);
  val3 += ((coeff[30]) ? 6785 * (coeff[30]) : 0);
  val3 += ((coeff[8] + coeff[12]) ? 30270 * (coeff[8] + coeff[12]) : 0);
  val3 += ((coeff[24] + coeff[28]) ? 12538 * (coeff[24] + coeff[28]) : 0);
  t = (base + val1 + val2 + val3) >> 17;
  out[0] = t & 0xFFFFFF00 ? t < 0 ? 0 : 255 : (unsigned char)t;
  t = (base - val1 - val2 + val3 - C4 - C20) >> 17;
  out[7] = t & 0xFFFFFF00 ? t < 0 ? 0 : 255 : (unsigned char)t;
  t = (base - val1 + val2 - val3 - C16 - C20) >> 17;
  out[24] = t & 0xFFFFFF00 ? t < 0 ? 0 : 255 : (unsigned char)t;
  t = (base + val1 - val2 - val3 - C4 - C16 - C20) >> 17;
  out[31] = t & 0xFFFFFF00 ? t < 0 ? 0 : 255 : (unsigned char)t;
  base = 0x1000000;
  base += coeff[0] - coeff[4] + coeff[16] - coeff[20];
  base += ((C2_18) ? 12538 * (C2_18) : 0);
  base -= ((C6_22) ? 30270 * (C6_22) : 0);
  val1 = ((coeff[9]) ? 35594 * (coeff[9]) : 0);
  val1 -= ((coeff[11]) ? 8351 * (coeff[11]) : 0);
  val1 -= ((coeff[13]) ? 41986 * (coeff[13]) : 0);
  val1 -= ((coeff[15]) ? 23783 * (coeff[15]) : 0);
  val1 -= ((coeff[25]) ? 14743 * (coeff[25]) : 0);
  val1 -= ((coeff[27]) ? 3459 * (coeff[27]) : 0);
  val1 -= ((coeff[29]) ? 17391 * (coeff[29]) : 0);
  val1 -= ((coeff[31]) ? 9851 * (coeff[31]) : 0);
  val2 = ((C1_17) ? 27242 * (C1_17) : 0);
  val2 -= ((C3_19) ? 6392 * (C3_19) : 0);
  val2 -= ((C5_21) ? 32134 * (C5_21) : 0);
  val2 -= ((C7_23) ? 18202 * (C7_23) : 0);
  val3 = ((coeff[10] - coeff[30]) ? 16382 * (coeff[10] - coeff[30]) : 0);
  val3 -= ((coeff[14]) ? 39550 * (coeff[14]) : 0);
  val3 += ((coeff[26]) ? 6785 * (coeff[26]) : 0);
  val3 += ((coeff[24] - coeff[28]) ? 12538 * (coeff[24] - coeff[28]) : 0);
  val3 += ((coeff[8] - coeff[12]) ? 30270 * (coeff[8] - coeff[12]) : 0);
  t = (base + val1 + val2 + val3 + C4 + C20) >> 17;
  out[1] = t & 0xFFFFFF00 ? t < 0 ? 0 : 255 : (unsigned char)t;
  t = (base - val1 - val2 + val3) >> 17;
  out[6] = t & 0xFFFFFF00 ? t < 0 ? 0 : 255 : (unsigned char)t;
  t = (base - val1 + val2 - val3 + C4 - C16 + C20) >> 17;
  out[25] = t & 0xFFFFFF00 ? t < 0 ? 0 : 255 : (unsigned char)t;
  t = (base + val1 - val2 - val3 + C20) >> 17;
  out[30] = t & 0xFFFFFF00 ? t < 0 ? 0 : 255 : (unsigned char)t;
  base = 0x1000000;
  base += coeff[0] - coeff[4] + coeff[16] - coeff[20];
  base -= ((C2_18) ? 12538 * (C2_18) : 0);
  base += ((C6_22) ? 30270 * (C6_22) : 0);
  val1 = ((coeff[9]) ? 23783 * (coeff[9]) : 0);
  val1 -= ((coeff[11]) ? 41986 * (coeff[11]) : 0);
  val1 += ((coeff[13]) ? 8351 * (coeff[13]) : 0);
  val1 += ((coeff[15]) ? 35594 * (coeff[15]) : 0);
  val1 += ((coeff[25]) ? 9851 * (coeff[25]) : 0);
  val1 -= ((coeff[27]) ? 17391 * (coeff[27]) : 0);
  val1 += ((coeff[29]) ? 3459 * (coeff[29]) : 0);
  val1 += ((coeff[31]) ? 14743 * (coeff[31]) : 0);
  val2 = ((C1_17) ? 18202 * (C1_17) : 0);
  val2 -= ((C3_19) ? 32134 * (C3_19) : 0);
  val2 += ((C5_21) ? 6392 * (C5_21) : 0);
  val2 += ((C7_23) ? 27242 * (C7_23) : 0);
  val3 = -((coeff[10] - coeff[30]) ? 16382 * (coeff[10] - coeff[30]) : 0);
  val3 += ((coeff[14]) ? 39550 * (coeff[14]) : 0);
  val3 -= ((coeff[26]) ? 6785 * (coeff[26]) : 0);
  val3 += ((coeff[24] - coeff[28]) ? 12538 * (coeff[24] - coeff[28]) : 0);
  val3 += ((coeff[8] - coeff[12]) ? 30270 * (coeff[8] - coeff[12]) : 0);
  t = (base + val1 + val2 + val3) >> 17;
  out[2] = t & 0xFFFFFF00 ? t < 0 ? 0 : 255 : (unsigned char)t;
  t = (base - val1 - val2 + val3) >> 17;
  out[5] = t & 0xFFFFFF00 ? t < 0 ? 0 : 255 : (unsigned char)t;
  t = (base - val1 + val2 - val3 - C16) >> 17;
  out[26] = t & 0xFFFFFF00 ? t < 0 ? 0 : 255 : (unsigned char)t;
  t = (base + val1 - val2 - val3 + C4 - C16 + C20) >> 17;
  out[29] = t & 0xFFFFFF00 ? t < 0 ? 0 : 255 : (unsigned char)t;
  base = 0x1000000;
  base += coeff[0] + coeff[4] + coeff[16] + coeff[20];
  base -= ((C2_18) ? 30270 * (C2_18) : 0);
  base -= ((C6_22) ? 12538 * (C6_22) : 0);
  val1 = ((coeff[9]) ? 8351 * (coeff[9]) : 0);
  val1 -= ((coeff[11]) ? 23783 * (coeff[11]) : 0);
  val1 += ((coeff[13]) ? 35594 * (coeff[13]) : 0);
  val1 += ((coeff[25]) ? 3459 * (coeff[25]) : 0);
  val1 -= ((coeff[27]) ? 9851 * (coeff[27]) : 0);
  val1 += ((coeff[29]) ? 14743 * (coeff[29]) : 0);
  val2 = ((C1_17) ? 6392 * (C1_17) : 0);
  val2 -= ((C3_19) ? 18202 * (C3_19) : 0);
  val2 += ((C5_21) ? 27242 * (C5_21) : 0);
  val3 = -((coeff[10]) ? 39550 * (coeff[10]) : 0);
  val3 += ((coeff[14] + coeff[26]) ? 16382 * (coeff[14] + coeff[26]) : 0);
  val3 -= ((coeff[30]) ? 6785 * (coeff[30]) : 0);
  val3 += ((coeff[8] + coeff[12]) ? 30270 * (coeff[8] + coeff[12]) : 0);
  val3 += ((coeff[24] + coeff[28]) ? 12538 * (coeff[24] + coeff[28]) : 0);
  tmp1 = ((C7_23) ? 32134 * (C7_23) : 0);
  tmp2 = ((coeff[15]) ? 41986 * (coeff[15]) : 0) + ((coeff[31]) ? 17391 * (coeff[31]) : 0);
  t = (base + val1 + val2 + val3 - tmp1 - tmp2 - C4 - C20) >> 17;
  out[3] = t & 0xFFFFFF00 ? t < 0 ? 0 : 255 : (unsigned char)t;
  t = (base - val1 - val2 + val3) >> 17;
  out[4] = t & 0xFFFFFF00 ? t < 0 ? 0 : 255 : (unsigned char)t;
  t = (base - val1 + val2 - val3 - tmp1 + tmp2) >> 17;
  out[27] = t & 0xFFFFFF00 ? t < 0 ? 0 : 255 : (unsigned char)t;
  t = (base + val1 - val2 - val3 - C16 - C20) >> 17;
  out[28] = t & 0xFFFFFF00 ? t < 0 ? 0 : 255 : (unsigned char)t;
  C2_18 = coeff[2] - coeff[18];
  C6_22 = coeff[6] - coeff[22];
  C1_17 = coeff[1] - coeff[17];
  C3_19 = coeff[3] - coeff[19];
  C5_21 = coeff[5] - coeff[21];
  C7_23 = coeff[7] - coeff[23];
  base = 0x1000000;
  base += coeff[0] + coeff[4] - coeff[16] - coeff[20];
  base += ((C2_18) ? 30270 * (C2_18) : 0);
  base += ((C6_22) ? 12538 * (C6_22) : 0);
  val1 = ((coeff[9]) ? 17391 * (coeff[9]) : 0);
  val1 += ((coeff[11]) ? 14743 * (coeff[11]) : 0);
  val1 += ((coeff[13]) ? 9851 * (coeff[13]) : 0);
  val1 += ((coeff[15]) ? 3459 * (coeff[15]) : 0);
  val1 -= ((coeff[25]) ? 41986 * (coeff[25]) : 0);
  val1 -= ((coeff[27]) ? 35594 * (coeff[27]) : 0);
  val1 -= ((coeff[29]) ? 23783 * (coeff[29]) : 0);
  val1 -= ((coeff[31]) ? 8351 * (coeff[31]) : 0);
  val2 = ((C1_17) ? 32134 * (C1_17) : 0);
  val2 += ((C3_19) ? 27242 * (C3_19) : 0);
  val2 += ((C5_21) ? 18202 * (C5_21) : 0);
  val2 += ((C7_23) ? 6392 * (C7_23) : 0);
  val3 = ((coeff[10] - coeff[30]) ? 16382 * (coeff[10] - coeff[30]) : 0);
  val3 += ((coeff[14]) ? 6785 * (coeff[14]) : 0);
  val3 -= ((coeff[26]) ? 39550 * (coeff[26]) : 0);
  val3 -= ((coeff[24] + coeff[28]) ? 30270 * (coeff[24] + coeff[28]) : 0);
  val3 += ((coeff[8] + coeff[12]) ? 12538 * (coeff[8] + coeff[12]) : 0);
  t = (base + val1 + val2 + val3) >> 17;
  out[8] = t & 0xFFFFFF00 ? t < 0 ? 0 : 255 : (unsigned char)t;
  t = (base - val1 - val2 + val3 - C4 + C16 + C20) >> 17;
  out[15] = t & 0xFFFFFF00 ? t < 0 ? 0 : 255 : (unsigned char)t;
  t = (base - val1 + val2 - val3) >> 17;
  out[16] = t & 0xFFFFFF00 ? t < 0 ? 0 : 255 : (unsigned char)t;
  t = (base + val1 - val2 - val3 - C4 + C20) >> 17;
  out[23] = t & 0xFFFFFF00 ? t < 0 ? 0 : 255 : (unsigned char)t;
  base = 0x1000000;
  base += coeff[0] - coeff[4] - coeff[16] + coeff[20];
  base += ((C2_18) ? 12538 * (C2_18) : 0);
  base -= ((C6_22) ? 30270 * (C6_22) : 0);
  val1 = ((coeff[9]) ? 14743 * (coeff[9]) : 0);
  val1 -= ((coeff[11]) ? 3459 * (coeff[11]) : 0);
  val1 -= ((coeff[13]) ? 17391 * (coeff[13]) : 0);
  val1 -= ((coeff[15]) ? 9851 * (coeff[15]) : 0);
  val1 -= ((coeff[25]) ? 35594 * (coeff[25]) : 0);
  val1 += ((coeff[27]) ? 8351 * (coeff[27]) : 0);
  val1 += ((coeff[29]) ? 41986 * (coeff[29]) : 0);
  val1 += ((coeff[31]) ? 23783 * (coeff[31]) : 0);
  val2 = ((C1_17) ? 27242 * (C1_17) : 0);
  val2 -= ((C3_19) ? 6392 * (C3_19) : 0);
  val2 -= ((C5_21) ? 32134 * (C5_21) : 0);
  val2 -= ((C7_23) ? 18202 * (C7_23) : 0);
  val3 = ((coeff[10]) ? 6785 * (coeff[10]) : 0);
  val3 -= ((coeff[14] + coeff[26]) ? 16382 * (coeff[14] + coeff[26]) : 0);
  val3 += ((coeff[30]) ? 39550 * (coeff[30]) : 0);
  val3 += ((coeff[8] - coeff[12]) ? 12538 * (coeff[8] - coeff[12]) : 0);
  val3 -= ((coeff[24] - coeff[28]) ? 30270 * (coeff[24] - coeff[28]) : 0);
  t = (base + val1 + val2 + val3 + C4 + C16 - C20) >> 17;
  out[9] = t & 0xFFFFFF00 ? t < 0 ? 0 : 255 : (unsigned char)t;
  t = (base - val1 - val2 + val3 + C16) >> 17;
  out[14] = t & 0xFFFFFF00 ? t < 0 ? 0 : 255 : (unsigned char)t;
  t = (base - val1 + val2 - val3 + C4) >> 17;
  out[17] = t & 0xFFFFFF00 ? t < 0 ? 0 : 255 : (unsigned char)t;
  t = (base + val1 - val2 - val3) >> 17;
  out[22] = t & 0xFFFFFF00 ? t < 0 ? 0 : 255 : (unsigned char)t;
  base = 0x1000000;
  base += coeff[0] - coeff[4] - coeff[16] + coeff[20];
  base -= ((C2_18) ? 12538 * (C2_18) : 0);
  base += ((C6_22) ? 30270 * (C6_22) : 0);
  val1 = ((coeff[9]) ? 9851 * (coeff[9]) : 0);
  val1 -= ((coeff[11]) ? 17391 * (coeff[11]) : 0);
  val1 += ((coeff[13]) ? 3459 * (coeff[13]) : 0);
  val1 += ((coeff[15]) ? 14743 * (coeff[15]) : 0);
  val1 -= ((coeff[25]) ? 23783 * (coeff[25]) : 0);
  val1 += ((coeff[27]) ? 41986 * (coeff[27]) : 0);
  val1 -= ((coeff[29]) ? 8351 * (coeff[29]) : 0);
  val1 -= ((coeff[31]) ? 35594 * (coeff[31]) : 0);
  val2 = ((C1_17) ? 18202 * (C1_17) : 0);
  val2 -= ((C3_19) ? 32134 * (C3_19) : 0);
  val2 += ((C5_21) ? 6392 * (C5_21) : 0);
  val2 += ((C7_23) ? 27242 * (C7_23) : 0);
  val3 = -((coeff[10]) ? 6785 * (coeff[10]) : 0);
  val3 += ((coeff[14] + coeff[26]) ? 16382 * (coeff[14] + coeff[26]) : 0);
  val3 -= ((coeff[30]) ? 39550 * (coeff[30]) : 0);
  val3 += ((coeff[8] - coeff[12]) ? 12538 * (coeff[8] - coeff[12]) : 0);
  val3 -= ((coeff[24] - coeff[28]) ? 30270 * (coeff[24] - coeff[28]) : 0);
  t = (base + val1 + val2 + val3) >> 17;
  out[10] = t & 0xFFFFFF00 ? t < 0 ? 0 : 255 : (unsigned char)t;
  t = (base - val1 - val2 + val3 + C4 + C16 - C20) >> 17;
  out[13] = t & 0xFFFFFF00 ? t < 0 ? 0 : 255 : (unsigned char)t;
  t = (base - val1 + val2 - val3) >> 17;
  out[18] = t & 0xFFFFFF00 ? t < 0 ? 0 : 255 : (unsigned char)t;
  t = (base + val1 - val2 - val3 + C4) >> 17;
  out[21] = t & 0xFFFFFF00 ? t < 0 ? 0 : 255 : (unsigned char)t;
  base = 0x1000000;
  base += coeff[0] + coeff[4] - coeff[16] - coeff[20];
  base -= ((C2_18) ? 30270 * (C2_18) : 0);
  base -= ((C6_22) ? 12538 * (C6_22) : 0);
  val1 = ((coeff[9]) ? 3459 * (coeff[9]) : 0);
  val1 -= ((coeff[11]) ? 9851 * (coeff[11]) : 0);
  val1 += ((coeff[13]) ? 14743 * (coeff[13]) : 0);
  val1 -= ((coeff[25]) ? 8351 * (coeff[25]) : 0);
  val1 += ((coeff[27]) ? 23783 * (coeff[27]) : 0);
  val1 -= ((coeff[29]) ? 35594 * (coeff[29]) : 0);
  val2 = ((C1_17) ? 6392 * (C1_17) : 0);
  val2 -= ((C3_19) ? 18202 * (C3_19) : 0);
  val2 += ((C5_21) ? 27242 * (C5_21) : 0);
  val3 = -((coeff[10] - coeff[30]) ? 16382 * (coeff[10] - coeff[30]) : 0);
  val3 -= ((coeff[14]) ? 6785 * (coeff[14]) : 0);
  val3 += ((coeff[26]) ? 39550 * (coeff[26]) : 0);
  val3 -= ((coeff[24] + coeff[28]) ? 30270 * (coeff[24] + coeff[28]) : 0);
  val3 += ((coeff[8] + coeff[12]) ? 12538 * (coeff[8] + coeff[12]) : 0);
  tmp1 = ((C7_23) ? 32134 * (C7_23) : 0);
  tmp2 = -((coeff[15]) ? 17391 * (coeff[15]) : 0) + ((coeff[31]) ? 41986 * (coeff[31]) : 0);
  t = (base + val1 + val2 + val3 - tmp1 + tmp2 + C16 + C20) >> 17;
  out[11] = t & 0xFFFFFF00 ? t < 0 ? 0 : 255 : (unsigned char)t;
  t = (base - val1 - val2 + val3 + C16 + C20) >> 17;
  out[12] = t & 0xFFFFFF00 ? t < 0 ? 0 : 255 : (unsigned char)t;
  t = (base - val1 + val2 - val3 - tmp1 - tmp2 - C4 + C20) >> 17;
  out[19] = t & 0xFFFFFF00 ? t < 0 ? 0 : 255 : (unsigned char)t;
  t = (base + val1 - val2 - val3) >> 17;
  out[20] = t & 0xFFFFFF00 ? t < 0 ? 0 : 255 : (unsigned char)t;
}
```