user: 下面的汇编指令对应的C源代码是什么：

```asm
<bot>:
  endbr64
  push   %r15
  mov    %rdi,%rax
  push   %r14
  push   %r13
  xor    %r13d,%r13d
  push   %r12
  mov    %esi,%r12d
  push   %rbp
  push   %rbx
  sub    $0x78,%rsp
  mov    %rdi,0x28(%rsp)
  jmp    L466
  nopw   0x0(%rax,%rax,1)
L6614:
  test   %ecx,%ecx
  jne    L1441
  cmp    %edx,%r12d
  je     L7517
L1441:
  test   %edx,%edx
  jne    L1124
  cmp    0x54(%rax),%r12d
  je     L5975
L1124:
  add    $0x1,%r13d
  add    $0x4,%rax
  cmp    $0x7,%r13d
  je     L6703
L466:
  mov    (%rax),%esi
  mov    0x1c(%rax),%ecx
  mov    0x38(%rax),%edx
  test   %esi,%esi
  jne    L6614
  cmp    %ecx,%r12d
  jne    L6614
  cmp    %r12d,%edx
  jne    L1441
  cmp    %r12d,0x54(%rax)
  jne    L1124
L5132:
  add    $0x78,%rsp
  mov    %r13d,%eax
  pop    %rbx
  pop    %rbp
  pop    %r12
  pop    %r13
  pop    %r14
  pop    %r15
  ret
  nop
L6703:
  mov    0x28(%rsp),%rax
  mov    $0x5,%r9d
  lea    0x80(%rax),%rbx
  lea    0x8c(%rax),%r14
  mov    %rbx,0x18(%rsp)
  mov    %r14,%r10
  nopl   0x0(%rax)
L500:
  lea    0x1c(%r10),%r11
  mov    %r10,%rcx
  mov    %rbx,%r8
  mov    $0xffffffff,%edi
  mov    $0xfffffffe,%edx
  mov    $0x1,%esi
  xor    %eax,%eax
  jmp    L6259
  nopl   (%rax)
L4955:
  mov    (%rcx),%r15d
  test   %r15d,%r15d
  jne    L4708
  cmp    %r12d,0x4(%rcx)
  je     L5727
L3631:
  cmp    $0x3,%edi
  jbe    L2922
L1098:
  cmp    $0x3,%edx
  jbe    L876
L1615:
  cmp    $0x2,%rax
  jbe    L3505
  mov    (%rcx),%r15d
  test   %r15d,%r15d
  jne    L586
L6778:
  cmp    %r12d,-0x4(%rcx)
  je     L3974
L586:
  cmp    $0x2,%edx
  jbe    L2141
L1143:
  cmp    $0x7,%esi
  je     L2887
L2141:
  add    $0x1,%rax
  add    $0x1,%esi
  add    $0x4,%r8
  add    $0x4,%rcx
  add    $0x1,%edx
  add    $0x1,%edi
L6259:
  mov    %eax,%r13d
  cmp    $0x5,%r9d
  je     L2525
  cmp    $0x3,%rax
  jbe    L4955
L4708:
  cmp    $0x3,%edi
  jbe    L274
L6200:
  cmp    $0x3,%edx
  ja     L1615
  cmpl   $0x0,(%rcx)
  jne    L1615
L876:
  cmp    %r12d,-0x8(%rcx)
  je     L2597
L7093:
  cmp    $0x2,%rax
  ja     L6778
  nopl   (%rax)
L3505:
  cmp    $0x2,%edx
  ja     L1143
  cmpl   $0x0,(%rcx)
  jne    L2141
  cmp    %r12d,-0x4(%rcx)
  jne    L2141
L7038:
  cmp    %r12d,-0x8(%rcx)
  jne    L2141
  cmp    %r12d,0x4(%rcx)
  jne    L2141
  cmp    %r12d,0x8(%rcx)
  jne    L2141
  cmpl   $0x0,(%r11,%rax,4)
  je     L2141
  jmp    L5132
  cs nopw 0x0(%rax,%rax,1)
L2525:
  cmp    $0x3,%rax
  ja     L6615
  mov    0xc(%r8),%r15d
  test   %r15d,%r15d
  jne    L6615
  cmp    %r12d,0x10(%r8)
  je     L7158
L6834:
  cmp    $0x3,%edi
  jbe    L2962
L4819:
  cmp    $0x3,%edx
  jbe    L3966
L729:
  cmp    $0x2,%rax
  jbe    L2747
  mov    0xc(%r8),%ebp
  test   %ebp,%ebp
  jne    L586
L2781:
  cmp    %r12d,0x8(%r8)
  jne    L586
L1254:
  cmp    %r12d,0x4(%r8)
  je     L6031
L648:
  cmp    $0x2,%edx
  ja     L1143
L4751:
  cmp    %r12d,0x4(%r8)
  jne    L2141
  cmp    %r12d,0x10(%r8)
  jne    L2141
  cmp    %r12d,0x14(%r8)
  jne    L2141
  jmp    L5132
  nopl   0x0(%rax)
L6615:
  cmp    $0x3,%edi
  jbe    L3744
L3500:
  cmp    $0x3,%edx
  ja     L729
  cmpl   $0x0,0xc(%r8)
  jne    L729
L3966:
  cmp    %r12d,0x4(%r8)
  je     L5943
L5106:
  cmp    $0x2,%rax
  ja     L2781
  nopl   (%rax)
L2747:
  cmp    $0x2,%edx
  ja     L1143
  cmpl   $0x0,0xc(%r8)
  jne    L2141
  cmp    %r12d,0x8(%r8)
  jne    L2141
  jmp    L4751
  nopl   0x0(%rax,%rax,1)
L2887:
  sub    $0x1,%r9d
  sub    $0x1c,%r10
  cmp    $0xffffffff,%r9d
  jne    L500
  mov    0x28(%rsp),%rax
  movl   $0xffffffff,0x10(%rsp)
  xor    %ecx,%ecx
  mov    %r14,0x20(%rsp)
  lea    -0x38(%rax),%r15
  mov    $0xfffffffe,%eax
  mov    %r15,0x30(%rsp)
  mov    %r15,%r10
  mov    %eax,%r15d
  nopw   0x0(%rax,%rax,1)
L2555:
  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)
L812:
  cmp    $0x2,%r13d
  setg   %dil
  jle    L1051
L4516:
  test   %r9b,%r9b
  je     L1051
  movslq %r13d,%rdx
  mov    (%r8,%rdx,4),%esi
  test   %esi,%esi
  jne    L6645
  lea    -0x3(%r13),%eax
  cltq
  cmp    %r12d,0x0(%rbp,%rax,4)
  je     L6282
L6359:
  cmp    $0x3,%r13d
  jg     L6645
  lea    0x1(%r13),%eax
  cltq
  cmp    %r12d,(%r11,%rax,4)
  je     L2844
  nopl   0x0(%rax)
L6645:
  lea    -0x2(%r13),%esi
  cmp    $0x3,%esi
  jbe    L1772
  lea    -0x1(%r13),%eax
  cmp    $0x3,%eax
  jbe    L6932
L6601:
  cmp    $0x2,%ecx
  jle    L616
  test   %dil,%dil
  je     L616
  movslq %r13d,%rdx
  mov    (%r8,%rdx,4),%eax
  test   %eax,%eax
  jne    L4734
L2456:
  lea    -0x3(%r13),%eax
  cltq
  cmp    %r12d,-0x1c(%rbx,%rax,4)
  je     L2348
L1424:
  cmp    $0x4,%r13d
  jg     L2187
  lea    0x1(%r13),%eax
  cmp    $0x3,%ecx
  jg     L4232
L3837:
  lea    (%r11,%rdx,4),%rdi
  cmp    %r12d,-0x4(%rdi)
  je     L5281
L724:
  mov    (%r8,%rdx,4),%edi
  test   %edi,%edi
  jne    L7503
  movslq %eax,%rdi
  cmp    %r12d,(%r11,%rdi,4)
  je     L2051
L7503:
  mov    %eax,%r13d
  cmp    $0x2,%r13d
  setg   %dil
  jg     L4516
  nopw   0x0(%rax,%rax,1)
L1051:
  cmp    $0x3,%r13d
  jg     L6645
  test   %r9b,%r9b
  je     L6645
  movslq %r13d,%rdx
  mov    (%r8,%rdx,4),%eax
  test   %eax,%eax
  jne    L6645
  lea    0x1(%r13),%eax
  cltq
  cmp    %r12d,(%r11,%rax,4)
  jne    L6645
L2844:
  lea    0x2(%r13),%eax
  cltq
  cmp    %r12d,(%r14,%rax,4)
  jne    L6645
  lea    0x3(%r13),%eax
  cltq
  cmp    %r12d,0x0(%rbp,%rax,4)
  jne    L6645
  mov    (%r11,%rdx,4),%eax
  test   %eax,%eax
  je     L6645
  jmp    L5132
  nopl   0x0(%rax)
L616:
  lea    0x1(%r13),%eax
L5672:
  cmp    $0x1,%r13d
  jle    L4232
  cmp    $0x1,%ecx
  jg     L4420
L4232:
  mov    %eax,%r13d
  cmp    $0x7,%eax
  jne    L812
L5144:
  mov    0x8(%rsp),%r15d
  add    $0x1,%ecx
  addl   $0x1,0x10(%rsp)
  add    $0x1,%r15d
  cmp    $0x6,%ecx
  jne    L2555
  mov    %r12d,%r10d
  mov    0x20(%rsp),%r14
  mov    0x30(%rsp),%r15
  mov    $0x5,%r9d
  mov    0x18(%rsp),%rbx
  neg    %r10d
  nopl   0x0(%rax)
L5892:
  lea    0x1c(%r14),%r11
  mov    %r14,%rcx
  mov    %rbx,%r8
  mov    $0xffffffff,%edi
  mov    $0xfffffffe,%edx
  mov    $0x1,%esi
  xor    %eax,%eax
  jmp    L5187
  nopl   (%rax)
L1321:
  mov    (%rcx),%ebp
  test   %ebp,%ebp
  jne    L1637
  mov    (%r11,%rax,4),%ebp
  test   %ebp,%ebp
  je     L358
  cmp    %r10d,0x4(%rcx)
  je     L1390
L870:
  cmp    $0x3,%edi
  jbe    L4968
L3322:
  cmp    $0x3,%edx
  jbe    L6534
L1212:
  cmp    $0x2,%rax
  jbe    L6298
  mov    (%rcx),%ebp
  test   %ebp,%ebp
  jne    L5801
L4921:
  mov    (%r11,%rax,4),%ebp
  test   %ebp,%ebp
  je     L5801
L3197:
  cmp    %r10d,-0x4(%rcx)
  je     L498
L7220:
  cmp    $0x2,%edx
  jbe    L7260
L2406:
  cmp    $0x7,%esi
  je     L5816
L233:
  add    $0x1,%rax
  add    $0x1,%esi
  add    $0x4,%r8
  add    $0x4,%rcx
  add    $0x1,%edx
  add    $0x1,%edi
L5187:
  mov    %eax,%r13d
  cmp    $0x5,%r9d
  je     L5488
  cmp    $0x3,%rax
  jbe    L1321
L1637:
  cmp    $0x3,%edi
  jbe    L1816
L4843:
  cmp    $0x3,%edx
  ja     L1212
  cmpl   $0x0,(%rcx)
  jne    L1212
L6534:
  cmpl   $0x0,(%r11,%rax,4)
  jne    L1079
  cmp    $0x2,%rax
  ja     L4921
  xchg   %ax,%ax
L6298:
  cmp    $0x2,%edx
  ja     L2406
  cmpl   $0x0,(%rcx)
  jne    L233
  cmpl   $0x0,(%r11,%rax,4)
  je     L233
L7260:
  cmp    %r10d,-0x4(%rcx)
  jne    L233
  cmp    -0x8(%rcx),%r10d
  jne    L233
  cmp    0x4(%rcx),%r10d
  jne    L233
  cmp    0x8(%rcx),%r10d
  jne    L233
  jmp    L5132
  xchg   %ax,%ax
L5488:
  cmp    $0x3,%rax
  ja     L1702
  mov    0xc(%r8),%ebp
  test   %ebp,%ebp
  jne    L1702
  cmp    %r10d,0x10(%r8)
  je     L1002
L5692:
  cmp    $0x3,%edi
  jbe    L506
L1981:
  cmp    $0x3,%edx
  jbe    L3144
L5251:
  cmp    $0x2,%rax
  jbe    L7095
  mov    0xc(%r8),%ebp
  test   %ebp,%ebp
  jne    L5801
L2748:
  mov    %r10d,%ebp
  cmp    %r10d,0x8(%r8)
  je     L3205
  nopl   0x0(%rax)
L5801:
  cmp    $0x2,%edx
  jbe    L233
  cmp    $0x7,%esi
  jne    L233
L5816:
  sub    $0x1,%r9d
  sub    $0x1c,%r14
  cmp    $0xffffffff,%r9d
  jne    L5892
  mov    %r12d,%esi
  mov    0x28(%rsp),%rax
  xor    %r13d,%r13d
  neg    %esi
  jmp    L6802
  nopl   0x0(%rax,%rax,1)
L1130:
  test   %ecx,%ecx
  jne    L1267
  cmp    %esi,%edx
  je     L4909
L1267:
  test   %edx,%edx
  jne    L3214
  cmp    %esi,0x54(%rax)
  je     L3118
L3214:
  add    $0x1,%r13d
  add    $0x4,%rax
  cmp    $0x7,%r13d
  je     L2491
L6802:
  mov    (%rax),%edi
  mov    0x1c(%rax),%ecx
  mov    0x38(%rax),%edx
  test   %edi,%edi
  jne    L1130
  cmp    %ecx,%esi
  jne    L1130
  cmp    %esi,%edx
  jne    L1267
  cmp    0x54(%rax),%esi
  je     L5132
  add    $0x1,%r13d
  add    $0x4,%rax
  cmp    $0x7,%r13d
  jne    L6802
  nopw   0x0(%rax,%rax,1)
L2491:
  mov    %r12d,0x18(%rsp)
  mov    %r12d,%r9d
  mov    $0xfffffffe,%r14d
  xor    %ecx,%ecx
  movl   $0xffffffff,0x10(%rsp)
  neg    %r9d
  nopl   0x0(%rax,%rax,1)
L3858:
  mov    %r14d,0x8(%rsp)
  lea    0x38(%r15),%r8
  lea    0x70(%r15),%r12
  mov    %r15,%rbx
  lea    0x8c(%r15),%rbp
  lea    0x54(%r15),%r11
  add    $0x1c,%r15
  cmp    $0x2,%ecx
  setle  %r10b
  xor    %r13d,%r13d
  nopl   0x0(%rax)
L6316:
  cmp    $0x2,%r13d
  setg   %dil
  jle    L4494
L3627:
  test   %r10b,%r10b
  je     L4494
  movslq %r13d,%rdx
  mov    (%r8,%rdx,4),%eax
  test   %eax,%eax
  jne    L1789
  lea    -0x3(%r13),%eax
  cltq
  cmp    %r9d,0x0(%rbp,%rax,4)
  je     L5707
L1230:
  cmp    $0x3,%r13d
  jg     L1789
  lea    0x1(%r13),%eax
  cltq
  cmp    %r9d,(%r11,%rax,4)
  je     L6412
  nopl   0x0(%rax)
L1789:
  lea    -0x2(%r13),%esi
  cmp    $0x3,%esi
  jbe    L2465
  lea    -0x1(%r13),%eax
  cmp    $0x3,%eax
  jbe    L7449
L6629:
  cmp    $0x2,%ecx
  jle    L7046
  test   %dil,%dil
  je     L7046
  movslq %r13d,%rdx
  mov    (%r8,%rdx,4),%eax
  test   %eax,%eax
  jne    L6447
L2932:
  lea    -0x3(%r13),%eax
  cltq
  cmp    %r9d,-0x1c(%rbx,%rax,4)
  je     L3026
L3149:
  cmp    $0x3,%ecx
  jg     L445
  lea    0x1(%r13),%eax
  cmp    $0x4,%r13d
  jg     L511
L3547:
  lea    (%r11,%rdx,4),%rdi
  cmp    %r9d,-0x4(%rdi)
  je     L173
L3020:
  mov    (%r8,%rdx,4),%edi
  test   %edi,%edi
  jne    L2842
  movslq %eax,%rdi
  cmp    %r9d,(%r11,%rdi,4)
  je     L3915
L2842:
  mov    %eax,%r13d
  cmp    $0x2,%r13d
  setg   %dil
  jg     L3627
  nop
L4494:
  cmp    $0x3,%r13d
  jg     L1789
  test   %r10b,%r10b
  je     L1789
  movslq %r13d,%rdx
  mov    (%r8,%rdx,4),%eax
  test   %eax,%eax
  jne    L1789
  lea    0x1(%r13),%eax
  cltq
  cmp    %r9d,(%r11,%rax,4)
  jne    L1789
L6412:
  lea    0x2(%r13),%eax
  cltq
  cmp    %r9d,(%r12,%rax,4)
  jne    L1789
  lea    0x3(%r13),%eax
  cltq
  cmp    %r9d,0x0(%rbp,%rax,4)
  jne    L1789
  mov    (%r11,%rdx,4),%eax
  test   %eax,%eax
  je     L1789
  jmp    L5132
  nopl   0x0(%rax)
L4734:
  cmp    $0x4,%r13d
  jg     L2187
  lea    0x1(%r13),%eax
  cmp    $0x3,%ecx
  jle    L7503
  mov    %eax,%r13d
  cmp    $0x7,%eax
  jne    L812
  jmp    L5144
L36:
  cmp    0x8(%r8),%r10d
  jne    L6012
  cmp    0x10(%r8),%r10d
  je     L5132
  mov    %r10d,%ebp
  cmp    $0x2,%rax
  jbe    L7095
  nopl   0x0(%rax)
L3205:
  cmp    0x4(%r8),%ebp
  je     L2739
L7206:
  cmp    $0x2,%edx
  ja     L2406
  jmp    L5391
  nopl   (%rax)
L1702:
  cmp    $0x3,%edi
  jbe    L272
L4413:
  cmp    $0x3,%edx
  ja     L5251
  cmpl   $0x0,0xc(%r8)
  jne    L5251
L3144:
  cmp    %r10d,0x4(%r8)
  je     L36
L6012:
  cmp    $0x2,%rax
  ja     L2748
  nopl   (%rax)
L7095:
  cmp    $0x2,%edx
  ja     L2406
  cmpl   $0x0,0xc(%r8)
  jne    L233
  cmp    %r10d,0x8(%r8)
  jne    L233
L5391:
  cmp    0x4(%r8),%r10d
  jne    L233
  cmp    0x10(%r8),%r10d
  jne    L233
  cmp    0x14(%r8),%r10d
  jne    L233
  jmp    L5132
  nopl   0x0(%rax)
L2187:
  lea    0x1(%r13),%eax
  mov    %eax,%r13d
  cmp    $0x7,%eax
  jne    L812
  jmp    L5144
  nopl   (%rax)
L358:
  cmp    $0x3,%edi
  ja     L3322
L1202:
  cmpl   $0x0,(%r11,%rax,4)
  je     L3322
L4968:
  cmp    %r10d,-0x4(%rcx)
  je     L832
L1906:
  cmp    $0x3,%edx
  ja     L1212
L1079:
  cmp    %r10d,-0x8(%rcx)
  je     L3946
L7:
  cmp    $0x2,%rax
  ja     L3197
  jmp    L6298
L2597:
  cmp    %r12d,-0x4(%rcx)
  jne    L7093
  cmp    %r12d,0x4(%rcx)
  je     L2250
L4456:
  cmp    $0x2,%rax
  jbe    L3505
  cs nopw 0x0(%rax,%rax,1)
L3974:
  cmp    %r12d,-0x8(%rcx)
  je     L3589
L5517:
  cmp    $0x2,%edx
  ja     L1143
  jmp    L7038
  nopl   0x0(%rax,%rax,1)
L2348:
  movslq %esi,%rax
  cmp    %r12d,(%rbx,%rax,4)
  jne    L1424
  lea    -0x1(%r13),%eax
  cltq
  cmp    %r12d,(%r10,%rax,4)
  jne    L1424
  mov    (%r11,%rdx,4),%eax
  test   %eax,%eax
  je     L1424
  jmp    L5132
  xchg   %ax,%ax
L6282:
  lea    -0x2(%r13),%eax
  cltq
  cmp    %r12d,(%r14,%rax,4)
  jne    L6359
  lea    -0x1(%r13),%eax
  cltq
  cmp    %r12d,(%r11,%rax,4)
  jne    L6359
  mov    (%r11,%rdx,4),%eax
  test   %eax,%eax
  je     L6359
  jmp    L5132
  nopl   0x0(%rax)
L5727:
  cmp    %r12d,0x8(%rcx)
  jne    L3631
  cmp    %r12d,0xc(%rcx)
  jne    L3631
  mov    (%r11,%rax,4),%ebp
  test   %ebp,%ebp
  je     L3631
  jmp    L5132
  nopl   (%rax)
L498:
  cmp    -0x8(%rcx),%r10d
  jne    L7220
  cmp    -0xc(%rcx),%r10d
  jne    L7220
  jmp    L5132
  nopl   0x0(%rax)
L2051:
  lea    0x2(%r13),%edi
  movslq %edi,%rdi
  cmp    %r12d,(%r11,%rdi,4)
  jne    L7503
  lea    -0x1(%r13),%edi
  movslq %edi,%rdi
  cmp    %r12d,(%r10,%rdi,4)
  jne    L7503
  movslq %esi,%rsi
  cmp    %r12d,(%rbx,%rsi,4)
  jne    L7503
  mov    (%r11,%rdx,4),%r15d
  test   %r15d,%r15d
  je     L7503
  jmp    L5132
  nopl   0x0(%rax)
L5281:
  cmp    %r12d,-0x8(%rdi)
  jne    L724
  movslq %eax,%r15
  cmp    %r12d,(%r10,%r15,4)
  jne    L724
  lea    0x2(%r13),%r15d
  movslq %r15d,%r15
  cmp    %r12d,(%rbx,%r15,4)
  jne    L724
  mov    (%rdi),%edi
  test   %edi,%edi
  je     L724
  jmp    L5132
  nop
L1390:
  cmp    0x8(%rcx),%r10d
  jne    L870
  cmp    0xc(%rcx),%r10d
  jne    L870
  jmp    L5132
  nopl   0x0(%rax)
L3589:
  cmp    %r12d,-0xc(%rcx)
  jne    L5517
  mov    (%r11,%rax,4),%ebp
  test   %ebp,%ebp
  je     L5517
  jmp    L5132
  nopl   0x0(%rax,%rax,1)
L7517:
  cmp    0x54(%rax),%r12d
  jne    L1124
  cmp    0x70(%rax),%r12d
  jne    L1124
  jmp    L5132
  nopl   0x0(%rax)
L5975:
  cmp    0x70(%rax),%r12d
  jne    L1124
  cmp    0x8c(%rax),%r12d
  jne    L1124
  jmp    L5132
  nopl   0x0(%rax)
L7158:
  cmp    %r12d,0x14(%r8)
  jne    L6834
  cmp    %r12d,0x18(%r8)
  jne    L6834
  jmp    L5132
  nopl   0x0(%rax)
L7046:
  lea    0x1(%r13),%eax
L2789:
  cmp    $0x1,%r13d
  jle    L511
  cmp    $0x1,%ecx
  jg     L7368
L511:
  mov    %eax,%r13d
  cmp    $0x7,%eax
  jne    L6316
L3516:
  mov    0x8(%rsp),%r14d
  add    $0x1,%ecx
  addl   $0x1,0x10(%rsp)
  add    $0x1,%r14d
  cmp    $0x6,%ecx
  jne    L3858
  mov    0x28(%rsp),%rax
  movl   $0xffffffff,0x20(%rsp)
  mov    $0xfffffffe,%r15d
  xor    %esi,%esi
  mov    0x18(%rsp),%r12d
  lea    0x54(%rax),%r14
  nopw   0x0(%rax,%rax,1)
L2596:
  lea    -0x70(%r14),%rax
  mov    %r15d,0x8(%rsp)
  lea    -0x54(%r14),%rdi
  xor    %r13d,%r13d
  mov    %rax,0x18(%rsp)
  lea    -0x8c(%r14),%rax
  lea    -0x1c(%r14),%rbx
  mov    %rax,0x10(%rsp)
  lea    -0x38(%r14),%r11
  nopl   0x0(%rax)
L3998:
  cmp    $0x3,%r13d
  jg     L4156
L2360:
  movslq %r13d,%rax
  lea    (%rdi,%rax,4),%rdx
  mov    (%rdx),%ecx
  test   %ecx,%ecx
  jne    L4156
  cmp    %r12d,0x4(%rdx)
  je     L4844
L2656:
  lea    -0x1(%r13),%ecx
  mov    %ecx,%r10d
  cmp    $0x3,%ecx
  jbe    L3477
  mov    $0xffffffff,%r10d
  mov    $0xfffffffe,%r8d
L4916:
  cmp    $0x2,%r13d
  jle    L5068
  movslq %r13d,%rax
  mov    (%rdi,%rax,4),%edx
  test   %edx,%edx
  jne    L4750
  lea    (%rdi,%rax,4),%rdx
  cmp    -0x4(%rdx),%r12d
  je     L6807
L1176:
  cmp    $0x2,%r13d
  setg   %r9b
  cmp    $0x2,%esi
  setle  %dl
  mov    %r9d,%ebp
  and    %dl,%bpl
  je     L2731
  mov    (%rdi,%rax,4),%eax
  test   %eax,%eax
  jne    L2533
L3362:
  lea    -0x3(%r13),%eax
  cltq
  cmp    %r12d,(%r14,%rax,4)
  je     L1861
L484:
  mov    $0x1,%r9d
  cmp    $0x3,%r13d
  jg     L6142
  lea    0x1(%r13),%edx
  movslq %edx,%rdx
  cmp    %r12d,(%r11,%rdx,4)
  je     L4716
  nopl   0x0(%rax)
L6142:
  cmp    $0x3,%r8d
  jbe    L1721
  cmp    $0x3,%r10d
  jbe    L2889
L2062:
  cmp    $0x2,%esi
  jle    L4421
  test   %r9b,%r9b
  je     L4421
  movslq %r13d,%rax
  mov    (%rdi,%rax,4),%ebp
  test   %ebp,%ebp
  jne    L7340
L6296:
  lea    -0x3(%r13),%edx
  movslq %edx,%rdx
  cmp    %r12d,-0xa8(%r14,%rdx,4)
  je     L955
L1142:
  cmp    $0x4,%r13d
  jg     L1215
  lea    0x1(%r13),%edx
  cmp    $0x3,%esi
  jg     L6403
L6774:
  lea    (%r11,%rax,4),%r8
  cmp    %r12d,-0x4(%r8)
  je     L1529
L4858:
  mov    (%rdi,%rax,4),%r8d
  test   %r8d,%r8d
  jne    L2827
  movslq %edx,%r8
  cmp    %r12d,(%r11,%r8,4)
  je     L5475
L2827:
  mov    %edx,%r13d
  cmp    $0x3,%r13d
  jle    L2360
  nopl   0x0(%rax)
L4156:
  lea    -0x1(%r13),%ecx
  mov    %ecx,%r10d
  cmp    $0x3,%ecx
  jbe    L4877
L4288:
  lea    -0x2(%r13),%r8d
  cmp    $0x3,%r8d
  ja     L4916
  movslq %r13d,%rax
  cmpl   $0x0,(%rdi,%rax,4)
  jne    L5037
L1074:
  lea    (%rdi,%rax,4),%rdx
  cmp    %r12d,-0x8(%rdx)
  je     L6631
L3533:
  cmp    $0x2,%r13d
  jle    L4272
  lea    (%rdi,%rax,4),%rdx
  cmp    %r12d,-0x4(%rdx)
  je     L6807
  cmp    $0x2,%r8d
  ja     L1176
  jmp    L2609
  nopl   0x0(%rax,%rax,1)
L4421:
  lea    0x1(%r13),%edx
L4160:
  cmp    $0x1,%r13d
  jle    L6403
  cmp    $0x1,%esi
  jg     L503
L6403:
  mov    %edx,%r13d
  cmp    $0x7,%edx
  jne    L3998
L4004:
  mov    0x8(%rsp),%r15d
  add    $0x1,%esi
  addl   $0x1,0x20(%rsp)
  add    $0x1c,%r14
  add    $0x1,%r15d
  cmp    $0x6,%esi
  jne    L2596
  mov    0x28(%rsp),%rax
  mov    %r12d,%r15d
  neg    %r15d
  lea    0x1c(%rax),%r14
  add    $0xc4,%rax
  mov    %rax,0x30(%rsp)
  mov    %r15d,%eax
  mov    %r14,%r15
  mov    %r14,0x68(%rsp)
  mov    %eax,%r14d
L5034:
  lea    -0x70(%r15),%rax
  mov    %r15,%rbp
  lea    -0x54(%r15),%r10
  mov    %rax,0x40(%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,0x48(%rsp)
  lea    0x54(%rbp),%rax
  mov    %rax,0x60(%rsp)
  xor    %eax,%eax
  nopl   0x0(%rax)
L1708:
  mov    (%r11,%rax,4),%esi
  mov    %eax,%edi
  mov    %eax,%r13d
  test   %esi,%esi
  jne    L3681
  mov    0x0(%rbp,%rax,4),%ecx
  test   %ecx,%ecx
  je     L3681
  mov    0x4(%rdx),%esi
  cmp    %r14d,%esi
  je     L2006
  mov    -0x4(%rdx),%r9d
  lea    -0x1(%rax),%ecx
  cmp    %r9d,%r14d
  je     L3189
L2881:
  lea    -0x2(%rdi),%r10d
  mov    %r10d,0x8(%rsp)
  mov    -0x8(%rdx),%r10d
  mov    %r10d,0x10(%rsp)
  cmp    %r10d,%r14d
  je     L4260
L4422:
  sub    $0x3,%edi
  mov    %edi,0x38(%rsp)
  mov    -0xc(%rdx),%edi
  mov    %edi,0x54(%rsp)
L2778:
  movslq %ecx,%rcx
  mov    (%rbx,%rcx,4),%r8d
  cmp    %r8d,%r14d
  je     L451
  mov    0x4(%r11,%rax,4),%edi
  cmp    %edi,%r14d
  je     L3304
L4796:
  mov    0x4(%r15,%rax,4),%r10d
  mov    %r10d,0x18(%rsp)
  cmp    %r10d,%r14d
  je     L2527
L6285:
  mov    (%r11,%rcx,4),%r10d
  mov    %r10d,0x20(%rsp)
  cmp    %r10d,%r14d
  je     L3515
L6694:
  cmp    %r12d,%esi
  je     L5476
L1632:
  cmp    %r9d,%r12d
  je     L5430
L3275:
  cmp    %r12d,%r8d
  je     L1608
L402:
  cmp    %edi,%r12d
  je     L6737
L929:
  cmp    %r12d,0x18(%rsp)
  je     L2782
L3202:
  cmp    0x20(%rsp),%r12d
  je     L3704
L4640:
  cmp    %edi,%r12d
  jne    L5715
  cmp    %r12d,0x8(%r11,%rax,4)
  je     L5132
L5715:
  cmp    %r12d,(%rbx,%rax,4)
  je     L1799
L2758:
  cmp    %r12d,%esi
  je     L4790
L6369:
  cmp    0x0(%rbp,%rcx,4),%r12d
  jne    L3492
  movslq 0x8(%rsp),%rcx
  cmp    %r12d,(%r15,%rcx,4)
  je     L5132
L3492:
  cmp    %r9d,%r12d
  jne    L3220
  movslq 0x8(%rsp),%rcx
  cmp    %r12d,(%rbx,%rcx,4)
  je     L5132
L3220:
  cmp    %r12d,0x4(%rbp,%rax,4)
  je     L7308
  nop
L3681:
  add    $0x1,%rax
  add    $0x4,%rdx
  cmp    $0x7,%rax
  jne    L1708
  cmp    %r15,0x30(%rsp)
  jne    L5034
  mov    %r12d,%r15d
  mov    0x68(%rsp),%r14
  neg    %r15d
L6623:
  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,0x38(%rsp)
  xor    %eax,%eax
  nopl   0x0(%rax)
L3951:
  mov    (%rsi,%rax,4),%ebx
  mov    %eax,%ecx
  mov    %eax,%r13d
  test   %ebx,%ebx
  jne    L1552
  mov    (%rdi,%rax,4),%r11d
  test   %r11d,%r11d
  je     L1552
  mov    0x4(%rdx),%r9d
  cmp    %r15d,%r9d
  je     L6092
  mov    -0x4(%rdx),%r10d
  lea    -0x1(%rax),%r8d
  cmp    %r10d,%r15d
  je     L2044
L212:
  mov    -0x8(%rdx),%ebx
  lea    -0x2(%rcx),%r11d
  cmp    %ebx,%r15d
  je     L583
L6124:
  sub    $0x3,%ecx
L1825:
  mov    0x8(%rsp),%rbp
  movslq %r8d,%r8
  cmp    0x0(%rbp,%r8,4),%r15d
  je     L2557
  mov    0x4(%rsi,%rax,4),%r11d
  cmp    %r11d,%r15d
  je     L1538
L4542:
  cmp    0x4(%r14,%rax,4),%r15d
  je     L2098
L6317:
  mov    (%rsi,%r8,4),%ebp
  cmp    %ebp,%r15d
  je     L7502
L5618:
  cmp    %ebp,%r12d
  je     L5132
  cmp    %r11d,%r12d
  je     L5132
  cmp    %r12d,0x4(%rdi,%rax,4)
  je     L5132
  cmp    %r10d,%r12d
  sete   %cl
  cmp    %r12d,%r9d
  sete   %r9b
  or     %r9b,%cl
  jne    L5132
  cmp    %r12d,(%rdi,%r8,4)
  je     L5132
  cmp    %r12d,(%rdx)
  je     L5132
  nopl   (%rax)
L1552:
  add    $0x1,%rax
  add    $0x4,%rdx
  cmp    $0x7,%rax
  jne    L3951
  cmp    %r14,0x30(%rsp)
  jne    L6623
  mov    %r12d,%r15d
  mov    0x68(%rsp),%rdi
  neg    %r15d
L3261:
  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,0x38(%rsp)
  xor    %eax,%eax
  nopl   0x0(%rax)
L2725:
  mov    (%rsi,%rax,4),%r10d
  mov    %eax,%ecx
  mov    %eax,%r13d
  test   %r10d,%r10d
  jne    L4379
  mov    (%r8,%rax,4),%r9d
  test   %r9d,%r9d
  je     L4379
  mov    0x4(%rdx),%r10d
  cmp    %r15d,%r10d
  je     L6870
  mov    -0x4(%rdx),%ebx
  lea    -0x1(%rax),%r9d
  cmp    %ebx,%r15d
  je     L1246
L7078:
  mov    -0x8(%rdx),%ebp
  lea    -0x2(%rcx),%r11d
  mov    %r11d,0x8(%rsp)
  cmp    %ebp,%r15d
  je     L84
L228:
  sub    $0x3,%ecx
L3852:
  movslq %r9d,%r9
  cmp    (%r14,%r9,4),%r15d
  je     L5848
  mov    0x4(%rsi,%rax,4),%r11d
  cmp    %r11d,%r15d
  je     L4189
L2233:
  cmp    0x4(%rdi,%rax,4),%r15d
  je     L2613
  mov    (%rsi,%r9,4),%r12d
  cmp    %r12d,%r15d
  je     L3608
L7128:
  cmp    %r11d,%r15d
  jne    L3075
  cmp    %r15d,0x8(%rsi,%rax,4)
  je     L5132
L3075:
  cmp    (%r14,%rax,4),%r15d
  je     L4485
L1151:
  cmp    %r15d,%r10d
  je     L5132
  mov    (%r8,%r9,4),%r9d
  cmp    %r9d,%r15d
  jne    L5884
  movslq 0x8(%rsp),%rcx
  cmp    (%rdi,%rcx,4),%r15d
  je     L5132
L5884:
  cmp    %ebx,%r15d
  je     L5132
  cmp    0x4(%r8,%rax,4),%r15d
  je     L5132
  cmp    %r15d,%r10d
  sete   %cl
  cmp    %r11d,%r15d
  sete   %r10b
  or     %r10d,%ecx
  cmp    %r12d,%r15d
  sete   %r10b
  or     %r10b,%cl
  jne    L5132
  cmp    %r9d,%r15d
  je     L5132
  cmp    (%rdx),%r15d
  je     L5132
L4379:
  add    $0x1,%rax
  add    $0x4,%rdx
  cmp    $0x7,%rax
  jne    L2725
  cmp    %rdi,0x30(%rsp)
  jne    L3261
  mov    0x28(%rsp),%rbx
  nopw   0x0(%rax,%rax,1)
L2763:
  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    L2763
  mov    %r13d,%esi
  lea    D5(%rip),%rdi
  xor    %eax,%eax
  call   <printf@plt>
  jmp    L5132
L6631:
  cmp    %r12d,-0x4(%rdx)
  jne    L3533
  cmp    %r12d,0x4(%rdx)
  je     L5132
  cmp    $0x2,%r13d
  jg     L6807
L4272:
  cmp    $0x2,%r8d
  jbe    L983
  nop
L5068:
  cmp    $0x2,%esi
  setle  %dl
  xor    %r9d,%r9d
L2731:
  cmp    $0x3,%r13d
  jg     L6142
  test   %dl,%dl
  je     L6142
  movslq %r13d,%rax
L2161:
  mov    (%rdi,%rax,4),%r15d
  test   %r15d,%r15d
  jne    L6142
  lea    0x1(%r13),%edx
  movslq %edx,%rdx
  cmp    %r12d,(%r11,%rdx,4)
  jne    L6142
L4716:
  lea    0x2(%r13),%eax
  cltq
  cmp    %r12d,(%rbx,%rax,4)
  jne    L6142
  lea    0x3(%r13),%eax
  cltq
  cmp    %r12d,(%r14,%rax,4)
  jne    L6142
  jmp    L5132
L5037:
  cmp    $0x2,%r13d
  jle    L4272
  nopw   0x0(%rax,%rax,1)
L4750:
  cmp    $0x2,%r13d
  setg   %al
  cmp    $0x2,%esi
  setle  %dl
  mov    %edx,%r9d
  and    %al,%r9b
  jne    L6142
  mov    %eax,%r9d
  jmp    L2731
  nopl   0x0(%rax)
L6447:
  cmp    $0x4,%r13d
  jg     L445
  lea    0x1(%r13),%eax
  cmp    $0x3,%ecx
  jle    L2842
  mov    %eax,%r13d
  cmp    $0x7,%eax
  jne    L6316
  jmp    L3516
  nopl   0x0(%rax)
L7340:
  cmp    $0x4,%r13d
  jg     L1215
  lea    0x1(%r13),%edx
  cmp    $0x3,%esi
  jle    L2827
  mov    %edx,%r13d
  cmp    $0x7,%edx
  jne    L3998
  jmp    L4004
  nopl   0x0(%rax)
L445:
  lea    0x1(%r13),%eax
  mov    %eax,%r13d
  cmp    $0x7,%eax
  jne    L6316
  jmp    L3516
  nopl   (%rax)
L1215:
  lea    0x1(%r13),%edx
  mov    %edx,%r13d
  cmp    $0x7,%edx
  jne    L3998
  jmp    L4004
  nopl   (%rax)
L6807:
  cmp    %r12d,-0x8(%rdx)
  je     L3005
L7233:
  cmp    $0x2,%r8d
  ja     L1176
  lea    (%rdi,%rax,4),%rdx
L2317:
  cmp    %r12d,-0x8(%rdx)
  je     L3296
L2609:
  cmp    $0x2,%r13d
  setg   %r9b
  cmp    $0x2,%esi
  setle  %dl
  jg     L7108
  test   %r9b,%r9b
  jne    L3362
L7108:
  cmp    $0x3,%r13d
  jg     L1721
  test   %dl,%dl
  jne    L2161
L1721:
  cmpl   $0x2,0x20(%rsp)
  jbe    L1616
  cmp    $0x3,%r10d
  jbe    L415
L5424:
  cmpl   $0x2,0x8(%rsp)
  ja     L2062
  movslq %r13d,%rax
L898:
  cmpl   $0x0,(%rdi,%rax,4)
  jne    L2062
  lea    0x1(%r13),%edx
  movslq %edx,%r8
  cmp    %r12d,(%r11,%r8,4)
  je     L6606
L4815:
  cmp    $0x2,%esi
  jle    L5662
  test   %r9b,%r9b
  jne    L6296
L5662:
  cmp    $0x1,%r13d
  jle    L2827
  cmp    $0x1,%esi
  jle    L2827
L503:
  cmp    $0x4,%r13d
  jg     L6403
  cmp    $0x3,%esi
  jg     L6403
  movslq %r13d,%rax
  mov    (%rdi,%rax,4),%r10d
  test   %r10d,%r10d
  je     L6774
  jmp    L2827
  nopl   0x0(%rax,%rax,1)
L5707:
  lea    -0x2(%r13),%eax
  cltq
  cmp    (%r12,%rax,4),%r9d
  jne    L1230
  lea    -0x1(%r13),%eax
  cltq
  cmp    (%r11,%rax,4),%r9d
  jne    L1230
  mov    (%r11,%rdx,4),%eax
  test   %eax,%eax
  je     L1230
  jmp    L5132
  nopl   0x0(%rax)
L3026:
  movslq %esi,%rax
  cmp    (%rbx,%rax,4),%r9d
  jne    L3149
  lea    -0x1(%r13),%eax
  cltq
  cmp    (%r15,%rax,4),%r9d
  jne    L3149
  jmp    L5132
  nopw   0x0(%rax,%rax,1)
L4844:
  cmp    %r12d,0x8(%rdx)
  jne    L2656
  cmp    %r12d,0xc(%rdx)
  jne    L2656
  jmp    L5132
  nopl   0x0(%rax)
L1861:
  lea    -0x2(%r13),%eax
  cltq
  cmp    %r12d,(%rbx,%rax,4)
  jne    L484
  movslq %ecx,%rax
  cmp    %r12d,(%r11,%rax,4)
  jne    L484
  jmp    L5132
  nopw   0x0(%rax,%rax,1)
L955:
  lea    -0x2(%r13),%edx
  mov    0x10(%rsp),%r10
  movslq %edx,%rdx
  cmp    %r12d,(%r10,%rdx,4)
  jne    L1142
  mov    0x18(%rsp),%r10
  movslq %ecx,%rdx
  cmp    %r12d,(%r10,%rdx,4)
  jne    L1142
  jmp    L5132
  nopl   (%rax)
L2006:
  cmp    0x8(%rdx),%r14d
  je     L3702
  mov    -0x4(%rdx),%r9d
  lea    -0x1(%rax),%ecx
  cmp    %r9d,%r14d
  jne    L2881
  lea    -0x2(%rax),%r10d
  mov    %r10d,0x8(%rsp)
  mov    -0x8(%rdx),%r10d
  mov    %r10d,0x10(%rsp)
  cmp    %r10d,%r14d
  jne    L4422
  jmp    L3681
  nopw   0x0(%rax,%rax,1)
L3915:
  lea    0x2(%r13),%edi
  movslq %edi,%rdi
  cmp    (%r11,%rdi,4),%r9d
  jne    L2842
  lea    -0x1(%r13),%edi
  movslq %edi,%rdi
  cmp    (%r15,%rdi,4),%r9d
  jne    L2842
  movslq %esi,%rsi
  cmp    (%rbx,%rsi,4),%r9d
  jne    L2842
  mov    (%r11,%rdx,4),%esi
  test   %esi,%esi
  je     L2842
  jmp    L5132
  nopl   0x0(%rax,%rax,1)
L173:
  cmp    %r9d,-0x8(%rdi)
  jne    L3020
  movslq %eax,%r14
  cmp    %r9d,(%r15,%r14,4)
  jne    L3020
  lea    0x2(%r13),%r14d
  movslq %r14d,%r14
  cmp    %r9d,(%rbx,%r14,4)
  jne    L3020
  mov    (%rdi),%edi
  test   %edi,%edi
  je     L3020
  jmp    L5132
  nopw   0x0(%rax,%rax,1)
L451:
  movslq 0x8(%rsp),%rdi
  mov    0x40(%rsp),%r10
  cmp    (%r10,%rdi,4),%r14d
  je     L1218
  mov    0x4(%r11,%rax,4),%edi
  cmp    %edi,%r14d
  jne    L4796
  cmp    0x8(%rbp,%rax,4),%r14d
  je     L3681
  mov    0x4(%r15,%rax,4),%r10d
  mov    %r10d,0x18(%rsp)
  cmp    %r10d,%r14d
  jne    L6285
L2527:
  mov    0x48(%rsp),%r10
  cmp    0x8(%r10,%rax,4),%r14d
  je     L5741
  mov    (%r11,%rcx,4),%r10d
  mov    %r10d,0x20(%rsp)
  cmp    %r10d,%r14d
  jne    L6694
  cmp    0x10(%rsp),%r14d
  je     L3681
  cmp    %r12d,%esi
  jne    L1632
  cs nopw 0x0(%rax,%rax,1)
L5476:
  cmp    %esi,0x8(%rdx)
  je     L4150
  cmp    %r9d,%esi
  jne    L3275
  cmp    0x10(%rsp),%esi
  je     L5132
  cmp    %r12d,%r8d
  jne    L402
  nopl   (%rax)
L1608:
  movslq 0x8(%rsp),%r8
  mov    0x40(%rsp),%r10
  cmp    %r12d,(%r10,%r8,4)
  jne    L402
  movslq 0x38(%rsp),%r8
  mov    0x58(%rsp),%r10
  cmp    %r12d,(%r10,%r8,4)
  je     L5132
  cmp    %edi,%r12d
  je     L5132
  cmp    %r12d,0x18(%rsp)
  jne    L3202
  nopl   0x0(%rax)
L2782:
  mov    0x48(%rsp),%r10
  cmp    %r12d,0x8(%r10,%rax,4)
  je     L1505
  cmp    0x20(%rsp),%r12d
  jne    L4640
  cmp    0x10(%rsp),%r12d
  je     L5132
L1452:
  movslq 0x8(%rsp),%r8
  cmp    %r12d,(%r11,%r8,4)
  je     L5132
  cmp    %edi,%r12d
  je     L5132
  cmp    %r12d,(%rbx,%rax,4)
  jne    L2758
L1799:
  cmp    %r12d,(%rdx)
  je     L5132
  cmp    %r12d,%esi
  jne    L6369
L4790:
  cmp    %r12d,0x8(%rbx,%rax,4)
  je     L5132
  cmp    0x0(%rbp,%rcx,4),%r12d
  je     L5132
  cmp    %r9d,%r12d
  je     L5132
  cmp    %r12d,0x4(%rbp,%rax,4)
  jne    L3681
L7308:
  cmp    %r12d,0x8(%r15,%rax,4)
  jne    L3681
  jmp    L5132
  nopl   0x0(%rax)
L5475:
  lea    0x2(%r13),%r8d
  movslq %r8d,%r8
  cmp    %r12d,(%r11,%r8,4)
  jne    L2827
  mov    0x18(%rsp),%r10
  movslq %ecx,%rcx
  cmp    %r12d,(%r10,%rcx,4)
  jne    L2827
  lea    -0x2(%r13),%ecx
  mov    0x10(%rsp),%r10
  movslq %ecx,%rcx
  cmp    %r12d,(%r10,%rcx,4)
  jne    L2827
  mov    (%r11,%rax,4),%r8d
  test   %r8d,%r8d
  je     L2827
  jmp    L5132
  nopl   0x0(%rax,%rax,1)
L1529:
  cmp    %r12d,-0x8(%r8)
  jne    L4858
  mov    0x18(%rsp),%r10
  movslq %edx,%r9
  cmp    %r12d,(%r10,%r9,4)
  jne    L4858
  lea    0x2(%r13),%r9d
  mov    0x10(%rsp),%r10
  movslq %r9d,%r9
  cmp    %r12d,(%r10,%r9,4)
  jne    L4858
  mov    (%r8),%r9d
  test   %r9d,%r9d
  je     L4858
  jmp    L5132
  nopl   0x0(%rax,%rax,1)
L3005:
  cmp    %r12d,-0xc(%rdx)
  jne    L7233
  jmp    L5132
  nopw   0x0(%rax,%rax,1)
L3189:
  lea    -0x2(%rax),%r10d
  mov    %r10d,0x8(%rsp)
  mov    -0x8(%rdx),%r10d
  mov    %r10d,0x10(%rsp)
  cmp    %r10d,%r14d
  jne    L4422
  lea    -0x3(%rax),%edi
  mov    %edi,0x38(%rsp)
  mov    -0xc(%rdx),%edi
  mov    %edi,0x54(%rsp)
  cmp    %r14d,%edi
  jne    L2778
  jmp    L3681
  nopw   0x0(%rax,%rax,1)
L6737:
  cmp    %r12d,0x8(%rbp,%rax,4)
  jne    L929
  cmp    %r12d,0xc(%r15,%rax,4)
  jne    L929
  jmp    L5132
  nopl   0x0(%rax,%rax,1)
L4260:
  sub    $0x3,%edi
  mov    %edi,0x38(%rsp)
  mov    -0xc(%rdx),%edi
  mov    %edi,0x54(%rsp)
  cmp    %edi,%r14d
  jne    L2778
  cmp    %r9d,%r14d
  jne    L2778
  jmp    L3681
  nopl   (%rax)
L4909:
  cmp    0x54(%rax),%esi
  jne    L3214
  cmp    0x70(%rax),%esi
  jne    L3214
  jmp    L5132
  nop
L3118:
  cmp    0x70(%rax),%esi
  jne    L3214
  cmp    0x8c(%rax),%esi
  jne    L3214
  jmp    L5132
  nopw   0x0(%rax,%rax,1)
L1002:
  cmp    0x14(%r8),%r10d
  jne    L5692
  cmp    0x18(%r8),%r10d
  jne    L5692
  jmp    L5132
  nopl   0x0(%rax)
L3304:
  cmp    0x8(%rbp,%rax,4),%r14d
  jne    L4796
  cmp    0xc(%r15,%rax,4),%r14d
  jne    L4796
  jmp    L3681
  nopl   0x0(%rax,%rax,1)
L3515:
  cmp    0x10(%rsp),%r14d
  jne    L6694
  movslq 0x38(%rsp),%r10
  cmp    (%rbx,%r10,4),%r14d
  jne    L6694
  jmp    L3681
  nop
L5430:
  cmp    0x10(%rsp),%r12d
  jne    L3275
  cmp    0x54(%rsp),%r12d
  jne    L3275
  jmp    L5132
  nopl   0x0(%rax,%rax,1)
L3704:
  cmp    0x10(%rsp),%r12d
  jne    L1452
  movslq 0x38(%rsp),%r8
  cmp    %r12d,(%rbx,%r8,4)
  jne    L1452
  jmp    L5132
  nop
L6092:
  cmp    0x8(%rdx),%r15d
  je     L312
  mov    -0x4(%rdx),%r10d
  lea    -0x1(%rax),%r8d
  cmp    %r10d,%r15d
  jne    L212
  mov    -0x8(%rdx),%ebx
  lea    -0x2(%rax),%r11d
  cmp    %ebx,%r15d
  jne    L6124
  jmp    L1552
L2557:
  mov    0x10(%rsp),%rbp
  movslq %r11d,%r11
  cmp    0x0(%rbp,%r11,4),%r15d
  je     L606
  mov    0x4(%rsi,%rax,4),%r11d
  cmp    %r11d,%r15d
  jne    L4542
  cmp    0x8(%rdi,%rax,4),%r15d
  je     L1552
  cmp    0x4(%r14,%rax,4),%r15d
  jne    L6317
  nopw   0x0(%rax,%rax,1)
L2098:
  mov    0x18(%rsp),%rcx
  cmp    0x8(%rcx,%rax,4),%r15d
  je     L4392
  mov    (%rsi,%r8,4),%ebp
  cmp    %ebp,%r15d
  jne    L5618
  cmp    %ebx,%r15d
  jne    L5618
  jmp    L1552
  nopl   0x0(%rax,%rax,1)
L2044:
  mov    -0x8(%rdx),%ebx
  lea    -0x2(%rax),%r11d
  cmp    %ebx,%r15d
  jne    L6124
  lea    -0x3(%rax),%ecx
  cmp    -0xc(%rdx),%r15d
  jne    L1825
  jmp    L1552
  nopw   0x0(%rax,%rax,1)
L3702:
  cmp    0xc(%rdx),%r14d
  je     L3681
  mov    -0x4(%rdx),%r9d
  lea    -0x1(%rax),%ecx
  cmp    %r9d,%r14d
  jne    L2881
  jmp    L3681
  nopw   0x0(%rax,%rax,1)
L583:
  sub    $0x3,%ecx
  cmp    -0xc(%rdx),%r15d
  jne    L1825
  cmp    %r10d,%r15d
  jne    L1825
  jmp    L1552
  nopl   0x0(%rax,%rax,1)
L1538:
  cmp    0x8(%rdi,%rax,4),%r15d
  jne    L4542
  cmp    0xc(%r14,%rax,4),%r15d
  jne    L4542
  jmp    L1552
L1218:
  movslq 0x38(%rsp),%rdi
  mov    0x58(%rsp),%r10
  cmp    (%r10,%rdi,4),%r14d
  je     L3681
  mov    0x4(%r11,%rax,4),%edi
  cmp    %edi,%r14d
  jne    L4796
  jmp    L3681
L6870:
  cmp    0x8(%rdx),%r15d
  je     L4412
  mov    -0x4(%rdx),%ebx
  lea    -0x1(%rax),%r9d
  cmp    %ebx,%r15d
  jne    L7078
  mov    -0x8(%rdx),%ebp
  lea    -0x2(%rax),%r11d
  mov    %r11d,0x8(%rsp)
  cmp    %ebp,%r15d
  jne    L228
  jmp    L4379
L7502:
  cmp    %ebx,%r15d
  jne    L5618
  mov    0x8(%rsp),%rbx
  movslq %ecx,%rcx
  cmp    (%rbx,%rcx,4),%r15d
  jne    L5618
  jmp    L1552
L5741:
  mov    0x60(%rsp),%r10
  cmp    0xc(%r10,%rax,4),%r14d
  je     L3681
  mov    (%r11,%rcx,4),%r10d
  mov    %r10d,0x20(%rsp)
  cmp    %r10d,%r14d
  jne    L6694
  jmp    L3681
L6031:
  cmp    %r12d,(%r8)
  jne    L648
  jmp    L5132
  nopl   0x0(%rax,%rax,1)
L2739:
  cmp    (%r8),%ebp
  jne    L7206
  jmp    L5132
  xchg   %ax,%ax
L5848:
  movslq 0x8(%rsp),%r11
  mov    0x10(%rsp),%r12
  cmp    (%r12,%r11,4),%r15d
  je     L1590
  mov    0x4(%rsi,%rax,4),%r11d
  cmp    %r11d,%r15d
  jne    L2233
  cmp    0x8(%r8,%rax,4),%r15d
  jne    L2233
  jmp    L4379
L4150:
  cmp    %esi,0xc(%rdx)
  je     L5132
  cmp    %r9d,%esi
  jne    L3275
  jmp    L5132
  nopl   0x0(%rax)
L1505:
  mov    0x60(%rsp),%r10
  cmp    %r12d,0xc(%r10,%rax,4)
  je     L5132
  cmp    0x20(%rsp),%r12d
  jne    L4640
  jmp    L5132
L2613:
  mov    0x18(%rsp),%rcx
  cmp    0x8(%rcx,%rax,4),%r15d
  je     L1054
  mov    (%rsi,%r9,4),%r12d
  cmp    %r15d,%r12d
  jne    L7128
  cmp    %ebp,%r15d
  je     L4379
L4457:
  movslq 0x8(%rsp),%rcx
  cmp    %r15d,(%rsi,%rcx,4)
  je     L5132
  cmp    %r11d,%r15d
  je     L5132
  cmp    (%r14,%rax,4),%r15d
  jne    L1151
L4485:
  cmp    (%rdx),%r15d
  jne    L1151
  jmp    L5132
  cs nopw 0x0(%rax,%rax,1)
L312:
  cmp    0xc(%rdx),%r15d
  je     L1552
  mov    -0x4(%rdx),%r10d
  lea    -0x1(%rax),%r8d
  cmp    %r10d,%r15d
  jne    L212
  jmp    L1552
L1246:
  mov    -0x8(%rdx),%ebp
  lea    -0x2(%rax),%r11d
  mov    %r11d,0x8(%rsp)
  cmp    %ebp,%r15d
  jne    L228
  lea    -0x3(%rax),%ecx
  cmp    -0xc(%rdx),%r15d
  jne    L3852
  jmp    L4379
L606:
  mov    0x20(%rsp),%rbp
  movslq %ecx,%r11
  cmp    0x0(%rbp,%r11,4),%r15d
  je     L1552
  mov    0x4(%rsi,%rax,4),%r11d
  cmp    %r11d,%r15d
  jne    L4542
  jmp    L1552
L84:
  sub    $0x3,%ecx
  cmp    -0xc(%rdx),%r15d
  jne    L3852
  cmp    %ebx,%r15d
  jne    L3852
  jmp    L4379
  nopl   0x0(%rax,%rax,1)
L4189:
  cmp    0x8(%r8,%rax,4),%r15d
  jne    L2233
  cmp    0xc(%rdi,%rax,4),%r15d
  jne    L2233
  jmp    L4379
L1054:
  mov    0x38(%rsp),%rcx
  cmp    0xc(%rcx,%rax,4),%r15d
  je     L4379
  mov    (%rsi,%r9,4),%r12d
  cmp    %r12d,%r15d
  jne    L7128
  jmp    L4379
L4392:
  mov    0x38(%rsp),%rbx
  cmp    0xc(%rbx,%rax,4),%r15d
  je     L1552
  mov    (%rsi,%r8,4),%ebp
  cmp    %ebp,%r15d
  jne    L5618
  jmp    L1552
L3608:
  cmp    %ebp,%r15d
  jne    L4457
  movslq %ecx,%rcx
  cmp    (%r14,%rcx,4),%r15d
  jne    L4457
  jmp    L4379
L4412:
  cmp    0xc(%rdx),%r15d
  je     L4379
  mov    -0x4(%rdx),%ebx
  lea    -0x1(%rax),%r9d
  cmp    %ebx,%r15d
  jne    L7078
  jmp    L4379
L1590:
  mov    0x20(%rsp),%r12
  movslq %ecx,%r11
  cmp    (%r12,%r11,4),%r15d
  je     L4379
  mov    0x4(%rsi,%rax,4),%r11d
  cmp    %r11d,%r15d
  jne    L2233
  jmp    L4379
L2465:
  cmpl   $0x2,0x10(%rsp)
  jbe    L6378
  cmp    $0x5,%r13d
  jne    L1496
L2454:
  cmpl   $0x2,0x8(%rsp)
  ja     L6629
  mov    $0x5,%edx
L2409:
  cmpl   $0x0,(%r8,%rdx,4)
  jne    L6629
  lea    0x1(%r13),%eax
  movslq %eax,%r14
  cmp    %r9d,(%r11,%r14,4)
  je     L739
L4352:
  cmp    $0x2,%ecx
  jle    L1115
  test   %dil,%dil
  jne    L2932
L1115:
  cmp    $0x1,%ecx
  jle    L2842
  cmp    $0x1,%r13d
  jle    L2842
L7368:
  cmp    $0x4,%r13d
  jg     L511
  cmp    $0x3,%ecx
  jg     L511
  movslq %r13d,%rdx
  mov    (%r8,%rdx,4),%r14d
  test   %r14d,%r14d
  je     L3547
  jmp    L2842
L1772:
  cmpl   $0x2,0x10(%rsp)
  jbe    L4126
  cmp    $0x5,%r13d
  jne    L6005
L840:
  cmpl   $0x2,0x8(%rsp)
  ja     L6601
  mov    $0x5,%edx
L3230:
  cmpl   $0x0,(%r8,%rdx,4)
  jne    L6601
  lea    0x1(%r13),%eax
  movslq %eax,%r15
  cmp    %r12d,(%r11,%r15,4)
  je     L3015
L5885:
  cmp    $0x2,%ecx
  jle    L2182
  test   %dil,%dil
  jne    L2456
L2182:
  cmp    $0x1,%r13d
  jle    L7503
  cmp    $0x1,%ecx
  jle    L7503
L4420:
  cmp    $0x4,%r13d
  jg     L4232
  cmp    $0x3,%ecx
  jg     L4232
  movslq %r13d,%rdx
  mov    (%r8,%rdx,4),%r15d
  test   %r15d,%r15d
  je     L3837
  jmp    L7503
L7449:
  cmpl   $0x2,0x10(%rsp)
  jbe    L5028
L1496:
  cmpl   $0x2,0x8(%rsp)
  ja     L6629
  movslq %r13d,%rdx
  cmpl   $0x0,(%r8,%rdx,4)
  jne    L2741
  lea    0x1(%r13),%eax
L888:
  cltq
  cmp    %r9d,(%r15,%rax,4)
  je     L723
L2741:
  cmp    $0x3,%esi
  ja     L6629
  jmp    L2409
L5028:
  movslq %r13d,%rdx
L3422:
  cmpl   $0x0,(%r8,%rdx,4)
  jne    L1496
  lea    0x1(%r13),%eax
L5345:
  movslq %eax,%r14
  cmp    %r9d,(%r11,%r14,4)
  je     L809
L2355:
  cmpl   $0x2,0x8(%rsp)
  jbe    L888
  cmp    $0x2,%ecx
  jle    L2789
  test   %dil,%dil
  jne    L2932
  jmp    L2789
L739:
  movslq %esi,%r14
  cmp    (%rbx,%r14,4),%r9d
  jne    L4352
  lea    -0x1(%r13),%r14d
  movslq %r14d,%r14
  cmp    (%r15,%r14,4),%r9d
  jne    L4352
  cmpl   $0x0,(%r11,%rdx,4)
  je     L4352
  jmp    L5132
L809:
  lea    0x2(%r13),%r14d
  movslq %r14d,%r14
  cmp    (%r12,%r14,4),%r9d
  jne    L2355
  lea    -0x1(%r13),%r14d
  movslq %r14d,%r14
  cmp    (%r15,%r14,4),%r9d
  jne    L2355
  cmpl   $0x0,(%r11,%rdx,4)
  je     L2355
  jmp    L5132
L723:
  lea    0x2(%r13),%eax
  cltq
  cmp    (%rbx,%rax,4),%r9d
  jne    L2741
  lea    -0x1(%r13),%eax
  cltq
  cmp    (%r11,%rax,4),%r9d
  jne    L2741
  cmpl   $0x0,(%r11,%rdx,4)
  je     L2741
  jmp    L5132
L6378:
  movslq %r13d,%rdx
  cmpl   $0x0,(%r8,%rdx,4)
  jne    L324
  lea    0x1(%r13),%eax
  movslq %eax,%r14
  cmp    %r9d,(%r15,%r14,4)
  je     L4642
L4415:
  cmp    $0x5,%r13d
  je     L2454
  jmp    L5345
L6606:
  lea    -0x2(%r13),%r8d
  mov    0x10(%rsp),%r15
  movslq %r8d,%r8
  cmp    %r12d,(%r15,%r8,4)
  jne    L4815
  mov    0x18(%rsp),%r15
  movslq %ecx,%r8
  cmp    %r12d,(%r15,%r8,4)
  jne    L4815
  jmp    L5132
L415:
  cmpl   $0x2,0x8(%rsp)
  ja     L2062
  movslq %r13d,%rax
  cmpl   $0x0,(%rdi,%rax,4)
  jne    L2062
  lea    0x1(%r13),%edx
L6781:
  mov    0x18(%rsp),%r15
  movslq %edx,%rdx
  cmp    %r12d,(%r15,%rdx,4)
  je     L3829
L688:
  cmp    $0x3,%r8d
  ja     L2062
  jmp    L898
L1616:
  movslq %r13d,%rax
  cmpl   $0x0,(%rdi,%rax,4)
  jne    L3776
  lea    0x1(%r13),%edx
  mov    0x18(%rsp),%r15
  movslq %edx,%rbp
  cmp    %r12d,(%r15,%rbp,4)
  je     L5737
L2271:
  cmp    $0x3,%r10d
  ja     L5424
L3531:
  movslq %edx,%r10
  cmp    %r12d,(%r11,%r10,4)
  je     L1636
L399:
  cmpl   $0x2,0x8(%rsp)
  jbe    L6781
  cmp    $0x2,%esi
  jle    L4160
  test   %r9b,%r9b
  jne    L6296
  jmp    L4160
L3015:
  movslq %esi,%r15
  cmp    %r12d,(%rbx,%r15,4)
  jne    L5885
  lea    -0x1(%r13),%r15d
  movslq %r15d,%r15
  cmp    %r12d,(%r10,%r15,4)
  jne    L5885
  cmpl   $0x0,(%r11,%rdx,4)
  je     L5885
  jmp    L5132
L6005:
  cmpl   $0x2,0x8(%rsp)
  ja     L6601
  movslq %r13d,%rdx
  cmpl   $0x0,(%r8,%rdx,4)
  jne    L854
  lea    0x1(%r13),%eax
L5203:
  cltq
  cmp    %r12d,(%r10,%rax,4)
  je     L6415
L854:
  cmp    $0x3,%esi
  ja     L6601
  jmp    L3230
L4126:
  movslq %r13d,%rdx
  cmpl   $0x0,(%r8,%rdx,4)
  jne    L4904
  lea    0x1(%r13),%eax
  movslq %eax,%r15
  cmp    %r12d,(%r10,%r15,4)
  je     L162
L5385:
  cmp    $0x5,%r13d
  je     L840
L5575:
  movslq %eax,%r15
  cmp    %r12d,(%r11,%r15,4)
  je     L3612
L7386:
  cmpl   $0x2,0x8(%rsp)
  jbe    L5203
  cmp    $0x2,%ecx
  jle    L5672
  test   %dil,%dil
  jne    L2456
  jmp    L5672
L6415:
  lea    0x2(%r13),%eax
  cltq
  cmp    %r12d,(%rbx,%rax,4)
  jne    L854
  lea    -0x1(%r13),%eax
  cltq
  cmp    %r12d,(%r11,%rax,4)
  jne    L854
  cmpl   $0x0,(%r11,%rdx,4)
  je     L854
  jmp    L5132
L162:
  movslq %esi,%r15
  cmp    %r12d,(%r14,%r15,4)
  jne    L5385
  lea    -0x1(%r13),%r15d
  movslq %r15d,%r15
  cmp    %r12d,(%r11,%r15,4)
  jne    L5385
  cmpl   $0x0,(%r11,%rdx,4)
  je     L5385
  jmp    L5132
L4904:
  cmp    $0x5,%r13d
  je     L840
L4365:
  cmpl   $0x0,(%r8,%rdx,4)
  jne    L6005
  lea    0x1(%r13),%eax
  jmp    L5575
L3612:
  lea    0x2(%r13),%r15d
  movslq %r15d,%r15
  cmp    %r12d,(%r14,%r15,4)
  jne    L7386
  lea    -0x1(%r13),%r15d
  movslq %r15d,%r15
  cmp    %r12d,(%r10,%r15,4)
  jne    L7386
  cmpl   $0x0,(%r11,%rdx,4)
  je     L7386
  jmp    L5132
L3829:
  lea    0x2(%r13),%edx
  mov    0x10(%rsp),%r15
  movslq %edx,%rdx
  cmp    %r12d,(%r15,%rdx,4)
  jne    L688
  movslq %ecx,%rdx
  cmp    %r12d,(%r11,%rdx,4)
  jne    L688
  jmp    L5132
L5737:
  lea    -0x2(%r13),%ebp
  movslq %ebp,%rbp
  cmp    %r12d,(%rbx,%rbp,4)
  jne    L2271
  movslq %ecx,%rbp
  cmp    %r12d,(%r11,%rbp,4)
  jne    L2271
  jmp    L5132
L3776:
  cmp    $0x3,%r10d
  ja     L5424
L5452:
  cmpl   $0x0,(%rdi,%rax,4)
  jne    L415
  lea    0x1(%r13),%edx
  jmp    L3531
L1636:
  lea    0x2(%r13),%r10d
  movslq %r10d,%r10
  cmp    %r12d,(%rbx,%r10,4)
  jne    L399
  mov    0x18(%rsp),%r15
  movslq %ecx,%r10
  cmp    %r12d,(%r15,%r10,4)
  jne    L399
  jmp    L5132
L3296:
  cmp    %r12d,0x4(%rdx)
  jne    L2609
  cmp    %r12d,0x8(%rdx)
  jne    L2609
  jmp    L5132
L3744:
  cmpl   $0x0,0xc(%r8)
  jne    L3500
L2962:
  cmp    %r12d,0x8(%r8)
  jne    L4819
  cmp    %r12d,0x10(%r8)
  jne    L4819
  cmp    %r12d,0x14(%r8)
  jne    L4819
  jmp    L5132
L5943:
  cmp    %r12d,0x8(%r8)
  jne    L5106
  cmp    %r12d,0x10(%r8)
  je     L5132
  cmp    $0x2,%rax
  ja     L1254
  jmp    L2747
L272:
  cmpl   $0x0,0xc(%r8)
  jne    L4413
L506:
  cmp    %r10d,0x8(%r8)
  jne    L1981
  cmp    0x10(%r8),%r10d
  jne    L1981
  cmp    0x14(%r8),%r10d
  jne    L1981
  jmp    L5132
L2889:
  cmpl   $0x2,0x20(%rsp)
  ja     L415
  movslq %r13d,%rax
  jmp    L5452
L6932:
  cmpl   $0x2,0x10(%rsp)
  ja     L6005
  movslq %r13d,%rdx
  jmp    L4365
L832:
  cmp    0x4(%rcx),%r10d
  jne    L1906
  cmp    0x8(%rcx),%r10d
  jne    L1906
  jmp    L5132
L3946:
  cmp    -0x4(%rcx),%r10d
  jne    L7
  cmp    0x4(%rcx),%r10d
  jne    L7
  jmp    L5132
L274:
  cmpl   $0x0,(%rcx)
  jne    L6200
L2922:
  cmp    %r12d,-0x4(%rcx)
  jne    L1098
  cmp    %r12d,0x4(%rcx)
  jne    L1098
  cmp    %r12d,0x8(%rcx)
  jne    L1098
  cmpl   $0x0,(%r11,%rax,4)
  je     L1098
  jmp    L5132
L4877:
  movslq %r13d,%rax
  cmpl   $0x0,(%rdi,%rax,4)
  jne    L4288
L3477:
  lea    (%rdi,%rax,4),%rdx
  cmp    %r12d,-0x4(%rdx)
  je     L236
L3972:
  lea    -0x2(%r13),%r8d
  cmp    $0x3,%r8d
  jbe    L1074
  or     $0xffffffff,%r8d
  jmp    L4916
L983:
  cmpl   $0x0,(%rdi,%rax,4)
  jne    L3320
  lea    (%rdi,%rax,4),%rdx
  cmp    %r12d,-0x4(%rdx)
  je     L2317
  cmp    $0x2,%r13d
  setg   %r9b
  cmp    $0x2,%esi
  setle  %dl
  jmp    L7108
L2250:
  cmpl   $0x0,(%r11,%rax,4)
  je     L4456
  jmp    L5132
L3320:
  cmp    $0x2,%r13d
  setg   %r9b
  cmp    $0x2,%esi
  setle  %dl
  jmp    L2731
L236:
  cmp    %r12d,0x4(%rdx)
  jne    L3972
  cmp    %r12d,0x8(%rdx)
  jne    L3972
  jmp    L5132
L1816:
  cmpl   $0x0,(%rcx)
  jne    L4843
  jmp    L1202
L2533:
  mov    %ebp,%r9d
  jmp    L6142
L4642:
  movslq %esi,%r14
  cmp    (%r12,%r14,4),%r9d
  jne    L4415
  lea    -0x1(%r13),%r14d
  movslq %r14d,%r14
  cmp    (%r11,%r14,4),%r9d
  jne    L4415
  cmpl   $0x0,(%r11,%rdx,4)
  je     L4415
  jmp    L5132
L324:
  cmp    $0x5,%r13d
  je     L2454
  jmp    L3422
```

tool_calls: name: retrieve_data
arguments: data_tag: D5
type_infered: string

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