int bot(int grid[6][7], int move) {
  int i, j;
  int pos[100], flag[100];
  for (j = 0; j < 7; j++) {
    if (grid[0][j] == 0 && j < 6) {
      continue;
    }
    return 4;
  }
  for (i = 0; i < 6; i++)
    for (j = 0; j < 5; j++) {
      if (grid[i][j] == 1) {
        flag[1] = 1;
        pos[flag[1]] = j;
        if (grid[i][j + 1] == 1) {
          flag[2] = 1;
          pos[flag[2]] = j + 1;
          if (grid[i][j + 2] == 1) {
            if (j == 5) {
              if (j > 0 && grid[i][j - 1] == 0) {
                flag[13] = 1;
                pos[flag[13]] = j - 1;
              } else {
                continue;
              }
            } else {
              flag[3] = 1;
              pos[flag[3]] = j + 2;
            }
          }
        }
      }
    }
  for (i = 0; i < 6; i++)
    for (j = 0; j < 5; j++) {
      if (grid[i][j] == -1) {
        flag[4] = 1;
        pos[flag[4]] = j;
        if (grid[i][j + 1] == -1) {
          flag[5] = 1;
          pos[flag[5]] = j + 1;
          if (grid[i][j + 2] == -1) {
            if (i == 5) {
              if (j > 0 && grid[i][j - 1] == 0) {
                flag[14] = 1;
                pos[flag[14]] = j - 1;
              } else {
                continue;
              }
            }
            flag[6] = 1;
            pos[flag[6]] = j + 2;
          }
        }
      }
    }
  for (i = 0; i < 4; i++)
    for (j = 0; j < 7; j++) {
      if (grid[i][j] == 1) {
        flag[7] = 1;
        pos[flag[7]] = j;
        if (grid[i + 1][j] == 1) {
          flag[8] = 1;
          pos[flag[8]] = j;
          if (grid[i + 2][j] == 1) {
            if (i == 4) {
              continue;
            } else {
              flag[9] = 1;
              pos[flag[9]] = j;
            }
          }
        }
      }
    }
  for (i = 0; i < 4; i++)
    for (j = 0; j < 7; j++) {
      if (grid[i][j] == -1) {
        flag[10] = 1;
        pos[flag[10]] = j;
        if (grid[i + 1][j] == -1) {
          flag[11] = 1;
          pos[flag[11]] = j;
          if (grid[i + 2][j] == -1) {
            if (i == 4) {
              continue;
            } else {
              flag[12] = 1;
              pos[flag[12]] = j;
            }
          }
        }
      }
    }
  for (i = 0; i < 4; i++)
    for (j = 0; j < 5; j++) {
      if (grid[i][j] == 1) {
        flag[4] = 1;
        pos[flag[4]] = j;
        if (grid[i + 1][j + 1] == 1) {
          flag[5] = 1;
          pos[flag[5]] = j + 1;
          if (grid[i + 2][j + 2] == 1) {
            flag[6] = 1;
            pos[flag[6]] = j + 2;
          }
        }
      }
    }
  for (i = 0; i < 4; i++)
    for (j = 0; j < 5; j++) {
      if (grid[i][j] == -1) {
        flag[4] = 1;
        pos[flag[4]] = j;
        if (grid[i + 1][j + 1] == -1) {
          flag[5] = 1;
          pos[flag[5]] = j + 1;
          if (grid[i + 2][j + 2] == -1) {
            flag[6] = 1;
            pos[flag[6]] = j + 2;
          }
        }
      }
    }
  printf("k");
  if (flag[6] == 1) {
    if (pos[flag[6]] == 7)
      return pos[flag[6]] - 2;
    else {
      return pos[flag[6]] + 1;
    }
  }
  if (flag[12] == 1)
    return pos[flag[12]];
  if (flag[13] == 1)
    return pos[flag[13]];
  if (flag[5] == 1)
    return pos[flag[5]] + 1;
  if (flag[14] == 1)
    return pos[flag[14]];
  if (flag[11] == 1)
    return pos[flag[11]];
  if (flag[4] == 1)
    return pos[flag[4]] + 1;
  if (flag[10] == 1)
    return pos[flag[10]];
  if (flag[3] == 1)
    return pos[flag[3]] + 1;
  if (flag[9] == 1)
    return pos[flag[9]];
  if (flag[2] == 1)
    return pos[flag[2]] + 1;
  if (flag[8] == 1)
    return pos[flag[8]];
  if (flag[1] == 1)
    return pos[flag[1]] + 1;
  if (flag[7] == 1)
    return pos[flag[7]];
}


x86 assembly (clang, -O0):
<bot>:
push   %rbp
mov    %rsp,%rbp
sub    $0x340,%rsp
mov    %rdi,-0x10(%rbp)
mov    %esi,-0x14(%rbp)
movl   $0x0,-0x1c(%rbp)
cmpl   $0x7,-0x1c(%rbp)
jge    116e <bot+0x5e>
mov    -0x10(%rbp),%rax
movslq -0x1c(%rbp),%rcx
cmpl   $0x0,(%rax,%rcx,4)
jne    1154 <bot+0x44>
cmpl   $0x6,-0x1c(%rbp)
jge    1154 <bot+0x44>
jmp    1160 <bot+0x50>
movl   $0x4,-0x4(%rbp)
jmp    1ad8 <bot+0x9c8>
mov    -0x1c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x1c(%rbp)
jmp    1129 <bot+0x19>
movl   $0x0,-0x18(%rbp)
cmpl   $0x6,-0x18(%rbp)
jge    12e0 <bot+0x1d0>
movl   $0x0,-0x1c(%rbp)
cmpl   $0x5,-0x1c(%rbp)
jge    12cd <bot+0x1bd>
mov    -0x10(%rbp),%rax
movslq -0x18(%rbp),%rcx
imul   $0x1c,%rcx,%rcx
add    %rcx,%rax
movslq -0x1c(%rbp),%rcx
cmpl   $0x1,(%rax,%rcx,4)
jne    12ba <bot+0x1aa>
movl   $0x1,-0x33c(%rbp)
mov    -0x1c(%rbp),%ecx
movslq -0x33c(%rbp),%rax
mov    %ecx,-0x1b0(%rbp,%rax,4)
mov    -0x10(%rbp),%rax
movslq -0x18(%rbp),%rcx
imul   $0x1c,%rcx,%rcx
add    %rcx,%rax
mov    -0x1c(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
cmpl   $0x1,(%rax,%rcx,4)
jne    12b5 <bot+0x1a5>
movl   $0x1,-0x338(%rbp)
mov    -0x1c(%rbp),%ecx
add    $0x1,%ecx
movslq -0x338(%rbp),%rax
mov    %ecx,-0x1b0(%rbp,%rax,4)
mov    -0x10(%rbp),%rax
movslq -0x18(%rbp),%rcx
imul   $0x1c,%rcx,%rcx
add    %rcx,%rax
mov    -0x1c(%rbp),%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
cmpl   $0x1,(%rax,%rcx,4)
jne    12b0 <bot+0x1a0>
cmpl   $0x5,-0x1c(%rbp)
jne    128d <bot+0x17d>
cmpl   $0x0,-0x1c(%rbp)
jle    1283 <bot+0x173>
mov    -0x10(%rbp),%rax
movslq -0x18(%rbp),%rcx
imul   $0x1c,%rcx,%rcx
add    %rcx,%rax
mov    -0x1c(%rbp),%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
cmpl   $0x0,(%rax,%rcx,4)
jne    1283 <bot+0x173>
movl   $0x1,-0x30c(%rbp)
mov    -0x1c(%rbp),%ecx
sub    $0x1,%ecx
movslq -0x30c(%rbp),%rax
mov    %ecx,-0x1b0(%rbp,%rax,4)
jmp    1288 <bot+0x178>
jmp    12bf <bot+0x1af>
jmp    12ab <bot+0x19b>
movl   $0x1,-0x334(%rbp)
mov    -0x1c(%rbp),%ecx
add    $0x2,%ecx
movslq -0x334(%rbp),%rax
mov    %ecx,-0x1b0(%rbp,%rax,4)
jmp    12b0 <bot+0x1a0>
jmp    12b5 <bot+0x1a5>
jmp    12ba <bot+0x1aa>
jmp    12bf <bot+0x1af>
mov    -0x1c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x1c(%rbp)
jmp    1186 <bot+0x76>
jmp    12d2 <bot+0x1c2>
mov    -0x18(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x18(%rbp)
jmp    1175 <bot+0x65>
movl   $0x0,-0x18(%rbp)
cmpl   $0x6,-0x18(%rbp)
jge    144d <bot+0x33d>
movl   $0x0,-0x1c(%rbp)
cmpl   $0x5,-0x1c(%rbp)
jge    143a <bot+0x32a>
mov    -0x10(%rbp),%rax
movslq -0x18(%rbp),%rcx
imul   $0x1c,%rcx,%rcx
add    %rcx,%rax
movslq -0x1c(%rbp),%rcx
cmpl   $0xffffffff,(%rax,%rcx,4)
jne    1427 <bot+0x317>
movl   $0x1,-0x330(%rbp)
mov    -0x1c(%rbp),%ecx
movslq -0x330(%rbp),%rax
mov    %ecx,-0x1b0(%rbp,%rax,4)
mov    -0x10(%rbp),%rax
movslq -0x18(%rbp),%rcx
imul   $0x1c,%rcx,%rcx
add    %rcx,%rax
mov    -0x1c(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
cmpl   $0xffffffff,(%rax,%rcx,4)
jne    1422 <bot+0x312>
movl   $0x1,-0x32c(%rbp)
mov    -0x1c(%rbp),%ecx
add    $0x1,%ecx
movslq -0x32c(%rbp),%rax
mov    %ecx,-0x1b0(%rbp,%rax,4)
mov    -0x10(%rbp),%rax
movslq -0x18(%rbp),%rcx
imul   $0x1c,%rcx,%rcx
add    %rcx,%rax
mov    -0x1c(%rbp),%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
cmpl   $0xffffffff,(%rax,%rcx,4)
jne    141d <bot+0x30d>
cmpl   $0x5,-0x18(%rbp)
jne    13ff <bot+0x2ef>
cmpl   $0x0,-0x1c(%rbp)
jle    13f5 <bot+0x2e5>
mov    -0x10(%rbp),%rax
movslq -0x18(%rbp),%rcx
imul   $0x1c,%rcx,%rcx
add    %rcx,%rax
mov    -0x1c(%rbp),%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
cmpl   $0x0,(%rax,%rcx,4)
jne    13f5 <bot+0x2e5>
movl   $0x1,-0x308(%rbp)
mov    -0x1c(%rbp),%ecx
sub    $0x1,%ecx
movslq -0x308(%rbp),%rax
mov    %ecx,-0x1b0(%rbp,%rax,4)
jmp    13fa <bot+0x2ea>
jmp    142c <bot+0x31c>
jmp    13ff <bot+0x2ef>
movl   $0x1,-0x328(%rbp)
mov    -0x1c(%rbp),%ecx
add    $0x2,%ecx
movslq -0x328(%rbp),%rax
mov    %ecx,-0x1b0(%rbp,%rax,4)
jmp    1422 <bot+0x312>
jmp    1427 <bot+0x317>
jmp    142c <bot+0x31c>
mov    -0x1c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x1c(%rbp)
jmp    12f8 <bot+0x1e8>
jmp    143f <bot+0x32f>
mov    -0x18(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x18(%rbp)
jmp    12e7 <bot+0x1d7>
movl   $0x0,-0x18(%rbp)
cmpl   $0x4,-0x18(%rbp)
jge    1565 <bot+0x455>
movl   $0x0,-0x1c(%rbp)
cmpl   $0x7,-0x1c(%rbp)
jge    1552 <bot+0x442>
mov    -0x10(%rbp),%rax
movslq -0x18(%rbp),%rcx
imul   $0x1c,%rcx,%rcx
add    %rcx,%rax
movslq -0x1c(%rbp),%rcx
cmpl   $0x1,(%rax,%rcx,4)
jne    153f <bot+0x42f>
movl   $0x1,-0x324(%rbp)
mov    -0x1c(%rbp),%ecx
movslq -0x324(%rbp),%rax
mov    %ecx,-0x1b0(%rbp,%rax,4)
mov    -0x10(%rbp),%rax
mov    -0x18(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
imul   $0x1c,%rcx,%rcx
add    %rcx,%rax
movslq -0x1c(%rbp),%rcx
cmpl   $0x1,(%rax,%rcx,4)
jne    153a <bot+0x42a>
movl   $0x1,-0x320(%rbp)
mov    -0x1c(%rbp),%ecx
movslq -0x320(%rbp),%rax
mov    %ecx,-0x1b0(%rbp,%rax,4)
mov    -0x10(%rbp),%rax
mov    -0x18(%rbp),%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
imul   $0x1c,%rcx,%rcx
add    %rcx,%rax
movslq -0x1c(%rbp),%rcx
cmpl   $0x1,(%rax,%rcx,4)
jne    1535 <bot+0x425>
cmpl   $0x4,-0x18(%rbp)
jne    1515 <bot+0x405>
jmp    1544 <bot+0x434>
movl   $0x1,-0x31c(%rbp)
mov    -0x1c(%rbp),%ecx
movslq -0x31c(%rbp),%rax
mov    %ecx,-0x1b0(%rbp,%rax,4)
jmp    1535 <bot+0x425>
jmp    153a <bot+0x42a>
jmp    153f <bot+0x42f>
jmp    1544 <bot+0x434>
mov    -0x1c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x1c(%rbp)
jmp    1465 <bot+0x355>
jmp    1557 <bot+0x447>
mov    -0x18(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x18(%rbp)
jmp    1454 <bot+0x344>
movl   $0x0,-0x18(%rbp)
cmpl   $0x4,-0x18(%rbp)
jge    167d <bot+0x56d>
movl   $0x0,-0x1c(%rbp)
cmpl   $0x7,-0x1c(%rbp)
jge    166a <bot+0x55a>
mov    -0x10(%rbp),%rax
movslq -0x18(%rbp),%rcx
imul   $0x1c,%rcx,%rcx
add    %rcx,%rax
movslq -0x1c(%rbp),%rcx
cmpl   $0xffffffff,(%rax,%rcx,4)
jne    1657 <bot+0x547>
movl   $0x1,-0x318(%rbp)
mov    -0x1c(%rbp),%ecx
movslq -0x318(%rbp),%rax
mov    %ecx,-0x1b0(%rbp,%rax,4)
mov    -0x10(%rbp),%rax
mov    -0x18(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
imul   $0x1c,%rcx,%rcx
add    %rcx,%rax
movslq -0x1c(%rbp),%rcx
cmpl   $0xffffffff,(%rax,%rcx,4)
jne    1652 <bot+0x542>
movl   $0x1,-0x314(%rbp)
mov    -0x1c(%rbp),%ecx
movslq -0x314(%rbp),%rax
mov    %ecx,-0x1b0(%rbp,%rax,4)
mov    -0x10(%rbp),%rax
mov    -0x18(%rbp),%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
imul   $0x1c,%rcx,%rcx
add    %rcx,%rax
movslq -0x1c(%rbp),%rcx
cmpl   $0xffffffff,(%rax,%rcx,4)
jne    164d <bot+0x53d>
cmpl   $0x4,-0x18(%rbp)
jne    162d <bot+0x51d>
jmp    165c <bot+0x54c>
movl   $0x1,-0x310(%rbp)
mov    -0x1c(%rbp),%ecx
movslq -0x310(%rbp),%rax
mov    %ecx,-0x1b0(%rbp,%rax,4)
jmp    164d <bot+0x53d>
jmp    1652 <bot+0x542>
jmp    1657 <bot+0x547>
jmp    165c <bot+0x54c>
mov    -0x1c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x1c(%rbp)
jmp    157d <bot+0x46d>
jmp    166f <bot+0x55f>
mov    -0x18(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x18(%rbp)
jmp    156c <bot+0x45c>
movl   $0x0,-0x18(%rbp)
cmpl   $0x4,-0x18(%rbp)
jge    1791 <bot+0x681>
movl   $0x0,-0x1c(%rbp)
cmpl   $0x5,-0x1c(%rbp)
jge    177e <bot+0x66e>
mov    -0x10(%rbp),%rax
movslq -0x18(%rbp),%rcx
imul   $0x1c,%rcx,%rcx
add    %rcx,%rax
movslq -0x1c(%rbp),%rcx
cmpl   $0x1,(%rax,%rcx,4)
jne    176b <bot+0x65b>
movl   $0x1,-0x330(%rbp)
mov    -0x1c(%rbp),%ecx
movslq -0x330(%rbp),%rax
mov    %ecx,-0x1b0(%rbp,%rax,4)
mov    -0x10(%rbp),%rax
mov    -0x18(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
imul   $0x1c,%rcx,%rcx
add    %rcx,%rax
mov    -0x1c(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
cmpl   $0x1,(%rax,%rcx,4)
jne    1766 <bot+0x656>
movl   $0x1,-0x32c(%rbp)
mov    -0x1c(%rbp),%ecx
add    $0x1,%ecx
movslq -0x32c(%rbp),%rax
mov    %ecx,-0x1b0(%rbp,%rax,4)
mov    -0x10(%rbp),%rax
mov    -0x18(%rbp),%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
imul   $0x1c,%rcx,%rcx
add    %rcx,%rax
mov    -0x1c(%rbp),%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
cmpl   $0x1,(%rax,%rcx,4)
jne    1761 <bot+0x651>
movl   $0x1,-0x328(%rbp)
mov    -0x1c(%rbp),%ecx
add    $0x2,%ecx
movslq -0x328(%rbp),%rax
mov    %ecx,-0x1b0(%rbp,%rax,4)
jmp    1766 <bot+0x656>
jmp    176b <bot+0x65b>
jmp    1770 <bot+0x660>
mov    -0x1c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x1c(%rbp)
jmp    1695 <bot+0x585>
jmp    1783 <bot+0x673>
mov    -0x18(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x18(%rbp)
jmp    1684 <bot+0x574>
movl   $0x0,-0x18(%rbp)
cmpl   $0x4,-0x18(%rbp)
jge    18a5 <bot+0x795>
movl   $0x0,-0x1c(%rbp)
cmpl   $0x5,-0x1c(%rbp)
jge    1892 <bot+0x782>
mov    -0x10(%rbp),%rax
movslq -0x18(%rbp),%rcx
imul   $0x1c,%rcx,%rcx
add    %rcx,%rax
movslq -0x1c(%rbp),%rcx
cmpl   $0xffffffff,(%rax,%rcx,4)
jne    187f <bot+0x76f>
movl   $0x1,-0x330(%rbp)
mov    -0x1c(%rbp),%ecx
movslq -0x330(%rbp),%rax
mov    %ecx,-0x1b0(%rbp,%rax,4)
mov    -0x10(%rbp),%rax
mov    -0x18(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
imul   $0x1c,%rcx,%rcx
add    %rcx,%rax
mov    -0x1c(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
cmpl   $0xffffffff,(%rax,%rcx,4)
jne    187a <bot+0x76a>
movl   $0x1,-0x32c(%rbp)
mov    -0x1c(%rbp),%ecx
add    $0x1,%ecx
movslq -0x32c(%rbp),%rax
mov    %ecx,-0x1b0(%rbp,%rax,4)
mov    -0x10(%rbp),%rax
mov    -0x18(%rbp),%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
imul   $0x1c,%rcx,%rcx
add    %rcx,%rax
mov    -0x1c(%rbp),%ecx
add    $0x2,%ecx
movslq %ecx,%rcx
cmpl   $0xffffffff,(%rax,%rcx,4)
jne    1875 <bot+0x765>
movl   $0x1,-0x328(%rbp)
mov    -0x1c(%rbp),%ecx
add    $0x2,%ecx
movslq -0x328(%rbp),%rax
mov    %ecx,-0x1b0(%rbp,%rax,4)
jmp    187a <bot+0x76a>
jmp    187f <bot+0x76f>
jmp    1884 <bot+0x774>
mov    -0x1c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x1c(%rbp)
jmp    17a9 <bot+0x699>
jmp    1897 <bot+0x787>
mov    -0x18(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x18(%rbp)
jmp    1798 <bot+0x688>
lea    0x754(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
cmpl   $0x1,-0x328(%rbp)
jne    1907 <bot+0x7f7>
movslq -0x328(%rbp),%rax
cmpl   $0x7,-0x1b0(%rbp,%rax,4)
07
jne    18ee <bot+0x7de>
movslq -0x328(%rbp),%rax
mov    -0x1b0(%rbp,%rax,4),%eax
sub    $0x2,%eax
mov    %eax,-0x4(%rbp)
jmp    1ad8 <bot+0x9c8>
movslq -0x328(%rbp),%rax
mov    -0x1b0(%rbp,%rax,4),%eax
add    $0x1,%eax
mov    %eax,-0x4(%rbp)
jmp    1ad8 <bot+0x9c8>
cmpl   $0x1,-0x310(%rbp)
jne    192a <bot+0x81a>
movslq -0x310(%rbp),%rax
mov    -0x1b0(%rbp,%rax,4),%eax
mov    %eax,-0x4(%rbp)
jmp    1ad8 <bot+0x9c8>
cmpl   $0x1,-0x30c(%rbp)
jne    194d <bot+0x83d>
movslq -0x30c(%rbp),%rax
mov    -0x1b0(%rbp,%rax,4),%eax
mov    %eax,-0x4(%rbp)
jmp    1ad8 <bot+0x9c8>
cmpl   $0x1,-0x32c(%rbp)
jne    1973 <bot+0x863>
movslq -0x32c(%rbp),%rax
mov    -0x1b0(%rbp,%rax,4),%eax
add    $0x1,%eax
mov    %eax,-0x4(%rbp)
jmp    1ad8 <bot+0x9c8>
cmpl   $0x1,-0x308(%rbp)
jne    1996 <bot+0x886>
movslq -0x308(%rbp),%rax
mov    -0x1b0(%rbp,%rax,4),%eax
mov    %eax,-0x4(%rbp)
jmp    1ad8 <bot+0x9c8>
cmpl   $0x1,-0x314(%rbp)
jne    19b9 <bot+0x8a9>
movslq -0x314(%rbp),%rax
mov    -0x1b0(%rbp,%rax,4),%eax
mov    %eax,-0x4(%rbp)
jmp    1ad8 <bot+0x9c8>
cmpl   $0x1,-0x330(%rbp)
jne    19df <bot+0x8cf>
movslq -0x330(%rbp),%rax
mov    -0x1b0(%rbp,%rax,4),%eax
add    $0x1,%eax
mov    %eax,-0x4(%rbp)
jmp    1ad8 <bot+0x9c8>
cmpl   $0x1,-0x318(%rbp)
jne    1a02 <bot+0x8f2>
movslq -0x318(%rbp),%rax
mov    -0x1b0(%rbp,%rax,4),%eax
mov    %eax,-0x4(%rbp)
jmp    1ad8 <bot+0x9c8>
cmpl   $0x1,-0x334(%rbp)
jne    1a28 <bot+0x918>
movslq -0x334(%rbp),%rax
mov    -0x1b0(%rbp,%rax,4),%eax
add    $0x1,%eax
mov    %eax,-0x4(%rbp)
jmp    1ad8 <bot+0x9c8>
cmpl   $0x1,-0x31c(%rbp)
jne    1a4b <bot+0x93b>
movslq -0x31c(%rbp),%rax
mov    -0x1b0(%rbp,%rax,4),%eax
mov    %eax,-0x4(%rbp)
jmp    1ad8 <bot+0x9c8>
cmpl   $0x1,-0x338(%rbp)
jne    1a71 <bot+0x961>
movslq -0x338(%rbp),%rax
mov    -0x1b0(%rbp,%rax,4),%eax
add    $0x1,%eax
mov    %eax,-0x4(%rbp)
jmp    1ad8 <bot+0x9c8>
cmpl   $0x1,-0x320(%rbp)
jne    1a94 <bot+0x984>
movslq -0x320(%rbp),%rax
mov    -0x1b0(%rbp,%rax,4),%eax
mov    %eax,-0x4(%rbp)
jmp    1ad8 <bot+0x9c8>
cmpl   $0x1,-0x33c(%rbp)
jne    1aba <bot+0x9aa>
movslq -0x33c(%rbp),%rax
mov    -0x1b0(%rbp,%rax,4),%eax
add    $0x1,%eax
mov    %eax,-0x4(%rbp)
jmp    1ad8 <bot+0x9c8>
cmpl   $0x1,-0x324(%rbp)
jne    1ad8 <bot+0x9c8>
movslq -0x324(%rbp),%rax
mov    -0x1b0(%rbp,%rax,4),%eax
mov    %eax,-0x4(%rbp)
mov    -0x4(%rbp),%eax
add    $0x340,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<bot>:
mov    $0x4,%eax
ret

LLVM IR (-O0):
@.str = [2 x i8] c"k\00"
define i32 @bot([7 x i32]* %0, i32 %1) {
%3 = alloca i32
%4 = alloca [7 x i32]*
%5 = alloca i32
%6 = alloca i32
%7 = alloca i32
%8 = alloca [100 x i32]
%9 = alloca [100 x i32]
store [7 x i32]* %0, [7 x i32]** %4
store i32 %1, i32* %5
store i32 0, i32* %7
br label %10
10: ; preds = %26, %2
%11 = load i32, i32* %7
%12 = icmp slt i32 %11, 7
br i1 %12, label %13, label %29
13: ; preds = %10
%14 = load [7 x i32]*, [7 x i32]** %4
%15 = getelementptr inbounds [7 x i32], [7 x i32]* %14, i64 0
%16 = load i32, i32* %7
%17 = sext i32 %16 to i64
%18 = getelementptr inbounds [7 x i32], [7 x i32]* %15, i64 0, i64 %17
%19 = load i32, i32* %18
%20 = icmp eq i32 %19, 0
br i1 %20, label %21, label %25
21: ; preds = %13
%22 = load i32, i32* %7
%23 = icmp slt i32 %22, 6
br i1 %23, label %24, label %25
24: ; preds = %21
br label %26
25: ; preds = %21, %13
store i32 4, i32* %3
br label %681
26: ; preds = %24
%27 = load i32, i32* %7
%28 = add nsw i32 %27, 1
store i32 %28, i32* %7
br label %10
29: ; preds = %10
store i32 0, i32* %6
br label %30
30: ; preds = %125, %29
%31 = load i32, i32* %6
%32 = icmp slt i32 %31, 6
br i1 %32, label %33, label %128
33: ; preds = %30
store i32 0, i32* %7
br label %34
34: ; preds = %121, %33
%35 = load i32, i32* %7
%36 = icmp slt i32 %35, 5
br i1 %36, label %37, label %124
37: ; preds = %34
%38 = load [7 x i32]*, [7 x i32]** %4
%39 = load i32, i32* %6
%40 = sext i32 %39 to i64
%41 = getelementptr inbounds [7 x i32], [7 x i32]* %38, i64 %40
%42 = load i32, i32* %7
%43 = sext i32 %42 to i64
%44 = getelementptr inbounds [7 x i32], [7 x i32]* %41, i64 0, i64 %43
%45 = load i32, i32* %44
%46 = icmp eq i32 %45, 1
br i1 %46, label %47, label %120
47: ; preds = %37
%48 = getelementptr inbounds [100 x i32], [100 x i32]* %9, i64 0, i64 1
store i32 1, i32* %48
%49 = load i32, i32* %7
%50 = getelementptr inbounds [100 x i32], [100 x i32]* %9, i64 0, i64 1
%51 = load i32, i32* %50
%52 = sext i32 %51 to i64
%53 = getelementptr inbounds [100 x i32], [100 x i32]* %8, i64 0, i64 %52
store i32 %49, i32* %53
%54 = load [7 x i32]*, [7 x i32]** %4
%55 = load i32, i32* %6
%56 = sext i32 %55 to i64
%57 = getelementptr inbounds [7 x i32], [7 x i32]* %54, i64 %56
%58 = load i32, i32* %7
%59 = add nsw i32 %58, 1
%60 = sext i32 %59 to i64
%61 = getelementptr inbounds [7 x i32], [7 x i32]* %57, i64 0, i64 %60
%62 = load i32, i32* %61
%63 = icmp eq i32 %62, 1
br i1 %63, label %64, label %119
64: ; preds = %47
%65 = getelementptr inbounds [100 x i32], [100 x i32]* %9, i64 0, i64 2
store i32 1, i32* %65
%66 = load i32, i32* %7
%67 = add nsw i32 %66, 1
%68 = getelementptr inbounds [100 x i32], [100 x i32]* %9, i64 0, i64 2
%69 = load i32, i32* %68
%70 = sext i32 %69 to i64
%71 = getelementptr inbounds [100 x i32], [100 x i32]* %8, i64 0, i64 %70
store i32 %67, i32* %71
%72 = load [7 x i32]*, [7 x i32]** %4
%73 = load i32, i32* %6
%74 = sext i32 %73 to i64
%75 = getelementptr inbounds [7 x i32], [7 x i32]* %72, i64 %74
%76 = load i32, i32* %7
%77 = add nsw i32 %76, 2
%78 = sext i32 %77 to i64
%79 = getelementptr inbounds [7 x i32], [7 x i32]* %75, i64 0, i64 %78
%80 = load i32, i32* %79
%81 = icmp eq i32 %80, 1
br i1 %81, label %82, label %118
82: ; preds = %64
%83 = load i32, i32* %7
%84 = icmp eq i32 %83, 5
br i1 %84, label %85, label %109
85: ; preds = %82
%86 = load i32, i32* %7
%87 = icmp sgt i32 %86, 0
br i1 %87, label %88, label %107
88: ; preds = %85
%89 = load [7 x i32]*, [7 x i32]** %4
%90 = load i32, i32* %6
%91 = sext i32 %90 to i64
%92 = getelementptr inbounds [7 x i32], [7 x i32]* %89, i64 %91
%93 = load i32, i32* %7
%94 = sub nsw i32 %93, 1
%95 = sext i32 %94 to i64
%96 = getelementptr inbounds [7 x i32], [7 x i32]* %92, i64 0, i64 %95
%97 = load i32, i32* %96
%98 = icmp eq i32 %97, 0
br i1 %98, label %99, label %107
99: ; preds = %88
%100 = getelementptr inbounds [100 x i32], [100 x i32]* %9, i64 0, i64 13
store i32 1, i32* %100
%101 = load i32, i32* %7
%102 = sub nsw i32 %101, 1
%103 = getelementptr inbounds [100 x i32], [100 x i32]* %9, i64 0, i64 13
%104 = load i32, i32* %103
%105 = sext i32 %104 to i64
%106 = getelementptr inbounds [100 x i32], [100 x i32]* %8, i64 0, i64 %105
store i32 %102, i32* %106
br label %108
107: ; preds = %88, %85
br label %121
108: ; preds = %99
br label %117
109: ; preds = %82
%110 = getelementptr inbounds [100 x i32], [100 x i32]* %9, i64 0, i64 3
store i32 1, i32* %110
%111 = load i32, i32* %7
%112 = add nsw i32 %111, 2
%113 = getelementptr inbounds [100 x i32], [100 x i32]* %9, i64 0, i64 3
%114 = load i32, i32* %113
%115 = sext i32 %114 to i64
%116 = getelementptr inbounds [100 x i32], [100 x i32]* %8, i64 0, i64 %115
store i32 %112, i32* %116
br label %117
117: ; preds = %109, %108
br label %118
118: ; preds = %117, %64
br label %119
119: ; preds = %118, %47
br label %120
120: ; preds = %119, %37
br label %121
121: ; preds = %120, %107
%122 = load i32, i32* %7
%123 = add nsw i32 %122, 1
store i32 %123, i32* %7
br label %34
124: ; preds = %34
br label %125
125: ; preds = %124
%126 = load i32, i32* %6
%127 = add nsw i32 %126, 1
store i32 %127, i32* %6
br label %30
128: ; preds = %30
store i32 0, i32* %6
br label %129
129: ; preds = %223, %128
%130 = load i32, i32* %6
%131 = icmp slt i32 %130, 6
br i1 %131, label %132, label %226
132: ; preds = %129
store i32 0, i32* %7
br label %133
133: ; preds = %219, %132
%134 = load i32, i32* %7
%135 = icmp slt i32 %134, 5
br i1 %135, label %136, label %222
136: ; preds = %133
%137 = load [7 x i32]*, [7 x i32]** %4
%138 = load i32, i32* %6
%139 = sext i32 %138 to i64
%140 = getelementptr inbounds [7 x i32], [7 x i32]* %137, i64 %139
%141 = load i32, i32* %7
%142 = sext i32 %141 to i64
%143 = getelementptr inbounds [7 x i32], [7 x i32]* %140, i64 0, i64 %142
%144 = load i32, i32* %143
%145 = icmp eq i32 %144, -1
br i1 %145, label %146, label %218
146: ; preds = %136
%147 = getelementptr inbounds [100 x i32], [100 x i32]* %9, i64 0, i64 4
store i32 1, i32* %147
%148 = load i32, i32* %7
%149 = getelementptr inbounds [100 x i32], [100 x i32]* %9, i64 0, i64 4
%150 = load i32, i32* %149
%151 = sext i32 %150 to i64
%152 = getelementptr inbounds [100 x i32], [100 x i32]* %8, i64 0, i64 %151
store i32 %148, i32* %152
%153 = load [7 x i32]*, [7 x i32]** %4
%154 = load i32, i32* %6
%155 = sext i32 %154 to i64
%156 = getelementptr inbounds [7 x i32], [7 x i32]* %153, i64 %155
%157 = load i32, i32* %7
%158 = add nsw i32 %157, 1
%159 = sext i32 %158 to i64
%160 = getelementptr inbounds [7 x i32], [7 x i32]* %156, i64 0, i64 %159
%161 = load i32, i32* %160
%162 = icmp eq i32 %161, -1
br i1 %162, label %163, label %217
163: ; preds = %146
%164 = getelementptr inbounds [100 x i32], [100 x i32]* %9, i64 0, i64 5
store i32 1, i32* %164
%165 = load i32, i32* %7
%166 = add nsw i32 %165, 1
%167 = getelementptr inbounds [100 x i32], [100 x i32]* %9, i64 0, i64 5
%168 = load i32, i32* %167
%169 = sext i32 %168 to i64
%170 = getelementptr inbounds [100 x i32], [100 x i32]* %8, i64 0, i64 %169
store i32 %166, i32* %170
%171 = load [7 x i32]*, [7 x i32]** %4
%172 = load i32, i32* %6
%173 = sext i32 %172 to i64
%174 = getelementptr inbounds [7 x i32], [7 x i32]* %171, i64 %173
%175 = load i32, i32* %7
%176 = add nsw i32 %175, 2
%177 = sext i32 %176 to i64
%178 = getelementptr inbounds [7 x i32], [7 x i32]* %174, i64 0, i64 %177
%179 = load i32, i32* %178
%180 = icmp eq i32 %179, -1
br i1 %180, label %181, label %216
181: ; preds = %163
%182 = load i32, i32* %6
%183 = icmp eq i32 %182, 5
br i1 %183, label %184, label %208
184: ; preds = %181
%185 = load i32, i32* %7
%186 = icmp sgt i32 %185, 0
br i1 %186, label %187, label %206
187: ; preds = %184
%188 = load [7 x i32]*, [7 x i32]** %4
%189 = load i32, i32* %6
%190 = sext i32 %189 to i64
%191 = getelementptr inbounds [7 x i32], [7 x i32]* %188, i64 %190
%192 = load i32, i32* %7
%193 = sub nsw i32 %192, 1
%194 = sext i32 %193 to i64
%195 = getelementptr inbounds [7 x i32], [7 x i32]* %191, i64 0, i64 %194
%196 = load i32, i32* %195
%197 = icmp eq i32 %196, 0
br i1 %197, label %198, label %206
198: ; preds = %187
%199 = getelementptr inbounds [100 x i32], [100 x i32]* %9, i64 0, i64 14
store i32 1, i32* %199
%200 = load i32, i32* %7
%201 = sub nsw i32 %200, 1
%202 = getelementptr inbounds [100 x i32], [100 x i32]* %9, i64 0, i64 14
%203 = load i32, i32* %202
%204 = sext i32 %203 to i64
%205 = getelementptr inbounds [100 x i32], [100 x i32]* %8, i64 0, i64 %204
store i32 %201, i32* %205
br label %207
206: ; preds = %187, %184
br label %219
207: ; preds = %198
br label %208
208: ; preds = %207, %181
%209 = getelementptr inbounds [100 x i32], [100 x i32]* %9, i64 0, i64 6
store i32 1, i32* %209
%210 = load i32, i32* %7
%211 = add nsw i32 %210, 2
%212 = getelementptr inbounds [100 x i32], [100 x i32]* %9, i64 0, i64 6
%213 = load i32, i32* %212
%214 = sext i32 %213 to i64
%215 = getelementptr inbounds [100 x i32], [100 x i32]* %8, i64 0, i64 %214
store i32 %211, i32* %215
br label %216
216: ; preds = %208, %163
br label %217
217: ; preds = %216, %146
br label %218
218: ; preds = %217, %136
br label %219
219: ; preds = %218, %206
%220 = load i32, i32* %7
%221 = add nsw i32 %220, 1
store i32 %221, i32* %7
br label %133
222: ; preds = %133
br label %223
223: ; preds = %222
%224 = load i32, i32* %6
%225 = add nsw i32 %224, 1
store i32 %225, i32* %6
br label %129
226: ; preds = %129
store i32 0, i32* %6
br label %227
227: ; preds = %297, %226
%228 = load i32, i32* %6
%229 = icmp slt i32 %228, 4
br i1 %229, label %230, label %300
230: ; preds = %227
store i32 0, i32* %7
br label %231
231: ; preds = %293, %230
%232 = load i32, i32* %7
%233 = icmp slt i32 %232, 7
br i1 %233, label %234, label %296
234: ; preds = %231
%235 = load [7 x i32]*, [7 x i32]** %4
%236 = load i32, i32* %6
%237 = sext i32 %236 to i64
%238 = getelementptr inbounds [7 x i32], [7 x i32]* %235, i64 %237
%239 = load i32, i32* %7
%240 = sext i32 %239 to i64
%241 = getelementptr inbounds [7 x i32], [7 x i32]* %238, i64 0, i64 %240
%242 = load i32, i32* %241
%243 = icmp eq i32 %242, 1
br i1 %243, label %244, label %292
244: ; preds = %234
%245 = getelementptr inbounds [100 x i32], [100 x i32]* %9, i64 0, i64 7
store i32 1, i32* %245
%246 = load i32, i32* %7
%247 = getelementptr inbounds [100 x i32], [100 x i32]* %9, i64 0, i64 7
%248 = load i32, i32* %247
%249 = sext i32 %248 to i64
%250 = getelementptr inbounds [100 x i32], [100 x i32]* %8, i64 0, i64 %249
store i32 %246, i32* %250
%251 = load [7 x i32]*, [7 x i32]** %4
%252 = load i32, i32* %6
%253 = add nsw i32 %252, 1
%254 = sext i32 %253 to i64
%255 = getelementptr inbounds [7 x i32], [7 x i32]* %251, i64 %254
%256 = load i32, i32* %7
%257 = sext i32 %256 to i64
%258 = getelementptr inbounds [7 x i32], [7 x i32]* %255, i64 0, i64 %257
%259 = load i32, i32* %258
%260 = icmp eq i32 %259, 1
br i1 %260, label %261, label %291
261: ; preds = %244
%262 = getelementptr inbounds [100 x i32], [100 x i32]* %9, i64 0, i64 8
store i32 1, i32* %262
%263 = load i32, i32* %7
%264 = getelementptr inbounds [100 x i32], [100 x i32]* %9, i64 0, i64 8
%265 = load i32, i32* %264
%266 = sext i32 %265 to i64
%267 = getelementptr inbounds [100 x i32], [100 x i32]* %8, i64 0, i64 %266
store i32 %263, i32* %267
%268 = load [7 x i32]*, [7 x i32]** %4
%269 = load i32, i32* %6
%270 = add nsw i32 %269, 2
%271 = sext i32 %270 to i64
%272 = getelementptr inbounds [7 x i32], [7 x i32]* %268, i64 %271
%273 = load i32, i32* %7
%274 = sext i32 %273 to i64
%275 = getelementptr inbounds [7 x i32], [7 x i32]* %272, i64 0, i64 %274
%276 = load i32, i32* %275
%277 = icmp eq i32 %276, 1
br i1 %277, label %278, label %290
278: ; preds = %261
%279 = load i32, i32* %6
%280 = icmp eq i32 %279, 4
br i1 %280, label %281, label %282
281: ; preds = %278
br label %293
282: ; preds = %278
%283 = getelementptr inbounds [100 x i32], [100 x i32]* %9, i64 0, i64 9
store i32 1, i32* %283
%284 = load i32, i32* %7
%285 = getelementptr inbounds [100 x i32], [100 x i32]* %9, i64 0, i64 9
%286 = load i32, i32* %285
%287 = sext i32 %286 to i64
%288 = getelementptr inbounds [100 x i32], [100 x i32]* %8, i64 0, i64 %287
store i32 %284, i32* %288
br label %289
289: ; preds = %282
br label %290
290: ; preds = %289, %261
br label %291
291: ; preds = %290, %244
br label %292
292: ; preds = %291, %234
br label %293
293: ; preds = %292, %281
%294 = load i32, i32* %7
%295 = add nsw i32 %294, 1
store i32 %295, i32* %7
br label %231
296: ; preds = %231
br label %297
297: ; preds = %296
%298 = load i32, i32* %6
%299 = add nsw i32 %298, 1
store i32 %299, i32* %6
br label %227
300: ; preds = %227
store i32 0, i32* %6
br label %301
301: ; preds = %371, %300
%302 = load i32, i32* %6
%303 = icmp slt i32 %302, 4
br i1 %303, label %304, label %374
304: ; preds = %301
store i32 0, i32* %7
br label %305
305: ; preds = %367, %304
%306 = load i32, i32* %7
%307 = icmp slt i32 %306, 7
br i1 %307, label %308, label %370
308: ; preds = %305
%309 = load [7 x i32]*, [7 x i32]** %4
%310 = load i32, i32* %6
%311 = sext i32 %310 to i64
%312 = getelementptr inbounds [7 x i32], [7 x i32]* %309, i64 %311
%313 = load i32, i32* %7
%314 = sext i32 %313 to i64
%315 = getelementptr inbounds [7 x i32], [7 x i32]* %312, i64 0, i64 %314
%316 = load i32, i32* %315
%317 = icmp eq i32 %316, -1
br i1 %317, label %318, label %366
318: ; preds = %308
%319 = getelementptr inbounds [100 x i32], [100 x i32]* %9, i64 0, i64 10
store i32 1, i32* %319
%320 = load i32, i32* %7
%321 = getelementptr inbounds [100 x i32], [100 x i32]* %9, i64 0, i64 10
%322 = load i32, i32* %321
%323 = sext i32 %322 to i64
%324 = getelementptr inbounds [100 x i32], [100 x i32]* %8, i64 0, i64 %323
store i32 %320, i32* %324
%325 = load [7 x i32]*, [7 x i32]** %4
%326 = load i32, i32* %6
%327 = add nsw i32 %326, 1
%328 = sext i32 %327 to i64
%329 = getelementptr inbounds [7 x i32], [7 x i32]* %325, i64 %328
%330 = load i32, i32* %7
%331 = sext i32 %330 to i64
%332 = getelementptr inbounds [7 x i32], [7 x i32]* %329, i64 0, i64 %331
%333 = load i32, i32* %332
%334 = icmp eq i32 %333, -1
br i1 %334, label %335, label %365
335: ; preds = %318
%336 = getelementptr inbounds [100 x i32], [100 x i32]* %9, i64 0, i64 11
store i32 1, i32* %336
%337 = load i32, i32* %7
%338 = getelementptr inbounds [100 x i32], [100 x i32]* %9, i64 0, i64 11
%339 = load i32, i32* %338
%340 = sext i32 %339 to i64
%341 = getelementptr inbounds [100 x i32], [100 x i32]* %8, i64 0, i64 %340
store i32 %337, i32* %341
%342 = load [7 x i32]*, [7 x i32]** %4
%343 = load i32, i32* %6
%344 = add nsw i32 %343, 2
%345 = sext i32 %344 to i64
%346 = getelementptr inbounds [7 x i32], [7 x i32]* %342, i64 %345
%347 = load i32, i32* %7
%348 = sext i32 %347 to i64
%349 = getelementptr inbounds [7 x i32], [7 x i32]* %346, i64 0, i64 %348
%350 = load i32, i32* %349
%351 = icmp eq i32 %350, -1
br i1 %351, label %352, label %364
352: ; preds = %335
%353 = load i32, i32* %6
%354 = icmp eq i32 %353, 4
br i1 %354, label %355, label %356
355: ; preds = %352
br label %367
356: ; preds = %352
%357 = getelementptr inbounds [100 x i32], [100 x i32]* %9, i64 0, i64 12
store i32 1, i32* %357
%358 = load i32, i32* %7
%359 = getelementptr inbounds [100 x i32], [100 x i32]* %9, i64 0, i64 12
%360 = load i32, i32* %359
%361 = sext i32 %360 to i64
%362 = getelementptr inbounds [100 x i32], [100 x i32]* %8, i64 0, i64 %361
store i32 %358, i32* %362
br label %363
363: ; preds = %356
br label %364
364: ; preds = %363, %335
br label %365
365: ; preds = %364, %318
br label %366
366: ; preds = %365, %308
br label %367
367: ; preds = %366, %355
%368 = load i32, i32* %7
%369 = add nsw i32 %368, 1
store i32 %369, i32* %7
br label %305
370: ; preds = %305
br label %371
371: ; preds = %370
%372 = load i32, i32* %6
%373 = add nsw i32 %372, 1
store i32 %373, i32* %6
br label %301
374: ; preds = %301
store i32 0, i32* %6
br label %375
375: ; preds = %444, %374
%376 = load i32, i32* %6
%377 = icmp slt i32 %376, 4
br i1 %377, label %378, label %447
378: ; preds = %375
store i32 0, i32* %7
br label %379
379: ; preds = %440, %378
%380 = load i32, i32* %7
%381 = icmp slt i32 %380, 5
br i1 %381, label %382, label %443
382: ; preds = %379
%383 = load [7 x i32]*, [7 x i32]** %4
%384 = load i32, i32* %6
%385 = sext i32 %384 to i64
%386 = getelementptr inbounds [7 x i32], [7 x i32]* %383, i64 %385
%387 = load i32, i32* %7
%388 = sext i32 %387 to i64
%389 = getelementptr inbounds [7 x i32], [7 x i32]* %386, i64 0, i64 %388
%390 = load i32, i32* %389
%391 = icmp eq i32 %390, 1
br i1 %391, label %392, label %439
392: ; preds = %382
%393 = getelementptr inbounds [100 x i32], [100 x i32]* %9, i64 0, i64 4
store i32 1, i32* %393
%394 = load i32, i32* %7
%395 = getelementptr inbounds [100 x i32], [100 x i32]* %9, i64 0, i64 4
%396 = load i32, i32* %395
%397 = sext i32 %396 to i64
%398 = getelementptr inbounds [100 x i32], [100 x i32]* %8, i64 0, i64 %397
store i32 %394, i32* %398
%399 = load [7 x i32]*, [7 x i32]** %4
%400 = load i32, i32* %6
%401 = add nsw i32 %400, 1
%402 = sext i32 %401 to i64
%403 = getelementptr inbounds [7 x i32], [7 x i32]* %399, i64 %402
%404 = load i32, i32* %7
%405 = add nsw i32 %404, 1
%406 = sext i32 %405 to i64
%407 = getelementptr inbounds [7 x i32], [7 x i32]* %403, i64 0, i64 %406
%408 = load i32, i32* %407
%409 = icmp eq i32 %408, 1
br i1 %409, label %410, label %438
410: ; preds = %392
%411 = getelementptr inbounds [100 x i32], [100 x i32]* %9, i64 0, i64 5
store i32 1, i32* %411
%412 = load i32, i32* %7
%413 = add nsw i32 %412, 1
%414 = getelementptr inbounds [100 x i32], [100 x i32]* %9, i64 0, i64 5
%415 = load i32, i32* %414
%416 = sext i32 %415 to i64
%417 = getelementptr inbounds [100 x i32], [100 x i32]* %8, i64 0, i64 %416
store i32 %413, i32* %417
%418 = load [7 x i32]*, [7 x i32]** %4
%419 = load i32, i32* %6
%420 = add nsw i32 %419, 2
%421 = sext i32 %420 to i64
%422 = getelementptr inbounds [7 x i32], [7 x i32]* %418, i64 %421
%423 = load i32, i32* %7
%424 = add nsw i32 %423, 2
%425 = sext i32 %424 to i64
%426 = getelementptr inbounds [7 x i32], [7 x i32]* %422, i64 0, i64 %425
%427 = load i32, i32* %426
%428 = icmp eq i32 %427, 1
br i1 %428, label %429, label %437
429: ; preds = %410
%430 = getelementptr inbounds [100 x i32], [100 x i32]* %9, i64 0, i64 6
store i32 1, i32* %430
%431 = load i32, i32* %7
%432 = add nsw i32 %431, 2
%433 = getelementptr inbounds [100 x i32], [100 x i32]* %9, i64 0, i64 6
%434 = load i32, i32* %433
%435 = sext i32 %434 to i64
%436 = getelementptr inbounds [100 x i32], [100 x i32]* %8, i64 0, i64 %435
store i32 %432, i32* %436
br label %437
437: ; preds = %429, %410
br label %438
438: ; preds = %437, %392
br label %439
439: ; preds = %438, %382
br label %440
440: ; preds = %439
%441 = load i32, i32* %7
%442 = add nsw i32 %441, 1
store i32 %442, i32* %7
br label %379
443: ; preds = %379
br label %444
444: ; preds = %443
%445 = load i32, i32* %6
%446 = add nsw i32 %445, 1
store i32 %446, i32* %6
br label %375
447: ; preds = %375
store i32 0, i32* %6
br label %448
448: ; preds = %517, %447
%449 = load i32, i32* %6
%450 = icmp slt i32 %449, 4
br i1 %450, label %451, label %520
451: ; preds = %448
store i32 0, i32* %7
br label %452
452: ; preds = %513, %451
%453 = load i32, i32* %7
%454 = icmp slt i32 %453, 5
br i1 %454, label %455, label %516
455: ; preds = %452
%456 = load [7 x i32]*, [7 x i32]** %4
%457 = load i32, i32* %6
%458 = sext i32 %457 to i64
%459 = getelementptr inbounds [7 x i32], [7 x i32]* %456, i64 %458
%460 = load i32, i32* %7
%461 = sext i32 %460 to i64
%462 = getelementptr inbounds [7 x i32], [7 x i32]* %459, i64 0, i64 %461
%463 = load i32, i32* %462
%464 = icmp eq i32 %463, -1
br i1 %464, label %465, label %512
465: ; preds = %455
%466 = getelementptr inbounds [100 x i32], [100 x i32]* %9, i64 0, i64 4
store i32 1, i32* %466
%467 = load i32, i32* %7
%468 = getelementptr inbounds [100 x i32], [100 x i32]* %9, i64 0, i64 4
%469 = load i32, i32* %468
%470 = sext i32 %469 to i64
%471 = getelementptr inbounds [100 x i32], [100 x i32]* %8, i64 0, i64 %470
store i32 %467, i32* %471
%472 = load [7 x i32]*, [7 x i32]** %4
%473 = load i32, i32* %6
%474 = add nsw i32 %473, 1
%475 = sext i32 %474 to i64
%476 = getelementptr inbounds [7 x i32], [7 x i32]* %472, i64 %475
%477 = load i32, i32* %7
%478 = add nsw i32 %477, 1
%479 = sext i32 %478 to i64
%480 = getelementptr inbounds [7 x i32], [7 x i32]* %476, i64 0, i64 %479
%481 = load i32, i32* %480
%482 = icmp eq i32 %481, -1
br i1 %482, label %483, label %511
483: ; preds = %465
%484 = getelementptr inbounds [100 x i32], [100 x i32]* %9, i64 0, i64 5
store i32 1, i32* %484
%485 = load i32, i32* %7
%486 = add nsw i32 %485, 1
%487 = getelementptr inbounds [100 x i32], [100 x i32]* %9, i64 0, i64 5
%488 = load i32, i32* %487
%489 = sext i32 %488 to i64
%490 = getelementptr inbounds [100 x i32], [100 x i32]* %8, i64 0, i64 %489
store i32 %486, i32* %490
%491 = load [7 x i32]*, [7 x i32]** %4
%492 = load i32, i32* %6
%493 = add nsw i32 %492, 2
%494 = sext i32 %493 to i64
%495 = getelementptr inbounds [7 x i32], [7 x i32]* %491, i64 %494
%496 = load i32, i32* %7
%497 = add nsw i32 %496, 2
%498 = sext i32 %497 to i64
%499 = getelementptr inbounds [7 x i32], [7 x i32]* %495, i64 0, i64 %498
%500 = load i32, i32* %499
%501 = icmp eq i32 %500, -1
br i1 %501, label %502, label %510
502: ; preds = %483
%503 = getelementptr inbounds [100 x i32], [100 x i32]* %9, i64 0, i64 6
store i32 1, i32* %503
%504 = load i32, i32* %7
%505 = add nsw i32 %504, 2
%506 = getelementptr inbounds [100 x i32], [100 x i32]* %9, i64 0, i64 6
%507 = load i32, i32* %506
%508 = sext i32 %507 to i64
%509 = getelementptr inbounds [100 x i32], [100 x i32]* %8, i64 0, i64 %508
store i32 %505, i32* %509
br label %510
510: ; preds = %502, %483
br label %511
511: ; preds = %510, %465
br label %512
512: ; preds = %511, %455
br label %513
513: ; preds = %512
%514 = load i32, i32* %7
%515 = add nsw i32 %514, 1
store i32 %515, i32* %7
br label %452
516: ; preds = %452
br label %517
517: ; preds = %516
%518 = load i32, i32* %6
%519 = add nsw i32 %518, 1
store i32 %519, i32* %6
br label %448
520: ; preds = %448
%521 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str, i64 0, i64 0))
%522 = getelementptr inbounds [100 x i32], [100 x i32]* %9, i64 0, i64 6
%523 = load i32, i32* %522
%524 = icmp eq i32 %523, 1
br i1 %524, label %525, label %546
525: ; preds = %520
%526 = getelementptr inbounds [100 x i32], [100 x i32]* %9, i64 0, i64 6
%527 = load i32, i32* %526
%528 = sext i32 %527 to i64
%529 = getelementptr inbounds [100 x i32], [100 x i32]* %8, i64 0, i64 %528
%530 = load i32, i32* %529
%531 = icmp eq i32 %530, 7
br i1 %531, label %532, label %539
532: ; preds = %525
%533 = getelementptr inbounds [100 x i32], [100 x i32]* %9, i64 0, i64 6
%534 = load i32, i32* %533
%535 = sext i32 %534 to i64
%536 = getelementptr inbounds [100 x i32], [100 x i32]* %8, i64 0, i64 %535
%537 = load i32, i32* %536
%538 = sub nsw i32 %537, 2
store i32 %538, i32* %3
br label %681
539: ; preds = %525
%540 = getelementptr inbounds [100 x i32], [100 x i32]* %9, i64 0, i64 6
%541 = load i32, i32* %540
%542 = sext i32 %541 to i64
%543 = getelementptr inbounds [100 x i32], [100 x i32]* %8, i64 0, i64 %542
%544 = load i32, i32* %543
%545 = add nsw i32 %544, 1
store i32 %545, i32* %3
br label %681
546: ; preds = %520
%547 = getelementptr inbounds [100 x i32], [100 x i32]* %9, i64 0, i64 12
%548 = load i32, i32* %547
%549 = icmp eq i32 %548, 1
br i1 %549, label %550, label %556
550: ; preds = %546
%551 = getelementptr inbounds [100 x i32], [100 x i32]* %9, i64 0, i64 12
%552 = load i32, i32* %551
%553 = sext i32 %552 to i64
%554 = getelementptr inbounds [100 x i32], [100 x i32]* %8, i64 0, i64 %553
%555 = load i32, i32* %554
store i32 %555, i32* %3
br label %681
556: ; preds = %546
%557 = getelementptr inbounds [100 x i32], [100 x i32]* %9, i64 0, i64 13
%558 = load i32, i32* %557
%559 = icmp eq i32 %558, 1
br i1 %559, label %560, label %566
560: ; preds = %556
%561 = getelementptr inbounds [100 x i32], [100 x i32]* %9, i64 0, i64 13
%562 = load i32, i32* %561
%563 = sext i32 %562 to i64
%564 = getelementptr inbounds [100 x i32], [100 x i32]* %8, i64 0, i64 %563
%565 = load i32, i32* %564
store i32 %565, i32* %3
br label %681
566: ; preds = %556
%567 = getelementptr inbounds [100 x i32], [100 x i32]* %9, i64 0, i64 5
%568 = load i32, i32* %567
%569 = icmp eq i32 %568, 1
br i1 %569, label %570, label %577
570: ; preds = %566
%571 = getelementptr inbounds [100 x i32], [100 x i32]* %9, i64 0, i64 5
%572 = load i32, i32* %571
%573 = sext i32 %572 to i64
%574 = getelementptr inbounds [100 x i32], [100 x i32]* %8, i64 0, i64 %573
%575 = load i32, i32* %574
%576 = add nsw i32 %575, 1
store i32 %576, i32* %3
br label %681
577: ; preds = %566
%578 = getelementptr inbounds [100 x i32], [100 x i32]* %9, i64 0, i64 14
%579 = load i32, i32* %578
%580 = icmp eq i32 %579, 1
br i1 %580, label %581, label %587
581: ; preds = %577
%582 = getelementptr inbounds [100 x i32], [100 x i32]* %9, i64 0, i64 14
%583 = load i32, i32* %582
%584 = sext i32 %583 to i64
%585 = getelementptr inbounds [100 x i32], [100 x i32]* %8, i64 0, i64 %584
%586 = load i32, i32* %585
store i32 %586, i32* %3
br label %681
587: ; preds = %577
%588 = getelementptr inbounds [100 x i32], [100 x i32]* %9, i64 0, i64 11
%589 = load i32, i32* %588
%590 = icmp eq i32 %589, 1
br i1 %590, label %591, label %597
591: ; preds = %587
%592 = getelementptr inbounds [100 x i32], [100 x i32]* %9, i64 0, i64 11
%593 = load i32, i32* %592
%594 = sext i32 %593 to i64
%595 = getelementptr inbounds [100 x i32], [100 x i32]* %8, i64 0, i64 %594
%596 = load i32, i32* %595
store i32 %596, i32* %3
br label %681
597: ; preds = %587
%598 = getelementptr inbounds [100 x i32], [100 x i32]* %9, i64 0, i64 4
%599 = load i32, i32* %598
%600 = icmp eq i32 %599, 1
br i1 %600, label %601, label %608
601: ; preds = %597
%602 = getelementptr inbounds [100 x i32], [100 x i32]* %9, i64 0, i64 4
%603 = load i32, i32* %602
%604 = sext i32 %603 to i64
%605 = getelementptr inbounds [100 x i32], [100 x i32]* %8, i64 0, i64 %604
%606 = load i32, i32* %605
%607 = add nsw i32 %606, 1
store i32 %607, i32* %3
br label %681
608: ; preds = %597
%609 = getelementptr inbounds [100 x i32], [100 x i32]* %9, i64 0, i64 10
%610 = load i32, i32* %609
%611 = icmp eq i32 %610, 1
br i1 %611, label %612, label %618
612: ; preds = %608
%613 = getelementptr inbounds [100 x i32], [100 x i32]* %9, i64 0, i64 10
%614 = load i32, i32* %613
%615 = sext i32 %614 to i64
%616 = getelementptr inbounds [100 x i32], [100 x i32]* %8, i64 0, i64 %615
%617 = load i32, i32* %616
store i32 %617, i32* %3
br label %681
618: ; preds = %608
%619 = getelementptr inbounds [100 x i32], [100 x i32]* %9, i64 0, i64 3
%620 = load i32, i32* %619
%621 = icmp eq i32 %620, 1
br i1 %621, label %622, label %629
622: ; preds = %618
%623 = getelementptr inbounds [100 x i32], [100 x i32]* %9, i64 0, i64 3
%624 = load i32, i32* %623
%625 = sext i32 %624 to i64
%626 = getelementptr inbounds [100 x i32], [100 x i32]* %8, i64 0, i64 %625
%627 = load i32, i32* %626
%628 = add nsw i32 %627, 1
store i32 %628, i32* %3
br label %681
629: ; preds = %618
%630 = getelementptr inbounds [100 x i32], [100 x i32]* %9, i64 0, i64 9
%631 = load i32, i32* %630
%632 = icmp eq i32 %631, 1
br i1 %632, label %633, label %639
633: ; preds = %629
%634 = getelementptr inbounds [100 x i32], [100 x i32]* %9, i64 0, i64 9
%635 = load i32, i32* %634
%636 = sext i32 %635 to i64
%637 = getelementptr inbounds [100 x i32], [100 x i32]* %8, i64 0, i64 %636
%638 = load i32, i32* %637
store i32 %638, i32* %3
br label %681
639: ; preds = %629
%640 = getelementptr inbounds [100 x i32], [100 x i32]* %9, i64 0, i64 2
%641 = load i32, i32* %640
%642 = icmp eq i32 %641, 1
br i1 %642, label %643, label %650
643: ; preds = %639
%644 = getelementptr inbounds [100 x i32], [100 x i32]* %9, i64 0, i64 2
%645 = load i32, i32* %644
%646 = sext i32 %645 to i64
%647 = getelementptr inbounds [100 x i32], [100 x i32]* %8, i64 0, i64 %646
%648 = load i32, i32* %647
%649 = add nsw i32 %648, 1
store i32 %649, i32* %3
br label %681
650: ; preds = %639
%651 = getelementptr inbounds [100 x i32], [100 x i32]* %9, i64 0, i64 8
%652 = load i32, i32* %651
%653 = icmp eq i32 %652, 1
br i1 %653, label %654, label %660
654: ; preds = %650
%655 = getelementptr inbounds [100 x i32], [100 x i32]* %9, i64 0, i64 8
%656 = load i32, i32* %655
%657 = sext i32 %656 to i64
%658 = getelementptr inbounds [100 x i32], [100 x i32]* %8, i64 0, i64 %657
%659 = load i32, i32* %658
store i32 %659, i32* %3
br label %681
660: ; preds = %650
%661 = getelementptr inbounds [100 x i32], [100 x i32]* %9, i64 0, i64 1
%662 = load i32, i32* %661
%663 = icmp eq i32 %662, 1
br i1 %663, label %664, label %671
664: ; preds = %660
%665 = getelementptr inbounds [100 x i32], [100 x i32]* %9, i64 0, i64 1
%666 = load i32, i32* %665
%667 = sext i32 %666 to i64
%668 = getelementptr inbounds [100 x i32], [100 x i32]* %8, i64 0, i64 %667
%669 = load i32, i32* %668
%670 = add nsw i32 %669, 1
store i32 %670, i32* %3
br label %681
671: ; preds = %660
%672 = getelementptr inbounds [100 x i32], [100 x i32]* %9, i64 0, i64 7
%673 = load i32, i32* %672
%674 = icmp eq i32 %673, 1
br i1 %674, label %675, label %681
675: ; preds = %671
%676 = getelementptr inbounds [100 x i32], [100 x i32]* %9, i64 0, i64 7
%677 = load i32, i32* %676
%678 = sext i32 %677 to i64
%679 = getelementptr inbounds [100 x i32], [100 x i32]* %8, i64 0, i64 %678
%680 = load i32, i32* %679
store i32 %680, i32* %3
br label %681
681: ; preds = %25, %532, %539, %550, %560, %570, %581, %591, %601, %612, %622, %633, %643, %654, %664, %675, %671
%682 = load i32, i32* %3
ret i32 %682
}

LLVM IR (-O2):
define i32 @bot([7 x i32]* nocapture %0, i32 %1) {
ret i32 4
}