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

```asm
<bot>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  sub    $0x20,%rsp
  mov    %rdi,-0x18(%rbp)
  mov    %esi,-0x1c(%rbp)
  movl   $0x0,-0x8(%rbp)
  jmp    L5690
L3095:
  movl   $0x0,-0x4(%rbp)
  jmp    L3554
L3927:
  mov    -0x4(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x8(%rbp),%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  test   %eax,%eax
  jne    L6510
  mov    -0x4(%rbp),%eax
  cltq
  lea    0x1(%rax),%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x8(%rbp),%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  cmp    %eax,-0x1c(%rbp)
  jne    L6510
  mov    -0x4(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  lea    0x38(%rax),%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x8(%rbp),%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  cmp    %eax,-0x1c(%rbp)
  jne    L6510
  mov    -0x4(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  lea    0x54(%rax),%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x8(%rbp),%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  cmp    %eax,-0x1c(%rbp)
  jne    L6510
  mov    -0x8(%rbp),%eax
  jmp    L6966
L6510:
  addl   $0x1,-0x4(%rbp)
L3554:
  cmpl   $0x2,-0x4(%rbp)
  jle    L3927
  addl   $0x1,-0x8(%rbp)
L5690:
  cmpl   $0x6,-0x8(%rbp)
  jle    L3095
  movl   $0x5,-0x8(%rbp)
  jmp    L2850
L7345:
  movl   $0x0,-0x4(%rbp)
  jmp    L2524
L5573:
  cmpl   $0x5,-0x8(%rbp)
  jne    L5829
  cmpl   $0x3,-0x4(%rbp)
  jg     L976
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  test   %eax,%eax
  jne    L976
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  add    $0x1,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  cmp    %eax,-0x1c(%rbp)
  jne    L976
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  add    $0x2,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  cmp    %eax,-0x1c(%rbp)
  jne    L976
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  add    $0x3,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  cmp    %eax,-0x1c(%rbp)
  jne    L976
  mov    -0x4(%rbp),%eax
  jmp    L6966
L976:
  cmpl   $0x4,-0x4(%rbp)
  jg     L6846
  cmpl   $0x0,-0x4(%rbp)
  jle    L6846
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  test   %eax,%eax
  jne    L6846
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  sub    $0x1,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  cmp    %eax,-0x1c(%rbp)
  jne    L6846
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  add    $0x1,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  cmp    %eax,-0x1c(%rbp)
  jne    L6846
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  add    $0x2,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  cmp    %eax,-0x1c(%rbp)
  jne    L6846
  mov    -0x4(%rbp),%eax
  jmp    L6966
L6846:
  cmpl   $0x5,-0x4(%rbp)
  jg     L5079
  cmpl   $0x1,-0x4(%rbp)
  jle    L5079
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  test   %eax,%eax
  jne    L5079
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  sub    $0x2,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  cmp    %eax,-0x1c(%rbp)
  jne    L5079
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  sub    $0x1,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  cmp    %eax,-0x1c(%rbp)
  jne    L5079
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  add    $0x1,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  cmp    %eax,-0x1c(%rbp)
  jne    L5079
  mov    -0x4(%rbp),%eax
  jmp    L6966
L5079:
  cmpl   $0x2,-0x4(%rbp)
  jle    L5860
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  test   %eax,%eax
  jne    L5860
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  sub    $0x1,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  cmp    %eax,-0x1c(%rbp)
  jne    L5860
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  sub    $0x2,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  cmp    %eax,-0x1c(%rbp)
  jne    L5860
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  sub    $0x3,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  cmp    %eax,-0x1c(%rbp)
  jne    L5860
  mov    -0x4(%rbp),%eax
  jmp    L6966
L5860:
  cmpl   $0x1,-0x4(%rbp)
  jle    L1890
  cmpl   $0x4,-0x4(%rbp)
  jg     L1890
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  test   %eax,%eax
  jne    L1890
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  sub    $0x1,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  cmp    %eax,-0x1c(%rbp)
  jne    L1890
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  sub    $0x2,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  cmp    %eax,-0x1c(%rbp)
  jne    L1890
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  add    $0x1,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  cmp    %eax,-0x1c(%rbp)
  jne    L1890
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  add    $0x2,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  cmp    %eax,-0x1c(%rbp)
  jne    L1890
  mov    -0x4(%rbp),%eax
  jmp    L6966
L5829:
  cmpl   $0x3,-0x4(%rbp)
  jg     L7154
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  test   %eax,%eax
  jne    L7154
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  add    $0x1,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  cmp    %eax,-0x1c(%rbp)
  jne    L7154
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  add    $0x2,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  cmp    %eax,-0x1c(%rbp)
  jne    L7154
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  add    $0x3,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  cmp    %eax,-0x1c(%rbp)
  jne    L7154
  mov    -0x8(%rbp),%eax
  cltq
  lea    0x1(%rax),%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  test   %eax,%eax
  je     L7154
  mov    -0x4(%rbp),%eax
  jmp    L6966
L7154:
  cmpl   $0x4,-0x4(%rbp)
  jg     L4082
  cmpl   $0x0,-0x4(%rbp)
  jle    L4082
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  test   %eax,%eax
  jne    L4082
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  sub    $0x1,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  cmp    %eax,-0x1c(%rbp)
  jne    L4082
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  add    $0x1,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  cmp    %eax,-0x1c(%rbp)
  jne    L4082
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  add    $0x2,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  cmp    %eax,-0x1c(%rbp)
  jne    L4082
  mov    -0x8(%rbp),%eax
  cltq
  lea    0x1(%rax),%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  test   %eax,%eax
  je     L4082
  mov    -0x4(%rbp),%eax
  jmp    L6966
L4082:
  cmpl   $0x5,-0x4(%rbp)
  jg     L2458
  cmpl   $0x1,-0x4(%rbp)
  jle    L2458
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  test   %eax,%eax
  jne    L2458
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  sub    $0x2,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  cmp    %eax,-0x1c(%rbp)
  jne    L2458
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  sub    $0x1,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  cmp    %eax,-0x1c(%rbp)
  jne    L2458
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  add    $0x1,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  cmp    %eax,-0x1c(%rbp)
  jne    L2458
  mov    -0x8(%rbp),%eax
  cltq
  lea    0x1(%rax),%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  test   %eax,%eax
  je     L2458
  mov    -0x4(%rbp),%eax
  jmp    L6966
L2458:
  cmpl   $0x2,-0x4(%rbp)
  jle    L1954
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  test   %eax,%eax
  jne    L1954
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  sub    $0x1,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  cmp    %eax,-0x1c(%rbp)
  jne    L1954
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  sub    $0x2,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  cmp    %eax,-0x1c(%rbp)
  jne    L1954
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  sub    $0x3,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  cmp    %eax,-0x1c(%rbp)
  jne    L1954
  mov    -0x8(%rbp),%eax
  cltq
  lea    0x1(%rax),%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  test   %eax,%eax
  je     L1954
  mov    -0x4(%rbp),%eax
  jmp    L6966
L1954:
  cmpl   $0x1,-0x4(%rbp)
  jle    L1890
  cmpl   $0x4,-0x4(%rbp)
  jg     L1890
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  test   %eax,%eax
  jne    L1890
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  sub    $0x1,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  cmp    %eax,-0x1c(%rbp)
  jne    L1890
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  sub    $0x2,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  cmp    %eax,-0x1c(%rbp)
  jne    L1890
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  add    $0x1,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  cmp    %eax,-0x1c(%rbp)
  jne    L1890
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  add    $0x2,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  cmp    %eax,-0x1c(%rbp)
  jne    L1890
  mov    -0x8(%rbp),%eax
  cltq
  lea    0x1(%rax),%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  test   %eax,%eax
  je     L1890
  mov    -0x4(%rbp),%eax
  jmp    L6966
L1890:
  addl   $0x1,-0x4(%rbp)
L2524:
  cmpl   $0x6,-0x4(%rbp)
  jle    L5573
  subl   $0x1,-0x8(%rbp)
L2850:
  cmpl   $0x0,-0x8(%rbp)
  jns    L7345
  movl   $0x0,-0x8(%rbp)
  jmp    L5882
L7320:
  movl   $0x0,-0x4(%rbp)
  jmp    L2143
L1937:
  cmpl   $0x2,-0x4(%rbp)
  jle    L4742
  cmpl   $0x2,-0x8(%rbp)
  jg     L4742
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  test   %eax,%eax
  jne    L4742
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  lea    0x54(%rax),%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  sub    $0x3,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  cmp    %eax,-0x1c(%rbp)
  jne    L4742
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  lea    0x38(%rax),%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  sub    $0x2,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  cmp    %eax,-0x1c(%rbp)
  jne    L4742
  mov    -0x8(%rbp),%eax
  cltq
  lea    0x1(%rax),%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  sub    $0x1,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  cmp    %eax,-0x1c(%rbp)
  jne    L4742
  mov    -0x8(%rbp),%eax
  cltq
  lea    0x1(%rax),%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  test   %eax,%eax
  je     L4742
  mov    -0x4(%rbp),%eax
  jmp    L6966
L4742:
  cmpl   $0x3,-0x4(%rbp)
  jg     L5940
  cmpl   $0x2,-0x8(%rbp)
  jg     L5940
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  test   %eax,%eax
  jne    L5940
  mov    -0x8(%rbp),%eax
  cltq
  lea    0x1(%rax),%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  add    $0x1,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  cmp    %eax,-0x1c(%rbp)
  jne    L5940
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  lea    0x38(%rax),%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  add    $0x2,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  cmp    %eax,-0x1c(%rbp)
  jne    L5940
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  lea    0x54(%rax),%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  add    $0x3,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  cmp    %eax,-0x1c(%rbp)
  jne    L5940
  mov    -0x8(%rbp),%eax
  cltq
  lea    0x1(%rax),%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  test   %eax,%eax
  je     L5940
  mov    -0x4(%rbp),%eax
  jmp    L6966
L5940:
  cmpl   $0x1,-0x4(%rbp)
  jle    L2210
  cmpl   $0x5,-0x4(%rbp)
  jg     L2210
  cmpl   $0x0,-0x8(%rbp)
  jle    L2210
  cmpl   $0x3,-0x8(%rbp)
  jg     L2210
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  test   %eax,%eax
  jne    L2210
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  lea    -0x1c(%rax),%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  add    $0x1,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  cmp    %eax,-0x1c(%rbp)
  jne    L2210
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  lea    0x38(%rax),%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  sub    $0x2,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  cmp    %eax,-0x1c(%rbp)
  jne    L2210
  mov    -0x8(%rbp),%eax
  cltq
  lea    0x1(%rax),%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  sub    $0x1,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  cmp    %eax,-0x1c(%rbp)
  jne    L2210
  mov    -0x8(%rbp),%eax
  cltq
  lea    0x1(%rax),%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  test   %eax,%eax
  je     L2210
  mov    -0x4(%rbp),%eax
  jmp    L6966
L2210:
  cmpl   $0x4,-0x4(%rbp)
  jg     L7338
  cmpl   $0x0,-0x4(%rbp)
  jle    L7338
  cmpl   $0x3,-0x8(%rbp)
  jg     L7338
  cmpl   $0x0,-0x8(%rbp)
  jle    L7338
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  test   %eax,%eax
  jne    L7338
  mov    -0x8(%rbp),%eax
  cltq
  lea    0x1(%rax),%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  add    $0x1,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  cmp    %eax,-0x1c(%rbp)
  jne    L7338
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  lea    0x38(%rax),%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  add    $0x2,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  cmp    %eax,-0x1c(%rbp)
  jne    L7338
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  lea    -0x1c(%rax),%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  sub    $0x1,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  cmp    %eax,-0x1c(%rbp)
  jne    L7338
  mov    -0x8(%rbp),%eax
  cltq
  lea    0x1(%rax),%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  test   %eax,%eax
  je     L7338
  mov    -0x4(%rbp),%eax
  jmp    L6966
L7338:
  cmpl   $0x0,-0x4(%rbp)
  jle    L5685
  cmpl   $0x4,-0x4(%rbp)
  jg     L5685
  cmpl   $0x1,-0x8(%rbp)
  jle    L5685
  cmpl   $0x4,-0x8(%rbp)
  jg     L5685
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  test   %eax,%eax
  jne    L5685
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  lea    -0x1c(%rax),%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  add    $0x1,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  cmp    %eax,-0x1c(%rbp)
  jne    L5685
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  lea    -0x38(%rax),%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  add    $0x2,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  cmp    %eax,-0x1c(%rbp)
  jne    L5685
  mov    -0x8(%rbp),%eax
  cltq
  lea    0x1(%rax),%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  sub    $0x1,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  cmp    %eax,-0x1c(%rbp)
  jne    L5685
  mov    -0x8(%rbp),%eax
  cltq
  lea    0x1(%rax),%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  test   %eax,%eax
  je     L5685
  mov    -0x4(%rbp),%eax
  jmp    L6966
L5685:
  cmpl   $0x5,-0x4(%rbp)
  jg     L1673
  cmpl   $0x1,-0x4(%rbp)
  jle    L1673
  cmpl   $0x4,-0x8(%rbp)
  jg     L1673
  cmpl   $0x1,-0x8(%rbp)
  jle    L1673
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  test   %eax,%eax
  jne    L1673
  mov    -0x8(%rbp),%eax
  cltq
  lea    0x1(%rax),%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  add    $0x1,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  cmp    %eax,-0x1c(%rbp)
  jne    L1673
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  lea    -0x38(%rax),%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  sub    $0x2,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  cmp    %eax,-0x1c(%rbp)
  jne    L1673
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  lea    -0x1c(%rax),%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  sub    $0x1,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  cmp    %eax,-0x1c(%rbp)
  jne    L1673
  mov    -0x8(%rbp),%eax
  cltq
  lea    0x1(%rax),%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  test   %eax,%eax
  je     L1673
  mov    -0x4(%rbp),%eax
  jmp    L6966
L1673:
  cmpl   $0xfffffffd,-0x4(%rbp)
  jge    L1793
  cmpl   $0x2,-0x4(%rbp)
  jle    L1793
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  test   %eax,%eax
  jne    L1793
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  lea    -0x1c(%rax),%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  add    $0x1,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  cmp    %eax,-0x1c(%rbp)
  jne    L1793
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  lea    -0x38(%rax),%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  add    $0x2,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  cmp    %eax,-0x1c(%rbp)
  jne    L1793
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  lea    -0x54(%rax),%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  add    $0x3,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  cmp    %eax,-0x1c(%rbp)
  jne    L1793
  mov    -0x8(%rbp),%eax
  cltq
  lea    0x1(%rax),%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  test   %eax,%eax
  je     L1793
  mov    -0x4(%rbp),%eax
  jmp    L6966
L1793:
  cmpl   $0x2,-0x4(%rbp)
  jle    L6231
  cmpl   $0x2,-0x8(%rbp)
  jle    L6231
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  test   %eax,%eax
  jne    L6231
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  lea    -0x54(%rax),%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  sub    $0x3,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  cmp    %eax,-0x1c(%rbp)
  jne    L6231
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  lea    -0x38(%rax),%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  sub    $0x2,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  cmp    %eax,-0x1c(%rbp)
  jne    L6231
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  lea    -0x1c(%rax),%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  sub    $0x1,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  cmp    %eax,-0x1c(%rbp)
  jne    L6231
  mov    -0x8(%rbp),%eax
  cltq
  lea    0x1(%rax),%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  test   %eax,%eax
  je     L6231
  mov    -0x4(%rbp),%eax
  jmp    L6966
L6231:
  cmpl   $0x1,-0x4(%rbp)
  jle    L3732
  cmpl   $0x1,-0x8(%rbp)
  jle    L3732
  cmpl   $0x4,-0x4(%rbp)
  jg     L3732
  cmpl   $0x3,-0x8(%rbp)
  jg     L3732
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  test   %eax,%eax
  jne    L3732
  mov    -0x8(%rbp),%eax
  cltq
  lea    0x1(%rax),%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  sub    $0x1,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  cmp    %eax,-0x1c(%rbp)
  jne    L3732
  mov    -0x8(%rbp),%eax
  cltq
  lea    0x1(%rax),%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  sub    $0x2,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  cmp    %eax,-0x1c(%rbp)
  jne    L3732
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  lea    -0x1c(%rax),%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  add    $0x1,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  cmp    %eax,-0x1c(%rbp)
  jne    L3732
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  lea    -0x38(%rax),%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  add    $0x2,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  cmp    %eax,-0x1c(%rbp)
  jne    L3732
  mov    -0x8(%rbp),%eax
  cltq
  lea    0x1(%rax),%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  test   %eax,%eax
  je     L3732
  mov    -0x4(%rbp),%eax
  jmp    L6966
L3732:
  cmpl   $0x1,-0x4(%rbp)
  jle    L279
  cmpl   $0x1,-0x8(%rbp)
  jle    L279
  cmpl   $0x4,-0x4(%rbp)
  jg     L279
  cmpl   $0x3,-0x8(%rbp)
  jg     L279
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  test   %eax,%eax
  jne    L279
  mov    -0x8(%rbp),%eax
  cltq
  lea    0x1(%rax),%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  add    $0x1,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  cmp    %eax,-0x1c(%rbp)
  jne    L279
  mov    -0x8(%rbp),%eax
  cltq
  lea    0x1(%rax),%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  add    $0x2,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  cmp    %eax,-0x1c(%rbp)
  jne    L279
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  lea    -0x1c(%rax),%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  sub    $0x1,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  cmp    %eax,-0x1c(%rbp)
  jne    L279
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  lea    -0x38(%rax),%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  sub    $0x2,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  cmp    %eax,-0x1c(%rbp)
  jne    L279
  mov    -0x8(%rbp),%eax
  cltq
  lea    0x1(%rax),%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  test   %eax,%eax
  je     L279
  mov    -0x4(%rbp),%eax
  jmp    L6966
L279:
  addl   $0x1,-0x4(%rbp)
L2143:
  cmpl   $0x6,-0x4(%rbp)
  jle    L1937
  addl   $0x1,-0x8(%rbp)
L5882:
  cmpl   $0x5,-0x8(%rbp)
  jle    L7320
  movl   $0x5,-0x8(%rbp)
  jmp    L1398
L5392:
  movl   $0x0,-0x4(%rbp)
  jmp    L5703
L1033:
  cmpl   $0x5,-0x8(%rbp)
  jne    L5736
  cmpl   $0x3,-0x4(%rbp)
  jg     L4686
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  test   %eax,%eax
  jne    L4686
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  add    $0x1,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  mov    -0x1c(%rbp),%edx
  neg    %edx
  cmp    %edx,%eax
  jne    L4686
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  add    $0x2,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  mov    -0x1c(%rbp),%edx
  neg    %edx
  cmp    %edx,%eax
  jne    L4686
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  add    $0x3,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  mov    -0x1c(%rbp),%edx
  neg    %edx
  cmp    %edx,%eax
  jne    L4686
  mov    -0x4(%rbp),%eax
  jmp    L6966
L4686:
  cmpl   $0x4,-0x4(%rbp)
  jg     L946
  cmpl   $0x0,-0x4(%rbp)
  jle    L946
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  test   %eax,%eax
  jne    L946
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  sub    $0x1,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  mov    -0x1c(%rbp),%edx
  neg    %edx
  cmp    %edx,%eax
  jne    L946
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  add    $0x1,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  mov    -0x1c(%rbp),%edx
  neg    %edx
  cmp    %edx,%eax
  jne    L946
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  add    $0x2,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  mov    -0x1c(%rbp),%edx
  neg    %edx
  cmp    %edx,%eax
  jne    L946
  mov    -0x4(%rbp),%eax
  jmp    L6966
L946:
  cmpl   $0x5,-0x4(%rbp)
  jg     L4095
  cmpl   $0x1,-0x4(%rbp)
  jle    L4095
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  test   %eax,%eax
  jne    L4095
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  sub    $0x2,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  mov    -0x1c(%rbp),%edx
  neg    %edx
  cmp    %edx,%eax
  jne    L4095
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  sub    $0x1,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  mov    -0x1c(%rbp),%edx
  neg    %edx
  cmp    %edx,%eax
  jne    L4095
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  add    $0x1,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  mov    -0x1c(%rbp),%edx
  neg    %edx
  cmp    %edx,%eax
  jne    L4095
  mov    -0x4(%rbp),%eax
  jmp    L6966
L4095:
  cmpl   $0x2,-0x4(%rbp)
  jle    L5543
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  test   %eax,%eax
  jne    L5543
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  sub    $0x1,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  mov    -0x1c(%rbp),%edx
  neg    %edx
  cmp    %edx,%eax
  jne    L5543
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  sub    $0x2,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  mov    -0x1c(%rbp),%edx
  neg    %edx
  cmp    %edx,%eax
  jne    L5543
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  sub    $0x3,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  mov    -0x1c(%rbp),%edx
  neg    %edx
  cmp    %edx,%eax
  jne    L5543
  mov    -0x4(%rbp),%eax
  jmp    L6966
L5543:
  cmpl   $0x1,-0x4(%rbp)
  jle    L487
  cmpl   $0x4,-0x4(%rbp)
  jg     L487
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  test   %eax,%eax
  jne    L487
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  sub    $0x1,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  mov    -0x1c(%rbp),%edx
  neg    %edx
  cmp    %edx,%eax
  jne    L487
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  sub    $0x2,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  mov    -0x1c(%rbp),%edx
  neg    %edx
  cmp    %edx,%eax
  jne    L487
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  add    $0x1,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  mov    -0x1c(%rbp),%edx
  neg    %edx
  cmp    %edx,%eax
  jne    L487
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  add    $0x2,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  mov    -0x1c(%rbp),%edx
  neg    %edx
  cmp    %edx,%eax
  jne    L487
  mov    -0x4(%rbp),%eax
  jmp    L6966
L5736:
  cmpl   $0x3,-0x4(%rbp)
  jg     L4842
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  test   %eax,%eax
  jne    L4842
  mov    -0x8(%rbp),%eax
  cltq
  lea    0x1(%rax),%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  test   %eax,%eax
  je     L4842
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  add    $0x1,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  mov    -0x1c(%rbp),%edx
  neg    %edx
  cmp    %edx,%eax
  jne    L4842
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  add    $0x2,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  mov    -0x1c(%rbp),%edx
  neg    %edx
  cmp    %edx,%eax
  jne    L4842
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  add    $0x3,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  mov    -0x1c(%rbp),%edx
  neg    %edx
  cmp    %edx,%eax
  jne    L4842
  mov    -0x8(%rbp),%eax
  cltq
  lea    0x1(%rax),%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  test   %eax,%eax
  je     L4842
  mov    -0x4(%rbp),%eax
  jmp    L6966
L4842:
  cmpl   $0x4,-0x4(%rbp)
  jg     L5996
  cmpl   $0x0,-0x4(%rbp)
  jle    L5996
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  test   %eax,%eax
  jne    L5996
  mov    -0x8(%rbp),%eax
  cltq
  lea    0x1(%rax),%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  test   %eax,%eax
  je     L5996
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  sub    $0x1,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  mov    -0x1c(%rbp),%edx
  neg    %edx
  cmp    %edx,%eax
  jne    L5996
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  add    $0x1,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  mov    -0x1c(%rbp),%edx
  neg    %edx
  cmp    %edx,%eax
  jne    L5996
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  add    $0x2,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  mov    -0x1c(%rbp),%edx
  neg    %edx
  cmp    %edx,%eax
  jne    L5996
  mov    -0x8(%rbp),%eax
  cltq
  lea    0x1(%rax),%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  test   %eax,%eax
  je     L5996
  mov    -0x4(%rbp),%eax
  jmp    L6966
L5996:
  cmpl   $0x5,-0x4(%rbp)
  jg     L202
  cmpl   $0x1,-0x4(%rbp)
  jle    L202
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  test   %eax,%eax
  jne    L202
  mov    -0x8(%rbp),%eax
  cltq
  lea    0x1(%rax),%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  test   %eax,%eax
  je     L202
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  sub    $0x2,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  mov    -0x1c(%rbp),%edx
  neg    %edx
  cmp    %edx,%eax
  jne    L202
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  sub    $0x1,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  mov    -0x1c(%rbp),%edx
  neg    %edx
  cmp    %edx,%eax
  jne    L202
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  add    $0x1,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  mov    -0x1c(%rbp),%edx
  neg    %edx
  cmp    %edx,%eax
  jne    L202
  mov    -0x8(%rbp),%eax
  cltq
  lea    0x1(%rax),%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  test   %eax,%eax
  je     L202
  mov    -0x4(%rbp),%eax
  jmp    L6966
L202:
  cmpl   $0x2,-0x4(%rbp)
  jle    L1641
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  test   %eax,%eax
  jne    L1641
  mov    -0x8(%rbp),%eax
  cltq
  lea    0x1(%rax),%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  test   %eax,%eax
  je     L1641
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  sub    $0x1,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  mov    -0x1c(%rbp),%edx
  neg    %edx
  cmp    %edx,%eax
  jne    L1641
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  sub    $0x2,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  mov    -0x1c(%rbp),%edx
  neg    %edx
  cmp    %edx,%eax
  jne    L1641
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  sub    $0x3,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  mov    -0x1c(%rbp),%edx
  neg    %edx
  cmp    %edx,%eax
  jne    L1641
  mov    -0x8(%rbp),%eax
  cltq
  lea    0x1(%rax),%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  test   %eax,%eax
  je     L1641
  mov    -0x4(%rbp),%eax
  jmp    L6966
L1641:
  cmpl   $0x1,-0x4(%rbp)
  jle    L487
  cmpl   $0x4,-0x4(%rbp)
  jg     L487
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  test   %eax,%eax
  jne    L487
  mov    -0x8(%rbp),%eax
  cltq
  lea    0x1(%rax),%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  test   %eax,%eax
  je     L487
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  sub    $0x1,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  mov    -0x1c(%rbp),%edx
  neg    %edx
  cmp    %edx,%eax
  jne    L487
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  sub    $0x2,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  mov    -0x1c(%rbp),%edx
  neg    %edx
  cmp    %edx,%eax
  jne    L487
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  add    $0x1,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  mov    -0x1c(%rbp),%edx
  neg    %edx
  cmp    %edx,%eax
  jne    L487
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  add    $0x2,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  mov    -0x1c(%rbp),%edx
  neg    %edx
  cmp    %edx,%eax
  jne    L487
  mov    -0x8(%rbp),%eax
  cltq
  lea    0x1(%rax),%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  test   %eax,%eax
  je     L487
  mov    -0x4(%rbp),%eax
  jmp    L6966
L487:
  addl   $0x1,-0x4(%rbp)
L5703:
  cmpl   $0x6,-0x4(%rbp)
  jle    L1033
  subl   $0x1,-0x8(%rbp)
L1398:
  cmpl   $0x0,-0x8(%rbp)
  jns    L5392
  movl   $0x0,-0x8(%rbp)
  jmp    L4577
L7465:
  movl   $0x0,-0x4(%rbp)
  jmp    L7560
L4957:
  mov    -0x4(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x8(%rbp),%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  test   %eax,%eax
  jne    L836
  mov    -0x4(%rbp),%eax
  cltq
  lea    0x1(%rax),%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x8(%rbp),%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  mov    -0x1c(%rbp),%edx
  neg    %edx
  cmp    %edx,%eax
  jne    L836
  mov    -0x4(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  lea    0x38(%rax),%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x8(%rbp),%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  mov    -0x1c(%rbp),%edx
  neg    %edx
  cmp    %edx,%eax
  jne    L836
  mov    -0x4(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  lea    0x54(%rax),%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x8(%rbp),%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  mov    -0x1c(%rbp),%edx
  neg    %edx
  cmp    %edx,%eax
  jne    L836
  mov    -0x8(%rbp),%eax
  jmp    L6966
L836:
  addl   $0x1,-0x4(%rbp)
L7560:
  cmpl   $0x2,-0x4(%rbp)
  jle    L4957
  addl   $0x1,-0x8(%rbp)
L4577:
  cmpl   $0x6,-0x8(%rbp)
  jle    L7465
  movl   $0x0,-0x8(%rbp)
  jmp    L250
L1096:
  movl   $0x0,-0x4(%rbp)
  jmp    L5711
L5040:
  cmpl   $0x2,-0x4(%rbp)
  jle    L4750
  cmpl   $0x2,-0x8(%rbp)
  jg     L4750
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  test   %eax,%eax
  jne    L4750
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  lea    0x54(%rax),%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  sub    $0x3,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  mov    -0x1c(%rbp),%edx
  neg    %edx
  cmp    %edx,%eax
  jne    L4750
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  lea    0x38(%rax),%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  sub    $0x2,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  mov    -0x1c(%rbp),%edx
  neg    %edx
  cmp    %edx,%eax
  jne    L4750
  mov    -0x8(%rbp),%eax
  cltq
  lea    0x1(%rax),%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  sub    $0x1,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  mov    -0x1c(%rbp),%edx
  neg    %edx
  cmp    %edx,%eax
  jne    L4750
  mov    -0x8(%rbp),%eax
  cltq
  lea    0x1(%rax),%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  test   %eax,%eax
  je     L4750
  mov    -0x4(%rbp),%eax
  jmp    L6966
L4750:
  cmpl   $0x3,-0x4(%rbp)
  jg     L5251
  cmpl   $0x2,-0x8(%rbp)
  jg     L5251
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  test   %eax,%eax
  jne    L5251
  mov    -0x8(%rbp),%eax
  cltq
  lea    0x1(%rax),%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  add    $0x1,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  mov    -0x1c(%rbp),%edx
  neg    %edx
  cmp    %edx,%eax
  jne    L5251
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  lea    0x38(%rax),%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  add    $0x2,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  mov    -0x1c(%rbp),%edx
  neg    %edx
  cmp    %edx,%eax
  jne    L5251
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  lea    0x54(%rax),%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  add    $0x3,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  mov    -0x1c(%rbp),%edx
  neg    %edx
  cmp    %edx,%eax
  jne    L5251
  mov    -0x8(%rbp),%eax
  cltq
  lea    0x1(%rax),%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  test   %eax,%eax
  je     L5251
  mov    -0x4(%rbp),%eax
  jmp    L6966
L5251:
  cmpl   $0x1,-0x4(%rbp)
  jle    L5264
  cmpl   $0x5,-0x4(%rbp)
  jg     L5264
  cmpl   $0x0,-0x8(%rbp)
  jle    L5264
  cmpl   $0x3,-0x8(%rbp)
  jg     L5264
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  test   %eax,%eax
  jne    L5264
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  lea    -0x1c(%rax),%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  add    $0x1,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  mov    -0x1c(%rbp),%edx
  neg    %edx
  cmp    %edx,%eax
  jne    L5264
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  lea    0x38(%rax),%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  sub    $0x2,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  mov    -0x1c(%rbp),%edx
  neg    %edx
  cmp    %edx,%eax
  jne    L5264
  mov    -0x8(%rbp),%eax
  cltq
  lea    0x1(%rax),%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  sub    $0x1,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  mov    -0x1c(%rbp),%edx
  neg    %edx
  cmp    %edx,%eax
  jne    L5264
  mov    -0x8(%rbp),%eax
  cltq
  lea    0x1(%rax),%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  test   %eax,%eax
  je     L5264
  mov    -0x4(%rbp),%eax
  jmp    L6966
L5264:
  cmpl   $0x4,-0x4(%rbp)
  jg     L1043
  cmpl   $0x0,-0x4(%rbp)
  jle    L1043
  cmpl   $0x3,-0x8(%rbp)
  jg     L1043
  cmpl   $0x0,-0x8(%rbp)
  jle    L1043
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  test   %eax,%eax
  jne    L1043
  mov    -0x8(%rbp),%eax
  cltq
  lea    0x1(%rax),%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  add    $0x1,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  mov    -0x1c(%rbp),%edx
  neg    %edx
  cmp    %edx,%eax
  jne    L1043
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  lea    0x38(%rax),%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  add    $0x2,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  mov    -0x1c(%rbp),%edx
  neg    %edx
  cmp    %edx,%eax
  jne    L1043
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  lea    -0x1c(%rax),%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  sub    $0x1,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  mov    -0x1c(%rbp),%edx
  neg    %edx
  cmp    %edx,%eax
  jne    L1043
  mov    -0x8(%rbp),%eax
  cltq
  lea    0x1(%rax),%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  test   %eax,%eax
  je     L1043
  mov    -0x4(%rbp),%eax
  jmp    L6966
L1043:
  cmpl   $0x0,-0x4(%rbp)
  jle    L1264
  cmpl   $0x4,-0x4(%rbp)
  jg     L1264
  cmpl   $0x1,-0x8(%rbp)
  jle    L1264
  cmpl   $0x4,-0x8(%rbp)
  jg     L1264
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  test   %eax,%eax
  jne    L1264
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  lea    -0x1c(%rax),%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  add    $0x1,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  mov    -0x1c(%rbp),%edx
  neg    %edx
  cmp    %edx,%eax
  jne    L1264
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  lea    -0x38(%rax),%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  add    $0x2,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  mov    -0x1c(%rbp),%edx
  neg    %edx
  cmp    %edx,%eax
  jne    L1264
  mov    -0x8(%rbp),%eax
  cltq
  lea    0x1(%rax),%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  sub    $0x1,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  mov    -0x1c(%rbp),%edx
  neg    %edx
  cmp    %edx,%eax
  jne    L1264
  mov    -0x8(%rbp),%eax
  cltq
  lea    0x1(%rax),%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  test   %eax,%eax
  je     L1264
  mov    -0x4(%rbp),%eax
  jmp    L6966
L1264:
  cmpl   $0x5,-0x4(%rbp)
  jg     L6548
  cmpl   $0x1,-0x4(%rbp)
  jle    L6548
  cmpl   $0x4,-0x8(%rbp)
  jg     L6548
  cmpl   $0x1,-0x8(%rbp)
  jle    L6548
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  test   %eax,%eax
  jne    L6548
  mov    -0x8(%rbp),%eax
  cltq
  lea    0x1(%rax),%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  add    $0x1,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  mov    -0x1c(%rbp),%edx
  neg    %edx
  cmp    %edx,%eax
  jne    L6548
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  lea    -0x38(%rax),%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  sub    $0x2,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  mov    -0x1c(%rbp),%edx
  neg    %edx
  cmp    %edx,%eax
  jne    L6548
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  lea    -0x1c(%rax),%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  sub    $0x1,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  mov    -0x1c(%rbp),%edx
  neg    %edx
  cmp    %edx,%eax
  jne    L6548
  mov    -0x8(%rbp),%eax
  cltq
  lea    0x1(%rax),%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  test   %eax,%eax
  je     L6548
  mov    -0x4(%rbp),%eax
  jmp    L6966
L6548:
  cmpl   $0xfffffffd,-0x4(%rbp)
  jge    L7295
  cmpl   $0x2,-0x4(%rbp)
  jle    L7295
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  test   %eax,%eax
  jne    L7295
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  lea    -0x1c(%rax),%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  add    $0x1,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  mov    -0x1c(%rbp),%edx
  neg    %edx
  cmp    %edx,%eax
  jne    L7295
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  lea    -0x38(%rax),%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  add    $0x2,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  mov    -0x1c(%rbp),%edx
  neg    %edx
  cmp    %edx,%eax
  jne    L7295
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  lea    -0x54(%rax),%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  add    $0x3,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  mov    -0x1c(%rbp),%edx
  neg    %edx
  cmp    %edx,%eax
  jne    L7295
  mov    -0x4(%rbp),%eax
  jmp    L6966
L7295:
  cmpl   $0x2,-0x4(%rbp)
  jle    L2746
  cmpl   $0x2,-0x8(%rbp)
  jle    L2746
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  test   %eax,%eax
  jne    L2746
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  lea    -0x54(%rax),%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  sub    $0x3,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  mov    -0x1c(%rbp),%edx
  neg    %edx
  cmp    %edx,%eax
  jne    L2746
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  lea    -0x38(%rax),%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  sub    $0x2,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  mov    -0x1c(%rbp),%edx
  neg    %edx
  cmp    %edx,%eax
  jne    L2746
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  lea    -0x1c(%rax),%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  sub    $0x1,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  mov    -0x1c(%rbp),%edx
  neg    %edx
  cmp    %edx,%eax
  jne    L2746
  mov    -0x4(%rbp),%eax
  jmp    L6966
L2746:
  cmpl   $0x1,-0x4(%rbp)
  jle    L4591
  cmpl   $0x1,-0x8(%rbp)
  jle    L4591
  cmpl   $0x4,-0x4(%rbp)
  jg     L4591
  cmpl   $0x3,-0x8(%rbp)
  jg     L4591
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  test   %eax,%eax
  jne    L4591
  mov    -0x8(%rbp),%eax
  cltq
  lea    0x1(%rax),%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  sub    $0x1,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  mov    -0x1c(%rbp),%edx
  neg    %edx
  cmp    %edx,%eax
  jne    L4591
  mov    -0x8(%rbp),%eax
  cltq
  lea    0x1(%rax),%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  sub    $0x2,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  mov    -0x1c(%rbp),%edx
  neg    %edx
  cmp    %edx,%eax
  jne    L4591
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  lea    -0x1c(%rax),%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  add    $0x1,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  mov    -0x1c(%rbp),%edx
  neg    %edx
  cmp    %edx,%eax
  jne    L4591
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  lea    -0x38(%rax),%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  add    $0x2,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  mov    -0x1c(%rbp),%edx
  neg    %edx
  cmp    %edx,%eax
  jne    L4591
  mov    -0x8(%rbp),%eax
  cltq
  lea    0x1(%rax),%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  test   %eax,%eax
  je     L4591
  mov    -0x4(%rbp),%eax
  jmp    L6966
L4591:
  cmpl   $0x1,-0x4(%rbp)
  jle    L5652
  cmpl   $0x1,-0x8(%rbp)
  jle    L5652
  cmpl   $0x4,-0x4(%rbp)
  jg     L5652
  cmpl   $0x3,-0x8(%rbp)
  jg     L5652
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  test   %eax,%eax
  jne    L5652
  mov    -0x8(%rbp),%eax
  cltq
  lea    0x1(%rax),%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  add    $0x1,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  mov    -0x1c(%rbp),%edx
  neg    %edx
  cmp    %edx,%eax
  jne    L5652
  mov    -0x8(%rbp),%eax
  cltq
  lea    0x1(%rax),%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  add    $0x2,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  mov    -0x1c(%rbp),%edx
  neg    %edx
  cmp    %edx,%eax
  jne    L5652
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  lea    -0x1c(%rax),%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  sub    $0x1,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  mov    -0x1c(%rbp),%edx
  neg    %edx
  cmp    %edx,%eax
  jne    L5652
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  lea    -0x38(%rax),%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  sub    $0x2,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  mov    -0x1c(%rbp),%edx
  neg    %edx
  cmp    %edx,%eax
  jne    L5652
  mov    -0x8(%rbp),%eax
  cltq
  lea    0x1(%rax),%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  test   %eax,%eax
  je     L5652
  mov    -0x4(%rbp),%eax
  jmp    L6966
L5652:
  addl   $0x1,-0x4(%rbp)
L5711:
  cmpl   $0x6,-0x4(%rbp)
  jle    L5040
  addl   $0x1,-0x8(%rbp)
L250:
  cmpl   $0x5,-0x8(%rbp)
  jle    L1096
  movl   $0x0,-0x8(%rbp)
  jmp    L6420
L373:
  movl   $0x0,-0x4(%rbp)
  jmp    L3281
L4161:
  cmpl   $0x3,-0x4(%rbp)
  jg     L2783
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  test   %eax,%eax
  jne    L2783
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  add    $0x1,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  cmp    %eax,-0x1c(%rbp)
  jne    L2783
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  add    $0x2,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  cmp    %eax,-0x1c(%rbp)
  jne    L2783
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  add    $0x3,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  cmp    %eax,-0x1c(%rbp)
  jne    L2783
  mov    -0x4(%rbp),%eax
  jmp    L6966
L2783:
  cmpl   $0x4,-0x4(%rbp)
  jg     L7629
  cmpl   $0x0,-0x4(%rbp)
  jle    L7629
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  test   %eax,%eax
  jne    L7629
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  sub    $0x1,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  cmp    %eax,-0x1c(%rbp)
  jne    L7629
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  add    $0x1,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  cmp    %eax,-0x1c(%rbp)
  jne    L7629
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  add    $0x2,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  cmp    %eax,-0x1c(%rbp)
  jne    L7629
  mov    -0x4(%rbp),%eax
  jmp    L6966
L7629:
  cmpl   $0x5,-0x4(%rbp)
  jg     L3133
  cmpl   $0x1,-0x4(%rbp)
  jle    L3133
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  test   %eax,%eax
  jne    L3133
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  sub    $0x2,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  cmp    %eax,-0x1c(%rbp)
  jne    L3133
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  sub    $0x1,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  cmp    %eax,-0x1c(%rbp)
  jne    L3133
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  add    $0x1,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  cmp    %eax,-0x1c(%rbp)
  jne    L3133
  mov    -0x4(%rbp),%eax
  jmp    L6966
L3133:
  cmpl   $0x2,-0x4(%rbp)
  jle    L5764
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  test   %eax,%eax
  jne    L5764
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  sub    $0x1,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  cmp    %eax,-0x1c(%rbp)
  jne    L5764
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  sub    $0x2,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  cmp    %eax,-0x1c(%rbp)
  jne    L5764
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  sub    $0x3,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  cmp    %eax,-0x1c(%rbp)
  jne    L5764
  mov    -0x4(%rbp),%eax
  jmp    L6966
L5764:
  cmpl   $0x1,-0x4(%rbp)
  jle    L225
  cmpl   $0x4,-0x4(%rbp)
  jg     L225
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  test   %eax,%eax
  jne    L225
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  sub    $0x1,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  cmp    %eax,-0x1c(%rbp)
  jne    L225
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  sub    $0x2,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  cmp    %eax,-0x1c(%rbp)
  jne    L225
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  add    $0x1,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  cmp    %eax,-0x1c(%rbp)
  jne    L225
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  add    $0x2,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  cmp    %eax,-0x1c(%rbp)
  jne    L225
  mov    -0x4(%rbp),%eax
  jmp    L6966
L225:
  cmpl   $0x2,-0x4(%rbp)
  jle    L996
  cmpl   $0x2,-0x8(%rbp)
  jg     L996
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  test   %eax,%eax
  jne    L996
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  lea    0x54(%rax),%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  sub    $0x3,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  cmp    %eax,-0x1c(%rbp)
  jne    L996
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  lea    0x38(%rax),%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  sub    $0x2,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  cmp    %eax,-0x1c(%rbp)
  jne    L996
  mov    -0x8(%rbp),%eax
  cltq
  lea    0x1(%rax),%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  sub    $0x1,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  cmp    %eax,-0x1c(%rbp)
  jne    L996
  mov    -0x4(%rbp),%eax
  jmp    L6966
L996:
  cmpl   $0x3,-0x4(%rbp)
  jg     L7105
  cmpl   $0x2,-0x8(%rbp)
  jg     L7105
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  test   %eax,%eax
  jne    L7105
  mov    -0x8(%rbp),%eax
  cltq
  lea    0x1(%rax),%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  add    $0x1,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  cmp    %eax,-0x1c(%rbp)
  jne    L7105
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  lea    0x38(%rax),%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  add    $0x2,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  cmp    %eax,-0x1c(%rbp)
  jne    L7105
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  lea    0x54(%rax),%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  add    $0x3,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  cmp    %eax,-0x1c(%rbp)
  jne    L7105
  mov    -0x4(%rbp),%eax
  jmp    L6966
L7105:
  cmpl   $0x1,-0x4(%rbp)
  jle    L5544
  cmpl   $0x5,-0x4(%rbp)
  jg     L5544
  cmpl   $0x0,-0x8(%rbp)
  jle    L5544
  cmpl   $0x3,-0x8(%rbp)
  jg     L5544
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  test   %eax,%eax
  jne    L5544
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  lea    -0x1c(%rax),%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  add    $0x1,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  cmp    %eax,-0x1c(%rbp)
  jne    L5544
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  lea    0x38(%rax),%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  sub    $0x2,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  cmp    %eax,-0x1c(%rbp)
  jne    L5544
  mov    -0x8(%rbp),%eax
  cltq
  lea    0x1(%rax),%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  sub    $0x1,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  cmp    %eax,-0x1c(%rbp)
  jne    L5544
  mov    -0x4(%rbp),%eax
  jmp    L6966
L5544:
  cmpl   $0x4,-0x4(%rbp)
  jg     L7039
  cmpl   $0x0,-0x4(%rbp)
  jle    L7039
  cmpl   $0x3,-0x8(%rbp)
  jg     L7039
  cmpl   $0x0,-0x8(%rbp)
  jle    L7039
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  test   %eax,%eax
  jne    L7039
  mov    -0x8(%rbp),%eax
  cltq
  lea    0x1(%rax),%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  add    $0x1,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  cmp    %eax,-0x1c(%rbp)
  jne    L7039
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  lea    0x38(%rax),%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  add    $0x2,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  cmp    %eax,-0x1c(%rbp)
  jne    L7039
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  lea    -0x1c(%rax),%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  sub    $0x1,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  cmp    %eax,-0x1c(%rbp)
  jne    L7039
  mov    -0x4(%rbp),%eax
  jmp    L6966
L7039:
  cmpl   $0x0,-0x4(%rbp)
  jle    L716
  cmpl   $0x4,-0x4(%rbp)
  jg     L716
  cmpl   $0x1,-0x8(%rbp)
  jle    L716
  cmpl   $0x4,-0x8(%rbp)
  jg     L716
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  test   %eax,%eax
  jne    L716
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  lea    -0x1c(%rax),%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  add    $0x1,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  cmp    %eax,-0x1c(%rbp)
  jne    L716
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  lea    -0x38(%rax),%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  add    $0x2,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  cmp    %eax,-0x1c(%rbp)
  jne    L716
  mov    -0x8(%rbp),%eax
  cltq
  lea    0x1(%rax),%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  sub    $0x1,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  cmp    %eax,-0x1c(%rbp)
  jne    L716
  mov    -0x4(%rbp),%eax
  jmp    L6966
L716:
  cmpl   $0x5,-0x4(%rbp)
  jg     L3978
  cmpl   $0x1,-0x4(%rbp)
  jle    L3978
  cmpl   $0x4,-0x8(%rbp)
  jg     L3978
  cmpl   $0x1,-0x8(%rbp)
  jle    L3978
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  test   %eax,%eax
  jne    L3978
  mov    -0x8(%rbp),%eax
  cltq
  lea    0x1(%rax),%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  add    $0x1,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  cmp    %eax,-0x1c(%rbp)
  jne    L3978
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  lea    -0x38(%rax),%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  sub    $0x2,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  cmp    %eax,-0x1c(%rbp)
  jne    L3978
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  lea    -0x1c(%rax),%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  sub    $0x1,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  cmp    %eax,-0x1c(%rbp)
  jne    L3978
  mov    -0x4(%rbp),%eax
  jmp    L6966
L3978:
  cmpl   $0xfffffffd,-0x4(%rbp)
  jge    L2710
  cmpl   $0x2,-0x4(%rbp)
  jle    L2710
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  test   %eax,%eax
  jne    L2710
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  lea    -0x1c(%rax),%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  add    $0x1,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  cmp    %eax,-0x1c(%rbp)
  jne    L2710
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  lea    -0x38(%rax),%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  add    $0x2,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  cmp    %eax,-0x1c(%rbp)
  jne    L2710
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  lea    -0x54(%rax),%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  add    $0x3,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  cmp    %eax,-0x1c(%rbp)
  jne    L2710
  mov    -0x4(%rbp),%eax
  jmp    L6966
L2710:
  cmpl   $0x2,-0x4(%rbp)
  jle    L7222
  cmpl   $0x2,-0x8(%rbp)
  jle    L7222
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  test   %eax,%eax
  jne    L7222
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  lea    -0x54(%rax),%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  sub    $0x3,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  cmp    %eax,-0x1c(%rbp)
  jne    L7222
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  lea    -0x38(%rax),%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  sub    $0x2,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  cmp    %eax,-0x1c(%rbp)
  jne    L7222
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  lea    -0x1c(%rax),%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  sub    $0x1,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  cmp    %eax,-0x1c(%rbp)
  jne    L7222
  mov    -0x4(%rbp),%eax
  jmp    L6966
L7222:
  cmpl   $0x1,-0x4(%rbp)
  jle    L5133
  cmpl   $0x1,-0x8(%rbp)
  jle    L5133
  cmpl   $0x4,-0x4(%rbp)
  jg     L5133
  cmpl   $0x3,-0x8(%rbp)
  jg     L5133
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  test   %eax,%eax
  jne    L5133
  mov    -0x8(%rbp),%eax
  cltq
  lea    0x1(%rax),%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  sub    $0x1,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  cmp    %eax,-0x1c(%rbp)
  jne    L5133
  mov    -0x8(%rbp),%eax
  cltq
  lea    0x1(%rax),%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  sub    $0x2,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  cmp    %eax,-0x1c(%rbp)
  jne    L5133
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  lea    -0x1c(%rax),%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  add    $0x1,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  cmp    %eax,-0x1c(%rbp)
  jne    L5133
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  lea    -0x38(%rax),%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  add    $0x2,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  cmp    %eax,-0x1c(%rbp)
  jne    L5133
  mov    -0x8(%rbp),%eax
  cltq
  lea    0x1(%rax),%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  test   %eax,%eax
  je     L5133
  mov    -0x4(%rbp),%eax
  jmp    L6966
L5133:
  cmpl   $0x1,-0x4(%rbp)
  jle    L5408
  cmpl   $0x1,-0x8(%rbp)
  jle    L5408
  cmpl   $0x4,-0x4(%rbp)
  jg     L5408
  cmpl   $0x3,-0x8(%rbp)
  jg     L5408
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  test   %eax,%eax
  jne    L5408
  mov    -0x8(%rbp),%eax
  cltq
  lea    0x1(%rax),%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  add    $0x1,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  cmp    %eax,-0x1c(%rbp)
  jne    L5408
  mov    -0x8(%rbp),%eax
  cltq
  lea    0x1(%rax),%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  add    $0x2,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  cmp    %eax,-0x1c(%rbp)
  jne    L5408
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  lea    -0x1c(%rax),%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  sub    $0x1,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  cmp    %eax,-0x1c(%rbp)
  jne    L5408
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  lea    -0x38(%rax),%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  sub    $0x2,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  cmp    %eax,-0x1c(%rbp)
  jne    L5408
  mov    -0x8(%rbp),%eax
  cltq
  lea    0x1(%rax),%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  test   %eax,%eax
  je     L5408
  mov    -0x4(%rbp),%eax
  jmp    L6966
L5408:
  addl   $0x1,-0x4(%rbp)
L3281:
  cmpl   $0x6,-0x4(%rbp)
  jle    L4161
  addl   $0x1,-0x8(%rbp)
L6420:
  cmpl   $0x5,-0x8(%rbp)
  jle    L373
  movl   $0x0,-0x8(%rbp)
  jmp    L2492
L5140:
  movl   $0x0,-0x4(%rbp)
  jmp    L3726
L5807:
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  test   %eax,%eax
  jne    L85
  mov    -0x8(%rbp),%eax
  cltq
  lea    0x1(%rax),%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  test   %eax,%eax
  je     L85
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  lea    -0x1c(%rax),%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  add    $0x1,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  mov    -0x1c(%rbp),%edx
  neg    %edx
  cmp    %edx,%eax
  jne    L2418
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  lea    -0x1c(%rax),%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  add    $0x2,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  mov    -0x1c(%rbp),%edx
  neg    %edx
  cmp    %edx,%eax
  jne    L2418
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  lea    -0x1c(%rax),%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  add    $0x3,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  mov    -0x1c(%rbp),%edx
  neg    %edx
  cmp    %edx,%eax
  je     L85
L2418:
  mov    -0x8(%rbp),%eax
  cltq
  lea    0x1(%rax),%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  test   %eax,%eax
  je     L85
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  lea    -0x1c(%rax),%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  sub    $0x1,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  mov    -0x1c(%rbp),%edx
  neg    %edx
  cmp    %edx,%eax
  jne    L4116
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  lea    -0x1c(%rax),%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  add    $0x1,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  mov    -0x1c(%rbp),%edx
  neg    %edx
  cmp    %edx,%eax
  jne    L4116
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  lea    -0x1c(%rax),%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  add    $0x2,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  mov    -0x1c(%rbp),%edx
  neg    %edx
  cmp    %edx,%eax
  je     L85
L4116:
  mov    -0x8(%rbp),%eax
  cltq
  lea    0x1(%rax),%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  test   %eax,%eax
  je     L85
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  lea    -0x1c(%rax),%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  sub    $0x2,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  mov    -0x1c(%rbp),%edx
  neg    %edx
  cmp    %edx,%eax
  jne    L2491
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  lea    -0x1c(%rax),%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  sub    $0x1,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  mov    -0x1c(%rbp),%edx
  neg    %edx
  cmp    %edx,%eax
  jne    L2491
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  lea    -0x1c(%rax),%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  add    $0x1,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  mov    -0x1c(%rbp),%edx
  neg    %edx
  cmp    %edx,%eax
  je     L85
L2491:
  mov    -0x8(%rbp),%eax
  cltq
  lea    0x1(%rax),%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  test   %eax,%eax
  je     L85
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  lea    -0x1c(%rax),%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  sub    $0x3,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  mov    -0x1c(%rbp),%edx
  neg    %edx
  cmp    %edx,%eax
  jne    L4673
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  lea    -0x1c(%rax),%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  sub    $0x2,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  mov    -0x1c(%rbp),%edx
  neg    %edx
  cmp    %edx,%eax
  jne    L4673
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  lea    -0x1c(%rax),%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  sub    $0x1,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  mov    -0x1c(%rbp),%edx
  neg    %edx
  cmp    %edx,%eax
  je     L85
L4673:
  mov    -0x8(%rbp),%eax
  cltq
  lea    0x1(%rax),%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  test   %eax,%eax
  je     L85
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  lea    -0x38(%rax),%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  sub    $0x1,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  mov    -0x1c(%rbp),%edx
  neg    %edx
  cmp    %edx,%eax
  jne    L1511
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  lea    -0x54(%rax),%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  sub    $0x2,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  mov    -0x1c(%rbp),%edx
  neg    %edx
  cmp    %edx,%eax
  jne    L1511
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  lea    -0x70(%rax),%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  sub    $0x3,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  mov    -0x1c(%rbp),%edx
  neg    %edx
  cmp    %edx,%eax
  je     L85
L1511:
  mov    -0x8(%rbp),%eax
  cltq
  lea    0x1(%rax),%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  test   %eax,%eax
  je     L85
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  add    $0x1,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  mov    -0x1c(%rbp),%edx
  neg    %edx
  cmp    %edx,%eax
  jne    L5124
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  lea    -0x38(%rax),%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  sub    $0x1,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  mov    -0x1c(%rbp),%edx
  neg    %edx
  cmp    %edx,%eax
  jne    L5124
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  lea    -0x54(%rax),%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  sub    $0x2,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  mov    -0x1c(%rbp),%edx
  neg    %edx
  cmp    %edx,%eax
  je     L85
L5124:
  mov    -0x8(%rbp),%eax
  cltq
  lea    0x1(%rax),%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  test   %eax,%eax
  je     L85
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  add    $0x1,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  mov    -0x1c(%rbp),%edx
  neg    %edx
  cmp    %edx,%eax
  jne    L2884
  mov    -0x8(%rbp),%eax
  cltq
  lea    0x1(%rax),%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  add    $0x2,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  mov    -0x1c(%rbp),%edx
  neg    %edx
  cmp    %edx,%eax
  jne    L2884
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  lea    -0x38(%rax),%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  sub    $0x1,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  mov    -0x1c(%rbp),%edx
  neg    %edx
  cmp    %edx,%eax
  je     L85
L2884:
  mov    -0x8(%rbp),%eax
  cltq
  lea    0x1(%rax),%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  test   %eax,%eax
  je     L85
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  add    $0x1,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  mov    -0x1c(%rbp),%edx
  neg    %edx
  cmp    %edx,%eax
  jne    L7128
  mov    -0x8(%rbp),%eax
  cltq
  lea    0x1(%rax),%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  add    $0x2,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  mov    -0x1c(%rbp),%edx
  neg    %edx
  cmp    %edx,%eax
  jne    L7128
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  lea    0x38(%rax),%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  add    $0x3,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  mov    -0x1c(%rbp),%edx
  neg    %edx
  cmp    %edx,%eax
  je     L85
L7128:
  mov    -0x8(%rbp),%eax
  cltq
  lea    0x1(%rax),%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  test   %eax,%eax
  je     L85
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  lea    0x38(%rax),%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  add    $0x1,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  mov    -0x1c(%rbp),%edx
  neg    %edx
  cmp    %edx,%eax
  jne    L4653
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  lea    0x54(%rax),%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  add    $0x2,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  mov    -0x1c(%rbp),%edx
  neg    %edx
  cmp    %edx,%eax
  jne    L4653
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  lea    0x70(%rax),%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  add    $0x3,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  mov    -0x1c(%rbp),%edx
  neg    %edx
  cmp    %edx,%eax
  je     L85
L4653:
  mov    -0x8(%rbp),%eax
  cltq
  lea    0x1(%rax),%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  test   %eax,%eax
  je     L85
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  sub    $0x1,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  mov    -0x1c(%rbp),%edx
  neg    %edx
  cmp    %edx,%eax
  jne    L888
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  lea    0x38(%rax),%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  add    $0x1,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  mov    -0x1c(%rbp),%edx
  neg    %edx
  cmp    %edx,%eax
  jne    L888
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  lea    0x54(%rax),%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  add    $0x2,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  mov    -0x1c(%rbp),%edx
  neg    %edx
  cmp    %edx,%eax
  je     L85
L888:
  mov    -0x8(%rbp),%eax
  cltq
  lea    0x1(%rax),%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  test   %eax,%eax
  je     L85
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  sub    $0x1,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  mov    -0x1c(%rbp),%edx
  neg    %edx
  cmp    %edx,%eax
  jne    L6892
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  lea    -0x1c(%rax),%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  sub    $0x2,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  mov    -0x1c(%rbp),%edx
  neg    %edx
  cmp    %edx,%eax
  jne    L6892
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  lea    0x38(%rax),%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  add    $0x1,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  mov    -0x1c(%rbp),%edx
  neg    %edx
  cmp    %edx,%eax
  je     L85
L6892:
  mov    -0x8(%rbp),%eax
  cltq
  lea    0x1(%rax),%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  test   %eax,%eax
  je     L85
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  sub    $0x1,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  mov    -0x1c(%rbp),%edx
  neg    %edx
  cmp    %edx,%eax
  jne    L5883
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  lea    -0x1c(%rax),%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  sub    $0x2,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  mov    -0x1c(%rbp),%edx
  neg    %edx
  cmp    %edx,%eax
  jne    L5883
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  lea    -0x38(%rax),%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  sub    $0x3,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  mov    -0x1c(%rbp),%edx
  neg    %edx
  cmp    %edx,%eax
  je     L85
L5883:
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  lea    -0x1c(%rax),%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  add    $0x1,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  cmp    %eax,-0x1c(%rbp)
  jne    L2985
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  lea    -0x1c(%rax),%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  add    $0x2,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  cmp    %eax,-0x1c(%rbp)
  jne    L2985
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  lea    -0x1c(%rax),%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  add    $0x3,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  cmp    %eax,-0x1c(%rbp)
  jne    L2985
  mov    -0x4(%rbp),%eax
  jmp    L6966
L2985:
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  lea    -0x1c(%rax),%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  sub    $0x1,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  cmp    %eax,-0x1c(%rbp)
  jne    L4699
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  lea    -0x1c(%rax),%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  add    $0x1,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  cmp    %eax,-0x1c(%rbp)
  jne    L4699
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  lea    -0x1c(%rax),%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  add    $0x2,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  cmp    %eax,-0x1c(%rbp)
  jne    L4699
  mov    -0x4(%rbp),%eax
  jmp    L6966
L4699:
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  lea    -0x1c(%rax),%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  sub    $0x2,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  cmp    %eax,-0x1c(%rbp)
  jne    L4310
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  lea    -0x1c(%rax),%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  sub    $0x1,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  cmp    %eax,-0x1c(%rbp)
  jne    L4310
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  lea    -0x1c(%rax),%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  add    $0x1,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  cmp    %eax,-0x1c(%rbp)
  jne    L4310
  mov    -0x4(%rbp),%eax
  jmp    L6966
L4310:
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  lea    -0x1c(%rax),%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  sub    $0x3,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  cmp    %eax,-0x1c(%rbp)
  jne    L3315
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  lea    -0x1c(%rax),%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  sub    $0x2,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  cmp    %eax,-0x1c(%rbp)
  jne    L3315
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  lea    -0x1c(%rax),%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  sub    $0x1,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  cmp    %eax,-0x1c(%rbp)
  jne    L3315
  mov    -0x4(%rbp),%eax
  jmp    L6966
L3315:
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  lea    -0x38(%rax),%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  sub    $0x1,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  cmp    %eax,-0x1c(%rbp)
  jne    L2165
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  lea    -0x54(%rax),%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  sub    $0x2,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  cmp    %eax,-0x1c(%rbp)
  jne    L2165
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  lea    -0x70(%rax),%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  sub    $0x3,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  cmp    %eax,-0x1c(%rbp)
  jne    L2165
  mov    -0x4(%rbp),%eax
  jmp    L6966
L2165:
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  add    $0x1,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  cmp    %eax,-0x1c(%rbp)
  jne    L2099
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  lea    -0x38(%rax),%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  sub    $0x1,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  cmp    %eax,-0x1c(%rbp)
  jne    L2099
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  lea    -0x54(%rax),%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  sub    $0x2,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  cmp    %eax,-0x1c(%rbp)
  jne    L2099
  mov    -0x4(%rbp),%eax
  jmp    L6966
L2099:
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  add    $0x1,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  cmp    %eax,-0x1c(%rbp)
  jne    L4621
  mov    -0x8(%rbp),%eax
  cltq
  lea    0x1(%rax),%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  add    $0x2,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  cmp    %eax,-0x1c(%rbp)
  jne    L4621
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  lea    0x38(%rax),%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  add    $0x3,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  cmp    %eax,-0x1c(%rbp)
  jne    L4621
  mov    -0x4(%rbp),%eax
  jmp    L6966
L4621:
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  lea    0x38(%rax),%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  add    $0x1,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  cmp    %eax,-0x1c(%rbp)
  jne    L5100
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  lea    0x54(%rax),%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  add    $0x2,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  cmp    %eax,-0x1c(%rbp)
  jne    L5100
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  lea    0x70(%rax),%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  add    $0x3,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  cmp    %eax,-0x1c(%rbp)
  jne    L5100
  mov    -0x4(%rbp),%eax
  jmp    L6966
L5100:
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  sub    $0x1,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  cmp    %eax,-0x1c(%rbp)
  jne    L6186
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  lea    0x38(%rax),%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  add    $0x1,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  cmp    %eax,-0x1c(%rbp)
  jne    L6186
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  lea    0x54(%rax),%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  add    $0x2,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  cmp    %eax,-0x1c(%rbp)
  jne    L6186
  mov    -0x4(%rbp),%eax
  jmp    L6966
L6186:
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  sub    $0x1,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  cmp    %eax,-0x1c(%rbp)
  jne    L4882
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  lea    -0x1c(%rax),%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  sub    $0x2,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  cmp    %eax,-0x1c(%rbp)
  jne    L4882
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  lea    0x38(%rax),%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  add    $0x1,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  cmp    %eax,-0x1c(%rbp)
  jne    L4882
  mov    -0x4(%rbp),%eax
  jmp    L6966
L4882:
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  sub    $0x1,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  cmp    %eax,-0x1c(%rbp)
  jne    L3711
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  lea    -0x1c(%rax),%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  sub    $0x2,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  cmp    %eax,-0x1c(%rbp)
  jne    L3711
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  lea    -0x38(%rax),%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  sub    $0x3,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  cmp    %eax,-0x1c(%rbp)
  jne    L3711
  mov    -0x4(%rbp),%eax
  jmp    L6966
L3711:
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  sub    $0x1,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  cmp    %eax,-0x1c(%rbp)
  jne    L6851
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  sub    $0x2,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  cmp    %eax,-0x1c(%rbp)
  je     L6970
L6851:
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  sub    $0x1,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  cmp    %eax,-0x1c(%rbp)
  jne    L2211
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  add    $0x1,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  cmp    %eax,-0x1c(%rbp)
  je     L6970
L2211:
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  add    $0x1,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  cmp    %eax,-0x1c(%rbp)
  jne    L7026
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  add    $0x2,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  cmp    %eax,-0x1c(%rbp)
  jne    L7026
L6970:
  mov    -0x4(%rbp),%eax
  jmp    L6966
L7026:
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  lea    -0x38(%rax),%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  cmp    %eax,-0x1c(%rbp)
  jne    L7607
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  lea    -0x1c(%rax),%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  cmp    %eax,-0x1c(%rbp)
  jne    L7607
  mov    -0x4(%rbp),%eax
  jmp    L6966
L7607:
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  lea    -0x1c(%rax),%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  add    $0x1,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  cmp    %eax,-0x1c(%rbp)
  jne    L7
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  lea    -0x38(%rax),%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  add    $0x2,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  cmp    %eax,-0x1c(%rbp)
  je     L5591
L7:
  mov    -0x8(%rbp),%eax
  cltq
  lea    0x1(%rax),%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  sub    $0x1,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  cmp    %eax,-0x1c(%rbp)
  jne    L5593
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  lea    -0x1c(%rax),%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  add    $0x1,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  cmp    %eax,-0x1c(%rbp)
  je     L5591
L5593:
  mov    -0x8(%rbp),%eax
  cltq
  lea    0x1(%rax),%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  sub    $0x1,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  cmp    %eax,-0x1c(%rbp)
  jne    L958
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  lea    0x38(%rax),%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  sub    $0x2,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  cmp    %eax,-0x1c(%rbp)
  jne    L958
L5591:
  mov    -0x4(%rbp),%eax
  jmp    L6966
L958:
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  lea    -0x1c(%rax),%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  sub    $0x1,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  cmp    %eax,-0x1c(%rbp)
  jne    L3633
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  lea    -0x38(%rax),%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  sub    $0x2,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  cmp    %eax,-0x1c(%rbp)
  je     L7487
L3633:
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  lea    -0x1c(%rax),%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  sub    $0x1,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  cmp    %eax,-0x1c(%rbp)
  jne    L1166
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  lea    -0x1c(%rax),%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  add    $0x1,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  cmp    %eax,-0x1c(%rbp)
  je     L7487
L1166:
  mov    -0x8(%rbp),%eax
  cltq
  lea    0x1(%rax),%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  add    $0x1,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  cmp    %eax,-0x1c(%rbp)
  jne    L85
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  lea    0x38(%rax),%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  add    $0x2,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  cmp    %eax,-0x1c(%rbp)
  jne    L85
L7487:
  mov    -0x4(%rbp),%eax
  jmp    L6966
L85:
  addl   $0x1,-0x4(%rbp)
L3726:
  cmpl   $0x6,-0x4(%rbp)
  jle    L5807
  addl   $0x1,-0x8(%rbp)
L2492:
  cmpl   $0x5,-0x8(%rbp)
  jle    L5140
  movl   $0x0,-0x8(%rbp)
  jmp    L213
L2565:
  movl   $0x0,-0x4(%rbp)
  jmp    L164
L2399:
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  test   %eax,%eax
  jne    L5708
  mov    -0x8(%rbp),%eax
  cltq
  lea    0x1(%rax),%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  test   %eax,%eax
  je     L5708
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  lea    -0x1c(%rax),%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  add    $0x1,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  mov    -0x1c(%rbp),%edx
  neg    %edx
  cmp    %edx,%eax
  jne    L6971
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  lea    -0x1c(%rax),%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  add    $0x2,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  mov    -0x1c(%rbp),%edx
  neg    %edx
  cmp    %edx,%eax
  jne    L6971
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  lea    -0x1c(%rax),%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  add    $0x3,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  mov    -0x1c(%rbp),%edx
  neg    %edx
  cmp    %edx,%eax
  je     L5708
L6971:
  mov    -0x8(%rbp),%eax
  cltq
  lea    0x1(%rax),%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  test   %eax,%eax
  je     L5708
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  lea    -0x1c(%rax),%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  sub    $0x1,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  mov    -0x1c(%rbp),%edx
  neg    %edx
  cmp    %edx,%eax
  jne    L3706
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  lea    -0x1c(%rax),%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  add    $0x1,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  mov    -0x1c(%rbp),%edx
  neg    %edx
  cmp    %edx,%eax
  jne    L3706
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  lea    -0x1c(%rax),%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  add    $0x2,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  mov    -0x1c(%rbp),%edx
  neg    %edx
  cmp    %edx,%eax
  je     L5708
L3706:
  mov    -0x8(%rbp),%eax
  cltq
  lea    0x1(%rax),%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  test   %eax,%eax
  je     L5708
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  lea    -0x1c(%rax),%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  sub    $0x2,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  mov    -0x1c(%rbp),%edx
  neg    %edx
  cmp    %edx,%eax
  jne    L4497
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  lea    -0x1c(%rax),%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  sub    $0x1,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  mov    -0x1c(%rbp),%edx
  neg    %edx
  cmp    %edx,%eax
  jne    L4497
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  lea    -0x1c(%rax),%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  add    $0x1,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  mov    -0x1c(%rbp),%edx
  neg    %edx
  cmp    %edx,%eax
  je     L5708
L4497:
  mov    -0x8(%rbp),%eax
  cltq
  lea    0x1(%rax),%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  test   %eax,%eax
  je     L5708
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  lea    -0x1c(%rax),%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  sub    $0x3,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  mov    -0x1c(%rbp),%edx
  neg    %edx
  cmp    %edx,%eax
  jne    L3005
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  lea    -0x1c(%rax),%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  sub    $0x2,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  mov    -0x1c(%rbp),%edx
  neg    %edx
  cmp    %edx,%eax
  jne    L3005
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  lea    -0x1c(%rax),%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  sub    $0x1,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  mov    -0x1c(%rbp),%edx
  neg    %edx
  cmp    %edx,%eax
  je     L5708
L3005:
  mov    -0x8(%rbp),%eax
  cltq
  lea    0x1(%rax),%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  test   %eax,%eax
  je     L5708
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  lea    -0x38(%rax),%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  sub    $0x1,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  mov    -0x1c(%rbp),%edx
  neg    %edx
  cmp    %edx,%eax
  jne    L6535
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  lea    -0x54(%rax),%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  sub    $0x2,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  mov    -0x1c(%rbp),%edx
  neg    %edx
  cmp    %edx,%eax
  jne    L6535
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  lea    -0x70(%rax),%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  sub    $0x3,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  mov    -0x1c(%rbp),%edx
  neg    %edx
  cmp    %edx,%eax
  je     L5708
L6535:
  mov    -0x8(%rbp),%eax
  cltq
  lea    0x1(%rax),%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  test   %eax,%eax
  je     L5708
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  add    $0x1,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  mov    -0x1c(%rbp),%edx
  neg    %edx
  cmp    %edx,%eax
  jne    L5064
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  lea    -0x38(%rax),%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  sub    $0x1,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  mov    -0x1c(%rbp),%edx
  neg    %edx
  cmp    %edx,%eax
  jne    L5064
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  lea    -0x54(%rax),%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  sub    $0x2,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  mov    -0x1c(%rbp),%edx
  neg    %edx
  cmp    %edx,%eax
  je     L5708
L5064:
  mov    -0x8(%rbp),%eax
  cltq
  lea    0x1(%rax),%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  test   %eax,%eax
  je     L5708
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  add    $0x1,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  mov    -0x1c(%rbp),%edx
  neg    %edx
  cmp    %edx,%eax
  jne    L4187
  mov    -0x8(%rbp),%eax
  cltq
  lea    0x1(%rax),%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  add    $0x2,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  mov    -0x1c(%rbp),%edx
  neg    %edx
  cmp    %edx,%eax
  jne    L4187
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  lea    -0x38(%rax),%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  sub    $0x1,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  mov    -0x1c(%rbp),%edx
  neg    %edx
  cmp    %edx,%eax
  je     L5708
L4187:
  mov    -0x8(%rbp),%eax
  cltq
  lea    0x1(%rax),%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  test   %eax,%eax
  je     L5708
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  add    $0x1,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  mov    -0x1c(%rbp),%edx
  neg    %edx
  cmp    %edx,%eax
  jne    L4827
  mov    -0x8(%rbp),%eax
  cltq
  lea    0x1(%rax),%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  add    $0x2,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  mov    -0x1c(%rbp),%edx
  neg    %edx
  cmp    %edx,%eax
  jne    L4827
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  lea    0x38(%rax),%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  add    $0x3,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  mov    -0x1c(%rbp),%edx
  neg    %edx
  cmp    %edx,%eax
  je     L5708
L4827:
  mov    -0x8(%rbp),%eax
  cltq
  lea    0x1(%rax),%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  test   %eax,%eax
  je     L5708
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  lea    0x38(%rax),%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  add    $0x1,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  mov    -0x1c(%rbp),%edx
  neg    %edx
  cmp    %edx,%eax
  jne    L3062
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  lea    0x54(%rax),%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  add    $0x2,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  mov    -0x1c(%rbp),%edx
  neg    %edx
  cmp    %edx,%eax
  jne    L3062
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  lea    0x70(%rax),%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  add    $0x3,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  mov    -0x1c(%rbp),%edx
  neg    %edx
  cmp    %edx,%eax
  je     L5708
L3062:
  mov    -0x8(%rbp),%eax
  cltq
  lea    0x1(%rax),%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  test   %eax,%eax
  je     L5708
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  sub    $0x1,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  mov    -0x1c(%rbp),%edx
  neg    %edx
  cmp    %edx,%eax
  jne    L5495
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  lea    0x38(%rax),%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  add    $0x1,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  mov    -0x1c(%rbp),%edx
  neg    %edx
  cmp    %edx,%eax
  jne    L5495
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  lea    0x54(%rax),%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  add    $0x2,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  mov    -0x1c(%rbp),%edx
  neg    %edx
  cmp    %edx,%eax
  je     L5708
L5495:
  mov    -0x8(%rbp),%eax
  cltq
  lea    0x1(%rax),%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  test   %eax,%eax
  je     L5708
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  sub    $0x1,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  mov    -0x1c(%rbp),%edx
  neg    %edx
  cmp    %edx,%eax
  jne    L8
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  lea    -0x1c(%rax),%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  sub    $0x2,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  mov    -0x1c(%rbp),%edx
  neg    %edx
  cmp    %edx,%eax
  jne    L8
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  lea    0x38(%rax),%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  add    $0x1,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  mov    -0x1c(%rbp),%edx
  neg    %edx
  cmp    %edx,%eax
  je     L5708
L8:
  mov    -0x8(%rbp),%eax
  cltq
  lea    0x1(%rax),%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  test   %eax,%eax
  je     L5708
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  sub    $0x1,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  mov    -0x1c(%rbp),%edx
  neg    %edx
  cmp    %edx,%eax
  jne    L704
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  lea    -0x1c(%rax),%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  sub    $0x2,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  mov    -0x1c(%rbp),%edx
  neg    %edx
  cmp    %edx,%eax
  jne    L704
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  lea    -0x38(%rax),%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  sub    $0x3,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  mov    -0x1c(%rbp),%edx
  neg    %edx
  cmp    %edx,%eax
  je     L5708
L704:
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  sub    $0x1,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  cmp    %eax,-0x1c(%rbp)
  je     L5329
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  add    $0x1,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  cmp    %eax,-0x1c(%rbp)
  je     L5329
  mov    -0x8(%rbp),%eax
  cltq
  lea    0x1(%rax),%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  add    $0x1,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  cmp    %eax,-0x1c(%rbp)
  je     L5329
  mov    -0x8(%rbp),%eax
  cltq
  lea    0x1(%rax),%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  sub    $0x1,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  cmp    %eax,-0x1c(%rbp)
  je     L5329
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  lea    -0x1c(%rax),%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  sub    $0x1,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  cmp    %eax,-0x1c(%rbp)
  je     L5329
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  lea    -0x1c(%rax),%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  add    $0x1,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  cmp    %eax,-0x1c(%rbp)
  jne    L3016
L5329:
  mov    -0x4(%rbp),%eax
  jmp    L6966
L3016:
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  lea    -0x1c(%rax),%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  cmp    %eax,-0x1c(%rbp)
  jne    L5708
  mov    -0x4(%rbp),%eax
  jmp    L6966
L5708:
  addl   $0x1,-0x4(%rbp)
L164:
  cmpl   $0x6,-0x4(%rbp)
  jle    L2399
  addl   $0x1,-0x8(%rbp)
L213:
  cmpl   $0x5,-0x8(%rbp)
  jle    L2565
  movl   $0x0,-0x8(%rbp)
  jmp    L2891
L4281:
  movl   $0x0,-0x4(%rbp)
  jmp    L7132
L6149:
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  test   %eax,%eax
  jne    L5116
  mov    -0x8(%rbp),%eax
  cltq
  lea    0x1(%rax),%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  test   %eax,%eax
  je     L5116
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  lea    -0x1c(%rax),%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  add    $0x1,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  mov    -0x1c(%rbp),%edx
  neg    %edx
  cmp    %edx,%eax
  jne    L2161
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  lea    -0x1c(%rax),%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  add    $0x2,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  mov    -0x1c(%rbp),%edx
  neg    %edx
  cmp    %edx,%eax
  jne    L2161
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  lea    -0x1c(%rax),%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  add    $0x3,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  mov    -0x1c(%rbp),%edx
  neg    %edx
  cmp    %edx,%eax
  je     L5116
L2161:
  mov    -0x8(%rbp),%eax
  cltq
  lea    0x1(%rax),%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  test   %eax,%eax
  je     L5116
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  lea    -0x1c(%rax),%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  sub    $0x1,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  mov    -0x1c(%rbp),%edx
  neg    %edx
  cmp    %edx,%eax
  jne    L3972
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  lea    -0x1c(%rax),%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  add    $0x1,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  mov    -0x1c(%rbp),%edx
  neg    %edx
  cmp    %edx,%eax
  jne    L3972
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  lea    -0x1c(%rax),%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  add    $0x2,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  mov    -0x1c(%rbp),%edx
  neg    %edx
  cmp    %edx,%eax
  je     L5116
L3972:
  mov    -0x8(%rbp),%eax
  cltq
  lea    0x1(%rax),%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  test   %eax,%eax
  je     L5116
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  lea    -0x1c(%rax),%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  sub    $0x2,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  mov    -0x1c(%rbp),%edx
  neg    %edx
  cmp    %edx,%eax
  jne    L1650
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  lea    -0x1c(%rax),%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  sub    $0x1,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  mov    -0x1c(%rbp),%edx
  neg    %edx
  cmp    %edx,%eax
  jne    L1650
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  lea    -0x1c(%rax),%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  add    $0x1,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  mov    -0x1c(%rbp),%edx
  neg    %edx
  cmp    %edx,%eax
  je     L5116
L1650:
  mov    -0x8(%rbp),%eax
  cltq
  lea    0x1(%rax),%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  test   %eax,%eax
  je     L5116
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  lea    -0x1c(%rax),%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  sub    $0x3,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  mov    -0x1c(%rbp),%edx
  neg    %edx
  cmp    %edx,%eax
  jne    L3404
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  lea    -0x1c(%rax),%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  sub    $0x2,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  mov    -0x1c(%rbp),%edx
  neg    %edx
  cmp    %edx,%eax
  jne    L3404
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  lea    -0x1c(%rax),%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  sub    $0x1,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  mov    -0x1c(%rbp),%edx
  neg    %edx
  cmp    %edx,%eax
  je     L5116
L3404:
  mov    -0x8(%rbp),%eax
  cltq
  lea    0x1(%rax),%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  test   %eax,%eax
  je     L5116
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  lea    -0x38(%rax),%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  sub    $0x1,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  mov    -0x1c(%rbp),%edx
  neg    %edx
  cmp    %edx,%eax
  jne    L2493
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  lea    -0x54(%rax),%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  sub    $0x2,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  mov    -0x1c(%rbp),%edx
  neg    %edx
  cmp    %edx,%eax
  jne    L2493
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  lea    -0x70(%rax),%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  sub    $0x3,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  mov    -0x1c(%rbp),%edx
  neg    %edx
  cmp    %edx,%eax
  je     L5116
L2493:
  mov    -0x8(%rbp),%eax
  cltq
  lea    0x1(%rax),%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  test   %eax,%eax
  je     L5116
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  add    $0x1,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  mov    -0x1c(%rbp),%edx
  neg    %edx
  cmp    %edx,%eax
  jne    L6323
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  lea    -0x38(%rax),%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  sub    $0x1,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  mov    -0x1c(%rbp),%edx
  neg    %edx
  cmp    %edx,%eax
  jne    L6323
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  lea    -0x54(%rax),%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  sub    $0x2,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  mov    -0x1c(%rbp),%edx
  neg    %edx
  cmp    %edx,%eax
  je     L5116
L6323:
  mov    -0x8(%rbp),%eax
  cltq
  lea    0x1(%rax),%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  test   %eax,%eax
  je     L5116
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  add    $0x1,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  mov    -0x1c(%rbp),%edx
  neg    %edx
  cmp    %edx,%eax
  jne    L6224
  mov    -0x8(%rbp),%eax
  cltq
  lea    0x1(%rax),%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  add    $0x2,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  mov    -0x1c(%rbp),%edx
  neg    %edx
  cmp    %edx,%eax
  jne    L6224
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  lea    -0x38(%rax),%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  sub    $0x1,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  mov    -0x1c(%rbp),%edx
  neg    %edx
  cmp    %edx,%eax
  je     L5116
L6224:
  mov    -0x8(%rbp),%eax
  cltq
  lea    0x1(%rax),%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  test   %eax,%eax
  je     L5116
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  add    $0x1,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  mov    -0x1c(%rbp),%edx
  neg    %edx
  cmp    %edx,%eax
  jne    L6875
  mov    -0x8(%rbp),%eax
  cltq
  lea    0x1(%rax),%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  add    $0x2,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  mov    -0x1c(%rbp),%edx
  neg    %edx
  cmp    %edx,%eax
  jne    L6875
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  lea    0x38(%rax),%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  add    $0x3,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  mov    -0x1c(%rbp),%edx
  neg    %edx
  cmp    %edx,%eax
  je     L5116
L6875:
  mov    -0x8(%rbp),%eax
  cltq
  lea    0x1(%rax),%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  test   %eax,%eax
  je     L5116
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  lea    0x38(%rax),%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  add    $0x1,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  mov    -0x1c(%rbp),%edx
  neg    %edx
  cmp    %edx,%eax
  jne    L3858
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  lea    0x54(%rax),%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  add    $0x2,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  mov    -0x1c(%rbp),%edx
  neg    %edx
  cmp    %edx,%eax
  jne    L3858
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  lea    0x70(%rax),%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  add    $0x3,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  mov    -0x1c(%rbp),%edx
  neg    %edx
  cmp    %edx,%eax
  je     L5116
L3858:
  mov    -0x8(%rbp),%eax
  cltq
  lea    0x1(%rax),%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  test   %eax,%eax
  je     L5116
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  sub    $0x1,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  mov    -0x1c(%rbp),%edx
  neg    %edx
  cmp    %edx,%eax
  jne    L5181
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  lea    0x38(%rax),%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  add    $0x1,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  mov    -0x1c(%rbp),%edx
  neg    %edx
  cmp    %edx,%eax
  jne    L5181
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  lea    0x54(%rax),%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  add    $0x2,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  mov    -0x1c(%rbp),%edx
  neg    %edx
  cmp    %edx,%eax
  je     L5116
L5181:
  mov    -0x8(%rbp),%eax
  cltq
  lea    0x1(%rax),%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  test   %eax,%eax
  je     L5116
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  sub    $0x1,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  mov    -0x1c(%rbp),%edx
  neg    %edx
  cmp    %edx,%eax
  jne    L7542
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  lea    -0x1c(%rax),%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  sub    $0x2,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  mov    -0x1c(%rbp),%edx
  neg    %edx
  cmp    %edx,%eax
  jne    L7542
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  lea    0x38(%rax),%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  add    $0x1,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  mov    -0x1c(%rbp),%edx
  neg    %edx
  cmp    %edx,%eax
  je     L5116
L7542:
  mov    -0x8(%rbp),%eax
  cltq
  lea    0x1(%rax),%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  test   %eax,%eax
  je     L5116
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  sub    $0x1,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  mov    -0x1c(%rbp),%edx
  neg    %edx
  cmp    %edx,%eax
  jne    L4019
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  lea    -0x1c(%rax),%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  sub    $0x2,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  mov    -0x1c(%rbp),%edx
  neg    %edx
  cmp    %edx,%eax
  jne    L4019
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  lea    -0x38(%rax),%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  sub    $0x3,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  mov    -0x1c(%rbp),%edx
  neg    %edx
  cmp    %edx,%eax
  je     L5116
L4019:
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  sub    $0x1,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  mov    -0x1c(%rbp),%edx
  neg    %edx
  cmp    %edx,%eax
  jne    L2609
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  sub    $0x2,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  mov    -0x1c(%rbp),%edx
  neg    %edx
  cmp    %edx,%eax
  je     L3374
L2609:
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  sub    $0x1,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  mov    -0x1c(%rbp),%edx
  neg    %edx
  cmp    %edx,%eax
  jne    L6148
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  add    $0x1,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  mov    -0x1c(%rbp),%edx
  neg    %edx
  cmp    %edx,%eax
  je     L3374
L6148:
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  add    $0x1,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  mov    -0x1c(%rbp),%edx
  neg    %edx
  cmp    %edx,%eax
  jne    L1644
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  add    $0x2,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  mov    -0x1c(%rbp),%edx
  neg    %edx
  cmp    %edx,%eax
  jne    L1644
L3374:
  mov    -0x4(%rbp),%eax
  jmp    L6966
L1644:
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  lea    -0x38(%rax),%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  mov    -0x1c(%rbp),%edx
  neg    %edx
  cmp    %edx,%eax
  jne    L217
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  lea    -0x1c(%rax),%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  mov    -0x1c(%rbp),%edx
  neg    %edx
  cmp    %edx,%eax
  jne    L217
  mov    -0x4(%rbp),%eax
  jmp    L6966
L217:
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  lea    -0x1c(%rax),%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  add    $0x1,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  mov    -0x1c(%rbp),%edx
  neg    %edx
  cmp    %edx,%eax
  jne    L3193
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  lea    -0x38(%rax),%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  add    $0x2,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  mov    -0x1c(%rbp),%edx
  neg    %edx
  cmp    %edx,%eax
  je     L5688
L3193:
  mov    -0x8(%rbp),%eax
  cltq
  lea    0x1(%rax),%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  sub    $0x1,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  mov    -0x1c(%rbp),%edx
  neg    %edx
  cmp    %edx,%eax
  jne    L100
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  lea    -0x1c(%rax),%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  add    $0x1,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  mov    -0x1c(%rbp),%edx
  neg    %edx
  cmp    %edx,%eax
  je     L5688
L100:
  mov    -0x8(%rbp),%eax
  cltq
  lea    0x1(%rax),%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  sub    $0x1,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  mov    -0x1c(%rbp),%edx
  neg    %edx
  cmp    %edx,%eax
  jne    L7450
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  lea    0x38(%rax),%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  sub    $0x2,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  mov    -0x1c(%rbp),%edx
  neg    %edx
  cmp    %edx,%eax
  jne    L7450
L5688:
  mov    -0x4(%rbp),%eax
  jmp    L6966
L7450:
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  lea    -0x1c(%rax),%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  sub    $0x1,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  mov    -0x1c(%rbp),%edx
  neg    %edx
  cmp    %edx,%eax
  jne    L6801
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  lea    -0x38(%rax),%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  sub    $0x2,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  mov    -0x1c(%rbp),%edx
  neg    %edx
  cmp    %edx,%eax
  je     L5749
L6801:
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  lea    -0x1c(%rax),%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  sub    $0x1,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  mov    -0x1c(%rbp),%edx
  neg    %edx
  cmp    %edx,%eax
  jne    L4868
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  lea    -0x1c(%rax),%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  add    $0x1,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  mov    -0x1c(%rbp),%edx
  neg    %edx
  cmp    %edx,%eax
  je     L5749
L4868:
  mov    -0x8(%rbp),%eax
  cltq
  lea    0x1(%rax),%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  add    $0x1,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  mov    -0x1c(%rbp),%edx
  neg    %edx
  cmp    %edx,%eax
  jne    L5904
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  lea    0x38(%rax),%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  add    $0x2,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  mov    -0x1c(%rbp),%edx
  neg    %edx
  cmp    %edx,%eax
  jne    L5904
L5749:
  mov    -0x4(%rbp),%eax
  jmp    L6966
L5904:
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  sub    $0x1,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  mov    -0x1c(%rbp),%edx
  neg    %edx
  cmp    %edx,%eax
  je     L7661
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  add    $0x1,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  mov    -0x1c(%rbp),%edx
  neg    %edx
  cmp    %edx,%eax
  je     L7661
  mov    -0x8(%rbp),%eax
  cltq
  lea    0x1(%rax),%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  add    $0x1,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  mov    -0x1c(%rbp),%edx
  neg    %edx
  cmp    %edx,%eax
  je     L7661
  mov    -0x8(%rbp),%eax
  cltq
  lea    0x1(%rax),%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  mov    %rax,%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  sub    $0x1,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  mov    -0x1c(%rbp),%edx
  neg    %edx
  cmp    %edx,%eax
  je     L7661
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  lea    -0x1c(%rax),%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  sub    $0x1,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  mov    -0x1c(%rbp),%edx
  neg    %edx
  cmp    %edx,%eax
  je     L7661
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  lea    -0x1c(%rax),%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  add    $0x1,%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  mov    -0x1c(%rbp),%edx
  neg    %edx
  cmp    %edx,%eax
  jne    L5653
L7661:
  mov    -0x4(%rbp),%eax
  jmp    L6966
L5653:
  mov    -0x8(%rbp),%eax
  movslq %eax,%rdx
  mov    %rdx,%rax
  shl    $0x3,%rax
  sub    %rdx,%rax
  shl    $0x2,%rax
  lea    -0x1c(%rax),%rdx
  mov    -0x18(%rbp),%rax
  add    %rax,%rdx
  mov    -0x4(%rbp),%eax
  cltq
  mov    (%rdx,%rax,4),%eax
  mov    -0x1c(%rbp),%edx
  neg    %edx
  cmp    %edx,%eax
  jne    L5116
  mov    -0x4(%rbp),%eax
  jmp    L6966
L5116:
  addl   $0x1,-0x4(%rbp)
L7132:
  cmpl   $0x6,-0x4(%rbp)
  jle    L6149
  addl   $0x1,-0x8(%rbp)
L2891:
  cmpl   $0x5,-0x8(%rbp)
  jle    L4281
L5148:
  mov    $0x0,%eax
  call   <rand@plt>
  movslq %eax,%rdx
  imul   $0xffffffff92492493,%rdx,%rdx
  shr    $0x20,%rdx
  add    %eax,%edx
  sar    $0x2,%edx
  mov    %eax,%ecx
  sar    $0x1f,%ecx
  sub    %ecx,%edx
  mov    %edx,-0x4(%rbp)
  mov    -0x4(%rbp),%ecx
  mov    %ecx,%edx
  shl    $0x3,%edx
  sub    %ecx,%edx
  sub    %edx,%eax
  mov    %eax,-0x4(%rbp)
  mov    -0x18(%rbp),%rax
  mov    -0x4(%rbp),%edx
  movslq %edx,%rdx
  mov    (%rax,%rdx,4),%eax
  test   %eax,%eax
  jne    L5148
  mov    -0x4(%rbp),%eax
  mov    %eax,%esi
  lea    D0(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  mov    -0x4(%rbp),%eax
L6966:
  leave
  ret
```

tool_calls: name: disassemble_data
arguments: label: D0
datatype: string

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