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    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     L2788
  mov    -0x60(%rbp),%rax
  mov    (%rax),%eax
  imul   $0x5a80,%eax,%eax
  jmp    L1601
L2788:
  mov    $0x0,%eax
L1601:
  mov    -0x60(%rbp),%rdx
  mov    %eax,(%rdx)
  mov    -0x60(%rbp),%rax
  add    $0x10,%rax
  mov    (%rax),%eax
  test   %eax,%eax
  je     L360
  mov    -0x60(%rbp),%rax
  add    $0x10,%rax
  mov    (%rax),%eax
  imul   $0x5a80,%eax,%eax
  jmp    L424
L360:
  mov    $0x0,%eax
L424:
  mov    -0x60(%rbp),%rdx
  add    $0x10,%rdx
  mov    %eax,(%rdx)
  mov    -0x60(%rbp),%rax
  add    $0x40,%rax
  mov    (%rax),%eax
  test   %eax,%eax
  je     L732
  mov    -0x60(%rbp),%rax
  add    $0x40,%rax
  mov    (%rax),%eax
  imul   $0x5a80,%eax,%eax
  jmp    L3110
L732:
  mov    $0x0,%eax
L3110:
  mov    -0x60(%rbp),%rdx
  add    $0x40,%rdx
  mov    %eax,(%rdx)
  mov    -0x60(%rbp),%rax
  add    $0x50,%rax
  mov    (%rax),%eax
  test   %eax,%eax
  je     L1251
  mov    -0x60(%rbp),%rax
  add    $0x50,%rax
  mov    (%rax),%eax
  imul   $0x5a80,%eax,%eax
  jmp    L295
L1251:
  mov    $0x0,%eax
L295:
  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     L48
  mov    -0x48(%rbp),%eax
  imul   $0x763e,%eax,%eax
  jmp    L4088
L48:
  mov    $0x0,%eax
L4088:
  add    %eax,%r13d
  cmpl   $0x0,-0x44(%rbp)
  je     L2907
  mov    -0x44(%rbp),%eax
  imul   $0x30fa,%eax,%eax
  jmp    L807
L2907:
  mov    $0x0,%eax
L807:
  add    %eax,%r13d
  mov    -0x60(%rbp),%rax
  add    $0x24,%rax
  mov    (%rax),%eax
  test   %eax,%eax
  je     L3408
  mov    -0x60(%rbp),%rax
  add    $0x24,%rax
  mov    (%rax),%eax
  imul   $0xa402,%eax,%eax
  jmp    L4363
L3408:
  mov    $0x0,%eax
L4363:
  mov    %eax,%r12d
  mov    -0x60(%rbp),%rax
  add    $0x2c,%rax
  mov    (%rax),%eax
  test   %eax,%eax
  je     L2647
  mov    -0x60(%rbp),%rax
  add    $0x2c,%rax
  mov    (%rax),%eax
  imul   $0x8b0a,%eax,%eax
  jmp    L2415
L2647:
  mov    $0x0,%eax
L2415:
  add    %eax,%r12d
  mov    -0x60(%rbp),%rax
  add    $0x34,%rax
  mov    (%rax),%eax
  test   %eax,%eax
  je     L1429
  mov    -0x60(%rbp),%rax
  add    $0x34,%rax
  mov    (%rax),%eax
  imul   $0x5ce7,%eax,%eax
  jmp    L2444
L1429:
  mov    $0x0,%eax
L2444:
  add    %eax,%r12d
  mov    -0x60(%rbp),%rax
  add    $0x3c,%rax
  mov    (%rax),%eax
  test   %eax,%eax
  je     L454
  mov    -0x60(%rbp),%rax
  add    $0x3c,%rax
  mov    (%rax),%eax
  imul   $0x209f,%eax,%eax
  jmp    L4148
L454:
  mov    $0x0,%eax
L4148:
  add    %eax,%r12d
  mov    -0x60(%rbp),%rax
  add    $0x64,%rax
  mov    (%rax),%eax
  test   %eax,%eax
  je     L304
  mov    -0x60(%rbp),%rax
  add    $0x64,%rax
  mov    (%rax),%eax
  imul   $0x43ef,%eax,%eax
  jmp    L2854
L304:
  mov    $0x0,%eax
L2854:
  add    %eax,%r12d
  mov    -0x60(%rbp),%rax
  add    $0x6c,%rax
  mov    (%rax),%eax
  test   %eax,%eax
  je     L3819
  mov    -0x60(%rbp),%rax
  add    $0x6c,%rax
  mov    (%rax),%eax
  imul   $0x3997,%eax,%eax
  jmp    L1237
L3819:
  mov    $0x0,%eax
L1237:
  add    %eax,%r12d
  mov    -0x60(%rbp),%rax
  add    $0x74,%rax
  mov    (%rax),%eax
  test   %eax,%eax
  je     L1695
  mov    -0x60(%rbp),%rax
  add    $0x74,%rax
  mov    (%rax),%eax
  imul   $0x267b,%eax,%eax
  jmp    L964
L1695:
  mov    $0x0,%eax
L964:
  add    %eax,%r12d
  mov    -0x60(%rbp),%rax
  add    $0x7c,%rax
  mov    (%rax),%eax
  test   %eax,%eax
  je     L1882
  mov    -0x60(%rbp),%rax
  add    $0x7c,%rax
  mov    (%rax),%eax
  imul   $0xd83,%eax,%eax
  jmp    L399
L1882:
  mov    $0x0,%eax
L399:
  add    %eax,%r12d
  cmpl   $0x0,-0x40(%rbp)
  je     L2924
  mov    -0x40(%rbp),%eax
  imul   $0x7d86,%eax,%eax
  jmp    L2183
L2924:
  mov    $0x0,%eax
L2183:
  mov    %eax,%r15d
  cmpl   $0x0,-0x3c(%rbp)
  je     L3647
  mov    -0x3c(%rbp),%eax
  imul   $0x6a6a,%eax,%eax
  jmp    L2012
L3647:
  mov    $0x0,%eax
L2012:
  add    %eax,%r15d
  cmpl   $0x0,-0x38(%rbp)
  je     L1947
  mov    -0x38(%rbp),%eax
  imul   $0x471a,%eax,%eax
  jmp    L2391
L1947:
  mov    $0x0,%eax
L2391:
  add    %eax,%r15d
  cmpl   $0x0,-0x34(%rbp)
  je     L3309
  mov    -0x34(%rbp),%eax
  imul   $0x18f8,%eax,%eax
  jmp    L4194
L3309:
  mov    $0x0,%eax
L4194:
  add    %eax,%r15d
  mov    -0x60(%rbp),%rax
  add    $0x28,%rax
  mov    (%rax),%eax
  test   %eax,%eax
  je     L545
  mov    -0x60(%rbp),%rax
  add    $0x28,%rax
  mov    (%rax),%eax
  imul   $0x9a7e,%eax,%eax
  jmp    L3418
L545:
  mov    $0x0,%eax
L3418:
  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     L2804
  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    L2465
L2804:
  mov    $0x0,%eax
L2465:
  add    %eax,%r14d
  mov    -0x60(%rbp),%rax
  add    $0x78,%rax
  mov    (%rax),%eax
  test   %eax,%eax
  je     L643
  mov    -0x60(%rbp),%rax
  add    $0x78,%rax
  mov    (%rax),%eax
  imul   $0x1a81,%eax,%eax
  jmp    L2227
L643:
  mov    $0x0,%eax
L2227:
  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     L4326
  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    L1810
L4326:
  mov    $0x0,%eax
L1810:
  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     L338
  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    L919
L338:
  mov    $0x0,%eax
L919:
  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     L4007
  test   %ebx,%ebx
  jns    L2217
  mov    $0x0,%eax
  jmp    L1057
L2217:
  mov    $0xffffffff,%eax
  jmp    L1057
L4007:
  mov    %ebx,%eax
L1057:
  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     L583
  test   %ebx,%ebx
  jns    L2551
  mov    $0x0,%eax
  jmp    L1061
L2551:
  mov    $0xffffffff,%eax
  jmp    L1061
L583:
  mov    %ebx,%eax
L1061:
  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     L2261
  test   %ebx,%ebx
  jns    L3915
  mov    $0x0,%eax
  jmp    L678
L3915:
  mov    $0xffffffff,%eax
  jmp    L678
L2261:
  mov    %ebx,%eax
L678:
  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     L3618
  test   %ebx,%ebx
  jns    L456
  mov    $0x0,%eax
  jmp    L1799
L456:
  mov    $0xffffffff,%eax
  jmp    L1799
L3618:
  mov    %ebx,%eax
L1799:
  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     L2319
  mov    -0x48(%rbp),%eax
  imul   $0x30fa,%eax,%eax
  jmp    L301
L2319:
  mov    $0x0,%eax
L301:
  add    %eax,%r13d
  cmpl   $0x0,-0x44(%rbp)
  je     L2455
  mov    -0x44(%rbp),%eax
  imul   $0x763e,%eax,%eax
  jmp    L2898
L2455:
  mov    $0x0,%eax
L2898:
  sub    %eax,%r13d
  mov    -0x60(%rbp),%rax
  add    $0x24,%rax
  mov    (%rax),%eax
  test   %eax,%eax
  je     L3615
  mov    -0x60(%rbp),%rax
  add    $0x24,%rax
  mov    (%rax),%eax
  imul   $0x8b0a,%eax,%eax
  jmp    L1667
L3615:
  mov    $0x0,%eax
L1667:
  mov    %eax,%r12d
  mov    -0x60(%rbp),%rax
  add    $0x2c,%rax
  mov    (%rax),%eax
  test   %eax,%eax
  je     L1680
  mov    -0x60(%rbp),%rax
  add    $0x2c,%rax
  mov    (%rax),%eax
  imul   $0x209f,%eax,%eax
  jmp    L1490
L1680:
  mov    $0x0,%eax
L1490:
  sub    %eax,%r12d
  mov    -0x60(%rbp),%rax
  add    $0x34,%rax
  mov    (%rax),%eax
  test   %eax,%eax
  je     L786
  mov    -0x60(%rbp),%rax
  add    $0x34,%rax
  mov    (%rax),%eax
  imul   $0xa402,%eax,%eax
  jmp    L3503
L786:
  mov    $0x0,%eax
L3503:
  sub    %eax,%r12d
  mov    -0x60(%rbp),%rax
  add    $0x3c,%rax
  mov    (%rax),%eax
  test   %eax,%eax
  je     L1020
  mov    -0x60(%rbp),%rax
  add    $0x3c,%rax
  mov    (%rax),%eax
  imul   $0x5ce7,%eax,%eax
  jmp    L1084
L1020:
  mov    $0x0,%eax
L1084:
  sub    %eax,%r12d
  mov    -0x60(%rbp),%rax
  add    $0x64,%rax
  mov    (%rax),%eax
  test   %eax,%eax
  je     L2631
  mov    -0x60(%rbp),%rax
  add    $0x64,%rax
  mov    (%rax),%eax
  imul   $0x3997,%eax,%eax
  jmp    L813
L2631:
  mov    $0x0,%eax
L813:
  sub    %eax,%r12d
  mov    -0x60(%rbp),%rax
  add    $0x6c,%rax
  mov    (%rax),%eax
  test   %eax,%eax
  je     L3914
  mov    -0x60(%rbp),%rax
  add    $0x6c,%rax
  mov    (%rax),%eax
  imul   $0xd83,%eax,%eax
  jmp    L2348
L3914:
  mov    $0x0,%eax
L2348:
  sub    %eax,%r12d
  mov    -0x60(%rbp),%rax
  add    $0x74,%rax
  mov    (%rax),%eax
  test   %eax,%eax
  je     L1214
  mov    -0x60(%rbp),%rax
  add    $0x74,%rax
  mov    (%rax),%eax
  imul   $0x43ef,%eax,%eax
  jmp    L458
L1214:
  mov    $0x0,%eax
L458:
  sub    %eax,%r12d
  mov    -0x60(%rbp),%rax
  add    $0x7c,%rax
  mov    (%rax),%eax
  test   %eax,%eax
  je     L949
  mov    -0x60(%rbp),%rax
  add    $0x7c,%rax
  mov    (%rax),%eax
  imul   $0x267b,%eax,%eax
  jmp    L3426
L949:
  mov    $0x0,%eax
L3426:
  sub    %eax,%r12d
  cmpl   $0x0,-0x40(%rbp)
  je     L4125
  mov    -0x40(%rbp),%eax
  imul   $0x6a6a,%eax,%eax
  jmp    L4175
L4125:
  mov    $0x0,%eax
L4175:
  mov    %eax,%r15d
  cmpl   $0x0,-0x3c(%rbp)
  je     L3128
  mov    -0x3c(%rbp),%eax
  imul   $0x18f8,%eax,%eax
  jmp    L116
L3128:
  mov    $0x0,%eax
L116:
  sub    %eax,%r15d
  cmpl   $0x0,-0x38(%rbp)
  je     L1851
  mov    -0x38(%rbp),%eax
  imul   $0x7d86,%eax,%eax
  jmp    L2571
L1851:
  mov    $0x0,%eax
L2571:
  sub    %eax,%r15d
  cmpl   $0x0,-0x34(%rbp)
  je     L2192
  mov    -0x34(%rbp),%eax
  imul   $0x471a,%eax,%eax
  jmp    L1897
L2192:
  mov    $0x0,%eax
L1897:
  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     L1046
  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    L4257
L1046:
  mov    $0x0,%eax
L4257:
  mov    %eax,%r14d
  mov    -0x60(%rbp),%rax
  add    $0x38,%rax
  mov    (%rax),%eax
  test   %eax,%eax
  je     L1430
  mov    -0x60(%rbp),%rax
  add    $0x38,%rax
  mov    (%rax),%eax
  imul   $0x9a7e,%eax,%eax
  jmp    L588
L1430:
  mov    $0x0,%eax
L588:
  sub    %eax,%r14d
  mov    -0x60(%rbp),%rax
  add    $0x68,%rax
  mov    (%rax),%eax
  test   %eax,%eax
  je     L1847
  mov    -0x60(%rbp),%rax
  add    $0x68,%rax
  mov    (%rax),%eax
  imul   $0x1a81,%eax,%eax
  jmp    L2639
L1847:
  mov    $0x0,%eax
L2639:
  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     L781
  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    L4385
L781:
  mov    $0x0,%eax
L4385:
  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     L3938
  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    L909
L3938:
  mov    $0x0,%eax
L909:
  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     L748
  test   %ebx,%ebx
  jns    L2849
  mov    $0x0,%eax
  jmp    L1434
L2849:
  mov    $0xffffffff,%eax
  jmp    L1434
L748:
  mov    %ebx,%eax
L1434:
  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     L1218
  test   %ebx,%ebx
  jns    L1451
  mov    $0x0,%eax
  jmp    L3742
L1451:
  mov    $0xffffffff,%eax
  jmp    L3742
L1218:
  mov    %ebx,%eax
L3742:
  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     L2146
  test   %ebx,%ebx
  jns    L2109
  mov    $0x0,%eax
  jmp    L4386
L2109:
  mov    $0xffffffff,%eax
  jmp    L4386
L2146:
  mov    %ebx,%eax
L4386:
  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     L1515
  test   %ebx,%ebx
  jns    L3579
  mov    $0x0,%eax
  jmp    L4190
L3579:
  mov    $0xffffffff,%eax
  jmp    L4190
L1515:
  mov    %ebx,%eax
L4190:
  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     L1618
  mov    -0x48(%rbp),%eax
  imul   $0x30fa,%eax,%eax
  jmp    L1597
L1618:
  mov    $0x0,%eax
L1597:
  sub    %eax,%r13d
  cmpl   $0x0,-0x44(%rbp)
  je     L1147
  mov    -0x44(%rbp),%eax
  imul   $0x763e,%eax,%eax
  jmp    L1881
L1147:
  mov    $0x0,%eax
L1881:
  add    %eax,%r13d
  mov    -0x60(%rbp),%rax
  add    $0x24,%rax
  mov    (%rax),%eax
  test   %eax,%eax
  je     L1160
  mov    -0x60(%rbp),%rax
  add    $0x24,%rax
  mov    (%rax),%eax
  imul   $0x5ce7,%eax,%eax
  jmp    L1910
L1160:
  mov    $0x0,%eax
L1910:
  mov    %eax,%r12d
  mov    -0x60(%rbp),%rax
  add    $0x2c,%rax
  mov    (%rax),%eax
  test   %eax,%eax
  je     L3581
  mov    -0x60(%rbp),%rax
  add    $0x2c,%rax
  mov    (%rax),%eax
  imul   $0xa402,%eax,%eax
  jmp    L2268
L3581:
  mov    $0x0,%eax
L2268:
  sub    %eax,%r12d
  mov    -0x60(%rbp),%rax
  add    $0x34,%rax
  mov    (%rax),%eax
  test   %eax,%eax
  je     L3613
  mov    -0x60(%rbp),%rax
  add    $0x34,%rax
  mov    (%rax),%eax
  imul   $0x209f,%eax,%eax
  jmp    L559
L3613:
  mov    $0x0,%eax
L559:
  add    %eax,%r12d
  mov    -0x60(%rbp),%rax
  add    $0x3c,%rax
  mov    (%rax),%eax
  test   %eax,%eax
  je     L3189
  mov    -0x60(%rbp),%rax
  add    $0x3c,%rax
  mov    (%rax),%eax
  imul   $0x8b0a,%eax,%eax
  jmp    L647
L3189:
  mov    $0x0,%eax
L647:
  add    %eax,%r12d
  mov    -0x60(%rbp),%rax
  add    $0x64,%rax
  mov    (%rax),%eax
  test   %eax,%eax
  je     L2392
  mov    -0x60(%rbp),%rax
  add    $0x64,%rax
  mov    (%rax),%eax
  imul   $0x267b,%eax,%eax
  jmp    L3632
L2392:
  mov    $0x0,%eax
L3632:
  add    %eax,%r12d
  mov    -0x60(%rbp),%rax
  add    $0x6c,%rax
  mov    (%rax),%eax
  test   %eax,%eax
  je     L1822
  mov    -0x60(%rbp),%rax
  add    $0x6c,%rax
  mov    (%rax),%eax
  imul   $0x43ef,%eax,%eax
  jmp    L2629
L1822:
  mov    $0x0,%eax
L2629:
  sub    %eax,%r12d
  mov    -0x60(%rbp),%rax
  add    $0x74,%rax
  mov    (%rax),%eax
  test   %eax,%eax
  je     L1165
  mov    -0x60(%rbp),%rax
  add    $0x74,%rax
  mov    (%rax),%eax
  imul   $0xd83,%eax,%eax
  jmp    L1883
L1165:
  mov    $0x0,%eax
L1883:
  add    %eax,%r12d
  mov    -0x60(%rbp),%rax
  add    $0x7c,%rax
  mov    (%rax),%eax
  test   %eax,%eax
  je     L2129
  mov    -0x60(%rbp),%rax
  add    $0x7c,%rax
  mov    (%rax),%eax
  imul   $0x3997,%eax,%eax
  jmp    L276
L2129:
  mov    $0x0,%eax
L276:
  add    %eax,%r12d
  cmpl   $0x0,-0x40(%rbp)
  je     L464
  mov    -0x40(%rbp),%eax
  imul   $0x471a,%eax,%eax
  jmp    L3697
L464:
  mov    $0x0,%eax
L3697:
  mov    %eax,%r15d
  cmpl   $0x0,-0x3c(%rbp)
  je     L1697
  mov    -0x3c(%rbp),%eax
  imul   $0x7d86,%eax,%eax
  jmp    L2085
L1697:
  mov    $0x0,%eax
L2085:
  sub    %eax,%r15d
  cmpl   $0x0,-0x38(%rbp)
  je     L2570
  mov    -0x38(%rbp),%eax
  imul   $0x18f8,%eax,%eax
  jmp    L2424
L2570:
  mov    $0x0,%eax
L2424:
  add    %eax,%r15d
  cmpl   $0x0,-0x34(%rbp)
  je     L1422
  mov    -0x34(%rbp),%eax
  imul   $0x6a6a,%eax,%eax
  jmp    L3243
L1422:
  mov    $0x0,%eax
L3243:
  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     L231
  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    L2864
L231:
  mov    $0x0,%eax
L2864:
  mov    %eax,%r14d
  mov    -0x60(%rbp),%rax
  add    $0x38,%rax
  mov    (%rax),%eax
  test   %eax,%eax
  je     L4014
  mov    -0x60(%rbp),%rax
  add    $0x38,%rax
  mov    (%rax),%eax
  imul   $0x9a7e,%eax,%eax
  jmp    L1672
L4014:
  mov    $0x0,%eax
L1672:
  add    %eax,%r14d
  mov    -0x60(%rbp),%rax
  add    $0x68,%rax
  mov    (%rax),%eax
  test   %eax,%eax
  je     L3336
  mov    -0x60(%rbp),%rax
  add    $0x68,%rax
  mov    (%rax),%eax
  imul   $0x1a81,%eax,%eax
  jmp    L3656
L3336:
  mov    $0x0,%eax
L3656:
  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     L3901
  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    L1326
L3901:
  mov    $0x0,%eax
L1326:
  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     L3887
  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    L4089
L3887:
  mov    $0x0,%eax
L4089:
  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     L2932
  test   %ebx,%ebx
  jns    L275
  mov    $0x0,%eax
  jmp    L4013
L275:
  mov    $0xffffffff,%eax
  jmp    L4013
L2932:
  mov    %ebx,%eax
L4013:
  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     L395
  test   %ebx,%ebx
  jns    L621
  mov    $0x0,%eax
  jmp    L875
L621:
  mov    $0xffffffff,%eax
  jmp    L875
L395:
  mov    %ebx,%eax
L875:
  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     L1526
  test   %ebx,%ebx
  jns    L3734
  mov    $0x0,%eax
  jmp    L2285
L3734:
  mov    $0xffffffff,%eax
  jmp    L2285
L1526:
  mov    %ebx,%eax
L2285:
  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     L3965
  test   %ebx,%ebx
  jns    L463
  mov    $0x0,%eax
  jmp    L3590
L463:
  mov    $0xffffffff,%eax
  jmp    L3590
L3965:
  mov    %ebx,%eax
L3590:
  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     L4281
  mov    -0x48(%rbp),%eax
  imul   $0x763e,%eax,%eax
  jmp    L1616
L4281:
  mov    $0x0,%eax
L1616:
  sub    %eax,%r13d
  cmpl   $0x0,-0x44(%rbp)
  je     L385
  mov    -0x44(%rbp),%eax
  imul   $0x30fa,%eax,%eax
  jmp    L2668
L385:
  mov    $0x0,%eax
L2668:
  sub    %eax,%r13d
  mov    -0x60(%rbp),%rax
  add    $0x24,%rax
  mov    (%rax),%eax
  test   %eax,%eax
  je     L828
  mov    -0x60(%rbp),%rax
  add    $0x24,%rax
  mov    (%rax),%eax
  imul   $0x209f,%eax,%eax
  jmp    L2093
L828:
  mov    $0x0,%eax
L2093:
  mov    %eax,%r12d
  mov    -0x60(%rbp),%rax
  add    $0x2c,%rax
  mov    (%rax),%eax
  test   %eax,%eax
  je     L3660
  mov    -0x60(%rbp),%rax
  add    $0x2c,%rax
  mov    (%rax),%eax
  imul   $0x5ce7,%eax,%eax
  jmp    L536
L3660:
  mov    $0x0,%eax
L536:
  sub    %eax,%r12d
  mov    -0x60(%rbp),%rax
  add    $0x34,%rax
  mov    (%rax),%eax
  test   %eax,%eax
  je     L2208
  mov    -0x60(%rbp),%rax
  add    $0x34,%rax
  mov    (%rax),%eax
  imul   $0x8b0a,%eax,%eax
  jmp    L3804
L2208:
  mov    $0x0,%eax
L3804:
  add    %eax,%r12d
  mov    -0x60(%rbp),%rax
  add    $0x64,%rax
  mov    (%rax),%eax
  test   %eax,%eax
  je     L2284
  mov    -0x60(%rbp),%rax
  add    $0x64,%rax
  mov    (%rax),%eax
  imul   $0xd83,%eax,%eax
  jmp    L373
L2284:
  mov    $0x0,%eax
L373:
  add    %eax,%r12d
  mov    -0x60(%rbp),%rax
  add    $0x6c,%rax
  mov    (%rax),%eax
  test   %eax,%eax
  je     L4249
  mov    -0x60(%rbp),%rax
  add    $0x6c,%rax
  mov    (%rax),%eax
  imul   $0x267b,%eax,%eax
  jmp    L1270
L4249:
  mov    $0x0,%eax
L1270:
  sub    %eax,%r12d
  mov    -0x60(%rbp),%rax
  add    $0x74,%rax
  mov    (%rax),%eax
  test   %eax,%eax
  je     L3187
  mov    -0x60(%rbp),%rax
  add    $0x74,%rax
  mov    (%rax),%eax
  imul   $0x3997,%eax,%eax
  jmp    L1113
L3187:
  mov    $0x0,%eax
L1113:
  add    %eax,%r12d
  cmpl   $0x0,-0x40(%rbp)
  je     L1357
  mov    -0x40(%rbp),%eax
  imul   $0x18f8,%eax,%eax
  jmp    L2280
L1357:
  mov    $0x0,%eax
L2280:
  mov    %eax,%r15d
  cmpl   $0x0,-0x3c(%rbp)
  je     L927
  mov    -0x3c(%rbp),%eax
  imul   $0x471a,%eax,%eax
  jmp    L3575
L927:
  mov    $0x0,%eax
L3575:
  sub    %eax,%r15d
  cmpl   $0x0,-0x38(%rbp)
  je     L1054
  mov    -0x38(%rbp),%eax
  imul   $0x6a6a,%eax,%eax
  jmp    L2035
L1054:
  mov    $0x0,%eax
L2035:
  add    %eax,%r15d
  mov    -0x60(%rbp),%rax
  add    $0x28,%rax
  mov    (%rax),%eax
  test   %eax,%eax
  je     L1157
  mov    -0x60(%rbp),%rax
  add    $0x28,%rax
  mov    (%rax),%eax
  imul   $0xffff6582,%eax,%eax
  jmp    L3521
L1157:
  mov    $0x0,%eax
L3521:
  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     L364
  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    L4117
L364:
  mov    $0x0,%eax
L4117:
  add    %eax,%r14d
  mov    -0x60(%rbp),%rax
  add    $0x78,%rax
  mov    (%rax),%eax
  test   %eax,%eax
  je     L2215
  mov    -0x60(%rbp),%rax
  add    $0x78,%rax
  mov    (%rax),%eax
  imul   $0x1a81,%eax,%eax
  jmp    L492
L2215:
  mov    $0x0,%eax
L492:
  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     L2071
  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    L782
L2071:
  mov    $0x0,%eax
L782:
  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     L178
  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    L2493
L178:
  mov    $0x0,%eax
L2493:
  add    %eax,%r14d
  cmpl   $0x0,-0x34(%rbp)
  je     L1726
  mov    -0x34(%rbp),%eax
  imul   $0x7d86,%eax,%eax
  jmp    L3713
L1726:
  mov    $0x0,%eax
L3713:
  mov    %eax,-0x30(%rbp)
  mov    -0x60(%rbp),%rax
  add    $0x3c,%rax
  mov    (%rax),%eax
  test   %eax,%eax
  je     L592
  mov    -0x60(%rbp),%rax
  add    $0x3c,%rax
  mov    (%rax),%eax
  imul   $0xa402,%eax,%edx
  jmp    L576
L592:
  mov    $0x0,%edx
L576:
  mov    -0x60(%rbp),%rax
  add    $0x7c,%rax
  mov    (%rax),%eax
  test   %eax,%eax
  je     L2595
  mov    -0x60(%rbp),%rax
  add    $0x7c,%rax
  mov    (%rax),%eax
  imul   $0x43ef,%eax,%eax
  jmp    L3536
L2595:
  mov    $0x0,%eax
L3536:
  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     L2861
  test   %ebx,%ebx
  jns    L1561
  mov    $0x0,%eax
  jmp    L3375
L1561:
  mov    $0xffffffff,%eax
  jmp    L3375
L2861:
  mov    %ebx,%eax
L3375:
  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     L2976
  test   %ebx,%ebx
  jns    L500
  mov    $0x0,%eax
  jmp    L2718
L500:
  mov    $0xffffffff,%eax
  jmp    L2718
L2976:
  mov    %ebx,%eax
L2718:
  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     L1832
  test   %ebx,%ebx
  jns    L2188
  mov    $0x0,%eax
  jmp    L1174
L2188:
  mov    $0xffffffff,%eax
  jmp    L1174
L1832:
  mov    %ebx,%eax
L1174:
  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     L2529
  test   %ebx,%ebx
  jns    L3992
  mov    $0x0,%eax
  jmp    L4221
L3992:
  mov    $0xffffffff,%eax
  jmp    L4221
L2529:
  mov    %ebx,%eax
L4221:
  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     L1455
  mov    -0x48(%rbp),%eax
  imul   $0x763e,%eax,%eax
  jmp    L2326
L1455:
  mov    $0x0,%eax
L2326:
  add    %eax,%r13d
  cmpl   $0x0,-0x44(%rbp)
  je     L409
  mov    -0x44(%rbp),%eax
  imul   $0x30fa,%eax,%eax
  jmp    L194
L409:
  mov    $0x0,%eax
L194:
  add    %eax,%r13d
  mov    -0x60(%rbp),%rax
  add    $0x24,%rax
  mov    (%rax),%eax
  test   %eax,%eax
  je     L965
  mov    -0x60(%rbp),%rax
  add    $0x24,%rax
  mov    (%rax),%eax
  imul   $0x43ef,%eax,%eax
  jmp    L1896
L965:
  mov    $0x0,%eax
L1896:
  mov    %eax,%r12d
  mov    -0x60(%rbp),%rax
  add    $0x2c,%rax
  mov    (%rax),%eax
  test   %eax,%eax
  je     L3339
  mov    -0x60(%rbp),%rax
  add    $0x2c,%rax
  mov    (%rax),%eax
  imul   $0x3997,%eax,%eax
  jmp    L1039
L3339:
  mov    $0x0,%eax
L1039:
  add    %eax,%r12d
  mov    -0x60(%rbp),%rax
  add    $0x34,%rax
  mov    (%rax),%eax
  test   %eax,%eax
  je     L56
  mov    -0x60(%rbp),%rax
  add    $0x34,%rax
  mov    (%rax),%eax
  imul   $0x267b,%eax,%eax
  jmp    L1708
L56:
  mov    $0x0,%eax
L1708:
  add    %eax,%r12d
  mov    -0x60(%rbp),%rax
  add    $0x3c,%rax
  mov    (%rax),%eax
  test   %eax,%eax
  je     L79
  mov    -0x60(%rbp),%rax
  add    $0x3c,%rax
  mov    (%rax),%eax
  imul   $0xd83,%eax,%eax
  jmp    L3776
L79:
  mov    $0x0,%eax
L3776:
  add    %eax,%r12d
  mov    -0x60(%rbp),%rax
  add    $0x64,%rax
  mov    (%rax),%eax
  test   %eax,%eax
  je     L3361
  mov    -0x60(%rbp),%rax
  add    $0x64,%rax
  mov    (%rax),%eax
  imul   $0xa402,%eax,%eax
  jmp    L2839
L3361:
  mov    $0x0,%eax
L2839:
  sub    %eax,%r12d
  mov    -0x60(%rbp),%rax
  add    $0x6c,%rax
  mov    (%rax),%eax
  test   %eax,%eax
  je     L961
  mov    -0x60(%rbp),%rax
  add    $0x6c,%rax
  mov    (%rax),%eax
  imul   $0x8b0a,%eax,%eax
  jmp    L4370
L961:
  mov    $0x0,%eax
L4370:
  sub    %eax,%r12d
  mov    -0x60(%rbp),%rax
  add    $0x74,%rax
  mov    (%rax),%eax
  test   %eax,%eax
  je     L400
  mov    -0x60(%rbp),%rax
  add    $0x74,%rax
  mov    (%rax),%eax
  imul   $0x5ce7,%eax,%eax
  jmp    L4035
L400:
  mov    $0x0,%eax
L4035:
  sub    %eax,%r12d
  mov    -0x60(%rbp),%rax
  add    $0x7c,%rax
  mov    (%rax),%eax
  test   %eax,%eax
  je     L861
  mov    -0x60(%rbp),%rax
  add    $0x7c,%rax
  mov    (%rax),%eax
  imul   $0x209f,%eax,%eax
  jmp    L4199
L861:
  mov    $0x0,%eax
L4199:
  sub    %eax,%r12d
  cmpl   $0x0,-0x40(%rbp)
  je     L1134
  mov    -0x40(%rbp),%eax
  imul   $0x7d86,%eax,%eax
  jmp    L2540
L1134:
  mov    $0x0,%eax
L2540:
  mov    %eax,%r15d
  cmpl   $0x0,-0x3c(%rbp)
  je     L873
  mov    -0x3c(%rbp),%eax
  imul   $0x6a6a,%eax,%eax
  jmp    L1129
L873:
  mov    $0x0,%eax
L1129:
  add    %eax,%r15d
  cmpl   $0x0,-0x38(%rbp)
  je     L2107
  mov    -0x38(%rbp),%eax
  imul   $0x471a,%eax,%eax
  jmp    L1209
L2107:
  mov    $0x0,%eax
L1209:
  add    %eax,%r15d
  cmpl   $0x0,-0x34(%rbp)
  je     L1963
  mov    -0x34(%rbp),%eax
  imul   $0x18f8,%eax,%eax
  jmp    L2404
L1963:
  mov    $0x0,%eax
L2404:
  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     L3806
  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    L1469
L3806:
  mov    $0x0,%eax
L1469:
  mov    %eax,%r14d
  mov    -0x60(%rbp),%rax
  add    $0x38,%rax
  mov    (%rax),%eax
  test   %eax,%eax
  je     L224
  mov    -0x60(%rbp),%rax
  add    $0x38,%rax
  mov    (%rax),%eax
  imul   $0x1a81,%eax,%eax
  jmp    L2944
L224:
  mov    $0x0,%eax
L2944:
  add    %eax,%r14d
  mov    -0x60(%rbp),%rax
  add    $0x68,%rax
  mov    (%rax),%eax
  test   %eax,%eax
  je     L2054
  mov    -0x60(%rbp),%rax
  add    $0x68,%rax
  mov    (%rax),%eax
  imul   $0x9a7e,%eax,%eax
  jmp    L1703
L2054:
  mov    $0x0,%eax
L1703:
  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     L2753
  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    L2231
L2753:
  mov    $0x0,%eax
L2231:
  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     L3391
  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    L2959
L3391:
  mov    $0x0,%eax
L2959:
  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     L2075
  test   %ebx,%ebx
  jns    L497
  mov    $0x0,%eax
  jmp    L849
L497:
  mov    $0xffffffff,%eax
  jmp    L849
L2075:
  mov    %ebx,%eax
L849:
  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     L200
  test   %ebx,%ebx
  jns    L1761
  mov    $0x0,%eax
  jmp    L2409
L1761:
  mov    $0xffffffff,%eax
  jmp    L2409
L200:
  mov    %ebx,%eax
L2409:
  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     L1542
  test   %ebx,%ebx
  jns    L1798
  mov    $0x0,%eax
  jmp    L1532
L1798:
  mov    $0xffffffff,%eax
  jmp    L1532
L1542:
  mov    %ebx,%eax
L1532:
  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     L3136
  test   %ebx,%ebx
  jns    L2532
  mov    $0x0,%eax
  jmp    L3245
L2532:
  mov    $0xffffffff,%eax
  jmp    L3245
L3136:
  mov    %ebx,%eax
L3245:
  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     L1721
  mov    -0x48(%rbp),%eax
  imul   $0x30fa,%eax,%eax
  jmp    L1932
L1721:
  mov    $0x0,%eax
L1932:
  add    %eax,%r13d
  cmpl   $0x0,-0x44(%rbp)
  je     L126
  mov    -0x44(%rbp),%eax
  imul   $0x763e,%eax,%eax
  jmp    L3519
L126:
  mov    $0x0,%eax
L3519:
  sub    %eax,%r13d
  mov    -0x60(%rbp),%rax
  add    $0x24,%rax
  mov    (%rax),%eax
  test   %eax,%eax
  je     L413
  mov    -0x60(%rbp),%rax
  add    $0x24,%rax
  mov    (%rax),%eax
  imul   $0x3997,%eax,%eax
  jmp    L4206
L413:
  mov    $0x0,%eax
L4206:
  mov    %eax,%r12d
  mov    -0x60(%rbp),%rax
  add    $0x2c,%rax
  mov    (%rax),%eax
  test   %eax,%eax
  je     L34
  mov    -0x60(%rbp),%rax
  add    $0x2c,%rax
  mov    (%rax),%eax
  imul   $0xd83,%eax,%eax
  jmp    L423
L34:
  mov    $0x0,%eax
L423:
  sub    %eax,%r12d
  mov    -0x60(%rbp),%rax
  add    $0x34,%rax
  mov    (%rax),%eax
  test   %eax,%eax
  je     L1935
  mov    -0x60(%rbp),%rax
  add    $0x34,%rax
  mov    (%rax),%eax
  imul   $0x43ef,%eax,%eax
  jmp    L1826
L1935:
  mov    $0x0,%eax
L1826:
  sub    %eax,%r12d
  mov    -0x60(%rbp),%rax
  add    $0x3c,%rax
  mov    (%rax),%eax
  test   %eax,%eax
  je     L4069
  mov    -0x60(%rbp),%rax
  add    $0x3c,%rax
  mov    (%rax),%eax
  imul   $0x267b,%eax,%eax
  jmp    L3700
L4069:
  mov    $0x0,%eax
L3700:
  sub    %eax,%r12d
  mov    -0x60(%rbp),%rax
  add    $0x64,%rax
  mov    (%rax),%eax
  test   %eax,%eax
  je     L1261
  mov    -0x60(%rbp),%rax
  add    $0x64,%rax
  mov    (%rax),%eax
  imul   $0x8b0a,%eax,%eax
  jmp    L4124
L1261:
  mov    $0x0,%eax
L4124:
  sub    %eax,%r12d
  mov    -0x60(%rbp),%rax
  add    $0x6c,%rax
  mov    (%rax),%eax
  test   %eax,%eax
  je     L1957
  mov    -0x60(%rbp),%rax
  add    $0x6c,%rax
  mov    (%rax),%eax
  imul   $0x209f,%eax,%eax
  jmp    L3010
L1957:
  mov    $0x0,%eax
L3010:
  add    %eax,%r12d
  mov    -0x60(%rbp),%rax
  add    $0x74,%rax
  mov    (%rax),%eax
  test   %eax,%eax
  je     L1699
  mov    -0x60(%rbp),%rax
  add    $0x74,%rax
  mov    (%rax),%eax
  imul   $0xa402,%eax,%eax
  jmp    L4379
L1699:
  mov    $0x0,%eax
L4379:
  add    %eax,%r12d
  mov    -0x60(%rbp),%rax
  add    $0x7c,%rax
  mov    (%rax),%eax
  test   %eax,%eax
  je     L3799
  mov    -0x60(%rbp),%rax
  add    $0x7c,%rax
  mov    (%rax),%eax
  imul   $0x5ce7,%eax,%eax
  jmp    L281
L3799:
  mov    $0x0,%eax
L281:
  add    %eax,%r12d
  cmpl   $0x0,-0x40(%rbp)
  je     L2947
  mov    -0x40(%rbp),%eax
  imul   $0x6a6a,%eax,%eax
  jmp    L4395
L2947:
  mov    $0x0,%eax
L4395:
  mov    %eax,%r15d
  cmpl   $0x0,-0x3c(%rbp)
  je     L386
  mov    -0x3c(%rbp),%eax
  imul   $0x18f8,%eax,%eax
  jmp    L4026
L386:
  mov    $0x0,%eax
L4026:
  sub    %eax,%r15d
  cmpl   $0x0,-0x38(%rbp)
  je     L2892
  mov    -0x38(%rbp),%eax
  imul   $0x7d86,%eax,%eax
  jmp    L713
L2892:
  mov    $0x0,%eax
L713:
  sub    %eax,%r15d
  cmpl   $0x0,-0x34(%rbp)
  je     L1853
  mov    -0x34(%rbp),%eax
  imul   $0x471a,%eax,%eax
  jmp    L3948
L1853:
  mov    $0x0,%eax
L3948:
  sub    %eax,%r15d
  mov    -0x60(%rbp),%rax
  add    $0x28,%rax
  mov    (%rax),%eax
  test   %eax,%eax
  je     L1213
  mov    -0x60(%rbp),%rax
  add    $0x28,%rax
  mov    (%rax),%eax
  imul   $0x1a81,%eax,%eax
  jmp    L2888
L1213:
  mov    $0x0,%eax
L2888:
  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     L1633
  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    L4127
L1633:
  mov    $0x0,%eax
L4127:
  sub    %eax,%r14d
  mov    -0x60(%rbp),%rax
  add    $0x78,%rax
  mov    (%rax),%eax
  test   %eax,%eax
  je     L3346
  mov    -0x60(%rbp),%rax
  add    $0x78,%rax
  mov    (%rax),%eax
  imul   $0x9a7e,%eax,%eax
  jmp    L1405
L3346:
  mov    $0x0,%eax
L1405:
  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     L1431
  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    L569
L1431:
  mov    $0x0,%eax
L569:
  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     L2259
  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    L3511
L2259:
  mov    $0x0,%eax
L3511:
  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     L2798
  test   %ebx,%ebx
  jns    L1463
  mov    $0x0,%eax
  jmp    L3828
L1463:
  mov    $0xffffffff,%eax
  jmp    L3828
L2798:
  mov    %ebx,%eax
L3828:
  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     L1285
  test   %ebx,%ebx
  jns    L3580
  mov    $0x0,%eax
  jmp    L4053
L3580:
  mov    $0xffffffff,%eax
  jmp    L4053
L1285:
  mov    %ebx,%eax
L4053:
  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     L778
  test   %ebx,%ebx
  jns    L1879
  mov    $0x0,%eax
  jmp    L2070
L1879:
  mov    $0xffffffff,%eax
  jmp    L2070
L778:
  mov    %ebx,%eax
L2070:
  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     L3611
  test   %ebx,%ebx
  jns    L1942
  mov    $0x0,%eax
  jmp    L3885
L1942:
  mov    $0xffffffff,%eax
  jmp    L3885
L3611:
  mov    %ebx,%eax
L3885:
  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     L3483
  mov    -0x48(%rbp),%eax
  imul   $0x30fa,%eax,%eax
  jmp    L3594
L3483:
  mov    $0x0,%eax
L3594:
  sub    %eax,%r13d
  cmpl   $0x0,-0x44(%rbp)
  je     L389
  mov    -0x44(%rbp),%eax
  imul   $0x763e,%eax,%eax
  jmp    L3867
L389:
  mov    $0x0,%eax
L3867:
  add    %eax,%r13d
  mov    -0x60(%rbp),%rax
  add    $0x24,%rax
  mov    (%rax),%eax
  test   %eax,%eax
  je     L680
  mov    -0x60(%rbp),%rax
  add    $0x24,%rax
  mov    (%rax),%eax
  imul   $0x267b,%eax,%eax
  jmp    L1734
L680:
  mov    $0x0,%eax
L1734:
  mov    %eax,%r12d
  mov    -0x60(%rbp),%rax
  add    $0x2c,%rax
  mov    (%rax),%eax
  test   %eax,%eax
  je     L330
  mov    -0x60(%rbp),%rax
  add    $0x2c,%rax
  mov    (%rax),%eax
  imul   $0x43ef,%eax,%eax
  jmp    L4094
L330:
  mov    $0x0,%eax
L4094:
  sub    %eax,%r12d
  mov    -0x60(%rbp),%rax
  add    $0x34,%rax
  mov    (%rax),%eax
  test   %eax,%eax
  je     L3838
  mov    -0x60(%rbp),%rax
  add    $0x34,%rax
  mov    (%rax),%eax
  imul   $0xd83,%eax,%eax
  jmp    L1000
L3838:
  mov    $0x0,%eax
L1000:
  add    %eax,%r12d
  mov    -0x60(%rbp),%rax
  add    $0x3c,%rax
  mov    (%rax),%eax
  test   %eax,%eax
  je     L89
  mov    -0x60(%rbp),%rax
  add    $0x3c,%rax
  mov    (%rax),%eax
  imul   $0x3997,%eax,%eax
  jmp    L3177
L89:
  mov    $0x0,%eax
L3177:
  add    %eax,%r12d
  mov    -0x60(%rbp),%rax
  add    $0x64,%rax
  mov    (%rax),%eax
  test   %eax,%eax
  je     L1271
  mov    -0x60(%rbp),%rax
  add    $0x64,%rax
  mov    (%rax),%eax
  imul   $0x5ce7,%eax,%eax
  jmp    L3935
L1271:
  mov    $0x0,%eax
L3935:
  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    L2811
L1442:
  mov    $0x0,%eax
L2811:
  add    %eax,%r12d
  mov    -0x60(%rbp),%rax
  add    $0x74,%rax
  mov    (%rax),%eax
  test   %eax,%eax
  je     L3347
  mov    -0x60(%rbp),%rax
  add    $0x74,%rax
  mov    (%rax),%eax
  imul   $0x209f,%eax,%eax
  jmp    L19
L3347:
  mov    $0x0,%eax
L19:
  sub    %eax,%r12d
  mov    -0x60(%rbp),%rax
  add    $0x7c,%rax
  mov    (%rax),%eax
  test   %eax,%eax
  je     L120
  mov    -0x60(%rbp),%rax
  add    $0x7c,%rax
  mov    (%rax),%eax
  imul   $0x8b0a,%eax,%eax
  jmp    L407
L120:
  mov    $0x0,%eax
L407:
  sub    %eax,%r12d
  cmpl   $0x0,-0x40(%rbp)
  je     L195
  mov    -0x40(%rbp),%eax
  imul   $0x471a,%eax,%eax
  jmp    L4055
L195:
  mov    $0x0,%eax
L4055:
  mov    %eax,%r15d
  cmpl   $0x0,-0x3c(%rbp)
  je     L4110
  mov    -0x3c(%rbp),%eax
  imul   $0x7d86,%eax,%eax
  jmp    L2500
L4110:
  mov    $0x0,%eax
L2500:
  sub    %eax,%r15d
  cmpl   $0x0,-0x38(%rbp)
  je     L857
  mov    -0x38(%rbp),%eax
  imul   $0x18f8,%eax,%eax
  jmp    L2467
L857:
  mov    $0x0,%eax
L2467:
  add    %eax,%r15d
  cmpl   $0x0,-0x34(%rbp)
  je     L779
  mov    -0x34(%rbp),%eax
  imul   $0x6a6a,%eax,%eax
  jmp    L941
L779:
  mov    $0x0,%eax
L941:
  add    %eax,%r15d
  mov    -0x60(%rbp),%rax
  add    $0x28,%rax
  mov    (%rax),%eax
  test   %eax,%eax
  je     L444
  mov    -0x60(%rbp),%rax
  add    $0x28,%rax
  mov    (%rax),%eax
  imul   $0xffffe57f,%eax,%eax
  jmp    L1985
L444:
  mov    $0x0,%eax
L1985:
  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     L2402
  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    L968
L2402:
  mov    $0x0,%eax
L968:
  add    %eax,%r14d
  mov    -0x60(%rbp),%rax
  add    $0x78,%rax
  mov    (%rax),%eax
  test   %eax,%eax
  je     L243
  mov    -0x60(%rbp),%rax
  add    $0x78,%rax
  mov    (%rax),%eax
  imul   $0x9a7e,%eax,%eax
  jmp    L1454
L243:
  mov    $0x0,%eax
L1454:
  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     L557
  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    L466
L557:
  mov    $0x0,%eax
L466:
  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     L856
  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    L2090
L856:
  mov    $0x0,%eax
L2090:
  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     L2618
  test   %ebx,%ebx
  jns    L2191
  mov    $0x0,%eax
  jmp    L2751
L2191:
  mov    $0xffffffff,%eax
  jmp    L2751
L2618:
  mov    %ebx,%eax
L2751:
  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     L1304
  test   %ebx,%ebx
  jns    L2836
  mov    $0x0,%eax
  jmp    L1062
L2836:
  mov    $0xffffffff,%eax
  jmp    L1062
L1304:
  mov    %ebx,%eax
L1062:
  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     L11
  test   %ebx,%ebx
  jns    L1968
  mov    $0x0,%eax
  jmp    L1531
L1968:
  mov    $0xffffffff,%eax
  jmp    L1531
L11:
  mov    %ebx,%eax
L1531:
  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     L4136
  test   %ebx,%ebx
  jns    L2313
  mov    $0x0,%eax
  jmp    L2430
L2313:
  mov    $0xffffffff,%eax
  jmp    L2430
L4136:
  mov    %ebx,%eax
L2430:
  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     L1181
  mov    -0x48(%rbp),%eax
  imul   $0x763e,%eax,%eax
  jmp    L207
L1181:
  mov    $0x0,%eax
L207:
  sub    %eax,%r13d
  cmpl   $0x0,-0x44(%rbp)
  je     L2296
  mov    -0x44(%rbp),%eax
  imul   $0x30fa,%eax,%eax
  jmp    L1465
L2296:
  mov    $0x0,%eax
L1465:
  sub    %eax,%r13d
  mov    -0x60(%rbp),%rax
  add    $0x24,%rax
  mov    (%rax),%eax
  test   %eax,%eax
  je     L1215
  mov    -0x60(%rbp),%rax
  add    $0x24,%rax
  mov    (%rax),%eax
  imul   $0xd83,%eax,%eax
  jmp    L182
L1215:
  mov    $0x0,%eax
L182:
  mov    %eax,%r12d
  mov    -0x60(%rbp),%rax
  add    $0x2c,%rax
  mov    (%rax),%eax
  test   %eax,%eax
  je     L763
  mov    -0x60(%rbp),%rax
  add    $0x2c,%rax
  mov    (%rax),%eax
  imul   $0x267b,%eax,%eax
  jmp    L1598
L763:
  mov    $0x0,%eax
L1598:
  sub    %eax,%r12d
  mov    -0x60(%rbp),%rax
  add    $0x34,%rax
  mov    (%rax),%eax
  test   %eax,%eax
  je     L1511
  mov    -0x60(%rbp),%rax
  add    $0x34,%rax
  mov    (%rax),%eax
  imul   $0x3997,%eax,%eax
  jmp    L1939
L1511:
  mov    $0x0,%eax
L1939:
  add    %eax,%r12d
  mov    -0x60(%rbp),%rax
  add    $0x64,%rax
  mov    (%rax),%eax
  test   %eax,%eax
  je     L1823
  mov    -0x60(%rbp),%rax
  add    $0x64,%rax
  mov    (%rax),%eax
  imul   $0x209f,%eax,%eax
  jmp    L507
L1823:
  mov    $0x0,%eax
L507:
  sub    %eax,%r12d
  mov    -0x60(%rbp),%rax
  add    $0x6c,%rax
  mov    (%rax),%eax
  test   %eax,%eax
  je     L3131
  mov    -0x60(%rbp),%rax
  add    $0x6c,%rax
  mov    (%rax),%eax
  imul   $0x5ce7,%eax,%eax
  jmp    L4399
L3131:
  mov    $0x0,%eax
L4399:
  add    %eax,%r12d
  mov    -0x60(%rbp),%rax
  add    $0x74,%rax
  mov    (%rax),%eax
  test   %eax,%eax
  je     L4159
  mov    -0x60(%rbp),%rax
  add    $0x74,%rax
  mov    (%rax),%eax
  imul   $0x8b0a,%eax,%eax
  jmp    L3060
L4159:
  mov    $0x0,%eax
L3060:
  sub    %eax,%r12d
  cmpl   $0x0,-0x40(%rbp)
  je     L3078
  mov    -0x40(%rbp),%eax
  imul   $0x18f8,%eax,%eax
  jmp    L1187
L3078:
  mov    $0x0,%eax
L1187:
  mov    %eax,%r15d
  cmpl   $0x0,-0x3c(%rbp)
  je     L29
  mov    -0x3c(%rbp),%eax
  imul   $0x471a,%eax,%eax
  jmp    L2018
L29:
  mov    $0x0,%eax
L2018:
  sub    %eax,%r15d
  cmpl   $0x0,-0x38(%rbp)
  je     L3253
  mov    -0x38(%rbp),%eax
  imul   $0x6a6a,%eax,%eax
  jmp    L3402
L3253:
  mov    $0x0,%eax
L3402:
  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     L3589
  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    L1592
L3589:
  mov    $0x0,%eax
L1592:
  mov    %eax,%r14d
  mov    -0x60(%rbp),%rax
  add    $0x38,%rax
  mov    (%rax),%eax
  test   %eax,%eax
  je     L2152
  mov    -0x60(%rbp),%rax
  add    $0x38,%rax
  mov    (%rax),%eax
  imul   $0x1a81,%eax,%eax
  jmp    L2800
L2152:
  mov    $0x0,%eax
L2800:
  sub    %eax,%r14d
  mov    -0x60(%rbp),%rax
  add    $0x68,%rax
  mov    (%rax),%eax
  test   %eax,%eax
  je     L2177
  mov    -0x60(%rbp),%rax
  add    $0x68,%rax
  mov    (%rax),%eax
  imul   $0x9a7e,%eax,%eax
  jmp    L3476
L2177:
  mov    $0x0,%eax
L3476:
  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     L1348
  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    L3331
L1348:
  mov    $0x0,%eax
L3331:
  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     L3367
  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    L2002
L3367:
  mov    $0x0,%eax
L2002:
  add    %eax,%r14d
  cmpl   $0x0,-0x34(%rbp)
  je     L2423
  mov    -0x34(%rbp),%eax
  imul   $0x7d86,%eax,%eax
  jmp    L1645
L2423:
  mov    $0x0,%eax
L1645:
  mov    %eax,-0x30(%rbp)
  mov    -0x60(%rbp),%rax
  add    $0x3c,%rax
  mov    (%rax),%eax
  test   %eax,%eax
  je     L2101
  mov    -0x60(%rbp),%rax
  add    $0x3c,%rax
  mov    (%rax),%eax
  imul   $0xffffbc11,%eax,%edx
  jmp    L3797
L2101:
  mov    $0x0,%edx
L3797:
  mov    -0x60(%rbp),%rax
  add    $0x7c,%rax
  mov    (%rax),%eax
  test   %eax,%eax
  je     L2403
  mov    -0x60(%rbp),%rax
  add    $0x7c,%rax
  mov    (%rax),%eax
  imul   $0xa402,%eax,%eax
  jmp    L3780
L2403:
  mov    $0x0,%eax
L3780:
  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     L2473
  test   %ebx,%ebx
  jns    L3688
  mov    $0x0,%eax
  jmp    L616
L3688:
  mov    $0xffffffff,%eax
  jmp    L616
L2473:
  mov    %ebx,%eax
L616:
  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     L2731
  test   %ebx,%ebx
  jns    L2607
  mov    $0x0,%eax
  jmp    L1607
L2607:
  mov    $0xffffffff,%eax
  jmp    L1607
L2731:
  mov    %ebx,%eax
L1607:
  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     L3597
  test   %ebx,%ebx
  jns    L1632
  mov    $0x0,%eax
  jmp    L827
L1632:
  mov    $0xffffffff,%eax
  jmp    L827
L3597:
  mov    %ebx,%eax
L827:
  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     L436
  test   %ebx,%ebx
  jns    L822
  mov    $0x0,%eax
  jmp    L1169
L822:
  mov    $0xffffffff,%eax
  jmp    L1169
L436:
  mov    %ebx,%eax
L1169:
  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 C4, C16, C20;
  int C2_18, C6_22, C1_17, C3_19, C5_21, C7_23;
  register int t;
  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;
}
```