#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*/ printf(char *);
void fim(int *tabuleiro0, int *tabuleiro1, int *tabuleiro2, int *tabuleiro3,
         int *tabuleiro4, int *tabuleiro5, int *tabuleiro6, int *tabuleiro7,
         int *tabuleiro8, int *vencedor) {
  if (*tabuleiro0 == 1 && *tabuleiro1 == 1 && *tabuleiro2 == 1) {
    *vencedor = 1;
    printf("\nX ganhou ! ! ! \n");
  }
  if (*tabuleiro3 == 1 && *tabuleiro4 == 1 && *tabuleiro5 == 1) {
    *vencedor = 1;
    printf("\nX ganhou ! ! ! \n");
  }
  if (*tabuleiro6 == 1 && *tabuleiro7 == 1 && *tabuleiro8 == 1) {
    *vencedor = 1;
    printf("\nX ganhou ! ! ! \n");
  }
  if (*tabuleiro0 == 1 && *tabuleiro3 == 1 && *tabuleiro6 == 1) {
    *vencedor = 1;
    printf("\nX ganhou ! ! ! \n");
  }
  if (*tabuleiro1 == 1 && *tabuleiro4 == 1 && *tabuleiro7 == 1) {
    *vencedor = 1;
    printf("\nX ganhou ! ! ! \n");
  }
  if (*tabuleiro2 == 1 && *tabuleiro5 == 1 && *tabuleiro8 == 1) {
    *vencedor = 1;
    printf("\nX ganhou ! ! ! \n");
  }
  if (*tabuleiro0 == 1 && *tabuleiro4 == 1 && *tabuleiro8 == 1) {
    *vencedor = 1;
    printf("\nX ganhou ! ! ! \n");
  }
  if (*tabuleiro2 == 1 && *tabuleiro4 == 1 && *tabuleiro6 == 1) {
    *vencedor = 1;
    printf("\nX ganhou ! ! ! \n");
  }
  if (*tabuleiro0 == -1 && *tabuleiro1 == -1 && *tabuleiro2 == -1) {
    *vencedor = -1;
    printf("\nO ganhou ! ! ! \n");
  }
  if (*tabuleiro3 == -1 && *tabuleiro4 == -1 && *tabuleiro5 == -1) {
    *vencedor = -1;
    printf("\nO ganhou ! ! ! \n");
  }
  if (*tabuleiro6 == -1 && *tabuleiro7 == -1 && *tabuleiro8 == -1) {
    *vencedor = -1;
    printf("\nO ganhou ! ! ! \n");
  }
  if (*tabuleiro0 == -1 && *tabuleiro3 == -1 && *tabuleiro6 == -1) {
    *vencedor = -1;
    printf("\nO ganhou ! ! ! \n");
  }
  if (*tabuleiro1 == -1 && *tabuleiro4 == -1 && *tabuleiro7 == -1) {
    *vencedor = -1;
    printf("\nO ganhou ! ! ! \n");
  }
  if (*tabuleiro2 == -1 && *tabuleiro5 == -1 && *tabuleiro8 == -1) {
    *vencedor = -1;
    printf("\nO ganhou ! ! ! \n");
  }
  if (*tabuleiro0 == -1 && *tabuleiro4 == -1 && *tabuleiro8 == -1) {
    *vencedor = -1;
    printf("\nO ganhou ! ! ! \n");
  }
  if (*tabuleiro2 == -1 && *tabuleiro4 == -1 && *tabuleiro6 == -1) {
    *vencedor = -1;
    printf("\nO ganhou ! ! ! \n");
  }
  if (*tabuleiro0 != 0 && *tabuleiro1 != 0 && *tabuleiro2 != 0 &&
      *tabuleiro3 != 0 && *tabuleiro4 != 0 && *tabuleiro5 != 0 &&
      *tabuleiro6 != 0 && *tabuleiro7 != 0 && *tabuleiro8 != 0 &&
      *vencedor == 0)
    printf("\nDeu Velha! ! ! Jogo empatou\n");
}


x86 assembly (clang, -O0):
<fim>:
push   %rbp
mov    %rsp,%rbp
sub    $0x30,%rsp
mov    0x28(%rbp),%rax
mov    0x20(%rbp),%rax
mov    0x18(%rbp),%rax
mov    0x10(%rbp),%rax
mov    %rdi,-0x8(%rbp)
mov    %rsi,-0x10(%rbp)
mov    %rdx,-0x18(%rbp)
mov    %rcx,-0x20(%rbp)
mov    %r8,-0x28(%rbp)
mov    %r9,-0x30(%rbp)
mov    -0x8(%rbp),%rax
cmpl   $0x1,(%rax)
jne    117d <fim+0x6d>
mov    -0x10(%rbp),%rax
cmpl   $0x1,(%rax)
jne    117d <fim+0x6d>
mov    -0x18(%rbp),%rax
cmpl   $0x1,(%rax)
jne    117d <fim+0x6d>
mov    0x28(%rbp),%rax
movl   $0x1,(%rax)
lea    0xe88(%rip),%rdi
call   1030 <printf@plt>
mov    -0x20(%rbp),%rax
cmpl   $0x1,(%rax)
jne    11ba <fim+0xaa>
mov    -0x28(%rbp),%rax
cmpl   $0x1,(%rax)
jne    11ba <fim+0xaa>
mov    -0x30(%rbp),%rax
cmpl   $0x1,(%rax)
jne    11ba <fim+0xaa>
mov    0x28(%rbp),%rax
movl   $0x1,(%rax)
lea    0xe4b(%rip),%rdi
call   1030 <printf@plt>
mov    0x10(%rbp),%rax
cmpl   $0x1,(%rax)
jne    11f7 <fim+0xe7>
mov    0x18(%rbp),%rax
cmpl   $0x1,(%rax)
jne    11f7 <fim+0xe7>
mov    0x20(%rbp),%rax
cmpl   $0x1,(%rax)
jne    11f7 <fim+0xe7>
mov    0x28(%rbp),%rax
movl   $0x1,(%rax)
lea    0xe0e(%rip),%rdi
call   1030 <printf@plt>
mov    -0x8(%rbp),%rax
cmpl   $0x1,(%rax)
jne    1234 <fim+0x124>
mov    -0x20(%rbp),%rax
cmpl   $0x1,(%rax)
jne    1234 <fim+0x124>
mov    0x10(%rbp),%rax
cmpl   $0x1,(%rax)
jne    1234 <fim+0x124>
mov    0x28(%rbp),%rax
movl   $0x1,(%rax)
lea    0xdd1(%rip),%rdi
call   1030 <printf@plt>
mov    -0x10(%rbp),%rax
cmpl   $0x1,(%rax)
jne    1271 <fim+0x161>
mov    -0x28(%rbp),%rax
cmpl   $0x1,(%rax)
jne    1271 <fim+0x161>
mov    0x18(%rbp),%rax
cmpl   $0x1,(%rax)
jne    1271 <fim+0x161>
mov    0x28(%rbp),%rax
movl   $0x1,(%rax)
lea    0xd94(%rip),%rdi
call   1030 <printf@plt>
mov    -0x18(%rbp),%rax
cmpl   $0x1,(%rax)
jne    12ae <fim+0x19e>
mov    -0x30(%rbp),%rax
cmpl   $0x1,(%rax)
jne    12ae <fim+0x19e>
mov    0x20(%rbp),%rax
cmpl   $0x1,(%rax)
jne    12ae <fim+0x19e>
mov    0x28(%rbp),%rax
movl   $0x1,(%rax)
lea    0xd57(%rip),%rdi
call   1030 <printf@plt>
mov    -0x8(%rbp),%rax
cmpl   $0x1,(%rax)
jne    12eb <fim+0x1db>
mov    -0x28(%rbp),%rax
cmpl   $0x1,(%rax)
jne    12eb <fim+0x1db>
mov    0x20(%rbp),%rax
cmpl   $0x1,(%rax)
jne    12eb <fim+0x1db>
mov    0x28(%rbp),%rax
movl   $0x1,(%rax)
lea    0xd1a(%rip),%rdi
call   1030 <printf@plt>
mov    -0x18(%rbp),%rax
cmpl   $0x1,(%rax)
jne    1328 <fim+0x218>
mov    -0x28(%rbp),%rax
cmpl   $0x1,(%rax)
jne    1328 <fim+0x218>
mov    0x10(%rbp),%rax
cmpl   $0x1,(%rax)
jne    1328 <fim+0x218>
mov    0x28(%rbp),%rax
movl   $0x1,(%rax)
lea    0xcdd(%rip),%rdi
call   1030 <printf@plt>
mov    -0x8(%rbp),%rax
cmpl   $0xffffffff,(%rax)
jne    1365 <fim+0x255>
mov    -0x10(%rbp),%rax
cmpl   $0xffffffff,(%rax)
jne    1365 <fim+0x255>
mov    -0x18(%rbp),%rax
cmpl   $0xffffffff,(%rax)
jne    1365 <fim+0x255>
mov    0x28(%rbp),%rax
movl   $0xffffffff,(%rax)
lea    0xcb2(%rip),%rdi
call   1030 <printf@plt>
mov    -0x20(%rbp),%rax
cmpl   $0xffffffff,(%rax)
jne    13a2 <fim+0x292>
mov    -0x28(%rbp),%rax
cmpl   $0xffffffff,(%rax)
jne    13a2 <fim+0x292>
mov    -0x30(%rbp),%rax
cmpl   $0xffffffff,(%rax)
jne    13a2 <fim+0x292>
mov    0x28(%rbp),%rax
movl   $0xffffffff,(%rax)
lea    0xc75(%rip),%rdi
call   1030 <printf@plt>
mov    0x10(%rbp),%rax
cmpl   $0xffffffff,(%rax)
jne    13df <fim+0x2cf>
mov    0x18(%rbp),%rax
cmpl   $0xffffffff,(%rax)
jne    13df <fim+0x2cf>
mov    0x20(%rbp),%rax
cmpl   $0xffffffff,(%rax)
jne    13df <fim+0x2cf>
mov    0x28(%rbp),%rax
movl   $0xffffffff,(%rax)
lea    0xc38(%rip),%rdi
call   1030 <printf@plt>
mov    -0x8(%rbp),%rax
cmpl   $0xffffffff,(%rax)
jne    141c <fim+0x30c>
mov    -0x20(%rbp),%rax
cmpl   $0xffffffff,(%rax)
jne    141c <fim+0x30c>
mov    0x10(%rbp),%rax
cmpl   $0xffffffff,(%rax)
jne    141c <fim+0x30c>
mov    0x28(%rbp),%rax
movl   $0xffffffff,(%rax)
lea    0xbfb(%rip),%rdi
call   1030 <printf@plt>
mov    -0x10(%rbp),%rax
cmpl   $0xffffffff,(%rax)
jne    1459 <fim+0x349>
mov    -0x28(%rbp),%rax
cmpl   $0xffffffff,(%rax)
jne    1459 <fim+0x349>
mov    0x18(%rbp),%rax
cmpl   $0xffffffff,(%rax)
jne    1459 <fim+0x349>
mov    0x28(%rbp),%rax
movl   $0xffffffff,(%rax)
lea    0xbbe(%rip),%rdi
call   1030 <printf@plt>
mov    -0x18(%rbp),%rax
cmpl   $0xffffffff,(%rax)
jne    1496 <fim+0x386>
mov    -0x30(%rbp),%rax
cmpl   $0xffffffff,(%rax)
jne    1496 <fim+0x386>
mov    0x20(%rbp),%rax
cmpl   $0xffffffff,(%rax)
jne    1496 <fim+0x386>
mov    0x28(%rbp),%rax
movl   $0xffffffff,(%rax)
lea    0xb81(%rip),%rdi
call   1030 <printf@plt>
mov    -0x8(%rbp),%rax
cmpl   $0xffffffff,(%rax)
jne    14d3 <fim+0x3c3>
mov    -0x28(%rbp),%rax
cmpl   $0xffffffff,(%rax)
jne    14d3 <fim+0x3c3>
mov    0x20(%rbp),%rax
cmpl   $0xffffffff,(%rax)
jne    14d3 <fim+0x3c3>
mov    0x28(%rbp),%rax
movl   $0xffffffff,(%rax)
lea    0xb44(%rip),%rdi
call   1030 <printf@plt>
mov    -0x18(%rbp),%rax
cmpl   $0xffffffff,(%rax)
jne    1510 <fim+0x400>
mov    -0x28(%rbp),%rax
cmpl   $0xffffffff,(%rax)
jne    1510 <fim+0x400>
mov    0x10(%rbp),%rax
cmpl   $0xffffffff,(%rax)
jne    1510 <fim+0x400>
mov    0x28(%rbp),%rax
movl   $0xffffffff,(%rax)
lea    0xb07(%rip),%rdi
call   1030 <printf@plt>
mov    -0x8(%rbp),%rax
cmpl   $0x0,(%rax)
je     159e <fim+0x48e>
mov    -0x10(%rbp),%rax
cmpl   $0x0,(%rax)
je     159e <fim+0x48e>
mov    -0x18(%rbp),%rax
cmpl   $0x0,(%rax)
je     159e <fim+0x48e>
mov    -0x20(%rbp),%rax
cmpl   $0x0,(%rax)
je     159e <fim+0x48e>
mov    -0x28(%rbp),%rax
cmpl   $0x0,(%rax)
je     159e <fim+0x48e>
mov    -0x30(%rbp),%rax
cmpl   $0x0,(%rax)
je     159e <fim+0x48e>
mov    0x10(%rbp),%rax
cmpl   $0x0,(%rax)
je     159e <fim+0x48e>
mov    0x18(%rbp),%rax
cmpl   $0x0,(%rax)
je     159e <fim+0x48e>
mov    0x20(%rbp),%rax
cmpl   $0x0,(%rax)
je     159e <fim+0x48e>
mov    0x28(%rbp),%rax
cmpl   $0x0,(%rax)
jne    159e <fim+0x48e>
lea    0xa8b(%rip),%rdi
call   1030 <printf@plt>
add    $0x30,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<fim>:
push   %rbp
push   %r15
push   %r14
push   %r13
push   %r12
push   %rbx
sub    $0x28,%rsp
mov    %r9,0x20(%rsp)
mov    %r8,%r12
mov    %rcx,%r15
mov    %rdx,%rbx
mov    %rsi,%r13
mov    %rdi,%rbp
mov    0x78(%rsp),%rax
mov    %rax,0x8(%rsp)
mov    0x70(%rsp),%rax
mov    %rax,0x10(%rsp)
mov    0x68(%rsp),%rax
mov    %rax,0x18(%rsp)
mov    0x60(%rsp),%r14
cmpl   $0x1,(%rdi)
jne    117d <fim+0x6d>
cmpl   $0x1,0x0(%r13)
jne    117d <fim+0x6d>
cmpl   $0x1,(%rbx)
jne    117d <fim+0x6d>
mov    0x8(%rsp),%rax
movl   $0x1,(%rax)
lea    0xeb6(%rip),%rdi
call   1030 <puts@plt>
cmpl   $0x1,(%r15)
jne    11ab <fim+0x9b>
cmpl   $0x1,(%r12)
jne    11ab <fim+0x9b>
mov    0x20(%rsp),%rax
cmpl   $0x1,(%rax)
jne    11ab <fim+0x9b>
mov    0x8(%rsp),%rax
movl   $0x1,(%rax)
lea    0xe88(%rip),%rdi
call   1030 <puts@plt>
cmpl   $0x1,(%r14)
jne    11dc <fim+0xcc>
mov    0x18(%rsp),%rax
cmpl   $0x1,(%rax)
jne    11dc <fim+0xcc>
mov    0x10(%rsp),%rax
cmpl   $0x1,(%rax)
jne    11dc <fim+0xcc>
mov    0x8(%rsp),%rax
movl   $0x1,(%rax)
lea    0xe57(%rip),%rdi
call   1030 <puts@plt>
cmpl   $0x1,0x0(%rbp)
jne    1205 <fim+0xf5>
cmpl   $0x1,(%r15)
jne    1205 <fim+0xf5>
cmpl   $0x1,(%r14)
jne    1205 <fim+0xf5>
mov    0x8(%rsp),%rax
movl   $0x1,(%rax)
lea    0xe2e(%rip),%rdi
call   1030 <puts@plt>
cmpl   $0x1,0x0(%r13)
jne    1234 <fim+0x124>
cmpl   $0x1,(%r12)
jne    1234 <fim+0x124>
mov    0x18(%rsp),%rax
cmpl   $0x1,(%rax)
jne    1234 <fim+0x124>
mov    0x8(%rsp),%rax
movl   $0x1,(%rax)
lea    0xdff(%rip),%rdi
call   1030 <puts@plt>
cmpl   $0x1,(%rbx)
jne    1264 <fim+0x154>
mov    0x20(%rsp),%rax
cmpl   $0x1,(%rax)
jne    1264 <fim+0x154>
mov    0x10(%rsp),%rax
cmpl   $0x1,(%rax)
jne    1264 <fim+0x154>
mov    0x8(%rsp),%rax
movl   $0x1,(%rax)
lea    0xdcf(%rip),%rdi
call   1030 <puts@plt>
cmpl   $0x1,0x0(%rbp)
jne    1292 <fim+0x182>
cmpl   $0x1,(%r12)
jne    1292 <fim+0x182>
mov    0x10(%rsp),%rax
cmpl   $0x1,(%rax)
jne    1292 <fim+0x182>
mov    0x8(%rsp),%rax
movl   $0x1,(%rax)
lea    0xda1(%rip),%rdi
call   1030 <puts@plt>
cmpl   $0x1,(%rbx)
jne    12bb <fim+0x1ab>
cmpl   $0x1,(%r12)
jne    12bb <fim+0x1ab>
cmpl   $0x1,(%r14)
jne    12bb <fim+0x1ab>
mov    0x8(%rsp),%rax
movl   $0x1,(%rax)
lea    0xd78(%rip),%rdi
call   1030 <puts@plt>
cmpl   $0xffffffff,0x0(%rbp)
jne    12e4 <fim+0x1d4>
cmpl   $0xffffffff,0x0(%r13)
jne    12e4 <fim+0x1d4>
cmpl   $0xffffffff,(%rbx)
jne    12e4 <fim+0x1d4>
mov    0x8(%rsp),%rax
movl   $0xffffffff,(%rax)
lea    0xd3e(%rip),%rdi
call   1030 <puts@plt>
cmpl   $0xffffffff,(%r15)
jne    1312 <fim+0x202>
cmpl   $0xffffffff,(%r12)
jne    1312 <fim+0x202>
mov    0x20(%rsp),%rax
cmpl   $0xffffffff,(%rax)
jne    1312 <fim+0x202>
mov    0x8(%rsp),%rax
movl   $0xffffffff,(%rax)
lea    0xd10(%rip),%rdi
call   1030 <puts@plt>
cmpl   $0xffffffff,(%r14)
jne    1343 <fim+0x233>
mov    0x18(%rsp),%rax
cmpl   $0xffffffff,(%rax)
jne    1343 <fim+0x233>
mov    0x10(%rsp),%rax
cmpl   $0xffffffff,(%rax)
jne    1343 <fim+0x233>
mov    0x8(%rsp),%rax
movl   $0xffffffff,(%rax)
lea    0xcdf(%rip),%rdi
call   1030 <puts@plt>
cmpl   $0xffffffff,0x0(%rbp)
jne    136c <fim+0x25c>
cmpl   $0xffffffff,(%r15)
jne    136c <fim+0x25c>
cmpl   $0xffffffff,(%r14)
jne    136c <fim+0x25c>
mov    0x8(%rsp),%rax
movl   $0xffffffff,(%rax)
lea    0xcb6(%rip),%rdi
call   1030 <puts@plt>
cmpl   $0xffffffff,0x0(%r13)
jne    139b <fim+0x28b>
cmpl   $0xffffffff,(%r12)
jne    139b <fim+0x28b>
mov    0x18(%rsp),%rax
cmpl   $0xffffffff,(%rax)
jne    139b <fim+0x28b>
mov    0x8(%rsp),%rax
movl   $0xffffffff,(%rax)
lea    0xc87(%rip),%rdi
call   1030 <puts@plt>
cmpl   $0xffffffff,(%rbx)
jne    13cb <fim+0x2bb>
mov    0x20(%rsp),%rax
cmpl   $0xffffffff,(%rax)
jne    13cb <fim+0x2bb>
mov    0x10(%rsp),%rax
cmpl   $0xffffffff,(%rax)
jne    13cb <fim+0x2bb>
mov    0x8(%rsp),%rax
movl   $0xffffffff,(%rax)
lea    0xc57(%rip),%rdi
call   1030 <puts@plt>
cmpl   $0xffffffff,0x0(%rbp)
jne    13f9 <fim+0x2e9>
cmpl   $0xffffffff,(%r12)
jne    13f9 <fim+0x2e9>
mov    0x10(%rsp),%rax
cmpl   $0xffffffff,(%rax)
jne    13f9 <fim+0x2e9>
mov    0x8(%rsp),%rax
movl   $0xffffffff,(%rax)
lea    0xc29(%rip),%rdi
call   1030 <puts@plt>
cmpl   $0xffffffff,(%rbx)
jne    140b <fim+0x2fb>
cmpl   $0xffffffff,(%r12)
jne    140b <fim+0x2fb>
cmpl   $0xffffffff,(%r14)
je     1472 <fim+0x362>
cmpl   $0x0,0x0(%rbp)
je     148f <fim+0x37f>
cmpl   $0x0,0x0(%r13)
je     148f <fim+0x37f>
cmpl   $0x0,(%rbx)
je     148f <fim+0x37f>
cmpl   $0x0,(%r15)
je     148f <fim+0x37f>
cmpl   $0x0,(%r12)
je     148f <fim+0x37f>
mov    0x20(%rsp),%rax
cmpl   $0x0,(%rax)
je     148f <fim+0x37f>
cmpl   $0x0,(%r14)
je     148f <fim+0x37f>
mov    0x18(%rsp),%rax
cmpl   $0x0,(%rax)
je     148f <fim+0x37f>
mov    0x10(%rsp),%rax
cmpl   $0x0,(%rax)
je     148f <fim+0x37f>
mov    0x8(%rsp),%rax
cmpl   $0x0,(%rax)
jne    148f <fim+0x37f>
lea    0xba1(%rip),%rdi
add    $0x28,%rsp
pop    %rbx
pop    %r12
pop    %r13
pop    %r14
pop    %r15
pop    %rbp
jmp    1030 <puts@plt>
mov    0x8(%rsp),%rax
movl   $0xffffffff,(%rax)
lea    0xb99(%rip),%rdi
call   1030 <puts@plt>
cmpl   $0x0,0x0(%rbp)
jne    1411 <fim+0x301>
add    $0x28,%rsp
pop    %rbx
pop    %r12
pop    %r13
pop    %r14
pop    %r15
pop    %rbp
ret

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

LLVM IR (-O2):
@str = [29 x i8] c"\0ADeu Velha! ! ! Jogo empatou\00"
@str.10 = [17 x i8] c"\0AO ganhou ! ! ! \00"
@str.18 = [17 x i8] c"\0AX ganhou ! ! ! \00"
define void @fim(i32* nocapture %0, i32* nocapture %1, i32* nocapture %2, i32* nocapture %3, i32* nocapture %4, i32* nocapture %5, i32* nocapture %6, i32* nocapture %7, i32* nocapture %8, i32* nocapture %9) {
%11 = load i32, i32* %0
%12 = icmp eq i32 %11, 1
br i1 %12, label %13, label %21
13: ; preds = %10
%14 = load i32, i32* %1
%15 = icmp eq i32 %14, 1
br i1 %15, label %16, label %21
16: ; preds = %13
%17 = load i32, i32* %2
%18 = icmp eq i32 %17, 1
br i1 %18, label %19, label %21
19: ; preds = %16
store i32 1, i32* %9
%20 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([17 x i8], [17 x i8]* @str.18, i64 0, i64 0))
br label %21
21: ; preds = %19, %16, %13, %10
%22 = load i32, i32* %3
%23 = icmp eq i32 %22, 1
br i1 %23, label %24, label %32
24: ; preds = %21
%25 = load i32, i32* %4
%26 = icmp eq i32 %25, 1
br i1 %26, label %27, label %32
27: ; preds = %24
%28 = load i32, i32* %5
%29 = icmp eq i32 %28, 1
br i1 %29, label %30, label %32
30: ; preds = %27
store i32 1, i32* %9
%31 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([17 x i8], [17 x i8]* @str.18, i64 0, i64 0))
br label %32
32: ; preds = %30, %27, %24, %21
%33 = load i32, i32* %6
%34 = icmp eq i32 %33, 1
br i1 %34, label %35, label %43
35: ; preds = %32
%36 = load i32, i32* %7
%37 = icmp eq i32 %36, 1
br i1 %37, label %38, label %43
38: ; preds = %35
%39 = load i32, i32* %8
%40 = icmp eq i32 %39, 1
br i1 %40, label %41, label %43
41: ; preds = %38
store i32 1, i32* %9
%42 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([17 x i8], [17 x i8]* @str.18, i64 0, i64 0))
br label %43
43: ; preds = %41, %38, %35, %32
%44 = load i32, i32* %0
%45 = icmp eq i32 %44, 1
br i1 %45, label %46, label %54
46: ; preds = %43
%47 = load i32, i32* %3
%48 = icmp eq i32 %47, 1
br i1 %48, label %49, label %54
49: ; preds = %46
%50 = load i32, i32* %6
%51 = icmp eq i32 %50, 1
br i1 %51, label %52, label %54
52: ; preds = %49
store i32 1, i32* %9
%53 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([17 x i8], [17 x i8]* @str.18, i64 0, i64 0))
br label %54
54: ; preds = %52, %49, %46, %43
%55 = load i32, i32* %1
%56 = icmp eq i32 %55, 1
br i1 %56, label %57, label %65
57: ; preds = %54
%58 = load i32, i32* %4
%59 = icmp eq i32 %58, 1
br i1 %59, label %60, label %65
60: ; preds = %57
%61 = load i32, i32* %7
%62 = icmp eq i32 %61, 1
br i1 %62, label %63, label %65
63: ; preds = %60
store i32 1, i32* %9
%64 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([17 x i8], [17 x i8]* @str.18, i64 0, i64 0))
br label %65
65: ; preds = %63, %60, %57, %54
%66 = load i32, i32* %2
%67 = icmp eq i32 %66, 1
br i1 %67, label %68, label %76
68: ; preds = %65
%69 = load i32, i32* %5
%70 = icmp eq i32 %69, 1
br i1 %70, label %71, label %76
71: ; preds = %68
%72 = load i32, i32* %8
%73 = icmp eq i32 %72, 1
br i1 %73, label %74, label %76
74: ; preds = %71
store i32 1, i32* %9
%75 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([17 x i8], [17 x i8]* @str.18, i64 0, i64 0))
br label %76
76: ; preds = %74, %71, %68, %65
%77 = load i32, i32* %0
%78 = icmp eq i32 %77, 1
br i1 %78, label %79, label %87
79: ; preds = %76
%80 = load i32, i32* %4
%81 = icmp eq i32 %80, 1
br i1 %81, label %82, label %87
82: ; preds = %79
%83 = load i32, i32* %8
%84 = icmp eq i32 %83, 1
br i1 %84, label %85, label %87
85: ; preds = %82
store i32 1, i32* %9
%86 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([17 x i8], [17 x i8]* @str.18, i64 0, i64 0))
br label %87
87: ; preds = %85, %82, %79, %76
%88 = load i32, i32* %2
%89 = icmp eq i32 %88, 1
br i1 %89, label %90, label %98
90: ; preds = %87
%91 = load i32, i32* %4
%92 = icmp eq i32 %91, 1
br i1 %92, label %93, label %98
93: ; preds = %90
%94 = load i32, i32* %6
%95 = icmp eq i32 %94, 1
br i1 %95, label %96, label %98
96: ; preds = %93
store i32 1, i32* %9
%97 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([17 x i8], [17 x i8]* @str.18, i64 0, i64 0))
br label %98
98: ; preds = %96, %93, %90, %87
%99 = load i32, i32* %0
%100 = icmp eq i32 %99, -1
br i1 %100, label %101, label %109
101: ; preds = %98
%102 = load i32, i32* %1
%103 = icmp eq i32 %102, -1
br i1 %103, label %104, label %109
104: ; preds = %101
%105 = load i32, i32* %2
%106 = icmp eq i32 %105, -1
br i1 %106, label %107, label %109
107: ; preds = %104
store i32 -1, i32* %9
%108 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([17 x i8], [17 x i8]* @str.10, i64 0, i64 0))
br label %109
109: ; preds = %107, %104, %101, %98
%110 = load i32, i32* %3
%111 = icmp eq i32 %110, -1
br i1 %111, label %112, label %120
112: ; preds = %109
%113 = load i32, i32* %4
%114 = icmp eq i32 %113, -1
br i1 %114, label %115, label %120
115: ; preds = %112
%116 = load i32, i32* %5
%117 = icmp eq i32 %116, -1
br i1 %117, label %118, label %120
118: ; preds = %115
store i32 -1, i32* %9
%119 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([17 x i8], [17 x i8]* @str.10, i64 0, i64 0))
br label %120
120: ; preds = %118, %115, %112, %109
%121 = load i32, i32* %6
%122 = icmp eq i32 %121, -1
br i1 %122, label %123, label %131
123: ; preds = %120
%124 = load i32, i32* %7
%125 = icmp eq i32 %124, -1
br i1 %125, label %126, label %131
126: ; preds = %123
%127 = load i32, i32* %8
%128 = icmp eq i32 %127, -1
br i1 %128, label %129, label %131
129: ; preds = %126
store i32 -1, i32* %9
%130 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([17 x i8], [17 x i8]* @str.10, i64 0, i64 0))
br label %131
131: ; preds = %129, %126, %123, %120
%132 = load i32, i32* %0
%133 = icmp eq i32 %132, -1
br i1 %133, label %134, label %142
134: ; preds = %131
%135 = load i32, i32* %3
%136 = icmp eq i32 %135, -1
br i1 %136, label %137, label %142
137: ; preds = %134
%138 = load i32, i32* %6
%139 = icmp eq i32 %138, -1
br i1 %139, label %140, label %142
140: ; preds = %137
store i32 -1, i32* %9
%141 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([17 x i8], [17 x i8]* @str.10, i64 0, i64 0))
br label %142
142: ; preds = %140, %137, %134, %131
%143 = load i32, i32* %1
%144 = icmp eq i32 %143, -1
br i1 %144, label %145, label %153
145: ; preds = %142
%146 = load i32, i32* %4
%147 = icmp eq i32 %146, -1
br i1 %147, label %148, label %153
148: ; preds = %145
%149 = load i32, i32* %7
%150 = icmp eq i32 %149, -1
br i1 %150, label %151, label %153
151: ; preds = %148
store i32 -1, i32* %9
%152 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([17 x i8], [17 x i8]* @str.10, i64 0, i64 0))
br label %153
153: ; preds = %151, %148, %145, %142
%154 = load i32, i32* %2
%155 = icmp eq i32 %154, -1
br i1 %155, label %156, label %164
156: ; preds = %153
%157 = load i32, i32* %5
%158 = icmp eq i32 %157, -1
br i1 %158, label %159, label %164
159: ; preds = %156
%160 = load i32, i32* %8
%161 = icmp eq i32 %160, -1
br i1 %161, label %162, label %164
162: ; preds = %159
store i32 -1, i32* %9
%163 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([17 x i8], [17 x i8]* @str.10, i64 0, i64 0))
br label %164
164: ; preds = %162, %159, %156, %153
%165 = load i32, i32* %0
%166 = icmp eq i32 %165, -1
br i1 %166, label %167, label %175
167: ; preds = %164
%168 = load i32, i32* %4
%169 = icmp eq i32 %168, -1
br i1 %169, label %170, label %175
170: ; preds = %167
%171 = load i32, i32* %8
%172 = icmp eq i32 %171, -1
br i1 %172, label %173, label %175
173: ; preds = %170
store i32 -1, i32* %9
%174 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([17 x i8], [17 x i8]* @str.10, i64 0, i64 0))
br label %175
175: ; preds = %173, %170, %167, %164
%176 = load i32, i32* %2
%177 = icmp eq i32 %176, -1
br i1 %177, label %178, label %186
178: ; preds = %175
%179 = load i32, i32* %4
%180 = icmp eq i32 %179, -1
br i1 %180, label %181, label %186
181: ; preds = %178
%182 = load i32, i32* %6
%183 = icmp eq i32 %182, -1
br i1 %183, label %184, label %186
184: ; preds = %181
store i32 -1, i32* %9
%185 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([17 x i8], [17 x i8]* @str.10, i64 0, i64 0))
br label %186
186: ; preds = %184, %181, %178, %175
%187 = load i32, i32* %0
%188 = icmp eq i32 %187, 0
br i1 %188, label %218, label %189
189: ; preds = %186
%190 = load i32, i32* %1
%191 = icmp eq i32 %190, 0
br i1 %191, label %218, label %192
192: ; preds = %189
%193 = load i32, i32* %2
%194 = icmp eq i32 %193, 0
br i1 %194, label %218, label %195
195: ; preds = %192
%196 = load i32, i32* %3
%197 = icmp eq i32 %196, 0
br i1 %197, label %218, label %198
198: ; preds = %195
%199 = load i32, i32* %4
%200 = icmp eq i32 %199, 0
br i1 %200, label %218, label %201
201: ; preds = %198
%202 = load i32, i32* %5
%203 = icmp eq i32 %202, 0
br i1 %203, label %218, label %204
204: ; preds = %201
%205 = load i32, i32* %6
%206 = icmp eq i32 %205, 0
br i1 %206, label %218, label %207
207: ; preds = %204
%208 = load i32, i32* %7
%209 = icmp eq i32 %208, 0
br i1 %209, label %218, label %210
210: ; preds = %207
%211 = load i32, i32* %8
%212 = icmp eq i32 %211, 0
br i1 %212, label %218, label %213
213: ; preds = %210
%214 = load i32, i32* %9
%215 = icmp eq i32 %214, 0
br i1 %215, label %216, label %218
216: ; preds = %213
%217 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([29 x i8], [29 x i8]* @str, i64 0, i64 0))
br label %218
218: ; preds = %216, %213, %210, %207, %204, %201, %198, %195, %192, %189, %186
ret void
}