user: 这段汇编代码用C语言表示是什么样的：

```asm
<fin42f>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  sub    $0x110,%rsp
  mov    %rdi,-0xe8(%rbp)
  mov    %esi,-0xec(%rbp)
  mov    %edx,-0xf0(%rbp)
  mov    %ecx,-0xf4(%rbp)
  mov    %r8d,-0xf8(%rbp)
  mov    %r9d,-0xfc(%rbp)
  mov    0x10(%rbp),%rax
  mov    %rax,-0x108(%rbp)
  mov    %fs:0x28,%rax
  mov    %rax,-0x8(%rbp)
  xor    %eax,%eax
  movl   $0x0,-0xb8(%rbp)
  jmp    L585
L2486:
  movl   $0x0,-0xb4(%rbp)
  jmp    L2367
L2181:
  mov    -0xb8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0xe8(%rbp),%rax
  add    %rax,%rdx
  mov    -0xb4(%rbp),%eax
  cltq
  mov    (%rdx,%rax,4),%edx
  mov    -0xb4(%rbp),%eax
  movslq %eax,%rsi
  mov    -0xb8(%rbp),%eax
  movslq %eax,%rcx
  mov    %rcx,%rax
  shl    $0x3,%rax
  sub    %rcx,%rax
  add    %rsi,%rax
  mov    %edx,-0xb0(%rbp,%rax,4)
  addl   $0x1,-0xb4(%rbp)
L2367:
  cmpl   $0x6,-0xb4(%rbp)
  jle    L2181
  addl   $0x1,-0xb8(%rbp)
L585:
  cmpl   $0x5,-0xb8(%rbp)
  jle    L2486
  cmpl   $0xffffffff,-0xf8(%rbp)
  je     L1268
  mov    -0xf8(%rbp),%eax
  movslq %eax,%rcx
  mov    -0xf4(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  lea    (%rax,%rcx,1),%rdx
  mov    -0xec(%rbp),%eax
  mov    %eax,-0xb0(%rbp,%rdx,4)
L1268:
  movl   $0x0,-0xcc(%rbp)
  jmp    L438
L1937:
  movl   $0x0,-0xc4(%rbp)
  jmp    L377
L2314:
  mov    -0xcc(%rbp),%eax
  movslq %eax,%rcx
  mov    -0xc4(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  add    %rcx,%rax
  mov    -0xb0(%rbp,%rax,4),%eax
  test   %eax,%eax
  jne    L7
  cmpl   $0x2,-0xc4(%rbp)
  jle    L1016
  mov    -0xcc(%rbp),%eax
  cmp    -0xf8(%rbp),%eax
  jne    L1016
  mov    -0xc4(%rbp),%eax
  lea    -0x1(%rax),%edx
  mov    -0xcc(%rbp),%eax
  movslq %eax,%rcx
  movslq %edx,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  add    %rcx,%rax
  mov    -0xb0(%rbp,%rax,4),%eax
  cmp    %eax,-0xec(%rbp)
  jne    L1016
  mov    -0xc4(%rbp),%eax
  lea    -0x2(%rax),%edx
  mov    -0xcc(%rbp),%eax
  movslq %eax,%rcx
  movslq %edx,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  add    %rcx,%rax
  mov    -0xb0(%rbp,%rax,4),%eax
  cmp    %eax,-0xec(%rbp)
  jne    L1016
  mov    -0xc4(%rbp),%eax
  lea    -0x3(%rax),%edx
  mov    -0xcc(%rbp),%eax
  movslq %eax,%rcx
  movslq %edx,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  add    %rcx,%rax
  mov    -0xb0(%rbp,%rax,4),%eax
  cmp    %eax,-0xec(%rbp)
  jne    L1016
  mov    -0xc4(%rbp),%eax
  sub    $0x3,%eax
  cmp    %eax,-0xf4(%rbp)
  jl     L1016
  mov    -0xc4(%rbp),%eax
  cmp    -0xf4(%rbp),%eax
  jle    L1016
  cmpl   $0x0,-0xf0(%rbp)
  je     L2650
  mov    -0x108(%rbp),%rax
  mov    -0xc4(%rbp),%edx
  mov    %edx,(%rax)
  mov    -0xcc(%rbp),%eax
  jmp    L41
L2650:
  movl   $0x2,-0xf0(%rbp)
  mov    -0xec(%rbp),%eax
  neg    %eax
  mov    %eax,%ecx
  mov    -0xcc(%rbp),%eax
  movslq %eax,%rsi
  mov    -0xc4(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  add    %rsi,%rax
  mov    %ecx,-0xb0(%rbp,%rax,4)
  mov    -0xc4(%rbp),%eax
  mov    %eax,-0xc0(%rbp)
  mov    -0xcc(%rbp),%eax
  mov    %eax,-0xbc(%rbp)
L1016:
  mov    -0xc4(%rbp),%eax
  cmp    -0xf4(%rbp),%eax
  jne    L1480
  cmpl   $0x2,-0xcc(%rbp)
  jle    L1436
  mov    -0xcc(%rbp),%eax
  sub    $0x1,%eax
  movslq %eax,%rcx
  mov    -0xc4(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  add    %rcx,%rax
  mov    -0xb0(%rbp,%rax,4),%eax
  cmp    %eax,-0xec(%rbp)
  jne    L1436
  mov    -0xcc(%rbp),%eax
  sub    $0x2,%eax
  movslq %eax,%rcx
  mov    -0xc4(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  add    %rcx,%rax
  mov    -0xb0(%rbp,%rax,4),%eax
  cmp    %eax,-0xec(%rbp)
  jne    L1436
  mov    -0xcc(%rbp),%eax
  sub    $0x3,%eax
  movslq %eax,%rcx
  mov    -0xc4(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  add    %rcx,%rax
  mov    -0xb0(%rbp,%rax,4),%eax
  cmp    %eax,-0xec(%rbp)
  jne    L1436
  mov    -0xcc(%rbp),%eax
  sub    $0x1,%eax
  cmp    %eax,-0xf8(%rbp)
  je     L2071
  mov    -0xcc(%rbp),%eax
  sub    $0x2,%eax
  cmp    %eax,-0xf8(%rbp)
  je     L2071
  mov    -0xcc(%rbp),%eax
  sub    $0x3,%eax
  cmp    %eax,-0xf8(%rbp)
  jne    L1436
L2071:
  cmpl   $0x0,-0xf0(%rbp)
  je     L533
  mov    -0x108(%rbp),%rax
  mov    -0xc4(%rbp),%edx
  mov    %edx,(%rax)
  mov    -0xcc(%rbp),%eax
  jmp    L41
L533:
  movl   $0x2,-0xf0(%rbp)
  mov    -0xec(%rbp),%eax
  neg    %eax
  mov    %eax,%ecx
  mov    -0xcc(%rbp),%eax
  movslq %eax,%rsi
  mov    -0xc4(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  add    %rsi,%rax
  mov    %ecx,-0xb0(%rbp,%rax,4)
  mov    -0xc4(%rbp),%eax
  mov    %eax,-0xc0(%rbp)
  mov    -0xcc(%rbp),%eax
  mov    %eax,-0xbc(%rbp)
L1436:
  cmpl   $0x1,-0xcc(%rbp)
  jle    L2886
  cmpl   $0x5,-0xcc(%rbp)
  jg     L2886
  mov    -0xcc(%rbp),%eax
  sub    $0x1,%eax
  movslq %eax,%rcx
  mov    -0xc4(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  add    %rcx,%rax
  mov    -0xb0(%rbp,%rax,4),%eax
  cmp    %eax,-0xec(%rbp)
  jne    L2886
  mov    -0xcc(%rbp),%eax
  sub    $0x2,%eax
  movslq %eax,%rcx
  mov    -0xc4(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  add    %rcx,%rax
  mov    -0xb0(%rbp,%rax,4),%eax
  cmp    %eax,-0xec(%rbp)
  jne    L2886
  mov    -0xcc(%rbp),%eax
  add    $0x1,%eax
  movslq %eax,%rcx
  mov    -0xc4(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  add    %rcx,%rax
  mov    -0xb0(%rbp,%rax,4),%eax
  cmp    %eax,-0xec(%rbp)
  jne    L2886
  mov    -0xcc(%rbp),%eax
  sub    $0x1,%eax
  cmp    %eax,-0xf8(%rbp)
  je     L1340
  mov    -0xcc(%rbp),%eax
  sub    $0x2,%eax
  cmp    %eax,-0xf8(%rbp)
  je     L1340
  mov    -0xcc(%rbp),%eax
  add    $0x1,%eax
  cmp    %eax,-0xf8(%rbp)
  jne    L2886
L1340:
  cmpl   $0x0,-0xf0(%rbp)
  je     L2292
  mov    -0x108(%rbp),%rax
  mov    -0xc4(%rbp),%edx
  mov    %edx,(%rax)
  mov    -0xcc(%rbp),%eax
  jmp    L41
L2292:
  movl   $0x2,-0xf0(%rbp)
  mov    -0xec(%rbp),%eax
  neg    %eax
  mov    %eax,%ecx
  mov    -0xcc(%rbp),%eax
  movslq %eax,%rsi
  mov    -0xc4(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  add    %rsi,%rax
  mov    %ecx,-0xb0(%rbp,%rax,4)
  mov    -0xc4(%rbp),%eax
  mov    %eax,-0xc0(%rbp)
  mov    -0xcc(%rbp),%eax
  mov    %eax,-0xbc(%rbp)
L2886:
  cmpl   $0x0,-0xcc(%rbp)
  jle    L267
  cmpl   $0x4,-0xcc(%rbp)
  jg     L267
  mov    -0xcc(%rbp),%eax
  sub    $0x1,%eax
  movslq %eax,%rcx
  mov    -0xc4(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  add    %rcx,%rax
  mov    -0xb0(%rbp,%rax,4),%eax
  cmp    %eax,-0xec(%rbp)
  jne    L267
  mov    -0xcc(%rbp),%eax
  add    $0x1,%eax
  movslq %eax,%rcx
  mov    -0xc4(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  add    %rcx,%rax
  mov    -0xb0(%rbp,%rax,4),%eax
  cmp    %eax,-0xec(%rbp)
  jne    L267
  mov    -0xcc(%rbp),%eax
  add    $0x2,%eax
  movslq %eax,%rcx
  mov    -0xc4(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  add    %rcx,%rax
  mov    -0xb0(%rbp,%rax,4),%eax
  cmp    %eax,-0xec(%rbp)
  jne    L267
  mov    -0xcc(%rbp),%eax
  sub    $0x1,%eax
  cmp    %eax,-0xf8(%rbp)
  je     L1868
  mov    -0xcc(%rbp),%eax
  add    $0x1,%eax
  cmp    %eax,-0xf8(%rbp)
  je     L1868
  mov    -0xcc(%rbp),%eax
  add    $0x2,%eax
  cmp    %eax,-0xf8(%rbp)
  jne    L267
L1868:
  cmpl   $0x0,-0xf0(%rbp)
  je     L2637
  mov    -0x108(%rbp),%rax
  mov    -0xc4(%rbp),%edx
  mov    %edx,(%rax)
  mov    -0xcc(%rbp),%eax
  jmp    L41
L2637:
  movl   $0x2,-0xf0(%rbp)
  mov    -0xec(%rbp),%eax
  neg    %eax
  mov    %eax,%ecx
  mov    -0xcc(%rbp),%eax
  movslq %eax,%rsi
  mov    -0xc4(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  add    %rsi,%rax
  mov    %ecx,-0xb0(%rbp,%rax,4)
  mov    -0xc4(%rbp),%eax
  mov    %eax,-0xc0(%rbp)
  mov    -0xcc(%rbp),%eax
  mov    %eax,-0xbc(%rbp)
L267:
  cmpl   $0x3,-0xcc(%rbp)
  jg     L1480
  mov    -0xcc(%rbp),%eax
  add    $0x1,%eax
  movslq %eax,%rcx
  mov    -0xc4(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  add    %rcx,%rax
  mov    -0xb0(%rbp,%rax,4),%eax
  cmp    %eax,-0xec(%rbp)
  jne    L1480
  mov    -0xcc(%rbp),%eax
  add    $0x2,%eax
  movslq %eax,%rcx
  mov    -0xc4(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  add    %rcx,%rax
  mov    -0xb0(%rbp,%rax,4),%eax
  cmp    %eax,-0xec(%rbp)
  jne    L1480
  mov    -0xcc(%rbp),%eax
  add    $0x3,%eax
  movslq %eax,%rcx
  mov    -0xc4(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  add    %rcx,%rax
  mov    -0xb0(%rbp,%rax,4),%eax
  cmp    %eax,-0xec(%rbp)
  jne    L1480
  mov    -0xcc(%rbp),%eax
  add    $0x1,%eax
  cmp    %eax,-0xf8(%rbp)
  je     L2191
  mov    -0xcc(%rbp),%eax
  add    $0x2,%eax
  cmp    %eax,-0xf8(%rbp)
  je     L2191
  mov    -0xcc(%rbp),%eax
  add    $0x3,%eax
  cmp    %eax,-0xf8(%rbp)
  jne    L1480
L2191:
  cmpl   $0x0,-0xf0(%rbp)
  je     L1526
  mov    -0x108(%rbp),%rax
  mov    -0xc4(%rbp),%edx
  mov    %edx,(%rax)
  mov    -0xcc(%rbp),%eax
  jmp    L41
L1526:
  movl   $0x2,-0xf0(%rbp)
  mov    -0xec(%rbp),%eax
  neg    %eax
  mov    %eax,%ecx
  mov    -0xcc(%rbp),%eax
  movslq %eax,%rsi
  mov    -0xc4(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  add    %rsi,%rax
  mov    %ecx,-0xb0(%rbp,%rax,4)
  mov    -0xc4(%rbp),%eax
  mov    %eax,-0xc0(%rbp)
  mov    -0xcc(%rbp),%eax
  mov    %eax,-0xbc(%rbp)
L1480:
  mov    -0xc4(%rbp),%eax
  sub    $0x1,%eax
  mov    %eax,-0xd4(%rbp)
  mov    -0xcc(%rbp),%eax
  sub    $0x1,%eax
  mov    %eax,-0xd0(%rbp)
  movl   $0x0,-0xd8(%rbp)
  movl   $0x0,-0xc8(%rbp)
  movl   $0x1,-0xdc(%rbp)
  jmp    L2502
L2398:
  mov    -0xd0(%rbp),%eax
  movslq %eax,%rcx
  mov    -0xd4(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  add    %rcx,%rax
  mov    -0xb0(%rbp,%rax,4),%eax
  cmp    %eax,-0xec(%rbp)
  je     L1688
  movl   $0x0,-0xdc(%rbp)
  jmp    L1360
L1688:
  mov    -0xd4(%rbp),%eax
  cmp    -0xf4(%rbp),%eax
  jne    L1019
  mov    -0xd0(%rbp),%eax
  cmp    -0xf8(%rbp),%eax
  jne    L1019
  movl   $0x1,-0xc8(%rbp)
L1019:
  addl   $0x1,-0xd8(%rbp)
L1360:
  cmpl   $0x3,-0xd8(%rbp)
  jne    L1350
  cmpl   $0x1,-0xc8(%rbp)
  jne    L1350
  cmpl   $0x0,-0xf0(%rbp)
  je     L1096
  mov    -0x108(%rbp),%rax
  mov    -0xc4(%rbp),%edx
  mov    %edx,(%rax)
  mov    -0xcc(%rbp),%eax
  jmp    L41
L1096:
  movl   $0x2,-0xf0(%rbp)
  mov    -0xec(%rbp),%eax
  neg    %eax
  mov    %eax,%ecx
  mov    -0xcc(%rbp),%eax
  movslq %eax,%rsi
  mov    -0xc4(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  add    %rsi,%rax
  mov    %ecx,-0xb0(%rbp,%rax,4)
  mov    -0xc4(%rbp),%eax
  mov    %eax,-0xc0(%rbp)
  mov    -0xcc(%rbp),%eax
  mov    %eax,-0xbc(%rbp)
  jmp    L1386
L1350:
  subl   $0x1,-0xd4(%rbp)
  subl   $0x1,-0xd0(%rbp)
L2502:
  cmpl   $0x0,-0xd4(%rbp)
  js     L1386
  cmpl   $0x0,-0xd0(%rbp)
  js     L1386
  cmpl   $0x1,-0xdc(%rbp)
  je     L2398
L1386:
  cmpl   $0x3,-0xd8(%rbp)
  je     L204
  mov    -0xc4(%rbp),%eax
  add    $0x1,%eax
  mov    %eax,-0xd4(%rbp)
  mov    -0xcc(%rbp),%eax
  add    $0x1,%eax
  mov    %eax,-0xd0(%rbp)
  movl   $0x1,-0xdc(%rbp)
  jmp    L1936
L2467:
  mov    -0xd0(%rbp),%eax
  movslq %eax,%rcx
  mov    -0xd4(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  add    %rcx,%rax
  mov    -0xb0(%rbp,%rax,4),%eax
  cmp    %eax,-0xec(%rbp)
  je     L1021
  movl   $0x0,-0xdc(%rbp)
  jmp    L1682
L1021:
  mov    -0xd4(%rbp),%eax
  cmp    -0xf4(%rbp),%eax
  jne    L1398
  mov    -0xd0(%rbp),%eax
  cmp    -0xf8(%rbp),%eax
  jne    L1398
  movl   $0x1,-0xc8(%rbp)
L1398:
  addl   $0x1,-0xd8(%rbp)
L1682:
  cmpl   $0x3,-0xd8(%rbp)
  jne    L162
  cmpl   $0x1,-0xc8(%rbp)
  jne    L162
  cmpl   $0x0,-0xf0(%rbp)
  je     L1545
  mov    -0x108(%rbp),%rax
  mov    -0xc4(%rbp),%edx
  mov    %edx,(%rax)
  mov    -0xcc(%rbp),%eax
  jmp    L41
L1545:
  movl   $0x2,-0xf0(%rbp)
  mov    -0xec(%rbp),%eax
  neg    %eax
  mov    %eax,%ecx
  mov    -0xcc(%rbp),%eax
  movslq %eax,%rsi
  mov    -0xc4(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  add    %rsi,%rax
  mov    %ecx,-0xb0(%rbp,%rax,4)
  mov    -0xc4(%rbp),%eax
  mov    %eax,-0xc0(%rbp)
  mov    -0xcc(%rbp),%eax
  mov    %eax,-0xbc(%rbp)
  jmp    L204
L162:
  addl   $0x1,-0xd4(%rbp)
  addl   $0x1,-0xd0(%rbp)
L1936:
  cmpl   $0x5,-0xd4(%rbp)
  jg     L204
  cmpl   $0x6,-0xd0(%rbp)
  jg     L204
  cmpl   $0x1,-0xdc(%rbp)
  je     L2467
L204:
  cmpl   $0x2,-0xf0(%rbp)
  je     L192
  mov    -0xc4(%rbp),%eax
  add    $0x1,%eax
  mov    %eax,-0xd4(%rbp)
  mov    -0xcc(%rbp),%eax
  sub    $0x1,%eax
  mov    %eax,-0xd0(%rbp)
  movl   $0x0,-0xd8(%rbp)
  movl   $0x0,-0xc8(%rbp)
  movl   $0x1,-0xdc(%rbp)
  jmp    L2247
L2235:
  mov    -0xd0(%rbp),%eax
  movslq %eax,%rcx
  mov    -0xd4(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  add    %rcx,%rax
  mov    -0xb0(%rbp,%rax,4),%eax
  cmp    %eax,-0xec(%rbp)
  je     L65
  movl   $0x0,-0xdc(%rbp)
  jmp    L1509
L65:
  mov    -0xd4(%rbp),%eax
  cmp    -0xf4(%rbp),%eax
  jne    L1589
  mov    -0xd0(%rbp),%eax
  cmp    -0xf8(%rbp),%eax
  jne    L1589
  movl   $0x1,-0xc8(%rbp)
L1589:
  addl   $0x1,-0xd8(%rbp)
L1509:
  cmpl   $0x3,-0xd8(%rbp)
  jne    L1151
  cmpl   $0x1,-0xc8(%rbp)
  jne    L1151
  cmpl   $0x0,-0xf0(%rbp)
  je     L1876
  mov    -0x108(%rbp),%rax
  mov    -0xc4(%rbp),%edx
  mov    %edx,(%rax)
  mov    -0xcc(%rbp),%eax
  jmp    L41
L1876:
  movl   $0x2,-0xf0(%rbp)
  mov    -0xec(%rbp),%eax
  neg    %eax
  mov    %eax,%ecx
  mov    -0xcc(%rbp),%eax
  movslq %eax,%rsi
  mov    -0xc4(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  add    %rsi,%rax
  mov    %ecx,-0xb0(%rbp,%rax,4)
  mov    -0xc4(%rbp),%eax
  mov    %eax,-0xc0(%rbp)
  mov    -0xcc(%rbp),%eax
  mov    %eax,-0xbc(%rbp)
  jmp    L1691
L1151:
  addl   $0x1,-0xd4(%rbp)
  subl   $0x1,-0xd0(%rbp)
L2247:
  cmpl   $0x5,-0xd4(%rbp)
  jg     L1691
  cmpl   $0x0,-0xd0(%rbp)
  js     L1691
  cmpl   $0x1,-0xdc(%rbp)
  je     L2235
L1691:
  cmpl   $0x3,-0xd8(%rbp)
  je     L192
  mov    -0xc4(%rbp),%eax
  sub    $0x1,%eax
  mov    %eax,-0xd4(%rbp)
  mov    -0xcc(%rbp),%eax
  add    $0x1,%eax
  mov    %eax,-0xd0(%rbp)
  movl   $0x1,-0xdc(%rbp)
  jmp    L1323
L2510:
  mov    -0xd0(%rbp),%eax
  movslq %eax,%rcx
  mov    -0xd4(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  add    %rcx,%rax
  mov    -0xb0(%rbp,%rax,4),%eax
  cmp    %eax,-0xec(%rbp)
  je     L1428
  movl   $0x0,-0xdc(%rbp)
  jmp    L1500
L1428:
  mov    -0xd4(%rbp),%eax
  cmp    -0xf4(%rbp),%eax
  jne    L757
  mov    -0xd0(%rbp),%eax
  cmp    -0xf8(%rbp),%eax
  jne    L757
  movl   $0x1,-0xc8(%rbp)
L757:
  addl   $0x1,-0xd8(%rbp)
L1500:
  cmpl   $0x3,-0xd8(%rbp)
  jne    L1965
  cmpl   $0x1,-0xc8(%rbp)
  jne    L1965
  cmpl   $0x0,-0xf0(%rbp)
  je     L357
  mov    -0x108(%rbp),%rax
  mov    -0xc4(%rbp),%edx
  mov    %edx,(%rax)
  mov    -0xcc(%rbp),%eax
  jmp    L41
L357:
  movl   $0x2,-0xf0(%rbp)
  mov    -0xec(%rbp),%eax
  neg    %eax
  mov    %eax,%ecx
  mov    -0xcc(%rbp),%eax
  movslq %eax,%rsi
  mov    -0xc4(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  add    %rsi,%rax
  mov    %ecx,-0xb0(%rbp,%rax,4)
  mov    -0xc4(%rbp),%eax
  mov    %eax,-0xc0(%rbp)
  mov    -0xcc(%rbp),%eax
  mov    %eax,-0xbc(%rbp)
  jmp    L192
L1965:
  subl   $0x1,-0xd4(%rbp)
  addl   $0x1,-0xd0(%rbp)
L1323:
  cmpl   $0x0,-0xd4(%rbp)
  js     L192
  cmpl   $0x6,-0xd0(%rbp)
  jg     L192
  cmpl   $0x1,-0xdc(%rbp)
  je     L2510
L192:
  cmpl   $0x0,-0xfc(%rbp)
  je     L212
L7:
  addl   $0x1,-0xc4(%rbp)
L377:
  cmpl   $0x5,-0xc4(%rbp)
  jle    L2314
  jmp    L1481
L212:
  nop
L1481:
  addl   $0x1,-0xcc(%rbp)
L438:
  cmpl   $0x6,-0xcc(%rbp)
  jle    L1937
  cmpl   $0x2,-0xf0(%rbp)
  jne    L272
  movl   $0x0,-0xc8(%rbp)
  movl   $0x0,-0xcc(%rbp)
  jmp    L1287
L1448:
  movl   $0x0,-0xc4(%rbp)
  jmp    L1197
L2538:
  mov    -0xcc(%rbp),%eax
  movslq %eax,%rcx
  mov    -0xc4(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  add    %rcx,%rax
  mov    -0xb0(%rbp,%rax,4),%eax
  test   %eax,%eax
  jne    L182
  cmpl   $0x2,-0xc4(%rbp)
  jle    L2378
  mov    -0xcc(%rbp),%eax
  cmp    -0xbc(%rbp),%eax
  jne    L2378
  mov    -0xc4(%rbp),%eax
  lea    -0x1(%rax),%edx
  mov    -0xcc(%rbp),%eax
  movslq %eax,%rcx
  movslq %edx,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  add    %rcx,%rax
  mov    -0xb0(%rbp,%rax,4),%eax
  cmp    %eax,-0xec(%rbp)
  jne    L2378
  mov    -0xc4(%rbp),%eax
  lea    -0x2(%rax),%edx
  mov    -0xcc(%rbp),%eax
  movslq %eax,%rcx
  movslq %edx,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  add    %rcx,%rax
  mov    -0xb0(%rbp,%rax,4),%eax
  cmp    %eax,-0xec(%rbp)
  jne    L2378
  mov    -0xc4(%rbp),%eax
  lea    -0x3(%rax),%edx
  mov    -0xcc(%rbp),%eax
  movslq %eax,%rcx
  movslq %edx,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  add    %rcx,%rax
  mov    -0xb0(%rbp,%rax,4),%eax
  cmp    %eax,-0xec(%rbp)
  jne    L2378
  mov    -0xc4(%rbp),%eax
  sub    $0x3,%eax
  cmp    %eax,-0xc0(%rbp)
  jl     L2378
  mov    -0xc4(%rbp),%eax
  cmp    -0xc0(%rbp),%eax
  jle    L2378
  cmpl   $0x0,-0xf0(%rbp)
  je     L2185
  mov    -0x108(%rbp),%rax
  mov    -0xc4(%rbp),%edx
  mov    %edx,(%rax)
  mov    -0xcc(%rbp),%eax
  jmp    L41
L2185:
  movl   $0x2,-0xf0(%rbp)
  mov    -0xec(%rbp),%eax
  neg    %eax
  mov    %eax,%ecx
  mov    -0xcc(%rbp),%eax
  movslq %eax,%rsi
  mov    -0xc4(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  add    %rsi,%rax
  mov    %ecx,-0xb0(%rbp,%rax,4)
L2378:
  mov    -0xc4(%rbp),%eax
  cmp    -0xc0(%rbp),%eax
  jne    L809
  cmpl   $0x2,-0xcc(%rbp)
  jle    L2828
  mov    -0xcc(%rbp),%eax
  sub    $0x1,%eax
  movslq %eax,%rcx
  mov    -0xc4(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  add    %rcx,%rax
  mov    -0xb0(%rbp,%rax,4),%eax
  cmp    %eax,-0xec(%rbp)
  jne    L2828
  mov    -0xcc(%rbp),%eax
  sub    $0x2,%eax
  movslq %eax,%rcx
  mov    -0xc4(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  add    %rcx,%rax
  mov    -0xb0(%rbp,%rax,4),%eax
  cmp    %eax,-0xec(%rbp)
  jne    L2828
  mov    -0xcc(%rbp),%eax
  sub    $0x3,%eax
  movslq %eax,%rcx
  mov    -0xc4(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  add    %rcx,%rax
  mov    -0xb0(%rbp,%rax,4),%eax
  cmp    %eax,-0xec(%rbp)
  jne    L2828
  mov    -0xcc(%rbp),%eax
  sub    $0x1,%eax
  cmp    %eax,-0xbc(%rbp)
  je     L451
  mov    -0xcc(%rbp),%eax
  sub    $0x2,%eax
  cmp    %eax,-0xbc(%rbp)
  je     L451
  mov    -0xcc(%rbp),%eax
  sub    $0x3,%eax
  cmp    %eax,-0xbc(%rbp)
  jne    L2828
L451:
  cmpl   $0x0,-0xf0(%rbp)
  je     L1382
  mov    -0x108(%rbp),%rax
  mov    -0xc4(%rbp),%edx
  mov    %edx,(%rax)
  mov    -0xcc(%rbp),%eax
  jmp    L41
L1382:
  movl   $0x2,-0xf0(%rbp)
  mov    -0xec(%rbp),%eax
  neg    %eax
  mov    %eax,%ecx
  mov    -0xcc(%rbp),%eax
  movslq %eax,%rsi
  mov    -0xc4(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  add    %rsi,%rax
  mov    %ecx,-0xb0(%rbp,%rax,4)
L2828:
  cmpl   $0x1,-0xcc(%rbp)
  jle    L2470
  cmpl   $0x5,-0xcc(%rbp)
  jg     L2470
  mov    -0xcc(%rbp),%eax
  sub    $0x1,%eax
  movslq %eax,%rcx
  mov    -0xc4(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  add    %rcx,%rax
  mov    -0xb0(%rbp,%rax,4),%eax
  cmp    %eax,-0xec(%rbp)
  jne    L2470
  mov    -0xcc(%rbp),%eax
  sub    $0x2,%eax
  movslq %eax,%rcx
  mov    -0xc4(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  add    %rcx,%rax
  mov    -0xb0(%rbp,%rax,4),%eax
  cmp    %eax,-0xec(%rbp)
  jne    L2470
  mov    -0xcc(%rbp),%eax
  add    $0x1,%eax
  movslq %eax,%rcx
  mov    -0xc4(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  add    %rcx,%rax
  mov    -0xb0(%rbp,%rax,4),%eax
  cmp    %eax,-0xec(%rbp)
  jne    L2470
  mov    -0xcc(%rbp),%eax
  sub    $0x1,%eax
  cmp    %eax,-0xbc(%rbp)
  je     L2195
  mov    -0xcc(%rbp),%eax
  sub    $0x2,%eax
  cmp    %eax,-0xbc(%rbp)
  je     L2195
  mov    -0xcc(%rbp),%eax
  add    $0x1,%eax
  cmp    %eax,-0xbc(%rbp)
  jne    L2470
L2195:
  cmpl   $0x0,-0xf0(%rbp)
  je     L989
  mov    -0x108(%rbp),%rax
  mov    -0xc4(%rbp),%edx
  mov    %edx,(%rax)
  mov    -0xcc(%rbp),%eax
  jmp    L41
L989:
  movl   $0x2,-0xf0(%rbp)
  mov    -0xec(%rbp),%eax
  neg    %eax
  mov    %eax,%ecx
  mov    -0xcc(%rbp),%eax
  movslq %eax,%rsi
  mov    -0xc4(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  add    %rsi,%rax
  mov    %ecx,-0xb0(%rbp,%rax,4)
L2470:
  cmpl   $0x0,-0xcc(%rbp)
  jle    L783
  cmpl   $0x4,-0xcc(%rbp)
  jg     L783
  mov    -0xcc(%rbp),%eax
  sub    $0x1,%eax
  movslq %eax,%rcx
  mov    -0xc4(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  add    %rcx,%rax
  mov    -0xb0(%rbp,%rax,4),%eax
  cmp    %eax,-0xec(%rbp)
  jne    L783
  mov    -0xcc(%rbp),%eax
  add    $0x1,%eax
  movslq %eax,%rcx
  mov    -0xc4(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  add    %rcx,%rax
  mov    -0xb0(%rbp,%rax,4),%eax
  cmp    %eax,-0xec(%rbp)
  jne    L783
  mov    -0xcc(%rbp),%eax
  add    $0x2,%eax
  movslq %eax,%rcx
  mov    -0xc4(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  add    %rcx,%rax
  mov    -0xb0(%rbp,%rax,4),%eax
  cmp    %eax,-0xec(%rbp)
  jne    L783
  mov    -0xcc(%rbp),%eax
  sub    $0x1,%eax
  cmp    %eax,-0xbc(%rbp)
  je     L1515
  mov    -0xcc(%rbp),%eax
  add    $0x1,%eax
  cmp    %eax,-0xbc(%rbp)
  je     L1515
  mov    -0xcc(%rbp),%eax
  add    $0x2,%eax
  cmp    %eax,-0xbc(%rbp)
  jne    L783
L1515:
  cmpl   $0x0,-0xf0(%rbp)
  je     L1217
  mov    -0x108(%rbp),%rax
  mov    -0xc4(%rbp),%edx
  mov    %edx,(%rax)
  mov    -0xcc(%rbp),%eax
  jmp    L41
L1217:
  movl   $0x2,-0xf0(%rbp)
  mov    -0xec(%rbp),%eax
  neg    %eax
  mov    %eax,%ecx
  mov    -0xcc(%rbp),%eax
  movslq %eax,%rsi
  mov    -0xc4(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  add    %rsi,%rax
  mov    %ecx,-0xb0(%rbp,%rax,4)
L783:
  cmpl   $0x3,-0xcc(%rbp)
  jg     L809
  mov    -0xcc(%rbp),%eax
  add    $0x1,%eax
  movslq %eax,%rcx
  mov    -0xc4(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  add    %rcx,%rax
  mov    -0xb0(%rbp,%rax,4),%eax
  cmp    %eax,-0xec(%rbp)
  jne    L809
  mov    -0xcc(%rbp),%eax
  add    $0x2,%eax
  movslq %eax,%rcx
  mov    -0xc4(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  add    %rcx,%rax
  mov    -0xb0(%rbp,%rax,4),%eax
  cmp    %eax,-0xec(%rbp)
  jne    L809
  mov    -0xcc(%rbp),%eax
  add    $0x3,%eax
  movslq %eax,%rcx
  mov    -0xc4(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  add    %rcx,%rax
  mov    -0xb0(%rbp,%rax,4),%eax
  cmp    %eax,-0xec(%rbp)
  jne    L809
  mov    -0xcc(%rbp),%eax
  add    $0x1,%eax
  cmp    %eax,-0xbc(%rbp)
  je     L457
  mov    -0xcc(%rbp),%eax
  add    $0x2,%eax
  cmp    %eax,-0xbc(%rbp)
  je     L457
  mov    -0xcc(%rbp),%eax
  add    $0x3,%eax
  cmp    %eax,-0xbc(%rbp)
  jne    L809
L457:
  cmpl   $0x0,-0xf0(%rbp)
  je     L1641
  mov    -0x108(%rbp),%rax
  mov    -0xc4(%rbp),%edx
  mov    %edx,(%rax)
  mov    -0xcc(%rbp),%eax
  jmp    L41
L1641:
  movl   $0x2,-0xf0(%rbp)
  mov    -0xec(%rbp),%eax
  neg    %eax
  mov    %eax,%ecx
  mov    -0xcc(%rbp),%eax
  movslq %eax,%rsi
  mov    -0xc4(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  add    %rsi,%rax
  mov    %ecx,-0xb0(%rbp,%rax,4)
L809:
  mov    -0xc4(%rbp),%eax
  sub    $0x1,%eax
  mov    %eax,-0xd4(%rbp)
  mov    -0xcc(%rbp),%eax
  sub    $0x1,%eax
  mov    %eax,-0xd0(%rbp)
  movl   $0x0,-0xd8(%rbp)
  movl   $0x0,-0xc8(%rbp)
  movl   $0x1,-0xdc(%rbp)
  jmp    L2668
L1305:
  mov    -0xd0(%rbp),%eax
  movslq %eax,%rcx
  mov    -0xd4(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  add    %rcx,%rax
  mov    -0xb0(%rbp,%rax,4),%eax
  cmp    %eax,-0xec(%rbp)
  je     L962
  movl   $0x0,-0xdc(%rbp)
  jmp    L2649
L962:
  mov    -0xd4(%rbp),%eax
  cmp    -0xc0(%rbp),%eax
  jne    L1958
  mov    -0xd0(%rbp),%eax
  cmp    -0xbc(%rbp),%eax
  jne    L1958
  movl   $0x1,-0xc8(%rbp)
L1958:
  addl   $0x1,-0xd8(%rbp)
L2649:
  cmpl   $0x3,-0xd8(%rbp)
  jne    L1914
  cmpl   $0x1,-0xc8(%rbp)
  jne    L1914
  cmpl   $0x0,-0xf0(%rbp)
  je     L903
  mov    -0x108(%rbp),%rax
  mov    -0xc4(%rbp),%edx
  mov    %edx,(%rax)
  mov    -0xcc(%rbp),%eax
  jmp    L41
L903:
  movl   $0x2,-0xf0(%rbp)
  mov    -0xec(%rbp),%eax
  neg    %eax
  mov    %eax,%ecx
  mov    -0xcc(%rbp),%eax
  movslq %eax,%rsi
  mov    -0xc4(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  add    %rsi,%rax
  mov    %ecx,-0xb0(%rbp,%rax,4)
  jmp    L944
L1914:
  subl   $0x1,-0xd4(%rbp)
  subl   $0x1,-0xd0(%rbp)
L2668:
  cmpl   $0x0,-0xd4(%rbp)
  js     L944
  cmpl   $0x0,-0xd0(%rbp)
  js     L944
  cmpl   $0x1,-0xdc(%rbp)
  je     L1305
L944:
  cmpl   $0x3,-0xd8(%rbp)
  je     L2424
  mov    -0xc4(%rbp),%eax
  add    $0x1,%eax
  mov    %eax,-0xd4(%rbp)
  mov    -0xcc(%rbp),%eax
  add    $0x1,%eax
  mov    %eax,-0xd0(%rbp)
  movl   $0x1,-0xdc(%rbp)
  jmp    L571
L2764:
  mov    -0xd0(%rbp),%eax
  movslq %eax,%rcx
  mov    -0xd4(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  add    %rcx,%rax
  mov    -0xb0(%rbp,%rax,4),%eax
  cmp    %eax,-0xec(%rbp)
  je     L889
  movl   $0x0,-0xdc(%rbp)
  jmp    L1283
L889:
  mov    -0xd4(%rbp),%eax
  cmp    -0xc0(%rbp),%eax
  jne    L821
  mov    -0xd0(%rbp),%eax
  cmp    -0xbc(%rbp),%eax
  jne    L821
  movl   $0x1,-0xc8(%rbp)
L821:
  addl   $0x1,-0xd8(%rbp)
L1283:
  cmpl   $0x3,-0xd8(%rbp)
  jne    L1136
  cmpl   $0x1,-0xc8(%rbp)
  jne    L1136
  cmpl   $0x0,-0xf0(%rbp)
  je     L727
  mov    -0x108(%rbp),%rax
  mov    -0xc4(%rbp),%edx
  mov    %edx,(%rax)
  mov    -0xcc(%rbp),%eax
  jmp    L41
L727:
  movl   $0x2,-0xf0(%rbp)
  mov    -0xec(%rbp),%eax
  neg    %eax
  mov    %eax,%ecx
  mov    -0xcc(%rbp),%eax
  movslq %eax,%rsi
  mov    -0xc4(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  add    %rsi,%rax
  mov    %ecx,-0xb0(%rbp,%rax,4)
  jmp    L2424
L1136:
  addl   $0x1,-0xd4(%rbp)
  addl   $0x1,-0xd0(%rbp)
L571:
  cmpl   $0x5,-0xd4(%rbp)
  jg     L2424
  cmpl   $0x6,-0xd0(%rbp)
  jg     L2424
  cmpl   $0x1,-0xdc(%rbp)
  je     L2764
L2424:
  cmpl   $0x2,-0xf0(%rbp)
  je     L1796
  mov    -0xc4(%rbp),%eax
  add    $0x1,%eax
  mov    %eax,-0xd4(%rbp)
  mov    -0xcc(%rbp),%eax
  sub    $0x1,%eax
  mov    %eax,-0xd0(%rbp)
  movl   $0x0,-0xd8(%rbp)
  movl   $0x0,-0xc8(%rbp)
  movl   $0x1,-0xdc(%rbp)
  jmp    L1156
L277:
  mov    -0xd0(%rbp),%eax
  movslq %eax,%rcx
  mov    -0xd4(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  add    %rcx,%rax
  mov    -0xb0(%rbp,%rax,4),%eax
  cmp    %eax,-0xec(%rbp)
  je     L1233
  movl   $0x0,-0xdc(%rbp)
  jmp    L1282
L1233:
  mov    -0xd4(%rbp),%eax
  cmp    -0xc0(%rbp),%eax
  jne    L2511
  mov    -0xd0(%rbp),%eax
  cmp    -0xbc(%rbp),%eax
  jne    L2511
  movl   $0x1,-0xc8(%rbp)
L2511:
  addl   $0x1,-0xd8(%rbp)
L1282:
  cmpl   $0x3,-0xd8(%rbp)
  jne    L436
  cmpl   $0x1,-0xc8(%rbp)
  jne    L436
  cmpl   $0x0,-0xf0(%rbp)
  je     L1177
  mov    -0x108(%rbp),%rax
  mov    -0xc4(%rbp),%edx
  mov    %edx,(%rax)
  mov    -0xcc(%rbp),%eax
  jmp    L41
L1177:
  movl   $0x2,-0xf0(%rbp)
  mov    -0xec(%rbp),%eax
  neg    %eax
  mov    %eax,%ecx
  mov    -0xcc(%rbp),%eax
  movslq %eax,%rsi
  mov    -0xc4(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  add    %rsi,%rax
  mov    %ecx,-0xb0(%rbp,%rax,4)
  jmp    L2439
L436:
  addl   $0x1,-0xd4(%rbp)
  subl   $0x1,-0xd0(%rbp)
L1156:
  cmpl   $0x5,-0xd4(%rbp)
  jg     L2439
  cmpl   $0x0,-0xd0(%rbp)
  js     L2439
  cmpl   $0x1,-0xdc(%rbp)
  je     L277
L2439:
  cmpl   $0x3,-0xd8(%rbp)
  je     L1796
  mov    -0xc4(%rbp),%eax
  sub    $0x1,%eax
  mov    %eax,-0xd4(%rbp)
  mov    -0xcc(%rbp),%eax
  add    $0x1,%eax
  mov    %eax,-0xd0(%rbp)
  movl   $0x1,-0xdc(%rbp)
  jmp    L375
L2612:
  mov    -0xd0(%rbp),%eax
  movslq %eax,%rcx
  mov    -0xd4(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  add    %rcx,%rax
  mov    -0xb0(%rbp,%rax,4),%eax
  cmp    %eax,-0xec(%rbp)
  je     L2217
  movl   $0x0,-0xdc(%rbp)
  jmp    L558
L2217:
  mov    -0xd4(%rbp),%eax
  cmp    -0xc0(%rbp),%eax
  jne    L1104
  mov    -0xd0(%rbp),%eax
  cmp    -0xbc(%rbp),%eax
  jne    L1104
  movl   $0x1,-0xc8(%rbp)
L1104:
  addl   $0x1,-0xd8(%rbp)
L558:
  cmpl   $0x3,-0xd8(%rbp)
  jne    L2399
  cmpl   $0x1,-0xc8(%rbp)
  jne    L2399
  cmpl   $0x0,-0xf0(%rbp)
  je     L307
  mov    -0x108(%rbp),%rax
  mov    -0xc4(%rbp),%edx
  mov    %edx,(%rax)
  mov    -0xcc(%rbp),%eax
  jmp    L41
L307:
  movl   $0x2,-0xf0(%rbp)
  mov    -0xec(%rbp),%eax
  neg    %eax
  mov    %eax,%ecx
  mov    -0xcc(%rbp),%eax
  movslq %eax,%rsi
  mov    -0xc4(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  add    %rsi,%rax
  mov    %ecx,-0xb0(%rbp,%rax,4)
  jmp    L1796
L2399:
  subl   $0x1,-0xd4(%rbp)
  addl   $0x1,-0xd0(%rbp)
L375:
  cmpl   $0x0,-0xd4(%rbp)
  js     L1796
  cmpl   $0x6,-0xd0(%rbp)
  jg     L1796
  cmpl   $0x1,-0xdc(%rbp)
  je     L2612
L1796:
  cmpl   $0x0,-0xfc(%rbp)
  je     L679
L182:
  addl   $0x1,-0xc4(%rbp)
L1197:
  cmpl   $0x5,-0xc4(%rbp)
  jle    L2538
  jmp    L2106
L679:
  nop
L2106:
  addl   $0x1,-0xcc(%rbp)
L1287:
  cmpl   $0x6,-0xcc(%rbp)
  jle    L1448
  movl   $0x0,-0xcc(%rbp)
  jmp    L1188
L2404:
  movl   $0x0,-0xc4(%rbp)
  jmp    L2863
L1588:
  mov    -0xcc(%rbp),%eax
  movslq %eax,%rcx
  mov    -0xc4(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  add    %rcx,%rax
  mov    -0xb0(%rbp,%rax,4),%eax
  test   %eax,%eax
  jne    L1990
  cmpl   $0x2,-0xc4(%rbp)
  jle    L2797
  mov    -0xc4(%rbp),%eax
  lea    -0x1(%rax),%edx
  mov    -0xcc(%rbp),%eax
  movslq %eax,%rcx
  movslq %edx,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  add    %rcx,%rax
  mov    -0xb0(%rbp,%rax,4),%eax
  cmp    %eax,-0xec(%rbp)
  jne    L2797
  mov    -0xc4(%rbp),%eax
  lea    -0x2(%rax),%edx
  mov    -0xcc(%rbp),%eax
  movslq %eax,%rcx
  movslq %edx,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  add    %rcx,%rax
  mov    -0xb0(%rbp,%rax,4),%eax
  cmp    %eax,-0xec(%rbp)
  jne    L2797
  mov    -0xc4(%rbp),%eax
  lea    -0x3(%rax),%edx
  mov    -0xcc(%rbp),%eax
  movslq %eax,%rcx
  movslq %edx,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  add    %rcx,%rax
  mov    -0xb0(%rbp,%rax,4),%eax
  cmp    %eax,-0xec(%rbp)
  jne    L2797
  mov    -0x108(%rbp),%rax
  mov    -0xc4(%rbp),%edx
  mov    %edx,(%rax)
  mov    -0xcc(%rbp),%eax
  jmp    L41
L2797:
  cmpl   $0x2,-0xcc(%rbp)
  jle    L803
  mov    -0xcc(%rbp),%eax
  sub    $0x1,%eax
  movslq %eax,%rcx
  mov    -0xc4(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  add    %rcx,%rax
  mov    -0xb0(%rbp,%rax,4),%eax
  cmp    %eax,-0xec(%rbp)
  jne    L803
  mov    -0xcc(%rbp),%eax
  sub    $0x2,%eax
  movslq %eax,%rcx
  mov    -0xc4(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  add    %rcx,%rax
  mov    -0xb0(%rbp,%rax,4),%eax
  cmp    %eax,-0xec(%rbp)
  jne    L803
  mov    -0xcc(%rbp),%eax
  sub    $0x3,%eax
  movslq %eax,%rcx
  mov    -0xc4(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  add    %rcx,%rax
  mov    -0xb0(%rbp,%rax,4),%eax
  cmp    %eax,-0xec(%rbp)
  jne    L803
  mov    -0x108(%rbp),%rax
  mov    -0xc4(%rbp),%edx
  mov    %edx,(%rax)
  mov    -0xcc(%rbp),%eax
  jmp    L41
L803:
  cmpl   $0x1,-0xcc(%rbp)
  jle    L1921
  cmpl   $0x5,-0xcc(%rbp)
  jg     L1921
  mov    -0xcc(%rbp),%eax
  sub    $0x1,%eax
  movslq %eax,%rcx
  mov    -0xc4(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  add    %rcx,%rax
  mov    -0xb0(%rbp,%rax,4),%eax
  cmp    %eax,-0xec(%rbp)
  jne    L1921
  mov    -0xcc(%rbp),%eax
  sub    $0x2,%eax
  movslq %eax,%rcx
  mov    -0xc4(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  add    %rcx,%rax
  mov    -0xb0(%rbp,%rax,4),%eax
  cmp    %eax,-0xec(%rbp)
  jne    L1921
  mov    -0xcc(%rbp),%eax
  add    $0x1,%eax
  movslq %eax,%rcx
  mov    -0xc4(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  add    %rcx,%rax
  mov    -0xb0(%rbp,%rax,4),%eax
  cmp    %eax,-0xec(%rbp)
  jne    L1921
  mov    -0x108(%rbp),%rax
  mov    -0xc4(%rbp),%edx
  mov    %edx,(%rax)
  mov    -0xcc(%rbp),%eax
  jmp    L41
L1921:
  cmpl   $0x0,-0xcc(%rbp)
  jle    L1394
  cmpl   $0x4,-0xcc(%rbp)
  jg     L1394
  mov    -0xcc(%rbp),%eax
  sub    $0x1,%eax
  movslq %eax,%rcx
  mov    -0xc4(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  add    %rcx,%rax
  mov    -0xb0(%rbp,%rax,4),%eax
  cmp    %eax,-0xec(%rbp)
  jne    L1394
  mov    -0xcc(%rbp),%eax
  add    $0x1,%eax
  movslq %eax,%rcx
  mov    -0xc4(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  add    %rcx,%rax
  mov    -0xb0(%rbp,%rax,4),%eax
  cmp    %eax,-0xec(%rbp)
  jne    L1394
  mov    -0xcc(%rbp),%eax
  add    $0x2,%eax
  movslq %eax,%rcx
  mov    -0xc4(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  add    %rcx,%rax
  mov    -0xb0(%rbp,%rax,4),%eax
  cmp    %eax,-0xec(%rbp)
  jne    L1394
  mov    -0x108(%rbp),%rax
  mov    -0xc4(%rbp),%edx
  mov    %edx,(%rax)
  mov    -0xcc(%rbp),%eax
  jmp    L41
L1394:
  cmpl   $0x3,-0xcc(%rbp)
  jg     L2437
  mov    -0xcc(%rbp),%eax
  add    $0x1,%eax
  movslq %eax,%rcx
  mov    -0xc4(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  add    %rcx,%rax
  mov    -0xb0(%rbp,%rax,4),%eax
  cmp    %eax,-0xec(%rbp)
  jne    L2437
  mov    -0xcc(%rbp),%eax
  add    $0x2,%eax
  movslq %eax,%rcx
  mov    -0xc4(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  add    %rcx,%rax
  mov    -0xb0(%rbp,%rax,4),%eax
  cmp    %eax,-0xec(%rbp)
  jne    L2437
  mov    -0xcc(%rbp),%eax
  add    $0x3,%eax
  movslq %eax,%rcx
  mov    -0xc4(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  add    %rcx,%rax
  mov    -0xb0(%rbp,%rax,4),%eax
  cmp    %eax,-0xec(%rbp)
  jne    L2437
  mov    -0x108(%rbp),%rax
  mov    -0xc4(%rbp),%edx
  mov    %edx,(%rax)
  mov    -0xcc(%rbp),%eax
  jmp    L41
L2437:
  mov    -0xc4(%rbp),%eax
  sub    $0x1,%eax
  mov    %eax,-0xd4(%rbp)
  mov    -0xcc(%rbp),%eax
  sub    $0x1,%eax
  mov    %eax,-0xd0(%rbp)
  movl   $0x0,-0xd8(%rbp)
  movl   $0x1,-0xdc(%rbp)
  jmp    L1185
L179:
  mov    -0xd0(%rbp),%eax
  movslq %eax,%rcx
  mov    -0xd4(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  add    %rcx,%rax
  mov    -0xb0(%rbp,%rax,4),%eax
  cmp    %eax,-0xec(%rbp)
  je     L353
  movl   $0x0,-0xdc(%rbp)
  jmp    L165
L353:
  addl   $0x1,-0xd8(%rbp)
L165:
  cmpl   $0x3,-0xd8(%rbp)
  jne    L2180
  mov    -0x108(%rbp),%rax
  mov    -0xc4(%rbp),%edx
  mov    %edx,(%rax)
  mov    -0xcc(%rbp),%eax
  jmp    L41
L2180:
  subl   $0x1,-0xd4(%rbp)
  subl   $0x1,-0xd0(%rbp)
L1185:
  cmpl   $0x0,-0xd4(%rbp)
  js     L1887
  cmpl   $0x0,-0xd0(%rbp)
  js     L1887
  cmpl   $0x1,-0xdc(%rbp)
  je     L179
L1887:
  mov    -0xc4(%rbp),%eax
  add    $0x1,%eax
  mov    %eax,-0xd4(%rbp)
  mov    -0xcc(%rbp),%eax
  add    $0x1,%eax
  mov    %eax,-0xd0(%rbp)
  movl   $0x1,-0xdc(%rbp)
  jmp    L1575
L713:
  mov    -0xd0(%rbp),%eax
  movslq %eax,%rcx
  mov    -0xd4(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  add    %rcx,%rax
  mov    -0xb0(%rbp,%rax,4),%eax
  cmp    %eax,-0xec(%rbp)
  je     L218
  movl   $0x0,-0xdc(%rbp)
  jmp    L2702
L218:
  addl   $0x1,-0xd8(%rbp)
L2702:
  cmpl   $0x3,-0xd8(%rbp)
  jne    L2420
  mov    -0x108(%rbp),%rax
  mov    -0xc4(%rbp),%edx
  mov    %edx,(%rax)
  mov    -0xcc(%rbp),%eax
  jmp    L41
L2420:
  addl   $0x1,-0xd4(%rbp)
  addl   $0x1,-0xd0(%rbp)
L1575:
  cmpl   $0x5,-0xd4(%rbp)
  jg     L2548
  cmpl   $0x6,-0xd0(%rbp)
  jg     L2548
  cmpl   $0x1,-0xdc(%rbp)
  je     L713
L2548:
  mov    -0xc4(%rbp),%eax
  add    $0x1,%eax
  mov    %eax,-0xd4(%rbp)
  mov    -0xcc(%rbp),%eax
  sub    $0x1,%eax
  mov    %eax,-0xd0(%rbp)
  movl   $0x0,-0xd8(%rbp)
  movl   $0x1,-0xdc(%rbp)
  jmp    L347
L1882:
  mov    -0xd0(%rbp),%eax
  movslq %eax,%rcx
  mov    -0xd4(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  add    %rcx,%rax
  mov    -0xb0(%rbp,%rax,4),%eax
  cmp    %eax,-0xec(%rbp)
  je     L1878
  movl   $0x0,-0xdc(%rbp)
  jmp    L2418
L1878:
  addl   $0x1,-0xd8(%rbp)
L2418:
  cmpl   $0x3,-0xd8(%rbp)
  jne    L810
  mov    -0x108(%rbp),%rax
  mov    -0xc4(%rbp),%edx
  mov    %edx,(%rax)
  mov    -0xcc(%rbp),%eax
  jmp    L41
L810:
  addl   $0x1,-0xd4(%rbp)
  subl   $0x1,-0xd0(%rbp)
L347:
  cmpl   $0x5,-0xd4(%rbp)
  jg     L2136
  cmpl   $0x0,-0xd0(%rbp)
  js     L2136
  cmpl   $0x1,-0xdc(%rbp)
  je     L1882
L2136:
  mov    -0xc4(%rbp),%eax
  sub    $0x1,%eax
  mov    %eax,-0xd4(%rbp)
  mov    -0xcc(%rbp),%eax
  add    $0x1,%eax
  mov    %eax,-0xd0(%rbp)
  movl   $0x1,-0xdc(%rbp)
  jmp    L2229
L2896:
  mov    -0xd0(%rbp),%eax
  movslq %eax,%rcx
  mov    -0xd4(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  add    %rcx,%rax
  mov    -0xb0(%rbp,%rax,4),%eax
  cmp    %eax,-0xec(%rbp)
  je     L2219
  movl   $0x0,-0xdc(%rbp)
  jmp    L2651
L2219:
  addl   $0x1,-0xd8(%rbp)
L2651:
  cmpl   $0x3,-0xd8(%rbp)
  jne    L2783
  mov    -0x108(%rbp),%rax
  mov    -0xc4(%rbp),%edx
  mov    %edx,(%rax)
  mov    -0xcc(%rbp),%eax
  jmp    L41
L2783:
  subl   $0x1,-0xd4(%rbp)
  addl   $0x1,-0xd0(%rbp)
L2229:
  cmpl   $0x0,-0xd4(%rbp)
  js     L2829
  cmpl   $0x6,-0xd0(%rbp)
  jg     L2829
  cmpl   $0x1,-0xdc(%rbp)
  je     L2896
  jmp    L2829
L1990:
  addl   $0x1,-0xc4(%rbp)
L2863:
  cmpl   $0x5,-0xc4(%rbp)
  jle    L1588
  jmp    L305
L2829:
  nop
L305:
  addl   $0x1,-0xcc(%rbp)
L1188:
  cmpl   $0x6,-0xcc(%rbp)
  jle    L2404
L272:
  mov    $0xffffffff,%eax
L41:
  mov    -0x8(%rbp),%rdx
  sub    %fs:0x28,%rdx
  je     L492
  call   <__stack_chk_fail@plt>
L492:
  leave
  ret
```

assistant: ```c
int fin42f(int grid1[6][7], int move, int fin, int row, int col, int fut, int *r) {
  int f, c, x, y, i, v, j, row1, col1;
  int grid[6][7], i1, j1;
  for (i1 = 0; i1 < 6; i1++)
    for (j1 = 0; j1 < 7; j1++) {
      grid[i1][j1] = grid1[i1][j1];
    }
  if (col != -1)
    grid[row][col] = move;
  for (i = 0; i < 7; i++) {
    for (j = 0; j < 6; j++) {
      if (grid[j][i] == 0) {
        if (j >= 3 && i == col)
          if ((grid[j - 1][i] == move) && (grid[j - 2][i] == move) && (grid[j - 3][i] == move) && ((row >= j - 3) && (row <= j - 1)))
            if (fin) {
              *r = j;
              return i;
            } else {
              fin = 2;
              grid[j][i] = -move;
              row1 = j;
              col1 = i;
            }
        if (j == row) {
          if (i >= 3)
            if ((grid[j][i - 1] == move) && (grid[j][i - 2] == move) && (grid[j][i - 3] == move) && (((i - 1) == col) || ((i - 2) == col) || ((i - 3) == col)))
              if (fin) {
                *r = j;
                return i;
              } else {
                fin = 2;
                grid[j][i] = -move;
                row1 = j;
                col1 = i;
              }
          if (i >= 2 && i <= 5)
            if ((grid[j][i - 1] == move) && (grid[j][i - 2] == move) && (grid[j][i + 1] == move) && (((i - 1) == col) || ((i - 2) == col) || ((i + 1) == col)))
              if (fin) {
                *r = j;
                return i;
              } else {
                fin = 2;
                grid[j][i] = -move;
                row1 = j;
                col1 = i;
              }
          if (i >= 1 && i <= 4)
            if ((grid[j][i - 1] == move) && (grid[j][i + 1] == move) && (grid[j][i + 2] == move) && (((i - 1) == col) || ((i + 1) == col) || ((i + 2) == col)))
              if (fin) {
                *r = j;
                return i;
              } else {
                fin = 2;
                grid[j][i] = -move;
                row1 = j;
                col1 = i;
              }
          if (i <= 3)
            if ((grid[j][i + 1] == move) && (grid[j][i + 2] == move) && (grid[j][i + 3] == move) && (((i + 1) == col) || ((i + 2) == col) || ((i + 3) == col)))
              if (fin) {
                *r = j;
                return i;
              } else {
                fin = 2;
                grid[j][i] = -move;
                row1 = j;
                col1 = i;
              }
        }
        for (x = j - 1, y = i - 1, c = 0, v = 0, f = 1; x >= 0 && y >= 0 && f == 1; x = x - 1, y = y - 1) {
          if (grid[x][y] != move)
            f = 0;
          else {
            if (x == row && y == col)
              v = 1;
            c++;
          }
          if (c == 3 && v == 1)
            if (fin) {
              *r = j;
              return i;
            } else {
              fin = 2;
              grid[j][i] = -move;
              row1 = j;
              col1 = i;
              break;
            }
        }
        if (c != 3)
          for (x = j + 1, y = i + 1, f = 1; x <= 5 && y <= 6 && f == 1; x = x + 1, y = y + 1) {
            if (grid[x][y] != move)
              f = 0;
            else {
              if (x == row && y == col)
                v = 1;
              c++;
            }
            if (c == 3 && v == 1)
              if (fin) {
                *r = j;
                return i;
              } else {
                fin = 2;
                grid[j][i] = -move;
                row1 = j;
                col1 = i;
                break;
              }
          }
        if (fin != 2) {
          for (x = j + 1, y = i - 1, c = 0, v = 0, f = 1; x <= 5 && y >= 0 && f == 1; x = x + 1, y = y - 1) {
            if (grid[x][y] != move)
              f = 0;
            else {
              if (x == row && y == col)
                v = 1;
              c++;
            }
            if (c == 3 && v == 1)
              if (fin) {
                *r = j;
                return i;
              } else {
                fin = 2;
                grid[j][i] = -move;
                row1 = j;
                col1 = i;
                break;
              }
          }
          if (c != 3)
            for (x = j - 1, y = i + 1, f = 1; x >= 0 && y <= 6 && f == 1; x = x - 1, y = y + 1) {
              if (grid[x][y] != move)
                f = 0;
              else {
                if (x == row && y == col)
                  v = 1;
                c++;
              }
              if (c == 3 && v == 1)
                if (fin) {
                  *r = j;
                  return i;
                } else {
                  fin = 2;
                  grid[j][i] = -move;
                  row1 = j;
                  col1 = i;
                  break;
                }
            }
        }
        if (!fut)
          break;
      }
    }
  }
  if (fin == 2) {
    v = 0;
    for (i = 0; i < 7; i++) {
      for (j = 0; j < 6; j++) {
        if (grid[j][i] == 0) {
          if (j >= 3 && i == col1)
            if ((grid[j - 1][i] == move) && (grid[j - 2][i] == move) && (grid[j - 3][i] == move) && ((row1 >= j - 3) && (row1 <= j - 1)))
              if (fin) {
                *r = j;
                return i;
              } else {
                fin = 2;
                grid[j][i] = -move;
              }
          if (j == row1) {
            if (i >= 3)
              if ((grid[j][i - 1] == move) && (grid[j][i - 2] == move) && (grid[j][i - 3] == move) && (((i - 1) == col1) || ((i - 2) == col1) || ((i - 3) == col1)))
                if (fin) {
                  *r = j;
                  return i;
                } else {
                  fin = 2;
                  grid[j][i] = -move;
                }
            if (i >= 2 && i <= 5)
              if ((grid[j][i - 1] == move) && (grid[j][i - 2] == move) && (grid[j][i + 1] == move) && (((i - 1) == col1) || ((i - 2) == col1) || ((i + 1) == col1)))
                if (fin) {
                  *r = j;
                  return i;
                } else {
                  fin = 2;
                  grid[j][i] = -move;
                }
            if (i >= 1 && i <= 4)
              if ((grid[j][i - 1] == move) && (grid[j][i + 1] == move) && (grid[j][i + 2] == move) && (((i - 1) == col1) || ((i + 1) == col1) || ((i + 2) == col1)))
                if (fin) {
                  *r = j;
                  return i;
                } else {
                  fin = 2;
                  grid[j][i] = -move;
                }
            if (i <= 3)
              if ((grid[j][i + 1] == move) && (grid[j][i + 2] == move) && (grid[j][i + 3] == move) && (((i + 1) == col1) || ((i + 2) == col1) || ((i + 3) == col1)))
                if (fin) {
                  *r = j;
                  return i;
                } else {
                  fin = 2;
                  grid[j][i] = -move;
                }
          }
          for (x = j - 1, y = i - 1, c = 0, v = 0, f = 1; x >= 0 && y >= 0 && f == 1; x = x - 1, y = y - 1) {
            if (grid[x][y] != move)
              f = 0;
            else {
              if (x == row1 && y == col1)
                v = 1;
              c++;
            }
            if (c == 3 && v == 1)
              if (fin) {
                *r = j;
                return i;
              } else {
                fin = 2;
                grid[j][i] = -move;
                break;
              }
          }
          if (c != 3)
            for (x = j + 1, y = i + 1, f = 1; x <= 5 && y <= 6 && f == 1; x = x + 1, y = y + 1) {
              if (grid[x][y] != move)
                f = 0;
              else {
                if (x == row1 && y == col1)
                  v = 1;
                c++;
              }
              if (c == 3 && v == 1)
                if (fin) {
                  *r = j;
                  return i;
                } else {
                  fin = 2;
                  grid[j][i] = -move;
                  break;
                }
            }
          if (fin != 2) {
            for (x = j + 1, y = i - 1, c = 0, v = 0, f = 1; x <= 5 && y >= 0 && f == 1; x = x + 1, y = y - 1) {
              if (grid[x][y] != move)
                f = 0;
              else {
                if (x == row1 && y == col1)
                  v = 1;
                c++;
              }
              if (c == 3 && v == 1)
                if (fin) {
                  *r = j;
                  return i;
                } else {
                  fin = 2;
                  grid[j][i] = -move;
                  break;
                }
            }
            if (c != 3)
              for (x = j - 1, y = i + 1, f = 1; x >= 0 && y <= 6 && f == 1; x = x - 1, y = y + 1) {
                if (grid[x][y] != move)
                  f = 0;
                else {
                  if (x == row1 && y == col1)
                    v = 1;
                  c++;
                }
                if (c == 3 && v == 1)
                  if (fin) {
                    *r = j;
                    return i;
                  } else {
                    fin = 2;
                    grid[j][i] = -move;
                    break;
                  }
              }
          }
          if (!fut)
            break;
        }
      }
    }
    for (i = 0; i < 7; i++) {
      for (j = 0; j < 6; j++) {
        if (grid[j][i] == 0) {
          if (j >= 3)
            if ((grid[j - 1][i] == move) && (grid[j - 2][i] == move) && (grid[j - 3][i] == move)) {
              *r = j;
              return i;
            }
          if (i >= 3)
            if ((grid[j][i - 1] == move) && (grid[j][i - 2] == move) && (grid[j][i - 3] == move)) {
              *r = j;
              return i;
            }
          if (i >= 2 && i <= 5)
            if ((grid[j][i - 1] == move) && (grid[j][i - 2] == move) && (grid[j][i + 1] == move)) {
              *r = j;
              return i;
            }
          if (i >= 1 && i <= 4)
            if ((grid[j][i - 1] == move) && (grid[j][i + 1] == move) && (grid[j][i + 2] == move)) {
              *r = j;
              return i;
            }
          if (i <= 3)
            if ((grid[j][i + 1] == move) && (grid[j][i + 2] == move) && (grid[j][i + 3] == move)) {
              *r = j;
              return i;
            }
          for (x = j - 1, y = i - 1, c = 0, f = 1; x >= 0 && y >= 0 && f == 1; x = x - 1, y = y - 1) {
            if (grid[x][y] != move)
              f = 0;
            else
              c++;
            if (c == 3) {
              *r = j;
              return i;
            }
          }
          for (x = j + 1, y = i + 1, f = 1; x <= 5 && y <= 6 && f == 1; x = x + 1, y = y + 1) {
            if (grid[x][y] != move)
              f = 0;
            else
              c++;
            if (c == 3) {
              *r = j;
              return i;
            }
          }
          for (x = j + 1, y = i - 1, c = 0, f = 1; x <= 5 && y >= 0 && f == 1; x = x + 1, y = y - 1) {
            if (grid[x][y] != move)
              f = 0;
            else
              c++;
            if (c == 3) {
              *r = j;
              return i;
            }
          }
          for (x = j - 1, y = i + 1, f = 1; x >= 0 && y <= 6 && f == 1; x = x - 1, y = y + 1) {
            if (grid[x][y] != move)
              f = 0;
            else
              c++;
            if (c == 3) {
              *r = j;
              return i;
            }
          }
          break;
        }
      }
    }
  }
  return -1;
}
```