#define NULL ((void *)0)
typedef unsigned long size_t; // Customize by platform.
typedef long intptr_t;
typedef unsigned long uintptr_t;
typedef long scalar_t__; // Either arithmetic or pointer type.
/* By default, we understand bool (as a convenience). */
typedef int bool;
#define false 0
#define true 1

/* Forward declarations */

/* Type definitions */

/* Variables and functions */
int /*<<< orphan*/ GerarBarco(int **);
int /*<<< orphan*/ Tela(int **, int **, int, int);
int /*<<< orphan*/ Tiro(int **, int **, int *);
int /*<<< orphan*/ ZerarMatriz(int **, int **);
int /*<<< orphan*/ getchar();
int /*<<< orphan*/ printf(char *);
int /*<<< orphan*/ scanf(char *, char *);
int /*<<< orphan*/ srand(int /*<<< orphan*/);
int /*<<< orphan*/ system(char *);
int /*<<< orphan*/ time(int /*<<< orphan*/ *);
int main() {
  int P1[6][8], P2[6][8], P1Tela[6][8], P2Tela[6][8];
  int P1Ponto, P2Ponto;
  int i, j;
  char Jogar = 's';
  srand(time(NULL));
  printf(
      " ____        _        _ _             _   _                  _\n| __ )  "
      "__ _| |_ __ _| | |__   __ _  | \\ | | __ ___   ____ _| |\n| \\_ \\ / _` "
      "| __/ _` | | '_ \\ / _` | |  \\| |/ _` \\ \\ / / _` | |\n| |_) | (_| | "
      "|_ (_| | | | | | (_| | | |\\  | (_| |\\ V / (_| | |\n|____/ "
      "\\__,_|\\__\\__,_|_|_| |_|\\__,_| |_| \\_|\\__,_| \\_/ \\__,_|_|\n");
  printf("\t\tAperte enter para jogar...");
  getchar();
  system("clear||cls");
  while ((Jogar == 's') || (Jogar == 'S')) {
    P1Ponto = 0;
    P2Ponto = 0;
    ZerarMatriz(P1, P2);
    ZerarMatriz(P1Tela, P2Tela);
    GerarBarco(P1);
    GerarBarco(P2);
    while ((P1Ponto != 10) && (P2Ponto != 10)) {
      system("clear||cls");
      Tela(P1Tela, P2Tela, P1Ponto, P2Ponto);
      printf("\t\t Jogador 1");
      Tiro(P2, P2Tela, &P1Ponto);
      system("clear||cls");
      if (P1Ponto != 10) {
        Tela(P1Tela, P2Tela, P1Ponto, P2Ponto);
        printf("\t\t Jogador 2\n");
        Tiro(P1, P1Tela, &P2Ponto);
      }
    }
    system("clear || cls");
    if (P1Ponto == 10) {
      printf("\n\n!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!PLAYER 1 GANHOU "
             "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n\n");
    } else {
      printf("\n\n!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!PLAYER 2 GANHOU "
             "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n\n");
    }
    printf("\n\tQuer jogar de novo?(S/N)\n");
    scanf("%c", &Jogar);
  }
  return 0;
}


x86 assembly (clang, -O0):
<main>:
push   %rbp
mov    %rsp,%rbp
sub    $0x330,%rsp
movl   $0x0,-0x4(%rbp)
movb   $0x73,-0x321(%rbp)
xor    %eax,%eax
mov    %eax,%edi
call   1090 <time@plt>
mov    %eax,%edi
call   1060 <srand@plt>
lea    0xe30(%rip),%rdi
call   1050 <printf@plt>
lea    0xf64(%rip),%rdi
call   1050 <printf@plt>
mov    $0x0,%al
call   1070 <getchar@plt>
lea    0xf6e(%rip),%rdi
call   1040 <system@plt>
movsbl -0x321(%rbp),%ecx
mov    $0x1,%al
cmp    $0x73,%ecx
mov    %al,-0x322(%rbp)
je     121f <main+0x7f>
movsbl -0x321(%rbp),%eax
cmp    $0x53,%eax
sete   %al
mov    %al,-0x322(%rbp)
mov    -0x322(%rbp),%al
test   $0x1,%al
jne    1232 <main+0x92>
jmp    13ca <main+0x22a>
movl   $0x0,-0x314(%rbp)
movl   $0x0,-0x318(%rbp)
lea    -0xd0(%rbp),%rdi
lea    -0x190(%rbp),%rsi
call   1080 <ZerarMatriz@plt>
lea    -0x250(%rbp),%rdi
lea    -0x310(%rbp),%rsi
call   1080 <ZerarMatriz@plt>
lea    -0xd0(%rbp),%rdi
call   10c0 <GerarBarco@plt>
lea    -0x190(%rbp),%rdi
call   10c0 <GerarBarco@plt>
xor    %eax,%eax
cmpl   $0xa,-0x314(%rbp)
mov    %al,-0x323(%rbp)
je     12a9 <main+0x109>
cmpl   $0xa,-0x318(%rbp)
setne  %al
mov    %al,-0x323(%rbp)
mov    -0x323(%rbp),%al
test   $0x1,%al
jne    12bc <main+0x11c>
jmp    1370 <main+0x1d0>
lea    0xe9a(%rip),%rdi
call   1040 <system@plt>
lea    -0x250(%rbp),%rdi
lea    -0x310(%rbp),%rsi
mov    -0x314(%rbp),%edx
mov    -0x318(%rbp),%ecx
call   10a0 <Tela@plt>
lea    0xe7a(%rip),%rdi
call   1050 <printf@plt>
lea    -0x190(%rbp),%rdi
lea    -0x310(%rbp),%rsi
lea    -0x314(%rbp),%rdx
call   1030 <Tiro@plt>
lea    0xe49(%rip),%rdi
call   1040 <system@plt>
cmpl   $0xa,-0x314(%rbp)
je     136b <main+0x1cb>
lea    -0x250(%rbp),%rdi
lea    -0x310(%rbp),%rsi
mov    -0x314(%rbp),%edx
mov    -0x318(%rbp),%ecx
call   10a0 <Tela@plt>
lea    0xe29(%rip),%rdi
call   1050 <printf@plt>
lea    -0xd0(%rbp),%rdi
lea    -0x250(%rbp),%rsi
lea    -0x318(%rbp),%rdx
call   1030 <Tiro@plt>
jmp    1284 <main+0xe4>
lea    0xe0c(%rip),%rdi
call   1040 <system@plt>
cmpl   $0xa,-0x314(%rbp)
jne    139a <main+0x1fa>
lea    0xe00(%rip),%rdi
call   1050 <printf@plt>
jmp    13a6 <main+0x206>
lea    0xe50(%rip),%rdi
call   1050 <printf@plt>
lea    0xea5(%rip),%rdi
call   1050 <printf@plt>
lea    0xeb5(%rip),%rdi
lea    -0x321(%rbp),%rsi
call   10b0 <scanf@plt>
jmp    11f4 <main+0x54>
xor    %eax,%eax
add    $0x330,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<main>:
push   %rbp
push   %r15
push   %r14
push   %r13
push   %r12
push   %rbx
sub    $0x318,%rsp
movb   $0x73,0x7(%rsp)
xor    %edi,%edi
call   10a0 <time@plt>
mov    %eax,%edi
call   1070 <srand@plt>
lea    0xe6a(%rip),%rdi
call   1040 <puts@plt>
lea    0xe19(%rip),%rdi
call   1060 <printf@plt>
xor    %eax,%eax
call   1080 <getchar@plt>
lea    0xe23(%rip),%r12
mov    %r12,%rdi
call   1050 <system@plt>
lea    0x250(%rsp),%r14
lea    0x190(%rsp),%r15
lea    0xd0(%rsp),%r13
lea    0x10(%rsp),%rbx
lea    0x8(%rsp),%rbp
jmp    1283 <main+0xd3>
cs nopw 0x0(%rax,%rax,1)
lea    0xdfe(%rip),%rdi
call   1050 <system@plt>
cmpl   $0xa,0x8(%rsp)
lea    0xf3c(%rip),%rdi
lea    0xfb0(%rip),%rax
cmove  %rax,%rdi
call   1040 <puts@plt>
lea    0xf85(%rip),%rdi
call   1040 <puts@plt>
lea    0xdd7(%rip),%rdi
lea    0x7(%rsp),%rsi
call   10c0 <scanf@plt>
mov    0x7(%rsp),%al
and    $0xdf,%al
cmp    $0x53,%al
jne    1360 <main+0x1b0>
movl   $0x0,0x8(%rsp)
movl   $0x0,0xc(%rsp)
mov    %r14,%rdi
mov    %r15,%rsi
call   1090 <ZerarMatriz@plt>
mov    %r13,%rdi
mov    %rbx,%rsi
call   1090 <ZerarMatriz@plt>
mov    %r14,%rdi
call   10d0 <GerarBarco@plt>
mov    %r15,%rdi
call   10d0 <GerarBarco@plt>
cmpl   $0xa,0x8(%rsp)
je     1230 <main+0x80>
cs nopw 0x0(%rax,%rax,1)
xchg   %ax,%ax
cmpl   $0xa,0xc(%rsp)
je     1230 <main+0x80>
mov    %r12,%rdi
call   1050 <system@plt>
mov    0x8(%rsp),%edx
mov    0xc(%rsp),%ecx
mov    %r13,%rdi
mov    %rbx,%rsi
call   10b0 <Tela@plt>
lea    0xd2b(%rip),%rdi
call   1060 <printf@plt>
mov    %r15,%rdi
mov    %rbx,%rsi
mov    %rbp,%rdx
call   1030 <Tiro@plt>
mov    %r12,%rdi
call   1050 <system@plt>
mov    0x8(%rsp),%edx
cmp    $0xa,%edx
je     1230 <main+0x80>
mov    0xc(%rsp),%ecx
mov    %r13,%rdi
mov    %rbx,%rsi
call   10b0 <Tela@plt>
lea    0xf24(%rip),%rdi
call   1040 <puts@plt>
mov    %r14,%rdi
mov    %r13,%rsi
lea    0xc(%rsp),%rdx
call   1030 <Tiro@plt>
cmpl   $0xa,0x8(%rsp)
jne    12d0 <main+0x120>
jmp    1230 <main+0x80>
xor    %eax,%eax
add    $0x318,%rsp
pop    %rbx
pop    %r12
pop    %r13
pop    %r14
pop    %r15
pop    %rbp
ret

LLVM IR (-O0):
@.str = [320 x i8] c" ____ _ _ _ _ _ _\0A| __ ) __ _| |_ __ _| | |__ __ _ | \\ | | __ ___ ____ _| |\0A| \\_ \\ / _` | __/ _` | | '_ \\ / _` | | \\| |/ _` \\ \\ / / _` | |\0A| |_) | (_| | |_ (_| | | | | | (_| | | |\\ | (_| |\\ V / (_| | |\0A|____/ \\__,_|\\__\\__,_|_|_| |_|\\__,_| |_| \\_|\\__,_| \\_/ \\__,_|_|\0A\00"
@.str.1 = [29 x i8] c"\09\09Aperte enter para jogar...\00"
@.str.2 = [11 x i8] c"clear||cls\00"
@.str.3 = [13 x i8] c"\09\09 Jogador 1\00"
@.str.4 = [14 x i8] c"\09\09 Jogador 2\0A\00"
@.str.5 = [13 x i8] c"clear || cls\00"
@.str.6 = [97 x i8] c"\0A\0A!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!PLAYER 1 GANHOU !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\0A\0A\00"
@.str.7 = [97 x i8] c"\0A\0A!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!PLAYER 2 GANHOU !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\0A\0A\00"
@.str.8 = [28 x i8] c"\0A\09Quer jogar de novo?(S/N)\0A\00"
@.str.9 = [3 x i8] c"%c\00"
define i32 @main() {
%1 = alloca i32
%2 = alloca [6 x [8 x i32]]
%3 = alloca [6 x [8 x i32]]
%4 = alloca [6 x [8 x i32]]
%5 = alloca [6 x [8 x i32]]
%6 = alloca i32
%7 = alloca i32
%8 = alloca i32
%9 = alloca i32
%10 = alloca i8
store i32 0, i32* %1
store i8 115, i8* %10
%11 = call i32 @time(i32* null)
%12 = call i32 @srand(i32 %11)
%13 = call i32 @printf(i8* getelementptr inbounds ([320 x i8], [320 x i8]* @.str, i64 0, i64 0))
%14 = call i32 @printf(i8* getelementptr inbounds ([29 x i8], [29 x i8]* @.str.1, i64 0, i64 0))
%15 = call i32 (...) @getchar()
%16 = call i32 @system(i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str.2, i64 0, i64 0))
br label %17
17: ; preds = %93, %0
%18 = load i8, i8* %10
%19 = sext i8 %18 to i32
%20 = icmp eq i32 %19, 115
br i1 %20, label %25, label %21
21: ; preds = %17
%22 = load i8, i8* %10
%23 = sext i8 %22 to i32
%24 = icmp eq i32 %23, 83
br label %25
25: ; preds = %21, %17
%26 = phi i1 [ true, %17 ], [ %24, %21 ]
br i1 %26, label %27, label %96
27: ; preds = %25
store i32 0, i32* %6
store i32 0, i32* %7
%28 = getelementptr inbounds [6 x [8 x i32]], [6 x [8 x i32]]* %2, i64 0, i64 0
%29 = bitcast [8 x i32]* %28 to i32**
%30 = getelementptr inbounds [6 x [8 x i32]], [6 x [8 x i32]]* %3, i64 0, i64 0
%31 = bitcast [8 x i32]* %30 to i32**
%32 = call i32 @ZerarMatriz(i32** %29, i32** %31)
%33 = getelementptr inbounds [6 x [8 x i32]], [6 x [8 x i32]]* %4, i64 0, i64 0
%34 = bitcast [8 x i32]* %33 to i32**
%35 = getelementptr inbounds [6 x [8 x i32]], [6 x [8 x i32]]* %5, i64 0, i64 0
%36 = bitcast [8 x i32]* %35 to i32**
%37 = call i32 @ZerarMatriz(i32** %34, i32** %36)
%38 = getelementptr inbounds [6 x [8 x i32]], [6 x [8 x i32]]* %2, i64 0, i64 0
%39 = bitcast [8 x i32]* %38 to i32**
%40 = call i32 @GerarBarco(i32** %39)
%41 = getelementptr inbounds [6 x [8 x i32]], [6 x [8 x i32]]* %3, i64 0, i64 0
%42 = bitcast [8 x i32]* %41 to i32**
%43 = call i32 @GerarBarco(i32** %42)
br label %44
44: ; preds = %84, %27
%45 = load i32, i32* %6
%46 = icmp ne i32 %45, 10
br i1 %46, label %47, label %50
47: ; preds = %44
%48 = load i32, i32* %7
%49 = icmp ne i32 %48, 10
br label %50
50: ; preds = %47, %44
%51 = phi i1 [ false, %44 ], [ %49, %47 ]
br i1 %51, label %52, label %85
52: ; preds = %50
%53 = call i32 @system(i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str.2, i64 0, i64 0))
%54 = getelementptr inbounds [6 x [8 x i32]], [6 x [8 x i32]]* %4, i64 0, i64 0
%55 = bitcast [8 x i32]* %54 to i32**
%56 = getelementptr inbounds [6 x [8 x i32]], [6 x [8 x i32]]* %5, i64 0, i64 0
%57 = bitcast [8 x i32]* %56 to i32**
%58 = load i32, i32* %6
%59 = load i32, i32* %7
%60 = call i32 @Tela(i32** %55, i32** %57, i32 %58, i32 %59)
%61 = call i32 @printf(i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.3, i64 0, i64 0))
%62 = getelementptr inbounds [6 x [8 x i32]], [6 x [8 x i32]]* %3, i64 0, i64 0
%63 = bitcast [8 x i32]* %62 to i32**
%64 = getelementptr inbounds [6 x [8 x i32]], [6 x [8 x i32]]* %5, i64 0, i64 0
%65 = bitcast [8 x i32]* %64 to i32**
%66 = call i32 @Tiro(i32** %63, i32** %65, i32* %6)
%67 = call i32 @system(i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str.2, i64 0, i64 0))
%68 = load i32, i32* %6
%69 = icmp ne i32 %68, 10
br i1 %69, label %70, label %84
70: ; preds = %52
%71 = getelementptr inbounds [6 x [8 x i32]], [6 x [8 x i32]]* %4, i64 0, i64 0
%72 = bitcast [8 x i32]* %71 to i32**
%73 = getelementptr inbounds [6 x [8 x i32]], [6 x [8 x i32]]* %5, i64 0, i64 0
%74 = bitcast [8 x i32]* %73 to i32**
%75 = load i32, i32* %6
%76 = load i32, i32* %7
%77 = call i32 @Tela(i32** %72, i32** %74, i32 %75, i32 %76)
%78 = call i32 @printf(i8* getelementptr inbounds ([14 x i8], [14 x i8]* @.str.4, i64 0, i64 0))
%79 = getelementptr inbounds [6 x [8 x i32]], [6 x [8 x i32]]* %2, i64 0, i64 0
%80 = bitcast [8 x i32]* %79 to i32**
%81 = getelementptr inbounds [6 x [8 x i32]], [6 x [8 x i32]]* %4, i64 0, i64 0
%82 = bitcast [8 x i32]* %81 to i32**
%83 = call i32 @Tiro(i32** %80, i32** %82, i32* %7)
br label %84
84: ; preds = %70, %52
br label %44
85: ; preds = %50
%86 = call i32 @system(i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.5, i64 0, i64 0))
%87 = load i32, i32* %6
%88 = icmp eq i32 %87, 10
br i1 %88, label %89, label %91
89: ; preds = %85
%90 = call i32 @printf(i8* getelementptr inbounds ([97 x i8], [97 x i8]* @.str.6, i64 0, i64 0))
br label %93
91: ; preds = %85
%92 = call i32 @printf(i8* getelementptr inbounds ([97 x i8], [97 x i8]* @.str.7, i64 0, i64 0))
br label %93
93: ; preds = %91, %89
%94 = call i32 @printf(i8* getelementptr inbounds ([28 x i8], [28 x i8]* @.str.8, i64 0, i64 0))
%95 = call i32 @scanf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.9, i64 0, i64 0), i8* %10)
br label %17
96: ; preds = %25
ret i32 0
}

LLVM IR (-O2):
@.str.1 = [29 x i8] c"\09\09Aperte enter para jogar...\00"
@.str.2 = [11 x i8] c"clear||cls\00"
@.str.3 = [13 x i8] c"\09\09 Jogador 1\00"
@.str.5 = [13 x i8] c"clear || cls\00"
@.str.9 = [3 x i8] c"%c\00"
@str = [319 x i8] c" ____ _ _ _ _ _ _\0A| __ ) __ _| |_ __ _| | |__ __ _ | \\ | | __ ___ ____ _| |\0A| \\_ \\ / _` | __/ _` | | '_ \\ / _` | | \\| |/ _` \\ \\ / / _` | |\0A| |_) | (_| | |_ (_| | | | | | (_| | | |\\ | (_| |\\ V / (_| | |\0A|____/ \\__,_|\\__\\__,_|_|_| |_|\\__,_| |_| \\_|\\__,_| \\_/ \\__,_|_|\00"
@str.10 = [96 x i8] c"\0A\0A!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!PLAYER 2 GANHOU !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\0A\00"
@str.11 = [27 x i8] c"\0A\09Quer jogar de novo?(S/N)\00"
@str.12 = [96 x i8] c"\0A\0A!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!PLAYER 1 GANHOU !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\0A\00"
@str.13 = [13 x i8] c"\09\09 Jogador 2\00"
define i32 @main() {
%1 = alloca [6 x [8 x i32]]
%2 = alloca [6 x [8 x i32]]
%3 = alloca [6 x [8 x i32]]
%4 = alloca [6 x [8 x i32]]
%5 = alloca i32
%6 = alloca i32
%7 = alloca i8
%8 = bitcast [6 x [8 x i32]]* %1 to i8*
%9 = bitcast [6 x [8 x i32]]* %2 to i8*
%10 = bitcast [6 x [8 x i32]]* %3 to i8*
%11 = bitcast [6 x [8 x i32]]* %4 to i8*
%12 = bitcast i32* %5 to i8*
%13 = bitcast i32* %6 to i8*
store i8 115, i8* %7
%14 = tail call i32 @time(i32* null)
%15 = tail call i32 @srand(i32 %14)
%16 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([319 x i8], [319 x i8]* @str, i64 0, i64 0))
%17 = tail call i32 @printf(i8* dereferenceable(1) getelementptr inbounds ([29 x i8], [29 x i8]* @.str.1, i64 0, i64 0))
%18 = tail call i32 (...) @getchar()
%19 = tail call i32 @system(i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str.2, i64 0, i64 0))
%20 = bitcast [6 x [8 x i32]]* %1 to i32**
%21 = bitcast [6 x [8 x i32]]* %2 to i32**
%22 = bitcast [6 x [8 x i32]]* %3 to i32**
%23 = bitcast [6 x [8 x i32]]* %4 to i32**
br label %24
24: ; preds = %0, %54
store i32 0, i32* %5
store i32 0, i32* %6
%25 = call i32 @ZerarMatriz(i32** %20, i32** %21)
%26 = call i32 @ZerarMatriz(i32** %22, i32** %23)
%27 = call i32 @GerarBarco(i32** %20)
%28 = call i32 @GerarBarco(i32** %21)
%29 = load i32, i32* %5
%30 = icmp ne i32 %29, 10
%31 = load i32, i32* %6
%32 = icmp ne i32 %31, 10
%33 = select i1 %30, i1 %32, i1 false
br i1 %33, label %34, label %54
34: ; preds = %24, %44
%35 = call i32 @system(i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str.2, i64 0, i64 0))
%36 = load i32, i32* %5
%37 = load i32, i32* %6
%38 = call i32 @Tela(i32** %22, i32** %23, i32 %36, i32 %37)
%39 = call i32 @printf(i8* dereferenceable(1) getelementptr inbounds ([13 x i8], [13 x i8]* @.str.3, i64 0, i64 0))
%40 = call i32 @Tiro(i32** %21, i32** %23, i32* %5)
%41 = call i32 @system(i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str.2, i64 0, i64 0))
%42 = load i32, i32* %5
%43 = icmp eq i32 %42, 10
br i1 %43, label %54, label %44
44: ; preds = %34
%45 = load i32, i32* %6
%46 = call i32 @Tela(i32** %22, i32** %23, i32 %42, i32 %45)
%47 = call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([13 x i8], [13 x i8]* @str.13, i64 0, i64 0))
%48 = call i32 @Tiro(i32** %20, i32** %22, i32* %6)
%49 = load i32, i32* %5
%50 = icmp ne i32 %49, 10
%51 = load i32, i32* %6
%52 = icmp ne i32 %51, 10
%53 = select i1 %50, i1 %52, i1 false
br i1 %53, label %34, label %54
54: ; preds = %34, %44, %24
%55 = call i32 @system(i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.5, i64 0, i64 0))
%56 = load i32, i32* %5
%57 = icmp eq i32 %56, 10
%58 = select i1 %57, i8* getelementptr inbounds ([96 x i8], [96 x i8]* @str.12, i64 0, i64 0), i8* getelementptr inbounds ([96 x i8], [96 x i8]* @str.10, i64 0, i64 0)
%59 = call i32 @puts(i8* dereferenceable(1) %58)
%60 = call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([27 x i8], [27 x i8]* @str.11, i64 0, i64 0))
%61 = call i32 @scanf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.9, i64 0, i64 0), i8* %7)
%62 = load i8, i8* %7
%63 = and i8 %62, -33
%64 = icmp eq i8 %63, 83
br i1 %64, label %24, label %65
65: ; preds = %54
ret i32 0
}