int nivelmedio(int tab[3][3], int vez) {
  if (tab[0][0] == 0 &&
      ((tab[0][1] == tab[0][2] && tab[0][1] != 0 && tab[0][2] != 0) ||
       (tab[1][0] == tab[2][0] && tab[1][0] != 0 && tab[2][0] != 0) ||
       (tab[1][1] == tab[2][2] && tab[1][1] != 0 && tab[2][2] != 0)))
    return 0;
  else if (tab[0][1] == 0 &&
           ((tab[0][0] == tab[0][2] && tab[0][0] != 0 && tab[0][2] != 0) ||
            (tab[1][1] == tab[2][1] && tab[1][1] != 0 && tab[2][1] != 0)))
    return 1;
  else if (tab[0][2] == 0 &&
           ((tab[0][0] == tab[0][1] && tab[0][0] != 0 && tab[0][1] != 0) ||
            (tab[1][2] == tab[2][2] && tab[1][2] != 0 && tab[2][2] != 0) ||
            (tab[1][1] == tab[2][0] && tab[1][1] != 0 && tab[2][0] != 0)))
    return 2;
  else if (tab[1][0] == 0 &&
           ((tab[1][1] == tab[1][2] && tab[1][1] != 0 && tab[1][2] != 0) ||
            (tab[0][0] == tab[2][0] && tab[0][0] != 0 && tab[2][0] != 0)))
    return 3;
  else if (tab[1][1] == 0 &&
           ((tab[1][0] == tab[1][2] && tab[1][0] != 0 && tab[1][2] != 0) ||
            (tab[0][1] == tab[2][1] && tab[0][1] != 0 && tab[2][1] != 0) ||
            (tab[0][0] == tab[2][2] && tab[0][0] != 0 && tab[2][2] != 0) ||
            (tab[0][2] == tab[2][0] && tab[0][2] != 0 && tab[2][0] != 0)))
    return 4;
  else if (tab[1][2] == 0 &&
           ((tab[1][0] == tab[1][1] && tab[1][0] != 0 && tab[1][1] != 0) ||
            (tab[0][2] == tab[2][2] && tab[0][2] != 0 && tab[2][2] != 0)))
    return 5;
  else if (tab[2][0] == 0 &&
           ((tab[0][0] == tab[1][0] && tab[0][0] != 0 && tab[1][0] != 0) ||
            (tab[2][1] == tab[2][2] && tab[2][1] != 0 && tab[2][2] != 0) ||
            (tab[0][2] == tab[1][1] && tab[0][2] != 0 && tab[1][1] != 0)))
    return 6;
  else if (tab[2][1] == 0 &&
           ((tab[2][0] == tab[2][2] && tab[2][0] != 0 && tab[2][2] != 0) ||
            (tab[0][1] == tab[1][1] && tab[0][1] != 0 && tab[1][1] != 0)))
    return 7;
  else if (tab[2][2] == 0 &&
           ((tab[2][0] == tab[2][1] && tab[2][0] != 0 && tab[2][1] != 0) ||
            (tab[0][2] == tab[1][2] && tab[0][2] != 0 && tab[1][2] != 0) ||
            (tab[0][0] == tab[1][1] && tab[0][0] != 0 && tab[1][1] != 0)))
    return 8;
  else
    return nivelfacil(tab, vez);
}


x86 assembly (clang, -O0):
<nivelmedio>:
push   %rbp
mov    %rsp,%rbp
sub    $0x20,%rsp
mov    %rdi,-0x10(%rbp)
mov    %esi,-0x14(%rbp)
mov    -0x10(%rbp),%rax
cmpl   $0x0,(%rax)
jne    11c8 <nivelmedio+0xb8>
mov    -0x10(%rbp),%rax
mov    0x4(%rax),%eax
mov    -0x10(%rbp),%rcx
cmp    0x8(%rcx),%eax
jne    115c <nivelmedio+0x4c>
mov    -0x10(%rbp),%rax
cmpl   $0x0,0x4(%rax)
je     115c <nivelmedio+0x4c>
mov    -0x10(%rbp),%rax
cmpl   $0x0,0x8(%rax)
jne    11bc <nivelmedio+0xac>
mov    -0x10(%rbp),%rax
mov    0xc(%rax),%eax
mov    -0x10(%rbp),%rcx
cmp    0x18(%rcx),%eax
jne    118c <nivelmedio+0x7c>
mov    -0x10(%rbp),%rax
cmpl   $0x0,0xc(%rax)
je     118c <nivelmedio+0x7c>
mov    -0x10(%rbp),%rax
cmpl   $0x0,0x18(%rax)
jne    11bc <nivelmedio+0xac>
mov    -0x10(%rbp),%rax
mov    0x10(%rax),%eax
mov    -0x10(%rbp),%rcx
cmp    0x20(%rcx),%eax
jne    11c8 <nivelmedio+0xb8>
mov    -0x10(%rbp),%rax
cmpl   $0x0,0x10(%rax)
je     11c8 <nivelmedio+0xb8>
mov    -0x10(%rbp),%rax
cmpl   $0x0,0x20(%rax)
je     11c8 <nivelmedio+0xb8>
movl   $0x0,-0x4(%rbp)
jmp    168d <nivelmedio+0x57d>
mov    -0x10(%rbp),%rax
cmpl   $0x0,0x4(%rax)
jne    1240 <nivelmedio+0x130>
mov    -0x10(%rbp),%rax
mov    (%rax),%eax
mov    -0x10(%rbp),%rcx
cmp    0x8(%rcx),%eax
jne    1204 <nivelmedio+0xf4>
mov    -0x10(%rbp),%rax
cmpl   $0x0,(%rax)
je     1204 <nivelmedio+0xf4>
mov    -0x10(%rbp),%rax
cmpl   $0x0,0x8(%rax)
jne    1234 <nivelmedio+0x124>
mov    -0x10(%rbp),%rax
mov    0x10(%rax),%eax
mov    -0x10(%rbp),%rcx
cmp    0x1c(%rcx),%eax
jne    1240 <nivelmedio+0x130>
mov    -0x10(%rbp),%rax
cmpl   $0x0,0x10(%rax)
je     1240 <nivelmedio+0x130>
mov    -0x10(%rbp),%rax
cmpl   $0x0,0x1c(%rax)
je     1240 <nivelmedio+0x130>
movl   $0x1,-0x4(%rbp)
jmp    168d <nivelmedio+0x57d>
mov    -0x10(%rbp),%rax
cmpl   $0x0,0x8(%rax)
jne    12e8 <nivelmedio+0x1d8>
mov    -0x10(%rbp),%rax
mov    (%rax),%eax
mov    -0x10(%rbp),%rcx
cmp    0x4(%rcx),%eax
jne    127c <nivelmedio+0x16c>
mov    -0x10(%rbp),%rax
cmpl   $0x0,(%rax)
je     127c <nivelmedio+0x16c>
mov    -0x10(%rbp),%rax
cmpl   $0x0,0x4(%rax)
jne    12dc <nivelmedio+0x1cc>
mov    -0x10(%rbp),%rax
mov    0x14(%rax),%eax
mov    -0x10(%rbp),%rcx
cmp    0x20(%rcx),%eax
jne    12ac <nivelmedio+0x19c>
mov    -0x10(%rbp),%rax
cmpl   $0x0,0x14(%rax)
je     12ac <nivelmedio+0x19c>
mov    -0x10(%rbp),%rax
cmpl   $0x0,0x20(%rax)
jne    12dc <nivelmedio+0x1cc>
mov    -0x10(%rbp),%rax
mov    0x10(%rax),%eax
mov    -0x10(%rbp),%rcx
cmp    0x18(%rcx),%eax
jne    12e8 <nivelmedio+0x1d8>
mov    -0x10(%rbp),%rax
cmpl   $0x0,0x10(%rax)
je     12e8 <nivelmedio+0x1d8>
mov    -0x10(%rbp),%rax
cmpl   $0x0,0x18(%rax)
je     12e8 <nivelmedio+0x1d8>
movl   $0x2,-0x4(%rbp)
jmp    168d <nivelmedio+0x57d>
mov    -0x10(%rbp),%rax
cmpl   $0x0,0xc(%rax)
jne    1360 <nivelmedio+0x250>
mov    -0x10(%rbp),%rax
mov    0x10(%rax),%eax
mov    -0x10(%rbp),%rcx
cmp    0x14(%rcx),%eax
jne    1326 <nivelmedio+0x216>
mov    -0x10(%rbp),%rax
cmpl   $0x0,0x10(%rax)
je     1326 <nivelmedio+0x216>
mov    -0x10(%rbp),%rax
cmpl   $0x0,0x14(%rax)
jne    1354 <nivelmedio+0x244>
mov    -0x10(%rbp),%rax
mov    (%rax),%eax
mov    -0x10(%rbp),%rcx
cmp    0x18(%rcx),%eax
jne    1360 <nivelmedio+0x250>
mov    -0x10(%rbp),%rax
cmpl   $0x0,(%rax)
je     1360 <nivelmedio+0x250>
mov    -0x10(%rbp),%rax
cmpl   $0x0,0x18(%rax)
je     1360 <nivelmedio+0x250>
movl   $0x3,-0x4(%rbp)
jmp    168d <nivelmedio+0x57d>
mov    -0x10(%rbp),%rax
cmpl   $0x0,0x10(%rax)
jne    1438 <nivelmedio+0x328>
mov    -0x10(%rbp),%rax
mov    0xc(%rax),%eax
mov    -0x10(%rbp),%rcx
cmp    0x14(%rcx),%eax
jne    139e <nivelmedio+0x28e>
mov    -0x10(%rbp),%rax
cmpl   $0x0,0xc(%rax)
je     139e <nivelmedio+0x28e>
mov    -0x10(%rbp),%rax
cmpl   $0x0,0x14(%rax)
jne    142c <nivelmedio+0x31c>
mov    -0x10(%rbp),%rax
mov    0x4(%rax),%eax
mov    -0x10(%rbp),%rcx
cmp    0x1c(%rcx),%eax
jne    13ce <nivelmedio+0x2be>
mov    -0x10(%rbp),%rax
cmpl   $0x0,0x4(%rax)
je     13ce <nivelmedio+0x2be>
mov    -0x10(%rbp),%rax
cmpl   $0x0,0x1c(%rax)
jne    142c <nivelmedio+0x31c>
mov    -0x10(%rbp),%rax
mov    (%rax),%eax
mov    -0x10(%rbp),%rcx
cmp    0x20(%rcx),%eax
jne    13fc <nivelmedio+0x2ec>
mov    -0x10(%rbp),%rax
cmpl   $0x0,(%rax)
je     13fc <nivelmedio+0x2ec>
mov    -0x10(%rbp),%rax
cmpl   $0x0,0x20(%rax)
jne    142c <nivelmedio+0x31c>
mov    -0x10(%rbp),%rax
mov    0x8(%rax),%eax
mov    -0x10(%rbp),%rcx
cmp    0x18(%rcx),%eax
jne    1438 <nivelmedio+0x328>
mov    -0x10(%rbp),%rax
cmpl   $0x0,0x8(%rax)
je     1438 <nivelmedio+0x328>
mov    -0x10(%rbp),%rax
cmpl   $0x0,0x18(%rax)
je     1438 <nivelmedio+0x328>
movl   $0x4,-0x4(%rbp)
jmp    168d <nivelmedio+0x57d>
mov    -0x10(%rbp),%rax
cmpl   $0x0,0x14(%rax)
jne    14b2 <nivelmedio+0x3a2>
mov    -0x10(%rbp),%rax
mov    0xc(%rax),%eax
mov    -0x10(%rbp),%rcx
cmp    0x10(%rcx),%eax
jne    1476 <nivelmedio+0x366>
mov    -0x10(%rbp),%rax
cmpl   $0x0,0xc(%rax)
je     1476 <nivelmedio+0x366>
mov    -0x10(%rbp),%rax
cmpl   $0x0,0x10(%rax)
jne    14a6 <nivelmedio+0x396>
mov    -0x10(%rbp),%rax
mov    0x8(%rax),%eax
mov    -0x10(%rbp),%rcx
cmp    0x20(%rcx),%eax
jne    14b2 <nivelmedio+0x3a2>
mov    -0x10(%rbp),%rax
cmpl   $0x0,0x8(%rax)
je     14b2 <nivelmedio+0x3a2>
mov    -0x10(%rbp),%rax
cmpl   $0x0,0x20(%rax)
je     14b2 <nivelmedio+0x3a2>
movl   $0x5,-0x4(%rbp)
jmp    168d <nivelmedio+0x57d>
mov    -0x10(%rbp),%rax
cmpl   $0x0,0x18(%rax)
jne    155a <nivelmedio+0x44a>
mov    -0x10(%rbp),%rax
mov    (%rax),%eax
mov    -0x10(%rbp),%rcx
cmp    0xc(%rcx),%eax
jne    14ee <nivelmedio+0x3de>
mov    -0x10(%rbp),%rax
cmpl   $0x0,(%rax)
je     14ee <nivelmedio+0x3de>
mov    -0x10(%rbp),%rax
cmpl   $0x0,0xc(%rax)
jne    154e <nivelmedio+0x43e>
mov    -0x10(%rbp),%rax
mov    0x1c(%rax),%eax
mov    -0x10(%rbp),%rcx
cmp    0x20(%rcx),%eax
jne    151e <nivelmedio+0x40e>
mov    -0x10(%rbp),%rax
cmpl   $0x0,0x1c(%rax)
je     151e <nivelmedio+0x40e>
mov    -0x10(%rbp),%rax
cmpl   $0x0,0x20(%rax)
jne    154e <nivelmedio+0x43e>
mov    -0x10(%rbp),%rax
mov    0x8(%rax),%eax
mov    -0x10(%rbp),%rcx
cmp    0x10(%rcx),%eax
jne    155a <nivelmedio+0x44a>
mov    -0x10(%rbp),%rax
cmpl   $0x0,0x8(%rax)
je     155a <nivelmedio+0x44a>
mov    -0x10(%rbp),%rax
cmpl   $0x0,0x10(%rax)
je     155a <nivelmedio+0x44a>
movl   $0x6,-0x4(%rbp)
jmp    168d <nivelmedio+0x57d>
mov    -0x10(%rbp),%rax
cmpl   $0x0,0x1c(%rax)
jne    15d4 <nivelmedio+0x4c4>
mov    -0x10(%rbp),%rax
mov    0x18(%rax),%eax
mov    -0x10(%rbp),%rcx
cmp    0x20(%rcx),%eax
jne    1598 <nivelmedio+0x488>
mov    -0x10(%rbp),%rax
cmpl   $0x0,0x18(%rax)
je     1598 <nivelmedio+0x488>
mov    -0x10(%rbp),%rax
cmpl   $0x0,0x20(%rax)
jne    15c8 <nivelmedio+0x4b8>
mov    -0x10(%rbp),%rax
mov    0x4(%rax),%eax
mov    -0x10(%rbp),%rcx
cmp    0x10(%rcx),%eax
jne    15d4 <nivelmedio+0x4c4>
mov    -0x10(%rbp),%rax
cmpl   $0x0,0x4(%rax)
je     15d4 <nivelmedio+0x4c4>
mov    -0x10(%rbp),%rax
cmpl   $0x0,0x10(%rax)
je     15d4 <nivelmedio+0x4c4>
movl   $0x7,-0x4(%rbp)
jmp    168d <nivelmedio+0x57d>
mov    -0x10(%rbp),%rax
cmpl   $0x0,0x20(%rax)
jne    167c <nivelmedio+0x56c>
mov    -0x10(%rbp),%rax
mov    0x18(%rax),%eax
mov    -0x10(%rbp),%rcx
cmp    0x1c(%rcx),%eax
jne    1612 <nivelmedio+0x502>
mov    -0x10(%rbp),%rax
cmpl   $0x0,0x18(%rax)
je     1612 <nivelmedio+0x502>
mov    -0x10(%rbp),%rax
cmpl   $0x0,0x1c(%rax)
jne    1670 <nivelmedio+0x560>
mov    -0x10(%rbp),%rax
mov    0x8(%rax),%eax
mov    -0x10(%rbp),%rcx
cmp    0x14(%rcx),%eax
jne    1642 <nivelmedio+0x532>
mov    -0x10(%rbp),%rax
cmpl   $0x0,0x8(%rax)
je     1642 <nivelmedio+0x532>
mov    -0x10(%rbp),%rax
cmpl   $0x0,0x14(%rax)
jne    1670 <nivelmedio+0x560>
mov    -0x10(%rbp),%rax
mov    (%rax),%eax
mov    -0x10(%rbp),%rcx
cmp    0x10(%rcx),%eax
jne    167c <nivelmedio+0x56c>
mov    -0x10(%rbp),%rax
cmpl   $0x0,(%rax)
je     167c <nivelmedio+0x56c>
mov    -0x10(%rbp),%rax
cmpl   $0x0,0x10(%rax)
je     167c <nivelmedio+0x56c>
movl   $0x8,-0x4(%rbp)
jmp    168d <nivelmedio+0x57d>
mov    -0x10(%rbp),%rdi
mov    -0x14(%rbp),%esi
mov    $0x0,%al
call   1030 <nivelfacil@plt>
mov    %eax,-0x4(%rbp)
mov    -0x4(%rbp),%eax
add    $0x20,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<nivelmedio>:
push   %rbp
push   %rbx
mov    (%rdi),%ecx
mov    0x4(%rdi),%edx
test   %ecx,%ecx
je     1183 <nivelmedio+0x73>
mov    0x8(%rdi),%r8d
test   %edx,%edx
je     11d1 <nivelmedio+0xc1>
test   %r8d,%r8d
je     120b <nivelmedio+0xfb>
mov    0xc(%rdi),%r11d
mov    0x10(%rdi),%r9d
test   %r11d,%r11d
je     1259 <nivelmedio+0x149>
mov    0x14(%rdi),%r10d
test   %r9d,%r9d
je     1293 <nivelmedio+0x183>
test   %r10d,%r10d
je     12f3 <nivelmedio+0x1e3>
mov    0x18(%rdi),%ebx
test   %ebx,%ebx
je     132d <nivelmedio+0x21d>
mov    0x1c(%rdi),%r11d
mov    0x20(%rdi),%ebp
test   %r11d,%r11d
je     1379 <nivelmedio+0x269>
test   %ebp,%ebp
je     13a5 <nivelmedio+0x295>
xor    %eax,%eax
pop    %rbx
pop    %rbp
jmp    1030 <nivelfacil@plt>
mov    0x8(%rdi),%ebp
xor    %eax,%eax
test   %ebp,%ebp
je     1198 <nivelmedio+0x88>
test   %edx,%edx
je     1198 <nivelmedio+0x88>
cmp    %ebp,%edx
je     13e1 <nivelmedio+0x2d1>
mov    0x18(%rdi),%ebp
test   %ebp,%ebp
je     11ae <nivelmedio+0x9e>
mov    0xc(%rdi),%ebx
test   %ebx,%ebx
je     11ae <nivelmedio+0x9e>
cmp    %ebp,%ebx
je     13e1 <nivelmedio+0x2d1>
mov    0x20(%rdi),%ebp
test   %ebp,%ebp
je     111b <nivelmedio+0xb>
mov    0x10(%rdi),%ebx
test   %ebx,%ebx
je     111b <nivelmedio+0xb>
cmp    %ebp,%ebx
je     13e1 <nivelmedio+0x2d1>
jmp    111b <nivelmedio+0xb>
mov    $0x1,%eax
test   %r8d,%r8d
je     11e8 <nivelmedio+0xd8>
test   %ecx,%ecx
je     11e8 <nivelmedio+0xd8>
cmp    %r8d,%ecx
je     13e1 <nivelmedio+0x2d1>
mov    0x1c(%rdi),%ebp
test   %ebp,%ebp
je     1127 <nivelmedio+0x17>
mov    0x10(%rdi),%ebx
test   %ebx,%ebx
je     1127 <nivelmedio+0x17>
cmp    %ebp,%ebx
je     13e1 <nivelmedio+0x2d1>
jmp    1127 <nivelmedio+0x17>
mov    $0x2,%eax
test   %edx,%edx
je     1220 <nivelmedio+0x110>
test   %ecx,%ecx
je     1220 <nivelmedio+0x110>
cmp    %edx,%ecx
je     13e1 <nivelmedio+0x2d1>
mov    0x20(%rdi),%ebp
test   %ebp,%ebp
je     1236 <nivelmedio+0x126>
mov    0x14(%rdi),%ebx
test   %ebx,%ebx
je     1236 <nivelmedio+0x126>
cmp    %ebp,%ebx
je     13e1 <nivelmedio+0x2d1>
mov    0x18(%rdi),%ebp
test   %ebp,%ebp
je     1130 <nivelmedio+0x20>
mov    0x10(%rdi),%ebx
test   %ebx,%ebx
je     1130 <nivelmedio+0x20>
cmp    %ebp,%ebx
je     13e1 <nivelmedio+0x2d1>
jmp    1130 <nivelmedio+0x20>
mov    0x14(%rdi),%ebp
mov    $0x3,%eax
test   %ebp,%ebp
je     1273 <nivelmedio+0x163>
test   %r9d,%r9d
je     1273 <nivelmedio+0x163>
cmp    %ebp,%r9d
je     13e1 <nivelmedio+0x2d1>
mov    0x18(%rdi),%ebp
test   %ebp,%ebp
je     1141 <nivelmedio+0x31>
test   %ecx,%ecx
je     1141 <nivelmedio+0x31>
cmp    %ebp,%ecx
je     13e1 <nivelmedio+0x2d1>
jmp    1141 <nivelmedio+0x31>
mov    $0x4,%eax
test   %r10d,%r10d
je     12ab <nivelmedio+0x19b>
test   %r11d,%r11d
je     12ab <nivelmedio+0x19b>
cmp    %r10d,%r11d
je     13e1 <nivelmedio+0x2d1>
mov    0x1c(%rdi),%ebx
test   %ebx,%ebx
je     12be <nivelmedio+0x1ae>
test   %edx,%edx
je     12be <nivelmedio+0x1ae>
cmp    %ebx,%edx
je     13e1 <nivelmedio+0x2d1>
mov    0x20(%rdi),%ebx
test   %ebx,%ebx
je     12d1 <nivelmedio+0x1c1>
test   %ecx,%ecx
je     12d1 <nivelmedio+0x1c1>
cmp    %ebx,%ecx
je     13e1 <nivelmedio+0x2d1>
mov    0x18(%rdi),%ebx
test   %ebx,%ebx
je     114e <nivelmedio+0x3e>
test   %r8d,%r8d
je     114e <nivelmedio+0x3e>
cmp    %ebx,%r8d
je     13e1 <nivelmedio+0x2d1>
jmp    114e <nivelmedio+0x3e>
mov    $0x5,%eax
test   %r9d,%r9d
je     130b <nivelmedio+0x1fb>
test   %r11d,%r11d
je     130b <nivelmedio+0x1fb>
cmp    %r9d,%r11d
je     13e1 <nivelmedio+0x2d1>
mov    0x20(%rdi),%ebx
test   %ebx,%ebx
je     1157 <nivelmedio+0x47>
test   %r8d,%r8d
je     1157 <nivelmedio+0x47>
cmp    %ebx,%r8d
je     13e1 <nivelmedio+0x2d1>
jmp    1157 <nivelmedio+0x47>
mov    $0x6,%eax
test   %r11d,%r11d
je     1344 <nivelmedio+0x234>
test   %ecx,%ecx
je     1344 <nivelmedio+0x234>
cmp    %r11d,%ecx
je     13e1 <nivelmedio+0x2d1>
mov    0x1c(%rdi),%r11d
mov    0x20(%rdi),%ebp
test   %ebp,%ebp
je     135d <nivelmedio+0x24d>
test   %r11d,%r11d
je     135d <nivelmedio+0x24d>
cmp    %ebp,%r11d
je     13e1 <nivelmedio+0x2d1>
test   %r9d,%r9d
je     1166 <nivelmedio+0x56>
test   %r8d,%r8d
je     1166 <nivelmedio+0x56>
cmp    %r9d,%r8d
je     13e1 <nivelmedio+0x2d1>
jmp    1166 <nivelmedio+0x56>
mov    $0x7,%eax
test   %ebp,%ebp
je     138a <nivelmedio+0x27a>
test   %ebx,%ebx
je     138a <nivelmedio+0x27a>
cmp    %ebp,%ebx
je     13e1 <nivelmedio+0x2d1>
test   %r9d,%r9d
je     1172 <nivelmedio+0x62>
test   %edx,%edx
je     1172 <nivelmedio+0x62>
cmp    %r9d,%edx
je     13e1 <nivelmedio+0x2d1>
jmp    1172 <nivelmedio+0x62>
mov    $0x8,%eax
test   %r11d,%r11d
je     13b8 <nivelmedio+0x2a8>
test   %ebx,%ebx
je     13b8 <nivelmedio+0x2a8>
cmp    %r11d,%ebx
je     13e1 <nivelmedio+0x2d1>
test   %r10d,%r10d
je     13c7 <nivelmedio+0x2b7>
test   %r8d,%r8d
je     13c7 <nivelmedio+0x2b7>
cmp    %r10d,%r8d
je     13e1 <nivelmedio+0x2d1>
test   %r9d,%r9d
je     117a <nivelmedio+0x6a>
test   %ecx,%ecx
je     117a <nivelmedio+0x6a>
cmp    %r9d,%ecx
jne    117a <nivelmedio+0x6a>
pop    %rbx
pop    %rbp
ret

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

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