#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*/ abort();
scalar_t__ strncmp(char const *, char const *, int);
void main_test(void) {
  const char *const s1 = "hello world";
  const char *s2, *s3;
  int n = 6, x;
  s2 = s1;
  if (strncmp(++s2, "ello", 3) != 0 || s2 != s1 + 1)
    abort();
  s2 = s1;
  if (strncmp("ello", ++s2, 3) != 0 || s2 != s1 + 1)
    abort();
  s2 = s1;
  if (strncmp(++s2, "ello", 4) != 0 || s2 != s1 + 1)
    abort();
  s2 = s1;
  if (strncmp("ello", ++s2, 4) != 0 || s2 != s1 + 1)
    abort();
  s2 = s1;
  if (strncmp(++s2, "ello", 5) <= 0 || s2 != s1 + 1)
    abort();
  s2 = s1;
  if (strncmp("ello", ++s2, 5) >= 0 || s2 != s1 + 1)
    abort();
  s2 = s1;
  if (strncmp(++s2, "ello", 6) <= 0 || s2 != s1 + 1)
    abort();
  s2 = s1;
  if (strncmp("ello", ++s2, 6) >= 0 || s2 != s1 + 1)
    abort();
  s2 = s1;
  if (strncmp(++s2, "zllo", 3) >= 0 || s2 != s1 + 1)
    abort();
  s2 = s1;
  if (strncmp("zllo", ++s2, 3) <= 0 || s2 != s1 + 1)
    abort();
  s2 = s1;
  if (strncmp(++s2, "zllo", 4) >= 0 || s2 != s1 + 1)
    abort();
  s2 = s1;
  if (strncmp("zllo", ++s2, 4) <= 0 || s2 != s1 + 1)
    abort();
  s2 = s1;
  if (strncmp(++s2, "zllo", 5) >= 0 || s2 != s1 + 1)
    abort();
  s2 = s1;
  if (strncmp("zllo", ++s2, 5) <= 0 || s2 != s1 + 1)
    abort();
  s2 = s1;
  if (strncmp(++s2, "zllo", 6) >= 0 || s2 != s1 + 1)
    abort();
  s2 = s1;
  if (strncmp("zllo", ++s2, 6) <= 0 || s2 != s1 + 1)
    abort();
  s2 = s1;
  if (strncmp(++s2, "allo", 3) <= 0 || s2 != s1 + 1)
    abort();
  s2 = s1;
  if (strncmp("allo", ++s2, 3) >= 0 || s2 != s1 + 1)
    abort();
  s2 = s1;
  if (strncmp(++s2, "allo", 4) <= 0 || s2 != s1 + 1)
    abort();
  s2 = s1;
  if (strncmp("allo", ++s2, 4) >= 0 || s2 != s1 + 1)
    abort();
  s2 = s1;
  if (strncmp(++s2, "allo", 5) <= 0 || s2 != s1 + 1)
    abort();
  s2 = s1;
  if (strncmp("allo", ++s2, 5) >= 0 || s2 != s1 + 1)
    abort();
  s2 = s1;
  if (strncmp(++s2, "allo", 6) <= 0 || s2 != s1 + 1)
    abort();
  s2 = s1;
  if (strncmp("allo", ++s2, 6) >= 0 || s2 != s1 + 1)
    abort();
  s2 = s1;
  n = 2;
  x = 1;
  if (strncmp(++s2, s1 + (x & 3), ++n) != 0 || s2 != s1 + 1 || n != 3)
    abort();
  s2 = s1;
  n = 2;
  x = 1;
  if (strncmp(s1 + (x & 3), ++s2, ++n) != 0 || s2 != s1 + 1 || n != 3)
    abort();
  s2 = s1;
  n = 3;
  x = 1;
  if (strncmp(++s2, s1 + (x & 3), ++n) != 0 || s2 != s1 + 1 || n != 4)
    abort();
  s2 = s1;
  n = 3;
  x = 1;
  if (strncmp(s1 + (x & 3), ++s2, ++n) != 0 || s2 != s1 + 1 || n != 4)
    abort();
  s2 = s1;
  n = 4;
  x = 1;
  if (strncmp(++s2, s1 + (x & 3), ++n) != 0 || s2 != s1 + 1 || n != 5)
    abort();
  s2 = s1;
  n = 4;
  x = 1;
  if (strncmp(s1 + (x & 3), ++s2, ++n) != 0 || s2 != s1 + 1 || n != 5)
    abort();
  s2 = s1;
  n = 5;
  x = 1;
  if (strncmp(++s2, s1 + (x & 3), ++n) != 0 || s2 != s1 + 1 || n != 6)
    abort();
  s2 = s1;
  n = 5;
  x = 1;
  if (strncmp(s1 + (x & 3), ++s2, ++n) != 0 || s2 != s1 + 1 || n != 6)
    abort();
  s2 = s1;
  n = 2;
  if (strncmp(++s2, "zllo", ++n) >= 0 || s2 != s1 + 1 || n != 3)
    abort();
  s2 = s1;
  n = 2;
  x = 1;
  if (strncmp("zllo", ++s2, ++n) <= 0 || s2 != s1 + 1 || n != 3)
    abort();
  s2 = s1;
  n = 3;
  x = 1;
  if (strncmp(++s2, "zllo", ++n) >= 0 || s2 != s1 + 1 || n != 4)
    abort();
  s2 = s1;
  n = 3;
  x = 1;
  if (strncmp("zllo", ++s2, ++n) <= 0 || s2 != s1 + 1 || n != 4)
    abort();
  s2 = s1;
  n = 4;
  x = 1;
  if (strncmp(++s2, "zllo", ++n) >= 0 || s2 != s1 + 1 || n != 5)
    abort();
  s2 = s1;
  n = 4;
  x = 1;
  if (strncmp("zllo", ++s2, ++n) <= 0 || s2 != s1 + 1 || n != 5)
    abort();
  s2 = s1;
  n = 5;
  x = 1;
  if (strncmp(++s2, "zllo", ++n) >= 0 || s2 != s1 + 1 || n != 6)
    abort();
  s2 = s1;
  n = 5;
  x = 1;
  if (strncmp("zllo", ++s2, ++n) <= 0 || s2 != s1 + 1 || n != 6)
    abort();
  s2 = s1;
  n = 2;
  if (strncmp(++s2, "allo", ++n) <= 0 || s2 != s1 + 1 || n != 3)
    abort();
  s2 = s1;
  n = 2;
  x = 1;
  if (strncmp("allo", ++s2, ++n) >= 0 || s2 != s1 + 1 || n != 3)
    abort();
  s2 = s1;
  n = 3;
  x = 1;
  if (strncmp(++s2, "allo", ++n) <= 0 || s2 != s1 + 1 || n != 4)
    abort();
  s2 = s1;
  n = 3;
  x = 1;
  if (strncmp("allo", ++s2, ++n) >= 0 || s2 != s1 + 1 || n != 4)
    abort();
  s2 = s1;
  n = 4;
  x = 1;
  if (strncmp(++s2, "allo", ++n) <= 0 || s2 != s1 + 1 || n != 5)
    abort();
  s2 = s1;
  n = 4;
  x = 1;
  if (strncmp("allo", ++s2, ++n) >= 0 || s2 != s1 + 1 || n != 5)
    abort();
  s2 = s1;
  n = 5;
  x = 1;
  if (strncmp(++s2, "allo", ++n) <= 0 || s2 != s1 + 1 || n != 6)
    abort();
  s2 = s1;
  n = 5;
  x = 1;
  if (strncmp("allo", ++s2, ++n) >= 0 || s2 != s1 + 1 || n != 6)
    abort();
}


x86 assembly (clang, -O0):
<main_test>:
push   %rbp
mov    %rsp,%rbp
sub    $0x20,%rsp
lea    0x1ed1(%rip),%rax
mov    %rax,-0x8(%rbp)
movl   $0x6,-0x1c(%rbp)
lea    0x1ebf(%rip),%rax
mov    %rax,-0x10(%rbp)
mov    -0x10(%rbp),%rdi
add    $0x1,%rdi
mov    %rdi,-0x10(%rbp)
lea    0x1eb4(%rip),%rsi
mov    $0x3,%edx
call   1040 <strncmp@plt>
cmp    $0x0,%rax
jne    1181 <main_test+0x61>
lea    0x1e8d(%rip),%rax
add    $0x1,%rax
cmp    %rax,-0x10(%rbp)
je     1188 <main_test+0x68>
mov    $0x0,%al
call   1030 <abort@plt>
lea    0x1e71(%rip),%rax
mov    %rax,-0x10(%rbp)
mov    -0x10(%rbp),%rsi
add    $0x1,%rsi
mov    %rsi,-0x10(%rbp)
lea    0x1e66(%rip),%rdi
mov    $0x3,%edx
call   1040 <strncmp@plt>
cmp    $0x0,%rax
jne    11cf <main_test+0xaf>
lea    0x1e3f(%rip),%rax
add    $0x1,%rax
cmp    %rax,-0x10(%rbp)
je     11d6 <main_test+0xb6>
mov    $0x0,%al
call   1030 <abort@plt>
lea    0x1e23(%rip),%rax
mov    %rax,-0x10(%rbp)
mov    -0x10(%rbp),%rdi
add    $0x1,%rdi
mov    %rdi,-0x10(%rbp)
lea    0x1e18(%rip),%rsi
mov    $0x4,%edx
call   1040 <strncmp@plt>
cmp    $0x0,%rax
jne    121d <main_test+0xfd>
lea    0x1df1(%rip),%rax
add    $0x1,%rax
cmp    %rax,-0x10(%rbp)
je     1224 <main_test+0x104>
mov    $0x0,%al
call   1030 <abort@plt>
lea    0x1dd5(%rip),%rax
mov    %rax,-0x10(%rbp)
mov    -0x10(%rbp),%rsi
add    $0x1,%rsi
mov    %rsi,-0x10(%rbp)
lea    0x1dca(%rip),%rdi
mov    $0x4,%edx
call   1040 <strncmp@plt>
cmp    $0x0,%rax
jne    126b <main_test+0x14b>
lea    0x1da3(%rip),%rax
add    $0x1,%rax
cmp    %rax,-0x10(%rbp)
je     1272 <main_test+0x152>
mov    $0x0,%al
call   1030 <abort@plt>
lea    0x1d87(%rip),%rax
mov    %rax,-0x10(%rbp)
mov    -0x10(%rbp),%rdi
add    $0x1,%rdi
mov    %rdi,-0x10(%rbp)
lea    0x1d7c(%rip),%rsi
mov    $0x5,%edx
call   1040 <strncmp@plt>
cmp    $0x0,%rax
jle    12b9 <main_test+0x199>
lea    0x1d55(%rip),%rax
add    $0x1,%rax
cmp    %rax,-0x10(%rbp)
je     12c0 <main_test+0x1a0>
mov    $0x0,%al
call   1030 <abort@plt>
lea    0x1d39(%rip),%rax
mov    %rax,-0x10(%rbp)
mov    -0x10(%rbp),%rsi
add    $0x1,%rsi
mov    %rsi,-0x10(%rbp)
lea    0x1d2e(%rip),%rdi
mov    $0x5,%edx
call   1040 <strncmp@plt>
cmp    $0x0,%rax
jge    1307 <main_test+0x1e7>
lea    0x1d07(%rip),%rax
add    $0x1,%rax
cmp    %rax,-0x10(%rbp)
je     130e <main_test+0x1ee>
mov    $0x0,%al
call   1030 <abort@plt>
lea    0x1ceb(%rip),%rax
mov    %rax,-0x10(%rbp)
mov    -0x10(%rbp),%rdi
add    $0x1,%rdi
mov    %rdi,-0x10(%rbp)
lea    0x1ce0(%rip),%rsi
mov    $0x6,%edx
call   1040 <strncmp@plt>
cmp    $0x0,%rax
jle    1355 <main_test+0x235>
lea    0x1cb9(%rip),%rax
add    $0x1,%rax
cmp    %rax,-0x10(%rbp)
je     135c <main_test+0x23c>
mov    $0x0,%al
call   1030 <abort@plt>
lea    0x1c9d(%rip),%rax
mov    %rax,-0x10(%rbp)
mov    -0x10(%rbp),%rsi
add    $0x1,%rsi
mov    %rsi,-0x10(%rbp)
lea    0x1c92(%rip),%rdi
mov    $0x6,%edx
call   1040 <strncmp@plt>
cmp    $0x0,%rax
jge    13a3 <main_test+0x283>
lea    0x1c6b(%rip),%rax
add    $0x1,%rax
cmp    %rax,-0x10(%rbp)
je     13aa <main_test+0x28a>
mov    $0x0,%al
call   1030 <abort@plt>
lea    0x1c4f(%rip),%rax
mov    %rax,-0x10(%rbp)
mov    -0x10(%rbp),%rdi
add    $0x1,%rdi
mov    %rdi,-0x10(%rbp)
lea    0x1c49(%rip),%rsi
mov    $0x3,%edx
call   1040 <strncmp@plt>
cmp    $0x0,%rax
jge    13f1 <main_test+0x2d1>
lea    0x1c1d(%rip),%rax
add    $0x1,%rax
cmp    %rax,-0x10(%rbp)
je     13f8 <main_test+0x2d8>
mov    $0x0,%al
call   1030 <abort@plt>
lea    0x1c01(%rip),%rax
mov    %rax,-0x10(%rbp)
mov    -0x10(%rbp),%rsi
add    $0x1,%rsi
mov    %rsi,-0x10(%rbp)
lea    0x1bfb(%rip),%rdi
mov    $0x3,%edx
call   1040 <strncmp@plt>
cmp    $0x0,%rax
jle    143f <main_test+0x31f>
lea    0x1bcf(%rip),%rax
add    $0x1,%rax
cmp    %rax,-0x10(%rbp)
je     1446 <main_test+0x326>
mov    $0x0,%al
call   1030 <abort@plt>
lea    0x1bb3(%rip),%rax
mov    %rax,-0x10(%rbp)
mov    -0x10(%rbp),%rdi
add    $0x1,%rdi
mov    %rdi,-0x10(%rbp)
lea    0x1bad(%rip),%rsi
mov    $0x4,%edx
call   1040 <strncmp@plt>
cmp    $0x0,%rax
jge    148d <main_test+0x36d>
lea    0x1b81(%rip),%rax
add    $0x1,%rax
cmp    %rax,-0x10(%rbp)
je     1494 <main_test+0x374>
mov    $0x0,%al
call   1030 <abort@plt>
lea    0x1b65(%rip),%rax
mov    %rax,-0x10(%rbp)
mov    -0x10(%rbp),%rsi
add    $0x1,%rsi
mov    %rsi,-0x10(%rbp)
lea    0x1b5f(%rip),%rdi
mov    $0x4,%edx
call   1040 <strncmp@plt>
cmp    $0x0,%rax
jle    14db <main_test+0x3bb>
lea    0x1b33(%rip),%rax
add    $0x1,%rax
cmp    %rax,-0x10(%rbp)
je     14e2 <main_test+0x3c2>
mov    $0x0,%al
call   1030 <abort@plt>
lea    0x1b17(%rip),%rax
mov    %rax,-0x10(%rbp)
mov    -0x10(%rbp),%rdi
add    $0x1,%rdi
mov    %rdi,-0x10(%rbp)
lea    0x1b11(%rip),%rsi
mov    $0x5,%edx
call   1040 <strncmp@plt>
cmp    $0x0,%rax
jge    1529 <main_test+0x409>
lea    0x1ae5(%rip),%rax
add    $0x1,%rax
cmp    %rax,-0x10(%rbp)
je     1530 <main_test+0x410>
mov    $0x0,%al
call   1030 <abort@plt>
lea    0x1ac9(%rip),%rax
mov    %rax,-0x10(%rbp)
mov    -0x10(%rbp),%rsi
add    $0x1,%rsi
mov    %rsi,-0x10(%rbp)
lea    0x1ac3(%rip),%rdi
mov    $0x5,%edx
call   1040 <strncmp@plt>
cmp    $0x0,%rax
jle    1577 <main_test+0x457>
lea    0x1a97(%rip),%rax
add    $0x1,%rax
cmp    %rax,-0x10(%rbp)
je     157e <main_test+0x45e>
mov    $0x0,%al
call   1030 <abort@plt>
lea    0x1a7b(%rip),%rax
mov    %rax,-0x10(%rbp)
mov    -0x10(%rbp),%rdi
add    $0x1,%rdi
mov    %rdi,-0x10(%rbp)
lea    0x1a75(%rip),%rsi
mov    $0x6,%edx
call   1040 <strncmp@plt>
cmp    $0x0,%rax
jge    15c5 <main_test+0x4a5>
lea    0x1a49(%rip),%rax
add    $0x1,%rax
cmp    %rax,-0x10(%rbp)
je     15cc <main_test+0x4ac>
mov    $0x0,%al
call   1030 <abort@plt>
lea    0x1a2d(%rip),%rax
mov    %rax,-0x10(%rbp)
mov    -0x10(%rbp),%rsi
add    $0x1,%rsi
mov    %rsi,-0x10(%rbp)
lea    0x1a27(%rip),%rdi
mov    $0x6,%edx
call   1040 <strncmp@plt>
cmp    $0x0,%rax
jle    1613 <main_test+0x4f3>
lea    0x19fb(%rip),%rax
add    $0x1,%rax
cmp    %rax,-0x10(%rbp)
je     161a <main_test+0x4fa>
mov    $0x0,%al
call   1030 <abort@plt>
lea    0x19df(%rip),%rax
mov    %rax,-0x10(%rbp)
mov    -0x10(%rbp),%rdi
add    $0x1,%rdi
mov    %rdi,-0x10(%rbp)
lea    0x19de(%rip),%rsi
mov    $0x3,%edx
call   1040 <strncmp@plt>
cmp    $0x0,%rax
jle    1661 <main_test+0x541>
lea    0x19ad(%rip),%rax
add    $0x1,%rax
cmp    %rax,-0x10(%rbp)
je     1668 <main_test+0x548>
mov    $0x0,%al
call   1030 <abort@plt>
lea    0x1991(%rip),%rax
mov    %rax,-0x10(%rbp)
mov    -0x10(%rbp),%rsi
add    $0x1,%rsi
mov    %rsi,-0x10(%rbp)
lea    0x1990(%rip),%rdi
mov    $0x3,%edx
call   1040 <strncmp@plt>
cmp    $0x0,%rax
jge    16af <main_test+0x58f>
lea    0x195f(%rip),%rax
add    $0x1,%rax
cmp    %rax,-0x10(%rbp)
je     16b6 <main_test+0x596>
mov    $0x0,%al
call   1030 <abort@plt>
lea    0x1943(%rip),%rax
mov    %rax,-0x10(%rbp)
mov    -0x10(%rbp),%rdi
add    $0x1,%rdi
mov    %rdi,-0x10(%rbp)
lea    0x1942(%rip),%rsi
mov    $0x4,%edx
call   1040 <strncmp@plt>
cmp    $0x0,%rax
jle    16fd <main_test+0x5dd>
lea    0x1911(%rip),%rax
add    $0x1,%rax
cmp    %rax,-0x10(%rbp)
je     1704 <main_test+0x5e4>
mov    $0x0,%al
call   1030 <abort@plt>
lea    0x18f5(%rip),%rax
mov    %rax,-0x10(%rbp)
mov    -0x10(%rbp),%rsi
add    $0x1,%rsi
mov    %rsi,-0x10(%rbp)
lea    0x18f4(%rip),%rdi
mov    $0x4,%edx
call   1040 <strncmp@plt>
cmp    $0x0,%rax
jge    174b <main_test+0x62b>
lea    0x18c3(%rip),%rax
add    $0x1,%rax
cmp    %rax,-0x10(%rbp)
je     1752 <main_test+0x632>
mov    $0x0,%al
call   1030 <abort@plt>
lea    0x18a7(%rip),%rax
mov    %rax,-0x10(%rbp)
mov    -0x10(%rbp),%rdi
add    $0x1,%rdi
mov    %rdi,-0x10(%rbp)
lea    0x18a6(%rip),%rsi
mov    $0x5,%edx
call   1040 <strncmp@plt>
cmp    $0x0,%rax
jle    1799 <main_test+0x679>
lea    0x1875(%rip),%rax
add    $0x1,%rax
cmp    %rax,-0x10(%rbp)
je     17a0 <main_test+0x680>
mov    $0x0,%al
call   1030 <abort@plt>
lea    0x1859(%rip),%rax
mov    %rax,-0x10(%rbp)
mov    -0x10(%rbp),%rsi
add    $0x1,%rsi
mov    %rsi,-0x10(%rbp)
lea    0x1858(%rip),%rdi
mov    $0x5,%edx
call   1040 <strncmp@plt>
cmp    $0x0,%rax
jge    17e7 <main_test+0x6c7>
lea    0x1827(%rip),%rax
add    $0x1,%rax
cmp    %rax,-0x10(%rbp)
je     17ee <main_test+0x6ce>
mov    $0x0,%al
call   1030 <abort@plt>
lea    0x180b(%rip),%rax
mov    %rax,-0x10(%rbp)
mov    -0x10(%rbp),%rdi
add    $0x1,%rdi
mov    %rdi,-0x10(%rbp)
lea    0x180a(%rip),%rsi
mov    $0x6,%edx
call   1040 <strncmp@plt>
cmp    $0x0,%rax
jle    1835 <main_test+0x715>
lea    0x17d9(%rip),%rax
add    $0x1,%rax
cmp    %rax,-0x10(%rbp)
je     183c <main_test+0x71c>
mov    $0x0,%al
call   1030 <abort@plt>
lea    0x17bd(%rip),%rax
mov    %rax,-0x10(%rbp)
mov    -0x10(%rbp),%rsi
add    $0x1,%rsi
mov    %rsi,-0x10(%rbp)
lea    0x17bc(%rip),%rdi
mov    $0x6,%edx
call   1040 <strncmp@plt>
cmp    $0x0,%rax
jge    1883 <main_test+0x763>
lea    0x178b(%rip),%rax
add    $0x1,%rax
cmp    %rax,-0x10(%rbp)
je     188a <main_test+0x76a>
mov    $0x0,%al
call   1030 <abort@plt>
lea    0x176f(%rip),%rax
mov    %rax,-0x10(%rbp)
movl   $0x2,-0x1c(%rbp)
movl   $0x1,-0x20(%rbp)
mov    -0x10(%rbp),%rdi
add    $0x1,%rdi
mov    %rdi,-0x10(%rbp)
mov    -0x20(%rbp),%eax
and    $0x3,%eax
cltq
lea    0x1742(%rip),%rsi
add    %rax,%rsi
mov    -0x1c(%rbp),%edx
add    $0x1,%edx
mov    %edx,-0x1c(%rbp)
call   1040 <strncmp@plt>
cmp    $0x0,%rax
jne    18f8 <main_test+0x7d8>
lea    0x1720(%rip),%rax
add    $0x1,%rax
cmp    %rax,-0x10(%rbp)
jne    18f8 <main_test+0x7d8>
cmpl   $0x3,-0x1c(%rbp)
je     18ff <main_test+0x7df>
mov    $0x0,%al
call   1030 <abort@plt>
lea    0x16fa(%rip),%rax
mov    %rax,-0x10(%rbp)
movl   $0x2,-0x1c(%rbp)
movl   $0x1,-0x20(%rbp)
mov    -0x20(%rbp),%eax
and    $0x3,%eax
cltq
lea    0x16d9(%rip),%rdi
add    %rax,%rdi
mov    -0x10(%rbp),%rsi
add    $0x1,%rsi
mov    %rsi,-0x10(%rbp)
mov    -0x1c(%rbp),%edx
add    $0x1,%edx
mov    %edx,-0x1c(%rbp)
call   1040 <strncmp@plt>
cmp    $0x0,%rax
jne    196d <main_test+0x84d>
lea    0x16ab(%rip),%rax
add    $0x1,%rax
cmp    %rax,-0x10(%rbp)
jne    196d <main_test+0x84d>
cmpl   $0x3,-0x1c(%rbp)
je     1974 <main_test+0x854>
mov    $0x0,%al
call   1030 <abort@plt>
lea    0x1685(%rip),%rax
mov    %rax,-0x10(%rbp)
movl   $0x3,-0x1c(%rbp)
movl   $0x1,-0x20(%rbp)
mov    -0x10(%rbp),%rdi
add    $0x1,%rdi
mov    %rdi,-0x10(%rbp)
mov    -0x20(%rbp),%eax
and    $0x3,%eax
cltq
lea    0x1658(%rip),%rsi
add    %rax,%rsi
mov    -0x1c(%rbp),%edx
add    $0x1,%edx
mov    %edx,-0x1c(%rbp)
call   1040 <strncmp@plt>
cmp    $0x0,%rax
jne    19e2 <main_test+0x8c2>
lea    0x1636(%rip),%rax
add    $0x1,%rax
cmp    %rax,-0x10(%rbp)
jne    19e2 <main_test+0x8c2>
cmpl   $0x4,-0x1c(%rbp)
je     19e9 <main_test+0x8c9>
mov    $0x0,%al
call   1030 <abort@plt>
lea    0x1610(%rip),%rax
mov    %rax,-0x10(%rbp)
movl   $0x3,-0x1c(%rbp)
movl   $0x1,-0x20(%rbp)
mov    -0x20(%rbp),%eax
and    $0x3,%eax
cltq
lea    0x15ef(%rip),%rdi
add    %rax,%rdi
mov    -0x10(%rbp),%rsi
add    $0x1,%rsi
mov    %rsi,-0x10(%rbp)
mov    -0x1c(%rbp),%edx
add    $0x1,%edx
mov    %edx,-0x1c(%rbp)
call   1040 <strncmp@plt>
cmp    $0x0,%rax
jne    1a57 <main_test+0x937>
lea    0x15c1(%rip),%rax
add    $0x1,%rax
cmp    %rax,-0x10(%rbp)
jne    1a57 <main_test+0x937>
cmpl   $0x4,-0x1c(%rbp)
je     1a5e <main_test+0x93e>
mov    $0x0,%al
call   1030 <abort@plt>
lea    0x159b(%rip),%rax
mov    %rax,-0x10(%rbp)
movl   $0x4,-0x1c(%rbp)
movl   $0x1,-0x20(%rbp)
mov    -0x10(%rbp),%rdi
add    $0x1,%rdi
mov    %rdi,-0x10(%rbp)
mov    -0x20(%rbp),%eax
and    $0x3,%eax
cltq
lea    0x156e(%rip),%rsi
add    %rax,%rsi
mov    -0x1c(%rbp),%edx
add    $0x1,%edx
mov    %edx,-0x1c(%rbp)
call   1040 <strncmp@plt>
cmp    $0x0,%rax
jne    1acc <main_test+0x9ac>
lea    0x154c(%rip),%rax
add    $0x1,%rax
cmp    %rax,-0x10(%rbp)
jne    1acc <main_test+0x9ac>
cmpl   $0x5,-0x1c(%rbp)
je     1ad3 <main_test+0x9b3>
mov    $0x0,%al
call   1030 <abort@plt>
lea    0x1526(%rip),%rax
mov    %rax,-0x10(%rbp)
movl   $0x4,-0x1c(%rbp)
movl   $0x1,-0x20(%rbp)
mov    -0x20(%rbp),%eax
and    $0x3,%eax
cltq
lea    0x1505(%rip),%rdi
add    %rax,%rdi
mov    -0x10(%rbp),%rsi
add    $0x1,%rsi
mov    %rsi,-0x10(%rbp)
mov    -0x1c(%rbp),%edx
add    $0x1,%edx
mov    %edx,-0x1c(%rbp)
call   1040 <strncmp@plt>
cmp    $0x0,%rax
jne    1b41 <main_test+0xa21>
lea    0x14d7(%rip),%rax
add    $0x1,%rax
cmp    %rax,-0x10(%rbp)
jne    1b41 <main_test+0xa21>
cmpl   $0x5,-0x1c(%rbp)
je     1b48 <main_test+0xa28>
mov    $0x0,%al
call   1030 <abort@plt>
lea    0x14b1(%rip),%rax
mov    %rax,-0x10(%rbp)
movl   $0x5,-0x1c(%rbp)
movl   $0x1,-0x20(%rbp)
mov    -0x10(%rbp),%rdi
add    $0x1,%rdi
mov    %rdi,-0x10(%rbp)
mov    -0x20(%rbp),%eax
and    $0x3,%eax
cltq
lea    0x1484(%rip),%rsi
add    %rax,%rsi
mov    -0x1c(%rbp),%edx
add    $0x1,%edx
mov    %edx,-0x1c(%rbp)
call   1040 <strncmp@plt>
cmp    $0x0,%rax
jne    1bb6 <main_test+0xa96>
lea    0x1462(%rip),%rax
add    $0x1,%rax
cmp    %rax,-0x10(%rbp)
jne    1bb6 <main_test+0xa96>
cmpl   $0x6,-0x1c(%rbp)
je     1bbd <main_test+0xa9d>
mov    $0x0,%al
call   1030 <abort@plt>
lea    0x143c(%rip),%rax
mov    %rax,-0x10(%rbp)
movl   $0x5,-0x1c(%rbp)
movl   $0x1,-0x20(%rbp)
mov    -0x20(%rbp),%eax
and    $0x3,%eax
cltq
lea    0x141b(%rip),%rdi
add    %rax,%rdi
mov    -0x10(%rbp),%rsi
add    $0x1,%rsi
mov    %rsi,-0x10(%rbp)
mov    -0x1c(%rbp),%edx
add    $0x1,%edx
mov    %edx,-0x1c(%rbp)
call   1040 <strncmp@plt>
cmp    $0x0,%rax
jne    1c2b <main_test+0xb0b>
lea    0x13ed(%rip),%rax
add    $0x1,%rax
cmp    %rax,-0x10(%rbp)
jne    1c2b <main_test+0xb0b>
cmpl   $0x6,-0x1c(%rbp)
je     1c32 <main_test+0xb12>
mov    $0x0,%al
call   1030 <abort@plt>
lea    0x13c7(%rip),%rax
mov    %rax,-0x10(%rbp)
movl   $0x2,-0x1c(%rbp)
mov    -0x10(%rbp),%rdi
add    $0x1,%rdi
mov    %rdi,-0x10(%rbp)
mov    -0x1c(%rbp),%edx
add    $0x1,%edx
mov    %edx,-0x1c(%rbp)
lea    0x13b1(%rip),%rsi
call   1040 <strncmp@plt>
cmp    $0x0,%rax
jge    1c8e <main_test+0xb6e>
lea    0x138a(%rip),%rax
add    $0x1,%rax
cmp    %rax,-0x10(%rbp)
jne    1c8e <main_test+0xb6e>
cmpl   $0x3,-0x1c(%rbp)
je     1c95 <main_test+0xb75>
mov    $0x0,%al
call   1030 <abort@plt>
lea    0x1364(%rip),%rax
mov    %rax,-0x10(%rbp)
movl   $0x2,-0x1c(%rbp)
movl   $0x1,-0x20(%rbp)
mov    -0x10(%rbp),%rsi
add    $0x1,%rsi
mov    %rsi,-0x10(%rbp)
mov    -0x1c(%rbp),%edx
add    $0x1,%edx
mov    %edx,-0x1c(%rbp)
lea    0x1347(%rip),%rdi
call   1040 <strncmp@plt>
cmp    $0x0,%rax
jle    1cf8 <main_test+0xbd8>
lea    0x1320(%rip),%rax
add    $0x1,%rax
cmp    %rax,-0x10(%rbp)
jne    1cf8 <main_test+0xbd8>
cmpl   $0x3,-0x1c(%rbp)
je     1cff <main_test+0xbdf>
mov    $0x0,%al
call   1030 <abort@plt>
lea    0x12fa(%rip),%rax
mov    %rax,-0x10(%rbp)
movl   $0x3,-0x1c(%rbp)
movl   $0x1,-0x20(%rbp)
mov    -0x10(%rbp),%rdi
add    $0x1,%rdi
mov    %rdi,-0x10(%rbp)
mov    -0x1c(%rbp),%edx
add    $0x1,%edx
mov    %edx,-0x1c(%rbp)
lea    0x12dd(%rip),%rsi
call   1040 <strncmp@plt>
cmp    $0x0,%rax
jge    1d62 <main_test+0xc42>
lea    0x12b6(%rip),%rax
add    $0x1,%rax
cmp    %rax,-0x10(%rbp)
jne    1d62 <main_test+0xc42>
cmpl   $0x4,-0x1c(%rbp)
je     1d69 <main_test+0xc49>
mov    $0x0,%al
call   1030 <abort@plt>
lea    0x1290(%rip),%rax
mov    %rax,-0x10(%rbp)
movl   $0x3,-0x1c(%rbp)
movl   $0x1,-0x20(%rbp)
mov    -0x10(%rbp),%rsi
add    $0x1,%rsi
mov    %rsi,-0x10(%rbp)
mov    -0x1c(%rbp),%edx
add    $0x1,%edx
mov    %edx,-0x1c(%rbp)
lea    0x1273(%rip),%rdi
call   1040 <strncmp@plt>
cmp    $0x0,%rax
jle    1dcc <main_test+0xcac>
lea    0x124c(%rip),%rax
add    $0x1,%rax
cmp    %rax,-0x10(%rbp)
jne    1dcc <main_test+0xcac>
cmpl   $0x4,-0x1c(%rbp)
je     1dd3 <main_test+0xcb3>
mov    $0x0,%al
call   1030 <abort@plt>
lea    0x1226(%rip),%rax
mov    %rax,-0x10(%rbp)
movl   $0x4,-0x1c(%rbp)
movl   $0x1,-0x20(%rbp)
mov    -0x10(%rbp),%rdi
add    $0x1,%rdi
mov    %rdi,-0x10(%rbp)
mov    -0x1c(%rbp),%edx
add    $0x1,%edx
mov    %edx,-0x1c(%rbp)
lea    0x1209(%rip),%rsi
call   1040 <strncmp@plt>
cmp    $0x0,%rax
jge    1e36 <main_test+0xd16>
lea    0x11e2(%rip),%rax
add    $0x1,%rax
cmp    %rax,-0x10(%rbp)
jne    1e36 <main_test+0xd16>
cmpl   $0x5,-0x1c(%rbp)
je     1e3d <main_test+0xd1d>
mov    $0x0,%al
call   1030 <abort@plt>
lea    0x11bc(%rip),%rax
mov    %rax,-0x10(%rbp)
movl   $0x4,-0x1c(%rbp)
movl   $0x1,-0x20(%rbp)
mov    -0x10(%rbp),%rsi
add    $0x1,%rsi
mov    %rsi,-0x10(%rbp)
mov    -0x1c(%rbp),%edx
add    $0x1,%edx
mov    %edx,-0x1c(%rbp)
lea    0x119f(%rip),%rdi
call   1040 <strncmp@plt>
cmp    $0x0,%rax
jle    1ea0 <main_test+0xd80>
lea    0x1178(%rip),%rax
add    $0x1,%rax
cmp    %rax,-0x10(%rbp)
jne    1ea0 <main_test+0xd80>
cmpl   $0x5,-0x1c(%rbp)
je     1ea7 <main_test+0xd87>
mov    $0x0,%al
call   1030 <abort@plt>
lea    0x1152(%rip),%rax
mov    %rax,-0x10(%rbp)
movl   $0x5,-0x1c(%rbp)
movl   $0x1,-0x20(%rbp)
mov    -0x10(%rbp),%rdi
add    $0x1,%rdi
mov    %rdi,-0x10(%rbp)
mov    -0x1c(%rbp),%edx
add    $0x1,%edx
mov    %edx,-0x1c(%rbp)
lea    0x1135(%rip),%rsi
call   1040 <strncmp@plt>
cmp    $0x0,%rax
jge    1f0a <main_test+0xdea>
lea    0x110e(%rip),%rax
add    $0x1,%rax
cmp    %rax,-0x10(%rbp)
jne    1f0a <main_test+0xdea>
cmpl   $0x6,-0x1c(%rbp)
je     1f11 <main_test+0xdf1>
mov    $0x0,%al
call   1030 <abort@plt>
lea    0x10e8(%rip),%rax
mov    %rax,-0x10(%rbp)
movl   $0x5,-0x1c(%rbp)
movl   $0x1,-0x20(%rbp)
mov    -0x10(%rbp),%rsi
add    $0x1,%rsi
mov    %rsi,-0x10(%rbp)
mov    -0x1c(%rbp),%edx
add    $0x1,%edx
mov    %edx,-0x1c(%rbp)
lea    0x10cb(%rip),%rdi
call   1040 <strncmp@plt>
cmp    $0x0,%rax
jle    1f74 <main_test+0xe54>
lea    0x10a4(%rip),%rax
add    $0x1,%rax
cmp    %rax,-0x10(%rbp)
jne    1f74 <main_test+0xe54>
cmpl   $0x6,-0x1c(%rbp)
je     1f7b <main_test+0xe5b>
mov    $0x0,%al
call   1030 <abort@plt>
lea    0x107e(%rip),%rax
mov    %rax,-0x10(%rbp)
movl   $0x2,-0x1c(%rbp)
mov    -0x10(%rbp),%rdi
add    $0x1,%rdi
mov    %rdi,-0x10(%rbp)
mov    -0x1c(%rbp),%edx
add    $0x1,%edx
mov    %edx,-0x1c(%rbp)
lea    0x106d(%rip),%rsi
call   1040 <strncmp@plt>
cmp    $0x0,%rax
jle    1fd7 <main_test+0xeb7>
lea    0x1041(%rip),%rax
add    $0x1,%rax
cmp    %rax,-0x10(%rbp)
jne    1fd7 <main_test+0xeb7>
cmpl   $0x3,-0x1c(%rbp)
je     1fde <main_test+0xebe>
mov    $0x0,%al
call   1030 <abort@plt>
lea    0x101b(%rip),%rax
mov    %rax,-0x10(%rbp)
movl   $0x2,-0x1c(%rbp)
movl   $0x1,-0x20(%rbp)
mov    -0x10(%rbp),%rsi
add    $0x1,%rsi
mov    %rsi,-0x10(%rbp)
mov    -0x1c(%rbp),%edx
add    $0x1,%edx
mov    %edx,-0x1c(%rbp)
lea    0x1003(%rip),%rdi
call   1040 <strncmp@plt>
cmp    $0x0,%rax
jge    2041 <main_test+0xf21>
lea    0xfd7(%rip),%rax
add    $0x1,%rax
cmp    %rax,-0x10(%rbp)
jne    2041 <main_test+0xf21>
cmpl   $0x3,-0x1c(%rbp)
je     2048 <main_test+0xf28>
mov    $0x0,%al
call   1030 <abort@plt>
lea    0xfb1(%rip),%rax
mov    %rax,-0x10(%rbp)
movl   $0x3,-0x1c(%rbp)
movl   $0x1,-0x20(%rbp)
mov    -0x10(%rbp),%rdi
add    $0x1,%rdi
mov    %rdi,-0x10(%rbp)
mov    -0x1c(%rbp),%edx
add    $0x1,%edx
mov    %edx,-0x1c(%rbp)
lea    0xf99(%rip),%rsi
call   1040 <strncmp@plt>
cmp    $0x0,%rax
jle    20ab <main_test+0xf8b>
lea    0xf6d(%rip),%rax
add    $0x1,%rax
cmp    %rax,-0x10(%rbp)
jne    20ab <main_test+0xf8b>
cmpl   $0x4,-0x1c(%rbp)
je     20b2 <main_test+0xf92>
mov    $0x0,%al
call   1030 <abort@plt>
lea    0xf47(%rip),%rax
mov    %rax,-0x10(%rbp)
movl   $0x3,-0x1c(%rbp)
movl   $0x1,-0x20(%rbp)
mov    -0x10(%rbp),%rsi
add    $0x1,%rsi
mov    %rsi,-0x10(%rbp)
mov    -0x1c(%rbp),%edx
add    $0x1,%edx
mov    %edx,-0x1c(%rbp)
lea    0xf2f(%rip),%rdi
call   1040 <strncmp@plt>
cmp    $0x0,%rax
jge    2115 <main_test+0xff5>
lea    0xf03(%rip),%rax
add    $0x1,%rax
cmp    %rax,-0x10(%rbp)
jne    2115 <main_test+0xff5>
cmpl   $0x4,-0x1c(%rbp)
je     211c <main_test+0xffc>
mov    $0x0,%al
call   1030 <abort@plt>
lea    0xedd(%rip),%rax
mov    %rax,-0x10(%rbp)
movl   $0x4,-0x1c(%rbp)
movl   $0x1,-0x20(%rbp)
mov    -0x10(%rbp),%rdi
add    $0x1,%rdi
mov    %rdi,-0x10(%rbp)
mov    -0x1c(%rbp),%edx
add    $0x1,%edx
mov    %edx,-0x1c(%rbp)
lea    0xec5(%rip),%rsi
call   1040 <strncmp@plt>
cmp    $0x0,%rax
jle    217f <main_test+0x105f>
lea    0xe99(%rip),%rax
add    $0x1,%rax
cmp    %rax,-0x10(%rbp)
jne    217f <main_test+0x105f>
cmpl   $0x5,-0x1c(%rbp)
je     2186 <main_test+0x1066>
mov    $0x0,%al
call   1030 <abort@plt>
lea    0xe73(%rip),%rax
mov    %rax,-0x10(%rbp)
movl   $0x4,-0x1c(%rbp)
movl   $0x1,-0x20(%rbp)
mov    -0x10(%rbp),%rsi
add    $0x1,%rsi
mov    %rsi,-0x10(%rbp)
mov    -0x1c(%rbp),%edx
add    $0x1,%edx
mov    %edx,-0x1c(%rbp)
lea    0xe5b(%rip),%rdi
call   1040 <strncmp@plt>
cmp    $0x0,%rax
jge    21e9 <main_test+0x10c9>
lea    0xe2f(%rip),%rax
add    $0x1,%rax
cmp    %rax,-0x10(%rbp)
jne    21e9 <main_test+0x10c9>
cmpl   $0x5,-0x1c(%rbp)
je     21f0 <main_test+0x10d0>
mov    $0x0,%al
call   1030 <abort@plt>
lea    0xe09(%rip),%rax
mov    %rax,-0x10(%rbp)
movl   $0x5,-0x1c(%rbp)
movl   $0x1,-0x20(%rbp)
mov    -0x10(%rbp),%rdi
add    $0x1,%rdi
mov    %rdi,-0x10(%rbp)
mov    -0x1c(%rbp),%edx
add    $0x1,%edx
mov    %edx,-0x1c(%rbp)
lea    0xdf1(%rip),%rsi
call   1040 <strncmp@plt>
cmp    $0x0,%rax
jle    2253 <main_test+0x1133>
lea    0xdc5(%rip),%rax
add    $0x1,%rax
cmp    %rax,-0x10(%rbp)
jne    2253 <main_test+0x1133>
cmpl   $0x6,-0x1c(%rbp)
je     225a <main_test+0x113a>
mov    $0x0,%al
call   1030 <abort@plt>
lea    0xd9f(%rip),%rax
mov    %rax,-0x10(%rbp)
movl   $0x5,-0x1c(%rbp)
movl   $0x1,-0x20(%rbp)
mov    -0x10(%rbp),%rsi
add    $0x1,%rsi
mov    %rsi,-0x10(%rbp)
mov    -0x1c(%rbp),%edx
add    $0x1,%edx
mov    %edx,-0x1c(%rbp)
lea    0xd87(%rip),%rdi
call   1040 <strncmp@plt>
cmp    $0x0,%rax
jge    22bd <main_test+0x119d>
lea    0xd5b(%rip),%rax
add    $0x1,%rax
cmp    %rax,-0x10(%rbp)
jne    22bd <main_test+0x119d>
cmpl   $0x6,-0x1c(%rbp)
je     22c4 <main_test+0x11a4>
mov    $0x0,%al
call   1030 <abort@plt>
add    $0x20,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<main_test>:
push   %rax
lea    0xed9(%rip),%rdi
lea    0xedd(%rip),%rsi
mov    $0x3,%edx
call   1040 <strncmp@plt>
test   %rax,%rax
jne    171f <main_test+0x5ff>
lea    0xec3(%rip),%rdi
lea    0xeb1(%rip),%rsi
mov    $0x3,%edx
call   1040 <strncmp@plt>
test   %rax,%rax
jne    171f <main_test+0x5ff>
lea    0xe97(%rip),%rdi
lea    0xe9b(%rip),%rsi
mov    $0x4,%edx
call   1040 <strncmp@plt>
test   %rax,%rax
jne    171f <main_test+0x5ff>
lea    0xe81(%rip),%rdi
lea    0xe6f(%rip),%rsi
mov    $0x4,%edx
call   1040 <strncmp@plt>
test   %rax,%rax
jne    171f <main_test+0x5ff>
lea    0xe55(%rip),%rdi
lea    0xe59(%rip),%rsi
mov    $0x5,%edx
call   1040 <strncmp@plt>
test   %rax,%rax
jle    171f <main_test+0x5ff>
lea    0xe3f(%rip),%rdi
lea    0xe2d(%rip),%rsi
mov    $0x5,%edx
call   1040 <strncmp@plt>
test   %rax,%rax
jns    171f <main_test+0x5ff>
lea    0xe13(%rip),%rdi
lea    0xe17(%rip),%rsi
mov    $0x6,%edx
call   1040 <strncmp@plt>
test   %rax,%rax
jle    171f <main_test+0x5ff>
lea    0xdfd(%rip),%rdi
lea    0xdeb(%rip),%rsi
mov    $0x6,%edx
call   1040 <strncmp@plt>
test   %rax,%rax
jns    171f <main_test+0x5ff>
lea    0xdd1(%rip),%rdi
lea    0xdda(%rip),%rsi
mov    $0x3,%edx
call   1040 <strncmp@plt>
test   %rax,%rax
jns    171f <main_test+0x5ff>
lea    0xdc0(%rip),%rdi
lea    0xda9(%rip),%rsi
mov    $0x3,%edx
call   1040 <strncmp@plt>
test   %rax,%rax
jle    171f <main_test+0x5ff>
lea    0xd8f(%rip),%rdi
lea    0xd98(%rip),%rsi
mov    $0x4,%edx
call   1040 <strncmp@plt>
test   %rax,%rax
jns    171f <main_test+0x5ff>
lea    0xd7e(%rip),%rdi
lea    0xd67(%rip),%rsi
mov    $0x4,%edx
call   1040 <strncmp@plt>
test   %rax,%rax
jle    171f <main_test+0x5ff>
lea    0xd4d(%rip),%rdi
lea    0xd56(%rip),%rsi
mov    $0x5,%edx
call   1040 <strncmp@plt>
test   %rax,%rax
jns    171f <main_test+0x5ff>
lea    0xd3c(%rip),%rdi
lea    0xd25(%rip),%rsi
mov    $0x5,%edx
call   1040 <strncmp@plt>
test   %rax,%rax
jle    171f <main_test+0x5ff>
lea    0xd0b(%rip),%rdi
lea    0xd14(%rip),%rsi
mov    $0x6,%edx
call   1040 <strncmp@plt>
test   %rax,%rax
jns    171f <main_test+0x5ff>
lea    0xcfa(%rip),%rdi
lea    0xce3(%rip),%rsi
mov    $0x6,%edx
call   1040 <strncmp@plt>
test   %rax,%rax
jle    171f <main_test+0x5ff>
lea    0xcc9(%rip),%rdi
lea    0xcd7(%rip),%rsi
mov    $0x3,%edx
call   1040 <strncmp@plt>
test   %rax,%rax
jle    171f <main_test+0x5ff>
lea    0xcbd(%rip),%rdi
lea    0xca1(%rip),%rsi
mov    $0x3,%edx
call   1040 <strncmp@plt>
test   %rax,%rax
jns    171f <main_test+0x5ff>
lea    0xc87(%rip),%rdi
lea    0xc95(%rip),%rsi
mov    $0x4,%edx
call   1040 <strncmp@plt>
test   %rax,%rax
jle    171f <main_test+0x5ff>
lea    0xc7b(%rip),%rdi
lea    0xc5f(%rip),%rsi
mov    $0x4,%edx
call   1040 <strncmp@plt>
test   %rax,%rax
jns    171f <main_test+0x5ff>
lea    0xc45(%rip),%rdi
lea    0xc53(%rip),%rsi
mov    $0x5,%edx
call   1040 <strncmp@plt>
test   %rax,%rax
jle    171f <main_test+0x5ff>
lea    0xc39(%rip),%rdi
lea    0xc1d(%rip),%rsi
mov    $0x5,%edx
call   1040 <strncmp@plt>
test   %rax,%rax
jns    171f <main_test+0x5ff>
lea    0xc03(%rip),%rdi
lea    0xc11(%rip),%rsi
mov    $0x6,%edx
call   1040 <strncmp@plt>
test   %rax,%rax
jle    171f <main_test+0x5ff>
lea    0xbf7(%rip),%rdi
lea    0xbdb(%rip),%rsi
mov    $0x6,%edx
call   1040 <strncmp@plt>
test   %rax,%rax
jns    171f <main_test+0x5ff>
lea    0xbc1(%rip),%rdi
mov    %rdi,%rsi
mov    $0x3,%edx
call   1040 <strncmp@plt>
test   %rax,%rax
jne    171f <main_test+0x5ff>
lea    0xba4(%rip),%rdi
mov    %rdi,%rsi
mov    $0x3,%edx
call   1040 <strncmp@plt>
test   %rax,%rax
jne    171f <main_test+0x5ff>
lea    0xb87(%rip),%rdi
mov    %rdi,%rsi
mov    $0x4,%edx
call   1040 <strncmp@plt>
test   %rax,%rax
jne    171f <main_test+0x5ff>
lea    0xb6a(%rip),%rdi
mov    %rdi,%rsi
mov    $0x4,%edx
call   1040 <strncmp@plt>
test   %rax,%rax
jne    171f <main_test+0x5ff>
lea    0xb4d(%rip),%rdi
mov    %rdi,%rsi
mov    $0x5,%edx
call   1040 <strncmp@plt>
test   %rax,%rax
jne    171f <main_test+0x5ff>
lea    0xb30(%rip),%rdi
mov    %rdi,%rsi
mov    $0x5,%edx
call   1040 <strncmp@plt>
test   %rax,%rax
jne    171f <main_test+0x5ff>
lea    0xb13(%rip),%rdi
mov    %rdi,%rsi
mov    $0x6,%edx
call   1040 <strncmp@plt>
test   %rax,%rax
jne    171f <main_test+0x5ff>
lea    0xaf6(%rip),%rdi
mov    %rdi,%rsi
mov    $0x6,%edx
call   1040 <strncmp@plt>
test   %rax,%rax
jne    171f <main_test+0x5ff>
lea    0xad9(%rip),%rdi
lea    0xae2(%rip),%rsi
mov    $0x3,%edx
call   1040 <strncmp@plt>
test   %rax,%rax
jns    171f <main_test+0x5ff>
lea    0xac8(%rip),%rdi
lea    0xab1(%rip),%rsi
mov    $0x3,%edx
call   1040 <strncmp@plt>
test   %rax,%rax
jle    171f <main_test+0x5ff>
lea    0xa97(%rip),%rdi
lea    0xaa0(%rip),%rsi
mov    $0x4,%edx
call   1040 <strncmp@plt>
test   %rax,%rax
jns    171f <main_test+0x5ff>
lea    0xa86(%rip),%rdi
lea    0xa6f(%rip),%rsi
mov    $0x4,%edx
call   1040 <strncmp@plt>
test   %rax,%rax
jle    171f <main_test+0x5ff>
lea    0xa55(%rip),%rdi
lea    0xa5e(%rip),%rsi
mov    $0x5,%edx
call   1040 <strncmp@plt>
test   %rax,%rax
jns    171f <main_test+0x5ff>
lea    0xa44(%rip),%rdi
lea    0xa2d(%rip),%rsi
mov    $0x5,%edx
call   1040 <strncmp@plt>
test   %rax,%rax
jle    171f <main_test+0x5ff>
lea    0xa13(%rip),%rdi
lea    0xa1c(%rip),%rsi
mov    $0x6,%edx
call   1040 <strncmp@plt>
test   %rax,%rax
jns    171f <main_test+0x5ff>
lea    0xa02(%rip),%rdi
lea    0x9eb(%rip),%rsi
mov    $0x6,%edx
call   1040 <strncmp@plt>
test   %rax,%rax
jle    171f <main_test+0x5ff>
lea    0x9d1(%rip),%rdi
lea    0x9df(%rip),%rsi
mov    $0x3,%edx
call   1040 <strncmp@plt>
test   %rax,%rax
jle    171f <main_test+0x5ff>
lea    0x9c5(%rip),%rdi
lea    0x9a9(%rip),%rsi
mov    $0x3,%edx
call   1040 <strncmp@plt>
test   %rax,%rax
jns    171f <main_test+0x5ff>
lea    0x98f(%rip),%rdi
lea    0x99d(%rip),%rsi
mov    $0x4,%edx
call   1040 <strncmp@plt>
test   %rax,%rax
jle    171f <main_test+0x5ff>
lea    0x983(%rip),%rdi
lea    0x967(%rip),%rsi
mov    $0x4,%edx
call   1040 <strncmp@plt>
test   %rax,%rax
jns    171f <main_test+0x5ff>
lea    0x951(%rip),%rdi
lea    0x95f(%rip),%rsi
mov    $0x5,%edx
call   1040 <strncmp@plt>
test   %rax,%rax
jle    171f <main_test+0x5ff>
lea    0x949(%rip),%rdi
lea    0x92d(%rip),%rsi
mov    $0x5,%edx
call   1040 <strncmp@plt>
test   %rax,%rax
jns    171f <main_test+0x5ff>
lea    0x917(%rip),%rdi
lea    0x925(%rip),%rsi
mov    $0x6,%edx
call   1040 <strncmp@plt>
test   %rax,%rax
jle    171f <main_test+0x5ff>
lea    0x90f(%rip),%rdi
lea    0x8f3(%rip),%rsi
mov    $0x6,%edx
call   1040 <strncmp@plt>
test   %rax,%rax
jns    171f <main_test+0x5ff>
pop    %rax
ret
xor    %eax,%eax
call   1030 <abort@plt>

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

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