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

```asm
<bot>:
  endbr64
  push   %r15
  push   %r14
  push   %r13
  push   %r12
  push   %rbp
  push   %rbx
  sub    $0xa8,%rsp
  mov    %rdi,%r15
  mov    %esi,%r13d
  lea    0x54(%rdi),%rax
  mov    %rax,0x78(%rsp)
  mov    %rax,%rdx
  mov    $0x0,%r14d
  jmp    L4742
L11:
  add    $0x1c,%rax
  cmp    %rdx,%rax
  je     L5623
L1235:
  cmpl   $0x0,(%rax)
  jne    L11
  cmp    %r13d,0x1c(%rax)
  jne    L11
  cmp    %r13d,0x38(%rax)
  jne    L11
  cmp    %r13d,0x54(%rax)
  jne    L11
  jmp    L5913
L5623:
  add    $0x1,%r14d
  add    $0x4,%rdx
  cmp    $0x7,%r14d
  je     L3448
L4742:
  lea    -0x54(%rdx),%rax
  jmp    L1235
L3448:
  lea    0x8c(%r15),%rax
  mov    %rax,0x80(%rsp)
  mov    %rax,%r11
  mov    $0x5,%r9d
  jmp    L2571
L6115:
  cmp    $0x3,%eax
  jg     L2671
  cmpl   $0x0,0x8c(%r15,%rax,4)
  jne    L2671
  cmp    %r13d,0x90(%r15,%rax,4)
  je     L5486
L1638:
  cmp    $0x3,%esi
  jbe    L4006
  cmp    $0x3,%edx
  ja     L2603
  jmp    L1189
L5486:
  cmp    %r13d,0x94(%r15,%rax,4)
  jne    L1638
  cmp    %r13d,0x98(%r15,%rax,4)
  jne    L1638
  jmp    L5913
L2671:
  cmp    $0x3,%esi
  jbe    L2465
L2355:
  cmp    $0x3,%edx
  jbe    L5848
L2603:
  cmp    $0x2,%r14d
  jle    L1117
  cmpl   $0x0,0x8c(%r15,%rax,4)
  jne    L6174
L3435:
  movslq %esi,%r10
  cmp    %r13d,0x8c(%r15,%r10,4)
  je     L5879
L4068:
  cmp    $0x2,%edx
  ja     L934
  jmp    L7256
L2465:
  cmpl   $0x0,0x8c(%r15,%rax,4)
  jne    L2355
L4006:
  movslq %esi,%r10
  cmp    %r13d,0x8c(%r15,%r10,4)
  jne    L6903
  movslq %ecx,%r10
  cmp    %r13d,0x8c(%r15,%r10,4)
  jne    L6903
  movslq %edi,%r10
  cmp    %r13d,0x8c(%r15,%r10,4)
  je     L5913
L6903:
  cmp    $0x3,%edx
  ja     L2603
  jmp    L1189
L5848:
  cmpl   $0x0,0x8c(%r15,%rax,4)
  jne    L2603
L1189:
  movslq %edx,%r10
  cmp    %r13d,0x8c(%r15,%r10,4)
  jne    L6127
  movslq %esi,%r10
  cmp    %r13d,0x8c(%r15,%r10,4)
  jne    L6127
  movslq %ecx,%r10
  cmp    %r13d,0x8c(%r15,%r10,4)
  je     L5913
L6127:
  cmp    $0x2,%r14d
  jg     L3435
L1117:
  cmp    $0x2,%edx
  ja     L934
  cmpl   $0x0,0x8c(%r15,%rax,4)
  jne    L2143
L7256:
  movslq %esi,%r10
  cmp    %r13d,0x8c(%r15,%r10,4)
  jne    L2143
  movslq %edx,%r10
  cmp    %r13d,0x8c(%r15,%r10,4)
  jne    L2143
  movslq %ecx,%r10
  cmp    %r13d,0x8c(%r15,%r10,4)
  jne    L2143
  movslq %edi,%r10
  cmp    %r13d,0x8c(%r15,%r10,4)
  jne    L2143
  jmp    L5913
L5879:
  movslq %edx,%r10
  cmp    %r13d,0x8c(%r15,%r10,4)
  jne    L4068
  lea    -0x3(%rax),%r10d
  movslq %r10d,%r10
  cmp    %r13d,0x8c(%r15,%r10,4)
  jne    L4068
  jmp    L5913
L4983:
  cmp    %r13d,0x8(%r8,%rax,4)
  jne    L2952
  cmp    %r13d,0xc(%r8,%rax,4)
  jne    L2952
  cmpl   $0x0,0x0(%rbp,%rax,4)
  je     L2952
  jmp    L5913
L130:
  cmp    $0x3,%esi
  jbe    L6328
L3443:
  cmp    $0x3,%edx
  jbe    L5423
L4090:
  cmp    $0x2,%r10d
  jle    L2164
  cmpl   $0x0,(%r8,%rax,4)
  jne    L6641
L3032:
  movslq %esi,%r10
  cmp    %r13d,(%r8,%r10,4)
  je     L4004
  cmp    $0x2,%edx
  ja     L934
  jmp    L2143
L6328:
  cmpl   $0x0,(%r8,%rax,4)
  jne    L3443
L3848:
  movslq %esi,%r12
  cmp    %r13d,(%r8,%r12,4)
  jne    L5900
  movslq %ecx,%r12
  cmp    %r13d,(%r8,%r12,4)
  jne    L5900
  movslq %edi,%r12
  cmp    %r13d,(%r8,%r12,4)
  jne    L5900
  movslq %r14d,%r12
  mov    0x8(%rsp),%rbx
  cmpl   $0x0,(%rbx,%r12,4)
  jne    L5913
L5900:
  cmp    $0x3,%edx
  ja     L4090
  jmp    L6173
L5423:
  cmpl   $0x0,(%r8,%rax,4)
  jne    L4090
L6173:
  movslq %edx,%r12
  cmp    %r13d,(%r8,%r12,4)
  jne    L6171
  movslq %esi,%r12
  cmp    %r13d,(%r8,%r12,4)
  jne    L6171
  movslq %ecx,%r12
  cmp    %r13d,(%r8,%r12,4)
  jne    L434
  movslq %r14d,%r12
  mov    0x8(%rsp),%rbx
  cmpl   $0x0,(%rbx,%r12,4)
  jne    L5913
L434:
  cmp    $0x2,%r10d
  jle    L2164
L4004:
  movslq %edx,%r10
  cmp    %r13d,(%r8,%r10,4)
  je     L1025
L3417:
  cmp    $0x2,%edx
  ja     L934
  jmp    L1247
L1025:
  lea    -0x3(%rax),%r10d
  movslq %r10d,%r10
  cmp    %r13d,(%r8,%r10,4)
  jne    L3417
  movslq %r14d,%r10
  mov    (%rsp),%rbx
  cmpl   $0x0,(%rbx,%r10,4)
  je     L3417
  jmp    L5913
L5914:
  cmpl   $0x0,(%r8,%rax,4)
  jne    L2143
  movslq %esi,%r10
  cmp    %r13d,(%r8,%r10,4)
  jne    L2143
L1247:
  movslq %edx,%r10
  cmp    %r13d,(%r8,%r10,4)
  jne    L2143
  movslq %ecx,%r10
  cmp    %r13d,(%r8,%r10,4)
  jne    L2143
  movslq %edi,%r10
  cmp    %r13d,(%r8,%r10,4)
  jne    L2143
  movslq %r14d,%r10
  mov    0x8(%rsp),%r12
  cmpl   $0x0,(%r12,%r10,4)
  je     L2143
  jmp    L5913
L5016:
  sub    $0x1,%r9
  sub    $0x1c,%r11
  cmp    $0xffffffffffffffff,%r9
  je     L4424
L2571:
  mov    %r11,%r8
  lea    0x1c(%r11),%rbp
  mov    $0x2,%edi
  mov    $0xfffffffe,%edx
  mov    $0xffffffff,%esi
  mov    $0x1,%ecx
  mov    $0x0,%eax
  lea    0x1(%r9),%rbx
  imul   $0x1c,%rbx,%r10
  lea    (%r15,%r10,1),%r12
  lea    0x0(,%rbx,8),%r10
  sub    %rbx,%r10
  lea    (%r15,%r10,4),%rbx
  mov    %r12,0x8(%rsp)
  mov    %rbx,(%rsp)
  jmp    L6665
L3019:
  mov    0x50(%rsp),%r9
  cmp    %r13d,-0x8(%r9,%rax,4)
  jne    L528
  cmp    %r13d,-0x4(%rbx,%rax,4)
  jne    L528
  cmpl   $0x0,(%rbx,%rax,4)
  je     L528
  mov    %eax,%r14d
  jmp    L5913
L7090:
  cmp    $0x3,%edi
  jg     L3402
  test   %r9b,%r9b
  je     L3402
  cmpl   $0x0,(%r10,%rax,4)
  jne    L3402
L2507:
  movslq %ecx,%r9
  cmp    %r13d,(%r14,%r9,4)
  je     L2328
L3402:
  cmp    $0x3,%edx
  jbe    L6608
  lea    -0x1(%r8),%r9d
  cmp    $0x3,%r9d
  jbe    L3757
L1960:
  cmp    $0x2,%r12d
  jle    L950
  test   %sil,%sil
  je     L950
  cmpl   $0x0,(%r10,%rax,4)
  jne    L5271
L1700:
  lea    -0x3(%r8),%esi
  movslq %esi,%rsi
  lea    (%r15,%rsi,4),%rsi
  cmp    %r13d,-0x54(%rbp,%rsi,1)
  je     L6350
L5271:
  cmp    $0x4,%edi
  jg     L1218
  cmp    $0x3,%r12d
  jg     L1218
  cmpl   $0x0,(%r10,%rax,4)
  jne    L4549
  cmp    %r13d,-0x4(%rbx,%rax,4)
  je     L5614
L4549:
  cmpl   $0x0,(%r10,%rax,4)
  jne    L3548
  cmp    %r13d,0x4(%rbx,%rax,4)
  jne    L3548
  cmp    %r13d,0x8(%rbx,%rax,4)
  jne    L3548
  mov    0x58(%rsp),%rdi
  cmp    %r13d,-0x4(%rdi,%rax,4)
  jne    L3548
  mov    0x68(%rsp),%rdi
  cmp    %r13d,-0x8(%rdi,%rax,4)
  jne    L3548
  cmpl   $0x0,(%rbx,%rax,4)
  je     L3548
  mov    (%rsp),%r14d
  jmp    L5913
L2328:
  lea    0x2(%r8),%r9d
  movslq %r9d,%r9
  lea    (%r15,%r9,4),%r9
  cmp    %r13d,0x38(%rbp,%r9,1)
  jne    L3402
  lea    0x3(%r8),%r9d
  movslq %r9d,%r9
  lea    (%r15,%r9,4),%r9
  cmp    %r13d,0x54(%rbp,%r9,1)
  jne    L3402
  movslq (%rsp),%r9
  cmpl   $0x0,(%r14,%r9,4)
  je     L3402
  mov    (%rsp),%r14d
  jmp    L5913
L6608:
  cmpl   $0x2,0x70(%rsp)
  ja     L5019
  cmpl   $0x0,(%r10,%rax,4)
  jne    L4429
  mov    0x58(%rsp),%r9
  cmp    %r13d,0x4(%r9,%rax,4)
  jne    L951
  mov    0x50(%rsp),%r9
  cmp    %r13d,-0x8(%r9,%rax,4)
  jne    L951
  cmp    %r13d,-0x4(%rbx,%rax,4)
  jne    L951
  cmpl   $0x0,(%rbx,%rax,4)
  je     L951
  mov    (%rsp),%r14d
  jmp    L5913
L3757:
  cmpl   $0x2,0x70(%rsp)
  ja     L250
L2445:
  cmpl   $0x0,(%r10,%rax,4)
  jne    L250
L3217:
  cmp    %r13d,0x4(%rbx,%rax,4)
  jne    L22
  mov    0x50(%rsp),%r9
  cmp    %r13d,0x8(%r9,%rax,4)
  jne    L22
  mov    0x58(%rsp),%r9
  cmp    %r13d,-0x4(%r9,%rax,4)
  jne    L22
  cmpl   $0x0,(%rbx,%rax,4)
  je     L22
  mov    (%rsp),%r14d
  jmp    L5913
L6818:
  cmp    $0x3,%edx
  ja     L1960
L1275:
  cmpl   $0x2,0x60(%rsp)
  ja     L1960
L2593:
  cmpl   $0x0,(%r10,%rax,4)
  jne    L1960
L1535:
  cmp    %r13d,0x4(%rbx,%rax,4)
  jne    L2233
  mov    0x68(%rsp),%r9
  cmp    %r13d,-0x8(%r9,%rax,4)
  jne    L2233
  mov    0x58(%rsp),%r9
  cmp    %r13d,-0x4(%r9,%rax,4)
  jne    L2233
  cmpl   $0x0,(%rbx,%rax,4)
  je     L2233
  mov    (%rsp),%r14d
  jmp    L5913
L6350:
  movslq %edx,%rsi
  lea    (%r15,%rsi,4),%rsi
  cmp    %r13d,-0x38(%rbp,%rsi,1)
  jne    L5271
  sub    $0x1,%r8d
  movslq %r8d,%r8
  lea    (%r15,%r8,4),%rsi
  cmp    %r13d,-0x1c(%rbp,%rsi,1)
  jne    L5271
  movslq (%rsp),%rsi
  cmpl   $0x0,(%r14,%rsi,4)
  je     L5271
  mov    (%rsp),%r14d
  jmp    L5913
L5614:
  cmp    %r13d,-0x8(%rbx,%rax,4)
  jne    L4549
  mov    0x58(%rsp),%rdi
  cmp    %r13d,0x4(%rdi,%rax,4)
  jne    L4549
  mov    0x68(%rsp),%rdi
  cmp    %r13d,0x8(%rdi,%rax,4)
  jne    L4549
  cmpl   $0x0,(%rbx,%rax,4)
  je     L4549
  mov    (%rsp),%r14d
  jmp    L5913
L1965:
  add    $0x1,%r12d
  addq   $0x1,0x10(%rsp)
  addq   $0x1c,0x18(%rsp)
  add    $0x1c,%r11
  addq   $0x1c,0x20(%rsp)
  addq   $0x1c,0x28(%rsp)
  add    $0x1c,%rbp
  addl   $0x1,0x60(%rsp)
  addq   $0x1c,0x30(%rsp)
  cmp    $0x6,%r12d
  je     L220
L4882:
  mov    %r11,%r10
  lea    0x54(%r11),%rax
  mov    %rax,0x8(%rsp)
  mov    0x30(%rsp),%rax
  mov    %rax,0x50(%rsp)
  mov    0x20(%rsp),%rbx
  mov    0x28(%rsp),%rax
  mov    %rax,0x58(%rsp)
  mov    0x18(%rsp),%rax
  mov    %rax,0x68(%rsp)
  mov    $0xfffffffe,%edx
  mov    $0x1,%ecx
  mov    $0x0,%eax
  mov    0x10(%rsp),%rdi
  add    $0x1,%rdi
  lea    0x0(,%rdi,8),%rsi
  sub    %rdi,%rsi
  lea    (%r15,%rsi,4),%r14
  lea    -0x1(%r12),%edi
  mov    %edi,0x70(%rsp)
  jmp    L3164
L220:
  mov    $0x5,%r8d
  mov    %r13d,%r11d
  neg    %r11d
  mov    0x80(%rsp),%rbx
  mov    %r13d,0x8(%rsp)
  jmp    L6462
L4424:
  lea    -0x38(%r15),%rax
  mov    %rax,0x38(%rsp)
  lea    0x1c(%r15),%rbx
  mov    %rbx,0x40(%rsp)
  lea    -0x1c(%r15),%rdi
  mov    %rdi,0x48(%rsp)
  lea    0x38(%r15),%rdx
  mov    %rdx,0x88(%rsp)
  mov    %rdx,0x30(%rsp)
  mov    %rdi,0x28(%rsp)
  mov    %rbx,0x20(%rsp)
  mov    %r15,%r11
  mov    %rax,0x18(%rsp)
  movl   $0xfffffffe,0x60(%rsp)
  mov    $0x0,%ebp
  movq   $0x0,0x10(%rsp)
  mov    $0x0,%r12d
  jmp    L4882
L2084:
  cmp    $0x3,%eax
  jg     L1224
  cmpl   $0x0,0x8c(%r15,%rax,4)
  jne    L1224
  cmp    %r11d,0x90(%r15,%rax,4)
  je     L3728
L1781:
  cmp    $0x3,%esi
  jbe    L6423
  cmp    $0x3,%edx
  ja     L2615
  jmp    L5996
L3728:
  cmp    0x94(%r15,%rax,4),%r11d
  jne    L1781
  cmp    0x98(%r15,%rax,4),%r11d
  jne    L1781
  jmp    L5913
L1224:
  cmp    $0x3,%esi
  jbe    L811
L845:
  cmp    $0x3,%edx
  jbe    L852
L2615:
  cmp    $0x2,%r14d
  jle    L834
  cmpl   $0x0,0x8c(%r15,%rax,4)
  jne    L1763
L5772:
  movslq %esi,%r9
  cmp    %r11d,0x8c(%r15,%r9,4)
  je     L1829
L4832:
  cmp    $0x2,%edx
  ja     L3643
  jmp    L1175
L811:
  cmpl   $0x0,0x8c(%r15,%rax,4)
  jne    L845
L6423:
  movslq %esi,%r9
  cmp    %r11d,0x8c(%r15,%r9,4)
  jne    L5657
  movslq %ecx,%r9
  cmp    0x8c(%r15,%r9,4),%r11d
  jne    L5657
  movslq %edi,%r9
  cmp    0x8c(%r15,%r9,4),%r11d
  je     L5913
L5657:
  cmp    $0x3,%edx
  ja     L2615
  jmp    L5996
L852:
  cmpl   $0x0,0x8c(%r15,%rax,4)
  jne    L2615
L5996:
  movslq %edx,%r9
  cmp    %r11d,0x8c(%r15,%r9,4)
  jne    L7137
  movslq %esi,%r9
  cmp    0x8c(%r15,%r9,4),%r11d
  jne    L7137
  movslq %ecx,%r9
  cmp    0x8c(%r15,%r9,4),%r11d
  je     L5913
L7137:
  cmp    $0x2,%r14d
  jg     L5772
L834:
  cmp    $0x2,%edx
  ja     L3643
  cmpl   $0x0,0x8c(%r15,%rax,4)
  jne    L4049
L1175:
  movslq %esi,%r9
  cmp    %r11d,0x8c(%r15,%r9,4)
  jne    L4049
  movslq %edx,%r9
  cmp    0x8c(%r15,%r9,4),%r11d
  jne    L4049
  movslq %ecx,%r9
  cmp    0x8c(%r15,%r9,4),%r11d
  jne    L4049
  movslq %edi,%r9
  cmp    0x8c(%r15,%r9,4),%r11d
  jne    L4049
  jmp    L5913
L1829:
  movslq %edx,%r9
  cmp    0x8c(%r15,%r9,4),%r11d
  jne    L4832
  lea    -0x3(%rax),%r9d
  movslq %r9d,%r9
  cmp    0x8c(%r15,%r9,4),%r11d
  jne    L4832
  jmp    L5913
L1817:
  cmp    0x8(%r10,%rax,4),%r11d
  jne    L2629
  cmp    0xc(%r10,%rax,4),%r11d
  jne    L2629
  jmp    L5913
L6612:
  cmp    $0x3,%esi
  jbe    L2060
L1677:
  cmp    $0x3,%edx
  jbe    L4718
L1264:
  cmp    $0x2,%r9d
  jle    L961
  cmpl   $0x0,(%r10,%rax,4)
  jne    L448
L6383:
  movslq %r14d,%r9
  cmpl   $0x0,0x0(%rbp,%r9,4)
  je     L2869
L6170:
  movslq %esi,%r9
  cmp    %r11d,(%r10,%r9,4)
  je     L4174
L4498:
  cmp    $0x2,%edx
  ja     L3643
  jmp    L2887
L2060:
  cmpl   $0x0,(%r10,%rax,4)
  jne    L1677
L5469:
  movslq %r14d,%r13
  cmpl   $0x0,(%rbx,%r13,4)
  je     L4916
  movslq %esi,%r13
  cmp    %r11d,(%r10,%r13,4)
  jne    L4838
  movslq %ecx,%r13
  cmp    (%r10,%r13,4),%r11d
  jne    L4838
  movslq %edi,%r13
  cmp    (%r10,%r13,4),%r11d
  je     L5913
L4838:
  cmp    $0x3,%edx
  ja     L1264
  jmp    L4967
L4718:
  cmpl   $0x0,(%r10,%rax,4)
  jne    L1264
L609:
  movslq %r14d,%r13
  cmpl   $0x0,(%rbx,%r13,4)
  je     L2258
L4967:
  movslq %edx,%r13
  cmp    %r11d,(%r10,%r13,4)
  jne    L727
  movslq %esi,%r13
  cmp    (%r10,%r13,4),%r11d
  jne    L727
  movslq %ecx,%r13
  cmp    (%r10,%r13,4),%r11d
  je     L5913
L727:
  cmp    $0x2,%r9d
  jg     L6170
  jmp    L961
L4174:
  movslq %edx,%r9
  cmp    (%r10,%r9,4),%r11d
  jne    L4498
  lea    -0x3(%rax),%r9d
  movslq %r9d,%r9
  cmp    (%r10,%r9,4),%r11d
  jne    L4498
  jmp    L5913
L6546:
  cmpl   $0x0,(%r10,%rax,4)
  jne    L4049
  movslq %r14d,%r9
  cmpl   $0x0,(%rbx,%r9,4)
  je     L4049
L2887:
  movslq %esi,%r9
  cmp    %r11d,(%r10,%r9,4)
  jne    L4049
  movslq %edx,%r9
  cmp    (%r10,%r9,4),%r11d
  jne    L4049
  movslq %ecx,%r9
  cmp    (%r10,%r9,4),%r11d
  jne    L4049
  movslq %edi,%r9
  cmp    (%r10,%r9,4),%r11d
  jne    L4049
  jmp    L5913
L6389:
  mov    (%rsp),%rbx
  sub    $0x1,%r8
  sub    $0x1c,%rbx
  cmp    $0xffffffffffffffff,%r8
  je     L348
L6462:
  mov    %rbx,%r10
  lea    0x1c(%rbx),%r12
  mov    $0xffffffff,%esi
  mov    $0x2,%edi
  mov    $0xfffffffe,%edx
  mov    $0x1,%ecx
  mov    $0x0,%eax
  lea    0x1(%r8),%rbp
  imul   $0x1c,%rbp,%r9
  lea    (%r15,%r9,1),%r13
  lea    0x0(,%rbp,8),%r9
  sub    %rbp,%r9
  lea    (%r15,%r9,4),%rbp
  mov    %rbx,(%rsp)
  mov    %r13,%rbx
  jmp    L2957
L3794:
  add    $0x1c,%rax
  cmp    %rax,%rdx
  je     L1704
L549:
  cmpl   $0x0,(%rax)
  jne    L3794
  cmp    %esi,0x1c(%rax)
  jne    L3794
  cmp    0x38(%rax),%esi
  jne    L3794
  cmp    0x54(%rax),%esi
  jne    L3794
  jmp    L5913
L1704:
  add    $0x1,%r14d
  add    $0x4,%rdx
  cmp    $0x7,%r14d
  je     L5827
L6804:
  lea    -0x54(%rdx),%rax
  jmp    L549
L348:
  mov    0x8(%rsp),%r13d
  mov    0x78(%rsp),%rdx
  mov    $0x0,%r14d
  mov    %r13d,%esi
  neg    %esi
  jmp    L6804
L1675:
  mov    0x50(%rsp),%r9
  cmp    -0x8(%r9,%rax,4),%r12d
  jne    L3975
  cmp    -0x4(%r13,%rax,4),%r12d
  jne    L3975
  cmpl   $0x0,0x0(%r13,%rax,4)
  je     L3975
  mov    %eax,%r14d
  jmp    L5913
L5146:
  cmp    $0x3,%edi
  jg     L4202
  test   %r9b,%r9b
  je     L4202
  cmpl   $0x0,(%r10,%rax,4)
  jne    L4202
L4440:
  movslq %ecx,%r9
  cmp    %r12d,(%r14,%r9,4)
  je     L4104
L4202:
  cmp    $0x3,%edx
  jbe    L4107
  lea    -0x1(%r8),%r9d
  cmp    $0x3,%r9d
  jbe    L3807
L7331:
  cmp    $0x2,%ebp
  jle    L1813
  test   %sil,%sil
  je     L1813
  cmpl   $0x0,(%r10,%rax,4)
  jne    L2235
L659:
  lea    -0x3(%r8),%esi
  movslq %esi,%rsi
  lea    (%r15,%rsi,4),%rsi
  cmp    %r12d,-0x54(%rbx,%rsi,1)
  je     L5048
L2235:
  cmp    $0x4,%edi
  jg     L3105
  cmp    $0x3,%ebp
  jg     L3105
  cmpl   $0x0,(%r10,%rax,4)
  jne    L3447
  cmp    %r12d,-0x4(%r13,%rax,4)
  je     L2662
L3447:
  cmpl   $0x0,(%r10,%rax,4)
  jne    L6532
  cmp    %r12d,0x4(%r13,%rax,4)
  jne    L6532
  cmp    0x8(%r13,%rax,4),%r12d
  jne    L6532
  mov    0x58(%rsp),%rdi
  cmp    -0x4(%rdi,%rax,4),%r12d
  jne    L6532
  mov    0x68(%rsp),%rdi
  cmp    -0x8(%rdi,%rax,4),%r12d
  jne    L6532
  cmpl   $0x0,0x0(%r13,%rax,4)
  je     L6532
  mov    (%rsp),%r14d
  jmp    L5913
L4104:
  lea    0x2(%r8),%r9d
  movslq %r9d,%r9
  lea    (%r15,%r9,4),%r9
  cmp    0x38(%rbx,%r9,1),%r12d
  jne    L4202
  lea    0x3(%r8),%r9d
  movslq %r9d,%r9
  lea    (%r15,%r9,4),%r9
  cmp    0x54(%rbx,%r9,1),%r12d
  jne    L4202
  movslq (%rsp),%r9
  cmpl   $0x0,(%r14,%r9,4)
  je     L4202
  mov    (%rsp),%r14d
  jmp    L5913
L4107:
  cmpl   $0x2,0x70(%rsp)
  ja     L54
  cmpl   $0x0,(%r10,%rax,4)
  jne    L1749
  mov    0x58(%rsp),%r9
  cmp    %r12d,0x4(%r9,%rax,4)
  jne    L2475
  mov    0x50(%rsp),%r9
  cmp    -0x8(%r9,%rax,4),%r12d
  jne    L2475
  cmp    -0x4(%r13,%rax,4),%r12d
  jne    L2475
  cmpl   $0x0,0x0(%r13,%rax,4)
  je     L2475
  mov    (%rsp),%r14d
  jmp    L5913
L3807:
  cmpl   $0x2,0x70(%rsp)
  ja     L4015
L5878:
  cmpl   $0x0,(%r10,%rax,4)
  jne    L4015
L4184:
  cmp    %r12d,0x4(%r13,%rax,4)
  jne    L843
  mov    0x50(%rsp),%r9
  cmp    0x8(%r9,%rax,4),%r12d
  jne    L843
  mov    0x58(%rsp),%r9
  cmp    -0x4(%r9,%rax,4),%r12d
  jne    L843
  cmpl   $0x0,0x0(%r13,%rax,4)
  je     L843
  mov    (%rsp),%r14d
  jmp    L5913
L749:
  cmp    $0x3,%edx
  ja     L7331
L7108:
  cmpl   $0x2,0x60(%rsp)
  ja     L7331
L4622:
  cmpl   $0x0,(%r10,%rax,4)
  jne    L7331
L6227:
  cmp    %r12d,0x4(%r13,%rax,4)
  jne    L7258
  mov    0x68(%rsp),%r9
  cmp    -0x8(%r9,%rax,4),%r12d
  jne    L7258
  mov    0x58(%rsp),%r9
  cmp    -0x4(%r9,%rax,4),%r12d
  jne    L7258
  cmpl   $0x0,0x0(%r13,%rax,4)
  je     L7258
  mov    (%rsp),%r14d
  jmp    L5913
L5048:
  movslq %edx,%rsi
  lea    (%r15,%rsi,4),%rsi
  cmp    -0x38(%rbx,%rsi,1),%r12d
  jne    L2235
  sub    $0x1,%r8d
  movslq %r8d,%r8
  lea    (%r15,%r8,4),%rsi
  cmp    -0x1c(%rbx,%rsi,1),%r12d
  jne    L2235
  mov    (%rsp),%r14d
  jmp    L5913
L2662:
  cmp    -0x8(%r13,%rax,4),%r12d
  jne    L3447
  mov    0x58(%rsp),%rdi
  cmp    0x4(%rdi,%rax,4),%r12d
  jne    L3447
  mov    0x68(%rsp),%rdi
  cmp    0x8(%rdi,%rax,4),%r12d
  jne    L3447
  cmpl   $0x0,0x0(%r13,%rax,4)
  je     L3447
  mov    (%rsp),%r14d
  jmp    L5913
L5374:
  add    $0x1,%ebp
  addq   $0x1,0x30(%rsp)
  addq   $0x1c,0x28(%rsp)
  add    $0x1c,%r11
  addq   $0x1c,0x20(%rsp)
  addq   $0x1c,0x18(%rsp)
  add    $0x1c,%rbx
  addl   $0x1,0x60(%rsp)
  addq   $0x1c,0x10(%rsp)
  cmp    $0x6,%ebp
  je     L6317
L4640:
  mov    %r11,%r10
  lea    0x54(%r11),%rax
  mov    %rax,0x8(%rsp)
  mov    0x10(%rsp),%rax
  mov    %rax,0x50(%rsp)
  mov    0x20(%rsp),%r13
  mov    0x18(%rsp),%rax
  mov    %rax,0x58(%rsp)
  mov    0x28(%rsp),%rax
  mov    %rax,0x68(%rsp)
  mov    $0xfffffffe,%edx
  mov    $0x1,%ecx
  mov    $0x0,%eax
  mov    0x30(%rsp),%rdi
  add    $0x1,%rdi
  lea    0x0(,%rdi,8),%rsi
  sub    %rdi,%rsi
  lea    (%r15,%rsi,4),%r14
  lea    -0x1(%rbp),%edi
  mov    %edi,0x70(%rsp)
  jmp    L6968
L5827:
  mov    0x88(%rsp),%rax
  mov    %rax,0x10(%rsp)
  mov    0x48(%rsp),%rax
  mov    %rax,0x18(%rsp)
  mov    0x40(%rsp),%rax
  mov    %rax,0x20(%rsp)
  mov    %r15,%r11
  mov    0x38(%rsp),%rax
  mov    %rax,0x28(%rsp)
  movl   $0xfffffffe,0x60(%rsp)
  mov    $0x0,%ebx
  movq   $0x0,0x30(%rsp)
  mov    $0x0,%ebp
  mov    %r13d,%r12d
  neg    %r12d
  mov    %r13d,0x80(%rsp)
  jmp    L4640
L2897:
  cmp    %r13d,0x8(%rdi,%rax,4)
  jne    L2360
  cmp    %r13d,0xc(%rdi,%rax,4)
  jne    L2360
  mov    %eax,%r14d
  jmp    L5913
L1883:
  cmp    $0x3,%esi
  jbe    L4989
L4956:
  cmp    $0x3,%edx
  jbe    L3110
L3276:
  cmp    $0x2,%ecx
  jle    L7248
  cmpl   $0x0,(%rdi,%rax,4)
  jne    L5012
L4577:
  movslq %esi,%r9
  cmp    %r13d,(%rdi,%r9,4)
  je     L1205
  cmp    $0x2,%edx
  jbe    L4152
L4074:
  cmp    $0x2,%ecx
  setg   %r9b
  cmp    $0x2,%ebp
  setle  %r11b
  mov    %r9d,%ebx
  and    %r11b,%bl
  je     L1165
  cmpl   $0x0,(%rdi,%rax,4)
  jne    L1393
L746:
  lea    -0x3(%r10),%r9d
  movslq %r9d,%r9
  lea    (%r15,%r9,4),%r9
  cmp    %r13d,0x54(%r12,%r9,1)
  je     L1131
L7336:
  mov    $0x1,%r9d
  cmp    $0x3,%ecx
  jle    L1272
  jmp    L4207
L4989:
  cmpl   $0x0,(%rdi,%rax,4)
  jne    L4956
L6718:
  movslq %esi,%r9
  cmp    %r13d,(%rdi,%r9,4)
  jne    L2767
  movslq %r8d,%r9
  cmp    %r13d,(%rdi,%r9,4)
  jne    L2767
  lea    0x2(%r10),%r9d
  movslq %r9d,%r9
  cmp    %r13d,(%rdi,%r9,4)
  jne    L2767
  mov    (%rsp),%r14d
  jmp    L5913
L3110:
  cmpl   $0x0,(%rdi,%rax,4)
  jne    L6551
L2811:
  movslq %edx,%r9
  cmp    %r13d,(%rdi,%r9,4)
  jne    L5078
  movslq %esi,%r9
  cmp    %r13d,(%rdi,%r9,4)
  jne    L5078
  movslq %r8d,%r9
  cmp    %r13d,(%rdi,%r9,4)
  jne    L401
  mov    (%rsp),%r14d
  jmp    L5913
L6609:
  lea    -0x3(%r10),%r9d
  movslq %r9d,%r9
  cmp    %r13d,(%rdi,%r9,4)
  jne    L7159
  mov    (%rsp),%r14d
  jmp    L5913
L3179:
  cmpl   $0x0,(%rdi,%rax,4)
  jne    L5012
  movslq %esi,%r9
  cmp    %r13d,(%rdi,%r9,4)
  jne    L4152
L1312:
  movslq %edx,%r9
  cmp    %r13d,(%rdi,%r9,4)
  jne    L4152
  movslq %r8d,%r9
  cmp    %r13d,(%rdi,%r9,4)
  jne    L4152
  lea    0x2(%r10),%r9d
  movslq %r9d,%r9
  cmp    %r13d,(%rdi,%r9,4)
  jne    L4152
  mov    (%rsp),%r14d
  jmp    L5913
L1131:
  movslq %edx,%r9
  lea    (%r15,%r9,4),%r9
  cmp    %r13d,0x38(%r12,%r9,1)
  jne    L7336
  movslq %esi,%r9
  cmp    %r13d,(%r14,%r9,4)
  jne    L7336
  mov    (%rsp),%r14d
  jmp    L5913
L1393:
  mov    %ebx,%r9d
  jmp    L4207
L7356:
  cmpl   $0x2,0x60(%rsp)
  ja     L2639
  cmpl   $0x0,(%rdi,%rax,4)
  jne    L6107
  mov    0x28(%rsp),%rbx
  cmp    %r13d,0x4(%rbx,%rax,4)
  jne    L1664
  mov    0x58(%rsp),%rbx
  cmp    %r13d,-0x8(%rbx,%rax,4)
  jne    L1664
  mov    0x8(%rsp),%rbx
  cmp    %r13d,-0x4(%rbx,%rax,4)
  jne    L1664
  mov    (%rsp),%r14d
  jmp    L5913
L6212:
  cmpl   $0x2,0x60(%rsp)
  ja     L2239
L1212:
  cmpl   $0x0,(%rdi,%rax,4)
  jne    L2239
L7051:
  mov    0x8(%rsp),%rbx
  cmp    %r13d,0x4(%rbx,%rax,4)
  jne    L2675
  mov    0x58(%rsp),%rbx
  cmp    %r13d,0x8(%rbx,%rax,4)
  jne    L2675
  mov    0x28(%rsp),%rbx
  cmp    %r13d,-0x4(%rbx,%rax,4)
  jne    L2675
  mov    (%rsp),%r14d
  jmp    L5913
L5190:
  cmp    $0x3,%edx
  ja     L6556
L1181:
  cmpl   $0x2,0x30(%rsp)
  ja     L6556
L5568:
  cmpl   $0x0,(%rdi,%rax,4)
  jne    L6556
L4812:
  mov    0x8(%rsp),%rbx
  cmp    %r13d,0x4(%rbx,%rax,4)
  jne    L5677
  mov    0x50(%rsp),%rbx
  cmp    %r13d,-0x8(%rbx,%rax,4)
  jne    L5677
  mov    0x28(%rsp),%rbx
  cmp    %r13d,-0x4(%rbx,%rax,4)
  jne    L5677
  mov    (%rsp),%r14d
  jmp    L5913
L6253:
  movslq %edx,%r9
  lea    (%r15,%r9,4),%r9
  cmp    %r13d,-0x38(%r12,%r9,1)
  jne    L6123
  movslq %esi,%r9
  lea    (%r15,%r9,4),%r9
  cmp    %r13d,-0x1c(%r12,%r9,1)
  jne    L6123
  mov    (%rsp),%r14d
  jmp    L5913
L75:
  cmp    %r13d,-0x8(%rbx,%rax,4)
  jne    L3477
  mov    0x28(%rsp),%rbx
  cmp    %r13d,0x4(%rbx,%rax,4)
  jne    L3477
  mov    0x50(%rsp),%rbx
  cmp    %r13d,0x8(%rbx,%rax,4)
  jne    L3477
  mov    0x8(%rsp),%rbx
  cmpl   $0x0,(%rbx,%rax,4)
  je     L3477
  mov    (%rsp),%r14d
  jmp    L5913
L2610:
  add    $0x1,%ebp
  addq   $0x1,0x10(%rsp)
  addq   $0x1c,0x38(%rsp)
  addq   $0x1c,0x18(%rsp)
  addq   $0x1c,0x40(%rsp)
  addq   $0x1c,0x48(%rsp)
  add    $0x1c,%r12
  addl   $0x1,0x30(%rsp)
  addq   $0x1c,0x20(%rsp)
  cmp    $0x6,%ebp
  je     L5849
L306:
  mov    0x18(%rsp),%rdi
  mov    0x48(%rsp),%rax
  mov    %rax,0x28(%rsp)
  mov    0x20(%rsp),%rax
  mov    %rax,0x58(%rsp)
  mov    0x40(%rsp),%rax
  mov    %rax,0x8(%rsp)
  mov    0x38(%rsp),%rax
  mov    %rax,0x50(%rsp)
  mov    $0xffffffff,%esi
  mov    $0xfffffffe,%edx
  mov    $0x1,%r8d
  mov    $0x0,%eax
  mov    0x10(%rsp),%rbx
  lea    0x1(%rbx),%r9
  lea    0x0(,%r9,8),%rcx
  sub    %r9,%rcx
  lea    (%r15,%rcx,4),%r14
  lea    -0x1(%rbp),%ebx
  mov    %ebx,0x60(%rsp)
  jmp    L616
L5849:
  lea    -0x70(%r15),%rax
  mov    %rax,0x40(%rsp)
  lea    -0x54(%r15),%r8
  mov    %r8,0x90(%rsp)
  lea    0x70(%r15),%rax
  mov    %rax,0x38(%rsp)
  lea    0x54(%r15),%rax
  mov    %rax,0x30(%rsp)
  mov    0x88(%rsp),%rax
  mov    %rax,0x48(%rsp)
  mov    %r13d,%r10d
  neg    %r10d
  mov    %r15,0x98(%rsp)
  mov    %r8,%r15
  mov    %r13d,%r9d
  mov    %r10d,%r13d
  jmp    L4620
L6317:
  mov    0x80(%rsp),%r13d
  mov    0x88(%rsp),%rax
  mov    %rax,0x20(%rsp)
  mov    %r15,0x18(%rsp)
  movl   $0xfffffffe,0x30(%rsp)
  mov    $0x0,%r12d
  movq   $0x0,0x10(%rsp)
  mov    $0x0,%ebp
  jmp    L306
L1842:
  cmp    0x8(%rdx),%r13d
  je     L5902
  lea    -0x1(%rax),%ebx
  mov    -0x4(%rdx),%edi
  cmp    %edi,%r13d
  setne  %r11b
  mov    -0x8(%rdx),%r8d
  cmp    %r8d,%r13d
  setne  0x10(%rsp)
  jne    L4288
  test   %r11b,%r11b
  jne    L4288
  jmp    L721
L5902:
  cmp    0xc(%rdx),%r13d
  je     L721
  lea    -0x1(%rax),%ebx
  mov    -0x4(%rdx),%edi
  mov    $0x1,%r11d
  cmp    %edi,%r13d
  jne    L3487
  jmp    L721
L2001:
  mov    0x60(%rsp),%rcx
  cmp    -0x8(%rcx,%rax,4),%r13d
  je     L7020
  mov    0x4(%r14,%rax,4),%ecx
  mov    %ecx,0x28(%rsp)
  cmp    %ecx,%r13d
  jne    L4588
  mov    $0x0,%ebp
L2441:
  mov    0x8(%r12,%rax,4),%ecx
  cmp    %ecx,%r13d
  jne    L4618
  test   %bpl,%bpl
  je     L721
L4618:
  cmp    %ecx,%r13d
  jne    L4588
  mov    0x18(%rsp),%rcx
  cmp    0xc(%rcx,%rax,4),%r13d
  jne    L4588
  jmp    L721
L7020:
  mov    0x70(%rsp),%rcx
  cmp    -0xc(%rcx,%rax,4),%r13d
  je     L721
  mov    0x4(%r14,%rax,4),%ecx
  mov    %ecx,0x28(%rsp)
  cmp    %ecx,%r13d
  jne    L4588
  jmp    L721
L3049:
  mov    0x68(%rsp),%rcx
  cmp    0x8(%rcx,%rax,4),%r13d
  je     L5367
  movslq %ebx,%rcx
  mov    (%r14,%rcx,4),%ecx
  mov    %ecx,0x50(%rsp)
  cmp    %ecx,%r13d
  setne  %cl
  or     0x10(%rsp),%cl
  jne    L7058
  jmp    L721
L5367:
  mov    0x80(%rsp),%rcx
  cmp    0xc(%rcx,%rax,4),%r13d
  je     L721
  movslq %ebx,%rcx
  mov    (%r14,%rcx,4),%ecx
  mov    %ecx,0x50(%rsp)
  cmp    %ecx,%r13d
  jne    L6251
  jmp    L721
L1796:
  mov    0x8(%rsp),%rcx
  cmp    -0xc(%rcx,%rax,4),%r13d
  jne    L6251
  jmp    L721
L2876:
  cmp    %r9d,0x8(%r15)
  je     L713
  cmp    %r9d,%edi
  sete   %cl
  cmp    %r9d,%r8d
  sete   %sil
  jne    L3893
  test   %cl,%cl
  jne    L121
L3893:
  movzbl 0x20(%rsp),%edi
  mov    %dil,0x10(%rsp)
  jmp    L2851
L713:
  cmp    %r9d,0xc(%r15)
  je     L5570
  cmp    %r9d,%edi
  je     L6877
  movzbl 0x20(%rsp),%edi
  mov    %dil,0x10(%rsp)
  mov    $0x0,%ecx
  jmp    L2780
L5570:
  mov    (%rsp),%r14d
  jmp    L5913
L16:
  mov    0x60(%rsp),%r11
  cmp    %r9d,-0x8(%r11,%rax,4)
  je     L241
  cmp    0x28(%rsp),%r9d
  jne    L5194
L1641:
  movzbl 0x20(%rsp),%edi
  cmp    %r9d,0x8(%r12,%rax,4)
  jne    L5194
  mov    0x18(%rsp),%rdi
  cmp    %r9d,0xc(%rdi,%rax,4)
  je     L4923
  movzbl 0x20(%rsp),%edi
  jmp    L5194
L241:
  mov    0x70(%rsp),%r11
  cmp    %r9d,-0xc(%r11,%rax,4)
  je     L35
  cmp    0x28(%rsp),%r9d
  jne    L5194
  mov    (%rsp),%r14d
  jmp    L5913
L35:
  mov    (%rsp),%r14d
  jmp    L5913
L4243:
  mov    0x68(%rsp),%r11
  cmp    %r9d,0x8(%r11,%rax,4)
  je     L3452
  cmp    %r9d,0x50(%rsp)
  sete   %r8b
  and    %r8b,%sil
  je     L6029
  mov    (%rsp),%r14d
  jmp    L5913
L3452:
  mov    0x80(%rsp),%rsi
  cmp    %r9d,0xc(%rsi,%rax,4)
  je     L3080
  cmp    %r9d,0x50(%rsp)
  jne    L295
  mov    (%rsp),%r14d
  jmp    L5913
L3080:
  mov    (%rsp),%r14d
  jmp    L5913
L6554:
  mov    0x8(%rsp),%rsi
  cmp    %r9d,-0xc(%rsi,%rax,4)
  je     L871
L3380:
  cmp    %r9d,-0x8(%r14,%rax,4)
  je     L683
  test   %dil,%dil
  je     L106
  mov    (%rsp),%r14d
  jmp    L5913
L871:
  mov    (%rsp),%r14d
  jmp    L5913
L600:
  cmp    %r9d,(%r15)
  jne    L1278
  mov    (%rsp),%r14d
  jmp    L5913
L1567:
  mov    0x8(%rsp),%rdi
  cmp    %r9d,0x8(%rdi,%rax,4)
  je     L1867
  movslq %ebx,%rsi
  cmp    %r9d,(%r12,%rsi,4)
  je     L5001
L5061:
  test   %cl,%cl
  jne    L7023
L4121:
  cmp    %r9d,0x4(%r12,%rax,4)
  je     L3043
L721:
  add    $0x1,%rax
  add    $0x4,%rdx
  cmp    $0x7,%rax
  je     L1572
L3062:
  mov    %eax,(%rsp)
  cmpl   $0x0,(%r14,%rax,4)
  jne    L721
  cmpl   $0x0,(%r12,%rax,4)
  je     L721
  mov    %rdx,%r15
  mov    0x4(%rdx),%esi
  cmp    %r13d,%esi
  je     L1842
  lea    -0x1(%rax),%ebx
  mov    -0x4(%rdx),%edi
  cmp    %edi,%r13d
  setne  %r11b
L3487:
  mov    -0x8(%r15),%r8d
  cmp    %r13d,%r8d
  setne  0x10(%rsp)
L4288:
  mov    -0xc(%r15),%r10d
  cmp    %r10d,%r13d
  setne  %cl
  or     0x10(%rsp),%cl
  or     %r11b,%cl
  mov    %cl,0x20(%rsp)
  je     L721
  movslq %ebx,%rcx
  mov    0x8(%rsp),%r11
  mov    (%r11,%rcx,4),%r11d
  cmp    %r11d,%r13d
  je     L2001
  mov    0x4(%r14,%rax,4),%ecx
  mov    %ecx,0x28(%rsp)
  movzbl 0x20(%rsp),%ebp
  cmp    %ecx,%r13d
  je     L2441
L4588:
  mov    0x18(%rsp),%rcx
  mov    0x4(%rcx,%rax,4),%ebp
  cmp    %ebp,%r13d
  je     L3049
  movslq %ebx,%rcx
  mov    (%r14,%rcx,4),%ecx
  mov    %ecx,0x50(%rsp)
  cmp    %ecx,%r13d
  setne  %cl
  or     0x10(%rsp),%cl
L7058:
  test   %cl,%cl
  je     L1796
L6251:
  cmp    %r9d,%esi
  je     L2876
  cmp    %r9d,%edi
  sete   %cl
  movb   $0x0,0x10(%rsp)
L2780:
  cmp    %r9d,%r8d
  sete   %sil
L2851:
  cmp    %r9d,%r10d
  sete   %dil
  and    %esi,%edi
  and    %cl,%dil
  jne    L4888
  cmp    %r9d,%r11d
  je     L16
  cmp    0x28(%rsp),%r9d
  je     L1641
L5194:
  cmp    %r9d,%ebp
  je     L4243
  cmp    %r9d,0x50(%rsp)
  sete   %r8b
  and    %r8d,%esi
L6029:
  test   %sil,%sil
  jne    L6554
  test   %r8b,%r8b
  jne    L3380
L295:
  test   %dil,%dil
  je     L106
  cmp    %r9d,0x8(%r14,%rax,4)
  je     L3865
L106:
  mov    0x8(%rsp),%rdi
  cmp    %r9d,(%rdi,%rax,4)
  je     L600
L1278:
  cmpb   $0x0,0x10(%rsp)
  jne    L1567
  movslq %ebx,%rsi
  cmp    (%r12,%rsi,4),%r9d
  jne    L5061
  mov    0x18(%rsp),%rbx
  cmp    %r9d,-0x8(%rbx,%rax,4)
  jne    L5061
  mov    (%rsp),%r14d
  jmp    L5913
L5001:
  mov    (%rsp),%r14d
  jmp    L5913
L7023:
  mov    0x8(%rsp),%rbx
  cmp    %r9d,-0x8(%rbx,%rax,4)
  je     L5056
  cmpb   $0x0,0x10(%rsp)
  je     L4121
  mov    (%rsp),%r14d
  jmp    L5913
L3043:
  mov    0x18(%rsp),%rbx
  cmp    %r9d,0x8(%rbx,%rax,4)
  jne    L721
  mov    (%rsp),%r14d
  jmp    L5913
L1572:
  mov    0x58(%rsp),%r15
  addq   $0x1c,0x48(%rsp)
  addq   $0x1c,0x40(%rsp)
  addq   $0x1c,0x38(%rsp)
  addq   $0x1c,0x30(%rsp)
  cmp    0x78(%rsp),%r15
  je     L134
L4620:
  lea    0x54(%r15),%r14
  lea    0x70(%r15),%r12
  mov    %r15,%rax
  mov    %r15,0x60(%rsp)
  add    $0x1c,%r15
  mov    %r15,0x8(%rsp)
  mov    0x40(%rsp),%rbx
  mov    %rbx,0x70(%rsp)
  mov    0x48(%rsp),%rbx
  mov    %rbx,0x18(%rsp)
  mov    0x30(%rsp),%rbx
  mov    %rbx,0x68(%rsp)
  mov    0x38(%rsp),%rbx
  mov    %rbx,0x80(%rsp)
  lea    0x38(%rax),%rdx
  mov    $0x0,%eax
  mov    %r15,0x58(%rsp)
  jmp    L3062
L2369:
  cmp    0x8(%rdx),%esi
  je     L138
  mov    %ecx,%r9d
  mov    -0x4(%rdx),%r12d
  cmp    %r12d,%esi
  setne  %r14b
  cmp    %esi,-0x8(%rdx)
  setne  0x8(%rsp)
  jne    L839
  test   %r14b,%r14b
  jne    L839
  jmp    L3399
L138:
  cmp    0xc(%rdx),%esi
  je     L3399
  mov    %ecx,%r9d
  mov    -0x4(%rdx),%r12d
  mov    $0x1,%r14d
  cmp    %r12d,%esi
  jne    L5525
  jmp    L3399
L2062:
  mov    0x30(%rsp),%r14
  cmp    -0x8(%r14,%rax,4),%esi
  je     L163
  mov    0x4(%rdi,%rax,4),%r14d
  cmp    %r14d,%esi
  jne    L4694
  mov    $0x0,%r8d
  jmp    L5927
L163:
  mov    0x40(%rsp),%r14
  cmp    -0xc(%r14,%rax,4),%esi
  je     L3399
  mov    0x4(%rdi,%rax,4),%r14d
  cmp    %r14d,%esi
  jne    L4694
  jmp    L3399
L2449:
  cmp    %r15d,%esi
  je     L5873
L4694:
  mov    0x18(%rsp),%r15
  cmp    0x4(%r15,%rax,4),%esi
  je     L6014
  movslq %r9d,%r8
  mov    (%rdi,%r8,4),%r15d
  cmp    %r15d,%esi
  setne  %r8b
  or     0x8(%rsp),%r8b
L108:
  test   %r8b,%r8b
  je     L6847
L3869:
  cmp    %r14d,%r13d
  je     L3987
  cmp    %r13d,%r15d
  je     L3944
  cmp    %r13d,0x4(%rbp,%rax,4)
  je     L1239
  cmp    %r13d,%r12d
  sete   %r8b
  cmp    %r13d,%r11d
  sete   %r11b
  or     %r8b,%r11b
  jne    L90
  movslq %r9d,%r9
  cmp    %r13d,0x0(%rbp,%r9,4)
  je     L7174
  cmp    %r13d,(%r10)
  je     L3239
L3399:
  add    $0x1,%rax
  add    $0x4,%rdx
  add    $0x1,%ecx
  cmp    $0x7,%rax
  je     L2765
L3090:
  mov    %eax,(%rsp)
  cmpl   $0x0,(%rdi,%rax,4)
  jne    L3399
  cmpl   $0x0,0x0(%rbp,%rax,4)
  je     L3399
  mov    %rdx,%r10
  mov    0x4(%rdx),%r11d
  cmp    %esi,%r11d
  je     L2369
  mov    %ecx,%r9d
  mov    -0x4(%rdx),%r12d
  cmp    %r12d,%esi
  setne  %r14b
L5525:
  cmp    %esi,-0x8(%r10)
  setne  0x8(%rsp)
L839:
  cmp    %esi,-0xc(%r10)
  setne  %r8b
  or     0x8(%rsp),%r8b
  or     %r14b,%r8b
  je     L3399
  movslq %r9d,%r14
  mov    0x10(%rsp),%r15
  cmp    (%r15,%r14,4),%esi
  je     L2062
  mov    0x4(%rdi,%rax,4),%r14d
  cmp    %r14d,%esi
  jne    L4694
L5927:
  mov    0x8(%rbp,%rax,4),%r15d
  cmp    %r15d,%esi
  jne    L2449
  test   %r8b,%r8b
  jne    L2449
  jmp    L3399
L5873:
  mov    0x18(%rsp),%r15
  cmp    0xc(%r15,%rax,4),%esi
  jne    L4694
  jmp    L3399
L6014:
  mov    0x38(%rsp),%r15
  cmp    0x8(%r15,%rax,4),%esi
  je     L2280
  movslq %r9d,%r8
  mov    (%rdi,%r8,4),%r15d
  cmp    %r15d,%esi
  setne  %r8b
  or     0x8(%rsp),%r8b
  jne    L108
  jmp    L3399
L2280:
  mov    0x48(%rsp),%r15
  cmp    0xc(%r15,%rax,4),%esi
  je     L3399
  movslq %r9d,%r8
  mov    (%rdi,%r8,4),%r15d
  cmp    %r15d,%esi
  jne    L3869
  jmp    L3399
L6847:
  mov    0x10(%rsp),%r8
  cmp    -0xc(%r8,%rax,4),%esi
  jne    L3869
  jmp    L3399
L2765:
  addq   $0x1c,0x20(%rsp)
  cmp    0x28(%rsp),%rbx
  je     L443
L118:
  lea    -0x38(%rbx),%rdi
  lea    -0x1c(%rbx),%rbp
  lea    -0x70(%rbx),%rax
  mov    %rax,0x10(%rsp)
  mov    0x20(%rsp),%rax
  mov    %rax,0x30(%rsp)
  lea    -0xa8(%rbx),%rax
  mov    %rax,0x40(%rsp)
  mov    %rbx,%rax
  mov    %rbx,0x18(%rsp)
  add    $0x1c,%rbx
  mov    %rbx,0x38(%rsp)
  lea    0x38(%rax),%rdx
  mov    %rdx,0x48(%rsp)
  lea    -0x54(%rax),%rdx
  mov    $0xffffffff,%ecx
  mov    $0x0,%eax
  jmp    L3090
L443:
  mov    0x50(%rsp),%r15
  mov    %r13d,%r11d
  neg    %r11d
  mov    0x88(%rsp),%r8
  mov    %r15,0x48(%rsp)
  jmp    L2144
L134:
  mov    0x98(%rsp),%r15
  mov    %r9d,%r13d
  lea    0xe0(%r15),%rax
  mov    %rax,0x28(%rsp)
  mov    0x90(%rsp),%rax
  mov    %rax,0x20(%rsp)
  mov    0x88(%rsp),%rbx
  mov    %r9d,%esi
  neg    %esi
  mov    %r15,0x50(%rsp)
  jmp    L118
L5706:
  cmp    0x8(%rdx),%r11d
  je     L1202
  mov    %ecx,%edi
  mov    -0x4(%rdx),%r13d
  cmp    %r13d,%r11d
  setne  %r10b
  cmp    %r11d,-0x8(%rdx)
  setne  0x8(%rsp)
  jne    L5384
  test   %r10b,%r10b
  jne    L5384
  jmp    L1368
L1202:
  cmp    0xc(%rdx),%r11d
  je     L1368
  mov    %ecx,%edi
  mov    -0x4(%rdx),%r13d
  mov    $0x1,%r10d
  cmp    %r13d,%r11d
  jne    L2502
  jmp    L1368
L4860:
  mov    0x20(%rsp),%r10
  cmp    -0x8(%r10,%rax,4),%r11d
  je     L2332
  mov    0x4(%rsi,%rax,4),%r9d
  cmp    %r9d,%r11d
  jne    L4512
  cmp    0x8(%r15,%rax,4),%r11d
  setne  %r10b
  jne    L5923
  jmp    L1368
L2332:
  mov    0x40(%rsp),%r10
  cmp    -0xc(%r10,%rax,4),%r11d
  je     L1368
  mov    0x4(%rsi,%rax,4),%r9d
  cmp    %r9d,%r11d
  jne    L4512
  jmp    L1368
L1669:
  mov    0x30(%rsp),%r10
  cmp    0x8(%r10,%rax,4),%r11d
  je     L5212
  movslq %edi,%r10
  mov    (%rsi,%r10,4),%r12d
  cmp    %r12d,%r11d
  setne  %r10b
  or     0x8(%rsp),%r10b
  jne    L887
  jmp    L1368
L5212:
  mov    0x38(%rsp),%r10
  cmp    0xc(%r10,%rax,4),%r11d
  je     L1368
  movslq %edi,%r10
  mov    (%rsi,%r10,4),%r12d
  cmp    %r12d,%r11d
  jne    L4699
  jmp    L1368
L2103:
  cmp    -0xc(%r14,%rax,4),%r11d
  je     L1368
L6564:
  cmp    %r11d,-0x8(%rsi,%rax,4)
  je     L1070
  cmp    %r9d,%r11d
  jne    L4040
  mov    (%rsp),%r14d
  jmp    L5913
L2768:
  cmp    (%r8),%r11d
  jne    L6001
  mov    (%rsp),%r14d
  jmp    L5913
L5723:
  cmp    0x8(%r14,%rax,4),%r11d
  je     L4942
  movslq %edi,%rdi
  cmp    (%r15,%rdi,4),%r11d
  je     L1381
  mov    $0x0,%edi
L5855:
  cmp    %r11d,%r13d
  je     L3161
  cmp    0x4(%r15,%rax,4),%r11d
  je     L4566
  cmp    %r9d,%r11d
  sete   %r9b
  cmp    %r11d,%r12d
  sete   %r10b
  or     %r10d,%r9d
  or     0x10(%rsp),%r9b
  jne    L404
  test   %dil,%dil
  jne    L3769
  cmp    (%r8),%r11d
  je     L1937
L1368:
  add    $0x1,%rax
  add    $0x4,%rdx
  add    $0x1,%ecx
  cmp    $0x7,%rax
  je     L857
L1912:
  mov    %eax,(%rsp)
  cmpl   $0x0,(%rsi,%rax,4)
  jne    L1368
  cmpl   $0x0,(%r15,%rax,4)
  je     L1368
  mov    %rdx,%r8
  mov    0x4(%rdx),%ebx
  cmp    %r11d,%ebx
  je     L5706
  mov    %ecx,%edi
  mov    -0x4(%rdx),%r13d
  cmp    %r13d,%r11d
  setne  %r10b
L2502:
  cmp    %r11d,-0x8(%r8)
  setne  0x8(%rsp)
L5384:
  cmp    %r11d,-0xc(%r8)
  setne  %r9b
  or     0x8(%rsp),%r9b
  or     %r10b,%r9b
  mov    %r9b,0x10(%rsp)
  je     L1368
  movslq %edi,%r9
  cmp    (%r14,%r9,4),%r11d
  je     L4860
  mov    0x4(%rsi,%rax,4),%r9d
  cmp    %r9d,%r11d
  je     L4784
L4512:
  cmp    0x4(%rbp,%rax,4),%r11d
  je     L1669
  movslq %edi,%r10
  mov    (%rsi,%r10,4),%r12d
  cmp    %r12d,%r11d
  setne  %r10b
  or     0x8(%rsp),%r10b
L887:
  test   %r10b,%r10b
  je     L2103
  cmp    %r11d,%r12d
  je     L6564
L4699:
  cmp    %r9d,%r11d
  jne    L4040
  cmp    %r9d,0x8(%rsi,%rax,4)
  je     L6204
L4040:
  cmp    (%r14,%rax,4),%r11d
  je     L2768
L6001:
  cmp    %r11d,%ebx
  je     L5723
  movslq %edi,%rdi
  cmp    (%r15,%rdi,4),%r11d
  sete   %dil
  jne    L311
  cmp    -0x8(%rbp,%rax,4),%r11d
  je     L6919
  movb   $0x0,0x10(%rsp)
  jmp    L5855
L857:
  mov    0x18(%rsp),%r8
  addq   $0x1c,0x90(%rsp)
  cmp    %r8,0x28(%rsp)
  je     L1740
L2144:
  lea    -0x38(%r8),%rsi
  lea    -0x1c(%r8),%r15
  lea    -0x70(%r8),%r14
  mov    0x90(%rsp),%rax
  mov    %rax,0x20(%rsp)
  lea    -0xa8(%r8),%rax
  mov    %rax,0x40(%rsp)
  mov    %r8,%r13
  add    $0x1c,%r8
  mov    %r8,0x30(%rsp)
  lea    0x38(%r13),%rax
  mov    %rax,0x38(%rsp)
  lea    -0x54(%r13),%rdx
  mov    $0xffffffff,%ecx
  mov    $0x0,%eax
  mov    %r13,%rbp
  mov    %r8,0x18(%rsp)
  jmp    L1912
L1740:
  mov    0x48(%rsp),%r15
L1889:
  mov    $0x0,%eax
  call   <rand@plt>
  movslq %eax,%r14
  imul   $0xffffffff92492493,%r14,%r14
  shr    $0x20,%r14
  add    %eax,%r14d
  sar    $0x2,%r14d
  cltd
  sub    %edx,%r14d
  lea    0x0(,%r14,8),%edx
  sub    %r14d,%edx
  sub    %edx,%eax
  mov    %eax,%r14d
  cltq
  cmpl   $0x0,(%r15,%rax,4)
  jne    L1889
  mov    %r14d,%esi
  lea    D3(%rip),%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  jmp    L5913
L311:
  movb   $0x0,0x10(%rsp)
  jmp    L5855
L5677:
  cmp    $0x2,%ebp
  jle    L5880
  test   %r9b,%r9b
  jne    L3917
L5880:
  cmp    $0x1,%ecx
  jle    L6417
  cmp    $0x1,%ebp
  jg     L6123
L6417:
  cmp    $0x6,%r8d
  jg     L2610
L226:
  add    $0x1,%rax
  add    $0x1,%r8d
  add    $0x1,%edx
  add    $0x1,%esi
L616:
  mov    %eax,%r10d
  mov    %eax,(%rsp)
  mov    %eax,%ecx
  cmp    $0x3,%eax
  jg     L1883
  cmpl   $0x0,(%rdi,%rax,4)
  jne    L1883
  cmp    %r13d,0x4(%rdi,%rax,4)
  je     L2897
L2360:
  cmp    $0x3,%esi
  jbe    L6718
  cmp    $0x3,%edx
  ja     L3276
  jmp    L2811
L4680:
  cmp    $0x3,%edx
  ja     L6556
  jmp    L5568
L6107:
  cmp    $0x3,%esi
  ja     L1181
  jmp    L1212
L4152:
  cmp    $0x2,%ecx
  setg   %r9b
  cmp    $0x2,%ebp
  setle  %r11b
  test   %r9b,%r9b
  je     L1165
  test   %r11b,%r11b
  jne    L746
  jmp    L1165
L5078:
  cmp    $0x2,%ecx
  jg     L4577
L7248:
  cmp    $0x2,%edx
  jbe    L3179
  cmp    $0x2,%ecx
  setg   %r9b
  cmp    $0x2,%ebp
  setle  %r11b
L1165:
  cmp    $0x3,%ecx
  jg     L4207
  test   %r11b,%r11b
  je     L4207
  cmpl   $0x0,(%rdi,%rax,4)
  jne    L4207
L1272:
  movslq %r8d,%r11
  cmp    %r13d,(%r14,%r11,4)
  jne    L4207
  lea    0x2(%r10),%r11d
  movslq %r11d,%r11
  lea    (%r15,%r11,4),%r11
  cmp    %r13d,0x38(%r12,%r11,1)
  jne    L4207
  lea    0x3(%r10),%r11d
  movslq %r11d,%r11
  lea    (%r15,%r11,4),%r11
  cmp    %r13d,0x54(%r12,%r11,1)
  jne    L4207
  mov    (%rsp),%r14d
  jmp    L5913
L2767:
  cmp    $0x3,%edx
  ja     L3276
  jmp    L2811
L7258:
  cmp    $0x2,%ebp
  jle    L1813
  test   %sil,%sil
  jne    L659
L1813:
  cmp    $0x1,%edi
  jle    L3105
  cmp    $0x1,%ebp
  jg     L2235
L3105:
  cmp    $0x6,%ecx
  jg     L5374
L6532:
  add    $0x1,%rax
  add    $0x1,%ecx
  add    $0x1,%edx
L6968:
  mov    %eax,%r8d
  mov    %eax,(%rsp)
  mov    %eax,%edi
  cmp    $0x2,%eax
  setg   %sil
  cmp    $0x2,%ebp
  setle  %r9b
  test   %sil,%sil
  je     L5146
  test   %r9b,%r9b
  je     L5146
  cmpl   $0x0,(%r10,%rax,4)
  jne    L4202
  mov    0x8(%rsp),%r9
  cmp    %r12d,-0xc(%r9,%rax,4)
  je     L1675
L3975:
  cmp    $0x3,%edi
  jle    L4440
  jmp    L4202
L1552:
  cmp    $0x3,%edx
  ja     L7331
  jmp    L4622
L1749:
  lea    -0x1(%r8),%r9d
  cmp    $0x3,%r9d
  ja     L7108
  jmp    L5878
L2258:
  cmp    $0x2,%r9d
  jg     L6383
L961:
  cmp    $0x2,%edx
  jbe    L6546
L3643:
  cmp    $0x6,%ecx
  jg     L6389
L4049:
  add    $0x1,%rax
  add    $0x1,%ecx
  add    $0x1,%edx
  add    $0x1,%edi
  add    $0x1,%esi
L2957:
  lea    -0x1(%rcx),%r14d
  cmp    $0x5,%r8d
  je     L2084
  mov    %eax,%r9d
  cmp    $0x3,%eax
  jg     L6612
  cmpl   $0x0,(%r10,%rax,4)
  jne    L6612
  cmpl   $0x0,(%r12,%rax,4)
  je     L2629
  cmp    %r11d,0x4(%r10,%rax,4)
  je     L1817
L2629:
  cmp    $0x3,%esi
  jbe    L5469
  cmp    $0x3,%edx
  ja     L1264
  jmp    L609
L4916:
  cmp    $0x3,%edx
  ja     L1264
  jmp    L609
L2233:
  cmp    $0x2,%r12d
  jle    L950
  test   %sil,%sil
  jne    L1700
L950:
  cmp    $0x1,%edi
  jle    L1218
  cmp    $0x1,%r12d
  jg     L5271
L1218:
  cmp    $0x6,%ecx
  jg     L1965
L3548:
  add    $0x1,%rax
  add    $0x1,%ecx
  add    $0x1,%edx
L3164:
  mov    %eax,%r8d
  mov    %eax,(%rsp)
  mov    %eax,%edi
  cmp    $0x2,%eax
  setg   %sil
  cmp    $0x2,%r12d
  setle  %r9b
  test   %sil,%sil
  je     L7090
  test   %r9b,%r9b
  je     L7090
  cmpl   $0x0,(%r10,%rax,4)
  jne    L3402
  mov    0x8(%rsp),%r9
  cmp    %r13d,-0xc(%r9,%rax,4)
  je     L3019
L528:
  cmp    $0x3,%edi
  jg     L3402
  jmp    L2507
L1590:
  cmp    $0x3,%edx
  ja     L1960
  jmp    L2593
L4429:
  lea    -0x1(%r8),%r9d
  cmp    $0x3,%r9d
  ja     L1275
  jmp    L2445
L6171:
  cmp    $0x2,%r10d
  jg     L3032
L2164:
  cmp    $0x2,%edx
  jbe    L5914
L934:
  cmp    $0x6,%ecx
  jg     L5016
L2143:
  add    $0x1,%rax
  add    $0x1,%ecx
  add    $0x1,%esi
  add    $0x1,%edx
  add    $0x1,%edi
L6665:
  lea    -0x1(%rcx),%r14d
  cmp    $0x5,%r9d
  je     L6115
  mov    %eax,%r10d
  cmp    $0x3,%eax
  jg     L130
  cmpl   $0x0,(%r8,%rax,4)
  jne    L130
  cmp    %r13d,0x4(%r8,%rax,4)
  je     L4983
L2952:
  cmp    $0x3,%esi
  jbe    L3848
  cmp    $0x3,%edx
  ja     L4090
  jmp    L6173
L4784:
  cmp    %r11d,0x8(%r15,%rax,4)
  setne  %r10b
L5923:
  test   %r10b,%r10b
  jne    L4512
  cmp    0xc(%rbp,%rax,4),%r11d
  jne    L4512
  jmp    L1368
L5317:
  cmp    $0x3,%edx
  ja     L6556
  jmp    L4812
L2675:
  cmpl   $0x2,0x30(%rsp)
  ja     L6556
  jmp    L50
L1664:
  cmp    $0x3,%esi
  ja     L1181
  jmp    L7051
L2639:
  cmp    $0x3,%esi
  ja     L5190
L2239:
  cmpl   $0x2,0x30(%rsp)
  ja     L6556
  cmpl   $0x0,(%rdi,%rax,4)
  jne    L4680
L50:
  mov    0x28(%rsp),%rbx
  cmp    %r13d,0x4(%rbx,%rax,4)
  jne    L5317
  mov    0x50(%rsp),%rbx
  cmp    %r13d,0x8(%rbx,%rax,4)
  jne    L5317
  mov    0x8(%rsp),%rbx
  cmp    %r13d,-0x4(%rbx,%rax,4)
  jne    L5317
  mov    (%rsp),%r14d
  jmp    L5913
L5931:
  mov    %ebx,%r9d
  jmp    L1165
L401:
  cmp    $0x2,%ecx
  jle    L7248
L1205:
  movslq %edx,%r9
  cmp    %r13d,(%rdi,%r9,4)
  je     L6609
L7159:
  cmp    $0x2,%edx
  ja     L4074
  jmp    L1312
L6551:
  cmp    $0x2,%ecx
  jle    L7248
L5012:
  cmp    $0x2,%ecx
  setg   %bl
  cmp    $0x2,%ebp
  setle  %r11b
  mov    %ebx,%r9d
  and    %r11b,%r9b
  je     L5931
L4207:
  cmp    $0x3,%edx
  jbe    L7356
  cmp    $0x3,%esi
  jbe    L6212
L6556:
  cmp    $0x2,%ebp
  jle    L5880
  test   %r9b,%r9b
  je     L5880
  cmpl   $0x0,(%rdi,%rax,4)
  jne    L6123
L3917:
  sub    $0x3,%r10d
  movslq %r10d,%r10
  lea    (%r15,%r10,4),%r9
  cmp    %r13d,-0x54(%r12,%r9,1)
  je     L6253
L6123:
  cmp    $0x4,%ecx
  jg     L6417
  cmp    $0x3,%ebp
  jg     L6417
  cmpl   $0x0,(%rdi,%rax,4)
  jne    L3477
  mov    0x8(%rsp),%rbx
  cmp    %r13d,-0x4(%rbx,%rax,4)
  je     L75
L3477:
  cmpl   $0x0,(%rdi,%rax,4)
  jne    L226
  mov    0x8(%rsp),%rbx
  cmp    %r13d,0x4(%rbx,%rax,4)
  jne    L226
  cmp    %r13d,0x8(%rbx,%rax,4)
  jne    L226
  mov    0x28(%rsp),%rbx
  cmp    %r13d,-0x4(%rbx,%rax,4)
  jne    L226
  mov    0x50(%rsp),%rbx
  cmp    %r13d,-0x8(%rbx,%rax,4)
  jne    L226
  mov    0x8(%rsp),%rbx
  cmpl   $0x0,(%rbx,%rax,4)
  je     L226
  mov    (%rsp),%r14d
  jmp    L5913
L2489:
  cmp    $0x3,%edx
  ja     L7331
  jmp    L6227
L843:
  cmpl   $0x2,0x60(%rsp)
  ja     L7331
  jmp    L6904
L2475:
  lea    -0x1(%r8),%r9d
  cmp    $0x3,%r9d
  ja     L7108
  jmp    L4184
L54:
  lea    -0x1(%r8),%r9d
  cmp    $0x3,%r9d
  ja     L749
L4015:
  cmpl   $0x2,0x60(%rsp)
  ja     L7331
  cmpl   $0x0,(%r10,%rax,4)
  jne    L1552
L6904:
  mov    0x58(%rsp),%r9
  cmp    %r12d,0x4(%r9,%rax,4)
  jne    L2489
  mov    0x68(%rsp),%r9
  cmp    0x8(%r9,%rax,4),%r12d
  jne    L2489
  cmp    -0x4(%r13,%rax,4),%r12d
  jne    L2489
  cmpl   $0x0,0x0(%r13,%rax,4)
  je     L2489
  mov    (%rsp),%r14d
  jmp    L5913
L1763:
  cmp    $0x2,%edx
  ja     L3643
  jmp    L4049
L2869:
  cmp    $0x2,%edx
  ja     L3643
  jmp    L4049
L448:
  cmp    $0x2,%edx
  ja     L3643
  jmp    L4049
L3952:
  cmp    $0x3,%edx
  ja     L1960
  jmp    L1535
L22:
  cmpl   $0x2,0x60(%rsp)
  ja     L1960
  jmp    L1528
L951:
  lea    -0x1(%r8),%r9d
  cmp    $0x3,%r9d
  ja     L1275
  jmp    L3217
L5019:
  lea    -0x1(%r8),%r9d
  cmp    $0x3,%r9d
  ja     L6818
L250:
  cmpl   $0x2,0x60(%rsp)
  ja     L1960
  cmpl   $0x0,(%r10,%rax,4)
  jne    L1590
L1528:
  mov    0x58(%rsp),%r9
  cmp    %r13d,0x4(%r9,%rax,4)
  jne    L3952
  mov    0x68(%rsp),%r9
  cmp    %r13d,0x8(%r9,%rax,4)
  jne    L3952
  cmp    %r13d,-0x4(%rbx,%rax,4)
  jne    L3952
  cmpl   $0x0,(%rbx,%rax,4)
  je     L3952
  mov    (%rsp),%r14d
  jmp    L5913
L6174:
  cmp    $0x2,%edx
  ja     L934
  jmp    L2143
L6641:
  cmp    $0x2,%edx
  ja     L934
  jmp    L2143
L4888:
  mov    (%rsp),%r14d
  jmp    L5913
L4923:
  mov    (%rsp),%r14d
  jmp    L5913
L683:
  mov    (%rsp),%r14d
  jmp    L5913
L3865:
  mov    (%rsp),%r14d
  jmp    L5913
L1867:
  mov    (%rsp),%r14d
  jmp    L5913
L5056:
  mov    (%rsp),%r14d
  jmp    L5913
L3987:
  mov    (%rsp),%r14d
  jmp    L5913
L3944:
  mov    (%rsp),%r14d
  jmp    L5913
L1239:
  mov    (%rsp),%r14d
  jmp    L5913
L90:
  mov    (%rsp),%r14d
  jmp    L5913
L7174:
  mov    (%rsp),%r14d
  jmp    L5913
L3239:
  mov    (%rsp),%r14d
  jmp    L5913
L1070:
  mov    (%rsp),%r14d
  jmp    L5913
L6204:
  mov    (%rsp),%r14d
  jmp    L5913
L4942:
  mov    (%rsp),%r14d
  jmp    L5913
L1381:
  mov    (%rsp),%r14d
  jmp    L5913
L6919:
  mov    (%rsp),%r14d
  jmp    L5913
L3161:
  mov    (%rsp),%r14d
L5913:
  mov    %r14d,%eax
  add    $0xa8,%rsp
  pop    %rbx
  pop    %rbp
  pop    %r12
  pop    %r13
  pop    %r14
  pop    %r15
  ret
L4566:
  mov    (%rsp),%r14d
  jmp    L5913
L404:
  mov    (%rsp),%r14d
  jmp    L5913
L3769:
  mov    (%rsp),%r14d
  jmp    L5913
L1937:
  mov    (%rsp),%r14d
  jmp    L5913
L6877:
  mov    (%rsp),%r14d
  jmp    L5913
L121:
  mov    (%rsp),%r14d
  jmp    L5913
```

tool_calls: name: parse_data
arguments: label: D3
datatype: string

tool: D3: j= %d 

assistant: ```c
int bot(int grid[6][7], int move) {
  int i, j;
  for (i = 0; i < 7; i++)
    for (j = 0; j < 3; j++) {
      if (grid[j][i] == 0 && grid[j + 1][i] == move && grid[j + 2][i] == move && grid[j + 3][i] == move)
        return i;
    }
  for (i = 5; i >= 0; i--)
    for (j = 0; j < 7; j++) {
      if (i == 5) {
        if ((j + 3) < 7 && grid[i][j] == 0 && grid[i][j + 1] == move && grid[i][j + 2] == move && grid[i][j + 3] == move)
          return j;
        if ((j + 2) < 7 && (j - 1) >= 0 && grid[i][j] == 0 && grid[i][j - 1] == move && grid[i][j + 1] == move && grid[i][j + 2] == move)
          return (j);
        if ((j + 1) < 7 && (j - 2) >= 0 && grid[i][j] == 0 && grid[i][j - 2] == move && grid[i][j - 1] == move && grid[i][j + 1] == move)
          return (j);
        if ((j - 3) >= 0 && grid[i][j] == 0 && grid[i][j - 1] == move && grid[i][j - 2] == move && grid[i][j - 3] == move)
          return (j);
        if ((j - 2) >= 0 && (j + 2) < 7 && grid[i][j] == 0 && grid[i][j - 1] == move && grid[i][j - 2] == move && grid[i][j + 1] == move && grid[i][j + 2] == move)
          return j;
      } else {
        if ((j + 3) < 7 && grid[i][j] == 0 && grid[i][j + 1] == move && grid[i][j + 2] == move && grid[i][j + 3] == move && grid[i + 1][j] != 0)
          return j;
        if ((j + 2) < 7 && (j - 1) >= 0 && grid[i][j] == 0 && grid[i][j - 1] == move && grid[i][j + 1] == move && grid[i][j + 2] == move && grid[i + 1][j] != 0)
          return (j);
        if ((j + 1) < 7 && (j - 2) >= 0 && grid[i][j] == 0 && grid[i][j - 2] == move && grid[i][j - 1] == move && grid[i][j + 1] == move && grid[i + 1][j] != 0)
          return (j);
        if ((j - 3) >= 0 && grid[i][j] == 0 && grid[i][j - 1] == move && grid[i][j - 2] == move && grid[i][j - 3] == move && grid[i + 1][j] != 0)
          return (j);
        if ((j - 2) >= 0 && (j + 2) < 7 && grid[i][j] == 0 && grid[i][j - 1] == move && grid[i][j - 2] == move && grid[i][j + 1] == move && grid[i][j + 2] == move && grid[i + 1][j] != 0)
          return j;
      }
    }
  for (i = 0; i < 6; i++)
    for (j = 0; j < 7; j++) {
      if ((j - 3) >= 0 && (i + 3) < 6 && grid[i][j] == 0 && grid[i + 3][j - 3] == move && grid[i + 2][j - 2] == move && grid[i + 1][j - 1] == move && grid[i + 1][j] != 0)
        return j;
      if ((j + 3) < 7 && (i + 3) < 6 && grid[i][j] == 0 && grid[i + 1][j + 1] == move && grid[i + 2][j + 2] == move && grid[i + 3][j + 3] == move && grid[i + 1][j] != 0)
        return j;
      if ((j - 2) >= 0 && (j + 1) < 7 && (i - 1) >= 0 && (i + 2) < 6 && grid[i][j] == 0 && grid[i - 1][j + 1] == move && grid[i + 2][j - 2] == move && grid[i + 1][j - 1] == move && grid[i + 1][j] != 0)
        return j;
      if ((j + 2) < 7 && (j - 1) >= 0 && (i + 2) < 6 && (i - 1) >= 0 && grid[i][j] == 0 && grid[i + 1][j + 1] == move && grid[i + 2][j + 2] == move && grid[i - 1][j - 1] == move && grid[i + 1][j] != 0)
        return j;
      if ((j - 1) >= 0 && (j + 2) < 7 && (i - 2) >= 0 && (i + 1) < 6 && grid[i][j] == 0 && grid[i - 1][j + 1] == move && grid[i - 2][j + 2] == move && grid[i + 1][j - 1] == move && grid[i + 1][j] != 0)
        return j;
      if ((j + 1) < 7 && (j - 2) >= 0 && (i + 1) < 6 && (i - 2) >= 0 && grid[i][j] == 0 && grid[i + 1][j + 1] == move && grid[i - 2][j - 2] == move && grid[i - 1][j - 1] == move && grid[i + 1][j] != 0)
        return j;
      if ((j + 3) < 0 && (j - 3) >= 0 && grid[i][j] == 0 && grid[i - 1][j + 1] == move && grid[i - 2][j + 2] == move && grid[i - 3][j + 3] == move && grid[i + 1][j] != 0)
        return j;
      if ((j - 3) >= 0 && (i - 3) >= 0 && grid[i][j] == 0 && grid[i - 3][j - 3] == move && grid[i - 2][j - 2] == move && grid[i - 1][j - 1] == move && grid[i + 1][j] != 0)
        return j;
      if ((j - 2) >= 0 && (i - 2) >= 0 && (j + 2) < 7 && (i + 2) < 6 && grid[i][j] == 0 && grid[i + 1][j - 1] == move && grid[i + 1][j - 2] == move && grid[i - 1][j + 1] == move && grid[i - 2][j + 2] == move && grid[i + 1][j] != 0)
        return j;
      if ((j - 2) >= 0 && (i - 2) >= 0 && (j + 2) < 7 && (i + 2) < 6 && grid[i][j] == 0 && grid[i + 1][j + 1] == move && grid[i + 1][j + 2] == move && grid[i - 1][j - 1] == move && grid[i - 2][j - 2] == move && grid[i + 1][j] != 0)
        return j;
    }
  for (i = 5; i >= 0; i--)
    for (j = 0; j < 7; j++) {
      if (i == 5) {
        if ((j + 3) < 7 && grid[i][j] == 0 && grid[i][j + 1] == -(move) && grid[i][j + 2] == -(move) && grid[i][j + 3] == -(move))
          return j;
        if ((j + 2) < 7 && (j - 1) >= 0 && grid[i][j] == 0 && grid[i][j - 1] == -(move) && grid[i][j + 1] == -(move) && grid[i][j + 2] == -(move))
          return (j);
        if ((j + 1) < 7 && (j - 2) >= 0 && grid[i][j] == 0 && grid[i][j - 2] == -(move) && grid[i][j - 1] == -(move) && grid[i][j + 1] == -(move))
          return (j);
        if ((j - 3) >= 0 && grid[i][j] == 0 && grid[i][j - 1] == -(move) && grid[i][j - 2] == -(move) && grid[i][j - 3] == -(move))
          return (j);
        if ((j - 2) >= 0 && (j + 2) < 7 && grid[i][j] == 0 && grid[i][j - 1] == -(move) && grid[i][j - 2] == -(move) && grid[i][j + 1] == -(move) && grid[i][j + 2] == -(move))
          return j;
      } else {
        if ((j + 3) < 7 && grid[i][j] == 0 && grid[i + 1][j] != 0 && grid[i][j + 1] == -(move) && grid[i][j + 2] == -(move) && grid[i][j + 3] == -(move) && grid[i + 1][j] != 0)
          return j;
        if ((j + 2) < 7 && (j - 1) >= 0 && grid[i][j] == 0 && grid[i + 1][j] != 0 && grid[i][j - 1] == -(move) && grid[i][j + 1] == -(move) && grid[i][j + 2] == -(move) && grid[i + 1][j] != 0)
          return (j);
        if ((j + 1) < 7 && (j - 2) >= 0 && grid[i][j] == 0 && grid[i + 1][j] != 0 && grid[i][j - 2] == -(move) && grid[i][j - 1] == -(move) && grid[i][j + 1] == -(move) && grid[i + 1][j] != 0)
          return (j);
        if ((j - 3) >= 0 && grid[i][j] == 0 && grid[i + 1][j] != 0 && grid[i][j - 1] == -(move) && grid[i][j - 2] == -(move) && grid[i][j - 3] == -(move) && grid[i + 1][j] != 0)
          return (j);
        if ((j - 2) >= 0 && (j + 2) < 7 && grid[i][j] == 0 && grid[i + 1][j] != 0 && grid[i][j - 1] == -(move) && grid[i][j - 2] == -(move) && grid[i][j + 1] == -(move) && grid[i][j + 2] == -(move) && grid[i + 1][j] != 0)
          return j;
      }
    }
  for (i = 0; i < 7; i++)
    for (j = 0; j < 3; j++) {
      if (grid[j][i] == 0 && grid[j + 1][i] == -(move) && grid[j + 2][i] == -(move) && grid[j + 3][i] == -(move))
        return i;
    }
  for (i = 0; i < 6; i++)
    for (j = 0; j < 7; j++) {
      if ((j - 3) >= 0 && (i + 3) < 6 && grid[i][j] == 0 && grid[i + 3][j - 3] == -(move) && grid[i + 2][j - 2] == -(move) && grid[i + 1][j - 1] == -(move) && grid[i + 1][j] != 0)
        return j;
      if ((j + 3) < 7 && (i + 3) < 6 && grid[i][j] == 0 && grid[i + 1][j + 1] == -(move) && grid[i + 2][j + 2] == -(move) && grid[i + 3][j + 3] == -(move) && grid[i + 1][j] != 0)
        return j;
      if ((j - 2) >= 0 && (j + 1) < 7 && (i - 1) >= 0 && (i + 2) < 6 && grid[i][j] == 0 && grid[i - 1][j + 1] == -(move) && grid[i + 2][j - 2] == -(move) && grid[i + 1][j - 1] == -(move) && grid[i + 1][j] != 0)
        return j;
      if ((j + 2) < 7 && (j - 1) >= 0 && (i + 2) < 6 && (i - 1) >= 0 && grid[i][j] == 0 && grid[i + 1][j + 1] == -(move) && grid[i + 2][j + 2] == -(move) && grid[i - 1][j - 1] == -(move) && grid[i + 1][j] != 0)
        return j;
      if ((j - 1) >= 0 && (j + 2) < 7 && (i - 2) >= 0 && (i + 1) < 6 && grid[i][j] == 0 && grid[i - 1][j + 1] == -(move) && grid[i - 2][j + 2] == -(move) && grid[i + 1][j - 1] == -(move) && grid[i + 1][j] != 0)
        return j;
      if ((j + 1) < 7 && (j - 2) >= 0 && (i + 1) < 6 && (i - 2) >= 0 && grid[i][j] == 0 && grid[i + 1][j + 1] == -(move) && grid[i - 2][j - 2] == -(move) && grid[i - 1][j - 1] == -(move) && grid[i + 1][j] != 0)
        return j;
      if ((j + 3) < 0 && (j - 3) >= 0 && grid[i][j] == 0 && grid[i - 1][j + 1] == -(move) && grid[i - 2][j + 2] == -(move) && grid[i - 3][j + 3] == -(move))
        return j;
      if ((j - 3) >= 0 && (i - 3) >= 0 && grid[i][j] == 0 && grid[i - 3][j - 3] == -(move) && grid[i - 2][j - 2] == -(move) && grid[i - 1][j - 1] == -(move))
        return j;
      if ((j - 2) >= 0 && (i - 2) >= 0 && (j + 2) < 7 && (i + 2) < 6 && grid[i][j] == 0 && grid[i + 1][j - 1] == -(move) && grid[i + 1][j - 2] == -(move) && grid[i - 1][j + 1] == -(move) && grid[i - 2][j + 2] == -(move) && grid[i + 1][j] != 0)
        return j;
      if ((j - 2) >= 0 && (i - 2) >= 0 && (j + 2) < 7 && (i + 2) < 6 && grid[i][j] == 0 && grid[i + 1][j + 1] == -(move) && grid[i + 1][j + 2] == -(move) && grid[i - 1][j - 1] == -(move) && grid[i - 2][j - 2] == -(move) && grid[i + 1][j] != 0)
        return j;
    }
  for (i = 0; i < 6; i++)
    for (j = 0; j < 7; j++) {
      if ((j + 3) < 7 && grid[i][j] == 0 && grid[i][j + 1] == move && grid[i][j + 2] == move && grid[i][j + 3] == move)
        return j;
      if ((j + 2) < 7 && (j - 1) >= 0 && grid[i][j] == 0 && grid[i][j - 1] == move && grid[i][j + 1] == move && grid[i][j + 2] == move)
        return (j);
      if ((j + 1) < 7 && (j - 2) >= 0 && grid[i][j] == 0 && grid[i][j - 2] == move && grid[i][j - 1] == move && grid[i][j + 1] == move)
        return (j);
      if ((j - 3) >= 0 && grid[i][j] == 0 && grid[i][j - 1] == move && grid[i][j - 2] == move && grid[i][j - 3] == move)
        return (j);
      if ((j - 2) >= 0 && (j + 2) < 7 && grid[i][j] == 0 && grid[i][j - 1] == move && grid[i][j - 2] == move && grid[i][j + 1] == move && grid[i][j + 2] == move)
        return j;
      if ((j - 3) >= 0 && (i + 3) < 6 && grid[i][j] == 0 && grid[i + 3][j - 3] == move && grid[i + 2][j - 2] == move && grid[i + 1][j - 1] == move)
        return j;
      if ((j + 3) < 7 && (i + 3) < 6 && grid[i][j] == 0 && grid[i + 1][j + 1] == move && grid[i + 2][j + 2] == move && grid[i + 3][j + 3] == move)
        return j;
      if ((j - 2) >= 0 && (j + 1) < 7 && (i - 1) >= 0 && (i + 2) < 6 && grid[i][j] == 0 && grid[i - 1][j + 1] == move && grid[i + 2][j - 2] == move && grid[i + 1][j - 1] == move)
        return j;
      if ((j + 2) < 7 && (j - 1) >= 0 && (i + 2) < 6 && (i - 1) >= 0 && grid[i][j] == 0 && grid[i + 1][j + 1] == move && grid[i + 2][j + 2] == move && grid[i - 1][j - 1] == move)
        return j;
      if ((j - 1) >= 0 && (j + 2) < 7 && (i - 2) >= 0 && (i + 1) < 6 && grid[i][j] == 0 && grid[i - 1][j + 1] == move && grid[i - 2][j + 2] == move && grid[i + 1][j - 1] == move)
        return j;
      if ((j + 1) < 7 && (j - 2) >= 0 && (i + 1) < 6 && (i - 2) >= 0 && grid[i][j] == 0 && grid[i + 1][j + 1] == move && grid[i - 2][j - 2] == move && grid[i - 1][j - 1] == move)
        return j;
      if ((j + 3) < 0 && (j - 3) >= 0 && grid[i][j] == 0 && grid[i - 1][j + 1] == move && grid[i - 2][j + 2] == move && grid[i - 3][j + 3] == move)
        return j;
      if ((j - 3) >= 0 && (i - 3) >= 0 && grid[i][j] == 0 && grid[i - 3][j - 3] == move && grid[i - 2][j - 2] == move && grid[i - 1][j - 1] == move)
        return j;
      if ((j - 2) >= 0 && (i - 2) >= 0 && (j + 2) < 7 && (i + 2) < 6 && grid[i][j] == 0 && grid[i + 1][j - 1] == move && grid[i + 1][j - 2] == move && grid[i - 1][j + 1] == move && grid[i - 2][j + 2] == move && grid[i + 1][j] != 0)
        return j;
      if ((j - 2) >= 0 && (i - 2) >= 0 && (j + 2) < 7 && (i + 2) < 6 && grid[i][j] == 0 && grid[i + 1][j + 1] == move && grid[i + 1][j + 2] == move && grid[i - 1][j - 1] == move && grid[i - 2][j - 2] == move && grid[i + 1][j] != 0)
        return j;
    }
  for (i = 0; i < 6; i++)
    for (j = 0; j < 7; j++) {
      if (grid[i][j] == 0) {
        if (grid[i + 1][j] != 0 && !(grid[i - 1][j + 1] == -(move) && grid[i - 1][j + 2] == -(move) && grid[i - 1][j + 3] == -(move)))
          if (grid[i + 1][j] != 0 && !(grid[i - 1][j - 1] == -(move) && grid[i - 1][j + 1] == -(move) && grid[i - 1][j + 2] == -(move)))
            if (grid[i + 1][j] != 0 && !(grid[i - 1][j - 2] == -(move) && grid[i - 1][j - 1] == -(move) && grid[i - 1][j + 1] == -(move)))
              if (grid[i + 1][j] != 0 && !(grid[i - 1][j - 3] == -(move) && grid[i - 1][j - 2] == -(move) && grid[i - 1][j - 1] == -(move)))
                if (grid[i + 1][j] != 0 && !(grid[i - 2][j - 1] == -(move) && grid[i - 3][j - 2] == -(move) && grid[i - 4][j - 3] == -(move)))
                  if (grid[i + 1][j] != 0 && !(grid[i][j + 1] == -(move) && grid[i - 2][j - 1] == -(move) && grid[i - 3][j - 2] == -(move)))
                    if (grid[i + 1][j] != 0 && !(grid[i][j + 1] == -(move) && grid[i + 1][j + 2] == -(move) && grid[i - 2][j - 1] == -(move)))
                      if (grid[i + 1][j] != 0 && !(grid[i][j + 1] == -(move) && grid[i + 1][j + 2] == -(move) && grid[i + 2][j + 3] == -(move)))
                        if (grid[i + 1][j] != 0 && !(grid[i + 2][j + 1] == -(move) && grid[i + 3][j + 2] == -(move) && grid[i + 4][j + 3] == -(move)))
                          if (grid[i + 1][j] != 0 && !(grid[i][j - 1] == -(move) && grid[i + 2][j + 1] == -(move) && grid[i + 3][j + 2] == -(move)))
                            if (grid[i + 1][j] != 0 && !(grid[i][j - 1] == -(move) && grid[i - 1][j - 2] == -(move) && grid[i + 2][j + 1] == -(move)))
                              if (grid[i + 1][j] != 0 && !(grid[i][j - 1] == -(move) && grid[i - 1][j - 2] == -(move) && grid[i - 2][j - 3] == -(move))) {
                                if (grid[i - 1][j + 1] == (move) && grid[i - 1][j + 2] == (move) && grid[i - 1][j + 3] == (move))
                                  return j;
                                if (grid[i - 1][j - 1] == (move) && grid[i - 1][j + 1] == (move) && grid[i - 1][j + 2] == (move))
                                  return j;
                                if (grid[i - 1][j - 2] == (move) && grid[i - 1][j - 1] == (move) && grid[i - 1][j + 1] == (move))
                                  return j;
                                if (grid[i - 1][j - 3] == (move) && grid[i - 1][j - 2] == (move) && grid[i - 1][j - 1] == (move))
                                  return j;
                                if (grid[i - 2][j - 1] == (move) && grid[i - 3][j - 2] == (move) && grid[i - 4][j - 3] == (move))
                                  return j;
                                if (grid[i][j + 1] == (move) && grid[i - 2][j - 1] == (move) && grid[i - 3][j - 2] == (move))
                                  return j;
                                if (grid[i][j + 1] == (move) && grid[i + 1][j + 2] == (move) && grid[i + 2][j + 3] == (move))
                                  return j;
                                if (grid[i + 2][j + 1] == (move) && grid[i + 3][j + 2] == (move) && grid[i + 4][j + 3] == (move))
                                  return j;
                                if (grid[i][j - 1] == (move) && grid[i + 2][j + 1] == (move) && grid[i + 3][j + 2] == (move))
                                  return j;
                                if (grid[i][j - 1] == (move) && grid[i - 1][j - 2] == (move) && grid[i + 2][j + 1] == (move))
                                  return j;
                                if (grid[i][j - 1] == (move) && grid[i - 1][j - 2] == (move) && grid[i - 2][j - 3] == (move))
                                  return j;
                                if ((grid[i][j - 1] == (move) && grid[i][j - 2] == (move)) || (grid[i][j - 1] == (move) && grid[i][j + 1] == (move)) || (grid[i][j + 1] == (move) && grid[i][j + 2] == (move)))
                                  return j;
                                if (grid[i - 2][j] == (move) && grid[i - 1][j] == (move))
                                  return j;
                                if ((grid[i - 1][j + 1] == (move) && grid[i - 2][j + 2] == (move)) || (grid[i + 1][j - 1] == (move) && grid[i - 1][j + 1] == (move)) || (grid[i + 1][j - 1] == (move) && grid[i + 2][j - 2] == (move)))
                                  return j;
                                if ((grid[i - 1][j - 1] == (move) && grid[i - 2][j - 2] == (move)) || (grid[i - 1][j - 1] == (move) && grid[i - +1][j + 1] == (move)) || (grid[i + 1][j + 1] == (move) && grid[i + 2][j + 2] == (move)))
                                  return j;
                              }
      }
    }
  for (i = 0; i < 6; i++)
    for (j = 0; j < 7; j++) {
      if (grid[i][j] == 0) {
        if (grid[i + 1][j] != 0 && !(grid[i - 1][j + 1] == -(move) && grid[i - 1][j + 2] == -(move) && grid[i - 1][j + 3] == -(move)))
          if (grid[i + 1][j] != 0 && !(grid[i - 1][j - 1] == -(move) && grid[i - 1][j + 1] == -(move) && grid[i - 1][j + 2] == -(move)))
            if (grid[i + 1][j] != 0 && !(grid[i - 1][j - 2] == -(move) && grid[i - 1][j - 1] == -(move) && grid[i - 1][j + 1] == -(move)))
              if (grid[i + 1][j] != 0 && !(grid[i - 1][j - 3] == -(move) && grid[i - 1][j - 2] == -(move) && grid[i - 1][j - 1] == -(move)))
                if (grid[i + 1][j] != 0 && !(grid[i - 2][j - 1] == -(move) && grid[i - 3][j - 2] == -(move) && grid[i - 4][j - 3] == -(move)))
                  if (grid[i + 1][j] != 0 && !(grid[i][j + 1] == -(move) && grid[i - 2][j - 1] == -(move) && grid[i - 3][j - 2] == -(move)))
                    if (grid[i + 1][j] != 0 && !(grid[i][j + 1] == -(move) && grid[i + 1][j + 2] == -(move) && grid[i - 2][j - 1] == -(move)))
                      if (grid[i + 1][j] != 0 && !(grid[i][j + 1] == -(move) && grid[i + 1][j + 2] == -(move) && grid[i + 2][j + 3] == -(move)))
                        if (grid[i + 1][j] != 0 && !(grid[i + 2][j + 1] == -(move) && grid[i + 3][j + 2] == -(move) && grid[i + 4][j + 3] == -(move)))
                          if (grid[i + 1][j] != 0 && !(grid[i][j - 1] == -(move) && grid[i + 2][j + 1] == -(move) && grid[i + 3][j + 2] == -(move)))
                            if (grid[i + 1][j] != 0 && !(grid[i][j - 1] == -(move) && grid[i - 1][j - 2] == -(move) && grid[i + 2][j + 1] == -(move)))
                              if (grid[i + 1][j] != 0 && !(grid[i][j - 1] == -(move) && grid[i - 1][j - 2] == -(move) && grid[i - 2][j - 3] == -(move))) {
                                if (grid[i][j - 1] == (move) || grid[i][j + 1] == (move) || grid[i + 1][j + 1] == (move) || grid[i + 1][j - 1] == (move) || grid[i - 1][j - 1] == (move) || grid[i - 1][j + 1] == (move))
                                  return j;
                                if (grid[i - 1][j] == (move))
                                  return j;
                              }
      }
    }
  for (i = 0; i < 6; i++)
    for (j = 0; j < 7; j++) {
      if (grid[i][j] == 0) {
        if (grid[i + 1][j] != 0 && !(grid[i - 1][j + 1] == -(move) && grid[i - 1][j + 2] == -(move) && grid[i - 1][j + 3] == -(move)))
          if (grid[i + 1][j] != 0 && !(grid[i - 1][j - 1] == -(move) && grid[i - 1][j + 1] == -(move) && grid[i - 1][j + 2] == -(move)))
            if (grid[i + 1][j] != 0 && !(grid[i - 1][j - 2] == -(move) && grid[i - 1][j - 1] == -(move) && grid[i - 1][j + 1] == -(move)))
              if (grid[i + 1][j] != 0 && !(grid[i - 1][j - 3] == -(move) && grid[i - 1][j - 2] == -(move) && grid[i - 1][j - 1] == -(move)))
                if (grid[i + 1][j] != 0 && !(grid[i - 2][j - 1] == -(move) && grid[i - 3][j - 2] == -(move) && grid[i - 4][j - 3] == -(move)))
                  if (grid[i + 1][j] != 0 && !(grid[i][j + 1] == -(move) && grid[i - 2][j - 1] == -(move) && grid[i - 3][j - 2] == -(move)))
                    if (grid[i + 1][j] != 0 && !(grid[i][j + 1] == -(move) && grid[i + 1][j + 2] == -(move) && grid[i - 2][j - 1] == -(move)))
                      if (grid[i + 1][j] != 0 && !(grid[i][j + 1] == -(move) && grid[i + 1][j + 2] == -(move) && grid[i + 2][j + 3] == -(move)))
                        if (grid[i + 1][j] != 0 && !(grid[i + 2][j + 1] == -(move) && grid[i + 3][j + 2] == -(move) && grid[i + 4][j + 3] == -(move)))
                          if (grid[i + 1][j] != 0 && !(grid[i][j - 1] == -(move) && grid[i + 2][j + 1] == -(move) && grid[i + 3][j + 2] == -(move)))
                            if (grid[i + 1][j] != 0 && !(grid[i][j - 1] == -(move) && grid[i - 1][j - 2] == -(move) && grid[i + 2][j + 1] == -(move)))
                              if (grid[i + 1][j] != 0 && !(grid[i][j - 1] == -(move) && grid[i - 1][j - 2] == -(move) && grid[i - 2][j - 3] == -(move))) {
                                if ((grid[i][j - 1] == -(move) && grid[i][j - 2] == -(move)) || (grid[i][j - 1] == -(move) && grid[i][j + 1] == -(move)) || (grid[i][j + 1] == -(move) && grid[i][j + 2] == -(move)))
                                  return j;
                                if (grid[i - 2][j] == -(move) && grid[i - 1][j] == -(move))
                                  return j;
                                if ((grid[i - 1][j + 1] == -(move) && grid[i - 2][j + 2] == -(move)) || (grid[i + 1][j - 1] == -(move) && grid[i - 1][j + 1] == -(move)) || (grid[i + 1][j - 1] == -(move) && grid[i + 2][j - 2] == -(move)))
                                  return j;
                                if ((grid[i - 1][j - 1] == -(move) && grid[i - 2][j - 2] == -(move)) || (grid[i - 1][j - 1] == -(move) && grid[i - +1][j + 1] == -(move)) || (grid[i + 1][j + 1] == -(move) && grid[i + 2][j + 2] == -(move)))
                                  return j;
                                if (grid[i][j - 1] == -(move) || grid[i][j + 1] == -(move) || grid[i + 1][j + 1] == -(move) || grid[i + 1][j - 1] == -(move) || grid[i - 1][j - 1] == -(move) || grid[i - 1][j + 1] == -(move))
                                  return j;
                                if (grid[i - 1][j] == -(move))
                                  return j;
                              }
      }
    }
  do {
    j = rand() % 7;
  } while (grid[0][j] != 0);
  printf("j= %d ", j);
  return j;
}
```