void play(void) {
  char mat[3][3];
  int n_jogada1, n_jogada2, resultado = 0, confirma;
  mat[0][0] = ' ';
  mat[0][1] = ' ';
  mat[0][2] = ' ';
  mat[1][0] = ' ';
  mat[1][1] = ' ';
  mat[1][2] = ' ';
  mat[2][0] = ' ';
  mat[2][1] = ' ';
  mat[2][2] = ' ';
  while (resultado != 1) {
    printf("\n\t\t C0  C1  C2\n\n");
    printf("\t     L0");
    printf("\t %c | %c | %c\n", mat[0][0], mat[0][1], mat[0][2]);
    printf("\t\t-----------\n");
    printf("\t     L1");
    printf("\t %c | %c | %c\n", mat[1][0], mat[1][1], mat[1][2]);
    printf("\t\t-----------\n");
    printf("\t     L2");
    printf("\t %c | %c | %c\n\n", mat[2][0], mat[2][1], mat[2][2]);
    printf("\t\tJogador 1: \n");
    printf("Digite a sua jogada [L,C]: ");
    scanf("%d", &n_jogada1);
    confirma = 0;
    do {
      if ((mat[0][0] == ' ') && (n_jogada1 == 00)) {
        mat[0][0] = 'X';
        confirma = 1;
      } else {
        if ((mat[0][1] == ' ') && (n_jogada1 == 01)) {
          mat[0][1] = 'X';
          confirma = 1;
        } else {
          if ((mat[0][2] == ' ') && (n_jogada1 == 02)) {
            mat[0][2] = 'X';
            confirma = 1;
          } else {
            if ((mat[1][0] == ' ') && (n_jogada1 == 10)) {
              mat[1][0] = 'X';
              confirma = 1;
            } else {
              if ((mat[1][1] == ' ') && (n_jogada1 == 11)) {
                mat[1][1] = 'X';
                confirma = 1;
              } else {
                if ((mat[1][2] == ' ') && (n_jogada1 == 12)) {
                  mat[1][2] = 'X';
                  confirma = 1;
                } else {
                  if ((mat[2][0] == ' ') && (n_jogada1 == 20)) {
                    mat[2][0] = 'X';
                    confirma = 1;
                  } else {
                    if ((mat[2][1] == ' ') && (n_jogada1 == 21)) {
                      mat[2][1] = 'X';
                      confirma = 1;
                    } else {
                      if ((mat[2][2] == ' ') && (n_jogada1 == 22)) {
                        mat[2][2] = 'X';
                        confirma = 1;
                      } else {
                        printf("\t\tJogada Invalida!\n");
                        printf("Digite a sua jogada [L,C]: ");
                        scanf("%d", &n_jogada1);
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
      system("cls");
      printf("\n\t\t C0  C1  C2\n\n");
      printf("\t     L0");
      printf("\t %c | %c | %c\n", mat[0][0], mat[0][1], mat[0][2]);
      printf("\t\t-----------\n");
      printf("\t     L1");
      printf("\t %c | %c | %c\n", mat[1][0], mat[1][1], mat[1][2]);
      printf("\t\t-----------\n");
      printf("\t     L2");
      printf("\t %c | %c | %c\n\n", mat[2][0], mat[2][1], mat[2][2]);
    } while (confirma != 1);
    printf("\t\tJogador 2: \n");
    printf("Digite a sua jogada [L,C]: ");
    scanf("%d", &n_jogada2);
    confirma = 0;
    do {
      if ((mat[0][0] == ' ') && (n_jogada2 == 00)) {
        mat[0][0] = 'O';
        confirma = 1;
      } else {
        if ((mat[0][1] == ' ') && (n_jogada2 == 01)) {
          mat[0][1] = 'O';
          confirma = 1;
        } else {
          if ((mat[0][2] == ' ') && (n_jogada2 == 02)) {
            mat[0][2] = 'O';
            confirma = 1;
          } else {
            if ((mat[1][0] == ' ') && (n_jogada2 == 10)) {
              mat[1][0] = 'O';
              confirma = 1;
            } else {
              if ((mat[1][1] == ' ') && (n_jogada2 == 11)) {
                mat[1][1] = 'O';
                confirma = 1;
              } else {
                if ((mat[1][2] == ' ') && (n_jogada2 == 12)) {
                  mat[1][2] = 'O';
                  confirma = 1;
                } else {
                  if ((mat[2][0] == ' ') && (n_jogada2 == 20)) {
                    mat[2][0] = 'O';
                    confirma = 1;
                  } else {
                    if ((mat[2][1] == ' ') && (n_jogada2 == 21)) {
                      mat[2][1] = 'O';
                      confirma = 1;
                    } else {
                      if ((mat[2][2] == ' ') && (n_jogada2 == 22)) {
                        mat[2][2] = 'O';
                        confirma = 1;
                      } else {
                        printf("\t\tJogada Invalida!\n");
                        printf("Digite a sua jogada [L,C]: ");
                        scanf("%d", &n_jogada2);
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
      system("cls");
      printf("\n\t\t C0  C1  C2\n\n");
      printf("\t     L0");
      printf("\t %c | %c | %c\n", mat[0][0], mat[0][1], mat[0][2]);
      printf("\t\t-----------\n");
      printf("\t     L1");
      printf("\t %c | %c | %c\n", mat[1][0], mat[1][1], mat[1][2]);
      printf("\t\t-----------\n");
      printf("\t     L2");
      printf("\t %c | %c | %c\n\n", mat[2][0], mat[2][1], mat[2][2]);
    } while (confirma != 1);
    system("cls");
    if (mat[0][0] == 'X' && mat[0][1] == 'X' && mat[0][2] == 'X' ||
        mat[1][0] == 'X' && mat[1][1] == 'X' && mat[1][2] == 'X' ||
        mat[2][0] == 'X' && mat[2][1] == 'X' && mat[2][2] == 'X' ||
        mat[0][0] == 'X' && mat[1][0] == 'X' && mat[2][0] == 'X' ||
        mat[0][1] == 'X' && mat[1][1] == 'X' && mat[2][1] == 'X' ||
        mat[0][2] == 'X' && mat[1][2] == 'X' && mat[2][2] == 'X' ||
        mat[0][0] == 'X' && mat[1][1] == 'X' && mat[2][2] == 'X' ||
        mat[0][2] == 'X' && mat[1][1] == 'X' && mat[2][0] == 'X') {
      printf("\nO jogador 1 venceu!");
      resultado = 1;
      printf("\n\n\t\t C0  C1  C2\n\n");
      printf("\t     L0");
      printf("\t %c | %c | %c\n", mat[0][0], mat[0][1], mat[0][2]);
      printf("\t\t-----------\n");
      printf("\t     L1");
      printf("\t %c | %c | %c\n", mat[1][0], mat[1][1], mat[1][2]);
      printf("\t\t-----------\n");
      printf("\t     L2");
      printf("\t %c | %c | %c\n\n", mat[2][0], mat[2][1], mat[2][2]);
    } else {
      if (mat[0][0] == 'O' && mat[0][1] == 'O' && mat[0][2] == 'O' ||
          mat[1][0] == 'O' && mat[1][1] == 'O' && mat[1][2] == 'O' ||
          mat[2][0] == 'O' && mat[2][1] == 'O' && mat[2][2] == 'O' ||
          mat[0][0] == 'O' && mat[1][0] == 'O' && mat[2][0] == 'O' ||
          mat[0][1] == 'O' && mat[1][1] == 'O' && mat[2][1] == 'O' ||
          mat[0][2] == 'O' && mat[1][2] == 'O' && mat[2][2] == 'O' ||
          mat[0][0] == 'O' && mat[1][1] == 'O' && mat[2][2] == 'O' ||
          mat[0][2] == 'O' && mat[1][1] == 'O' && mat[2][0] == 'O') {
        printf("\nO jogador 2 venceu!");
        resultado = 1;
        printf("\n\n\t\t C0  C1  C2\n\n");
        printf("\t     L0");
        printf("\t %c | %c | %c\n", mat[0][0], mat[0][1], mat[0][2]);
        printf("\t\t-----------\n");
        printf("\t     L1");
        printf("\t %c | %c | %c\n", mat[1][0], mat[1][1], mat[1][2]);
        printf("\t\t-----------\n");
        printf("\t     L2");
        printf("\t %c | %c | %c\n\n", mat[2][0], mat[2][1], mat[2][2]);
      } else {
        if ((mat[0][0] != ' ') && (mat[0][1] != ' ') && (mat[0][2] != ' ') &&
            (mat[1][0] != ' ') && (mat[1][1] != ' ') && (mat[1][2] != ' ') &&
            (mat[2][0] != ' ') && (mat[2][1] != ' ') && (mat[2][2] != ' ')) {
          printf("\nO jogo empatou! Deu velha!!!");
          resultado = 1;
          printf("\n\n\t\t C0  C1  C2\n\n");
          printf("\t     L0");
          printf("\t %c | %c | %c\n", mat[0][0], mat[0][1], mat[0][2]);
          printf("\t\t-----------\n");
          printf("\t     L1");
          printf("\t %c | %c | %c\n", mat[1][0], mat[1][1], mat[1][2]);
          printf("\t\t-----------\n");
          printf("\t     L2");
          printf("\t %c | %c | %c\n\n", mat[2][0], mat[2][1], mat[2][2]);
        }
      }
    }
  }
}


x86 assembly (clang, -O0):
<play>:
push   %rbp
mov    %rsp,%rbp
sub    $0x20,%rsp
movl   $0x0,-0x18(%rbp)
movb   $0x20,-0x9(%rbp)
movb   $0x20,-0x8(%rbp)
movb   $0x20,-0x7(%rbp)
movb   $0x20,-0x6(%rbp)
movb   $0x20,-0x5(%rbp)
movb   $0x20,-0x4(%rbp)
movb   $0x20,-0x3(%rbp)
movb   $0x20,-0x2(%rbp)
movb   $0x20,-0x1(%rbp)
cmpl   $0x1,-0x18(%rbp)
je     1c88 <play+0xb58>
lea    0xf42(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    0xe7e(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
movsbl -0x9(%rbp),%esi
movsbl -0x8(%rbp),%edx
movsbl -0x7(%rbp),%ecx
lea    0xe6d(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    0xe6f(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    0xe70(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
movsbl -0x6(%rbp),%esi
movsbl -0x5(%rbp),%edx
movsbl -0x4(%rbp),%ecx
lea    0xe37(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    0xe39(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    0xe43(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
movsbl -0x3(%rbp),%esi
movsbl -0x2(%rbp),%edx
movsbl -0x1(%rbp),%ecx
lea    0xe32(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    0xe35(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    0xe36(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    0xe44(%rip),%rdi
lea    -0x10(%rbp),%rsi
mov    $0x0,%al
call   1050 <scanf@plt>
movl   $0x0,-0x1c(%rbp)
movsbl -0x9(%rbp),%eax
cmp    $0x20,%eax
jne    126b <play+0x13b>
cmpl   $0x0,-0x10(%rbp)
jne    126b <play+0x13b>
movb   $0x58,-0x9(%rbp)
movl   $0x1,-0x1c(%rbp)
jmp    13f9 <play+0x2c9>
movsbl -0x8(%rbp),%eax
cmp    $0x20,%eax
jne    1292 <play+0x162>
cmpl   $0x1,-0x10(%rbp)
jne    1292 <play+0x162>
movb   $0x58,-0x8(%rbp)
movl   $0x1,-0x1c(%rbp)
jmp    13f4 <play+0x2c4>
movsbl -0x7(%rbp),%eax
cmp    $0x20,%eax
jne    12b9 <play+0x189>
cmpl   $0x2,-0x10(%rbp)
jne    12b9 <play+0x189>
movb   $0x58,-0x7(%rbp)
movl   $0x1,-0x1c(%rbp)
jmp    13ef <play+0x2bf>
movsbl -0x6(%rbp),%eax
cmp    $0x20,%eax
jne    12e0 <play+0x1b0>
cmpl   $0xa,-0x10(%rbp)
jne    12e0 <play+0x1b0>
movb   $0x58,-0x6(%rbp)
movl   $0x1,-0x1c(%rbp)
jmp    13ea <play+0x2ba>
movsbl -0x5(%rbp),%eax
cmp    $0x20,%eax
jne    1307 <play+0x1d7>
cmpl   $0xb,-0x10(%rbp)
jne    1307 <play+0x1d7>
movb   $0x58,-0x5(%rbp)
movl   $0x1,-0x1c(%rbp)
jmp    13e5 <play+0x2b5>
movsbl -0x4(%rbp),%eax
cmp    $0x20,%eax
jne    132e <play+0x1fe>
cmpl   $0xc,-0x10(%rbp)
jne    132e <play+0x1fe>
movb   $0x58,-0x4(%rbp)
movl   $0x1,-0x1c(%rbp)
jmp    13e0 <play+0x2b0>
movsbl -0x3(%rbp),%eax
cmp    $0x20,%eax
jne    1355 <play+0x225>
cmpl   $0x14,-0x10(%rbp)
jne    1355 <play+0x225>
movb   $0x58,-0x3(%rbp)
movl   $0x1,-0x1c(%rbp)
jmp    13db <play+0x2ab>
movsbl -0x2(%rbp),%eax
cmp    $0x20,%eax
jne    137c <play+0x24c>
cmpl   $0x15,-0x10(%rbp)
jne    137c <play+0x24c>
movb   $0x58,-0x2(%rbp)
movl   $0x1,-0x1c(%rbp)
jmp    13d6 <play+0x2a6>
movsbl -0x1(%rbp),%eax
cmp    $0x20,%eax
jne    13a3 <play+0x273>
cmpl   $0x16,-0x10(%rbp)
jne    13a3 <play+0x273>
movb   $0x58,-0x1(%rbp)
movl   $0x1,-0x1c(%rbp)
jmp    13d1 <play+0x2a1>
lea    0xccf(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    0xca2(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    0xcb0(%rip),%rdi
lea    -0x10(%rbp),%rsi
mov    $0x0,%al
call   1050 <scanf@plt>
jmp    13d6 <play+0x2a6>
jmp    13db <play+0x2ab>
jmp    13e0 <play+0x2b0>
jmp    13e5 <play+0x2b5>
jmp    13ea <play+0x2ba>
jmp    13ef <play+0x2bf>
jmp    13f4 <play+0x2c4>
jmp    13f9 <play+0x2c9>
lea    0xc8d(%rip),%rdi
mov    $0x0,%al
call   1030 <system@plt>
lea    0xca8(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    0xbe4(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
movsbl -0x9(%rbp),%esi
movsbl -0x8(%rbp),%edx
movsbl -0x7(%rbp),%ecx
lea    0xbd3(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    0xbd5(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    0xbd6(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
movsbl -0x6(%rbp),%esi
movsbl -0x5(%rbp),%edx
movsbl -0x4(%rbp),%ecx
lea    0xb9d(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    0xb9f(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    0xba9(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
movsbl -0x3(%rbp),%esi
movsbl -0x2(%rbp),%edx
movsbl -0x1(%rbp),%ecx
lea    0xb98(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
cmpl   $0x1,-0x1c(%rbp)
jne    1244 <play+0x114>
lea    0xbd7(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    0xb92(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    0xba0(%rip),%rdi
lea    -0x14(%rbp),%rsi
mov    $0x0,%al
call   1050 <scanf@plt>
movl   $0x0,-0x1c(%rbp)
movsbl -0x9(%rbp),%eax
cmp    $0x20,%eax
jne    150f <play+0x3df>
cmpl   $0x0,-0x14(%rbp)
jne    150f <play+0x3df>
movb   $0x4f,-0x9(%rbp)
movl   $0x1,-0x1c(%rbp)
jmp    169d <play+0x56d>
movsbl -0x8(%rbp),%eax
cmp    $0x20,%eax
jne    1536 <play+0x406>
cmpl   $0x1,-0x14(%rbp)
jne    1536 <play+0x406>
movb   $0x4f,-0x8(%rbp)
movl   $0x1,-0x1c(%rbp)
jmp    1698 <play+0x568>
movsbl -0x7(%rbp),%eax
cmp    $0x20,%eax
jne    155d <play+0x42d>
cmpl   $0x2,-0x14(%rbp)
jne    155d <play+0x42d>
movb   $0x4f,-0x7(%rbp)
movl   $0x1,-0x1c(%rbp)
jmp    1693 <play+0x563>
movsbl -0x6(%rbp),%eax
cmp    $0x20,%eax
jne    1584 <play+0x454>
cmpl   $0xa,-0x14(%rbp)
jne    1584 <play+0x454>
movb   $0x4f,-0x6(%rbp)
movl   $0x1,-0x1c(%rbp)
jmp    168e <play+0x55e>
movsbl -0x5(%rbp),%eax
cmp    $0x20,%eax
jne    15ab <play+0x47b>
cmpl   $0xb,-0x14(%rbp)
jne    15ab <play+0x47b>
movb   $0x4f,-0x5(%rbp)
movl   $0x1,-0x1c(%rbp)
jmp    1689 <play+0x559>
movsbl -0x4(%rbp),%eax
cmp    $0x20,%eax
jne    15d2 <play+0x4a2>
cmpl   $0xc,-0x14(%rbp)
jne    15d2 <play+0x4a2>
movb   $0x4f,-0x4(%rbp)
movl   $0x1,-0x1c(%rbp)
jmp    1684 <play+0x554>
movsbl -0x3(%rbp),%eax
cmp    $0x20,%eax
jne    15f9 <play+0x4c9>
cmpl   $0x14,-0x14(%rbp)
jne    15f9 <play+0x4c9>
movb   $0x4f,-0x3(%rbp)
movl   $0x1,-0x1c(%rbp)
jmp    167f <play+0x54f>
movsbl -0x2(%rbp),%eax
cmp    $0x20,%eax
jne    1620 <play+0x4f0>
cmpl   $0x15,-0x14(%rbp)
jne    1620 <play+0x4f0>
movb   $0x4f,-0x2(%rbp)
movl   $0x1,-0x1c(%rbp)
jmp    167a <play+0x54a>
movsbl -0x1(%rbp),%eax
cmp    $0x20,%eax
jne    1647 <play+0x517>
cmpl   $0x16,-0x14(%rbp)
jne    1647 <play+0x517>
movb   $0x4f,-0x1(%rbp)
movl   $0x1,-0x1c(%rbp)
jmp    1675 <play+0x545>
lea    0xa2b(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    0x9fe(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    0xa0c(%rip),%rdi
lea    -0x14(%rbp),%rsi
mov    $0x0,%al
call   1050 <scanf@plt>
jmp    167a <play+0x54a>
jmp    167f <play+0x54f>
jmp    1684 <play+0x554>
jmp    1689 <play+0x559>
jmp    168e <play+0x55e>
jmp    1693 <play+0x563>
jmp    1698 <play+0x568>
jmp    169d <play+0x56d>
lea    0x9e9(%rip),%rdi
mov    $0x0,%al
call   1030 <system@plt>
lea    0xa04(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    0x940(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
movsbl -0x9(%rbp),%esi
movsbl -0x8(%rbp),%edx
movsbl -0x7(%rbp),%ecx
lea    0x92f(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    0x931(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    0x932(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
movsbl -0x6(%rbp),%esi
movsbl -0x5(%rbp),%edx
movsbl -0x4(%rbp),%ecx
lea    0x8f9(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    0x8fb(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    0x905(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
movsbl -0x3(%rbp),%esi
movsbl -0x2(%rbp),%edx
movsbl -0x1(%rbp),%ecx
lea    0x8f4(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
cmpl   $0x1,-0x1c(%rbp)
jne    14e8 <play+0x3b8>
lea    0x92f(%rip),%rdi
mov    $0x0,%al
call   1030 <system@plt>
movsbl -0x9(%rbp),%eax
cmp    $0x58,%eax
jne    178c <play+0x65c>
movsbl -0x8(%rbp),%eax
cmp    $0x58,%eax
jne    178c <play+0x65c>
movsbl -0x7(%rbp),%eax
cmp    $0x58,%eax
je     189d <play+0x76d>
movsbl -0x6(%rbp),%eax
cmp    $0x58,%eax
jne    17b3 <play+0x683>
movsbl -0x5(%rbp),%eax
cmp    $0x58,%eax
jne    17b3 <play+0x683>
movsbl -0x4(%rbp),%eax
cmp    $0x58,%eax
je     189d <play+0x76d>
movsbl -0x3(%rbp),%eax
cmp    $0x58,%eax
jne    17da <play+0x6aa>
movsbl -0x2(%rbp),%eax
cmp    $0x58,%eax
jne    17da <play+0x6aa>
movsbl -0x1(%rbp),%eax
cmp    $0x58,%eax
je     189d <play+0x76d>
movsbl -0x9(%rbp),%eax
cmp    $0x58,%eax
jne    1801 <play+0x6d1>
movsbl -0x6(%rbp),%eax
cmp    $0x58,%eax
jne    1801 <play+0x6d1>
movsbl -0x3(%rbp),%eax
cmp    $0x58,%eax
je     189d <play+0x76d>
movsbl -0x8(%rbp),%eax
cmp    $0x58,%eax
jne    1828 <play+0x6f8>
movsbl -0x5(%rbp),%eax
cmp    $0x58,%eax
jne    1828 <play+0x6f8>
movsbl -0x2(%rbp),%eax
cmp    $0x58,%eax
je     189d <play+0x76d>
movsbl -0x7(%rbp),%eax
cmp    $0x58,%eax
jne    184f <play+0x71f>
movsbl -0x4(%rbp),%eax
cmp    $0x58,%eax
jne    184f <play+0x71f>
movsbl -0x1(%rbp),%eax
cmp    $0x58,%eax
je     189d <play+0x76d>
movsbl -0x9(%rbp),%eax
cmp    $0x58,%eax
jne    1876 <play+0x746>
movsbl -0x5(%rbp),%eax
cmp    $0x58,%eax
jne    1876 <play+0x746>
movsbl -0x1(%rbp),%eax
cmp    $0x58,%eax
je     189d <play+0x76d>
movsbl -0x7(%rbp),%eax
cmp    $0x58,%eax
jne    1959 <play+0x829>
movsbl -0x5(%rbp),%eax
cmp    $0x58,%eax
jne    1959 <play+0x829>
movsbl -0x3(%rbp),%eax
cmp    $0x58,%eax
jne    1959 <play+0x829>
lea    0x7fc(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
movl   $0x1,-0x18(%rbp)
lea    0x7fc(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    0x739(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
movsbl -0x9(%rbp),%esi
movsbl -0x8(%rbp),%edx
movsbl -0x7(%rbp),%ecx
lea    0x728(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    0x72a(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    0x72b(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
movsbl -0x6(%rbp),%esi
movsbl -0x5(%rbp),%edx
movsbl -0x4(%rbp),%ecx
lea    0x6f2(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    0x6f4(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    0x6fe(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
movsbl -0x3(%rbp),%esi
movsbl -0x2(%rbp),%edx
movsbl -0x1(%rbp),%ecx
lea    0x6ed(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
jmp    1c83 <play+0xb53>
movsbl -0x9(%rbp),%eax
cmp    $0x4f,%eax
jne    1980 <play+0x850>
movsbl -0x8(%rbp),%eax
cmp    $0x4f,%eax
jne    1980 <play+0x850>
movsbl -0x7(%rbp),%eax
cmp    $0x4f,%eax
je     1a91 <play+0x961>
movsbl -0x6(%rbp),%eax
cmp    $0x4f,%eax
jne    19a7 <play+0x877>
movsbl -0x5(%rbp),%eax
cmp    $0x4f,%eax
jne    19a7 <play+0x877>
movsbl -0x4(%rbp),%eax
cmp    $0x4f,%eax
je     1a91 <play+0x961>
movsbl -0x3(%rbp),%eax
cmp    $0x4f,%eax
jne    19ce <play+0x89e>
movsbl -0x2(%rbp),%eax
cmp    $0x4f,%eax
jne    19ce <play+0x89e>
movsbl -0x1(%rbp),%eax
cmp    $0x4f,%eax
je     1a91 <play+0x961>
movsbl -0x9(%rbp),%eax
cmp    $0x4f,%eax
jne    19f5 <play+0x8c5>
movsbl -0x6(%rbp),%eax
cmp    $0x4f,%eax
jne    19f5 <play+0x8c5>
movsbl -0x3(%rbp),%eax
cmp    $0x4f,%eax
je     1a91 <play+0x961>
movsbl -0x8(%rbp),%eax
cmp    $0x4f,%eax
jne    1a1c <play+0x8ec>
movsbl -0x5(%rbp),%eax
cmp    $0x4f,%eax
jne    1a1c <play+0x8ec>
movsbl -0x2(%rbp),%eax
cmp    $0x4f,%eax
je     1a91 <play+0x961>
movsbl -0x7(%rbp),%eax
cmp    $0x4f,%eax
jne    1a43 <play+0x913>
movsbl -0x4(%rbp),%eax
cmp    $0x4f,%eax
jne    1a43 <play+0x913>
movsbl -0x1(%rbp),%eax
cmp    $0x4f,%eax
je     1a91 <play+0x961>
movsbl -0x9(%rbp),%eax
cmp    $0x4f,%eax
jne    1a6a <play+0x93a>
movsbl -0x5(%rbp),%eax
cmp    $0x4f,%eax
jne    1a6a <play+0x93a>
movsbl -0x1(%rbp),%eax
cmp    $0x4f,%eax
je     1a91 <play+0x961>
movsbl -0x7(%rbp),%eax
cmp    $0x4f,%eax
jne    1b4d <play+0xa1d>
movsbl -0x5(%rbp),%eax
cmp    $0x4f,%eax
jne    1b4d <play+0xa1d>
movsbl -0x3(%rbp),%eax
cmp    $0x4f,%eax
jne    1b4d <play+0xa1d>
lea    0x62f(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
movl   $0x1,-0x18(%rbp)
lea    0x608(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    0x545(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
movsbl -0x9(%rbp),%esi
movsbl -0x8(%rbp),%edx
movsbl -0x7(%rbp),%ecx
lea    0x534(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    0x536(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    0x537(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
movsbl -0x6(%rbp),%esi
movsbl -0x5(%rbp),%edx
movsbl -0x4(%rbp),%ecx
lea    0x4fe(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    0x500(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    0x50a(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
movsbl -0x3(%rbp),%esi
movsbl -0x2(%rbp),%edx
movsbl -0x1(%rbp),%ecx
lea    0x4f9(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
jmp    1c7e <play+0xb4e>
movsbl -0x9(%rbp),%eax
cmp    $0x20,%eax
je     1c79 <play+0xb49>
movsbl -0x8(%rbp),%eax
cmp    $0x20,%eax
je     1c79 <play+0xb49>
movsbl -0x7(%rbp),%eax
cmp    $0x20,%eax
je     1c79 <play+0xb49>
movsbl -0x6(%rbp),%eax
cmp    $0x20,%eax
je     1c79 <play+0xb49>
movsbl -0x5(%rbp),%eax
cmp    $0x20,%eax
je     1c79 <play+0xb49>
movsbl -0x4(%rbp),%eax
cmp    $0x20,%eax
je     1c79 <play+0xb49>
movsbl -0x3(%rbp),%eax
cmp    $0x20,%eax
je     1c79 <play+0xb49>
movsbl -0x2(%rbp),%eax
cmp    $0x20,%eax
je     1c79 <play+0xb49>
movsbl -0x1(%rbp),%eax
cmp    $0x20,%eax
je     1c79 <play+0xb49>
lea    0x513(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
movl   $0x1,-0x18(%rbp)
lea    0x4d7(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    0x414(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
movsbl -0x9(%rbp),%esi
movsbl -0x8(%rbp),%edx
movsbl -0x7(%rbp),%ecx
lea    0x403(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    0x405(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    0x406(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
movsbl -0x6(%rbp),%esi
movsbl -0x5(%rbp),%edx
movsbl -0x4(%rbp),%ecx
lea    0x3cd(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    0x3cf(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
lea    0x3d9(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
movsbl -0x3(%rbp),%esi
movsbl -0x2(%rbp),%edx
movsbl -0x1(%rbp),%ecx
lea    0x3c8(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
jmp    1c7e <play+0xb4e>
jmp    1c83 <play+0xb53>
jmp    1163 <play+0x33>
add    $0x20,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<play>:
push   %rbp
push   %r15
push   %r14
push   %r13
push   %r12
push   %rbx
sub    $0x38,%rsp
movb   $0x20,0x18(%rsp)
movb   $0x20,0x14(%rsp)
movb   $0x20,0xd(%rsp)
movb   $0x20,0xf(%rsp)
movb   $0x20,0x10(%rsp)
movb   $0x20,0xe(%rsp)
movb   $0x20,0xb(%rsp)
movb   $0x20,0xc(%rsp)
movb   $0x20,0xa(%rsp)
lea    0xf55(%rip),%rdi
call   1030 <puts@plt>
lea    0xe72(%rip),%rdi
xor    %eax,%eax
call   1050 <printf@plt>
mov    0x18(%rsp),%r15b
movzbl %r15b,%esi
movzbl 0x14(%rsp),%edx
mov    0xd(%rsp),%r13b
movzbl %r13b,%ecx
lea    0xe56(%rip),%rbx
mov    %rbx,%rdi
xor    %eax,%eax
call   1050 <printf@plt>
lea    0xf23(%rip),%rbp
mov    %rbp,%rdi
call   1030 <puts@plt>
lea    0xe46(%rip),%rdi
xor    %eax,%eax
call   1050 <printf@plt>
mov    0xf(%rsp),%r12b
movzbl %r12b,%esi
movzbl 0x10(%rsp),%edx
movzbl 0xe(%rsp),%ecx
mov    %rbx,%rdi
xor    %eax,%eax
call   1050 <printf@plt>
mov    %rbp,%rdi
call   1030 <puts@plt>
lea    0xe1c(%rip),%rdi
xor    %eax,%eax
call   1050 <printf@plt>
movzbl 0xb(%rsp),%esi
movzbl 0xc(%rsp),%edx
movzbl 0xa(%rsp),%ecx
lea    0xe08(%rip),%rdi
xor    %eax,%eax
call   1050 <printf@plt>
lea    0xe76(%rip),%rdi
call   1030 <puts@plt>
lea    0xdff(%rip),%rdi
xor    %eax,%eax
call   1050 <printf@plt>
lea    0xe0d(%rip),%rdi
lea    0x28(%rsp),%rsi
xor    %eax,%eax
call   1060 <scanf@plt>
jmp    131a <play+0x1da>
nopl   0x0(%rax)
mov    $0x58,%r15b
lea    0xdf1(%rip),%rdi
xor    %eax,%eax
call   1040 <system@plt>
lea    0xe5f(%rip),%rdi
call   1030 <puts@plt>
lea    0xd7c(%rip),%rdi
xor    %eax,%eax
call   1050 <printf@plt>
movzbl %r15b,%esi
movzbl 0x14(%rsp),%edx
movzbl %r13b,%ecx
lea    0xd6a(%rip),%rbp
mov    %rbp,%rdi
xor    %eax,%eax
call   1050 <printf@plt>
lea    0xe37(%rip),%rbx
mov    %rbx,%rdi
call   1030 <puts@plt>
lea    0xd5a(%rip),%rdi
xor    %eax,%eax
call   1050 <printf@plt>
movzbl %r12b,%esi
movzbl 0x10(%rsp),%edx
movzbl 0xe(%rsp),%ecx
mov    %rbp,%rdi
xor    %eax,%eax
call   1050 <printf@plt>
mov    %rbx,%rdi
call   1030 <puts@plt>
lea    0xd35(%rip),%rdi
xor    %eax,%eax
call   1050 <printf@plt>
movzbl 0xb(%rsp),%esi
movzbl 0xc(%rsp),%edx
movzbl 0xa(%rsp),%ecx
lea    0xd21(%rip),%rdi
xor    %eax,%eax
call   1050 <printf@plt>
test   %r14b,%r14b
jne    1420 <play+0x2e0>
mov    0x28(%rsp),%eax
mov    $0x1,%r14b
cmp    $0x20,%r15b
jne    132f <play+0x1ef>
test   %eax,%eax
je     1260 <play+0x120>
cmpb   $0x20,0x14(%rsp)
jne    1350 <play+0x210>
cmp    $0x1,%eax
jne    1350 <play+0x210>
movb   $0x58,0x14(%rsp)
jmp    1263 <play+0x123>
cs nopw 0x0(%rax,%rax,1)
nop
cmp    $0x20,%r13b
jne    1363 <play+0x223>
cmp    $0x2,%eax
jne    1363 <play+0x223>
mov    $0x58,%r13b
jmp    1263 <play+0x123>
cmp    $0x20,%r12b
jne    1376 <play+0x236>
cmp    $0xa,%eax
jne    1376 <play+0x236>
mov    $0x58,%r12b
jmp    1263 <play+0x123>
cmpb   $0x20,0x10(%rsp)
jne    138c <play+0x24c>
cmp    $0xb,%eax
jne    138c <play+0x24c>
movb   $0x58,0x10(%rsp)
jmp    1263 <play+0x123>
cmpb   $0x20,0xe(%rsp)
jne    13a2 <play+0x262>
cmp    $0xc,%eax
jne    13a2 <play+0x262>
movb   $0x58,0xe(%rsp)
jmp    1263 <play+0x123>
cmpb   $0x20,0xb(%rsp)
jne    13b8 <play+0x278>
cmp    $0x14,%eax
jne    13b8 <play+0x278>
movb   $0x58,0xb(%rsp)
jmp    1263 <play+0x123>
cmpb   $0x20,0xc(%rsp)
jne    13ce <play+0x28e>
cmp    $0x15,%eax
jne    13ce <play+0x28e>
movb   $0x58,0xc(%rsp)
jmp    1263 <play+0x123>
cmpb   $0x20,0xa(%rsp)
jne    13e4 <play+0x2a4>
cmp    $0x16,%eax
jne    13e4 <play+0x2a4>
movb   $0x58,0xa(%rsp)
jmp    1263 <play+0x123>
lea    0xcd8(%rip),%rdi
call   1030 <puts@plt>
xor    %r14d,%r14d
lea    0xc42(%rip),%rdi
xor    %eax,%eax
call   1050 <printf@plt>
lea    0xc50(%rip),%rdi
lea    0x28(%rsp),%rsi
xor    %eax,%eax
call   1060 <scanf@plt>
jmp    1263 <play+0x123>
nopl   0x0(%rax)
mov    %r13b,0xd(%rsp)
mov    %r12b,0xf(%rsp)
lea    0xc84(%rip),%rdi
call   1030 <puts@plt>
lea    0xbff(%rip),%rdi
xor    %eax,%eax
call   1050 <printf@plt>
lea    0xc0d(%rip),%rdi
lea    0x24(%rsp),%rsi
xor    %eax,%eax
call   1060 <scanf@plt>
jmp    1555 <play+0x415>
nopl   0x0(%rax)
mov    $0x1,%al
mov    %eax,0x18(%rsp)
mov    $0x4f,%r15b
movzbl 0xf(%rsp),%r14d
movzbl 0xd(%rsp),%ebx
lea    0xbe0(%rip),%rdi
xor    %eax,%eax
call   1040 <system@plt>
lea    0xc4e(%rip),%rdi
call   1030 <puts@plt>
lea    0xb6b(%rip),%rdi
xor    %eax,%eax
call   1050 <printf@plt>
movzbl %r15b,%esi
movzbl 0x14(%rsp),%edx
mov    %bl,0xd(%rsp)
movzbl %bl,%ecx
lea    0xb56(%rip),%r13
mov    %r13,%rdi
mov    %esi,0x30(%rsp)
mov    %edx,0x1c(%rsp)
mov    %ecx,0x20(%rsp)
xor    %eax,%eax
call   1050 <printf@plt>
lea    0xc17(%rip),%r12
mov    %r12,%rdi
call   1030 <puts@plt>
lea    0xb3a(%rip),%rdi
xor    %eax,%eax
call   1050 <printf@plt>
mov    %r14b,0xf(%rsp)
movzbl %r14b,%esi
movzbl 0x10(%rsp),%ebx
movzbl 0xe(%rsp),%ebp
mov    %r13,%rdi
mov    %esi,0x34(%rsp)
mov    %ebx,%edx
mov    %ebp,%ecx
xor    %eax,%eax
call   1050 <printf@plt>
mov    %r12,%rdi
call   1030 <puts@plt>
lea    0xb08(%rip),%rdi
xor    %eax,%eax
call   1050 <printf@plt>
movzbl 0xb(%rsp),%r13d
movzbl 0xc(%rsp),%r12d
movzbl 0xa(%rsp),%r14d
lea    0xaf1(%rip),%rdi
mov    %r13d,%esi
mov    %r12d,%edx
mov    %r14d,%ecx
xor    %eax,%eax
call   1050 <printf@plt>
cmpb   $0x0,0x18(%rsp)
jne    1690 <play+0x550>
mov    0x24(%rsp),%eax
cmp    $0x20,%r15b
jne    1567 <play+0x427>
test   %eax,%eax
je     1460 <play+0x320>
cmpb   $0x20,0x14(%rsp)
movzbl 0xf(%rsp),%r14d
movzbl 0xd(%rsp),%ebx
jne    1590 <play+0x450>
cmp    $0x1,%eax
jne    1590 <play+0x450>
mov    $0x1,%al
mov    %eax,0x18(%rsp)
movb   $0x4f,0x14(%rsp)
jmp    1474 <play+0x334>
xchg   %ax,%ax
cmp    $0x20,%bl
jne    15a7 <play+0x467>
cmp    $0x2,%eax
jne    15a7 <play+0x467>
mov    $0x1,%al
mov    %eax,0x18(%rsp)
mov    $0x4f,%bl
jmp    1474 <play+0x334>
cmp    $0x20,%r14b
jne    15c0 <play+0x480>
cmp    $0xa,%eax
jne    15c0 <play+0x480>
mov    $0x1,%al
mov    %eax,0x18(%rsp)
mov    $0x4f,%r14b
jmp    1474 <play+0x334>
cmpb   $0x20,0x10(%rsp)
jne    15dc <play+0x49c>
cmp    $0xb,%eax
jne    15dc <play+0x49c>
mov    $0x1,%al
mov    %eax,0x18(%rsp)
movb   $0x4f,0x10(%rsp)
jmp    1474 <play+0x334>
cmpb   $0x20,0xe(%rsp)
jne    15f8 <play+0x4b8>
cmp    $0xc,%eax
jne    15f8 <play+0x4b8>
mov    $0x1,%al
mov    %eax,0x18(%rsp)
movb   $0x4f,0xe(%rsp)
jmp    1474 <play+0x334>
cmpb   $0x20,0xb(%rsp)
jne    1614 <play+0x4d4>
cmp    $0x14,%eax
jne    1614 <play+0x4d4>
mov    $0x1,%al
mov    %eax,0x18(%rsp)
movb   $0x4f,0xb(%rsp)
jmp    1474 <play+0x334>
cmpb   $0x20,0xc(%rsp)
jne    1630 <play+0x4f0>
cmp    $0x15,%eax
jne    1630 <play+0x4f0>
mov    $0x1,%al
mov    %eax,0x18(%rsp)
movb   $0x4f,0xc(%rsp)
jmp    1474 <play+0x334>
cmpb   $0x20,0xa(%rsp)
jne    164c <play+0x50c>
cmp    $0x16,%eax
jne    164c <play+0x50c>
mov    $0x1,%al
mov    %eax,0x18(%rsp)
movb   $0x4f,0xa(%rsp)
jmp    1474 <play+0x334>
lea    0xa70(%rip),%rdi
call   1030 <puts@plt>
movl   $0x0,0x18(%rsp)
lea    0x9d5(%rip),%rdi
xor    %eax,%eax
call   1050 <printf@plt>
lea    0x9e3(%rip),%rdi
lea    0x24(%rsp),%rsi
xor    %eax,%eax
call   1060 <scanf@plt>
jmp    1474 <play+0x334>
cs nopw 0x0(%rax,%rax,1)
mov    %r14d,0x2c(%rsp)
lea    0x9bf(%rip),%rdi
xor    %eax,%eax
call   1040 <system@plt>
mov    %r15b,0x18(%rsp)
cmp    $0x58,%r15b
jne    16c0 <play+0x580>
cmpb   $0x58,0x14(%rsp)
jne    16c0 <play+0x580>
cmpb   $0x58,0xd(%rsp)
je     18e5 <play+0x7a5>
cmpb   $0x58,0xf(%rsp)
lea    0x993(%rip),%rdi
jne    16e0 <play+0x5a0>
cmpb   $0x58,0x10(%rsp)
jne    16e0 <play+0x5a0>
cmpb   $0x58,0xe(%rsp)
je     18d5 <play+0x795>
cmpb   $0x58,0xb(%rsp)
jne    16f9 <play+0x5b9>
cmpb   $0x58,0xc(%rsp)
jne    16f9 <play+0x5b9>
cmpb   $0x58,0xa(%rsp)
je     18d5 <play+0x795>
cmpb   $0x58,0x18(%rsp)
jne    1712 <play+0x5d2>
cmpb   $0x58,0xf(%rsp)
jne    1712 <play+0x5d2>
cmpb   $0x58,0xb(%rsp)
je     18d5 <play+0x795>
cmpb   $0x58,0x14(%rsp)
mov    %ebp,%ecx
jne    172d <play+0x5ed>
cmpb   $0x58,0x10(%rsp)
jne    172d <play+0x5ed>
cmpb   $0x58,0xc(%rsp)
je     18c1 <play+0x781>
cmpb   $0x58,0xd(%rsp)
jne    1746 <play+0x606>
cmpb   $0x58,0xe(%rsp)
jne    1746 <play+0x606>
cmpb   $0x58,0xa(%rsp)
je     18c1 <play+0x781>
cmpb   $0x58,0x18(%rsp)
jne    175f <play+0x61f>
cmpb   $0x58,0x10(%rsp)
jne    175f <play+0x61f>
cmpb   $0x58,0xa(%rsp)
je     18c1 <play+0x781>
cmpb   $0x58,0xd(%rsp)
jne    1778 <play+0x638>
cmpb   $0x58,0x10(%rsp)
jne    1778 <play+0x638>
cmpb   $0x58,0xb(%rsp)
je     18c1 <play+0x781>
cmpb   $0x4f,0x18(%rsp)
jne    1791 <play+0x651>
cmpb   $0x4f,0x14(%rsp)
jne    1791 <play+0x651>
cmpb   $0x4f,0xd(%rsp)
je     18b0 <play+0x770>
cmpb   $0x4f,0xf(%rsp)
jne    17aa <play+0x66a>
cmpb   $0x4f,0x10(%rsp)
jne    17aa <play+0x66a>
cmpb   $0x4f,0xe(%rsp)
je     18b0 <play+0x770>
cmpb   $0x4f,0xb(%rsp)
jne    17c3 <play+0x683>
cmpb   $0x4f,0xc(%rsp)
jne    17c3 <play+0x683>
cmpb   $0x4f,0xa(%rsp)
je     18b0 <play+0x770>
cmpb   $0x4f,0x18(%rsp)
jne    17dc <play+0x69c>
cmpb   $0x4f,0xf(%rsp)
jne    17dc <play+0x69c>
cmpb   $0x4f,0xb(%rsp)
je     18b0 <play+0x770>
cmpb   $0x4f,0x14(%rsp)
jne    17f5 <play+0x6b5>
cmpb   $0x4f,0x10(%rsp)
jne    17f5 <play+0x6b5>
cmpb   $0x4f,0xc(%rsp)
je     18b0 <play+0x770>
cmpb   $0x4f,0xd(%rsp)
jne    180e <play+0x6ce>
cmpb   $0x4f,0xe(%rsp)
jne    180e <play+0x6ce>
cmpb   $0x4f,0xa(%rsp)
je     18b0 <play+0x770>
cmpb   $0x4f,0x18(%rsp)
jne    1827 <play+0x6e7>
cmpb   $0x4f,0x10(%rsp)
jne    1827 <play+0x6e7>
cmpb   $0x4f,0xa(%rsp)
je     18b0 <play+0x770>
cmpb   $0x4f,0xd(%rsp)
jne    183c <play+0x6fc>
cmpb   $0x4f,0x10(%rsp)
jne    183c <play+0x6fc>
cmpb   $0x4f,0xb(%rsp)
je     18b0 <play+0x770>
cmpb   $0x20,0x18(%rsp)
je     117b <play+0x3b>
cmpb   $0x20,0x14(%rsp)
je     117b <play+0x3b>
cmpb   $0x20,0xd(%rsp)
je     117b <play+0x3b>
cmpb   $0x20,0xf(%rsp)
je     117b <play+0x3b>
cmpb   $0x20,0x10(%rsp)
je     117b <play+0x3b>
cmpb   $0x20,0xe(%rsp)
je     117b <play+0x3b>
cmpb   $0x20,0xb(%rsp)
je     117b <play+0x3b>
cmpb   $0x20,0xc(%rsp)
je     117b <play+0x3b>
cmpb   $0x20,0xa(%rsp)
je     117b <play+0x3b>
mov    %ecx,0x14(%rsp)
mov    %ebx,0x10(%rsp)
lea    0x7db(%rip),%rdi
jmp    18c9 <play+0x789>
mov    %ecx,0x14(%rsp)
mov    %ebx,0x10(%rsp)
lea    0x7b5(%rip),%rdi
jmp    18c9 <play+0x789>
mov    %ecx,0x14(%rsp)
mov    %ebx,0x10(%rsp)
mov    0x1c(%rsp),%r15d
mov    0x20(%rsp),%r14d
jmp    18fe <play+0x7be>
mov    %ebx,0x10(%rsp)
mov    0x1c(%rsp),%r15d
mov    0x20(%rsp),%r14d
jmp    18fa <play+0x7ba>
lea    0x773(%rip),%rdi
mov    0x1c(%rsp),%r15d
mov    0x20(%rsp),%r14d
mov    %ebx,0x10(%rsp)
mov    %ebp,0x14(%rsp)
xor    %eax,%eax
call   1050 <printf@plt>
lea    0x7ca(%rip),%rdi
call   1030 <puts@plt>
lea    0x6e8(%rip),%rdi
xor    %eax,%eax
call   1050 <printf@plt>
lea    0x6e3(%rip),%rbp
mov    %rbp,%rdi
mov    0x30(%rsp),%esi
mov    %r15d,%edx
mov    %r14d,%ecx
xor    %eax,%eax
call   1050 <printf@plt>
lea    0x7a6(%rip),%rbx
mov    %rbx,%rdi
call   1030 <puts@plt>
lea    0x6c9(%rip),%rdi
xor    %eax,%eax
call   1050 <printf@plt>
mov    %rbp,%rdi
mov    0x34(%rsp),%esi
mov    0x10(%rsp),%edx
mov    0x14(%rsp),%ecx
xor    %eax,%eax
call   1050 <printf@plt>
mov    %rbx,%rdi
call   1030 <puts@plt>
lea    0x6a6(%rip),%rdi
xor    %eax,%eax
call   1050 <printf@plt>
lea    0x6a1(%rip),%rdi
mov    %r13d,%esi
mov    %r12d,%edx
mov    0x2c(%rsp),%ecx
xor    %eax,%eax
call   1050 <printf@plt>
add    $0x38,%rsp
pop    %rbx
pop    %r12
pop    %r13
pop    %r14
pop    %r15
pop    %rbp
ret

LLVM IR (-O0):
@.str = [17 x i8] c"\0A\09\09 C0 C1 C2\0A\0A\00"
@.str.1 = [9 x i8] c"\09 L0\00"
@.str.2 = [16 x i8] c"\09 %c | %c | %c\0A\00"
@.str.3 = [15 x i8] c"\09\09-----------\0A\00"
@.str.4 = [9 x i8] c"\09 L1\00"
@.str.5 = [9 x i8] c"\09 L2\00"
@.str.6 = [17 x i8] c"\09 %c | %c | %c\0A\0A\00"
@.str.7 = [15 x i8] c"\09\09Jogador 1: \0A\00"
@.str.8 = [28 x i8] c"Digite a sua jogada [L,C]: \00"
@.str.9 = [3 x i8] c"%d\00"
@.str.10 = [20 x i8] c"\09\09Jogada Invalida!\0A\00"
@.str.11 = [4 x i8] c"cls\00"
@.str.12 = [15 x i8] c"\09\09Jogador 2: \0A\00"
@.str.13 = [21 x i8] c"\0AO jogador 1 venceu!\00"
@.str.14 = [18 x i8] c"\0A\0A\09\09 C0 C1 C2\0A\0A\00"
@.str.15 = [21 x i8] c"\0AO jogador 2 venceu!\00"
@.str.16 = [30 x i8] c"\0AO jogo empatou! Deu velha!!!\00"
define void @play() {
%1 = alloca [3 x [3 x i8]]
%2 = alloca i32
%3 = alloca i32
%4 = alloca i32
%5 = alloca i32
store i32 0, i32* %4
%6 = getelementptr inbounds [3 x [3 x i8]], [3 x [3 x i8]]* %1, i64 0, i64 0
%7 = getelementptr inbounds [3 x i8], [3 x i8]* %6, i64 0, i64 0
store i8 32, i8* %7
%8 = getelementptr inbounds [3 x [3 x i8]], [3 x [3 x i8]]* %1, i64 0, i64 0
%9 = getelementptr inbounds [3 x i8], [3 x i8]* %8, i64 0, i64 1
store i8 32, i8* %9
%10 = getelementptr inbounds [3 x [3 x i8]], [3 x [3 x i8]]* %1, i64 0, i64 0
%11 = getelementptr inbounds [3 x i8], [3 x i8]* %10, i64 0, i64 2
store i8 32, i8* %11
%12 = getelementptr inbounds [3 x [3 x i8]], [3 x [3 x i8]]* %1, i64 0, i64 1
%13 = getelementptr inbounds [3 x i8], [3 x i8]* %12, i64 0, i64 0
store i8 32, i8* %13
%14 = getelementptr inbounds [3 x [3 x i8]], [3 x [3 x i8]]* %1, i64 0, i64 1
%15 = getelementptr inbounds [3 x i8], [3 x i8]* %14, i64 0, i64 1
store i8 32, i8* %15
%16 = getelementptr inbounds [3 x [3 x i8]], [3 x [3 x i8]]* %1, i64 0, i64 1
%17 = getelementptr inbounds [3 x i8], [3 x i8]* %16, i64 0, i64 2
store i8 32, i8* %17
%18 = getelementptr inbounds [3 x [3 x i8]], [3 x [3 x i8]]* %1, i64 0, i64 2
%19 = getelementptr inbounds [3 x i8], [3 x i8]* %18, i64 0, i64 0
store i8 32, i8* %19
%20 = getelementptr inbounds [3 x [3 x i8]], [3 x [3 x i8]]* %1, i64 0, i64 2
%21 = getelementptr inbounds [3 x i8], [3 x i8]* %20, i64 0, i64 1
store i8 32, i8* %21
%22 = getelementptr inbounds [3 x [3 x i8]], [3 x [3 x i8]]* %1, i64 0, i64 2
%23 = getelementptr inbounds [3 x i8], [3 x i8]* %22, i64 0, i64 2
store i8 32, i8* %23
br label %24
24: ; preds = %906, %0
%25 = load i32, i32* %4
%26 = icmp ne i32 %25, 1
br i1 %26, label %27, label %907
27: ; preds = %24
%28 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([17 x i8], [17 x i8]* @.str, i64 0, i64 0))
%29 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.1, i64 0, i64 0))
%30 = getelementptr inbounds [3 x [3 x i8]], [3 x [3 x i8]]* %1, i64 0, i64 0
%31 = getelementptr inbounds [3 x i8], [3 x i8]* %30, i64 0, i64 0
%32 = load i8, i8* %31
%33 = sext i8 %32 to i32
%34 = getelementptr inbounds [3 x [3 x i8]], [3 x [3 x i8]]* %1, i64 0, i64 0
%35 = getelementptr inbounds [3 x i8], [3 x i8]* %34, i64 0, i64 1
%36 = load i8, i8* %35
%37 = sext i8 %36 to i32
%38 = getelementptr inbounds [3 x [3 x i8]], [3 x [3 x i8]]* %1, i64 0, i64 0
%39 = getelementptr inbounds [3 x i8], [3 x i8]* %38, i64 0, i64 2
%40 = load i8, i8* %39
%41 = sext i8 %40 to i32
%42 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.2, i64 0, i64 0), i32 %33, i32 %37, i32 %41)
%43 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str.3, i64 0, i64 0))
%44 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.4, i64 0, i64 0))
%45 = getelementptr inbounds [3 x [3 x i8]], [3 x [3 x i8]]* %1, i64 0, i64 1
%46 = getelementptr inbounds [3 x i8], [3 x i8]* %45, i64 0, i64 0
%47 = load i8, i8* %46
%48 = sext i8 %47 to i32
%49 = getelementptr inbounds [3 x [3 x i8]], [3 x [3 x i8]]* %1, i64 0, i64 1
%50 = getelementptr inbounds [3 x i8], [3 x i8]* %49, i64 0, i64 1
%51 = load i8, i8* %50
%52 = sext i8 %51 to i32
%53 = getelementptr inbounds [3 x [3 x i8]], [3 x [3 x i8]]* %1, i64 0, i64 1
%54 = getelementptr inbounds [3 x i8], [3 x i8]* %53, i64 0, i64 2
%55 = load i8, i8* %54
%56 = sext i8 %55 to i32
%57 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.2, i64 0, i64 0), i32 %48, i32 %52, i32 %56)
%58 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str.3, i64 0, i64 0))
%59 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.5, i64 0, i64 0))
%60 = getelementptr inbounds [3 x [3 x i8]], [3 x [3 x i8]]* %1, i64 0, i64 2
%61 = getelementptr inbounds [3 x i8], [3 x i8]* %60, i64 0, i64 0
%62 = load i8, i8* %61
%63 = sext i8 %62 to i32
%64 = getelementptr inbounds [3 x [3 x i8]], [3 x [3 x i8]]* %1, i64 0, i64 2
%65 = getelementptr inbounds [3 x i8], [3 x i8]* %64, i64 0, i64 1
%66 = load i8, i8* %65
%67 = sext i8 %66 to i32
%68 = getelementptr inbounds [3 x [3 x i8]], [3 x [3 x i8]]* %1, i64 0, i64 2
%69 = getelementptr inbounds [3 x i8], [3 x i8]* %68, i64 0, i64 2
%70 = load i8, i8* %69
%71 = sext i8 %70 to i32
%72 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([17 x i8], [17 x i8]* @.str.6, i64 0, i64 0), i32 %63, i32 %67, i32 %71)
%73 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str.7, i64 0, i64 0))
%74 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([28 x i8], [28 x i8]* @.str.8, i64 0, i64 0))
%75 = call i32 (i8*, ...) @scanf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.9, i64 0, i64 0), i32* %2)
store i32 0, i32* %5
br label %76
76: ; preds = %243, %27
%77 = getelementptr inbounds [3 x [3 x i8]], [3 x [3 x i8]]* %1, i64 0, i64 0
%78 = getelementptr inbounds [3 x i8], [3 x i8]* %77, i64 0, i64 0
%79 = load i8, i8* %78
%80 = sext i8 %79 to i32
%81 = icmp eq i32 %80, 32
br i1 %81, label %82, label %88
82: ; preds = %76
%83 = load i32, i32* %2
%84 = icmp eq i32 %83, 0
br i1 %84, label %85, label %88
85: ; preds = %82
%86 = getelementptr inbounds [3 x [3 x i8]], [3 x [3 x i8]]* %1, i64 0, i64 0
%87 = getelementptr inbounds [3 x i8], [3 x i8]* %86, i64 0, i64 0
store i8 88, i8* %87
store i32 1, i32* %5
br label %196
88: ; preds = %82, %76
%89 = getelementptr inbounds [3 x [3 x i8]], [3 x [3 x i8]]* %1, i64 0, i64 0
%90 = getelementptr inbounds [3 x i8], [3 x i8]* %89, i64 0, i64 1
%91 = load i8, i8* %90
%92 = sext i8 %91 to i32
%93 = icmp eq i32 %92, 32
br i1 %93, label %94, label %100
94: ; preds = %88
%95 = load i32, i32* %2
%96 = icmp eq i32 %95, 1
br i1 %96, label %97, label %100
97: ; preds = %94
%98 = getelementptr inbounds [3 x [3 x i8]], [3 x [3 x i8]]* %1, i64 0, i64 0
%99 = getelementptr inbounds [3 x i8], [3 x i8]* %98, i64 0, i64 1
store i8 88, i8* %99
store i32 1, i32* %5
br label %195
100: ; preds = %94, %88
%101 = getelementptr inbounds [3 x [3 x i8]], [3 x [3 x i8]]* %1, i64 0, i64 0
%102 = getelementptr inbounds [3 x i8], [3 x i8]* %101, i64 0, i64 2
%103 = load i8, i8* %102
%104 = sext i8 %103 to i32
%105 = icmp eq i32 %104, 32
br i1 %105, label %106, label %112
106: ; preds = %100
%107 = load i32, i32* %2
%108 = icmp eq i32 %107, 2
br i1 %108, label %109, label %112
109: ; preds = %106
%110 = getelementptr inbounds [3 x [3 x i8]], [3 x [3 x i8]]* %1, i64 0, i64 0
%111 = getelementptr inbounds [3 x i8], [3 x i8]* %110, i64 0, i64 2
store i8 88, i8* %111
store i32 1, i32* %5
br label %194
112: ; preds = %106, %100
%113 = getelementptr inbounds [3 x [3 x i8]], [3 x [3 x i8]]* %1, i64 0, i64 1
%114 = getelementptr inbounds [3 x i8], [3 x i8]* %113, i64 0, i64 0
%115 = load i8, i8* %114
%116 = sext i8 %115 to i32
%117 = icmp eq i32 %116, 32
br i1 %117, label %118, label %124
118: ; preds = %112
%119 = load i32, i32* %2
%120 = icmp eq i32 %119, 10
br i1 %120, label %121, label %124
121: ; preds = %118
%122 = getelementptr inbounds [3 x [3 x i8]], [3 x [3 x i8]]* %1, i64 0, i64 1
%123 = getelementptr inbounds [3 x i8], [3 x i8]* %122, i64 0, i64 0
store i8 88, i8* %123
store i32 1, i32* %5
br label %193
124: ; preds = %118, %112
%125 = getelementptr inbounds [3 x [3 x i8]], [3 x [3 x i8]]* %1, i64 0, i64 1
%126 = getelementptr inbounds [3 x i8], [3 x i8]* %125, i64 0, i64 1
%127 = load i8, i8* %126
%128 = sext i8 %127 to i32
%129 = icmp eq i32 %128, 32
br i1 %129, label %130, label %136
130: ; preds = %124
%131 = load i32, i32* %2
%132 = icmp eq i32 %131, 11
br i1 %132, label %133, label %136
133: ; preds = %130
%134 = getelementptr inbounds [3 x [3 x i8]], [3 x [3 x i8]]* %1, i64 0, i64 1
%135 = getelementptr inbounds [3 x i8], [3 x i8]* %134, i64 0, i64 1
store i8 88, i8* %135
store i32 1, i32* %5
br label %192
136: ; preds = %130, %124
%137 = getelementptr inbounds [3 x [3 x i8]], [3 x [3 x i8]]* %1, i64 0, i64 1
%138 = getelementptr inbounds [3 x i8], [3 x i8]* %137, i64 0, i64 2
%139 = load i8, i8* %138
%140 = sext i8 %139 to i32
%141 = icmp eq i32 %140, 32
br i1 %141, label %142, label %148
142: ; preds = %136
%143 = load i32, i32* %2
%144 = icmp eq i32 %143, 12
br i1 %144, label %145, label %148
145: ; preds = %142
%146 = getelementptr inbounds [3 x [3 x i8]], [3 x [3 x i8]]* %1, i64 0, i64 1
%147 = getelementptr inbounds [3 x i8], [3 x i8]* %146, i64 0, i64 2
store i8 88, i8* %147
store i32 1, i32* %5
br label %191
148: ; preds = %142, %136
%149 = getelementptr inbounds [3 x [3 x i8]], [3 x [3 x i8]]* %1, i64 0, i64 2
%150 = getelementptr inbounds [3 x i8], [3 x i8]* %149, i64 0, i64 0
%151 = load i8, i8* %150
%152 = sext i8 %151 to i32
%153 = icmp eq i32 %152, 32
br i1 %153, label %154, label %160
154: ; preds = %148
%155 = load i32, i32* %2
%156 = icmp eq i32 %155, 20
br i1 %156, label %157, label %160
157: ; preds = %154
%158 = getelementptr inbounds [3 x [3 x i8]], [3 x [3 x i8]]* %1, i64 0, i64 2
%159 = getelementptr inbounds [3 x i8], [3 x i8]* %158, i64 0, i64 0
store i8 88, i8* %159
store i32 1, i32* %5
br label %190
160: ; preds = %154, %148
%161 = getelementptr inbounds [3 x [3 x i8]], [3 x [3 x i8]]* %1, i64 0, i64 2
%162 = getelementptr inbounds [3 x i8], [3 x i8]* %161, i64 0, i64 1
%163 = load i8, i8* %162
%164 = sext i8 %163 to i32
%165 = icmp eq i32 %164, 32
br i1 %165, label %166, label %172
166: ; preds = %160
%167 = load i32, i32* %2
%168 = icmp eq i32 %167, 21
br i1 %168, label %169, label %172
169: ; preds = %166
%170 = getelementptr inbounds [3 x [3 x i8]], [3 x [3 x i8]]* %1, i64 0, i64 2
%171 = getelementptr inbounds [3 x i8], [3 x i8]* %170, i64 0, i64 1
store i8 88, i8* %171
store i32 1, i32* %5
br label %189
172: ; preds = %166, %160
%173 = getelementptr inbounds [3 x [3 x i8]], [3 x [3 x i8]]* %1, i64 0, i64 2
%174 = getelementptr inbounds [3 x i8], [3 x i8]* %173, i64 0, i64 2
%175 = load i8, i8* %174
%176 = sext i8 %175 to i32
%177 = icmp eq i32 %176, 32
br i1 %177, label %178, label %184
178: ; preds = %172
%179 = load i32, i32* %2
%180 = icmp eq i32 %179, 22
br i1 %180, label %181, label %184
181: ; preds = %178
%182 = getelementptr inbounds [3 x [3 x i8]], [3 x [3 x i8]]* %1, i64 0, i64 2
%183 = getelementptr inbounds [3 x i8], [3 x i8]* %182, i64 0, i64 2
store i8 88, i8* %183
store i32 1, i32* %5
br label %188
184: ; preds = %178, %172
%185 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([20 x i8], [20 x i8]* @.str.10, i64 0, i64 0))
%186 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([28 x i8], [28 x i8]* @.str.8, i64 0, i64 0))
%187 = call i32 (i8*, ...) @scanf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.9, i64 0, i64 0), i32* %2)
br label %188
188: ; preds = %184, %181
br label %189
189: ; preds = %188, %169
br label %190
190: ; preds = %189, %157
br label %191
191: ; preds = %190, %145
br label %192
192: ; preds = %191, %133
br label %193
193: ; preds = %192, %121
br label %194
194: ; preds = %193, %109
br label %195
195: ; preds = %194, %97
br label %196
196: ; preds = %195, %85
%197 = call i32 (i8*, ...) bitcast (i32 (...)* @system to i32 (i8*, ...)*)(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.11, i64 0, i64 0))
%198 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([17 x i8], [17 x i8]* @.str, i64 0, i64 0))
%199 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.1, i64 0, i64 0))
%200 = getelementptr inbounds [3 x [3 x i8]], [3 x [3 x i8]]* %1, i64 0, i64 0
%201 = getelementptr inbounds [3 x i8], [3 x i8]* %200, i64 0, i64 0
%202 = load i8, i8* %201
%203 = sext i8 %202 to i32
%204 = getelementptr inbounds [3 x [3 x i8]], [3 x [3 x i8]]* %1, i64 0, i64 0
%205 = getelementptr inbounds [3 x i8], [3 x i8]* %204, i64 0, i64 1
%206 = load i8, i8* %205
%207 = sext i8 %206 to i32
%208 = getelementptr inbounds [3 x [3 x i8]], [3 x [3 x i8]]* %1, i64 0, i64 0
%209 = getelementptr inbounds [3 x i8], [3 x i8]* %208, i64 0, i64 2
%210 = load i8, i8* %209
%211 = sext i8 %210 to i32
%212 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.2, i64 0, i64 0), i32 %203, i32 %207, i32 %211)
%213 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str.3, i64 0, i64 0))
%214 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.4, i64 0, i64 0))
%215 = getelementptr inbounds [3 x [3 x i8]], [3 x [3 x i8]]* %1, i64 0, i64 1
%216 = getelementptr inbounds [3 x i8], [3 x i8]* %215, i64 0, i64 0
%217 = load i8, i8* %216
%218 = sext i8 %217 to i32
%219 = getelementptr inbounds [3 x [3 x i8]], [3 x [3 x i8]]* %1, i64 0, i64 1
%220 = getelementptr inbounds [3 x i8], [3 x i8]* %219, i64 0, i64 1
%221 = load i8, i8* %220
%222 = sext i8 %221 to i32
%223 = getelementptr inbounds [3 x [3 x i8]], [3 x [3 x i8]]* %1, i64 0, i64 1
%224 = getelementptr inbounds [3 x i8], [3 x i8]* %223, i64 0, i64 2
%225 = load i8, i8* %224
%226 = sext i8 %225 to i32
%227 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.2, i64 0, i64 0), i32 %218, i32 %222, i32 %226)
%228 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str.3, i64 0, i64 0))
%229 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.5, i64 0, i64 0))
%230 = getelementptr inbounds [3 x [3 x i8]], [3 x [3 x i8]]* %1, i64 0, i64 2
%231 = getelementptr inbounds [3 x i8], [3 x i8]* %230, i64 0, i64 0
%232 = load i8, i8* %231
%233 = sext i8 %232 to i32
%234 = getelementptr inbounds [3 x [3 x i8]], [3 x [3 x i8]]* %1, i64 0, i64 2
%235 = getelementptr inbounds [3 x i8], [3 x i8]* %234, i64 0, i64 1
%236 = load i8, i8* %235
%237 = sext i8 %236 to i32
%238 = getelementptr inbounds [3 x [3 x i8]], [3 x [3 x i8]]* %1, i64 0, i64 2
%239 = getelementptr inbounds [3 x i8], [3 x i8]* %238, i64 0, i64 2
%240 = load i8, i8* %239
%241 = sext i8 %240 to i32
%242 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([17 x i8], [17 x i8]* @.str.6, i64 0, i64 0), i32 %233, i32 %237, i32 %241)
br label %243
243: ; preds = %196
%244 = load i32, i32* %5
%245 = icmp ne i32 %244, 1
br i1 %245, label %76, label %246
246: ; preds = %243
%247 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str.12, i64 0, i64 0))
%248 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([28 x i8], [28 x i8]* @.str.8, i64 0, i64 0))
%249 = call i32 (i8*, ...) @scanf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.9, i64 0, i64 0), i32* %3)
store i32 0, i32* %5
br label %250
250: ; preds = %417, %246
%251 = getelementptr inbounds [3 x [3 x i8]], [3 x [3 x i8]]* %1, i64 0, i64 0
%252 = getelementptr inbounds [3 x i8], [3 x i8]* %251, i64 0, i64 0
%253 = load i8, i8* %252
%254 = sext i8 %253 to i32
%255 = icmp eq i32 %254, 32
br i1 %255, label %256, label %262
256: ; preds = %250
%257 = load i32, i32* %3
%258 = icmp eq i32 %257, 0
br i1 %258, label %259, label %262
259: ; preds = %256
%260 = getelementptr inbounds [3 x [3 x i8]], [3 x [3 x i8]]* %1, i64 0, i64 0
%261 = getelementptr inbounds [3 x i8], [3 x i8]* %260, i64 0, i64 0
store i8 79, i8* %261
store i32 1, i32* %5
br label %370
262: ; preds = %256, %250
%263 = getelementptr inbounds [3 x [3 x i8]], [3 x [3 x i8]]* %1, i64 0, i64 0
%264 = getelementptr inbounds [3 x i8], [3 x i8]* %263, i64 0, i64 1
%265 = load i8, i8* %264
%266 = sext i8 %265 to i32
%267 = icmp eq i32 %266, 32
br i1 %267, label %268, label %274
268: ; preds = %262
%269 = load i32, i32* %3
%270 = icmp eq i32 %269, 1
br i1 %270, label %271, label %274
271: ; preds = %268
%272 = getelementptr inbounds [3 x [3 x i8]], [3 x [3 x i8]]* %1, i64 0, i64 0
%273 = getelementptr inbounds [3 x i8], [3 x i8]* %272, i64 0, i64 1
store i8 79, i8* %273
store i32 1, i32* %5
br label %369
274: ; preds = %268, %262
%275 = getelementptr inbounds [3 x [3 x i8]], [3 x [3 x i8]]* %1, i64 0, i64 0
%276 = getelementptr inbounds [3 x i8], [3 x i8]* %275, i64 0, i64 2
%277 = load i8, i8* %276
%278 = sext i8 %277 to i32
%279 = icmp eq i32 %278, 32
br i1 %279, label %280, label %286
280: ; preds = %274
%281 = load i32, i32* %3
%282 = icmp eq i32 %281, 2
br i1 %282, label %283, label %286
283: ; preds = %280
%284 = getelementptr inbounds [3 x [3 x i8]], [3 x [3 x i8]]* %1, i64 0, i64 0
%285 = getelementptr inbounds [3 x i8], [3 x i8]* %284, i64 0, i64 2
store i8 79, i8* %285
store i32 1, i32* %5
br label %368
286: ; preds = %280, %274
%287 = getelementptr inbounds [3 x [3 x i8]], [3 x [3 x i8]]* %1, i64 0, i64 1
%288 = getelementptr inbounds [3 x i8], [3 x i8]* %287, i64 0, i64 0
%289 = load i8, i8* %288
%290 = sext i8 %289 to i32
%291 = icmp eq i32 %290, 32
br i1 %291, label %292, label %298
292: ; preds = %286
%293 = load i32, i32* %3
%294 = icmp eq i32 %293, 10
br i1 %294, label %295, label %298
295: ; preds = %292
%296 = getelementptr inbounds [3 x [3 x i8]], [3 x [3 x i8]]* %1, i64 0, i64 1
%297 = getelementptr inbounds [3 x i8], [3 x i8]* %296, i64 0, i64 0
store i8 79, i8* %297
store i32 1, i32* %5
br label %367
298: ; preds = %292, %286
%299 = getelementptr inbounds [3 x [3 x i8]], [3 x [3 x i8]]* %1, i64 0, i64 1
%300 = getelementptr inbounds [3 x i8], [3 x i8]* %299, i64 0, i64 1
%301 = load i8, i8* %300
%302 = sext i8 %301 to i32
%303 = icmp eq i32 %302, 32
br i1 %303, label %304, label %310
304: ; preds = %298
%305 = load i32, i32* %3
%306 = icmp eq i32 %305, 11
br i1 %306, label %307, label %310
307: ; preds = %304
%308 = getelementptr inbounds [3 x [3 x i8]], [3 x [3 x i8]]* %1, i64 0, i64 1
%309 = getelementptr inbounds [3 x i8], [3 x i8]* %308, i64 0, i64 1
store i8 79, i8* %309
store i32 1, i32* %5
br label %366
310: ; preds = %304, %298
%311 = getelementptr inbounds [3 x [3 x i8]], [3 x [3 x i8]]* %1, i64 0, i64 1
%312 = getelementptr inbounds [3 x i8], [3 x i8]* %311, i64 0, i64 2
%313 = load i8, i8* %312
%314 = sext i8 %313 to i32
%315 = icmp eq i32 %314, 32
br i1 %315, label %316, label %322
316: ; preds = %310
%317 = load i32, i32* %3
%318 = icmp eq i32 %317, 12
br i1 %318, label %319, label %322
319: ; preds = %316
%320 = getelementptr inbounds [3 x [3 x i8]], [3 x [3 x i8]]* %1, i64 0, i64 1
%321 = getelementptr inbounds [3 x i8], [3 x i8]* %320, i64 0, i64 2
store i8 79, i8* %321
store i32 1, i32* %5
br label %365
322: ; preds = %316, %310
%323 = getelementptr inbounds [3 x [3 x i8]], [3 x [3 x i8]]* %1, i64 0, i64 2
%324 = getelementptr inbounds [3 x i8], [3 x i8]* %323, i64 0, i64 0
%325 = load i8, i8* %324
%326 = sext i8 %325 to i32
%327 = icmp eq i32 %326, 32
br i1 %327, label %328, label %334
328: ; preds = %322
%329 = load i32, i32* %3
%330 = icmp eq i32 %329, 20
br i1 %330, label %331, label %334
331: ; preds = %328
%332 = getelementptr inbounds [3 x [3 x i8]], [3 x [3 x i8]]* %1, i64 0, i64 2
%333 = getelementptr inbounds [3 x i8], [3 x i8]* %332, i64 0, i64 0
store i8 79, i8* %333
store i32 1, i32* %5
br label %364
334: ; preds = %328, %322
%335 = getelementptr inbounds [3 x [3 x i8]], [3 x [3 x i8]]* %1, i64 0, i64 2
%336 = getelementptr inbounds [3 x i8], [3 x i8]* %335, i64 0, i64 1
%337 = load i8, i8* %336
%338 = sext i8 %337 to i32
%339 = icmp eq i32 %338, 32
br i1 %339, label %340, label %346
340: ; preds = %334
%341 = load i32, i32* %3
%342 = icmp eq i32 %341, 21
br i1 %342, label %343, label %346
343: ; preds = %340
%344 = getelementptr inbounds [3 x [3 x i8]], [3 x [3 x i8]]* %1, i64 0, i64 2
%345 = getelementptr inbounds [3 x i8], [3 x i8]* %344, i64 0, i64 1
store i8 79, i8* %345
store i32 1, i32* %5
br label %363
346: ; preds = %340, %334
%347 = getelementptr inbounds [3 x [3 x i8]], [3 x [3 x i8]]* %1, i64 0, i64 2
%348 = getelementptr inbounds [3 x i8], [3 x i8]* %347, i64 0, i64 2
%349 = load i8, i8* %348
%350 = sext i8 %349 to i32
%351 = icmp eq i32 %350, 32
br i1 %351, label %352, label %358
352: ; preds = %346
%353 = load i32, i32* %3
%354 = icmp eq i32 %353, 22
br i1 %354, label %355, label %358
355: ; preds = %352
%356 = getelementptr inbounds [3 x [3 x i8]], [3 x [3 x i8]]* %1, i64 0, i64 2
%357 = getelementptr inbounds [3 x i8], [3 x i8]* %356, i64 0, i64 2
store i8 79, i8* %357
store i32 1, i32* %5
br label %362
358: ; preds = %352, %346
%359 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([20 x i8], [20 x i8]* @.str.10, i64 0, i64 0))
%360 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([28 x i8], [28 x i8]* @.str.8, i64 0, i64 0))
%361 = call i32 (i8*, ...) @scanf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.9, i64 0, i64 0), i32* %3)
br label %362
362: ; preds = %358, %355
br label %363
363: ; preds = %362, %343
br label %364
364: ; preds = %363, %331
br label %365
365: ; preds = %364, %319
br label %366
366: ; preds = %365, %307
br label %367
367: ; preds = %366, %295
br label %368
368: ; preds = %367, %283
br label %369
369: ; preds = %368, %271
br label %370
370: ; preds = %369, %259
%371 = call i32 (i8*, ...) bitcast (i32 (...)* @system to i32 (i8*, ...)*)(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.11, i64 0, i64 0))
%372 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([17 x i8], [17 x i8]* @.str, i64 0, i64 0))
%373 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.1, i64 0, i64 0))
%374 = getelementptr inbounds [3 x [3 x i8]], [3 x [3 x i8]]* %1, i64 0, i64 0
%375 = getelementptr inbounds [3 x i8], [3 x i8]* %374, i64 0, i64 0
%376 = load i8, i8* %375
%377 = sext i8 %376 to i32
%378 = getelementptr inbounds [3 x [3 x i8]], [3 x [3 x i8]]* %1, i64 0, i64 0
%379 = getelementptr inbounds [3 x i8], [3 x i8]* %378, i64 0, i64 1
%380 = load i8, i8* %379
%381 = sext i8 %380 to i32
%382 = getelementptr inbounds [3 x [3 x i8]], [3 x [3 x i8]]* %1, i64 0, i64 0
%383 = getelementptr inbounds [3 x i8], [3 x i8]* %382, i64 0, i64 2
%384 = load i8, i8* %383
%385 = sext i8 %384 to i32
%386 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.2, i64 0, i64 0), i32 %377, i32 %381, i32 %385)
%387 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str.3, i64 0, i64 0))
%388 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.4, i64 0, i64 0))
%389 = getelementptr inbounds [3 x [3 x i8]], [3 x [3 x i8]]* %1, i64 0, i64 1
%390 = getelementptr inbounds [3 x i8], [3 x i8]* %389, i64 0, i64 0
%391 = load i8, i8* %390
%392 = sext i8 %391 to i32
%393 = getelementptr inbounds [3 x [3 x i8]], [3 x [3 x i8]]* %1, i64 0, i64 1
%394 = getelementptr inbounds [3 x i8], [3 x i8]* %393, i64 0, i64 1
%395 = load i8, i8* %394
%396 = sext i8 %395 to i32
%397 = getelementptr inbounds [3 x [3 x i8]], [3 x [3 x i8]]* %1, i64 0, i64 1
%398 = getelementptr inbounds [3 x i8], [3 x i8]* %397, i64 0, i64 2
%399 = load i8, i8* %398
%400 = sext i8 %399 to i32
%401 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.2, i64 0, i64 0), i32 %392, i32 %396, i32 %400)
%402 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str.3, i64 0, i64 0))
%403 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.5, i64 0, i64 0))
%404 = getelementptr inbounds [3 x [3 x i8]], [3 x [3 x i8]]* %1, i64 0, i64 2
%405 = getelementptr inbounds [3 x i8], [3 x i8]* %404, i64 0, i64 0
%406 = load i8, i8* %405
%407 = sext i8 %406 to i32
%408 = getelementptr inbounds [3 x [3 x i8]], [3 x [3 x i8]]* %1, i64 0, i64 2
%409 = getelementptr inbounds [3 x i8], [3 x i8]* %408, i64 0, i64 1
%410 = load i8, i8* %409
%411 = sext i8 %410 to i32
%412 = getelementptr inbounds [3 x [3 x i8]], [3 x [3 x i8]]* %1, i64 0, i64 2
%413 = getelementptr inbounds [3 x i8], [3 x i8]* %412, i64 0, i64 2
%414 = load i8, i8* %413
%415 = sext i8 %414 to i32
%416 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([17 x i8], [17 x i8]* @.str.6, i64 0, i64 0), i32 %407, i32 %411, i32 %415)
br label %417
417: ; preds = %370
%418 = load i32, i32* %5
%419 = icmp ne i32 %418, 1
br i1 %419, label %250, label %420
420: ; preds = %417
%421 = call i32 (i8*, ...) bitcast (i32 (...)* @system to i32 (i8*, ...)*)(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.11, i64 0, i64 0))
%422 = getelementptr inbounds [3 x [3 x i8]], [3 x [3 x i8]]* %1, i64 0, i64 0
%423 = getelementptr inbounds [3 x i8], [3 x i8]* %422, i64 0, i64 0
%424 = load i8, i8* %423
%425 = sext i8 %424 to i32
%426 = icmp eq i32 %425, 88
br i1 %426, label %427, label %439
427: ; preds = %420
%428 = getelementptr inbounds [3 x [3 x i8]], [3 x [3 x i8]]* %1, i64 0, i64 0
%429 = getelementptr inbounds [3 x i8], [3 x i8]* %428, i64 0, i64 1
%430 = load i8, i8* %429
%431 = sext i8 %430 to i32
%432 = icmp eq i32 %431, 88
br i1 %432, label %433, label %439
433: ; preds = %427
%434 = getelementptr inbounds [3 x [3 x i8]], [3 x [3 x i8]]* %1, i64 0, i64 0
%435 = getelementptr inbounds [3 x i8], [3 x i8]* %434, i64 0, i64 2
%436 = load i8, i8* %435
%437 = sext i8 %436 to i32
%438 = icmp eq i32 %437, 88
br i1 %438, label %565, label %439
439: ; preds = %433, %427, %420
%440 = getelementptr inbounds [3 x [3 x i8]], [3 x [3 x i8]]* %1, i64 0, i64 1
%441 = getelementptr inbounds [3 x i8], [3 x i8]* %440, i64 0, i64 0
%442 = load i8, i8* %441
%443 = sext i8 %442 to i32
%444 = icmp eq i32 %443, 88
br i1 %444, label %445, label %457
445: ; preds = %439
%446 = getelementptr inbounds [3 x [3 x i8]], [3 x [3 x i8]]* %1, i64 0, i64 1
%447 = getelementptr inbounds [3 x i8], [3 x i8]* %446, i64 0, i64 1
%448 = load i8, i8* %447
%449 = sext i8 %448 to i32
%450 = icmp eq i32 %449, 88
br i1 %450, label %451, label %457
451: ; preds = %445
%452 = getelementptr inbounds [3 x [3 x i8]], [3 x [3 x i8]]* %1, i64 0, i64 1
%453 = getelementptr inbounds [3 x i8], [3 x i8]* %452, i64 0, i64 2
%454 = load i8, i8* %453
%455 = sext i8 %454 to i32
%456 = icmp eq i32 %455, 88
br i1 %456, label %565, label %457
457: ; preds = %451, %445, %439
%458 = getelementptr inbounds [3 x [3 x i8]], [3 x [3 x i8]]* %1, i64 0, i64 2
%459 = getelementptr inbounds [3 x i8], [3 x i8]* %458, i64 0, i64 0
%460 = load i8, i8* %459
%461 = sext i8 %460 to i32
%462 = icmp eq i32 %461, 88
br i1 %462, label %463, label %475
463: ; preds = %457
%464 = getelementptr inbounds [3 x [3 x i8]], [3 x [3 x i8]]* %1, i64 0, i64 2
%465 = getelementptr inbounds [3 x i8], [3 x i8]* %464, i64 0, i64 1
%466 = load i8, i8* %465
%467 = sext i8 %466 to i32
%468 = icmp eq i32 %467, 88
br i1 %468, label %469, label %475
469: ; preds = %463
%470 = getelementptr inbounds [3 x [3 x i8]], [3 x [3 x i8]]* %1, i64 0, i64 2
%471 = getelementptr inbounds [3 x i8], [3 x i8]* %470, i64 0, i64 2
%472 = load i8, i8* %471
%473 = sext i8 %472 to i32
%474 = icmp eq i32 %473, 88
br i1 %474, label %565, label %475
475: ; preds = %469, %463, %457
%476 = getelementptr inbounds [3 x [3 x i8]], [3 x [3 x i8]]* %1, i64 0, i64 0
%477 = getelementptr inbounds [3 x i8], [3 x i8]* %476, i64 0, i64 0
%478 = load i8, i8* %477
%479 = sext i8 %478 to i32
%480 = icmp eq i32 %479, 88
br i1 %480, label %481, label %493
481: ; preds = %475
%482 = getelementptr inbounds [3 x [3 x i8]], [3 x [3 x i8]]* %1, i64 0, i64 1
%483 = getelementptr inbounds [3 x i8], [3 x i8]* %482, i64 0, i64 0
%484 = load i8, i8* %483
%485 = sext i8 %484 to i32
%486 = icmp eq i32 %485, 88
br i1 %486, label %487, label %493
487: ; preds = %481
%488 = getelementptr inbounds [3 x [3 x i8]], [3 x [3 x i8]]* %1, i64 0, i64 2
%489 = getelementptr inbounds [3 x i8], [3 x i8]* %488, i64 0, i64 0
%490 = load i8, i8* %489
%491 = sext i8 %490 to i32
%492 = icmp eq i32 %491, 88
br i1 %492, label %565, label %493
493: ; preds = %487, %481, %475
%494 = getelementptr inbounds [3 x [3 x i8]], [3 x [3 x i8]]* %1, i64 0, i64 0
%495 = getelementptr inbounds [3 x i8], [3 x i8]* %494, i64 0, i64 1
%496 = load i8, i8* %495
%497 = sext i8 %496 to i32
%498 = icmp eq i32 %497, 88
br i1 %498, label %499, label %511
499: ; preds = %493
%500 = getelementptr inbounds [3 x [3 x i8]], [3 x [3 x i8]]* %1, i64 0, i64 1
%501 = getelementptr inbounds [3 x i8], [3 x i8]* %500, i64 0, i64 1
%502 = load i8, i8* %501
%503 = sext i8 %502 to i32
%504 = icmp eq i32 %503, 88
br i1 %504, label %505, label %511
505: ; preds = %499
%506 = getelementptr inbounds [3 x [3 x i8]], [3 x [3 x i8]]* %1, i64 0, i64 2
%507 = getelementptr inbounds [3 x i8], [3 x i8]* %506, i64 0, i64 1
%508 = load i8, i8* %507
%509 = sext i8 %508 to i32
%510 = icmp eq i32 %509, 88
br i1 %510, label %565, label %511
511: ; preds = %505, %499, %493
%512 = getelementptr inbounds [3 x [3 x i8]], [3 x [3 x i8]]* %1, i64 0, i64 0
%513 = getelementptr inbounds [3 x i8], [3 x i8]* %512, i64 0, i64 2
%514 = load i8, i8* %513
%515 = sext i8 %514 to i32
%516 = icmp eq i32 %515, 88
br i1 %516, label %517, label %529
517: ; preds = %511
%518 = getelementptr inbounds [3 x [3 x i8]], [3 x [3 x i8]]* %1, i64 0, i64 1
%519 = getelementptr inbounds [3 x i8], [3 x i8]* %518, i64 0, i64 2
%520 = load i8, i8* %519
%521 = sext i8 %520 to i32
%522 = icmp eq i32 %521, 88
br i1 %522, label %523, label %529
523: ; preds = %517
%524 = getelementptr inbounds [3 x [3 x i8]], [3 x [3 x i8]]* %1, i64 0, i64 2
%525 = getelementptr inbounds [3 x i8], [3 x i8]* %524, i64 0, i64 2
%526 = load i8, i8* %525
%527 = sext i8 %526 to i32
%528 = icmp eq i32 %527, 88
br i1 %528, label %565, label %529
529: ; preds = %523, %517, %511
%530 = getelementptr inbounds [3 x [3 x i8]], [3 x [3 x i8]]* %1, i64 0, i64 0
%531 = getelementptr inbounds [3 x i8], [3 x i8]* %530, i64 0, i64 0
%532 = load i8, i8* %531
%533 = sext i8 %532 to i32
%534 = icmp eq i32 %533, 88
br i1 %534, label %535, label %547
535: ; preds = %529
%536 = getelementptr inbounds [3 x [3 x i8]], [3 x [3 x i8]]* %1, i64 0, i64 1
%537 = getelementptr inbounds [3 x i8], [3 x i8]* %536, i64 0, i64 1
%538 = load i8, i8* %537
%539 = sext i8 %538 to i32
%540 = icmp eq i32 %539, 88
br i1 %540, label %541, label %547
541: ; preds = %535
%542 = getelementptr inbounds [3 x [3 x i8]], [3 x [3 x i8]]* %1, i64 0, i64 2
%543 = getelementptr inbounds [3 x i8], [3 x i8]* %542, i64 0, i64 2
%544 = load i8, i8* %543
%545 = sext i8 %544 to i32
%546 = icmp eq i32 %545, 88
br i1 %546, label %565, label %547
547: ; preds = %541, %535, %529
%548 = getelementptr inbounds [3 x [3 x i8]], [3 x [3 x i8]]* %1, i64 0, i64 0
%549 = getelementptr inbounds [3 x i8], [3 x i8]* %548, i64 0, i64 2
%550 = load i8, i8* %549
%551 = sext i8 %550 to i32
%552 = icmp eq i32 %551, 88
br i1 %552, label %553, label %612
553: ; preds = %547
%554 = getelementptr inbounds [3 x [3 x i8]], [3 x [3 x i8]]* %1, i64 0, i64 1
%555 = getelementptr inbounds [3 x i8], [3 x i8]* %554, i64 0, i64 1
%556 = load i8, i8* %555
%557 = sext i8 %556 to i32
%558 = icmp eq i32 %557, 88
br i1 %558, label %559, label %612
559: ; preds = %553
%560 = getelementptr inbounds [3 x [3 x i8]], [3 x [3 x i8]]* %1, i64 0, i64 2
%561 = getelementptr inbounds [3 x i8], [3 x i8]* %560, i64 0, i64 0
%562 = load i8, i8* %561
%563 = sext i8 %562 to i32
%564 = icmp eq i32 %563, 88
br i1 %564, label %565, label %612
565: ; preds = %559, %541, %523, %505, %487, %469, %451, %433
%566 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([21 x i8], [21 x i8]* @.str.13, i64 0, i64 0))
store i32 1, i32* %4
%567 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([18 x i8], [18 x i8]* @.str.14, i64 0, i64 0))
%568 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.1, i64 0, i64 0))
%569 = getelementptr inbounds [3 x [3 x i8]], [3 x [3 x i8]]* %1, i64 0, i64 0
%570 = getelementptr inbounds [3 x i8], [3 x i8]* %569, i64 0, i64 0
%571 = load i8, i8* %570
%572 = sext i8 %571 to i32
%573 = getelementptr inbounds [3 x [3 x i8]], [3 x [3 x i8]]* %1, i64 0, i64 0
%574 = getelementptr inbounds [3 x i8], [3 x i8]* %573, i64 0, i64 1
%575 = load i8, i8* %574
%576 = sext i8 %575 to i32
%577 = getelementptr inbounds [3 x [3 x i8]], [3 x [3 x i8]]* %1, i64 0, i64 0
%578 = getelementptr inbounds [3 x i8], [3 x i8]* %577, i64 0, i64 2
%579 = load i8, i8* %578
%580 = sext i8 %579 to i32
%581 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.2, i64 0, i64 0), i32 %572, i32 %576, i32 %580)
%582 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str.3, i64 0, i64 0))
%583 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.4, i64 0, i64 0))
%584 = getelementptr inbounds [3 x [3 x i8]], [3 x [3 x i8]]* %1, i64 0, i64 1
%585 = getelementptr inbounds [3 x i8], [3 x i8]* %584, i64 0, i64 0
%586 = load i8, i8* %585
%587 = sext i8 %586 to i32
%588 = getelementptr inbounds [3 x [3 x i8]], [3 x [3 x i8]]* %1, i64 0, i64 1
%589 = getelementptr inbounds [3 x i8], [3 x i8]* %588, i64 0, i64 1
%590 = load i8, i8* %589
%591 = sext i8 %590 to i32
%592 = getelementptr inbounds [3 x [3 x i8]], [3 x [3 x i8]]* %1, i64 0, i64 1
%593 = getelementptr inbounds [3 x i8], [3 x i8]* %592, i64 0, i64 2
%594 = load i8, i8* %593
%595 = sext i8 %594 to i32
%596 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.2, i64 0, i64 0), i32 %587, i32 %591, i32 %595)
%597 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str.3, i64 0, i64 0))
%598 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.5, i64 0, i64 0))
%599 = getelementptr inbounds [3 x [3 x i8]], [3 x [3 x i8]]* %1, i64 0, i64 2
%600 = getelementptr inbounds [3 x i8], [3 x i8]* %599, i64 0, i64 0
%601 = load i8, i8* %600
%602 = sext i8 %601 to i32
%603 = getelementptr inbounds [3 x [3 x i8]], [3 x [3 x i8]]* %1, i64 0, i64 2
%604 = getelementptr inbounds [3 x i8], [3 x i8]* %603, i64 0, i64 1
%605 = load i8, i8* %604
%606 = sext i8 %605 to i32
%607 = getelementptr inbounds [3 x [3 x i8]], [3 x [3 x i8]]* %1, i64 0, i64 2
%608 = getelementptr inbounds [3 x i8], [3 x i8]* %607, i64 0, i64 2
%609 = load i8, i8* %608
%610 = sext i8 %609 to i32
%611 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([17 x i8], [17 x i8]* @.str.6, i64 0, i64 0), i32 %602, i32 %606, i32 %610)
br label %906
612: ; preds = %559, %553, %547
%613 = getelementptr inbounds [3 x [3 x i8]], [3 x [3 x i8]]* %1, i64 0, i64 0
%614 = getelementptr inbounds [3 x i8], [3 x i8]* %613, i64 0, i64 0
%615 = load i8, i8* %614
%616 = sext i8 %615 to i32
%617 = icmp eq i32 %616, 79
br i1 %617, label %618, label %630
618: ; preds = %612
%619 = getelementptr inbounds [3 x [3 x i8]], [3 x [3 x i8]]* %1, i64 0, i64 0
%620 = getelementptr inbounds [3 x i8], [3 x i8]* %619, i64 0, i64 1
%621 = load i8, i8* %620
%622 = sext i8 %621 to i32
%623 = icmp eq i32 %622, 79
br i1 %623, label %624, label %630
624: ; preds = %618
%625 = getelementptr inbounds [3 x [3 x i8]], [3 x [3 x i8]]* %1, i64 0, i64 0
%626 = getelementptr inbounds [3 x i8], [3 x i8]* %625, i64 0, i64 2
%627 = load i8, i8* %626
%628 = sext i8 %627 to i32
%629 = icmp eq i32 %628, 79
br i1 %629, label %756, label %630
630: ; preds = %624, %618, %612
%631 = getelementptr inbounds [3 x [3 x i8]], [3 x [3 x i8]]* %1, i64 0, i64 1
%632 = getelementptr inbounds [3 x i8], [3 x i8]* %631, i64 0, i64 0
%633 = load i8, i8* %632
%634 = sext i8 %633 to i32
%635 = icmp eq i32 %634, 79
br i1 %635, label %636, label %648
636: ; preds = %630
%637 = getelementptr inbounds [3 x [3 x i8]], [3 x [3 x i8]]* %1, i64 0, i64 1
%638 = getelementptr inbounds [3 x i8], [3 x i8]* %637, i64 0, i64 1
%639 = load i8, i8* %638
%640 = sext i8 %639 to i32
%641 = icmp eq i32 %640, 79
br i1 %641, label %642, label %648
642: ; preds = %636
%643 = getelementptr inbounds [3 x [3 x i8]], [3 x [3 x i8]]* %1, i64 0, i64 1
%644 = getelementptr inbounds [3 x i8], [3 x i8]* %643, i64 0, i64 2
%645 = load i8, i8* %644
%646 = sext i8 %645 to i32
%647 = icmp eq i32 %646, 79
br i1 %647, label %756, label %648
648: ; preds = %642, %636, %630
%649 = getelementptr inbounds [3 x [3 x i8]], [3 x [3 x i8]]* %1, i64 0, i64 2
%650 = getelementptr inbounds [3 x i8], [3 x i8]* %649, i64 0, i64 0
%651 = load i8, i8* %650
%652 = sext i8 %651 to i32
%653 = icmp eq i32 %652, 79
br i1 %653, label %654, label %666
654: ; preds = %648
%655 = getelementptr inbounds [3 x [3 x i8]], [3 x [3 x i8]]* %1, i64 0, i64 2
%656 = getelementptr inbounds [3 x i8], [3 x i8]* %655, i64 0, i64 1
%657 = load i8, i8* %656
%658 = sext i8 %657 to i32
%659 = icmp eq i32 %658, 79
br i1 %659, label %660, label %666
660: ; preds = %654
%661 = getelementptr inbounds [3 x [3 x i8]], [3 x [3 x i8]]* %1, i64 0, i64 2
%662 = getelementptr inbounds [3 x i8], [3 x i8]* %661, i64 0, i64 2
%663 = load i8, i8* %662
%664 = sext i8 %663 to i32
%665 = icmp eq i32 %664, 79
br i1 %665, label %756, label %666
666: ; preds = %660, %654, %648
%667 = getelementptr inbounds [3 x [3 x i8]], [3 x [3 x i8]]* %1, i64 0, i64 0
%668 = getelementptr inbounds [3 x i8], [3 x i8]* %667, i64 0, i64 0
%669 = load i8, i8* %668
%670 = sext i8 %669 to i32
%671 = icmp eq i32 %670, 79
br i1 %671, label %672, label %684
672: ; preds = %666
%673 = getelementptr inbounds [3 x [3 x i8]], [3 x [3 x i8]]* %1, i64 0, i64 1
%674 = getelementptr inbounds [3 x i8], [3 x i8]* %673, i64 0, i64 0
%675 = load i8, i8* %674
%676 = sext i8 %675 to i32
%677 = icmp eq i32 %676, 79
br i1 %677, label %678, label %684
678: ; preds = %672
%679 = getelementptr inbounds [3 x [3 x i8]], [3 x [3 x i8]]* %1, i64 0, i64 2
%680 = getelementptr inbounds [3 x i8], [3 x i8]* %679, i64 0, i64 0
%681 = load i8, i8* %680
%682 = sext i8 %681 to i32
%683 = icmp eq i32 %682, 79
br i1 %683, label %756, label %684
684: ; preds = %678, %672, %666
%685 = getelementptr inbounds [3 x [3 x i8]], [3 x [3 x i8]]* %1, i64 0, i64 0
%686 = getelementptr inbounds [3 x i8], [3 x i8]* %685, i64 0, i64 1
%687 = load i8, i8* %686
%688 = sext i8 %687 to i32
%689 = icmp eq i32 %688, 79
br i1 %689, label %690, label %702
690: ; preds = %684
%691 = getelementptr inbounds [3 x [3 x i8]], [3 x [3 x i8]]* %1, i64 0, i64 1
%692 = getelementptr inbounds [3 x i8], [3 x i8]* %691, i64 0, i64 1
%693 = load i8, i8* %692
%694 = sext i8 %693 to i32
%695 = icmp eq i32 %694, 79
br i1 %695, label %696, label %702
696: ; preds = %690
%697 = getelementptr inbounds [3 x [3 x i8]], [3 x [3 x i8]]* %1, i64 0, i64 2
%698 = getelementptr inbounds [3 x i8], [3 x i8]* %697, i64 0, i64 1
%699 = load i8, i8* %698
%700 = sext i8 %699 to i32
%701 = icmp eq i32 %700, 79
br i1 %701, label %756, label %702
702: ; preds = %696, %690, %684
%703 = getelementptr inbounds [3 x [3 x i8]], [3 x [3 x i8]]* %1, i64 0, i64 0
%704 = getelementptr inbounds [3 x i8], [3 x i8]* %703, i64 0, i64 2
%705 = load i8, i8* %704
%706 = sext i8 %705 to i32
%707 = icmp eq i32 %706, 79
br i1 %707, label %708, label %720
708: ; preds = %702
%709 = getelementptr inbounds [3 x [3 x i8]], [3 x [3 x i8]]* %1, i64 0, i64 1
%710 = getelementptr inbounds [3 x i8], [3 x i8]* %709, i64 0, i64 2
%711 = load i8, i8* %710
%712 = sext i8 %711 to i32
%713 = icmp eq i32 %712, 79
br i1 %713, label %714, label %720
714: ; preds = %708
%715 = getelementptr inbounds [3 x [3 x i8]], [3 x [3 x i8]]* %1, i64 0, i64 2
%716 = getelementptr inbounds [3 x i8], [3 x i8]* %715, i64 0, i64 2
%717 = load i8, i8* %716
%718 = sext i8 %717 to i32
%719 = icmp eq i32 %718, 79
br i1 %719, label %756, label %720
720: ; preds = %714, %708, %702
%721 = getelementptr inbounds [3 x [3 x i8]], [3 x [3 x i8]]* %1, i64 0, i64 0
%722 = getelementptr inbounds [3 x i8], [3 x i8]* %721, i64 0, i64 0
%723 = load i8, i8* %722
%724 = sext i8 %723 to i32
%725 = icmp eq i32 %724, 79
br i1 %725, label %726, label %738
726: ; preds = %720
%727 = getelementptr inbounds [3 x [3 x i8]], [3 x [3 x i8]]* %1, i64 0, i64 1
%728 = getelementptr inbounds [3 x i8], [3 x i8]* %727, i64 0, i64 1
%729 = load i8, i8* %728
%730 = sext i8 %729 to i32
%731 = icmp eq i32 %730, 79
br i1 %731, label %732, label %738
732: ; preds = %726
%733 = getelementptr inbounds [3 x [3 x i8]], [3 x [3 x i8]]* %1, i64 0, i64 2
%734 = getelementptr inbounds [3 x i8], [3 x i8]* %733, i64 0, i64 2
%735 = load i8, i8* %734
%736 = sext i8 %735 to i32
%737 = icmp eq i32 %736, 79
br i1 %737, label %756, label %738
738: ; preds = %732, %726, %720
%739 = getelementptr inbounds [3 x [3 x i8]], [3 x [3 x i8]]* %1, i64 0, i64 0
%740 = getelementptr inbounds [3 x i8], [3 x i8]* %739, i64 0, i64 2
%741 = load i8, i8* %740
%742 = sext i8 %741 to i32
%743 = icmp eq i32 %742, 79
br i1 %743, label %744, label %803
744: ; preds = %738
%745 = getelementptr inbounds [3 x [3 x i8]], [3 x [3 x i8]]* %1, i64 0, i64 1
%746 = getelementptr inbounds [3 x i8], [3 x i8]* %745, i64 0, i64 1
%747 = load i8, i8* %746
%748 = sext i8 %747 to i32
%749 = icmp eq i32 %748, 79
br i1 %749, label %750, label %803
750: ; preds = %744
%751 = getelementptr inbounds [3 x [3 x i8]], [3 x [3 x i8]]* %1, i64 0, i64 2
%752 = getelementptr inbounds [3 x i8], [3 x i8]* %751, i64 0, i64 0
%753 = load i8, i8* %752
%754 = sext i8 %753 to i32
%755 = icmp eq i32 %754, 79
br i1 %755, label %756, label %803
756: ; preds = %750, %732, %714, %696, %678, %660, %642, %624
%757 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([21 x i8], [21 x i8]* @.str.15, i64 0, i64 0))
store i32 1, i32* %4
%758 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([18 x i8], [18 x i8]* @.str.14, i64 0, i64 0))
%759 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.1, i64 0, i64 0))
%760 = getelementptr inbounds [3 x [3 x i8]], [3 x [3 x i8]]* %1, i64 0, i64 0
%761 = getelementptr inbounds [3 x i8], [3 x i8]* %760, i64 0, i64 0
%762 = load i8, i8* %761
%763 = sext i8 %762 to i32
%764 = getelementptr inbounds [3 x [3 x i8]], [3 x [3 x i8]]* %1, i64 0, i64 0
%765 = getelementptr inbounds [3 x i8], [3 x i8]* %764, i64 0, i64 1
%766 = load i8, i8* %765
%767 = sext i8 %766 to i32
%768 = getelementptr inbounds [3 x [3 x i8]], [3 x [3 x i8]]* %1, i64 0, i64 0
%769 = getelementptr inbounds [3 x i8], [3 x i8]* %768, i64 0, i64 2
%770 = load i8, i8* %769
%771 = sext i8 %770 to i32
%772 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.2, i64 0, i64 0), i32 %763, i32 %767, i32 %771)
%773 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str.3, i64 0, i64 0))
%774 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.4, i64 0, i64 0))
%775 = getelementptr inbounds [3 x [3 x i8]], [3 x [3 x i8]]* %1, i64 0, i64 1
%776 = getelementptr inbounds [3 x i8], [3 x i8]* %775, i64 0, i64 0
%777 = load i8, i8* %776
%778 = sext i8 %777 to i32
%779 = getelementptr inbounds [3 x [3 x i8]], [3 x [3 x i8]]* %1, i64 0, i64 1
%780 = getelementptr inbounds [3 x i8], [3 x i8]* %779, i64 0, i64 1
%781 = load i8, i8* %780
%782 = sext i8 %781 to i32
%783 = getelementptr inbounds [3 x [3 x i8]], [3 x [3 x i8]]* %1, i64 0, i64 1
%784 = getelementptr inbounds [3 x i8], [3 x i8]* %783, i64 0, i64 2
%785 = load i8, i8* %784
%786 = sext i8 %785 to i32
%787 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.2, i64 0, i64 0), i32 %778, i32 %782, i32 %786)
%788 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str.3, i64 0, i64 0))
%789 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.5, i64 0, i64 0))
%790 = getelementptr inbounds [3 x [3 x i8]], [3 x [3 x i8]]* %1, i64 0, i64 2
%791 = getelementptr inbounds [3 x i8], [3 x i8]* %790, i64 0, i64 0
%792 = load i8, i8* %791
%793 = sext i8 %792 to i32
%794 = getelementptr inbounds [3 x [3 x i8]], [3 x [3 x i8]]* %1, i64 0, i64 2
%795 = getelementptr inbounds [3 x i8], [3 x i8]* %794, i64 0, i64 1
%796 = load i8, i8* %795
%797 = sext i8 %796 to i32
%798 = getelementptr inbounds [3 x [3 x i8]], [3 x [3 x i8]]* %1, i64 0, i64 2
%799 = getelementptr inbounds [3 x i8], [3 x i8]* %798, i64 0, i64 2
%800 = load i8, i8* %799
%801 = sext i8 %800 to i32
%802 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([17 x i8], [17 x i8]* @.str.6, i64 0, i64 0), i32 %793, i32 %797, i32 %801)
br label %905
803: ; preds = %750, %744, %738
%804 = getelementptr inbounds [3 x [3 x i8]], [3 x [3 x i8]]* %1, i64 0, i64 0
%805 = getelementptr inbounds [3 x i8], [3 x i8]* %804, i64 0, i64 0
%806 = load i8, i8* %805
%807 = sext i8 %806 to i32
%808 = icmp ne i32 %807, 32
br i1 %808, label %809, label %904
809: ; preds = %803
%810 = getelementptr inbounds [3 x [3 x i8]], [3 x [3 x i8]]* %1, i64 0, i64 0
%811 = getelementptr inbounds [3 x i8], [3 x i8]* %810, i64 0, i64 1
%812 = load i8, i8* %811
%813 = sext i8 %812 to i32
%814 = icmp ne i32 %813, 32
br i1 %814, label %815, label %904
815: ; preds = %809
%816 = getelementptr inbounds [3 x [3 x i8]], [3 x [3 x i8]]* %1, i64 0, i64 0
%817 = getelementptr inbounds [3 x i8], [3 x i8]* %816, i64 0, i64 2
%818 = load i8, i8* %817
%819 = sext i8 %818 to i32
%820 = icmp ne i32 %819, 32
br i1 %820, label %821, label %904
821: ; preds = %815
%822 = getelementptr inbounds [3 x [3 x i8]], [3 x [3 x i8]]* %1, i64 0, i64 1
%823 = getelementptr inbounds [3 x i8], [3 x i8]* %822, i64 0, i64 0
%824 = load i8, i8* %823
%825 = sext i8 %824 to i32
%826 = icmp ne i32 %825, 32
br i1 %826, label %827, label %904
827: ; preds = %821
%828 = getelementptr inbounds [3 x [3 x i8]], [3 x [3 x i8]]* %1, i64 0, i64 1
%829 = getelementptr inbounds [3 x i8], [3 x i8]* %828, i64 0, i64 1
%830 = load i8, i8* %829
%831 = sext i8 %830 to i32
%832 = icmp ne i32 %831, 32
br i1 %832, label %833, label %904
833: ; preds = %827
%834 = getelementptr inbounds [3 x [3 x i8]], [3 x [3 x i8]]* %1, i64 0, i64 1
%835 = getelementptr inbounds [3 x i8], [3 x i8]* %834, i64 0, i64 2
%836 = load i8, i8* %835
%837 = sext i8 %836 to i32
%838 = icmp ne i32 %837, 32
br i1 %838, label %839, label %904
839: ; preds = %833
%840 = getelementptr inbounds [3 x [3 x i8]], [3 x [3 x i8]]* %1, i64 0, i64 2
%841 = getelementptr inbounds [3 x i8], [3 x i8]* %840, i64 0, i64 0
%842 = load i8, i8* %841
%843 = sext i8 %842 to i32
%844 = icmp ne i32 %843, 32
br i1 %844, label %845, label %904
845: ; preds = %839
%846 = getelementptr inbounds [3 x [3 x i8]], [3 x [3 x i8]]* %1, i64 0, i64 2
%847 = getelementptr inbounds [3 x i8], [3 x i8]* %846, i64 0, i64 1
%848 = load i8, i8* %847
%849 = sext i8 %848 to i32
%850 = icmp ne i32 %849, 32
br i1 %850, label %851, label %904
851: ; preds = %845
%852 = getelementptr inbounds [3 x [3 x i8]], [3 x [3 x i8]]* %1, i64 0, i64 2
%853 = getelementptr inbounds [3 x i8], [3 x i8]* %852, i64 0, i64 2
%854 = load i8, i8* %853
%855 = sext i8 %854 to i32
%856 = icmp ne i32 %855, 32
br i1 %856, label %857, label %904
857: ; preds = %851
%858 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([30 x i8], [30 x i8]* @.str.16, i64 0, i64 0))
store i32 1, i32* %4
%859 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([18 x i8], [18 x i8]* @.str.14, i64 0, i64 0))
%860 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.1, i64 0, i64 0))
%861 = getelementptr inbounds [3 x [3 x i8]], [3 x [3 x i8]]* %1, i64 0, i64 0
%862 = getelementptr inbounds [3 x i8], [3 x i8]* %861, i64 0, i64 0
%863 = load i8, i8* %862
%864 = sext i8 %863 to i32
%865 = getelementptr inbounds [3 x [3 x i8]], [3 x [3 x i8]]* %1, i64 0, i64 0
%866 = getelementptr inbounds [3 x i8], [3 x i8]* %865, i64 0, i64 1
%867 = load i8, i8* %866
%868 = sext i8 %867 to i32
%869 = getelementptr inbounds [3 x [3 x i8]], [3 x [3 x i8]]* %1, i64 0, i64 0
%870 = getelementptr inbounds [3 x i8], [3 x i8]* %869, i64 0, i64 2
%871 = load i8, i8* %870
%872 = sext i8 %871 to i32
%873 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.2, i64 0, i64 0), i32 %864, i32 %868, i32 %872)
%874 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str.3, i64 0, i64 0))
%875 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.4, i64 0, i64 0))
%876 = getelementptr inbounds [3 x [3 x i8]], [3 x [3 x i8]]* %1, i64 0, i64 1
%877 = getelementptr inbounds [3 x i8], [3 x i8]* %876, i64 0, i64 0
%878 = load i8, i8* %877
%879 = sext i8 %878 to i32
%880 = getelementptr inbounds [3 x [3 x i8]], [3 x [3 x i8]]* %1, i64 0, i64 1
%881 = getelementptr inbounds [3 x i8], [3 x i8]* %880, i64 0, i64 1
%882 = load i8, i8* %881
%883 = sext i8 %882 to i32
%884 = getelementptr inbounds [3 x [3 x i8]], [3 x [3 x i8]]* %1, i64 0, i64 1
%885 = getelementptr inbounds [3 x i8], [3 x i8]* %884, i64 0, i64 2
%886 = load i8, i8* %885
%887 = sext i8 %886 to i32
%888 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.2, i64 0, i64 0), i32 %879, i32 %883, i32 %887)
%889 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str.3, i64 0, i64 0))
%890 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.5, i64 0, i64 0))
%891 = getelementptr inbounds [3 x [3 x i8]], [3 x [3 x i8]]* %1, i64 0, i64 2
%892 = getelementptr inbounds [3 x i8], [3 x i8]* %891, i64 0, i64 0
%893 = load i8, i8* %892
%894 = sext i8 %893 to i32
%895 = getelementptr inbounds [3 x [3 x i8]], [3 x [3 x i8]]* %1, i64 0, i64 2
%896 = getelementptr inbounds [3 x i8], [3 x i8]* %895, i64 0, i64 1
%897 = load i8, i8* %896
%898 = sext i8 %897 to i32
%899 = getelementptr inbounds [3 x [3 x i8]], [3 x [3 x i8]]* %1, i64 0, i64 2
%900 = getelementptr inbounds [3 x i8], [3 x i8]* %899, i64 0, i64 2
%901 = load i8, i8* %900
%902 = sext i8 %901 to i32
%903 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([17 x i8], [17 x i8]* @.str.6, i64 0, i64 0), i32 %894, i32 %898, i32 %902)
br label %904
904: ; preds = %857, %851, %845, %839, %833, %827, %821, %815, %809, %803
br label %905
905: ; preds = %904, %756
br label %906
906: ; preds = %905, %565
br label %24
907: ; preds = %24
ret void
}

LLVM IR (-O2):
@.str.1 = [9 x i8] c"\09 L0\00"
@.str.2 = [16 x i8] c"\09 %c | %c | %c\0A\00"
@.str.4 = [9 x i8] c"\09 L1\00"
@.str.5 = [9 x i8] c"\09 L2\00"
@.str.6 = [17 x i8] c"\09 %c | %c | %c\0A\0A\00"
@.str.8 = [28 x i8] c"Digite a sua jogada [L,C]: \00"
@.str.9 = [3 x i8] c"%d\00"
@.str.11 = [4 x i8] c"cls\00"
@.str.13 = [21 x i8] c"\0AO jogador 1 venceu!\00"
@.str.15 = [21 x i8] c"\0AO jogador 2 venceu!\00"
@.str.16 = [30 x i8] c"\0AO jogo empatou! Deu velha!!!\00"
@str.19 = [14 x i8] c"\09\09Jogador 1: \00"
@str.24 = [14 x i8] c"\09\09Jogador 2: \00"
@str.25 = [19 x i8] c"\09\09Jogada Invalida!\00"
@str.26 = [16 x i8] c"\0A\09\09 C0 C1 C2\0A\00"
@str.35 = [17 x i8] c"\0A\0A\09\09 C0 C1 C2\0A\00"
@str.37 = [14 x i8] c"\09\09-----------\00"
define void @play() {
%1 = alloca i32
%2 = alloca i32
%3 = bitcast i32* %1 to i8*
%4 = bitcast i32* %2 to i8*
br label %5
5: ; preds = %267, %0
%6 = phi i8 [ 32, %0 ], [ %179, %267 ]
%7 = phi i8 [ 32, %0 ], [ %178, %267 ]
%8 = phi i8 [ 32, %0 ], [ %177, %267 ]
%9 = phi i8 [ 32, %0 ], [ %176, %267 ]
%10 = phi i8 [ 32, %0 ], [ %175, %267 ]
%11 = phi i8 [ 32, %0 ], [ %174, %267 ]
%12 = phi i8 [ 32, %0 ], [ %173, %267 ]
%13 = phi i8 [ 32, %0 ], [ %172, %267 ]
%14 = phi i8 [ 32, %0 ], [ %171, %267 ]
%15 = call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([16 x i8], [16 x i8]* @str.26, i64 0, i64 0))
%16 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([9 x i8], [9 x i8]* @.str.1, i64 0, i64 0))
%17 = zext i8 %6 to i32
%18 = zext i8 %7 to i32
%19 = zext i8 %8 to i32
%20 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([16 x i8], [16 x i8]* @.str.2, i64 0, i64 0), i32 %17, i32 %18, i32 %19)
%21 = call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([14 x i8], [14 x i8]* @str.37, i64 0, i64 0))
%22 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([9 x i8], [9 x i8]* @.str.4, i64 0, i64 0))
%23 = zext i8 %9 to i32
%24 = zext i8 %10 to i32
%25 = zext i8 %11 to i32
%26 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([16 x i8], [16 x i8]* @.str.2, i64 0, i64 0), i32 %23, i32 %24, i32 %25)
%27 = call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([14 x i8], [14 x i8]* @str.37, i64 0, i64 0))
%28 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([9 x i8], [9 x i8]* @.str.5, i64 0, i64 0))
%29 = zext i8 %12 to i32
%30 = zext i8 %13 to i32
%31 = zext i8 %14 to i32
%32 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([17 x i8], [17 x i8]* @.str.6, i64 0, i64 0), i32 %29, i32 %30, i32 %31)
%33 = call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([14 x i8], [14 x i8]* @str.19, i64 0, i64 0))
%34 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([28 x i8], [28 x i8]* @.str.8, i64 0, i64 0))
%35 = call i32 (i8*, ...) @scanf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.9, i64 0, i64 0), i32* %1)
br label %36
36: ; preds = %86, %5
%37 = phi i8 [ %14, %5 ], [ %87, %86 ]
%38 = phi i8 [ %13, %5 ], [ %88, %86 ]
%39 = phi i8 [ %12, %5 ], [ %89, %86 ]
%40 = phi i8 [ %11, %5 ], [ %90, %86 ]
%41 = phi i8 [ %10, %5 ], [ %91, %86 ]
%42 = phi i8 [ %9, %5 ], [ %92, %86 ]
%43 = phi i8 [ %8, %5 ], [ %93, %86 ]
%44 = phi i8 [ %7, %5 ], [ %94, %86 ]
%45 = phi i8 [ %6, %5 ], [ %95, %86 ]
%46 = icmp eq i8 %45, 32
%47 = load i32, i32* %1
%48 = icmp eq i32 %47, 0
%49 = select i1 %46, i1 %48, i1 false
br i1 %49, label %86, label %50
50: ; preds = %36
%51 = icmp eq i8 %44, 32
%52 = icmp eq i32 %47, 1
%53 = select i1 %51, i1 %52, i1 false
br i1 %53, label %86, label %54
54: ; preds = %50
%55 = icmp eq i8 %43, 32
%56 = icmp eq i32 %47, 2
%57 = select i1 %55, i1 %56, i1 false
br i1 %57, label %86, label %58
58: ; preds = %54
%59 = icmp eq i8 %42, 32
%60 = icmp eq i32 %47, 10
%61 = select i1 %59, i1 %60, i1 false
br i1 %61, label %86, label %62
62: ; preds = %58
%63 = icmp eq i8 %41, 32
%64 = icmp eq i32 %47, 11
%65 = select i1 %63, i1 %64, i1 false
br i1 %65, label %86, label %66
66: ; preds = %62
%67 = icmp eq i8 %40, 32
%68 = icmp eq i32 %47, 12
%69 = select i1 %67, i1 %68, i1 false
br i1 %69, label %86, label %70
70: ; preds = %66
%71 = icmp eq i8 %39, 32
%72 = icmp eq i32 %47, 20
%73 = select i1 %71, i1 %72, i1 false
br i1 %73, label %86, label %74
74: ; preds = %70
%75 = icmp eq i8 %38, 32
%76 = icmp eq i32 %47, 21
%77 = select i1 %75, i1 %76, i1 false
br i1 %77, label %86, label %78
78: ; preds = %74
%79 = icmp eq i8 %37, 32
%80 = icmp eq i32 %47, 22
%81 = select i1 %79, i1 %80, i1 false
br i1 %81, label %86, label %82
82: ; preds = %78
%83 = call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([19 x i8], [19 x i8]* @str.25, i64 0, i64 0))
%84 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([28 x i8], [28 x i8]* @.str.8, i64 0, i64 0))
%85 = call i32 (i8*, ...) @scanf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.9, i64 0, i64 0), i32* %1)
br label %86
86: ; preds = %78, %74, %70, %66, %62, %58, %54, %50, %36, %82
%87 = phi i8 [ %37, %82 ], [ %37, %36 ], [ %37, %50 ], [ %37, %54 ], [ %37, %58 ], [ %37, %62 ], [ %37, %66 ], [ %37, %70 ], [ %37, %74 ], [ 88, %78 ]
%88 = phi i8 [ %38, %82 ], [ %38, %36 ], [ %38, %50 ], [ %38, %54 ], [ %38, %58 ], [ %38, %62 ], [ %38, %66 ], [ %38, %70 ], [ 88, %74 ], [ %38, %78 ]
%89 = phi i8 [ %39, %82 ], [ %39, %36 ], [ %39, %50 ], [ %39, %54 ], [ %39, %58 ], [ %39, %62 ], [ %39, %66 ], [ 88, %70 ], [ %39, %74 ], [ %39, %78 ]
%90 = phi i8 [ %40, %82 ], [ %40, %36 ], [ %40, %50 ], [ %40, %54 ], [ %40, %58 ], [ %40, %62 ], [ 88, %66 ], [ %40, %70 ], [ %40, %74 ], [ %40, %78 ]
%91 = phi i8 [ %41, %82 ], [ %41, %36 ], [ %41, %50 ], [ %41, %54 ], [ %41, %58 ], [ 88, %62 ], [ %41, %66 ], [ %41, %70 ], [ %41, %74 ], [ %41, %78 ]
%92 = phi i8 [ %42, %82 ], [ %42, %36 ], [ %42, %50 ], [ %42, %54 ], [ 88, %58 ], [ %42, %62 ], [ %42, %66 ], [ %42, %70 ], [ %42, %74 ], [ %42, %78 ]
%93 = phi i8 [ %43, %82 ], [ %43, %36 ], [ %43, %50 ], [ 88, %54 ], [ %43, %58 ], [ %43, %62 ], [ %43, %66 ], [ %43, %70 ], [ %43, %74 ], [ %43, %78 ]
%94 = phi i8 [ %44, %82 ], [ %44, %36 ], [ 88, %50 ], [ %44, %54 ], [ %44, %58 ], [ %44, %62 ], [ %44, %66 ], [ %44, %70 ], [ %44, %74 ], [ %44, %78 ]
%95 = phi i8 [ %45, %82 ], [ 88, %36 ], [ %45, %50 ], [ %45, %54 ], [ %45, %58 ], [ %45, %62 ], [ %45, %66 ], [ %45, %70 ], [ %45, %74 ], [ %45, %78 ]
%96 = phi i1 [ false, %82 ], [ true, %36 ], [ true, %50 ], [ true, %54 ], [ true, %58 ], [ true, %62 ], [ true, %66 ], [ true, %70 ], [ true, %74 ], [ true, %78 ]
%97 = call i32 (i8*, ...) bitcast (i32 (...)* @system to i32 (i8*, ...)*)(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.11, i64 0, i64 0))
%98 = call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([16 x i8], [16 x i8]* @str.26, i64 0, i64 0))
%99 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([9 x i8], [9 x i8]* @.str.1, i64 0, i64 0))
%100 = zext i8 %95 to i32
%101 = zext i8 %94 to i32
%102 = zext i8 %93 to i32
%103 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([16 x i8], [16 x i8]* @.str.2, i64 0, i64 0), i32 %100, i32 %101, i32 %102)
%104 = call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([14 x i8], [14 x i8]* @str.37, i64 0, i64 0))
%105 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([9 x i8], [9 x i8]* @.str.4, i64 0, i64 0))
%106 = zext i8 %92 to i32
%107 = zext i8 %91 to i32
%108 = zext i8 %90 to i32
%109 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([16 x i8], [16 x i8]* @.str.2, i64 0, i64 0), i32 %106, i32 %107, i32 %108)
%110 = call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([14 x i8], [14 x i8]* @str.37, i64 0, i64 0))
%111 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([9 x i8], [9 x i8]* @.str.5, i64 0, i64 0))
%112 = zext i8 %89 to i32
%113 = zext i8 %88 to i32
%114 = zext i8 %87 to i32
%115 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([17 x i8], [17 x i8]* @.str.6, i64 0, i64 0), i32 %112, i32 %113, i32 %114)
br i1 %96, label %116, label %36
116: ; preds = %86
%117 = call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([14 x i8], [14 x i8]* @str.24, i64 0, i64 0))
%118 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([28 x i8], [28 x i8]* @.str.8, i64 0, i64 0))
%119 = call i32 (i8*, ...) @scanf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.9, i64 0, i64 0), i32* %2)
br label %120
120: ; preds = %170, %116
%121 = phi i8 [ %87, %116 ], [ %171, %170 ]
%122 = phi i8 [ %88, %116 ], [ %172, %170 ]
%123 = phi i8 [ %89, %116 ], [ %173, %170 ]
%124 = phi i8 [ %90, %116 ], [ %174, %170 ]
%125 = phi i8 [ %91, %116 ], [ %175, %170 ]
%126 = phi i8 [ %92, %116 ], [ %176, %170 ]
%127 = phi i8 [ %93, %116 ], [ %177, %170 ]
%128 = phi i8 [ %94, %116 ], [ %178, %170 ]
%129 = phi i8 [ %95, %116 ], [ %179, %170 ]
%130 = icmp eq i8 %129, 32
%131 = load i32, i32* %2
%132 = icmp eq i32 %131, 0
%133 = select i1 %130, i1 %132, i1 false
br i1 %133, label %170, label %134
134: ; preds = %120
%135 = icmp eq i8 %128, 32
%136 = icmp eq i32 %131, 1
%137 = select i1 %135, i1 %136, i1 false
br i1 %137, label %170, label %138
138: ; preds = %134
%139 = icmp eq i8 %127, 32
%140 = icmp eq i32 %131, 2
%141 = select i1 %139, i1 %140, i1 false
br i1 %141, label %170, label %142
142: ; preds = %138
%143 = icmp eq i8 %126, 32
%144 = icmp eq i32 %131, 10
%145 = select i1 %143, i1 %144, i1 false
br i1 %145, label %170, label %146
146: ; preds = %142
%147 = icmp eq i8 %125, 32
%148 = icmp eq i32 %131, 11
%149 = select i1 %147, i1 %148, i1 false
br i1 %149, label %170, label %150
150: ; preds = %146
%151 = icmp eq i8 %124, 32
%152 = icmp eq i32 %131, 12
%153 = select i1 %151, i1 %152, i1 false
br i1 %153, label %170, label %154
154: ; preds = %150
%155 = icmp eq i8 %123, 32
%156 = icmp eq i32 %131, 20
%157 = select i1 %155, i1 %156, i1 false
br i1 %157, label %170, label %158
158: ; preds = %154
%159 = icmp eq i8 %122, 32
%160 = icmp eq i32 %131, 21
%161 = select i1 %159, i1 %160, i1 false
br i1 %161, label %170, label %162
162: ; preds = %158
%163 = icmp eq i8 %121, 32
%164 = icmp eq i32 %131, 22
%165 = select i1 %163, i1 %164, i1 false
br i1 %165, label %170, label %166
166: ; preds = %162
%167 = call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([19 x i8], [19 x i8]* @str.25, i64 0, i64 0))
%168 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([28 x i8], [28 x i8]* @.str.8, i64 0, i64 0))
%169 = call i32 (i8*, ...) @scanf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.9, i64 0, i64 0), i32* %2)
br label %170
170: ; preds = %162, %158, %154, %150, %146, %142, %138, %134, %120, %166
%171 = phi i8 [ %121, %166 ], [ %121, %120 ], [ %121, %134 ], [ %121, %138 ], [ %121, %142 ], [ %121, %146 ], [ %121, %150 ], [ %121, %154 ], [ %121, %158 ], [ 79, %162 ]
%172 = phi i8 [ %122, %166 ], [ %122, %120 ], [ %122, %134 ], [ %122, %138 ], [ %122, %142 ], [ %122, %146 ], [ %122, %150 ], [ %122, %154 ], [ 79, %158 ], [ %122, %162 ]
%173 = phi i8 [ %123, %166 ], [ %123, %120 ], [ %123, %134 ], [ %123, %138 ], [ %123, %142 ], [ %123, %146 ], [ %123, %150 ], [ 79, %154 ], [ %123, %158 ], [ %123, %162 ]
%174 = phi i8 [ %124, %166 ], [ %124, %120 ], [ %124, %134 ], [ %124, %138 ], [ %124, %142 ], [ %124, %146 ], [ 79, %150 ], [ %124, %154 ], [ %124, %158 ], [ %124, %162 ]
%175 = phi i8 [ %125, %166 ], [ %125, %120 ], [ %125, %134 ], [ %125, %138 ], [ %125, %142 ], [ 79, %146 ], [ %125, %150 ], [ %125, %154 ], [ %125, %158 ], [ %125, %162 ]
%176 = phi i8 [ %126, %166 ], [ %126, %120 ], [ %126, %134 ], [ %126, %138 ], [ 79, %142 ], [ %126, %146 ], [ %126, %150 ], [ %126, %154 ], [ %126, %158 ], [ %126, %162 ]
%177 = phi i8 [ %127, %166 ], [ %127, %120 ], [ %127, %134 ], [ 79, %138 ], [ %127, %142 ], [ %127, %146 ], [ %127, %150 ], [ %127, %154 ], [ %127, %158 ], [ %127, %162 ]
%178 = phi i8 [ %128, %166 ], [ %128, %120 ], [ 79, %134 ], [ %128, %138 ], [ %128, %142 ], [ %128, %146 ], [ %128, %150 ], [ %128, %154 ], [ %128, %158 ], [ %128, %162 ]
%179 = phi i8 [ %129, %166 ], [ 79, %120 ], [ %129, %134 ], [ %129, %138 ], [ %129, %142 ], [ %129, %146 ], [ %129, %150 ], [ %129, %154 ], [ %129, %158 ], [ %129, %162 ]
%180 = phi i1 [ false, %166 ], [ true, %120 ], [ true, %134 ], [ true, %138 ], [ true, %142 ], [ true, %146 ], [ true, %150 ], [ true, %154 ], [ true, %158 ], [ true, %162 ]
%181 = call i32 (i8*, ...) bitcast (i32 (...)* @system to i32 (i8*, ...)*)(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.11, i64 0, i64 0))
%182 = call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([16 x i8], [16 x i8]* @str.26, i64 0, i64 0))
%183 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([9 x i8], [9 x i8]* @.str.1, i64 0, i64 0))
%184 = zext i8 %179 to i32
%185 = zext i8 %178 to i32
%186 = zext i8 %177 to i32
%187 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([16 x i8], [16 x i8]* @.str.2, i64 0, i64 0), i32 %184, i32 %185, i32 %186)
%188 = call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([14 x i8], [14 x i8]* @str.37, i64 0, i64 0))
%189 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([9 x i8], [9 x i8]* @.str.4, i64 0, i64 0))
%190 = zext i8 %176 to i32
%191 = zext i8 %175 to i32
%192 = zext i8 %174 to i32
%193 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([16 x i8], [16 x i8]* @.str.2, i64 0, i64 0), i32 %190, i32 %191, i32 %192)
%194 = call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([14 x i8], [14 x i8]* @str.37, i64 0, i64 0))
%195 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([9 x i8], [9 x i8]* @.str.5, i64 0, i64 0))
%196 = zext i8 %173 to i32
%197 = zext i8 %172 to i32
%198 = zext i8 %171 to i32
%199 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([17 x i8], [17 x i8]* @.str.6, i64 0, i64 0), i32 %196, i32 %197, i32 %198)
br i1 %180, label %200, label %120
200: ; preds = %170
%201 = call i32 (i8*, ...) bitcast (i32 (...)* @system to i32 (i8*, ...)*)(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.11, i64 0, i64 0))
%202 = icmp eq i8 %179, 88
%203 = icmp eq i8 %178, 88
%204 = select i1 %202, i1 %203, i1 false
%205 = icmp eq i8 %177, 88
%206 = select i1 %204, i1 %205, i1 false
br i1 %206, label %285, label %207
207: ; preds = %200
%208 = icmp eq i8 %176, 88
%209 = icmp eq i8 %175, 88
%210 = select i1 %208, i1 %209, i1 false
%211 = icmp eq i8 %174, 88
%212 = select i1 %210, i1 %211, i1 false
br i1 %212, label %285, label %213
213: ; preds = %207
%214 = icmp eq i8 %173, 88
%215 = icmp eq i8 %172, 88
%216 = select i1 %214, i1 %215, i1 false
%217 = icmp eq i8 %171, 88
%218 = select i1 %216, i1 %217, i1 false
br i1 %218, label %285, label %219
219: ; preds = %213
%220 = select i1 %202, i1 %208, i1 false
%221 = select i1 %220, i1 %214, i1 false
br i1 %221, label %285, label %222
222: ; preds = %219
%223 = select i1 %203, i1 %209, i1 false
%224 = select i1 %223, i1 %215, i1 false
br i1 %224, label %285, label %225
225: ; preds = %222
%226 = select i1 %205, i1 %211, i1 false
%227 = select i1 %226, i1 %217, i1 false
br i1 %227, label %285, label %228
228: ; preds = %225
%229 = select i1 %202, i1 %209, i1 false
%230 = select i1 %229, i1 %217, i1 false
br i1 %230, label %285, label %231
231: ; preds = %228
%232 = select i1 %205, i1 %209, i1 false
%233 = select i1 %232, i1 %214, i1 false
br i1 %233, label %285, label %234
234: ; preds = %231
%235 = icmp eq i8 %179, 79
%236 = icmp eq i8 %178, 79
%237 = select i1 %235, i1 %236, i1 false
%238 = icmp eq i8 %177, 79
%239 = select i1 %237, i1 %238, i1 false
br i1 %239, label %285, label %240
240: ; preds = %234
%241 = icmp eq i8 %176, 79
%242 = icmp eq i8 %175, 79
%243 = select i1 %241, i1 %242, i1 false
%244 = icmp eq i8 %174, 79
%245 = select i1 %243, i1 %244, i1 false
br i1 %245, label %285, label %246
246: ; preds = %240
%247 = icmp eq i8 %173, 79
%248 = icmp eq i8 %172, 79
%249 = select i1 %247, i1 %248, i1 false
%250 = icmp eq i8 %171, 79
%251 = select i1 %249, i1 %250, i1 false
br i1 %251, label %285, label %252
252: ; preds = %246
%253 = select i1 %235, i1 %241, i1 false
%254 = select i1 %253, i1 %247, i1 false
br i1 %254, label %285, label %255
255: ; preds = %252
%256 = select i1 %236, i1 %242, i1 false
%257 = select i1 %256, i1 %248, i1 false
br i1 %257, label %285, label %258
258: ; preds = %255
%259 = select i1 %238, i1 %244, i1 false
%260 = select i1 %259, i1 %250, i1 false
br i1 %260, label %285, label %261
261: ; preds = %258
%262 = select i1 %235, i1 %242, i1 false
%263 = select i1 %262, i1 %250, i1 false
br i1 %263, label %285, label %264
264: ; preds = %261
%265 = select i1 %238, i1 %242, i1 false
%266 = select i1 %265, i1 %247, i1 false
br i1 %266, label %285, label %267
267: ; preds = %264
%268 = icmp ne i8 %179, 32
%269 = icmp ne i8 %178, 32
%270 = select i1 %268, i1 %269, i1 false
%271 = icmp ne i8 %177, 32
%272 = select i1 %270, i1 %271, i1 false
%273 = icmp ne i8 %176, 32
%274 = select i1 %272, i1 %273, i1 false
%275 = icmp ne i8 %175, 32
%276 = select i1 %274, i1 %275, i1 false
%277 = icmp ne i8 %174, 32
%278 = select i1 %276, i1 %277, i1 false
%279 = icmp ne i8 %173, 32
%280 = select i1 %278, i1 %279, i1 false
%281 = icmp ne i8 %172, 32
%282 = select i1 %280, i1 %281, i1 false
%283 = icmp ne i8 %171, 32
%284 = select i1 %282, i1 %283, i1 false
br i1 %284, label %285, label %5
285: ; preds = %267, %234, %240, %246, %252, %255, %258, %261, %264, %200, %207, %213, %219, %222, %225, %228, %231
%286 = phi i8* [ getelementptr inbounds ([21 x i8], [21 x i8]* @.str.13, i64 0, i64 0), %231 ], [ getelementptr inbounds ([21 x i8], [21 x i8]* @.str.13, i64 0, i64 0), %228 ], [ getelementptr inbounds ([21 x i8], [21 x i8]* @.str.13, i64 0, i64 0), %225 ], [ getelementptr inbounds ([21 x i8], [21 x i8]* @.str.13, i64 0, i64 0), %222 ], [ getelementptr inbounds ([21 x i8], [21 x i8]* @.str.13, i64 0, i64 0), %219 ], [ getelementptr inbounds ([21 x i8], [21 x i8]* @.str.13, i64 0, i64 0), %213 ], [ getelementptr inbounds ([21 x i8], [21 x i8]* @.str.13, i64 0, i64 0), %207 ], [ getelementptr inbounds ([21 x i8], [21 x i8]* @.str.13, i64 0, i64 0), %200 ], [ getelementptr inbounds ([21 x i8], [21 x i8]* @.str.15, i64 0, i64 0), %264 ], [ getelementptr inbounds ([21 x i8], [21 x i8]* @.str.15, i64 0, i64 0), %261 ], [ getelementptr inbounds ([21 x i8], [21 x i8]* @.str.15, i64 0, i64 0), %258 ], [ getelementptr inbounds ([21 x i8], [21 x i8]* @.str.15, i64 0, i64 0), %255 ], [ getelementptr inbounds ([21 x i8], [21 x i8]* @.str.15, i64 0, i64 0), %252 ], [ getelementptr inbounds ([21 x i8], [21 x i8]* @.str.15, i64 0, i64 0), %246 ], [ getelementptr inbounds ([21 x i8], [21 x i8]* @.str.15, i64 0, i64 0), %240 ], [ getelementptr inbounds ([21 x i8], [21 x i8]* @.str.15, i64 0, i64 0), %234 ], [ getelementptr inbounds ([30 x i8], [30 x i8]* @.str.16, i64 0, i64 0), %267 ]
%287 = phi i8* [ getelementptr inbounds ([17 x i8], [17 x i8]* @str.35, i64 0, i64 0), %231 ], [ getelementptr inbounds ([17 x i8], [17 x i8]* @str.35, i64 0, i64 0), %228 ], [ getelementptr inbounds ([17 x i8], [17 x i8]* @str.35, i64 0, i64 0), %225 ], [ getelementptr inbounds ([17 x i8], [17 x i8]* @str.35, i64 0, i64 0), %222 ], [ getelementptr inbounds ([17 x i8], [17 x i8]* @str.35, i64 0, i64 0), %219 ], [ getelementptr inbounds ([17 x i8], [17 x i8]* @str.35, i64 0, i64 0), %213 ], [ getelementptr inbounds ([17 x i8], [17 x i8]* @str.35, i64 0, i64 0), %207 ], [ getelementptr inbounds ([17 x i8], [17 x i8]* @str.35, i64 0, i64 0), %200 ], [ getelementptr inbounds ([17 x i8], [17 x i8]* @str.35, i64 0, i64 0), %264 ], [ getelementptr inbounds ([17 x i8], [17 x i8]* @str.35, i64 0, i64 0), %261 ], [ getelementptr inbounds ([17 x i8], [17 x i8]* @str.35, i64 0, i64 0), %258 ], [ getelementptr inbounds ([17 x i8], [17 x i8]* @str.35, i64 0, i64 0), %255 ], [ getelementptr inbounds ([17 x i8], [17 x i8]* @str.35, i64 0, i64 0), %252 ], [ getelementptr inbounds ([17 x i8], [17 x i8]* @str.35, i64 0, i64 0), %246 ], [ getelementptr inbounds ([17 x i8], [17 x i8]* @str.35, i64 0, i64 0), %240 ], [ getelementptr inbounds ([17 x i8], [17 x i8]* @str.35, i64 0, i64 0), %234 ], [ getelementptr inbounds ([17 x i8], [17 x i8]* @str.35, i64 0, i64 0), %267 ]
%288 = phi i8* [ getelementptr inbounds ([14 x i8], [14 x i8]* @str.37, i64 0, i64 0), %231 ], [ getelementptr inbounds ([14 x i8], [14 x i8]* @str.37, i64 0, i64 0), %228 ], [ getelementptr inbounds ([14 x i8], [14 x i8]* @str.37, i64 0, i64 0), %225 ], [ getelementptr inbounds ([14 x i8], [14 x i8]* @str.37, i64 0, i64 0), %222 ], [ getelementptr inbounds ([14 x i8], [14 x i8]* @str.37, i64 0, i64 0), %219 ], [ getelementptr inbounds ([14 x i8], [14 x i8]* @str.37, i64 0, i64 0), %213 ], [ getelementptr inbounds ([14 x i8], [14 x i8]* @str.37, i64 0, i64 0), %207 ], [ getelementptr inbounds ([14 x i8], [14 x i8]* @str.37, i64 0, i64 0), %200 ], [ getelementptr inbounds ([14 x i8], [14 x i8]* @str.37, i64 0, i64 0), %264 ], [ getelementptr inbounds ([14 x i8], [14 x i8]* @str.37, i64 0, i64 0), %261 ], [ getelementptr inbounds ([14 x i8], [14 x i8]* @str.37, i64 0, i64 0), %258 ], [ getelementptr inbounds ([14 x i8], [14 x i8]* @str.37, i64 0, i64 0), %255 ], [ getelementptr inbounds ([14 x i8], [14 x i8]* @str.37, i64 0, i64 0), %252 ], [ getelementptr inbounds ([14 x i8], [14 x i8]* @str.37, i64 0, i64 0), %246 ], [ getelementptr inbounds ([14 x i8], [14 x i8]* @str.37, i64 0, i64 0), %240 ], [ getelementptr inbounds ([14 x i8], [14 x i8]* @str.37, i64 0, i64 0), %234 ], [ getelementptr inbounds ([14 x i8], [14 x i8]* @str.37, i64 0, i64 0), %267 ]
%289 = phi i8* [ getelementptr inbounds ([14 x i8], [14 x i8]* @str.37, i64 0, i64 0), %231 ], [ getelementptr inbounds ([14 x i8], [14 x i8]* @str.37, i64 0, i64 0), %228 ], [ getelementptr inbounds ([14 x i8], [14 x i8]* @str.37, i64 0, i64 0), %225 ], [ getelementptr inbounds ([14 x i8], [14 x i8]* @str.37, i64 0, i64 0), %222 ], [ getelementptr inbounds ([14 x i8], [14 x i8]* @str.37, i64 0, i64 0), %219 ], [ getelementptr inbounds ([14 x i8], [14 x i8]* @str.37, i64 0, i64 0), %213 ], [ getelementptr inbounds ([14 x i8], [14 x i8]* @str.37, i64 0, i64 0), %207 ], [ getelementptr inbounds ([14 x i8], [14 x i8]* @str.37, i64 0, i64 0), %200 ], [ getelementptr inbounds ([14 x i8], [14 x i8]* @str.37, i64 0, i64 0), %264 ], [ getelementptr inbounds ([14 x i8], [14 x i8]* @str.37, i64 0, i64 0), %261 ], [ getelementptr inbounds ([14 x i8], [14 x i8]* @str.37, i64 0, i64 0), %258 ], [ getelementptr inbounds ([14 x i8], [14 x i8]* @str.37, i64 0, i64 0), %255 ], [ getelementptr inbounds ([14 x i8], [14 x i8]* @str.37, i64 0, i64 0), %252 ], [ getelementptr inbounds ([14 x i8], [14 x i8]* @str.37, i64 0, i64 0), %246 ], [ getelementptr inbounds ([14 x i8], [14 x i8]* @str.37, i64 0, i64 0), %240 ], [ getelementptr inbounds ([14 x i8], [14 x i8]* @str.37, i64 0, i64 0), %234 ], [ getelementptr inbounds ([14 x i8], [14 x i8]* @str.37, i64 0, i64 0), %267 ]
%290 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) %286)
%291 = call i32 @puts(i8* dereferenceable(1) %287)
%292 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([9 x i8], [9 x i8]* @.str.1, i64 0, i64 0))
%293 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([16 x i8], [16 x i8]* @.str.2, i64 0, i64 0), i32 %184, i32 %185, i32 %186)
%294 = call i32 @puts(i8* dereferenceable(1) %288)
%295 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([9 x i8], [9 x i8]* @.str.4, i64 0, i64 0))
%296 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([16 x i8], [16 x i8]* @.str.2, i64 0, i64 0), i32 %190, i32 %191, i32 %192)
%297 = call i32 @puts(i8* dereferenceable(1) %289)
%298 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([9 x i8], [9 x i8]* @.str.5, i64 0, i64 0))
%299 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([17 x i8], [17 x i8]* @.str.6, i64 0, i64 0), i32 %196, i32 %197, i32 %198)
ret void
}