#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*/ fprintf(int /*<<< orphan*/, char *, ...);
int /*<<< orphan*/ stderr;
int whichpos(const char *cubie) {
  int ns[4] = {-1, -1, -1, -1};
  int i, j = 0;
  for (i = 0; i < 6; i++) {
    if (cubie[i] == 'n')
      ns[j++] = i;
  }
  if (ns[0] == 0 && ns[1] == 1 && ns[2] == 5 && ns[3] == -1)
    return 0;
  else if (ns[0] == 0 && ns[1] == 1 && ns[2] == 2 && ns[3] == 5)
    return 1;
  else if (ns[0] == 0 && ns[1] == 1 && ns[2] == 2 && ns[3] == -1)
    return 2;
  else if (ns[0] == 0 && ns[1] == 1 && ns[2] == 4 && ns[3] == 5)
    return 3;
  else if (ns[0] == 0 && ns[1] == 1 && ns[2] == 2 && ns[3] == 4)
    return 4;
  else if (ns[0] == 0 && ns[1] == 4 && ns[2] == 5 && ns[3] == -1)
    return 5;
  else if (ns[0] == 0 && ns[1] == 2 && ns[2] == 4 && ns[3] == 5)
    return 6;
  else if (ns[0] == 0 && ns[1] == 2 && ns[2] == 4 && ns[3] == -1)
    return 7;
  else if (ns[0] == 0 && ns[1] == 1 && ns[2] == 3 && ns[3] == 5)
    return 8;
  else if (ns[0] == 0 && ns[1] == 1 && ns[2] == 2 && ns[3] == 3)
    return 9;
  else if (ns[0] == 0 && ns[1] == 3 && ns[2] == 4 && ns[3] == 5)
    return 10;
  else if (ns[0] == 0 && ns[1] == 2 && ns[2] == 3 && ns[3] == 4)
    return 11;
  else if (ns[0] == 1 && ns[1] == 3 && ns[2] == 5 && ns[3] == -1)
    return 12;
  else if (ns[0] == 1 && ns[1] == 2 && ns[2] == 3 && ns[3] == 5)
    return 13;
  else if (ns[0] == 1 && ns[1] == 2 && ns[2] == 3 && ns[3] == -1)
    return 14;
  else if (ns[0] == 1 && ns[1] == 3 && ns[2] == 4 && ns[3] == 5)
    return 15;
  else if (ns[0] == 1 && ns[1] == 2 && ns[2] == 3 && ns[3] == 4)
    return 16;
  else if (ns[0] == 3 && ns[1] == 4 && ns[2] == 5 && ns[3] == -1)
    return 17;
  else if (ns[0] == 2 && ns[1] == 3 && ns[2] == 4 && ns[3] == 5)
    return 18;
  else if (ns[0] == 2 && ns[1] == 3 && ns[2] == 4 && ns[3] == -1)
    return 19;
  fprintf(stderr,
          "WARNING, SOMETHING HAS GONE TERRIBLLY WRONG IN WHICHPOS %d\n", 95);
  fprintf(stderr, "%.6s\n", cubie);
  fprintf(stderr, "%d, %d, %d, %d\n", ns[0], ns[1], ns[2], ns[3]);
  return -1;
}


x86 assembly (clang, -O0):
<whichpos>:
push   %rbp
mov    %rsp,%rbp
sub    $0x30,%rsp
mov    %rdi,-0x10(%rbp)
mov    0xedd(%rip),%rax
mov    %rax,-0x20(%rbp)
mov    0xeda(%rip),%rax
mov    %rax,-0x18(%rbp)
movl   $0x0,-0x28(%rbp)
movl   $0x0,-0x24(%rbp)
cmpl   $0x6,-0x24(%rbp)
jge    1186 <whichpos+0x76>
mov    -0x10(%rbp),%rax
movslq -0x24(%rbp),%rcx
movsbl (%rax,%rcx,1),%eax
cmp    $0x6e,%eax
jne    1173 <whichpos+0x63>
mov    -0x24(%rbp),%ecx
mov    -0x28(%rbp),%eax
mov    %eax,%edx
add    $0x1,%edx
mov    %edx,-0x28(%rbp)
cltq
mov    %ecx,-0x20(%rbp,%rax,4)
jmp    1178 <whichpos+0x68>
mov    -0x24(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x24(%rbp)
jmp    1140 <whichpos+0x30>
cmpl   $0x0,-0x20(%rbp)
jne    11ba <whichpos+0xaa>
cmpl   $0x1,-0x1c(%rbp)
jne    11ba <whichpos+0xaa>
cmpl   $0x5,-0x18(%rbp)
jne    11ba <whichpos+0xaa>
cmpl   $0xffffffff,-0x14(%rbp)
jne    11ba <whichpos+0xaa>
movl   $0x0,-0x4(%rbp)
jmp    1658 <whichpos+0x548>
cmpl   $0x0,-0x20(%rbp)
jne    11ee <whichpos+0xde>
cmpl   $0x1,-0x1c(%rbp)
jne    11ee <whichpos+0xde>
cmpl   $0x2,-0x18(%rbp)
jne    11ee <whichpos+0xde>
cmpl   $0x5,-0x14(%rbp)
jne    11ee <whichpos+0xde>
movl   $0x1,-0x4(%rbp)
jmp    1658 <whichpos+0x548>
cmpl   $0x0,-0x20(%rbp)
jne    1222 <whichpos+0x112>
cmpl   $0x1,-0x1c(%rbp)
jne    1222 <whichpos+0x112>
cmpl   $0x2,-0x18(%rbp)
jne    1222 <whichpos+0x112>
cmpl   $0xffffffff,-0x14(%rbp)
jne    1222 <whichpos+0x112>
movl   $0x2,-0x4(%rbp)
jmp    1658 <whichpos+0x548>
cmpl   $0x0,-0x20(%rbp)
jne    1256 <whichpos+0x146>
cmpl   $0x1,-0x1c(%rbp)
jne    1256 <whichpos+0x146>
cmpl   $0x4,-0x18(%rbp)
jne    1256 <whichpos+0x146>
cmpl   $0x5,-0x14(%rbp)
jne    1256 <whichpos+0x146>
movl   $0x3,-0x4(%rbp)
jmp    1658 <whichpos+0x548>
cmpl   $0x0,-0x20(%rbp)
jne    128a <whichpos+0x17a>
cmpl   $0x1,-0x1c(%rbp)
jne    128a <whichpos+0x17a>
cmpl   $0x2,-0x18(%rbp)
jne    128a <whichpos+0x17a>
cmpl   $0x4,-0x14(%rbp)
jne    128a <whichpos+0x17a>
movl   $0x4,-0x4(%rbp)
jmp    1658 <whichpos+0x548>
cmpl   $0x0,-0x20(%rbp)
jne    12be <whichpos+0x1ae>
cmpl   $0x4,-0x1c(%rbp)
jne    12be <whichpos+0x1ae>
cmpl   $0x5,-0x18(%rbp)
jne    12be <whichpos+0x1ae>
cmpl   $0xffffffff,-0x14(%rbp)
jne    12be <whichpos+0x1ae>
movl   $0x5,-0x4(%rbp)
jmp    1658 <whichpos+0x548>
cmpl   $0x0,-0x20(%rbp)
jne    12f2 <whichpos+0x1e2>
cmpl   $0x2,-0x1c(%rbp)
jne    12f2 <whichpos+0x1e2>
cmpl   $0x4,-0x18(%rbp)
jne    12f2 <whichpos+0x1e2>
cmpl   $0x5,-0x14(%rbp)
jne    12f2 <whichpos+0x1e2>
movl   $0x6,-0x4(%rbp)
jmp    1658 <whichpos+0x548>
cmpl   $0x0,-0x20(%rbp)
jne    1326 <whichpos+0x216>
cmpl   $0x2,-0x1c(%rbp)
jne    1326 <whichpos+0x216>
cmpl   $0x4,-0x18(%rbp)
jne    1326 <whichpos+0x216>
cmpl   $0xffffffff,-0x14(%rbp)
jne    1326 <whichpos+0x216>
movl   $0x7,-0x4(%rbp)
jmp    1658 <whichpos+0x548>
cmpl   $0x0,-0x20(%rbp)
jne    135a <whichpos+0x24a>
cmpl   $0x1,-0x1c(%rbp)
jne    135a <whichpos+0x24a>
cmpl   $0x3,-0x18(%rbp)
jne    135a <whichpos+0x24a>
cmpl   $0x5,-0x14(%rbp)
jne    135a <whichpos+0x24a>
movl   $0x8,-0x4(%rbp)
jmp    1658 <whichpos+0x548>
cmpl   $0x0,-0x20(%rbp)
jne    138e <whichpos+0x27e>
cmpl   $0x1,-0x1c(%rbp)
jne    138e <whichpos+0x27e>
cmpl   $0x2,-0x18(%rbp)
jne    138e <whichpos+0x27e>
cmpl   $0x3,-0x14(%rbp)
jne    138e <whichpos+0x27e>
movl   $0x9,-0x4(%rbp)
jmp    1658 <whichpos+0x548>
cmpl   $0x0,-0x20(%rbp)
jne    13c2 <whichpos+0x2b2>
cmpl   $0x3,-0x1c(%rbp)
jne    13c2 <whichpos+0x2b2>
cmpl   $0x4,-0x18(%rbp)
jne    13c2 <whichpos+0x2b2>
cmpl   $0x5,-0x14(%rbp)
jne    13c2 <whichpos+0x2b2>
movl   $0xa,-0x4(%rbp)
jmp    1658 <whichpos+0x548>
cmpl   $0x0,-0x20(%rbp)
jne    13f6 <whichpos+0x2e6>
cmpl   $0x2,-0x1c(%rbp)
jne    13f6 <whichpos+0x2e6>
cmpl   $0x3,-0x18(%rbp)
jne    13f6 <whichpos+0x2e6>
cmpl   $0x4,-0x14(%rbp)
jne    13f6 <whichpos+0x2e6>
movl   $0xb,-0x4(%rbp)
jmp    1658 <whichpos+0x548>
cmpl   $0x1,-0x20(%rbp)
jne    142a <whichpos+0x31a>
cmpl   $0x3,-0x1c(%rbp)
jne    142a <whichpos+0x31a>
cmpl   $0x5,-0x18(%rbp)
jne    142a <whichpos+0x31a>
cmpl   $0xffffffff,-0x14(%rbp)
jne    142a <whichpos+0x31a>
movl   $0xc,-0x4(%rbp)
jmp    1658 <whichpos+0x548>
cmpl   $0x1,-0x20(%rbp)
jne    145e <whichpos+0x34e>
cmpl   $0x2,-0x1c(%rbp)
jne    145e <whichpos+0x34e>
cmpl   $0x3,-0x18(%rbp)
jne    145e <whichpos+0x34e>
cmpl   $0x5,-0x14(%rbp)
jne    145e <whichpos+0x34e>
movl   $0xd,-0x4(%rbp)
jmp    1658 <whichpos+0x548>
cmpl   $0x1,-0x20(%rbp)
jne    1492 <whichpos+0x382>
cmpl   $0x2,-0x1c(%rbp)
jne    1492 <whichpos+0x382>
cmpl   $0x3,-0x18(%rbp)
jne    1492 <whichpos+0x382>
cmpl   $0xffffffff,-0x14(%rbp)
jne    1492 <whichpos+0x382>
movl   $0xe,-0x4(%rbp)
jmp    1658 <whichpos+0x548>
cmpl   $0x1,-0x20(%rbp)
jne    14c6 <whichpos+0x3b6>
cmpl   $0x3,-0x1c(%rbp)
jne    14c6 <whichpos+0x3b6>
cmpl   $0x4,-0x18(%rbp)
jne    14c6 <whichpos+0x3b6>
cmpl   $0x5,-0x14(%rbp)
jne    14c6 <whichpos+0x3b6>
movl   $0xf,-0x4(%rbp)
jmp    1658 <whichpos+0x548>
cmpl   $0x1,-0x20(%rbp)
jne    14fa <whichpos+0x3ea>
cmpl   $0x2,-0x1c(%rbp)
jne    14fa <whichpos+0x3ea>
cmpl   $0x3,-0x18(%rbp)
jne    14fa <whichpos+0x3ea>
cmpl   $0x4,-0x14(%rbp)
jne    14fa <whichpos+0x3ea>
movl   $0x10,-0x4(%rbp)
jmp    1658 <whichpos+0x548>
cmpl   $0x3,-0x20(%rbp)
jne    152e <whichpos+0x41e>
cmpl   $0x4,-0x1c(%rbp)
jne    152e <whichpos+0x41e>
cmpl   $0x5,-0x18(%rbp)
jne    152e <whichpos+0x41e>
cmpl   $0xffffffff,-0x14(%rbp)
jne    152e <whichpos+0x41e>
movl   $0x11,-0x4(%rbp)
jmp    1658 <whichpos+0x548>
cmpl   $0x2,-0x20(%rbp)
jne    1562 <whichpos+0x452>
cmpl   $0x3,-0x1c(%rbp)
jne    1562 <whichpos+0x452>
cmpl   $0x4,-0x18(%rbp)
jne    1562 <whichpos+0x452>
cmpl   $0x5,-0x14(%rbp)
jne    1562 <whichpos+0x452>
movl   $0x12,-0x4(%rbp)
jmp    1658 <whichpos+0x548>
cmpl   $0x2,-0x20(%rbp)
jne    1596 <whichpos+0x486>
cmpl   $0x3,-0x1c(%rbp)
jne    1596 <whichpos+0x486>
cmpl   $0x4,-0x18(%rbp)
jne    1596 <whichpos+0x486>
cmpl   $0xffffffff,-0x14(%rbp)
jne    1596 <whichpos+0x486>
movl   $0x13,-0x4(%rbp)
jmp    1658 <whichpos+0x548>
jmp    159b <whichpos+0x48b>
jmp    15a0 <whichpos+0x490>
jmp    15a5 <whichpos+0x495>
jmp    15aa <whichpos+0x49a>
jmp    15af <whichpos+0x49f>
jmp    15b4 <whichpos+0x4a4>
jmp    15b9 <whichpos+0x4a9>
jmp    15be <whichpos+0x4ae>
jmp    15c3 <whichpos+0x4b3>
jmp    15c8 <whichpos+0x4b8>
jmp    15cd <whichpos+0x4bd>
jmp    15d2 <whichpos+0x4c2>
jmp    15d7 <whichpos+0x4c7>
jmp    15dc <whichpos+0x4cc>
jmp    15e1 <whichpos+0x4d1>
jmp    15e6 <whichpos+0x4d6>
jmp    15eb <whichpos+0x4db>
jmp    15f0 <whichpos+0x4e0>
jmp    15f5 <whichpos+0x4e5>
mov    0x29e4(%rip),%rax
mov    (%rax),%edi
lea    0xa0b(%rip),%rsi
mov    $0x5f,%edx
mov    $0x0,%al
call   1030 <fprintf@plt>
mov    0x29c8(%rip),%rax
mov    (%rax),%edi
mov    -0x10(%rbp),%rdx
lea    0xa27(%rip),%rsi
mov    $0x0,%al
call   1030 <fprintf@plt>
mov    0x29ad(%rip),%rax
mov    (%rax),%edi
mov    -0x20(%rbp),%edx
mov    -0x1c(%rbp),%ecx
mov    -0x18(%rbp),%r8d
mov    -0x14(%rbp),%r9d
lea    0xa08(%rip),%rsi
mov    $0x0,%al
call   1030 <fprintf@plt>
movl   $0xffffffff,-0x4(%rbp)
mov    -0x4(%rbp),%eax
add    $0x30,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<whichpos>:
push   %rbp
push   %r15
push   %r14
push   %r13
push   %r12
push   %rbx
sub    $0x18,%rsp
mov    %rdi,%rbx
pcmpeqd %xmm0,%xmm0
movdqa %xmm0,(%rsp)
xor    %eax,%eax
cmpb   $0x6e,(%rdi)
je     140b <whichpos+0x2fb>
cmpb   $0x6e,0x1(%rbx)
je     1421 <whichpos+0x311>
cmpb   $0x6e,0x2(%rbx)
je     1437 <whichpos+0x327>
cmpb   $0x6e,0x3(%rbx)
je     144d <whichpos+0x33d>
cmpb   $0x6e,0x4(%rbx)
je     1463 <whichpos+0x353>
cmpb   $0x6e,0x5(%rbx)
jne    116c <whichpos+0x5c>
mov    %eax,%eax
movl   $0x5,(%rsp,%rax,4)
mov    (%rsp),%r15d
mov    0x4(%rsp),%r14d
mov    %r14d,%eax
xor    $0x1,%eax
or     %r15d,%eax
sete   %r9b
mov    0x8(%rsp),%r12d
mov    0xc(%rsp),%ebp
jne    119e <whichpos+0x8e>
cmp    $0x5,%r12d
jne    119e <whichpos+0x8e>
xor    %eax,%eax
cmp    $0xffffffff,%ebp
je     13fc <whichpos+0x2ec>
cmp    $0x2,%r12d
sete   %dl
and    %r9b,%dl
cmp    $0x1,%dl
jne    11bb <whichpos+0xab>
mov    $0x1,%eax
cmp    $0x5,%ebp
je     13fc <whichpos+0x2ec>
cmp    $0xffffffff,%ebp
sete   %cl
mov    $0x2,%eax
test   %cl,%dl
jne    13fc <whichpos+0x2ec>
cmp    $0x4,%r12d
sete   %al
and    %r9b,%al
cmp    $0x1,%al
jne    11ea <whichpos+0xda>
mov    $0x3,%eax
cmp    $0x5,%ebp
je     13fc <whichpos+0x2ec>
cmp    $0x4,%ebp
sete   %cl
mov    $0x4,%eax
test   %cl,%dl
jne    13fc <whichpos+0x2ec>
test   %r15d,%r15d
jne    121c <whichpos+0x10c>
cmp    $0x4,%r14d
jne    121c <whichpos+0x10c>
cmp    $0x5,%r12d
jne    121c <whichpos+0x10c>
mov    $0x5,%eax
cmp    $0xffffffff,%ebp
je     13fc <whichpos+0x2ec>
cmp    $0x4,%r12d
sete   %r8b
mov    %r14d,%esi
xor    $0x2,%esi
mov    %r15d,%eax
or     %esi,%eax
sete   %dil
and    %dil,%r8b
cmp    $0x1,%r8b
jne    124a <whichpos+0x13a>
mov    $0x6,%eax
cmp    $0x5,%ebp
je     13fc <whichpos+0x2ec>
cmp    $0xffffffff,%ebp
sete   %cl
mov    $0x7,%eax
test   %cl,%r8b
jne    13fc <whichpos+0x2ec>
cmp    $0x3,%r12d
sete   %al
and    %al,%r9b
cmp    $0x1,%r9b
jne    127c <whichpos+0x16c>
mov    $0x8,%eax
cmp    $0x5,%ebp
je     13fc <whichpos+0x2ec>
cmp    $0x3,%ebp
sete   %cl
mov    $0x9,%eax
test   %cl,%dl
jne    13fc <whichpos+0x2ec>
test   %r15d,%r15d
jne    12ae <whichpos+0x19e>
cmp    $0x3,%r14d
jne    12ae <whichpos+0x19e>
cmp    $0x4,%r12d
jne    12ae <whichpos+0x19e>
mov    $0xa,%eax
cmp    $0x5,%ebp
je     13fc <whichpos+0x2ec>
cmp    $0x3,%r12d
sete   %al
and    %al,%dil
cmp    $0x1,%dil
jne    12cc <whichpos+0x1bc>
mov    $0xb,%eax
cmp    $0x4,%ebp
je     13fc <whichpos+0x2ec>
mov    %r14d,%ecx
xor    $0x3,%ecx
mov    %r15d,%edi
xor    $0x1,%edi
mov    %edi,%eax
or     %ecx,%eax
sete   %dl
jne    12f5 <whichpos+0x1e5>
cmp    $0x5,%r12d
jne    12f5 <whichpos+0x1e5>
mov    $0xc,%eax
cmp    $0xffffffff,%ebp
je     13fc <whichpos+0x2ec>
mov    %r12d,%eax
xor    $0x3,%eax
or     %esi,%edi
or     %eax,%edi
sete   %sil
jne    1313 <whichpos+0x203>
mov    $0xd,%eax
cmp    $0x5,%ebp
je     13fc <whichpos+0x2ec>
cmp    $0xffffffff,%ebp
sete   %dil
mov    $0xe,%eax
test   %dil,%sil
jne    13fc <whichpos+0x2ec>
cmp    $0x4,%r12d
sete   %al
and    %al,%dl
cmp    $0x1,%dl
jne    1344 <whichpos+0x234>
mov    $0xf,%eax
cmp    $0x5,%ebp
je     13fc <whichpos+0x2ec>
cmp    $0x4,%ebp
sete   %dl
mov    $0x10,%eax
test   %dl,%sil
jne    13fc <whichpos+0x2ec>
cmp    $0x3,%r15d
jne    1378 <whichpos+0x268>
cmp    $0x4,%r14d
jne    1378 <whichpos+0x268>
cmp    $0x5,%r12d
jne    1378 <whichpos+0x268>
mov    $0x11,%eax
cmp    $0xffffffff,%ebp
je     13fc <whichpos+0x2ec>
mov    %r12d,%eax
xor    $0x4,%eax
mov    %r15d,%edx
xor    $0x2,%edx
or     %ecx,%edx
or     %eax,%edx
sete   %cl
jne    1397 <whichpos+0x287>
mov    $0x12,%eax
cmp    $0x5,%ebp
je     13fc <whichpos+0x2ec>
cmp    $0xffffffff,%ebp
sete   %dl
mov    $0x13,%eax
test   %dl,%cl
jne    13fc <whichpos+0x2ec>
mov    0x2c33(%rip),%r13
mov    0x0(%r13),%edi
lea    0xc48(%rip),%rsi
mov    $0x5f,%edx
xor    %eax,%eax
call   1030 <fprintf@plt>
mov    0x0(%r13),%edi
lea    0xc6d(%rip),%rsi
mov    %rbx,%rdx
xor    %eax,%eax
call   1030 <fprintf@plt>
mov    0x0(%r13),%edi
lea    0xc5e(%rip),%rsi
mov    %r15d,%edx
mov    %r14d,%ecx
mov    %r12d,%r8d
mov    %ebp,%r9d
xor    %eax,%eax
call   1030 <fprintf@plt>
mov    $0xffffffff,%eax
add    $0x18,%rsp
pop    %rbx
pop    %r12
pop    %r13
pop    %r14
pop    %r15
pop    %rbp
ret
movl   $0x0,(%rsp)
mov    $0x1,%eax
cmpb   $0x6e,0x1(%rbx)
jne    113f <whichpos+0x2f>
mov    %eax,%ecx
add    $0x1,%eax
movl   $0x1,(%rsp,%rcx,4)
cmpb   $0x6e,0x2(%rbx)
jne    1149 <whichpos+0x39>
mov    %eax,%ecx
add    $0x1,%eax
movl   $0x2,(%rsp,%rcx,4)
cmpb   $0x6e,0x3(%rbx)
jne    1153 <whichpos+0x43>
mov    %eax,%ecx
add    $0x1,%eax
movl   $0x3,(%rsp,%rcx,4)
cmpb   $0x6e,0x4(%rbx)
jne    115d <whichpos+0x4d>
mov    %eax,%ecx
add    $0x1,%eax
movl   $0x4,(%rsp,%rcx,4)
cmpb   $0x6e,0x5(%rbx)
je     1163 <whichpos+0x53>
jmp    116c <whichpos+0x5c>

LLVM IR (-O0):
@__const.whichpos.ns = [4 x i32] [i32 -1, i32 -1, i32 -1, i32 -1]
@stderr = global i32 0
@.str = [60 x i8] c"WARNING, SOMETHING HAS GONE TERRIBLLY WRONG IN WHICHPOS %d\0A\00"
@.str.1 = [6 x i8] c"%.6s\0A\00"
@.str.2 = [16 x i8] c"%d, %d, %d, %d\0A\00"
define i32 @whichpos(i8* %0) {
%2 = alloca i32
%3 = alloca i8*
%4 = alloca [4 x i32]
%5 = alloca i32
%6 = alloca i32
store i8* %0, i8** %3
%7 = bitcast [4 x i32]* %4 to i8*
store i32 0, i32* %6
store i32 0, i32* %5
br label %8
8: ; preds = %26, %1
%9 = load i32, i32* %5
%10 = icmp slt i32 %9, 6
br i1 %10, label %11, label %29
11: ; preds = %8
%12 = load i8*, i8** %3
%13 = load i32, i32* %5
%14 = sext i32 %13 to i64
%15 = getelementptr inbounds i8, i8* %12, i64 %14
%16 = load i8, i8* %15
%17 = sext i8 %16 to i32
%18 = icmp eq i32 %17, 110
br i1 %18, label %19, label %25
19: ; preds = %11
%20 = load i32, i32* %5
%21 = load i32, i32* %6
%22 = add nsw i32 %21, 1
store i32 %22, i32* %6
%23 = sext i32 %21 to i64
%24 = getelementptr inbounds [4 x i32], [4 x i32]* %4, i64 0, i64 %23
store i32 %20, i32* %24
br label %25
25: ; preds = %19, %11
br label %26
26: ; preds = %25
%27 = load i32, i32* %5
%28 = add nsw i32 %27, 1
store i32 %28, i32* %5
br label %8
29: ; preds = %8
%30 = getelementptr inbounds [4 x i32], [4 x i32]* %4, i64 0, i64 0
%31 = load i32, i32* %30
%32 = icmp eq i32 %31, 0
br i1 %32, label %33, label %46
33: ; preds = %29
%34 = getelementptr inbounds [4 x i32], [4 x i32]* %4, i64 0, i64 1
%35 = load i32, i32* %34
%36 = icmp eq i32 %35, 1
br i1 %36, label %37, label %46
37: ; preds = %33
%38 = getelementptr inbounds [4 x i32], [4 x i32]* %4, i64 0, i64 2
%39 = load i32, i32* %38
%40 = icmp eq i32 %39, 5
br i1 %40, label %41, label %46
41: ; preds = %37
%42 = getelementptr inbounds [4 x i32], [4 x i32]* %4, i64 0, i64 3
%43 = load i32, i32* %42
%44 = icmp eq i32 %43, -1
br i1 %44, label %45, label %46
45: ; preds = %41
store i32 0, i32* %2
br label %404
46: ; preds = %41, %37, %33, %29
%47 = getelementptr inbounds [4 x i32], [4 x i32]* %4, i64 0, i64 0
%48 = load i32, i32* %47
%49 = icmp eq i32 %48, 0
br i1 %49, label %50, label %63
50: ; preds = %46
%51 = getelementptr inbounds [4 x i32], [4 x i32]* %4, i64 0, i64 1
%52 = load i32, i32* %51
%53 = icmp eq i32 %52, 1
br i1 %53, label %54, label %63
54: ; preds = %50
%55 = getelementptr inbounds [4 x i32], [4 x i32]* %4, i64 0, i64 2
%56 = load i32, i32* %55
%57 = icmp eq i32 %56, 2
br i1 %57, label %58, label %63
58: ; preds = %54
%59 = getelementptr inbounds [4 x i32], [4 x i32]* %4, i64 0, i64 3
%60 = load i32, i32* %59
%61 = icmp eq i32 %60, 5
br i1 %61, label %62, label %63
62: ; preds = %58
store i32 1, i32* %2
br label %404
63: ; preds = %58, %54, %50, %46
%64 = getelementptr inbounds [4 x i32], [4 x i32]* %4, i64 0, i64 0
%65 = load i32, i32* %64
%66 = icmp eq i32 %65, 0
br i1 %66, label %67, label %80
67: ; preds = %63
%68 = getelementptr inbounds [4 x i32], [4 x i32]* %4, i64 0, i64 1
%69 = load i32, i32* %68
%70 = icmp eq i32 %69, 1
br i1 %70, label %71, label %80
71: ; preds = %67
%72 = getelementptr inbounds [4 x i32], [4 x i32]* %4, i64 0, i64 2
%73 = load i32, i32* %72
%74 = icmp eq i32 %73, 2
br i1 %74, label %75, label %80
75: ; preds = %71
%76 = getelementptr inbounds [4 x i32], [4 x i32]* %4, i64 0, i64 3
%77 = load i32, i32* %76
%78 = icmp eq i32 %77, -1
br i1 %78, label %79, label %80
79: ; preds = %75
store i32 2, i32* %2
br label %404
80: ; preds = %75, %71, %67, %63
%81 = getelementptr inbounds [4 x i32], [4 x i32]* %4, i64 0, i64 0
%82 = load i32, i32* %81
%83 = icmp eq i32 %82, 0
br i1 %83, label %84, label %97
84: ; preds = %80
%85 = getelementptr inbounds [4 x i32], [4 x i32]* %4, i64 0, i64 1
%86 = load i32, i32* %85
%87 = icmp eq i32 %86, 1
br i1 %87, label %88, label %97
88: ; preds = %84
%89 = getelementptr inbounds [4 x i32], [4 x i32]* %4, i64 0, i64 2
%90 = load i32, i32* %89
%91 = icmp eq i32 %90, 4
br i1 %91, label %92, label %97
92: ; preds = %88
%93 = getelementptr inbounds [4 x i32], [4 x i32]* %4, i64 0, i64 3
%94 = load i32, i32* %93
%95 = icmp eq i32 %94, 5
br i1 %95, label %96, label %97
96: ; preds = %92
store i32 3, i32* %2
br label %404
97: ; preds = %92, %88, %84, %80
%98 = getelementptr inbounds [4 x i32], [4 x i32]* %4, i64 0, i64 0
%99 = load i32, i32* %98
%100 = icmp eq i32 %99, 0
br i1 %100, label %101, label %114
101: ; preds = %97
%102 = getelementptr inbounds [4 x i32], [4 x i32]* %4, i64 0, i64 1
%103 = load i32, i32* %102
%104 = icmp eq i32 %103, 1
br i1 %104, label %105, label %114
105: ; preds = %101
%106 = getelementptr inbounds [4 x i32], [4 x i32]* %4, i64 0, i64 2
%107 = load i32, i32* %106
%108 = icmp eq i32 %107, 2
br i1 %108, label %109, label %114
109: ; preds = %105
%110 = getelementptr inbounds [4 x i32], [4 x i32]* %4, i64 0, i64 3
%111 = load i32, i32* %110
%112 = icmp eq i32 %111, 4
br i1 %112, label %113, label %114
113: ; preds = %109
store i32 4, i32* %2
br label %404
114: ; preds = %109, %105, %101, %97
%115 = getelementptr inbounds [4 x i32], [4 x i32]* %4, i64 0, i64 0
%116 = load i32, i32* %115
%117 = icmp eq i32 %116, 0
br i1 %117, label %118, label %131
118: ; preds = %114
%119 = getelementptr inbounds [4 x i32], [4 x i32]* %4, i64 0, i64 1
%120 = load i32, i32* %119
%121 = icmp eq i32 %120, 4
br i1 %121, label %122, label %131
122: ; preds = %118
%123 = getelementptr inbounds [4 x i32], [4 x i32]* %4, i64 0, i64 2
%124 = load i32, i32* %123
%125 = icmp eq i32 %124, 5
br i1 %125, label %126, label %131
126: ; preds = %122
%127 = getelementptr inbounds [4 x i32], [4 x i32]* %4, i64 0, i64 3
%128 = load i32, i32* %127
%129 = icmp eq i32 %128, -1
br i1 %129, label %130, label %131
130: ; preds = %126
store i32 5, i32* %2
br label %404
131: ; preds = %126, %122, %118, %114
%132 = getelementptr inbounds [4 x i32], [4 x i32]* %4, i64 0, i64 0
%133 = load i32, i32* %132
%134 = icmp eq i32 %133, 0
br i1 %134, label %135, label %148
135: ; preds = %131
%136 = getelementptr inbounds [4 x i32], [4 x i32]* %4, i64 0, i64 1
%137 = load i32, i32* %136
%138 = icmp eq i32 %137, 2
br i1 %138, label %139, label %148
139: ; preds = %135
%140 = getelementptr inbounds [4 x i32], [4 x i32]* %4, i64 0, i64 2
%141 = load i32, i32* %140
%142 = icmp eq i32 %141, 4
br i1 %142, label %143, label %148
143: ; preds = %139
%144 = getelementptr inbounds [4 x i32], [4 x i32]* %4, i64 0, i64 3
%145 = load i32, i32* %144
%146 = icmp eq i32 %145, 5
br i1 %146, label %147, label %148
147: ; preds = %143
store i32 6, i32* %2
br label %404
148: ; preds = %143, %139, %135, %131
%149 = getelementptr inbounds [4 x i32], [4 x i32]* %4, i64 0, i64 0
%150 = load i32, i32* %149
%151 = icmp eq i32 %150, 0
br i1 %151, label %152, label %165
152: ; preds = %148
%153 = getelementptr inbounds [4 x i32], [4 x i32]* %4, i64 0, i64 1
%154 = load i32, i32* %153
%155 = icmp eq i32 %154, 2
br i1 %155, label %156, label %165
156: ; preds = %152
%157 = getelementptr inbounds [4 x i32], [4 x i32]* %4, i64 0, i64 2
%158 = load i32, i32* %157
%159 = icmp eq i32 %158, 4
br i1 %159, label %160, label %165
160: ; preds = %156
%161 = getelementptr inbounds [4 x i32], [4 x i32]* %4, i64 0, i64 3
%162 = load i32, i32* %161
%163 = icmp eq i32 %162, -1
br i1 %163, label %164, label %165
164: ; preds = %160
store i32 7, i32* %2
br label %404
165: ; preds = %160, %156, %152, %148
%166 = getelementptr inbounds [4 x i32], [4 x i32]* %4, i64 0, i64 0
%167 = load i32, i32* %166
%168 = icmp eq i32 %167, 0
br i1 %168, label %169, label %182
169: ; preds = %165
%170 = getelementptr inbounds [4 x i32], [4 x i32]* %4, i64 0, i64 1
%171 = load i32, i32* %170
%172 = icmp eq i32 %171, 1
br i1 %172, label %173, label %182
173: ; preds = %169
%174 = getelementptr inbounds [4 x i32], [4 x i32]* %4, i64 0, i64 2
%175 = load i32, i32* %174
%176 = icmp eq i32 %175, 3
br i1 %176, label %177, label %182
177: ; preds = %173
%178 = getelementptr inbounds [4 x i32], [4 x i32]* %4, i64 0, i64 3
%179 = load i32, i32* %178
%180 = icmp eq i32 %179, 5
br i1 %180, label %181, label %182
181: ; preds = %177
store i32 8, i32* %2
br label %404
182: ; preds = %177, %173, %169, %165
%183 = getelementptr inbounds [4 x i32], [4 x i32]* %4, i64 0, i64 0
%184 = load i32, i32* %183
%185 = icmp eq i32 %184, 0
br i1 %185, label %186, label %199
186: ; preds = %182
%187 = getelementptr inbounds [4 x i32], [4 x i32]* %4, i64 0, i64 1
%188 = load i32, i32* %187
%189 = icmp eq i32 %188, 1
br i1 %189, label %190, label %199
190: ; preds = %186
%191 = getelementptr inbounds [4 x i32], [4 x i32]* %4, i64 0, i64 2
%192 = load i32, i32* %191
%193 = icmp eq i32 %192, 2
br i1 %193, label %194, label %199
194: ; preds = %190
%195 = getelementptr inbounds [4 x i32], [4 x i32]* %4, i64 0, i64 3
%196 = load i32, i32* %195
%197 = icmp eq i32 %196, 3
br i1 %197, label %198, label %199
198: ; preds = %194
store i32 9, i32* %2
br label %404
199: ; preds = %194, %190, %186, %182
%200 = getelementptr inbounds [4 x i32], [4 x i32]* %4, i64 0, i64 0
%201 = load i32, i32* %200
%202 = icmp eq i32 %201, 0
br i1 %202, label %203, label %216
203: ; preds = %199
%204 = getelementptr inbounds [4 x i32], [4 x i32]* %4, i64 0, i64 1
%205 = load i32, i32* %204
%206 = icmp eq i32 %205, 3
br i1 %206, label %207, label %216
207: ; preds = %203
%208 = getelementptr inbounds [4 x i32], [4 x i32]* %4, i64 0, i64 2
%209 = load i32, i32* %208
%210 = icmp eq i32 %209, 4
br i1 %210, label %211, label %216
211: ; preds = %207
%212 = getelementptr inbounds [4 x i32], [4 x i32]* %4, i64 0, i64 3
%213 = load i32, i32* %212
%214 = icmp eq i32 %213, 5
br i1 %214, label %215, label %216
215: ; preds = %211
store i32 10, i32* %2
br label %404
216: ; preds = %211, %207, %203, %199
%217 = getelementptr inbounds [4 x i32], [4 x i32]* %4, i64 0, i64 0
%218 = load i32, i32* %217
%219 = icmp eq i32 %218, 0
br i1 %219, label %220, label %233
220: ; preds = %216
%221 = getelementptr inbounds [4 x i32], [4 x i32]* %4, i64 0, i64 1
%222 = load i32, i32* %221
%223 = icmp eq i32 %222, 2
br i1 %223, label %224, label %233
224: ; preds = %220
%225 = getelementptr inbounds [4 x i32], [4 x i32]* %4, i64 0, i64 2
%226 = load i32, i32* %225
%227 = icmp eq i32 %226, 3
br i1 %227, label %228, label %233
228: ; preds = %224
%229 = getelementptr inbounds [4 x i32], [4 x i32]* %4, i64 0, i64 3
%230 = load i32, i32* %229
%231 = icmp eq i32 %230, 4
br i1 %231, label %232, label %233
232: ; preds = %228
store i32 11, i32* %2
br label %404
233: ; preds = %228, %224, %220, %216
%234 = getelementptr inbounds [4 x i32], [4 x i32]* %4, i64 0, i64 0
%235 = load i32, i32* %234
%236 = icmp eq i32 %235, 1
br i1 %236, label %237, label %250
237: ; preds = %233
%238 = getelementptr inbounds [4 x i32], [4 x i32]* %4, i64 0, i64 1
%239 = load i32, i32* %238
%240 = icmp eq i32 %239, 3
br i1 %240, label %241, label %250
241: ; preds = %237
%242 = getelementptr inbounds [4 x i32], [4 x i32]* %4, i64 0, i64 2
%243 = load i32, i32* %242
%244 = icmp eq i32 %243, 5
br i1 %244, label %245, label %250
245: ; preds = %241
%246 = getelementptr inbounds [4 x i32], [4 x i32]* %4, i64 0, i64 3
%247 = load i32, i32* %246
%248 = icmp eq i32 %247, -1
br i1 %248, label %249, label %250
249: ; preds = %245
store i32 12, i32* %2
br label %404
250: ; preds = %245, %241, %237, %233
%251 = getelementptr inbounds [4 x i32], [4 x i32]* %4, i64 0, i64 0
%252 = load i32, i32* %251
%253 = icmp eq i32 %252, 1
br i1 %253, label %254, label %267
254: ; preds = %250
%255 = getelementptr inbounds [4 x i32], [4 x i32]* %4, i64 0, i64 1
%256 = load i32, i32* %255
%257 = icmp eq i32 %256, 2
br i1 %257, label %258, label %267
258: ; preds = %254
%259 = getelementptr inbounds [4 x i32], [4 x i32]* %4, i64 0, i64 2
%260 = load i32, i32* %259
%261 = icmp eq i32 %260, 3
br i1 %261, label %262, label %267
262: ; preds = %258
%263 = getelementptr inbounds [4 x i32], [4 x i32]* %4, i64 0, i64 3
%264 = load i32, i32* %263
%265 = icmp eq i32 %264, 5
br i1 %265, label %266, label %267
266: ; preds = %262
store i32 13, i32* %2
br label %404
267: ; preds = %262, %258, %254, %250
%268 = getelementptr inbounds [4 x i32], [4 x i32]* %4, i64 0, i64 0
%269 = load i32, i32* %268
%270 = icmp eq i32 %269, 1
br i1 %270, label %271, label %284
271: ; preds = %267
%272 = getelementptr inbounds [4 x i32], [4 x i32]* %4, i64 0, i64 1
%273 = load i32, i32* %272
%274 = icmp eq i32 %273, 2
br i1 %274, label %275, label %284
275: ; preds = %271
%276 = getelementptr inbounds [4 x i32], [4 x i32]* %4, i64 0, i64 2
%277 = load i32, i32* %276
%278 = icmp eq i32 %277, 3
br i1 %278, label %279, label %284
279: ; preds = %275
%280 = getelementptr inbounds [4 x i32], [4 x i32]* %4, i64 0, i64 3
%281 = load i32, i32* %280
%282 = icmp eq i32 %281, -1
br i1 %282, label %283, label %284
283: ; preds = %279
store i32 14, i32* %2
br label %404
284: ; preds = %279, %275, %271, %267
%285 = getelementptr inbounds [4 x i32], [4 x i32]* %4, i64 0, i64 0
%286 = load i32, i32* %285
%287 = icmp eq i32 %286, 1
br i1 %287, label %288, label %301
288: ; preds = %284
%289 = getelementptr inbounds [4 x i32], [4 x i32]* %4, i64 0, i64 1
%290 = load i32, i32* %289
%291 = icmp eq i32 %290, 3
br i1 %291, label %292, label %301
292: ; preds = %288
%293 = getelementptr inbounds [4 x i32], [4 x i32]* %4, i64 0, i64 2
%294 = load i32, i32* %293
%295 = icmp eq i32 %294, 4
br i1 %295, label %296, label %301
296: ; preds = %292
%297 = getelementptr inbounds [4 x i32], [4 x i32]* %4, i64 0, i64 3
%298 = load i32, i32* %297
%299 = icmp eq i32 %298, 5
br i1 %299, label %300, label %301
300: ; preds = %296
store i32 15, i32* %2
br label %404
301: ; preds = %296, %292, %288, %284
%302 = getelementptr inbounds [4 x i32], [4 x i32]* %4, i64 0, i64 0
%303 = load i32, i32* %302
%304 = icmp eq i32 %303, 1
br i1 %304, label %305, label %318
305: ; preds = %301
%306 = getelementptr inbounds [4 x i32], [4 x i32]* %4, i64 0, i64 1
%307 = load i32, i32* %306
%308 = icmp eq i32 %307, 2
br i1 %308, label %309, label %318
309: ; preds = %305
%310 = getelementptr inbounds [4 x i32], [4 x i32]* %4, i64 0, i64 2
%311 = load i32, i32* %310
%312 = icmp eq i32 %311, 3
br i1 %312, label %313, label %318
313: ; preds = %309
%314 = getelementptr inbounds [4 x i32], [4 x i32]* %4, i64 0, i64 3
%315 = load i32, i32* %314
%316 = icmp eq i32 %315, 4
br i1 %316, label %317, label %318
317: ; preds = %313
store i32 16, i32* %2
br label %404
318: ; preds = %313, %309, %305, %301
%319 = getelementptr inbounds [4 x i32], [4 x i32]* %4, i64 0, i64 0
%320 = load i32, i32* %319
%321 = icmp eq i32 %320, 3
br i1 %321, label %322, label %335
322: ; preds = %318
%323 = getelementptr inbounds [4 x i32], [4 x i32]* %4, i64 0, i64 1
%324 = load i32, i32* %323
%325 = icmp eq i32 %324, 4
br i1 %325, label %326, label %335
326: ; preds = %322
%327 = getelementptr inbounds [4 x i32], [4 x i32]* %4, i64 0, i64 2
%328 = load i32, i32* %327
%329 = icmp eq i32 %328, 5
br i1 %329, label %330, label %335
330: ; preds = %326
%331 = getelementptr inbounds [4 x i32], [4 x i32]* %4, i64 0, i64 3
%332 = load i32, i32* %331
%333 = icmp eq i32 %332, -1
br i1 %333, label %334, label %335
334: ; preds = %330
store i32 17, i32* %2
br label %404
335: ; preds = %330, %326, %322, %318
%336 = getelementptr inbounds [4 x i32], [4 x i32]* %4, i64 0, i64 0
%337 = load i32, i32* %336
%338 = icmp eq i32 %337, 2
br i1 %338, label %339, label %352
339: ; preds = %335
%340 = getelementptr inbounds [4 x i32], [4 x i32]* %4, i64 0, i64 1
%341 = load i32, i32* %340
%342 = icmp eq i32 %341, 3
br i1 %342, label %343, label %352
343: ; preds = %339
%344 = getelementptr inbounds [4 x i32], [4 x i32]* %4, i64 0, i64 2
%345 = load i32, i32* %344
%346 = icmp eq i32 %345, 4
br i1 %346, label %347, label %352
347: ; preds = %343
%348 = getelementptr inbounds [4 x i32], [4 x i32]* %4, i64 0, i64 3
%349 = load i32, i32* %348
%350 = icmp eq i32 %349, 5
br i1 %350, label %351, label %352
351: ; preds = %347
store i32 18, i32* %2
br label %404
352: ; preds = %347, %343, %339, %335
%353 = getelementptr inbounds [4 x i32], [4 x i32]* %4, i64 0, i64 0
%354 = load i32, i32* %353
%355 = icmp eq i32 %354, 2
br i1 %355, label %356, label %369
356: ; preds = %352
%357 = getelementptr inbounds [4 x i32], [4 x i32]* %4, i64 0, i64 1
%358 = load i32, i32* %357
%359 = icmp eq i32 %358, 3
br i1 %359, label %360, label %369
360: ; preds = %356
%361 = getelementptr inbounds [4 x i32], [4 x i32]* %4, i64 0, i64 2
%362 = load i32, i32* %361
%363 = icmp eq i32 %362, 4
br i1 %363, label %364, label %369
364: ; preds = %360
%365 = getelementptr inbounds [4 x i32], [4 x i32]* %4, i64 0, i64 3
%366 = load i32, i32* %365
%367 = icmp eq i32 %366, -1
br i1 %367, label %368, label %369
368: ; preds = %364
store i32 19, i32* %2
br label %404
369: ; preds = %364, %360, %356, %352
br label %370
370: ; preds = %369
br label %371
371: ; preds = %370
br label %372
372: ; preds = %371
br label %373
373: ; preds = %372
br label %374
374: ; preds = %373
br label %375
375: ; preds = %374
br label %376
376: ; preds = %375
br label %377
377: ; preds = %376
br label %378
378: ; preds = %377
br label %379
379: ; preds = %378
br label %380
380: ; preds = %379
br label %381
381: ; preds = %380
br label %382
382: ; preds = %381
br label %383
383: ; preds = %382
br label %384
384: ; preds = %383
br label %385
385: ; preds = %384
br label %386
386: ; preds = %385
br label %387
387: ; preds = %386
br label %388
388: ; preds = %387
%389 = load i32, i32* @stderr
%390 = call i32 (i32, i8*, ...) @fprintf(i32 %389, i8* getelementptr inbounds ([60 x i8], [60 x i8]* @.str, i64 0, i64 0), i32 95)
%391 = load i32, i32* @stderr
%392 = load i8*, i8** %3
%393 = call i32 (i32, i8*, ...) @fprintf(i32 %391, i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.1, i64 0, i64 0), i8* %392)
%394 = load i32, i32* @stderr
%395 = getelementptr inbounds [4 x i32], [4 x i32]* %4, i64 0, i64 0
%396 = load i32, i32* %395
%397 = getelementptr inbounds [4 x i32], [4 x i32]* %4, i64 0, i64 1
%398 = load i32, i32* %397
%399 = getelementptr inbounds [4 x i32], [4 x i32]* %4, i64 0, i64 2
%400 = load i32, i32* %399
%401 = getelementptr inbounds [4 x i32], [4 x i32]* %4, i64 0, i64 3
%402 = load i32, i32* %401
%403 = call i32 (i32, i8*, ...) @fprintf(i32 %394, i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.2, i64 0, i64 0), i32 %396, i32 %398, i32 %400, i32 %402)
store i32 -1, i32* %2
br label %404
404: ; preds = %388, %368, %351, %334, %317, %300, %283, %266, %249, %232, %215, %198, %181, %164, %147, %130, %113, %96, %79, %62, %45
%405 = load i32, i32* %2
ret i32 %405
}

LLVM IR (-O2):
@stderr = global i32 0
@.str = [60 x i8] c"WARNING, SOMETHING HAS GONE TERRIBLLY WRONG IN WHICHPOS %d\0A\00"
@.str.1 = [6 x i8] c"%.6s\0A\00"
@.str.2 = [16 x i8] c"%d, %d, %d, %d\0A\00"
define i32 @whichpos(i8* %0) {
%2 = alloca [4 x i32]
%3 = bitcast [4 x i32]* %2 to i8*
%4 = load i8, i8* %0
%5 = icmp eq i8 %4, 110
br i1 %5, label %6, label %8
6: ; preds = %1
%7 = getelementptr inbounds [4 x i32], [4 x i32]* %2, i64 0, i64 0
store i32 0, i32* %7
br label %8
8: ; preds = %1, %6
%9 = phi i32 [ 1, %6 ], [ 0, %1 ]
%10 = getelementptr inbounds i8, i8* %0, i64 1
%11 = load i8, i8* %10
%12 = icmp eq i8 %11, 110
br i1 %12, label %13, label %17
13: ; preds = %8
%14 = add nuw nsw i32 %9, 1
%15 = zext i32 %9 to i64
%16 = getelementptr inbounds [4 x i32], [4 x i32]* %2, i64 0, i64 %15
store i32 1, i32* %16
br label %17
17: ; preds = %13, %8
%18 = phi i32 [ %14, %13 ], [ %9, %8 ]
%19 = getelementptr inbounds i8, i8* %0, i64 2
%20 = load i8, i8* %19
%21 = icmp eq i8 %20, 110
br i1 %21, label %22, label %26
22: ; preds = %17
%23 = add nuw nsw i32 %18, 1
%24 = zext i32 %18 to i64
%25 = getelementptr inbounds [4 x i32], [4 x i32]* %2, i64 0, i64 %24
store i32 2, i32* %25
br label %26
26: ; preds = %22, %17
%27 = phi i32 [ %23, %22 ], [ %18, %17 ]
%28 = getelementptr inbounds i8, i8* %0, i64 3
%29 = load i8, i8* %28
%30 = icmp eq i8 %29, 110
br i1 %30, label %31, label %35
31: ; preds = %26
%32 = add nuw nsw i32 %27, 1
%33 = zext i32 %27 to i64
%34 = getelementptr inbounds [4 x i32], [4 x i32]* %2, i64 0, i64 %33
store i32 3, i32* %34
br label %35
35: ; preds = %31, %26
%36 = phi i32 [ %32, %31 ], [ %27, %26 ]
%37 = getelementptr inbounds i8, i8* %0, i64 4
%38 = load i8, i8* %37
%39 = icmp eq i8 %38, 110
br i1 %39, label %40, label %44
40: ; preds = %35
%41 = add nuw nsw i32 %36, 1
%42 = zext i32 %36 to i64
%43 = getelementptr inbounds [4 x i32], [4 x i32]* %2, i64 0, i64 %42
store i32 4, i32* %43
br label %44
44: ; preds = %40, %35
%45 = phi i32 [ %41, %40 ], [ %36, %35 ]
%46 = getelementptr inbounds i8, i8* %0, i64 5
%47 = load i8, i8* %46
%48 = icmp eq i8 %47, 110
br i1 %48, label %49, label %52
49: ; preds = %44
%50 = zext i32 %45 to i64
%51 = getelementptr inbounds [4 x i32], [4 x i32]* %2, i64 0, i64 %50
store i32 5, i32* %51
br label %52
52: ; preds = %49, %44
%53 = getelementptr inbounds [4 x i32], [4 x i32]* %2, i64 0, i64 0
%54 = load i32, i32* %53
%55 = icmp eq i32 %54, 0
%56 = getelementptr inbounds [4 x i32], [4 x i32]* %2, i64 0, i64 1
%57 = load i32, i32* %56
%58 = icmp eq i32 %57, 1
%59 = select i1 %55, i1 %58, i1 false
%60 = getelementptr inbounds [4 x i32], [4 x i32]* %2, i64 0, i64 2
%61 = load i32, i32* %60
%62 = icmp eq i32 %61, 5
%63 = select i1 %59, i1 %62, i1 false
%64 = getelementptr inbounds [4 x i32], [4 x i32]* %2, i64 0, i64 3
%65 = load i32, i32* %64
%66 = icmp eq i32 %65, -1
%67 = select i1 %63, i1 %66, i1 false
br i1 %67, label %144, label %68
68: ; preds = %52
%69 = icmp eq i32 %61, 2
%70 = select i1 %59, i1 %69, i1 false
%71 = icmp eq i32 %65, 5
%72 = select i1 %70, i1 %71, i1 false
br i1 %72, label %144, label %73
73: ; preds = %68
%74 = select i1 %70, i1 %66, i1 false
br i1 %74, label %144, label %75
75: ; preds = %73
%76 = icmp eq i32 %61, 4
%77 = select i1 %59, i1 %76, i1 false
%78 = select i1 %77, i1 %71, i1 false
br i1 %78, label %144, label %79
79: ; preds = %75
%80 = icmp eq i32 %65, 4
%81 = select i1 %70, i1 %80, i1 false
br i1 %81, label %144, label %82
82: ; preds = %79
%83 = icmp eq i32 %57, 4
%84 = select i1 %55, i1 %83, i1 false
%85 = select i1 %84, i1 %62, i1 false
%86 = select i1 %85, i1 %66, i1 false
br i1 %86, label %144, label %87
87: ; preds = %82
%88 = icmp eq i32 %57, 2
%89 = select i1 %55, i1 %88, i1 false
%90 = select i1 %89, i1 %76, i1 false
%91 = select i1 %90, i1 %71, i1 false
br i1 %91, label %144, label %92
92: ; preds = %87
%93 = select i1 %90, i1 %66, i1 false
br i1 %93, label %144, label %94
94: ; preds = %92
%95 = icmp eq i32 %61, 3
%96 = select i1 %59, i1 %95, i1 false
%97 = select i1 %96, i1 %71, i1 false
br i1 %97, label %144, label %98
98: ; preds = %94
%99 = icmp eq i32 %65, 3
%100 = select i1 %70, i1 %99, i1 false
br i1 %100, label %144, label %101
101: ; preds = %98
%102 = icmp eq i32 %57, 3
%103 = select i1 %55, i1 %102, i1 false
%104 = select i1 %103, i1 %76, i1 false
%105 = select i1 %104, i1 %71, i1 false
br i1 %105, label %144, label %106
106: ; preds = %101
%107 = select i1 %89, i1 %95, i1 false
%108 = select i1 %107, i1 %80, i1 false
br i1 %108, label %144, label %109
109: ; preds = %106
%110 = icmp eq i32 %54, 1
%111 = select i1 %110, i1 %102, i1 false
%112 = select i1 %111, i1 %62, i1 false
%113 = select i1 %112, i1 %66, i1 false
br i1 %113, label %144, label %114
114: ; preds = %109
%115 = select i1 %110, i1 %88, i1 false
%116 = select i1 %115, i1 %95, i1 false
%117 = select i1 %116, i1 %71, i1 false
br i1 %117, label %144, label %118
118: ; preds = %114
%119 = select i1 %116, i1 %66, i1 false
br i1 %119, label %144, label %120
120: ; preds = %118
%121 = select i1 %111, i1 %76, i1 false
%122 = select i1 %121, i1 %71, i1 false
br i1 %122, label %144, label %123
123: ; preds = %120
%124 = select i1 %116, i1 %80, i1 false
br i1 %124, label %144, label %125
125: ; preds = %123
%126 = icmp eq i32 %54, 3
%127 = select i1 %126, i1 %83, i1 false
%128 = select i1 %127, i1 %62, i1 false
%129 = select i1 %128, i1 %66, i1 false
br i1 %129, label %144, label %130
130: ; preds = %125
%131 = icmp eq i32 %54, 2
%132 = select i1 %131, i1 %102, i1 false
%133 = select i1 %132, i1 %76, i1 false
%134 = select i1 %133, i1 %71, i1 false
br i1 %134, label %144, label %135
135: ; preds = %130
%136 = select i1 %133, i1 %66, i1 false
br i1 %136, label %144, label %137
137: ; preds = %135
%138 = load i32, i32* @stderr
%139 = tail call i32 (i32, i8*, ...) @fprintf(i32 %138, i8* getelementptr inbounds ([60 x i8], [60 x i8]* @.str, i64 0, i64 0), i32 95)
%140 = load i32, i32* @stderr
%141 = tail call i32 (i32, i8*, ...) @fprintf(i32 %140, i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.1, i64 0, i64 0), i8* %0)
%142 = load i32, i32* @stderr
%143 = tail call i32 (i32, i8*, ...) @fprintf(i32 %142, i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.2, i64 0, i64 0), i32 %54, i32 %57, i32 %61, i32 %65)
br label %144
144: ; preds = %135, %130, %125, %123, %120, %118, %114, %109, %106, %101, %98, %94, %92, %87, %82, %79, %75, %73, %68, %52, %137
%145 = phi i32 [ -1, %137 ], [ 0, %52 ], [ 1, %68 ], [ 2, %73 ], [ 3, %75 ], [ 4, %79 ], [ 5, %82 ], [ 6, %87 ], [ 7, %92 ], [ 8, %94 ], [ 9, %98 ], [ 10, %101 ], [ 11, %106 ], [ 12, %109 ], [ 13, %114 ], [ 14, %118 ], [ 15, %120 ], [ 16, %123 ], [ 17, %125 ], [ 18, %130 ], [ 19, %135 ]
ret i32 %145
}