user: 请显示与下面列出的汇编代码相匹配的C语言实现:

```asm
<bot>:
  endbr64
  push   %r15
  lea    0x54(%rdi),%rax
  push   %r14
  mov    %rax,%rdx
  mov    %rax,%r15
  push   %r13
  xor    %r13d,%r13d
  push   %r12
  mov    %esi,%r12d
  push   %rbp
  push   %rbx
  sub    $0x78,%rsp
  mov    %rdi,0x50(%rsp)
  mov    %rax,0x20(%rsp)
  nopl   0x0(%rax)
L5192:
  lea    -0x54(%rdx),%rax
L7323:
  mov    (%rax),%ecx
  test   %ecx,%ecx
  jne    L2792
  cmp    %r12d,0x1c(%rax)
  je     L2462
L2792:
  add    $0x1c,%rax
  cmp    %rdx,%rax
  jne    L7323
  add    $0x1,%r13d
  lea    0x4(%rax),%rdx
  cmp    $0x7,%r13d
  jne    L5192
  mov    0x50(%rsp),%rax
  mov    $0x5,%r9d
  lea    0x80(%rax),%rbx
  lea    0x8c(%rax),%rbp
  mov    %rbx,0x18(%rsp)
  mov    %rbp,%r10
  nopl   0x0(%rax)
L4047:
  lea    0x1c(%r10),%r11
  mov    %r10,%rcx
  mov    %rbx,%r8
  mov    $0xffffffff,%edi
  mov    $0xfffffffe,%edx
  mov    $0x1,%esi
  xor    %eax,%eax
  jmp    L5451
  nopl   (%rax)
L424:
  mov    (%rcx),%r14d
  test   %r14d,%r14d
  jne    L1731
  cmp    %r12d,0x4(%rcx)
  je     L1441
L4188:
  cmp    $0x3,%edi
  jbe    L2716
L581:
  cmp    $0x3,%edx
  jbe    L5621
L5967:
  cmp    $0x2,%rax
  jbe    L4997
  mov    (%rcx),%r14d
  test   %r14d,%r14d
  jne    L1178
L1836:
  cmp    %r12d,-0x4(%rcx)
  je     L3951
L1178:
  cmp    $0x2,%edx
  jbe    L648
L2863:
  cmp    $0x7,%esi
  je     L5932
L648:
  add    $0x1,%rax
  add    $0x1,%esi
  add    $0x4,%r8
  add    $0x4,%rcx
  add    $0x1,%edx
  add    $0x1,%edi
L5451:
  mov    %eax,%r13d
  cmp    $0x5,%r9d
  je     L2156
  cmp    $0x3,%rax
  jbe    L424
L1731:
  cmp    $0x3,%edi
  jbe    L4739
L1166:
  cmp    $0x3,%edx
  ja     L5967
  cmpl   $0x0,(%rcx)
  jne    L5967
L5621:
  cmp    %r12d,-0x8(%rcx)
  je     L7271
L3671:
  cmp    $0x2,%rax
  ja     L1836
  nopl   (%rax)
L4997:
  cmp    $0x2,%edx
  ja     L2863
  cmpl   $0x0,(%rcx)
  jne    L648
  cmp    %r12d,-0x4(%rcx)
  jne    L648
L4705:
  cmp    %r12d,-0x8(%rcx)
  jne    L648
  cmp    %r12d,0x4(%rcx)
  jne    L648
  cmp    %r12d,0x8(%rcx)
  jne    L648
  cmpl   $0x0,(%r11,%rax,4)
  je     L648
L3165:
  add    $0x78,%rsp
  mov    %r13d,%eax
  pop    %rbx
  pop    %rbp
  pop    %r12
  pop    %r13
  pop    %r14
  pop    %r15
  ret
  nopl   0x0(%rax,%rax,1)
L2156:
  cmp    $0x3,%rax
  ja     L2939
  mov    0xc(%r8),%r14d
  test   %r14d,%r14d
  jne    L2939
  cmp    %r12d,0x10(%r8)
  je     L1227
L1153:
  cmp    $0x3,%edi
  jbe    L5702
L5009:
  cmp    $0x3,%edx
  jbe    L3701
L468:
  cmp    $0x2,%rax
  jbe    L1258
  mov    0xc(%r8),%r14d
  test   %r14d,%r14d
  jne    L1178
L2327:
  cmp    %r12d,0x8(%r8)
  jne    L1178
L5561:
  cmp    %r12d,0x4(%r8)
  je     L4176
L2865:
  cmp    $0x2,%edx
  jbe    L2523
  cmp    $0x7,%esi
  jne    L648
L5932:
  sub    $0x1,%r9d
  sub    $0x1c,%r10
  cmp    $0xffffffff,%r9d
  jne    L4047
  mov    0x50(%rsp),%rax
  movl   $0xffffffff,0x10(%rsp)
  xor    %ecx,%ecx
  mov    %rbp,0x38(%rsp)
  lea    -0x38(%rax),%r14
  mov    $0xfffffffe,%eax
  mov    %r15,0x28(%rsp)
  mov    %r14,0x30(%rsp)
  mov    %r14,%r10
  mov    %eax,%r15d
  nop
L741:
  mov    %r15d,0x8(%rsp)
  lea    0x38(%r10),%r8
  lea    0x70(%r10),%r14
  mov    %r10,%rbx
  lea    0x8c(%r10),%rbp
  lea    0x54(%r10),%r11
  add    $0x1c,%r10
  cmp    $0x2,%ecx
  setle  %r9b
  xor    %r13d,%r13d
  nopl   0x0(%rax)
L4473:
  cmp    $0x2,%r13d
  setg   %dil
  jle    L5350
L4303:
  test   %r9b,%r9b
  je     L5350
  movslq %r13d,%rdx
  mov    (%r8,%rdx,4),%esi
  test   %esi,%esi
  jne    L6369
  lea    -0x3(%r13),%eax
  cltq
  cmp    %r12d,0x0(%rbp,%rax,4)
  je     L5147
L5352:
  cmp    $0x3,%r13d
  jg     L6369
  lea    0x1(%r13),%eax
  cltq
  cmp    %r12d,(%r11,%rax,4)
  je     L7238
  nopl   0x0(%rax)
L6369:
  lea    -0x2(%r13),%esi
  cmp    $0x3,%esi
  jbe    L1655
  lea    -0x1(%r13),%eax
  cmp    $0x3,%eax
  jbe    L4171
L3206:
  cmp    $0x2,%ecx
  jle    L3117
  test   %dil,%dil
  je     L3117
  movslq %r13d,%rdx
  mov    (%r8,%rdx,4),%eax
  test   %eax,%eax
  jne    L6402
L5390:
  lea    -0x3(%r13),%eax
  cltq
  cmp    %r12d,-0x1c(%rbx,%rax,4)
  je     L262
L769:
  cmp    $0x4,%r13d
  jg     L1882
  lea    0x1(%r13),%eax
  cmp    $0x3,%ecx
  jg     L7076
L609:
  lea    (%r11,%rdx,4),%rdi
  cmp    %r12d,-0x4(%rdi)
  je     L4144
L6989:
  mov    (%r8,%rdx,4),%edi
  test   %edi,%edi
  jne    L3705
  movslq %eax,%rdi
  cmp    %r12d,(%r11,%rdi,4)
  je     L2136
L3705:
  mov    %eax,%r13d
  cmp    $0x2,%r13d
  setg   %dil
  jg     L4303
  nopw   0x0(%rax,%rax,1)
L5350:
  cmp    $0x3,%r13d
  jg     L6369
  test   %r9b,%r9b
  je     L6369
  movslq %r13d,%rdx
  mov    (%r8,%rdx,4),%eax
  test   %eax,%eax
  jne    L6369
  lea    0x1(%r13),%eax
  cltq
  cmp    %r12d,(%r11,%rax,4)
  jne    L6369
L7238:
  lea    0x2(%r13),%eax
  cltq
  cmp    %r12d,(%r14,%rax,4)
  jne    L6369
  lea    0x3(%r13),%eax
  cltq
  cmp    %r12d,0x0(%rbp,%rax,4)
  jne    L6369
  mov    (%r11,%rdx,4),%eax
  test   %eax,%eax
  je     L6369
  jmp    L3165
  nopl   0x0(%rax)
L2939:
  cmp    $0x3,%edi
  jbe    L3055
L3453:
  cmp    $0x3,%edx
  ja     L468
  cmpl   $0x0,0xc(%r8)
  jne    L468
L3701:
  cmp    %r12d,0x4(%r8)
  je     L5616
L3987:
  cmp    $0x2,%rax
  ja     L2327
  nopl   0x0(%rax)
L1258:
  cmp    $0x2,%edx
  ja     L2863
  cmpl   $0x0,0xc(%r8)
  jne    L648
  cmp    %r12d,0x8(%r8)
  jne    L648
L2523:
  cmp    %r12d,0x4(%r8)
  jne    L648
  cmp    %r12d,0x10(%r8)
  jne    L648
  cmp    %r12d,0x14(%r8)
  jne    L648
  jmp    L3165
  nopl   0x0(%rax)
L3117:
  lea    0x1(%r13),%eax
L2817:
  cmp    $0x1,%r13d
  jle    L7076
  cmp    $0x1,%ecx
  jg     L1571
L7076:
  mov    %eax,%r13d
  cmp    $0x7,%eax
  jne    L4473
L6588:
  mov    0x8(%rsp),%r15d
  add    $0x1,%ecx
  addl   $0x1,0x10(%rsp)
  add    $0x1,%r15d
  cmp    $0x6,%ecx
  jne    L741
  mov    %r12d,%r10d
  mov    %r12d,0x8(%rsp)
  mov    0x28(%rsp),%r15
  mov    $0x5,%r9d
  mov    0x30(%rsp),%r14
  mov    0x38(%rsp),%rbp
  neg    %r10d
  mov    0x18(%rsp),%r12
  cs nopw 0x0(%rax,%rax,1)
L5237:
  lea    0x1c(%rbp),%r11
  mov    %rbp,%rcx
  mov    %r12,%r8
  mov    $0xffffffff,%edi
  mov    $0xfffffffe,%edx
  mov    $0x1,%esi
  xor    %eax,%eax
  jmp    L6865
  nopl   (%rax)
L1192:
  mov    (%rcx),%ebx
  test   %ebx,%ebx
  jne    L4619
  mov    (%r11,%rax,4),%ebx
  test   %ebx,%ebx
  je     L6693
  cmp    %r10d,0x4(%rcx)
  je     L5037
L2976:
  cmp    $0x3,%edi
  jbe    L5947
L4541:
  cmp    $0x3,%edx
  jbe    L1443
L7251:
  cmp    $0x2,%rax
  jbe    L4903
  mov    (%rcx),%ebx
  test   %ebx,%ebx
  jne    L1403
L1186:
  mov    (%r11,%rax,4),%ebx
  test   %ebx,%ebx
  je     L1403
L5912:
  cmp    %r10d,-0x4(%rcx)
  je     L6158
L3155:
  cmp    $0x2,%edx
  jbe    L7136
L1595:
  cmp    $0x7,%esi
  je     L133
L5977:
  add    $0x1,%rax
  add    $0x1,%esi
  add    $0x4,%r8
  add    $0x4,%rcx
  add    $0x1,%edx
  add    $0x1,%edi
L6865:
  mov    %eax,%r13d
  cmp    $0x5,%r9d
  je     L434
  cmp    $0x3,%rax
  jbe    L1192
L4619:
  cmp    $0x3,%edi
  jbe    L6310
L1390:
  cmp    $0x3,%edx
  ja     L7251
  cmpl   $0x0,(%rcx)
  jne    L7251
L1443:
  cmpl   $0x0,(%r11,%rax,4)
  jne    L6240
  cmp    $0x2,%rax
  ja     L1186
  xchg   %ax,%ax
L4903:
  cmp    $0x2,%edx
  ja     L1595
  cmpl   $0x0,(%rcx)
  jne    L5977
  cmpl   $0x0,(%r11,%rax,4)
  je     L5977
L7136:
  cmp    %r10d,-0x4(%rcx)
  jne    L5977
  cmp    -0x8(%rcx),%r10d
  jne    L5977
  cmp    0x4(%rcx),%r10d
  jne    L5977
  cmp    0x8(%rcx),%r10d
  jne    L5977
  jmp    L3165
  xchg   %ax,%ax
L434:
  cmp    $0x3,%rax
  ja     L1077
  mov    0xc(%r8),%ebx
  test   %ebx,%ebx
  jne    L1077
  cmp    %r10d,0x10(%r8)
  je     L7292
L2586:
  cmp    $0x3,%edi
  jbe    L6990
L3926:
  cmp    $0x3,%edx
  jbe    L1617
L2499:
  cmp    $0x2,%rax
  jbe    L3534
  mov    0xc(%r8),%ebx
  test   %ebx,%ebx
  jne    L1403
L4412:
  mov    %r10d,%ebx
  cmp    %r10d,0x8(%r8)
  je     L236
  nopl   0x0(%rax)
L1403:
  cmp    $0x2,%edx
  jbe    L5977
  cmp    $0x7,%esi
  jne    L5977
L133:
  sub    $0x1,%r9d
  sub    $0x1c,%rbp
  cmp    $0xffffffff,%r9d
  jne    L5237
  mov    0x8(%rsp),%r12d
  xor    %r13d,%r13d
  mov    %r12d,%edx
  neg    %edx
  nopl   0x0(%rax)
L5434:
  lea    -0x54(%r15),%rax
L1097:
  mov    (%rax),%ecx
  test   %ecx,%ecx
  jne    L4613
  cmp    %edx,0x1c(%rax)
  je     L5856
L4613:
  add    $0x1c,%rax
  cmp    %rax,%r15
  jne    L1097
  add    $0x1,%r13d
  add    $0x4,%r15
  cmp    $0x7,%r13d
  jne    L5434
  mov    %r12d,0x18(%rsp)
  mov    %r12d,%r9d
  mov    $0xfffffffe,%r15d
  xor    %ecx,%ecx
  movl   $0xffffffff,0x10(%rsp)
  neg    %r9d
  nopl   (%rax)
L5499:
  mov    %r15d,0x8(%rsp)
  lea    0x38(%r14),%r8
  lea    0x70(%r14),%r12
  mov    %r14,%rbx
  lea    0x8c(%r14),%rbp
  lea    0x54(%r14),%r11
  add    $0x1c,%r14
  cmp    $0x2,%ecx
  setle  %r10b
  xor    %r13d,%r13d
  nopl   0x0(%rax)
L4277:
  cmp    $0x2,%r13d
  setg   %dil
  jle    L1503
L5092:
  test   %r10b,%r10b
  je     L1503
  movslq %r13d,%rdx
  mov    (%r8,%rdx,4),%eax
  test   %eax,%eax
  jne    L6534
  lea    -0x3(%r13),%eax
  cltq
  cmp    %r9d,0x0(%rbp,%rax,4)
  je     L3278
L6148:
  cmp    $0x3,%r13d
  jg     L6534
  lea    0x1(%r13),%eax
  cltq
  cmp    %r9d,(%r11,%rax,4)
  je     L10
  nopl   0x0(%rax)
L6534:
  lea    -0x2(%r13),%esi
  cmp    $0x3,%esi
  jbe    L1140
  lea    -0x1(%r13),%eax
  cmp    $0x3,%eax
  jbe    L6424
L67:
  cmp    $0x2,%ecx
  jle    L5157
  test   %dil,%dil
  je     L5157
  movslq %r13d,%rdx
  mov    (%r8,%rdx,4),%r15d
  test   %r15d,%r15d
  jne    L5124
L4962:
  lea    -0x3(%r13),%eax
  cltq
  cmp    %r9d,-0x1c(%rbx,%rax,4)
  je     L6269
L2222:
  cmp    $0x3,%ecx
  jg     L531
  lea    0x1(%r13),%eax
  cmp    $0x4,%r13d
  jg     L1965
L5173:
  lea    (%r11,%rdx,4),%rdi
  cmp    %r9d,-0x4(%rdi)
  je     L3461
L7180:
  mov    (%r8,%rdx,4),%edi
  test   %edi,%edi
  jne    L4893
  movslq %eax,%rdi
  cmp    %r9d,(%r11,%rdi,4)
  je     L6548
L4893:
  mov    %eax,%r13d
  cmp    $0x2,%r13d
  setg   %dil
  jg     L5092
L1503:
  cmp    $0x3,%r13d
  jg     L6534
  test   %r10b,%r10b
  je     L6534
  movslq %r13d,%rdx
  mov    (%r8,%rdx,4),%eax
  test   %eax,%eax
  jne    L6534
  lea    0x1(%r13),%eax
  cltq
  cmp    %r9d,(%r11,%rax,4)
  jne    L6534
L10:
  lea    0x2(%r13),%eax
  cltq
  cmp    %r9d,(%r12,%rax,4)
  jne    L6534
  lea    0x3(%r13),%eax
  cltq
  cmp    %r9d,0x0(%rbp,%rax,4)
  jne    L6534
  mov    (%r11,%rdx,4),%eax
  test   %eax,%eax
  je     L6534
  jmp    L3165
  nopl   0x0(%rax)
L6402:
  cmp    $0x3,%ecx
  jg     L1882
  lea    0x1(%r13),%eax
  cmp    $0x4,%r13d
  jle    L3705
  mov    %eax,%r13d
  cmp    $0x7,%eax
  jne    L4473
  jmp    L6588
L4901:
  cmp    0x8(%r8),%r10d
  jne    L5945
  cmp    0x10(%r8),%r10d
  je     L3165
  mov    %r10d,%ebx
  cmp    $0x2,%rax
  jbe    L3534
  nopl   0x0(%rax)
L236:
  cmp    %ebx,0x4(%r8)
  je     L1301
L2010:
  cmp    $0x2,%edx
  ja     L1595
  jmp    L6872
  nopl   (%rax)
L1077:
  cmp    $0x3,%edi
  jbe    L5921
L2881:
  cmp    $0x3,%edx
  ja     L2499
  cmpl   $0x0,0xc(%r8)
  jne    L2499
L1617:
  cmp    %r10d,0x4(%r8)
  je     L4901
L5945:
  cmp    $0x2,%rax
  ja     L4412
  nopl   (%rax)
L3534:
  cmp    $0x2,%edx
  ja     L1595
  cmpl   $0x0,0xc(%r8)
  jne    L5977
  cmp    %r10d,0x8(%r8)
  jne    L5977
L6872:
  cmp    %r10d,0x4(%r8)
  jne    L5977
  cmp    %r10d,0x10(%r8)
  jne    L5977
  cmp    %r10d,0x14(%r8)
  jne    L5977
  jmp    L3165
  nopl   0x0(%rax)
L5157:
  lea    0x1(%r13),%eax
L2009:
  cmp    $0x1,%r13d
  jle    L1965
  cmp    $0x1,%ecx
  jg     L862
L1965:
  mov    %eax,%r13d
  cmp    $0x7,%eax
  jne    L4277
L960:
  mov    0x8(%rsp),%r15d
  add    $0x1,%ecx
  addl   $0x1,0x10(%rsp)
  add    $0x1,%r15d
  cmp    $0x6,%ecx
  jne    L5499
  mov    0x20(%rsp),%r11
  mov    0x18(%rsp),%r12d
  mov    $0xfffffffe,%r15d
  xor    %edx,%edx
  movl   $0xffffffff,0x20(%rsp)
  nopl   0x0(%rax,%rax,1)
L653:
  lea    -0x70(%r11),%rax
  mov    %r15d,0x8(%rsp)
  lea    -0x54(%r11),%rdi
  xor    %r13d,%r13d
  mov    %rax,0x18(%rsp)
  lea    -0x8c(%r11),%rax
  lea    -0x1c(%r11),%rbp
  mov    %rax,0x10(%rsp)
  lea    -0x38(%r11),%rbx
  nopl   0x0(%rax)
L3045:
  cmp    $0x3,%r13d
  jg     L3440
L5098:
  movslq %r13d,%rax
  lea    (%rdi,%rax,4),%rcx
  mov    (%rcx),%esi
  test   %esi,%esi
  jne    L3440
  cmp    %r12d,0x4(%rcx)
  je     L6155
L4598:
  lea    -0x1(%r13),%esi
  mov    %esi,%r10d
  cmp    $0x3,%esi
  jbe    L4671
  mov    $0xffffffff,%r10d
  mov    $0xfffffffe,%r8d
L3591:
  cmp    $0x2,%r13d
  jle    L918
  movslq %r13d,%rax
  mov    (%rdi,%rax,4),%ecx
  test   %ecx,%ecx
  jne    L6117
  lea    (%rdi,%rax,4),%rcx
  cmp    -0x4(%rcx),%r12d
  je     L5469
L1011:
  cmp    $0x2,%r13d
  setg   %r9b
  cmp    $0x2,%edx
  setle  %cl
  mov    %r9d,%r14d
  and    %cl,%r14b
  je     L491
  mov    (%rdi,%rax,4),%eax
  test   %eax,%eax
  jne    L4911
L5597:
  lea    -0x3(%r13),%eax
  cltq
  cmp    %r12d,(%r11,%rax,4)
  je     L5942
L5556:
  mov    $0x1,%r9d
  cmp    $0x3,%r13d
  jg     L7293
  lea    0x1(%r13),%ecx
  movslq %ecx,%rcx
  cmp    %r12d,(%rbx,%rcx,4)
  je     L2711
  nopl   0x0(%rax)
L7293:
  cmp    $0x3,%r8d
  jbe    L6250
  cmp    $0x3,%r10d
  jbe    L5996
L4143:
  cmp    $0x2,%edx
  jle    L3937
  test   %r9b,%r9b
  je     L3937
  movslq %r13d,%rax
  mov    (%rdi,%rax,4),%r14d
  test   %r14d,%r14d
  jne    L6210
L540:
  lea    -0x3(%r13),%ecx
  movslq %ecx,%rcx
  cmp    %r12d,-0xa8(%r11,%rcx,4)
  je     L6547
L117:
  cmp    $0x4,%r13d
  jg     L7158
  lea    0x1(%r13),%ecx
  cmp    $0x3,%edx
  jg     L2011
L5775:
  lea    (%rbx,%rax,4),%r8
  cmp    %r12d,-0x4(%r8)
  je     L5015
L3715:
  mov    (%rdi,%rax,4),%r8d
  test   %r8d,%r8d
  jne    L2640
  movslq %ecx,%r8
  cmp    %r12d,(%rbx,%r8,4)
  je     L147
L2640:
  mov    %ecx,%r13d
  cmp    $0x3,%r13d
  jle    L5098
  nopl   0x0(%rax,%rax,1)
L3440:
  lea    -0x1(%r13),%esi
  mov    %esi,%r10d
  cmp    $0x3,%esi
  jbe    L3997
L2730:
  lea    -0x2(%r13),%r8d
  cmp    $0x3,%r8d
  ja     L3591
  movslq %r13d,%rax
  cmpl   $0x0,(%rdi,%rax,4)
  jne    L5456
L3482:
  lea    (%rdi,%rax,4),%rcx
  cmp    %r12d,-0x8(%rcx)
  je     L6401
L6087:
  cmp    $0x2,%r13d
  jle    L5916
  lea    (%rdi,%rax,4),%rcx
  cmp    %r12d,-0x4(%rcx)
  je     L5469
  cmp    $0x2,%r8d
  ja     L1011
L799:
  cmp    $0x2,%r13d
  setg   %r9b
  cmp    $0x2,%edx
  setle  %cl
  test   %r9b,%r9b
  je     L1468
  test   %cl,%cl
  jne    L5597
L1468:
  cmp    $0x3,%r13d
  jg     L6250
  test   %cl,%cl
  jne    L905
L6250:
  cmpl   $0x2,0x20(%rsp)
  jbe    L948
  cmp    $0x3,%r10d
  jbe    L6959
L1618:
  cmpl   $0x2,0x8(%rsp)
  ja     L4143
  movslq %r13d,%rax
L5649:
  cmpl   $0x0,(%rdi,%rax,4)
  jne    L4143
  lea    0x1(%r13),%ecx
  movslq %ecx,%r8
  cmp    %r12d,(%rbx,%r8,4)
  je     L3940
L314:
  cmp    $0x2,%edx
  jle    L4582
  test   %r9b,%r9b
  jne    L540
L4582:
  cmp    $0x1,%r13d
  jle    L2640
  cmp    $0x1,%edx
  jle    L2640
L3869:
  cmp    $0x4,%r13d
  jg     L2011
  cmp    $0x3,%edx
  jg     L2011
  movslq %r13d,%rax
  mov    (%rdi,%rax,4),%r10d
  test   %r10d,%r10d
  je     L5775
  jmp    L2640
  nopl   0x0(%rax,%rax,1)
L3937:
  lea    0x1(%r13),%ecx
L6722:
  cmp    $0x1,%r13d
  jle    L2011
  cmp    $0x1,%edx
  jg     L3869
L2011:
  mov    %ecx,%r13d
  cmp    $0x7,%ecx
  jne    L3045
L271:
  mov    0x8(%rsp),%r15d
  add    $0x1,%edx
  addl   $0x1,0x20(%rsp)
  add    $0x1c,%r11
  add    $0x1,%r15d
  cmp    $0x6,%edx
  jne    L653
  mov    0x50(%rsp),%rax
  mov    %r12d,%r15d
  neg    %r15d
  lea    0x1c(%rax),%r14
  add    $0xc4,%rax
  mov    %rax,0x28(%rsp)
  mov    %r15d,%eax
  mov    %r14,%r15
  mov    %r14,0x68(%rsp)
  mov    %eax,%r14d
L973:
  lea    -0x70(%r15),%rax
  mov    %r15,%rbp
  lea    -0x54(%r15),%r10
  mov    %rax,0x38(%rsp)
  lea    -0x1c(%r15),%r11
  lea    -0x38(%rbp),%rdx
  mov    %r10,%rbx
  lea    -0x8c(%r15),%rax
  add    $0x1c,%r15
  mov    %rax,0x58(%rsp)
  lea    0x38(%rbp),%rax
  mov    %rax,0x40(%rsp)
  lea    0x54(%rbp),%rax
  mov    %rax,0x60(%rsp)
  xor    %eax,%eax
  nopl   0x0(%rax,%rax,1)
L4853:
  mov    (%r11,%rax,4),%esi
  mov    %eax,%edi
  mov    %eax,%r13d
  test   %esi,%esi
  jne    L5793
  mov    0x0(%rbp,%rax,4),%ecx
  test   %ecx,%ecx
  je     L5793
  mov    0x4(%rdx),%esi
  cmp    %r14d,%esi
  je     L2933
  mov    -0x4(%rdx),%r9d
  lea    -0x1(%rax),%ecx
  cmp    %r9d,%r14d
  je     L7254
L6878:
  lea    -0x2(%rdi),%r10d
  mov    %r10d,0x8(%rsp)
  mov    -0x8(%rdx),%r10d
  mov    %r10d,0x10(%rsp)
  cmp    %r10d,%r14d
  je     L924
L7066:
  sub    $0x3,%edi
  mov    %edi,0x30(%rsp)
  mov    -0xc(%rdx),%edi
  mov    %edi,0x4c(%rsp)
L2489:
  movslq %ecx,%rcx
  mov    (%rbx,%rcx,4),%r8d
  cmp    %r8d,%r14d
  je     L6873
  mov    0x4(%r11,%rax,4),%edi
  cmp    %edi,%r14d
  je     L6551
L3341:
  mov    0x4(%r15,%rax,4),%r10d
  mov    %r10d,0x18(%rsp)
  cmp    %r10d,%r14d
  je     L6539
L4285:
  mov    (%r11,%rcx,4),%r10d
  mov    %r10d,0x20(%rsp)
  cmp    %r10d,%r14d
  je     L2691
L6237:
  cmp    %r12d,%esi
  je     L7308
L2332:
  cmp    %r9d,%r12d
  je     L6652
L1685:
  cmp    %r12d,%r8d
  je     L2268
L563:
  cmp    %edi,%r12d
  je     L6825
L5400:
  cmp    %r12d,0x18(%rsp)
  je     L89
L922:
  cmp    0x20(%rsp),%r12d
  je     L31
L1955:
  cmp    %edi,%r12d
  jne    L3179
  cmp    %r12d,0x8(%r11,%rax,4)
  je     L3165
L3179:
  cmp    %r12d,(%rbx,%rax,4)
  je     L3961
L2170:
  cmp    %r12d,%esi
  je     L3735
L2124:
  cmp    0x0(%rbp,%rcx,4),%r12d
  jne    L3020
  movslq 0x8(%rsp),%rcx
  cmp    %r12d,(%r15,%rcx,4)
  je     L3165
L3020:
  cmp    %r9d,%r12d
  jne    L2898
  movslq 0x8(%rsp),%rcx
  cmp    %r12d,(%rbx,%rcx,4)
  je     L3165
L2898:
  cmp    %r12d,0x4(%rbp,%rax,4)
  je     L2328
  nopw   0x0(%rax,%rax,1)
L5793:
  add    $0x1,%rax
  add    $0x4,%rdx
  cmp    $0x7,%rax
  jne    L4853
  cmp    %r15,0x28(%rsp)
  jne    L973
  mov    %r12d,%r15d
  mov    0x68(%rsp),%r14
  neg    %r15d
L4168:
  lea    -0x54(%r14),%rax
  mov    %r14,%rdi
  lea    -0x1c(%r14),%rsi
  mov    %rax,0x8(%rsp)
  lea    -0x70(%r14),%rax
  lea    -0x38(%rdi),%rdx
  mov    %rax,0x10(%rsp)
  lea    -0x8c(%r14),%rax
  add    $0x1c,%r14
  mov    %rax,0x20(%rsp)
  lea    0x38(%rdi),%rax
  mov    %rax,0x18(%rsp)
  lea    0x54(%rdi),%rax
  mov    %rax,0x30(%rsp)
  xor    %eax,%eax
  nopl   0x0(%rax)
L3092:
  mov    (%rsi,%rax,4),%ebx
  mov    %eax,%ecx
  mov    %eax,%r13d
  test   %ebx,%ebx
  jne    L259
  mov    (%rdi,%rax,4),%r11d
  test   %r11d,%r11d
  je     L259
  mov    0x4(%rdx),%r9d
  cmp    %r15d,%r9d
  je     L2902
  mov    -0x4(%rdx),%r10d
  lea    -0x1(%rax),%r8d
  cmp    %r10d,%r15d
  je     L4709
L4189:
  mov    -0x8(%rdx),%ebx
  lea    -0x2(%rcx),%r11d
  cmp    %ebx,%r15d
  je     L1353
L1529:
  sub    $0x3,%ecx
L4421:
  mov    0x8(%rsp),%rbp
  movslq %r8d,%r8
  cmp    0x0(%rbp,%r8,4),%r15d
  je     L3629
  mov    0x4(%rsi,%rax,4),%r11d
  cmp    %r11d,%r15d
  je     L4628
L2687:
  cmp    0x4(%r14,%rax,4),%r15d
  je     L776
L4787:
  mov    (%rsi,%r8,4),%ebp
  cmp    %ebp,%r15d
  je     L5240
L7016:
  cmp    %ebp,%r12d
  je     L3165
  cmp    %r11d,%r12d
  je     L3165
  cmp    %r12d,0x4(%rdi,%rax,4)
  je     L3165
  cmp    %r12d,%r9d
  sete   %cl
  cmp    %r10d,%r12d
  sete   %r9b
  or     %r9b,%cl
  jne    L3165
  cmp    %r12d,(%rdi,%r8,4)
  je     L3165
  cmp    %r12d,(%rdx)
  je     L3165
  nopl   (%rax)
L259:
  add    $0x1,%rax
  add    $0x4,%rdx
  cmp    $0x7,%rax
  jne    L3092
  cmp    %r14,0x28(%rsp)
  jne    L4168
  mov    %r12d,%r15d
  mov    0x68(%rsp),%rdi
  neg    %r15d
L6442:
  lea    -0x70(%rdi),%rax
  mov    %rdi,%r8
  lea    -0x1c(%rdi),%rsi
  mov    %rax,0x10(%rsp)
  lea    -0x8c(%rdi),%rax
  lea    -0x54(%rdi),%r14
  add    $0x1c,%rdi
  mov    %rax,0x20(%rsp)
  lea    0x38(%r8),%rax
  lea    -0x38(%r8),%rdx
  mov    %rax,0x18(%rsp)
  lea    0x54(%r8),%rax
  mov    %rax,0x30(%rsp)
  xor    %eax,%eax
  nopl   0x0(%rax)
L7266:
  mov    (%rsi,%rax,4),%r10d
  mov    %eax,%ecx
  mov    %eax,%r13d
  test   %r10d,%r10d
  jne    L6598
  mov    (%r8,%rax,4),%r9d
  test   %r9d,%r9d
  je     L6598
  mov    0x4(%rdx),%r10d
  cmp    %r15d,%r10d
  je     L3263
  mov    -0x4(%rdx),%ebx
  lea    -0x1(%rax),%r9d
  cmp    %ebx,%r15d
  je     L622
L1562:
  mov    -0x8(%rdx),%ebp
  lea    -0x2(%rcx),%r11d
  mov    %r11d,0x8(%rsp)
  cmp    %ebp,%r15d
  je     L3160
L1971:
  sub    $0x3,%ecx
L3890:
  movslq %r9d,%r9
  cmp    (%r14,%r9,4),%r15d
  je     L6265
  mov    0x4(%rsi,%rax,4),%r11d
  cmp    %r11d,%r15d
  je     L2003
L4584:
  cmp    0x4(%rdi,%rax,4),%r15d
  je     L1370
  mov    (%rsi,%r9,4),%r12d
  cmp    %r12d,%r15d
  je     L438
L5632:
  cmp    %r11d,%r15d
  jne    L5010
  cmp    %r15d,0x8(%rsi,%rax,4)
  je     L3165
L5010:
  cmp    (%r14,%rax,4),%r15d
  je     L3949
L477:
  cmp    %r15d,%r10d
  je     L3165
  mov    (%r8,%r9,4),%r9d
  cmp    %r9d,%r15d
  jne    L3333
  movslq 0x8(%rsp),%rcx
  cmp    (%rdi,%rcx,4),%r15d
  je     L3165
L3333:
  cmp    %ebx,%r15d
  je     L3165
  cmp    0x4(%r8,%rax,4),%r15d
  je     L3165
  cmp    %r15d,%r10d
  sete   %cl
  cmp    %r11d,%r15d
  sete   %r10b
  or     %r10d,%ecx
  cmp    %r12d,%r15d
  sete   %r10b
  or     %r10b,%cl
  jne    L3165
  cmp    %r9d,%r15d
  je     L3165
  cmp    (%rdx),%r15d
  je     L3165
L6598:
  add    $0x1,%rax
  add    $0x4,%rdx
  cmp    $0x7,%rax
  jne    L7266
  cmp    %rdi,0x28(%rsp)
  jne    L6442
  mov    0x50(%rsp),%rbx
  nopw   0x0(%rax,%rax,1)
L3824:
  xor    %eax,%eax
  call   <rand@plt>
  movslq %eax,%r13
  cltd
  imul   $0xffffffff92492493,%r13,%r13
  shr    $0x20,%r13
  add    %eax,%r13d
  sar    $0x2,%r13d
  sub    %edx,%r13d
  lea    0x0(,%r13,8),%edx
  sub    %r13d,%edx
  sub    %edx,%eax
  mov    %eax,%r13d
  cltq
  mov    (%rbx,%rax,4),%eax
  test   %eax,%eax
  jne    L3824
  mov    %r13d,%esi
  lea    D6(%rip),%rdi
  xor    %eax,%eax
  call   <printf@plt>
  jmp    L3165
L6401:
  cmp    %r12d,-0x4(%rcx)
  jne    L6087
  cmp    %r12d,0x4(%rcx)
  je     L3165
  cmp    $0x2,%r13d
  jg     L5469
L5916:
  cmp    $0x2,%r8d
  jbe    L3480
  nop
L918:
  cmp    $0x2,%edx
  setle  %cl
  xor    %r9d,%r9d
L491:
  cmp    $0x3,%r13d
  jg     L7293
  test   %cl,%cl
  je     L7293
  movslq %r13d,%rax
L905:
  mov    (%rdi,%rax,4),%r15d
  test   %r15d,%r15d
  jne    L7293
  lea    0x1(%r13),%ecx
  movslq %ecx,%rcx
  cmp    %r12d,(%rbx,%rcx,4)
  jne    L7293
L2711:
  lea    0x2(%r13),%eax
  cltq
  cmp    %r12d,0x0(%rbp,%rax,4)
  jne    L7293
  lea    0x3(%r13),%eax
  cltq
  cmp    %r12d,(%r11,%rax,4)
  jne    L7293
  jmp    L3165
L5456:
  cmp    $0x2,%r13d
  jle    L5916
  nopl   0x0(%rax,%rax,1)
L6117:
  cmp    $0x2,%r13d
  setg   %al
  cmp    $0x2,%edx
  setle  %cl
  mov    %ecx,%r9d
  and    %al,%r9b
  jne    L7293
  mov    %eax,%r9d
  jmp    L491
  nopl   0x0(%rax)
L5124:
  cmp    $0x4,%r13d
  jg     L531
  lea    0x1(%r13),%eax
  cmp    $0x3,%ecx
  jle    L4893
  mov    %eax,%r13d
  cmp    $0x7,%eax
  jne    L4277
  jmp    L960
  nopl   0x0(%rax)
L6210:
  cmp    $0x3,%edx
  jg     L7158
  lea    0x1(%r13),%ecx
  cmp    $0x4,%r13d
  jle    L2640
  mov    %ecx,%r13d
  cmp    $0x7,%ecx
  jne    L3045
  jmp    L271
  nopl   0x0(%rax,%rax,1)
L1882:
  lea    0x1(%r13),%eax
  mov    %eax,%r13d
  cmp    $0x7,%eax
  jne    L4473
  jmp    L6588
  nopl   (%rax)
L531:
  lea    0x1(%r13),%eax
  mov    %eax,%r13d
  cmp    $0x7,%eax
  jne    L4277
  jmp    L960
  nopl   (%rax)
L6693:
  cmp    $0x3,%edi
  ja     L4541
  jmp    L1003
L7271:
  cmp    %r12d,-0x4(%rcx)
  jne    L3671
  cmp    %r12d,0x4(%rcx)
  je     L3845
L426:
  cmp    $0x2,%rax
  jbe    L4997
  nopl   0x0(%rax)
L3951:
  cmp    %r12d,-0x8(%rcx)
  je     L4154
L538:
  cmp    $0x2,%edx
  ja     L2863
  jmp    L4705
  nopl   0x0(%rax,%rax,1)
L7158:
  lea    0x1(%r13),%ecx
  mov    %ecx,%r13d
  cmp    $0x7,%ecx
  jne    L3045
  jmp    L271
  nopl   (%rax)
L5469:
  cmp    %r12d,-0x8(%rcx)
  je     L5580
L22:
  cmp    $0x2,%r8d
  ja     L1011
  lea    (%rdi,%rax,4),%rcx
L3115:
  cmp    %r12d,-0x8(%rcx)
  jne    L799
  cmp    %r12d,0x4(%rcx)
  jne    L799
  cmp    %r12d,0x8(%rcx)
  jne    L799
  jmp    L3165
  nopl   0x0(%rax,%rax,1)
L2462:
  cmp    %r12d,0x38(%rax)
  jne    L2792
  cmp    %r12d,0x54(%rax)
  jne    L2792
  jmp    L3165
  nopl   0x0(%rax)
L5147:
  lea    -0x2(%r13),%eax
  cltq
  cmp    %r12d,(%r14,%rax,4)
  jne    L5352
  lea    -0x1(%r13),%eax
  cltq
  cmp    %r12d,(%r11,%rax,4)
  jne    L5352
  mov    (%r11,%rdx,4),%eax
  test   %eax,%eax
  je     L5352
  jmp    L3165
  nopl   0x0(%rax)
L262:
  movslq %esi,%rax
  cmp    %r12d,(%rbx,%rax,4)
  jne    L769
  lea    -0x1(%r13),%eax
  cltq
  cmp    %r12d,(%r10,%rax,4)
  jne    L769
  mov    (%r11,%rdx,4),%eax
  test   %eax,%eax
  je     L769
  jmp    L3165
  xchg   %ax,%ax
L1441:
  cmp    %r12d,0x8(%rcx)
  jne    L4188
  cmp    %r12d,0xc(%rcx)
  jne    L4188
  mov    (%r11,%rax,4),%r14d
  test   %r14d,%r14d
  je     L4188
  jmp    L3165
  cs nopw 0x0(%rax,%rax,1)
L5856:
  cmp    0x38(%rax),%edx
  jne    L4613
  cmp    0x54(%rax),%edx
  jne    L4613
  jmp    L3165
  nopw   0x0(%rax,%rax,1)
L3278:
  lea    -0x2(%r13),%eax
  cltq
  cmp    (%r12,%rax,4),%r9d
  jne    L6148
  lea    -0x1(%r13),%eax
  cltq
  cmp    (%r11,%rax,4),%r9d
  jne    L6148
  mov    (%r11,%rdx,4),%eax
  test   %eax,%eax
  je     L6148
  jmp    L3165
  nopl   0x0(%rax)
L6269:
  movslq %esi,%rax
  cmp    (%rbx,%rax,4),%r9d
  jne    L2222
  lea    -0x1(%r13),%eax
  cltq
  cmp    (%r14,%rax,4),%r9d
  jne    L2222
  jmp    L3165
  nopw   0x0(%rax,%rax,1)
L6155:
  cmp    %r12d,0x8(%rcx)
  jne    L4598
  cmp    %r12d,0xc(%rcx)
  jne    L4598
  jmp    L3165
  nopl   0x0(%rax)
L5942:
  lea    -0x2(%r13),%eax
  cltq
  cmp    %r12d,0x0(%rbp,%rax,4)
  jne    L5556
  movslq %esi,%rax
  cmp    %r12d,(%rbx,%rax,4)
  jne    L5556
  jmp    L3165
  nopl   0x0(%rax,%rax,1)
L6547:
  lea    -0x2(%r13),%ecx
  mov    0x10(%rsp),%r14
  movslq %ecx,%rcx
  cmp    %r12d,(%r14,%rcx,4)
  jne    L117
  mov    0x18(%rsp),%r14
  movslq %esi,%rcx
  cmp    %r12d,(%r14,%rcx,4)
  jne    L117
  jmp    L3165
  nopl   (%rax)
L6158:
  cmp    -0x8(%rcx),%r10d
  jne    L3155
  cmp    -0xc(%rcx),%r10d
  jne    L3155
  jmp    L3165
  nopl   0x0(%rax)
L2136:
  lea    0x2(%r13),%edi
  movslq %edi,%rdi
  cmp    %r12d,(%r11,%rdi,4)
  jne    L3705
  lea    -0x1(%r13),%edi
  movslq %edi,%rdi
  cmp    %r12d,(%r10,%rdi,4)
  jne    L3705
  movslq %esi,%rsi
  cmp    %r12d,(%rbx,%rsi,4)
  jne    L3705
  mov    (%r11,%rdx,4),%r15d
  test   %r15d,%r15d
  je     L3705
  jmp    L3165
  nopl   0x0(%rax)
L4144:
  cmp    %r12d,-0x8(%rdi)
  jne    L6989
  movslq %eax,%r15
  cmp    %r12d,(%r10,%r15,4)
  jne    L6989
  lea    0x2(%r13),%r15d
  movslq %r15d,%r15
  cmp    %r12d,(%rbx,%r15,4)
  jne    L6989
  mov    (%rdi),%edi
  test   %edi,%edi
  je     L6989
  jmp    L3165
  nopw   0x0(%rax,%rax,1)
L2933:
  cmp    0x8(%rdx),%r14d
  je     L4638
  mov    -0x4(%rdx),%r9d
  lea    -0x1(%rax),%ecx
  cmp    %r9d,%r14d
  jne    L6878
  lea    -0x2(%rax),%r10d
  mov    %r10d,0x8(%rsp)
  mov    -0x8(%rdx),%r10d
  mov    %r10d,0x10(%rsp)
  cmp    %r10d,%r14d
  jne    L7066
  jmp    L5793
  nopw   0x0(%rax,%rax,1)
L3461:
  cmp    %r9d,-0x8(%rdi)
  jne    L7180
  movslq %eax,%r15
  cmp    %r9d,(%r14,%r15,4)
  jne    L7180
  lea    0x2(%r13),%r15d
  movslq %r15d,%r15
  cmp    %r9d,(%rbx,%r15,4)
  jne    L7180
  mov    (%rdi),%r15d
  test   %r15d,%r15d
  je     L7180
  jmp    L3165
  nopl   0x0(%rax)
L6548:
  lea    0x2(%r13),%edi
  movslq %edi,%rdi
  cmp    (%r11,%rdi,4),%r9d
  jne    L4893
  lea    -0x1(%r13),%edi
  movslq %edi,%rdi
  cmp    (%r14,%rdi,4),%r9d
  jne    L4893
  movslq %esi,%rsi
  cmp    (%rbx,%rsi,4),%r9d
  jne    L4893
  mov    (%r11,%rdx,4),%edi
  test   %edi,%edi
  je     L4893
  jmp    L3165
L5037:
  cmp    0x8(%rcx),%r10d
  jne    L2976
  cmp    0xc(%rcx),%r10d
  jne    L2976
  jmp    L3165
  nopl   0x0(%rax)
L6873:
  movslq 0x8(%rsp),%rdi
  mov    0x38(%rsp),%r10
  cmp    (%r10,%rdi,4),%r14d
  je     L6196
  mov    0x4(%r11,%rax,4),%edi
  cmp    %edi,%r14d
  jne    L3341
  cmp    0x8(%rbp,%rax,4),%r14d
  je     L5793
  mov    0x4(%r15,%rax,4),%r10d
  mov    %r10d,0x18(%rsp)
  cmp    %r10d,%r14d
  jne    L4285
L6539:
  mov    0x40(%rsp),%r10
  cmp    0x8(%r10,%rax,4),%r14d
  je     L3088
  mov    (%r11,%rcx,4),%r10d
  mov    %r10d,0x20(%rsp)
  cmp    %r10d,%r14d
  jne    L6237
  cmp    0x10(%rsp),%r14d
  je     L5793
  cmp    %r12d,%esi
  jne    L2332
  cs nopw 0x0(%rax,%rax,1)
L7308:
  cmp    %esi,0x8(%rdx)
  je     L1479
  cmp    %r9d,%esi
  jne    L1685
  cmp    0x10(%rsp),%esi
  je     L3165
  cmp    %r12d,%r8d
  jne    L563
  nopl   (%rax)
L2268:
  movslq 0x8(%rsp),%r8
  mov    0x38(%rsp),%r10
  cmp    %r12d,(%r10,%r8,4)
  jne    L563
  movslq 0x30(%rsp),%r8
  mov    0x58(%rsp),%r10
  cmp    %r12d,(%r10,%r8,4)
  je     L3165
  cmp    %edi,%r12d
  je     L3165
  cmp    %r12d,0x18(%rsp)
  jne    L922
  nopl   0x0(%rax)
L89:
  mov    0x40(%rsp),%r10
  cmp    %r12d,0x8(%r10,%rax,4)
  je     L766
  cmp    0x20(%rsp),%r12d
  jne    L1955
  cmp    0x10(%rsp),%r12d
  je     L3165
L5587:
  movslq 0x8(%rsp),%r8
  cmp    %r12d,(%r11,%r8,4)
  je     L3165
  cmp    %edi,%r12d
  je     L3165
  cmp    %r12d,(%rbx,%rax,4)
  jne    L2170
L3961:
  cmp    %r12d,(%rdx)
  je     L3165
  cmp    %r12d,%esi
  jne    L2124
L3735:
  cmp    %r12d,0x8(%rbx,%rax,4)
  je     L3165
  cmp    0x0(%rbp,%rcx,4),%r12d
  je     L3165
  cmp    %r9d,%r12d
  je     L3165
  cmp    %r12d,0x4(%rbp,%rax,4)
  jne    L5793
L2328:
  cmp    %r12d,0x8(%r15,%rax,4)
  jne    L5793
  jmp    L3165
  nopl   0x0(%rax)
L4154:
  cmp    %r12d,-0xc(%rcx)
  jne    L538
  mov    (%r11,%rax,4),%r14d
  test   %r14d,%r14d
  je     L538
  jmp    L3165
  nopl   0x0(%rax)
L5015:
  cmp    %r12d,-0x8(%r8)
  jne    L3715
  mov    0x18(%rsp),%r14
  movslq %ecx,%r9
  cmp    %r12d,(%r14,%r9,4)
  jne    L3715
  lea    0x2(%r13),%r9d
  mov    0x10(%rsp),%r14
  movslq %r9d,%r9
  cmp    %r12d,(%r14,%r9,4)
  jne    L3715
  mov    (%r8),%r9d
  test   %r9d,%r9d
  je     L3715
  jmp    L3165
  nopl   0x0(%rax,%rax,1)
L147:
  lea    0x2(%r13),%r8d
  movslq %r8d,%r8
  cmp    %r12d,(%rbx,%r8,4)
  jne    L2640
  mov    0x18(%rsp),%r14
  movslq %esi,%rsi
  cmp    %r12d,(%r14,%rsi,4)
  jne    L2640
  lea    -0x2(%r13),%esi
  mov    0x10(%rsp),%r14
  movslq %esi,%rsi
  cmp    %r12d,(%r14,%rsi,4)
  jne    L2640
  mov    (%rbx,%rax,4),%r8d
  test   %r8d,%r8d
  je     L2640
  jmp    L3165
  nopl   0x0(%rax,%rax,1)
L5580:
  cmp    %r12d,-0xc(%rcx)
  jne    L22
  jmp    L3165
  nopw   0x0(%rax,%rax,1)
L7254:
  lea    -0x2(%rax),%r10d
  mov    %r10d,0x8(%rsp)
  mov    -0x8(%rdx),%r10d
  mov    %r10d,0x10(%rsp)
  cmp    %r10d,%r14d
  jne    L7066
  lea    -0x3(%rax),%edi
  mov    %edi,0x30(%rsp)
  mov    -0xc(%rdx),%edi
  mov    %edi,0x4c(%rsp)
  cmp    %r14d,%edi
  jne    L2489
  jmp    L5793
  nopw   0x0(%rax,%rax,1)
L924:
  sub    $0x3,%edi
  mov    %edi,0x30(%rsp)
  mov    -0xc(%rdx),%edi
  mov    %edi,0x4c(%rsp)
  cmp    %edi,%r14d
  jne    L2489
  cmp    %r9d,%r14d
  jne    L2489
  jmp    L5793
  nopl   (%rax)
L6825:
  cmp    %r12d,0x8(%rbp,%rax,4)
  jne    L5400
  cmp    %r12d,0xc(%r15,%rax,4)
  jne    L5400
  jmp    L3165
  nopl   0x0(%rax,%rax,1)
L1227:
  cmp    %r12d,0x14(%r8)
  jne    L1153
  cmp    %r12d,0x18(%r8)
  jne    L1153
  jmp    L3165
  nopl   0x0(%rax)
L7292:
  cmp    0x14(%r8),%r10d
  jne    L2586
  cmp    0x18(%r8),%r10d
  jne    L2586
  jmp    L3165
  nopl   0x0(%rax)
L6551:
  cmp    0x8(%rbp,%rax,4),%r14d
  jne    L3341
  cmp    0xc(%r15,%rax,4),%r14d
  jne    L3341
  jmp    L5793
  nopl   0x0(%rax,%rax,1)
L2691:
  cmp    0x10(%rsp),%r14d
  jne    L6237
  movslq 0x30(%rsp),%r10
  cmp    (%rbx,%r10,4),%r14d
  jne    L6237
  jmp    L5793
  nopw   0x0(%rax,%rax,1)
L6652:
  cmp    0x10(%rsp),%r12d
  jne    L1685
  cmp    0x4c(%rsp),%r12d
  jne    L1685
  jmp    L3165
  nopl   0x0(%rax,%rax,1)
L31:
  cmp    0x10(%rsp),%r12d
  jne    L5587
  movslq 0x30(%rsp),%r8
  cmp    %r12d,(%rbx,%r8,4)
  jne    L5587
  jmp    L3165
  nop
L2902:
  cmp    0x8(%rdx),%r15d
  je     L2376
  mov    -0x4(%rdx),%r10d
  lea    -0x1(%rax),%r8d
  cmp    %r10d,%r15d
  jne    L4189
  mov    -0x8(%rdx),%ebx
  lea    -0x2(%rax),%r11d
  cmp    %ebx,%r15d
  jne    L1529
  jmp    L259
L3629:
  mov    0x10(%rsp),%rbp
  movslq %r11d,%r11
  cmp    0x0(%rbp,%r11,4),%r15d
  je     L5674
  mov    0x4(%rsi,%rax,4),%r11d
  cmp    %r11d,%r15d
  jne    L2687
  cmp    0x8(%rdi,%rax,4),%r15d
  je     L259
  cmp    0x4(%r14,%rax,4),%r15d
  jne    L4787
  nopw   0x0(%rax,%rax,1)
L776:
  mov    0x18(%rsp),%rcx
  cmp    0x8(%rcx,%rax,4),%r15d
  je     L7157
  mov    (%rsi,%r8,4),%ebp
  cmp    %ebp,%r15d
  jne    L7016
  cmp    %ebx,%r15d
  jne    L7016
  jmp    L259
  nopl   0x0(%rax,%rax,1)
L4709:
  mov    -0x8(%rdx),%ebx
  lea    -0x2(%rax),%r11d
  cmp    %ebx,%r15d
  jne    L1529
  lea    -0x3(%rax),%ecx
  cmp    -0xc(%rdx),%r15d
  jne    L4421
  jmp    L259
  nopw   0x0(%rax,%rax,1)
L4638:
  cmp    0xc(%rdx),%r14d
  je     L5793
  mov    -0x4(%rdx),%r9d
  lea    -0x1(%rax),%ecx
  cmp    %r9d,%r14d
  jne    L6878
  jmp    L5793
  nopw   0x0(%rax,%rax,1)
L1353:
  sub    $0x3,%ecx
  cmp    -0xc(%rdx),%r15d
  jne    L4421
  cmp    %r10d,%r15d
  jne    L4421
  jmp    L259
  nopl   0x0(%rax,%rax,1)
L4628:
  cmp    0x8(%rdi,%rax,4),%r15d
  jne    L2687
  cmp    0xc(%r14,%rax,4),%r15d
  jne    L2687
  jmp    L259
L6196:
  movslq 0x30(%rsp),%rdi
  mov    0x58(%rsp),%r10
  cmp    (%r10,%rdi,4),%r14d
  je     L5793
  mov    0x4(%r11,%rax,4),%edi
  cmp    %edi,%r14d
  jne    L3341
  jmp    L5793
L3263:
  cmp    0x8(%rdx),%r15d
  je     L2014
  mov    -0x4(%rdx),%ebx
  lea    -0x1(%rax),%r9d
  cmp    %ebx,%r15d
  jne    L1562
  mov    -0x8(%rdx),%ebp
  lea    -0x2(%rax),%r11d
  mov    %r11d,0x8(%rsp)
  cmp    %ebp,%r15d
  jne    L1971
  jmp    L6598
L5240:
  cmp    %ebx,%r15d
  jne    L7016
  mov    0x8(%rsp),%rbx
  movslq %ecx,%rcx
  cmp    (%rbx,%rcx,4),%r15d
  jne    L7016
  jmp    L259
L3088:
  mov    0x60(%rsp),%r10
  cmp    0xc(%r10,%rax,4),%r14d
  je     L5793
  mov    (%r11,%rcx,4),%r10d
  mov    %r10d,0x20(%rsp)
  cmp    %r10d,%r14d
  jne    L6237
  jmp    L5793
L4176:
  cmp    %r12d,(%r8)
  jne    L2865
  jmp    L3165
  nopl   0x0(%rax,%rax,1)
L1301:
  cmp    %ebx,(%r8)
  jne    L2010
  jmp    L3165
  xchg   %ax,%ax
L6265:
  movslq 0x8(%rsp),%r11
  mov    0x10(%rsp),%r12
  cmp    (%r12,%r11,4),%r15d
  je     L4809
  mov    0x4(%rsi,%rax,4),%r11d
  cmp    %r11d,%r15d
  jne    L4584
  cmp    0x8(%r8,%rax,4),%r15d
  jne    L4584
  jmp    L6598
L1479:
  cmp    %esi,0xc(%rdx)
  je     L3165
  cmp    %r9d,%esi
  jne    L1685
  jmp    L3165
  nopl   0x0(%rax)
L766:
  mov    0x60(%rsp),%r10
  cmp    %r12d,0xc(%r10,%rax,4)
  je     L3165
  cmp    0x20(%rsp),%r12d
  jne    L1955
  jmp    L3165
L2376:
  cmp    0xc(%rdx),%r15d
  je     L259
  mov    -0x4(%rdx),%r10d
  lea    -0x1(%rax),%r8d
  cmp    %r10d,%r15d
  jne    L4189
  jmp    L259
L1370:
  mov    0x18(%rsp),%rcx
  cmp    0x8(%rcx,%rax,4),%r15d
  je     L4405
  mov    (%rsi,%r9,4),%r12d
  cmp    %r15d,%r12d
  jne    L5632
  cmp    %ebp,%r15d
  je     L6598
L6815:
  movslq 0x8(%rsp),%rcx
  cmp    %r15d,(%rsi,%rcx,4)
  je     L3165
  cmp    %r11d,%r15d
  je     L3165
  cmp    (%r14,%rax,4),%r15d
  jne    L477
L3949:
  cmp    (%rdx),%r15d
  jne    L477
  jmp    L3165
  cs nopw 0x0(%rax,%rax,1)
L622:
  mov    -0x8(%rdx),%ebp
  lea    -0x2(%rax),%r11d
  mov    %r11d,0x8(%rsp)
  cmp    %ebp,%r15d
  jne    L1971
  lea    -0x3(%rax),%ecx
  cmp    %r15d,-0xc(%rdx)
  jne    L3890
  jmp    L6598
L5674:
  mov    0x20(%rsp),%rbp
  movslq %ecx,%r11
  cmp    0x0(%rbp,%r11,4),%r15d
  je     L259
  mov    0x4(%rsi,%rax,4),%r11d
  cmp    %r11d,%r15d
  jne    L2687
  jmp    L259
L3160:
  sub    $0x3,%ecx
  cmp    -0xc(%rdx),%r15d
  jne    L3890
  cmp    %ebx,%r15d
  jne    L3890
  jmp    L6598
  nopl   0x0(%rax,%rax,1)
L2003:
  cmp    0x8(%r8,%rax,4),%r15d
  jne    L4584
  cmp    0xc(%rdi,%rax,4),%r15d
  jne    L4584
  jmp    L6598
L4405:
  mov    0x30(%rsp),%rcx
  cmp    0xc(%rcx,%rax,4),%r15d
  je     L6598
  mov    (%rsi,%r9,4),%r12d
  cmp    %r15d,%r12d
  jne    L5632
  jmp    L6598
L7157:
  mov    0x30(%rsp),%rbx
  cmp    0xc(%rbx,%rax,4),%r15d
  je     L259
  mov    (%rsi,%r8,4),%ebp
  cmp    %ebp,%r15d
  jne    L7016
  jmp    L259
L438:
  cmp    %ebp,%r15d
  jne    L6815
  movslq %ecx,%rcx
  cmp    (%r14,%rcx,4),%r15d
  jne    L6815
  jmp    L6598
L2014:
  cmp    0xc(%rdx),%r15d
  je     L6598
  mov    -0x4(%rdx),%ebx
  lea    -0x1(%rax),%r9d
  cmp    %ebx,%r15d
  jne    L1562
  jmp    L6598
L4809:
  mov    0x20(%rsp),%r12
  movslq %ecx,%r11
  cmp    (%r12,%r11,4),%r15d
  je     L6598
  mov    0x4(%rsi,%rax,4),%r11d
  cmp    %r11d,%r15d
  jne    L4584
  jmp    L6598
L1140:
  cmpl   $0x2,0x10(%rsp)
  jbe    L6121
  cmp    $0x5,%r13d
  jne    L3646
L5510:
  cmpl   $0x2,0x8(%rsp)
  ja     L67
  mov    $0x5,%edx
L1698:
  cmpl   $0x0,(%r8,%rdx,4)
  jne    L67
  lea    0x1(%r13),%eax
  movslq %eax,%r15
  cmp    %r9d,(%r11,%r15,4)
  je     L2155
L726:
  cmp    $0x2,%ecx
  jle    L706
  test   %dil,%dil
  jne    L4962
L706:
  cmp    $0x1,%ecx
  jle    L4893
  cmp    $0x1,%r13d
  jle    L4893
L862:
  cmp    $0x4,%r13d
  jg     L1965
  cmp    $0x3,%ecx
  jg     L1965
  movslq %r13d,%rdx
  mov    (%r8,%rdx,4),%edi
  test   %edi,%edi
  je     L5173
  jmp    L4893
L1655:
  cmpl   $0x2,0x10(%rsp)
  jbe    L6945
  cmp    $0x5,%r13d
  jne    L4791
L4484:
  cmpl   $0x2,0x8(%rsp)
  ja     L3206
  mov    $0x5,%edx
L3599:
  cmpl   $0x0,(%r8,%rdx,4)
  jne    L3206
  lea    0x1(%r13),%eax
  movslq %eax,%r15
  cmp    %r12d,(%r11,%r15,4)
  je     L4515
L1548:
  cmp    $0x2,%ecx
  jle    L7190
  test   %dil,%dil
  jne    L5390
L7190:
  cmp    $0x1,%r13d
  jle    L3705
  cmp    $0x1,%ecx
  jle    L3705
L1571:
  cmp    $0x4,%r13d
  jg     L7076
  cmp    $0x3,%ecx
  jg     L7076
  movslq %r13d,%rdx
  mov    (%r8,%rdx,4),%r15d
  test   %r15d,%r15d
  je     L609
  jmp    L3705
L4739:
  cmpl   $0x0,(%rcx)
  jne    L1166
L2716:
  cmp    %r12d,-0x4(%rcx)
  jne    L581
  cmp    %r12d,0x4(%rcx)
  jne    L581
  cmp    %r12d,0x8(%rcx)
  jne    L581
  cmpl   $0x0,(%r11,%rax,4)
  je     L581
  jmp    L3165
L3997:
  movslq %r13d,%rax
  cmpl   $0x0,(%rdi,%rax,4)
  jne    L2730
L4671:
  lea    (%rdi,%rax,4),%rcx
  cmp    %r12d,-0x4(%rcx)
  je     L1476
L3463:
  lea    -0x2(%r13),%r8d
  cmp    $0x3,%r8d
  jbe    L3482
  or     $0xffffffff,%r8d
  jmp    L3591
L3845:
  cmpl   $0x0,(%r11,%rax,4)
  je     L426
  jmp    L3165
L1476:
  cmp    %r12d,0x4(%rcx)
  jne    L3463
  cmp    %r12d,0x8(%rcx)
  jne    L3463
  jmp    L3165
L3940:
  lea    -0x2(%r13),%r8d
  mov    0x10(%rsp),%r14
  movslq %r8d,%r8
  cmp    %r12d,(%r14,%r8,4)
  jne    L314
  mov    0x18(%rsp),%r14
  movslq %esi,%r8
  cmp    %r12d,(%r14,%r8,4)
  jne    L314
  jmp    L3165
L6959:
  cmpl   $0x2,0x8(%rsp)
  ja     L4143
  movslq %r13d,%rax
  cmpl   $0x0,(%rdi,%rax,4)
  jne    L4143
  lea    0x1(%r13),%ecx
L1038:
  mov    0x18(%rsp),%r14
  movslq %ecx,%rcx
  cmp    %r12d,(%r14,%rcx,4)
  je     L1391
L6663:
  cmp    $0x3,%r8d
  ja     L4143
  jmp    L5649
L948:
  movslq %r13d,%rax
  cmpl   $0x0,(%rdi,%rax,4)
  jne    L6531
  lea    0x1(%r13),%ecx
  mov    0x18(%rsp),%r15
  movslq %ecx,%r14
  cmp    %r12d,(%r15,%r14,4)
  je     L4827
L5511:
  cmp    $0x3,%r10d
  ja     L1618
L3696:
  movslq %ecx,%r10
  cmp    %r12d,(%rbx,%r10,4)
  je     L3916
L3798:
  cmpl   $0x2,0x8(%rsp)
  jbe    L1038
  cmp    $0x2,%edx
  jle    L6722
  test   %r9b,%r9b
  jne    L540
  jmp    L6722
L1391:
  lea    0x2(%r13),%ecx
  mov    0x10(%rsp),%r14
  movslq %ecx,%rcx
  cmp    %r12d,(%r14,%rcx,4)
  jne    L6663
  movslq %esi,%rcx
  cmp    %r12d,(%rbx,%rcx,4)
  jne    L6663
  jmp    L3165
L3480:
  cmpl   $0x0,(%rdi,%rax,4)
  jne    L5931
  lea    (%rdi,%rax,4),%rcx
  cmp    %r12d,-0x4(%rcx)
  je     L3115
  cmp    $0x2,%r13d
  setg   %r9b
  cmp    $0x2,%edx
  setle  %cl
  jmp    L1468
L4827:
  lea    -0x2(%r13),%r14d
  movslq %r14d,%r14
  cmp    %r12d,0x0(%rbp,%r14,4)
  jne    L5511
  movslq %esi,%r14
  cmp    %r12d,(%rbx,%r14,4)
  jne    L5511
  jmp    L3165
L5931:
  cmp    $0x2,%r13d
  setg   %r9b
  cmp    $0x2,%edx
  setle  %cl
  jmp    L491
L6531:
  cmp    $0x3,%r10d
  ja     L1618
L7108:
  cmpl   $0x0,(%rdi,%rax,4)
  jne    L6959
  lea    0x1(%r13),%ecx
  jmp    L3696
L3916:
  lea    0x2(%r13),%r10d
  movslq %r10d,%r10
  cmp    %r12d,0x0(%rbp,%r10,4)
  jne    L3798
  mov    0x18(%rsp),%r14
  movslq %esi,%r10
  cmp    %r12d,(%r14,%r10,4)
  jne    L3798
  jmp    L3165
L4515:
  movslq %esi,%r15
  cmp    %r12d,(%rbx,%r15,4)
  jne    L1548
  lea    -0x1(%r13),%r15d
  movslq %r15d,%r15
  cmp    %r12d,(%r10,%r15,4)
  jne    L1548
  cmpl   $0x0,(%r11,%rdx,4)
  je     L1548
  jmp    L3165
L4791:
  cmpl   $0x2,0x8(%rsp)
  ja     L3206
  movslq %r13d,%rdx
  cmpl   $0x0,(%r8,%rdx,4)
  jne    L4433
  lea    0x1(%r13),%eax
L6538:
  cltq
  cmp    %r12d,(%r10,%rax,4)
  je     L2890
L4433:
  cmp    $0x3,%esi
  ja     L3206
  jmp    L3599
L2890:
  lea    0x2(%r13),%eax
  cltq
  cmp    %r12d,(%rbx,%rax,4)
  jne    L4433
  lea    -0x1(%r13),%eax
  cltq
  cmp    %r12d,(%r11,%rax,4)
  jne    L4433
  cmpl   $0x0,(%r11,%rdx,4)
  je     L4433
  jmp    L3165
L6945:
  movslq %r13d,%rdx
  cmpl   $0x0,(%r8,%rdx,4)
  jne    L3843
  lea    0x1(%r13),%eax
  movslq %eax,%r15
  cmp    %r12d,(%r10,%r15,4)
  je     L1814
L2025:
  cmp    $0x5,%r13d
  je     L4484
L4451:
  movslq %eax,%r15
  cmp    %r12d,(%r11,%r15,4)
  je     L177
L1426:
  cmpl   $0x2,0x8(%rsp)
  jbe    L6538
  cmp    $0x2,%ecx
  jle    L2817
  test   %dil,%dil
  jne    L5390
  jmp    L2817
L177:
  lea    0x2(%r13),%r15d
  movslq %r15d,%r15
  cmp    %r12d,(%r14,%r15,4)
  jne    L1426
  lea    -0x1(%r13),%r15d
  movslq %r15d,%r15
  cmp    %r12d,(%r10,%r15,4)
  jne    L1426
  cmpl   $0x0,(%r11,%rdx,4)
  je     L1426
  jmp    L3165
L1814:
  movslq %esi,%r15
  cmp    %r12d,(%r14,%r15,4)
  jne    L2025
  lea    -0x1(%r13),%r15d
  movslq %r15d,%r15
  cmp    %r12d,(%r11,%r15,4)
  jne    L2025
  cmpl   $0x0,(%r11,%rdx,4)
  je     L2025
  jmp    L3165
L3843:
  cmp    $0x5,%r13d
  je     L4484
  jmp    L3552
L6310:
  cmpl   $0x0,(%rcx)
  jne    L1390
L1003:
  cmpl   $0x0,(%r11,%rax,4)
  je     L4541
L5947:
  cmp    %r10d,-0x4(%rcx)
  je     L2133
L4098:
  cmp    $0x3,%edx
  ja     L7251
L6240:
  cmp    %r10d,-0x8(%rcx)
  je     L646
L3973:
  cmp    $0x2,%rax
  ja     L5912
  jmp    L4903
L4171:
  cmpl   $0x2,0x10(%rsp)
  ja     L4791
  movslq %r13d,%rdx
L3552:
  cmpl   $0x0,(%r8,%rdx,4)
  jne    L4791
  lea    0x1(%r13),%eax
  jmp    L4451
L2133:
  cmp    0x4(%rcx),%r10d
  jne    L4098
  cmp    0x8(%rcx),%r10d
  jne    L4098
  jmp    L3165
L646:
  cmp    -0x4(%rcx),%r10d
  jne    L3973
  cmp    0x4(%rcx),%r10d
  jne    L3973
  jmp    L3165
L5996:
  cmpl   $0x2,0x20(%rsp)
  ja     L6959
  movslq %r13d,%rax
  jmp    L7108
L4911:
  mov    %r14d,%r9d
  jmp    L7293
L6424:
  cmpl   $0x2,0x10(%rsp)
  jbe    L814
L3646:
  cmpl   $0x2,0x8(%rsp)
  ja     L67
  movslq %r13d,%rdx
  cmpl   $0x0,(%r8,%rdx,4)
  jne    L354
  lea    0x1(%r13),%eax
L611:
  cltq
  cmp    %r9d,(%r14,%rax,4)
  je     L2920
L354:
  cmp    $0x3,%esi
  ja     L67
  jmp    L1698
L814:
  movslq %r13d,%rdx
L5178:
  cmpl   $0x0,(%r8,%rdx,4)
  jne    L3646
  lea    0x1(%r13),%eax
L5363:
  movslq %eax,%r15
  cmp    %r9d,(%r11,%r15,4)
  je     L6833
L3105:
  cmpl   $0x2,0x8(%rsp)
  jbe    L611
  cmp    $0x2,%ecx
  jle    L2009
  test   %dil,%dil
  jne    L4962
  jmp    L2009
L2155:
  movslq %esi,%r15
  cmp    (%rbx,%r15,4),%r9d
  jne    L726
  lea    -0x1(%r13),%r15d
  movslq %r15d,%r15
  cmp    (%r14,%r15,4),%r9d
  jne    L726
  cmpl   $0x0,(%r11,%rdx,4)
  je     L726
  jmp    L3165
L6833:
  lea    0x2(%r13),%r15d
  movslq %r15d,%r15
  cmp    (%r12,%r15,4),%r9d
  jne    L3105
  lea    -0x1(%r13),%r15d
  movslq %r15d,%r15
  cmp    (%r14,%r15,4),%r9d
  jne    L3105
  cmpl   $0x0,(%r11,%rdx,4)
  je     L3105
  jmp    L3165
L5921:
  cmpl   $0x0,0xc(%r8)
  jne    L2881
L6990:
  cmp    %r10d,0x8(%r8)
  jne    L3926
  cmp    0x10(%r8),%r10d
  jne    L3926
  cmp    0x14(%r8),%r10d
  jne    L3926
  jmp    L3165
L2920:
  lea    0x2(%r13),%eax
  cltq
  cmp    (%rbx,%rax,4),%r9d
  jne    L354
  lea    -0x1(%r13),%eax
  cltq
  cmp    (%r11,%rax,4),%r9d
  jne    L354
  cmpl   $0x0,(%r11,%rdx,4)
  je     L354
  jmp    L3165
L6121:
  movslq %r13d,%rdx
  cmpl   $0x0,(%r8,%rdx,4)
  jne    L4725
  lea    0x1(%r13),%eax
  movslq %eax,%r15
  cmp    %r9d,(%r14,%r15,4)
  je     L6710
L2789:
  cmp    $0x5,%r13d
  je     L5510
  jmp    L5363
L6710:
  movslq %esi,%r15
  cmp    (%r12,%r15,4),%r9d
  jne    L2789
  lea    -0x1(%r13),%r15d
  movslq %r15d,%r15
  cmp    (%r11,%r15,4),%r9d
  jne    L2789
  cmpl   $0x0,(%r11,%rdx,4)
  je     L2789
  jmp    L3165
L4725:
  cmp    $0x5,%r13d
  je     L5510
  jmp    L5178
L3055:
  cmpl   $0x0,0xc(%r8)
  jne    L3453
L5702:
  cmp    %r12d,0x8(%r8)
  jne    L5009
  cmp    %r12d,0x10(%r8)
  jne    L5009
  cmp    %r12d,0x14(%r8)
  jne    L5009
  jmp    L3165
L5616:
  cmp    %r12d,0x8(%r8)
  jne    L3987
  cmp    %r12d,0x10(%r8)
  je     L3165
  cmp    $0x2,%rax
  ja     L5561
  jmp    L1258
```

tool_calls: name: extract_symbolic_data
arguments: data_tag: D6
type_infered: string

tool: D6: 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;
}
```