user: Converte this assembly snippet into its equivalent C code:

```asm
<check_box>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  mov    %edi,-0x4(%rbp)
  mov    %esi,-0x8(%rbp)
  mov    %edx,-0xc(%rbp)
  mov    %ecx,-0x10(%rbp)
  mov    %r8,-0x18(%rbp)
  mov    %r9,-0x20(%rbp)
  cmpl   $0x0,-0x4(%rbp)
  js     L339
  cmpl   $0x2,-0x4(%rbp)
  jg     L339
  cmpl   $0x0,-0x8(%rbp)
  js     L339
  cmpl   $0x2,-0x8(%rbp)
  jg     L339
  movl   $0x0,-0xc(%rbp)
  jmp    L178
L294:
  movl   $0x0,-0x10(%rbp)
  jmp    L1779
L79:
  mov    -0xc(%rbp),%edx
  mov    %edx,%eax
  shl    $0x3,%eax
  add    %eax,%edx
  mov    -0x10(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x18(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%eax
  test   %eax,%eax
  je     L1250
  mov    -0xc(%rbp),%edx
  mov    %edx,%eax
  shl    $0x3,%eax
  add    %eax,%edx
  mov    -0x10(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x18(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%eax
  cmp    $0x1,%eax
  jne    L1442
  mov    -0x20(%rbp),%rax
  movl   $0x1,(%rax)
  jmp    L1250
L1442:
  mov    -0xc(%rbp),%edx
  mov    %edx,%eax
  shl    $0x3,%eax
  add    %eax,%edx
  mov    -0x10(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x18(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%eax
  cmp    $0x2,%eax
  jne    L2354
  mov    -0x20(%rbp),%rax
  add    $0x4,%rax
  movl   $0x2,(%rax)
  jmp    L1250
L2354:
  mov    -0xc(%rbp),%edx
  mov    %edx,%eax
  shl    $0x3,%eax
  add    %eax,%edx
  mov    -0x10(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x18(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%eax
  cmp    $0x3,%eax
  jne    L1662
  mov    -0x20(%rbp),%rax
  add    $0x8,%rax
  movl   $0x3,(%rax)
  jmp    L1250
L1662:
  mov    -0xc(%rbp),%edx
  mov    %edx,%eax
  shl    $0x3,%eax
  add    %eax,%edx
  mov    -0x10(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x18(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%eax
  cmp    $0x4,%eax
  jne    L64
  mov    -0x20(%rbp),%rax
  add    $0xc,%rax
  movl   $0x4,(%rax)
  jmp    L1250
L64:
  mov    -0xc(%rbp),%edx
  mov    %edx,%eax
  shl    $0x3,%eax
  add    %eax,%edx
  mov    -0x10(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x18(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%eax
  cmp    $0x5,%eax
  jne    L734
  mov    -0x20(%rbp),%rax
  add    $0x10,%rax
  movl   $0x5,(%rax)
  jmp    L1250
L734:
  mov    -0xc(%rbp),%edx
  mov    %edx,%eax
  shl    $0x3,%eax
  add    %eax,%edx
  mov    -0x10(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x18(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%eax
  cmp    $0x6,%eax
  jne    L136
  mov    -0x20(%rbp),%rax
  add    $0x14,%rax
  movl   $0x6,(%rax)
  jmp    L1250
L136:
  mov    -0xc(%rbp),%edx
  mov    %edx,%eax
  shl    $0x3,%eax
  add    %eax,%edx
  mov    -0x10(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x18(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%eax
  cmp    $0x7,%eax
  jne    L1281
  mov    -0x20(%rbp),%rax
  add    $0x18,%rax
  movl   $0x7,(%rax)
  jmp    L1250
L1281:
  mov    -0xc(%rbp),%edx
  mov    %edx,%eax
  shl    $0x3,%eax
  add    %eax,%edx
  mov    -0x10(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x18(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%eax
  cmp    $0x8,%eax
  jne    L1933
  mov    -0x20(%rbp),%rax
  add    $0x1c,%rax
  movl   $0x8,(%rax)
  jmp    L1250
L1933:
  mov    -0xc(%rbp),%edx
  mov    %edx,%eax
  shl    $0x3,%eax
  add    %eax,%edx
  mov    -0x10(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x18(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%eax
  cmp    $0x9,%eax
  jne    L1250
  mov    -0x20(%rbp),%rax
  add    $0x20,%rax
  movl   $0x9,(%rax)
L1250:
  addl   $0x1,-0x10(%rbp)
L1779:
  cmpl   $0x2,-0x10(%rbp)
  jle    L79
  addl   $0x1,-0xc(%rbp)
L178:
  cmpl   $0x2,-0xc(%rbp)
  jle    L294
  jmp    L2192
L339:
  cmpl   $0x0,-0x4(%rbp)
  js     L148
  cmpl   $0x2,-0x4(%rbp)
  jg     L148
  cmpl   $0x2,-0x8(%rbp)
  jle    L148
  cmpl   $0x5,-0x8(%rbp)
  jg     L148
  movl   $0x0,-0xc(%rbp)
  jmp    L754
L2084:
  movl   $0x3,-0x10(%rbp)
  jmp    L1014
L2232:
  mov    -0xc(%rbp),%edx
  mov    %edx,%eax
  shl    $0x3,%eax
  add    %eax,%edx
  mov    -0x10(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x18(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%eax
  test   %eax,%eax
  je     L58
  mov    -0xc(%rbp),%edx
  mov    %edx,%eax
  shl    $0x3,%eax
  add    %eax,%edx
  mov    -0x10(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x18(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%eax
  cmp    $0x1,%eax
  jne    L1022
  mov    -0x20(%rbp),%rax
  movl   $0x1,(%rax)
  jmp    L58
L1022:
  mov    -0xc(%rbp),%edx
  mov    %edx,%eax
  shl    $0x3,%eax
  add    %eax,%edx
  mov    -0x10(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x18(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%eax
  cmp    $0x2,%eax
  jne    L942
  mov    -0x20(%rbp),%rax
  add    $0x4,%rax
  movl   $0x2,(%rax)
  jmp    L58
L942:
  mov    -0xc(%rbp),%edx
  mov    %edx,%eax
  shl    $0x3,%eax
  add    %eax,%edx
  mov    -0x10(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x18(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%eax
  cmp    $0x3,%eax
  jne    L1073
  mov    -0x20(%rbp),%rax
  add    $0x8,%rax
  movl   $0x3,(%rax)
  jmp    L58
L1073:
  mov    -0xc(%rbp),%edx
  mov    %edx,%eax
  shl    $0x3,%eax
  add    %eax,%edx
  mov    -0x10(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x18(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%eax
  cmp    $0x4,%eax
  jne    L1995
  mov    -0x20(%rbp),%rax
  add    $0xc,%rax
  movl   $0x4,(%rax)
  jmp    L58
L1995:
  mov    -0xc(%rbp),%edx
  mov    %edx,%eax
  shl    $0x3,%eax
  add    %eax,%edx
  mov    -0x10(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x18(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%eax
  cmp    $0x5,%eax
  jne    L2177
  mov    -0x20(%rbp),%rax
  add    $0x10,%rax
  movl   $0x5,(%rax)
  jmp    L58
L2177:
  mov    -0xc(%rbp),%edx
  mov    %edx,%eax
  shl    $0x3,%eax
  add    %eax,%edx
  mov    -0x10(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x18(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%eax
  cmp    $0x6,%eax
  jne    L1031
  mov    -0x20(%rbp),%rax
  add    $0x14,%rax
  movl   $0x6,(%rax)
  jmp    L58
L1031:
  mov    -0xc(%rbp),%edx
  mov    %edx,%eax
  shl    $0x3,%eax
  add    %eax,%edx
  mov    -0x10(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x18(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%eax
  cmp    $0x7,%eax
  jne    L196
  mov    -0x20(%rbp),%rax
  add    $0x18,%rax
  movl   $0x7,(%rax)
  jmp    L58
L196:
  mov    -0xc(%rbp),%edx
  mov    %edx,%eax
  shl    $0x3,%eax
  add    %eax,%edx
  mov    -0x10(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x18(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%eax
  cmp    $0x8,%eax
  jne    L1907
  mov    -0x20(%rbp),%rax
  add    $0x1c,%rax
  movl   $0x8,(%rax)
  jmp    L58
L1907:
  mov    -0xc(%rbp),%edx
  mov    %edx,%eax
  shl    $0x3,%eax
  add    %eax,%edx
  mov    -0x10(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x18(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%eax
  cmp    $0x9,%eax
  jne    L58
  mov    -0x20(%rbp),%rax
  add    $0x20,%rax
  movl   $0x9,(%rax)
L58:
  addl   $0x1,-0x10(%rbp)
L1014:
  cmpl   $0x5,-0x10(%rbp)
  jle    L2232
  addl   $0x1,-0xc(%rbp)
L754:
  cmpl   $0x2,-0xc(%rbp)
  jle    L2084
  jmp    L2192
L148:
  cmpl   $0x0,-0x4(%rbp)
  js     L1520
  cmpl   $0x2,-0x4(%rbp)
  jg     L1520
  cmpl   $0x6,-0x8(%rbp)
  jle    L1520
  cmpl   $0x8,-0x8(%rbp)
  jg     L1520
  movl   $0x0,-0xc(%rbp)
  jmp    L1213
L1976:
  movl   $0x7,-0x10(%rbp)
  jmp    L1307
L1843:
  mov    -0xc(%rbp),%edx
  mov    %edx,%eax
  shl    $0x3,%eax
  add    %eax,%edx
  mov    -0x10(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x18(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%eax
  test   %eax,%eax
  je     L1634
  mov    -0xc(%rbp),%edx
  mov    %edx,%eax
  shl    $0x3,%eax
  add    %eax,%edx
  mov    -0x10(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x18(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%eax
  cmp    $0x1,%eax
  jne    L796
  mov    -0x20(%rbp),%rax
  movl   $0x1,(%rax)
  jmp    L1634
L796:
  mov    -0xc(%rbp),%edx
  mov    %edx,%eax
  shl    $0x3,%eax
  add    %eax,%edx
  mov    -0x10(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x18(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%eax
  cmp    $0x2,%eax
  jne    L1925
  mov    -0x20(%rbp),%rax
  add    $0x4,%rax
  movl   $0x2,(%rax)
  jmp    L1634
L1925:
  mov    -0xc(%rbp),%edx
  mov    %edx,%eax
  shl    $0x3,%eax
  add    %eax,%edx
  mov    -0x10(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x18(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%eax
  cmp    $0x3,%eax
  jne    L2371
  mov    -0x20(%rbp),%rax
  add    $0x8,%rax
  movl   $0x3,(%rax)
  jmp    L1634
L2371:
  mov    -0xc(%rbp),%edx
  mov    %edx,%eax
  shl    $0x3,%eax
  add    %eax,%edx
  mov    -0x10(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x18(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%eax
  cmp    $0x4,%eax
  jne    L2382
  mov    -0x20(%rbp),%rax
  add    $0xc,%rax
  movl   $0x4,(%rax)
  jmp    L1634
L2382:
  mov    -0xc(%rbp),%edx
  mov    %edx,%eax
  shl    $0x3,%eax
  add    %eax,%edx
  mov    -0x10(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x18(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%eax
  cmp    $0x5,%eax
  jne    L1563
  mov    -0x20(%rbp),%rax
  add    $0x10,%rax
  movl   $0x5,(%rax)
  jmp    L1634
L1563:
  mov    -0xc(%rbp),%edx
  mov    %edx,%eax
  shl    $0x3,%eax
  add    %eax,%edx
  mov    -0x10(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x18(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%eax
  cmp    $0x6,%eax
  jne    L1354
  mov    -0x20(%rbp),%rax
  add    $0x14,%rax
  movl   $0x6,(%rax)
  jmp    L1634
L1354:
  mov    -0xc(%rbp),%edx
  mov    %edx,%eax
  shl    $0x3,%eax
  add    %eax,%edx
  mov    -0x10(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x18(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%eax
  cmp    $0x7,%eax
  jne    L2416
  mov    -0x20(%rbp),%rax
  add    $0x18,%rax
  movl   $0x7,(%rax)
  jmp    L1634
L2416:
  mov    -0xc(%rbp),%edx
  mov    %edx,%eax
  shl    $0x3,%eax
  add    %eax,%edx
  mov    -0x10(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x18(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%eax
  cmp    $0x8,%eax
  jne    L411
  mov    -0x20(%rbp),%rax
  add    $0x1c,%rax
  movl   $0x8,(%rax)
  jmp    L1634
L411:
  mov    -0xc(%rbp),%edx
  mov    %edx,%eax
  shl    $0x3,%eax
  add    %eax,%edx
  mov    -0x10(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x18(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%eax
  cmp    $0x9,%eax
  jne    L1634
  mov    -0x20(%rbp),%rax
  add    $0x20,%rax
  movl   $0x9,(%rax)
L1634:
  addl   $0x1,-0x10(%rbp)
L1307:
  cmpl   $0x8,-0x10(%rbp)
  jle    L1843
  addl   $0x1,-0xc(%rbp)
L1213:
  cmpl   $0x2,-0xc(%rbp)
  jle    L1976
  jmp    L2192
L1520:
  cmpl   $0x2,-0x4(%rbp)
  jle    L2385
  cmpl   $0x5,-0x4(%rbp)
  jg     L2385
  cmpl   $0x0,-0x8(%rbp)
  js     L2385
  cmpl   $0x2,-0x8(%rbp)
  jg     L2385
  movl   $0x3,-0xc(%rbp)
  jmp    L2339
L1167:
  movl   $0x0,-0x10(%rbp)
  jmp    L526
L2022:
  mov    -0xc(%rbp),%edx
  mov    %edx,%eax
  shl    $0x3,%eax
  add    %eax,%edx
  mov    -0x10(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x18(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%eax
  test   %eax,%eax
  je     L1555
  mov    -0xc(%rbp),%edx
  mov    %edx,%eax
  shl    $0x3,%eax
  add    %eax,%edx
  mov    -0x10(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x18(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%eax
  cmp    $0x1,%eax
  jne    L367
  mov    -0x20(%rbp),%rax
  movl   $0x1,(%rax)
  jmp    L1555
L367:
  mov    -0xc(%rbp),%edx
  mov    %edx,%eax
  shl    $0x3,%eax
  add    %eax,%edx
  mov    -0x10(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x18(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%eax
  cmp    $0x2,%eax
  jne    L125
  mov    -0x20(%rbp),%rax
  add    $0x4,%rax
  movl   $0x2,(%rax)
  jmp    L1555
L125:
  mov    -0xc(%rbp),%edx
  mov    %edx,%eax
  shl    $0x3,%eax
  add    %eax,%edx
  mov    -0x10(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x18(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%eax
  cmp    $0x3,%eax
  jne    L2112
  mov    -0x20(%rbp),%rax
  add    $0x8,%rax
  movl   $0x3,(%rax)
  jmp    L1555
L2112:
  mov    -0xc(%rbp),%edx
  mov    %edx,%eax
  shl    $0x3,%eax
  add    %eax,%edx
  mov    -0x10(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x18(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%eax
  cmp    $0x4,%eax
  jne    L1440
  mov    -0x20(%rbp),%rax
  add    $0xc,%rax
  movl   $0x4,(%rax)
  jmp    L1555
L1440:
  mov    -0xc(%rbp),%edx
  mov    %edx,%eax
  shl    $0x3,%eax
  add    %eax,%edx
  mov    -0x10(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x18(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%eax
  cmp    $0x5,%eax
  jne    L1208
  mov    -0x20(%rbp),%rax
  add    $0x10,%rax
  movl   $0x5,(%rax)
  jmp    L1555
L1208:
  mov    -0xc(%rbp),%edx
  mov    %edx,%eax
  shl    $0x3,%eax
  add    %eax,%edx
  mov    -0x10(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x18(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%eax
  cmp    $0x6,%eax
  jne    L1942
  mov    -0x20(%rbp),%rax
  add    $0x14,%rax
  movl   $0x6,(%rax)
  jmp    L1555
L1942:
  mov    -0xc(%rbp),%edx
  mov    %edx,%eax
  shl    $0x3,%eax
  add    %eax,%edx
  mov    -0x10(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x18(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%eax
  cmp    $0x7,%eax
  jne    L1998
  mov    -0x20(%rbp),%rax
  add    $0x18,%rax
  movl   $0x7,(%rax)
  jmp    L1555
L1998:
  mov    -0xc(%rbp),%edx
  mov    %edx,%eax
  shl    $0x3,%eax
  add    %eax,%edx
  mov    -0x10(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x18(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%eax
  cmp    $0x8,%eax
  jne    L465
  mov    -0x20(%rbp),%rax
  add    $0x1c,%rax
  movl   $0x8,(%rax)
  jmp    L1555
L465:
  mov    -0xc(%rbp),%edx
  mov    %edx,%eax
  shl    $0x3,%eax
  add    %eax,%edx
  mov    -0x10(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x18(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%eax
  cmp    $0x9,%eax
  jne    L1555
  mov    -0x20(%rbp),%rax
  add    $0x20,%rax
  movl   $0x9,(%rax)
L1555:
  addl   $0x1,-0x10(%rbp)
L526:
  cmpl   $0x2,-0x10(%rbp)
  jle    L2022
  addl   $0x1,-0xc(%rbp)
L2339:
  cmpl   $0x5,-0xc(%rbp)
  jle    L1167
  jmp    L2192
L2385:
  cmpl   $0x2,-0x4(%rbp)
  jle    L12
  cmpl   $0x5,-0x4(%rbp)
  jg     L12
  cmpl   $0x2,-0x8(%rbp)
  jle    L12
  cmpl   $0x5,-0x8(%rbp)
  jg     L12
  movl   $0x3,-0xc(%rbp)
  jmp    L745
L2287:
  movl   $0x3,-0x10(%rbp)
  jmp    L1912
L1902:
  mov    -0xc(%rbp),%edx
  mov    %edx,%eax
  shl    $0x3,%eax
  add    %eax,%edx
  mov    -0x10(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x18(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%eax
  test   %eax,%eax
  je     L2332
  mov    -0xc(%rbp),%edx
  mov    %edx,%eax
  shl    $0x3,%eax
  add    %eax,%edx
  mov    -0x10(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x18(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%eax
  cmp    $0x1,%eax
  jne    L1427
  mov    -0x20(%rbp),%rax
  movl   $0x1,(%rax)
  jmp    L2332
L1427:
  mov    -0xc(%rbp),%edx
  mov    %edx,%eax
  shl    $0x3,%eax
  add    %eax,%edx
  mov    -0x10(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x18(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%eax
  cmp    $0x2,%eax
  jne    L166
  mov    -0x20(%rbp),%rax
  add    $0x4,%rax
  movl   $0x2,(%rax)
  jmp    L2332
L166:
  mov    -0xc(%rbp),%edx
  mov    %edx,%eax
  shl    $0x3,%eax
  add    %eax,%edx
  mov    -0x10(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x18(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%eax
  cmp    $0x3,%eax
  jne    L656
  mov    -0x20(%rbp),%rax
  add    $0x8,%rax
  movl   $0x3,(%rax)
  jmp    L2332
L656:
  mov    -0xc(%rbp),%edx
  mov    %edx,%eax
  shl    $0x3,%eax
  add    %eax,%edx
  mov    -0x10(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x18(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%eax
  cmp    $0x4,%eax
  jne    L359
  mov    -0x20(%rbp),%rax
  add    $0xc,%rax
  movl   $0x4,(%rax)
  jmp    L2332
L359:
  mov    -0xc(%rbp),%edx
  mov    %edx,%eax
  shl    $0x3,%eax
  add    %eax,%edx
  mov    -0x10(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x18(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%eax
  cmp    $0x5,%eax
  jne    L769
  mov    -0x20(%rbp),%rax
  add    $0x10,%rax
  movl   $0x5,(%rax)
  jmp    L2332
L769:
  mov    -0xc(%rbp),%edx
  mov    %edx,%eax
  shl    $0x3,%eax
  add    %eax,%edx
  mov    -0x10(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x18(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%eax
  cmp    $0x6,%eax
  jne    L1872
  mov    -0x20(%rbp),%rax
  add    $0x14,%rax
  movl   $0x6,(%rax)
  jmp    L2332
L1872:
  mov    -0xc(%rbp),%edx
  mov    %edx,%eax
  shl    $0x3,%eax
  add    %eax,%edx
  mov    -0x10(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x18(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%eax
  cmp    $0x7,%eax
  jne    L1594
  mov    -0x20(%rbp),%rax
  add    $0x18,%rax
  movl   $0x7,(%rax)
  jmp    L2332
L1594:
  mov    -0xc(%rbp),%edx
  mov    %edx,%eax
  shl    $0x3,%eax
  add    %eax,%edx
  mov    -0x10(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x18(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%eax
  cmp    $0x8,%eax
  jne    L460
  mov    -0x20(%rbp),%rax
  add    $0x1c,%rax
  movl   $0x8,(%rax)
  jmp    L2332
L460:
  mov    -0xc(%rbp),%edx
  mov    %edx,%eax
  shl    $0x3,%eax
  add    %eax,%edx
  mov    -0x10(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x18(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%eax
  cmp    $0x9,%eax
  jne    L2332
  mov    -0x20(%rbp),%rax
  add    $0x20,%rax
  movl   $0x9,(%rax)
L2332:
  addl   $0x1,-0x10(%rbp)
L1912:
  cmpl   $0x5,-0x10(%rbp)
  jle    L1902
  addl   $0x1,-0xc(%rbp)
L745:
  cmpl   $0x5,-0xc(%rbp)
  jle    L2287
  jmp    L2192
L12:
  cmpl   $0x2,-0x4(%rbp)
  jle    L1548
  cmpl   $0x5,-0x4(%rbp)
  jg     L1548
  cmpl   $0x6,-0x8(%rbp)
  jle    L1548
  cmpl   $0x8,-0x8(%rbp)
  jg     L1548
  movl   $0x3,-0xc(%rbp)
  jmp    L2335
L952:
  movl   $0x7,-0x10(%rbp)
  jmp    L973
L300:
  mov    -0xc(%rbp),%edx
  mov    %edx,%eax
  shl    $0x3,%eax
  add    %eax,%edx
  mov    -0x10(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x18(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%eax
  test   %eax,%eax
  je     L921
  mov    -0xc(%rbp),%edx
  mov    %edx,%eax
  shl    $0x3,%eax
  add    %eax,%edx
  mov    -0x10(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x18(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%eax
  cmp    $0x1,%eax
  jne    L1153
  mov    -0x20(%rbp),%rax
  movl   $0x1,(%rax)
  jmp    L921
L1153:
  mov    -0xc(%rbp),%edx
  mov    %edx,%eax
  shl    $0x3,%eax
  add    %eax,%edx
  mov    -0x10(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x18(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%eax
  cmp    $0x2,%eax
  jne    L1135
  mov    -0x20(%rbp),%rax
  add    $0x4,%rax
  movl   $0x2,(%rax)
  jmp    L921
L1135:
  mov    -0xc(%rbp),%edx
  mov    %edx,%eax
  shl    $0x3,%eax
  add    %eax,%edx
  mov    -0x10(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x18(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%eax
  cmp    $0x3,%eax
  jne    L1626
  mov    -0x20(%rbp),%rax
  add    $0x8,%rax
  movl   $0x3,(%rax)
  jmp    L921
L1626:
  mov    -0xc(%rbp),%edx
  mov    %edx,%eax
  shl    $0x3,%eax
  add    %eax,%edx
  mov    -0x10(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x18(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%eax
  cmp    $0x4,%eax
  jne    L1745
  mov    -0x20(%rbp),%rax
  add    $0xc,%rax
  movl   $0x4,(%rax)
  jmp    L921
L1745:
  mov    -0xc(%rbp),%edx
  mov    %edx,%eax
  shl    $0x3,%eax
  add    %eax,%edx
  mov    -0x10(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x18(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%eax
  cmp    $0x5,%eax
  jne    L1934
  mov    -0x20(%rbp),%rax
  add    $0x10,%rax
  movl   $0x5,(%rax)
  jmp    L921
L1934:
  mov    -0xc(%rbp),%edx
  mov    %edx,%eax
  shl    $0x3,%eax
  add    %eax,%edx
  mov    -0x10(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x18(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%eax
  cmp    $0x6,%eax
  jne    L904
  mov    -0x20(%rbp),%rax
  add    $0x14,%rax
  movl   $0x6,(%rax)
  jmp    L921
L904:
  mov    -0xc(%rbp),%edx
  mov    %edx,%eax
  shl    $0x3,%eax
  add    %eax,%edx
  mov    -0x10(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x18(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%eax
  cmp    $0x7,%eax
  jne    L37
  mov    -0x20(%rbp),%rax
  add    $0x18,%rax
  movl   $0x7,(%rax)
  jmp    L921
L37:
  mov    -0xc(%rbp),%edx
  mov    %edx,%eax
  shl    $0x3,%eax
  add    %eax,%edx
  mov    -0x10(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x18(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%eax
  cmp    $0x8,%eax
  jne    L2257
  mov    -0x20(%rbp),%rax
  add    $0x1c,%rax
  movl   $0x8,(%rax)
  jmp    L921
L2257:
  mov    -0xc(%rbp),%edx
  mov    %edx,%eax
  shl    $0x3,%eax
  add    %eax,%edx
  mov    -0x10(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x18(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%eax
  cmp    $0x9,%eax
  jne    L921
  mov    -0x20(%rbp),%rax
  add    $0x20,%rax
  movl   $0x9,(%rax)
L921:
  addl   $0x1,-0x10(%rbp)
L973:
  cmpl   $0x8,-0x10(%rbp)
  jle    L300
  addl   $0x1,-0xc(%rbp)
L2335:
  cmpl   $0x5,-0xc(%rbp)
  jle    L952
  jmp    L2192
L1548:
  cmpl   $0x5,-0x4(%rbp)
  jle    L1732
  cmpl   $0x8,-0x4(%rbp)
  jg     L1732
  cmpl   $0x0,-0x8(%rbp)
  js     L1732
  cmpl   $0x2,-0x8(%rbp)
  jg     L1732
  movl   $0x6,-0xc(%rbp)
  jmp    L184
L1884:
  movl   $0x0,-0x10(%rbp)
  jmp    L156
L871:
  mov    -0xc(%rbp),%edx
  mov    %edx,%eax
  shl    $0x3,%eax
  add    %eax,%edx
  mov    -0x10(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x18(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%eax
  test   %eax,%eax
  je     L1953
  mov    -0xc(%rbp),%edx
  mov    %edx,%eax
  shl    $0x3,%eax
  add    %eax,%edx
  mov    -0x10(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x18(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%eax
  cmp    $0x1,%eax
  jne    L529
  mov    -0x20(%rbp),%rax
  movl   $0x1,(%rax)
  jmp    L1953
L529:
  mov    -0xc(%rbp),%edx
  mov    %edx,%eax
  shl    $0x3,%eax
  add    %eax,%edx
  mov    -0x10(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x18(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%eax
  cmp    $0x2,%eax
  jne    L1114
  mov    -0x20(%rbp),%rax
  add    $0x4,%rax
  movl   $0x2,(%rax)
  jmp    L1953
L1114:
  mov    -0xc(%rbp),%edx
  mov    %edx,%eax
  shl    $0x3,%eax
  add    %eax,%edx
  mov    -0x10(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x18(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%eax
  cmp    $0x3,%eax
  jne    L1287
  mov    -0x20(%rbp),%rax
  add    $0x8,%rax
  movl   $0x3,(%rax)
  jmp    L1953
L1287:
  mov    -0xc(%rbp),%edx
  mov    %edx,%eax
  shl    $0x3,%eax
  add    %eax,%edx
  mov    -0x10(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x18(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%eax
  cmp    $0x4,%eax
  jne    L974
  mov    -0x20(%rbp),%rax
  add    $0xc,%rax
  movl   $0x4,(%rax)
  jmp    L1953
L974:
  mov    -0xc(%rbp),%edx
  mov    %edx,%eax
  shl    $0x3,%eax
  add    %eax,%edx
  mov    -0x10(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x18(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%eax
  cmp    $0x5,%eax
  jne    L567
  mov    -0x20(%rbp),%rax
  add    $0x10,%rax
  movl   $0x5,(%rax)
  jmp    L1953
L567:
  mov    -0xc(%rbp),%edx
  mov    %edx,%eax
  shl    $0x3,%eax
  add    %eax,%edx
  mov    -0x10(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x18(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%eax
  cmp    $0x6,%eax
  jne    L282
  mov    -0x20(%rbp),%rax
  add    $0x14,%rax
  movl   $0x6,(%rax)
  jmp    L1953
L282:
  mov    -0xc(%rbp),%edx
  mov    %edx,%eax
  shl    $0x3,%eax
  add    %eax,%edx
  mov    -0x10(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x18(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%eax
  cmp    $0x7,%eax
  jne    L417
  mov    -0x20(%rbp),%rax
  add    $0x18,%rax
  movl   $0x7,(%rax)
  jmp    L1953
L417:
  mov    -0xc(%rbp),%edx
  mov    %edx,%eax
  shl    $0x3,%eax
  add    %eax,%edx
  mov    -0x10(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x18(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%eax
  cmp    $0x8,%eax
  jne    L134
  mov    -0x20(%rbp),%rax
  add    $0x1c,%rax
  movl   $0x8,(%rax)
  jmp    L1953
L134:
  mov    -0xc(%rbp),%edx
  mov    %edx,%eax
  shl    $0x3,%eax
  add    %eax,%edx
  mov    -0x10(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x18(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%eax
  cmp    $0x9,%eax
  jne    L1953
  mov    -0x20(%rbp),%rax
  add    $0x20,%rax
  movl   $0x9,(%rax)
L1953:
  addl   $0x1,-0x10(%rbp)
L156:
  cmpl   $0x2,-0x10(%rbp)
  jle    L871
  addl   $0x1,-0xc(%rbp)
L184:
  cmpl   $0x8,-0xc(%rbp)
  jle    L1884
  jmp    L2192
L1732:
  cmpl   $0x5,-0x4(%rbp)
  jle    L155
  cmpl   $0x8,-0x4(%rbp)
  jg     L155
  cmpl   $0x2,-0x8(%rbp)
  jle    L155
  cmpl   $0x5,-0x8(%rbp)
  jg     L155
  movl   $0x6,-0xc(%rbp)
  jmp    L1019
L948:
  movl   $0x3,-0x10(%rbp)
  jmp    L2404
L1383:
  mov    -0xc(%rbp),%edx
  mov    %edx,%eax
  shl    $0x3,%eax
  add    %eax,%edx
  mov    -0x10(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x18(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%eax
  test   %eax,%eax
  je     L2035
  mov    -0xc(%rbp),%edx
  mov    %edx,%eax
  shl    $0x3,%eax
  add    %eax,%edx
  mov    -0x10(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x18(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%eax
  cmp    $0x1,%eax
  jne    L739
  mov    -0x20(%rbp),%rax
  movl   $0x1,(%rax)
  jmp    L2035
L739:
  mov    -0xc(%rbp),%edx
  mov    %edx,%eax
  shl    $0x3,%eax
  add    %eax,%edx
  mov    -0x10(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x18(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%eax
  cmp    $0x2,%eax
  jne    L878
  mov    -0x20(%rbp),%rax
  add    $0x4,%rax
  movl   $0x2,(%rax)
  jmp    L2035
L878:
  mov    -0xc(%rbp),%edx
  mov    %edx,%eax
  shl    $0x3,%eax
  add    %eax,%edx
  mov    -0x10(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x18(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%eax
  cmp    $0x3,%eax
  jne    L1184
  mov    -0x20(%rbp),%rax
  add    $0x8,%rax
  movl   $0x3,(%rax)
  jmp    L2035
L1184:
  mov    -0xc(%rbp),%edx
  mov    %edx,%eax
  shl    $0x3,%eax
  add    %eax,%edx
  mov    -0x10(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x18(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%eax
  cmp    $0x4,%eax
  jne    L1871
  mov    -0x20(%rbp),%rax
  add    $0xc,%rax
  movl   $0x4,(%rax)
  jmp    L2035
L1871:
  mov    -0xc(%rbp),%edx
  mov    %edx,%eax
  shl    $0x3,%eax
  add    %eax,%edx
  mov    -0x10(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x18(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%eax
  cmp    $0x5,%eax
  jne    L708
  mov    -0x20(%rbp),%rax
  add    $0x10,%rax
  movl   $0x5,(%rax)
  jmp    L2035
L708:
  mov    -0xc(%rbp),%edx
  mov    %edx,%eax
  shl    $0x3,%eax
  add    %eax,%edx
  mov    -0x10(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x18(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%eax
  cmp    $0x6,%eax
  jne    L1744
  mov    -0x20(%rbp),%rax
  add    $0x14,%rax
  movl   $0x6,(%rax)
  jmp    L2035
L1744:
  mov    -0xc(%rbp),%edx
  mov    %edx,%eax
  shl    $0x3,%eax
  add    %eax,%edx
  mov    -0x10(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x18(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%eax
  cmp    $0x7,%eax
  jne    L1005
  mov    -0x20(%rbp),%rax
  add    $0x18,%rax
  movl   $0x7,(%rax)
  jmp    L2035
L1005:
  mov    -0xc(%rbp),%edx
  mov    %edx,%eax
  shl    $0x3,%eax
  add    %eax,%edx
  mov    -0x10(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x18(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%eax
  cmp    $0x8,%eax
  jne    L2159
  mov    -0x20(%rbp),%rax
  add    $0x1c,%rax
  movl   $0x8,(%rax)
  jmp    L2035
L2159:
  mov    -0xc(%rbp),%edx
  mov    %edx,%eax
  shl    $0x3,%eax
  add    %eax,%edx
  mov    -0x10(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x18(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%eax
  cmp    $0x9,%eax
  jne    L2035
  mov    -0x20(%rbp),%rax
  add    $0x20,%rax
  movl   $0x9,(%rax)
L2035:
  addl   $0x1,-0x10(%rbp)
L2404:
  cmpl   $0x5,-0x10(%rbp)
  jle    L1383
  addl   $0x1,-0xc(%rbp)
L1019:
  cmpl   $0x8,-0xc(%rbp)
  jle    L948
  jmp    L2192
L155:
  cmpl   $0x5,-0x4(%rbp)
  jle    L2192
  cmpl   $0x8,-0x4(%rbp)
  jg     L2192
  cmpl   $0x5,-0x8(%rbp)
  jle    L2192
  cmpl   $0x8,-0x8(%rbp)
  jg     L2192
  movl   $0x6,-0xc(%rbp)
  jmp    L1708
L869:
  movl   $0x6,-0x10(%rbp)
  jmp    L1488
L1468:
  mov    -0xc(%rbp),%edx
  mov    %edx,%eax
  shl    $0x3,%eax
  add    %eax,%edx
  mov    -0x10(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x18(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%eax
  test   %eax,%eax
  je     L1112
  mov    -0xc(%rbp),%edx
  mov    %edx,%eax
  shl    $0x3,%eax
  add    %eax,%edx
  mov    -0x10(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x18(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%eax
  cmp    $0x1,%eax
  jne    L2202
  mov    -0x20(%rbp),%rax
  movl   $0x1,(%rax)
  jmp    L1112
L2202:
  mov    -0xc(%rbp),%edx
  mov    %edx,%eax
  shl    $0x3,%eax
  add    %eax,%edx
  mov    -0x10(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x18(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%eax
  cmp    $0x2,%eax
  jne    L587
  mov    -0x20(%rbp),%rax
  add    $0x4,%rax
  movl   $0x2,(%rax)
  jmp    L1112
L587:
  mov    -0xc(%rbp),%edx
  mov    %edx,%eax
  shl    $0x3,%eax
  add    %eax,%edx
  mov    -0x10(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x18(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%eax
  cmp    $0x3,%eax
  jne    L1935
  mov    -0x20(%rbp),%rax
  add    $0x8,%rax
  movl   $0x3,(%rax)
  jmp    L1112
L1935:
  mov    -0xc(%rbp),%edx
  mov    %edx,%eax
  shl    $0x3,%eax
  add    %eax,%edx
  mov    -0x10(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x18(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%eax
  cmp    $0x4,%eax
  jne    L1296
  mov    -0x20(%rbp),%rax
  add    $0xc,%rax
  movl   $0x4,(%rax)
  jmp    L1112
L1296:
  mov    -0xc(%rbp),%edx
  mov    %edx,%eax
  shl    $0x3,%eax
  add    %eax,%edx
  mov    -0x10(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x18(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%eax
  cmp    $0x5,%eax
  jne    L142
  mov    -0x20(%rbp),%rax
  add    $0x10,%rax
  movl   $0x5,(%rax)
  jmp    L1112
L142:
  mov    -0xc(%rbp),%edx
  mov    %edx,%eax
  shl    $0x3,%eax
  add    %eax,%edx
  mov    -0x10(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x18(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%eax
  cmp    $0x6,%eax
  jne    L972
  mov    -0x20(%rbp),%rax
  add    $0x14,%rax
  movl   $0x6,(%rax)
  jmp    L1112
L972:
  mov    -0xc(%rbp),%edx
  mov    %edx,%eax
  shl    $0x3,%eax
  add    %eax,%edx
  mov    -0x10(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x18(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%eax
  cmp    $0x7,%eax
  jne    L674
  mov    -0x20(%rbp),%rax
  add    $0x18,%rax
  movl   $0x7,(%rax)
  jmp    L1112
L674:
  mov    -0xc(%rbp),%edx
  mov    %edx,%eax
  shl    $0x3,%eax
  add    %eax,%edx
  mov    -0x10(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x18(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%eax
  cmp    $0x8,%eax
  jne    L1625
  mov    -0x20(%rbp),%rax
  add    $0x1c,%rax
  movl   $0x8,(%rax)
  jmp    L1112
L1625:
  mov    -0xc(%rbp),%edx
  mov    %edx,%eax
  shl    $0x3,%eax
  add    %eax,%edx
  mov    -0x10(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x18(%rbp),%rax
  add    %rdx,%rax
  mov    (%rax),%eax
  cmp    $0x9,%eax
  jne    L1112
  mov    -0x20(%rbp),%rax
  add    $0x20,%rax
  movl   $0x9,(%rax)
L1112:
  addl   $0x1,-0x10(%rbp)
L1488:
  cmpl   $0x8,-0x10(%rbp)
  jle    L1468
  addl   $0x1,-0xc(%rbp)
L1708:
  cmpl   $0x8,-0xc(%rbp)
  jle    L869
  jmp    L2192
L2192:
  nop
  pop    %rbp
  ret
```

assistant: ```c
void check_box(int i, int j, int p, int l, int *sudoku_p, int *temp1_p) {
  if ((i >= 0 && i <= 2) && (j >= 0 && j <= 2)) {
    for (p = 0; p <= 2; p++) {
      for (l = 0; l <= 2; l++) {
        if (*(sudoku_p + ((p * (9)) + l)) != 0) {
          if (*(sudoku_p + ((p * (9)) + l)) == 1) {
            *(temp1_p + 0) = 1;
          } else if (*(sudoku_p + ((p * (9)) + l)) == 2) {
            *(temp1_p + 1) = 2;
          } else if (*(sudoku_p + ((p * (9)) + l)) == 3) {
            *(temp1_p + 2) = 3;
          } else if (*(sudoku_p + ((p * (9)) + l)) == 4) {
            *(temp1_p + 3) = 4;
          } else if (*(sudoku_p + ((p * (9)) + l)) == 5) {
            *(temp1_p + 4) = 5;
          } else if (*(sudoku_p + ((p * (9)) + l)) == 6) {
            *(temp1_p + 5) = 6;
          } else if (*(sudoku_p + ((p * (9)) + l)) == 7) {
            *(temp1_p + 6) = 7;
          } else if (*(sudoku_p + ((p * (9)) + l)) == 8) {
            *(temp1_p + 7) = 8;
          } else if (*(sudoku_p + ((p * (9)) + l)) == 9) {
            *(temp1_p + 8) = 9;
          }
        }
      }
    }
  } else if ((i >= 0 && i <= 2) && (j >= 3 && j <= 5)) {
    for (p = 0; p <= 2; p++) {
      for (l = 3; l <= 5; l++) {
        if (*(sudoku_p + ((p * (9)) + l)) != 0) {
          if (*(sudoku_p + ((p * (9)) + l)) == 1) {
            *(temp1_p + 0) = 1;
          } else if (*(sudoku_p + ((p * (9)) + l)) == 2) {
            *(temp1_p + 1) = 2;
          } else if (*(sudoku_p + ((p * (9)) + l)) == 3) {
            *(temp1_p + 2) = 3;
          } else if (*(sudoku_p + ((p * (9)) + l)) == 4) {
            *(temp1_p + 3) = 4;
          } else if (*(sudoku_p + ((p * (9)) + l)) == 5) {
            *(temp1_p + 4) = 5;
          } else if (*(sudoku_p + ((p * (9)) + l)) == 6) {
            *(temp1_p + 5) = 6;
          } else if (*(sudoku_p + ((p * (9)) + l)) == 7) {
            *(temp1_p + 6) = 7;
          } else if (*(sudoku_p + ((p * (9)) + l)) == 8) {
            *(temp1_p + 7) = 8;
          } else if (*(sudoku_p + ((p * (9)) + l)) == 9) {
            *(temp1_p + 8) = 9;
          }
        }
      }
    }
  } else if ((i >= 0 && i <= 2) && (j >= 7 && j <= 8)) {
    for (p = 0; p <= 2; p++) {
      for (l = 7; l <= 8; l++) {
        if (*(sudoku_p + ((p * (9)) + l)) != 0) {
          if (*(sudoku_p + ((p * (9)) + l)) == 1) {
            *(temp1_p + 0) = 1;
          } else if (*(sudoku_p + ((p * (9)) + l)) == 2) {
            *(temp1_p + 1) = 2;
          } else if (*(sudoku_p + ((p * (9)) + l)) == 3) {
            *(temp1_p + 2) = 3;
          } else if (*(sudoku_p + ((p * (9)) + l)) == 4) {
            *(temp1_p + 3) = 4;
          } else if (*(sudoku_p + ((p * (9)) + l)) == 5) {
            *(temp1_p + 4) = 5;
          } else if (*(sudoku_p + ((p * (9)) + l)) == 6) {
            *(temp1_p + 5) = 6;
          } else if (*(sudoku_p + ((p * (9)) + l)) == 7) {
            *(temp1_p + 6) = 7;
          } else if (*(sudoku_p + ((p * (9)) + l)) == 8) {
            *(temp1_p + 7) = 8;
          } else if (*(sudoku_p + ((p * (9)) + l)) == 9) {
            *(temp1_p + 8) = 9;
          }
        }
      }
    }
  } else if ((i >= 3 && i <= 5) && (j >= 0 && j <= 2)) {
    for (p = 3; p <= 5; p++) {
      for (l = 0; l <= 2; l++) {
        if (*(sudoku_p + ((p * (9)) + l)) != 0) {
          if (*(sudoku_p + ((p * (9)) + l)) == 1) {
            *(temp1_p + 0) = 1;
          } else if (*(sudoku_p + ((p * (9)) + l)) == 2) {
            *(temp1_p + 1) = 2;
          } else if (*(sudoku_p + ((p * (9)) + l)) == 3) {
            *(temp1_p + 2) = 3;
          } else if (*(sudoku_p + ((p * (9)) + l)) == 4) {
            *(temp1_p + 3) = 4;
          } else if (*(sudoku_p + ((p * (9)) + l)) == 5) {
            *(temp1_p + 4) = 5;
          } else if (*(sudoku_p + ((p * (9)) + l)) == 6) {
            *(temp1_p + 5) = 6;
          } else if (*(sudoku_p + ((p * (9)) + l)) == 7) {
            *(temp1_p + 6) = 7;
          } else if (*(sudoku_p + ((p * (9)) + l)) == 8) {
            *(temp1_p + 7) = 8;
          } else if (*(sudoku_p + ((p * (9)) + l)) == 9) {
            *(temp1_p + 8) = 9;
          }
        }
      }
    }
  } else if ((i >= 3 && i <= 5) && (j >= 3 && j <= 5)) {
    for (p = 3; p <= 5; p++) {
      for (l = 3; l <= 5; l++) {
        if (*(sudoku_p + ((p * (9)) + l)) != 0) {
          if (*(sudoku_p + ((p * (9)) + l)) == 1) {
            *(temp1_p + 0) = 1;
          } else if (*(sudoku_p + ((p * (9)) + l)) == 2) {
            *(temp1_p + 1) = 2;
          } else if (*(sudoku_p + ((p * (9)) + l)) == 3) {
            *(temp1_p + 2) = 3;
          } else if (*(sudoku_p + ((p * (9)) + l)) == 4) {
            *(temp1_p + 3) = 4;
          } else if (*(sudoku_p + ((p * (9)) + l)) == 5) {
            *(temp1_p + 4) = 5;
          } else if (*(sudoku_p + ((p * (9)) + l)) == 6) {
            *(temp1_p + 5) = 6;
          } else if (*(sudoku_p + ((p * (9)) + l)) == 7) {
            *(temp1_p + 6) = 7;
          } else if (*(sudoku_p + ((p * (9)) + l)) == 8) {
            *(temp1_p + 7) = 8;
          } else if (*(sudoku_p + ((p * (9)) + l)) == 9) {
            *(temp1_p + 8) = 9;
          }
        }
      }
    }
  } else if ((i >= 3 && i <= 5) && (j >= 7 && j <= 8)) {
    for (p = 3; p <= 5; p++) {
      for (l = 7; l <= 8; l++) {
        if (*(sudoku_p + ((p * (9)) + l)) != 0) {
          if (*(sudoku_p + ((p * (9)) + l)) == 1) {
            *(temp1_p + 0) = 1;
          } else if (*(sudoku_p + ((p * (9)) + l)) == 2) {
            *(temp1_p + 1) = 2;
          } else if (*(sudoku_p + ((p * (9)) + l)) == 3) {
            *(temp1_p + 2) = 3;
          } else if (*(sudoku_p + ((p * (9)) + l)) == 4) {
            *(temp1_p + 3) = 4;
          } else if (*(sudoku_p + ((p * (9)) + l)) == 5) {
            *(temp1_p + 4) = 5;
          } else if (*(sudoku_p + ((p * (9)) + l)) == 6) {
            *(temp1_p + 5) = 6;
          } else if (*(sudoku_p + ((p * (9)) + l)) == 7) {
            *(temp1_p + 6) = 7;
          } else if (*(sudoku_p + ((p * (9)) + l)) == 8) {
            *(temp1_p + 7) = 8;
          } else if (*(sudoku_p + ((p * (9)) + l)) == 9) {
            *(temp1_p + 8) = 9;
          }
        }
      }
    }
  } else if ((i >= 6 && i <= 8) && (j >= 0 && j <= 2)) {
    for (p = 6; p <= 8; p++) {
      for (l = 0; l <= 2; l++) {
        if (*(sudoku_p + ((p * (9)) + l)) != 0) {
          if (*(sudoku_p + ((p * (9)) + l)) == 1) {
            *(temp1_p + 0) = 1;
          } else if (*(sudoku_p + ((p * (9)) + l)) == 2) {
            *(temp1_p + 1) = 2;
          } else if (*(sudoku_p + ((p * (9)) + l)) == 3) {
            *(temp1_p + 2) = 3;
          } else if (*(sudoku_p + ((p * (9)) + l)) == 4) {
            *(temp1_p + 3) = 4;
          } else if (*(sudoku_p + ((p * (9)) + l)) == 5) {
            *(temp1_p + 4) = 5;
          } else if (*(sudoku_p + ((p * (9)) + l)) == 6) {
            *(temp1_p + 5) = 6;
          } else if (*(sudoku_p + ((p * (9)) + l)) == 7) {
            *(temp1_p + 6) = 7;
          } else if (*(sudoku_p + ((p * (9)) + l)) == 8) {
            *(temp1_p + 7) = 8;
          } else if (*(sudoku_p + ((p * (9)) + l)) == 9) {
            *(temp1_p + 8) = 9;
          }
        }
      }
    }
  } else if ((i >= 6 && i <= 8) && (j >= 3 && j <= 5)) {
    for (p = 6; p <= 8; p++) {
      for (l = 3; l <= 5; l++) {
        if (*(sudoku_p + ((p * (9)) + l)) != 0) {
          if (*(sudoku_p + ((p * (9)) + l)) == 1) {
            *(temp1_p + 0) = 1;
          } else if (*(sudoku_p + ((p * (9)) + l)) == 2) {
            *(temp1_p + 1) = 2;
          } else if (*(sudoku_p + ((p * (9)) + l)) == 3) {
            *(temp1_p + 2) = 3;
          } else if (*(sudoku_p + ((p * (9)) + l)) == 4) {
            *(temp1_p + 3) = 4;
          } else if (*(sudoku_p + ((p * (9)) + l)) == 5) {
            *(temp1_p + 4) = 5;
          } else if (*(sudoku_p + ((p * (9)) + l)) == 6) {
            *(temp1_p + 5) = 6;
          } else if (*(sudoku_p + ((p * (9)) + l)) == 7) {
            *(temp1_p + 6) = 7;
          } else if (*(sudoku_p + ((p * (9)) + l)) == 8) {
            *(temp1_p + 7) = 8;
          } else if (*(sudoku_p + ((p * (9)) + l)) == 9) {
            *(temp1_p + 8) = 9;
          }
        }
      }
    }
  } else if ((i >= 6 && i <= 8) && (j >= 6 && j <= 8)) {
    for (p = 6; p <= 8; p++) {
      for (l = 6; l <= 8; l++) {
        if (*(sudoku_p + ((p * (9)) + l)) != 0) {
          if (*(sudoku_p + ((p * (9)) + l)) == 1) {
            *(temp1_p + 0) = 1;
          } else if (*(sudoku_p + ((p * (9)) + l)) == 2) {
            *(temp1_p + 1) = 2;
          } else if (*(sudoku_p + ((p * (9)) + l)) == 3) {
            *(temp1_p + 2) = 3;
          } else if (*(sudoku_p + ((p * (9)) + l)) == 4) {
            *(temp1_p + 3) = 4;
          } else if (*(sudoku_p + ((p * (9)) + l)) == 5) {
            *(temp1_p + 4) = 5;
          } else if (*(sudoku_p + ((p * (9)) + l)) == 6) {
            *(temp1_p + 5) = 6;
          } else if (*(sudoku_p + ((p * (9)) + l)) == 7) {
            *(temp1_p + 6) = 7;
          } else if (*(sudoku_p + ((p * (9)) + l)) == 8) {
            *(temp1_p + 7) = 8;
          } else if (*(sudoku_p + ((p * (9)) + l)) == 9) {
            *(temp1_p + 8) = 9;
          }
        }
      }
    }
  }
}
```