#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*/ _exit(int);
int /*<<< orphan*/ fflush(int /*<<< orphan*/);
int /*<<< orphan*/ fprintf(int /*<<< orphan*/, char *, char *,
                           unsigned long long, char *);
int /*<<< orphan*/ stderr;
scalar_t__ str_copyn(char *, int, char *);
scalar_t__ strcmp(char *, char *);
void test_copyn(void) {
  char buf[5];
  if (str_copyn(buf, 0, ""))
    do {
      fprintf(stderr, "%s:%llu: %s\n",
              ("/scratch/repos/new/home/jordi_armengol_estape/c-scraper/"
               "outputs/2022-01-22/02-19-57/repos/janmojzis/tinyssh/refs/heads/"
               "master/tinyssh-tests/strtest.c"),
              (unsigned long long)(75), (("str_copyn failure")));
      fflush(stderr);
      _exit(111);
    } while (0);
  ;
  if (str_copyn(buf, 1, "a"))
    do {
      fprintf(stderr, "%s:%llu: %s\n",
              ("/scratch/repos/new/home/jordi_armengol_estape/c-scraper/"
               "outputs/2022-01-22/02-19-57/repos/janmojzis/tinyssh/refs/heads/"
               "master/tinyssh-tests/strtest.c"),
              (unsigned long long)(76), (("str_copyn failure")));
      fflush(stderr);
      _exit(111);
    } while (0);
  ;
  if (str_copyn(buf, sizeof buf, "ahoj!"))
    do {
      fprintf(stderr, "%s:%llu: %s\n",
              ("/scratch/repos/new/home/jordi_armengol_estape/c-scraper/"
               "outputs/2022-01-22/02-19-57/repos/janmojzis/tinyssh/refs/heads/"
               "master/tinyssh-tests/strtest.c"),
              (unsigned long long)(77), (("str_copyn failure")));
      fflush(stderr);
      _exit(111);
    } while (0);
  ;
  if (strcmp(buf, "ahoj"))
    do {
      fprintf(stderr, "%s:%llu: %s\n",
              ("/scratch/repos/new/home/jordi_armengol_estape/c-scraper/"
               "outputs/2022-01-22/02-19-57/repos/janmojzis/tinyssh/refs/heads/"
               "master/tinyssh-tests/strtest.c"),
              (unsigned long long)(78), (("str_copyn failure")));
      fflush(stderr);
      _exit(111);
    } while (0);
  ;
  if (!str_copyn(buf, sizeof buf, "ahoj"))
    do {
      fprintf(stderr, "%s:%llu: %s\n",
              ("/scratch/repos/new/home/jordi_armengol_estape/c-scraper/"
               "outputs/2022-01-22/02-19-57/repos/janmojzis/tinyssh/refs/heads/"
               "master/tinyssh-tests/strtest.c"),
              (unsigned long long)(81), (("str_copyn failure")));
      fflush(stderr);
      _exit(111);
    } while (0);
  ;
  if (strcmp(buf, "ahoj"))
    do {
      fprintf(stderr, "%s:%llu: %s\n",
              ("/scratch/repos/new/home/jordi_armengol_estape/c-scraper/"
               "outputs/2022-01-22/02-19-57/repos/janmojzis/tinyssh/refs/heads/"
               "master/tinyssh-tests/strtest.c"),
              (unsigned long long)(82), (("str_copyn failure")));
      fflush(stderr);
      _exit(111);
    } while (0);
  ;
  if (!str_copyn(buf, sizeof buf, ""))
    do {
      fprintf(stderr, "%s:%llu: %s\n",
              ("/scratch/repos/new/home/jordi_armengol_estape/c-scraper/"
               "outputs/2022-01-22/02-19-57/repos/janmojzis/tinyssh/refs/heads/"
               "master/tinyssh-tests/strtest.c"),
              (unsigned long long)(83), (("str_copyn failure")));
      fflush(stderr);
      _exit(111);
    } while (0);
  ;
  if (strcmp(buf, ""))
    do {
      fprintf(stderr, "%s:%llu: %s\n",
              ("/scratch/repos/new/home/jordi_armengol_estape/c-scraper/"
               "outputs/2022-01-22/02-19-57/repos/janmojzis/tinyssh/refs/heads/"
               "master/tinyssh-tests/strtest.c"),
              (unsigned long long)(84), (("str_copyn failure")));
      fflush(stderr);
      _exit(111);
    } while (0);
  ;
}


x86 assembly (clang, -O0):
<test_copyn>:
push   %rbp
mov    %rsp,%rbp
sub    $0x10,%rsp
lea    -0x5(%rbp),%rdi
xor    %esi,%esi
lea    0xea7(%rip),%rdx
call   1070 <str_copyn@plt>
cmp    $0x0,%rax
je     11b9 <test_copyn+0x69>
jmp    1179 <test_copyn+0x29>
mov    0x2e60(%rip),%rax
mov    (%rax),%edi
lea    0xe77(%rip),%rsi
lea    0xe7d(%rip),%rdx
mov    $0x4b,%ecx
lea    0xf07(%rip),%r8
call   1050 <fprintf@plt>
mov    0x2e38(%rip),%rax
mov    (%rax),%edi
call   1060 <fflush@plt>
mov    $0x6f,%edi
call   1030 <_exit@plt>
lea    -0x5(%rbp),%rdi
mov    $0x1,%esi
lea    0xeec(%rip),%rdx
call   1070 <str_copyn@plt>
cmp    $0x0,%rax
je     121d <test_copyn+0xcd>
jmp    11dd <test_copyn+0x8d>
mov    0x2dfc(%rip),%rax
mov    (%rax),%edi
lea    0xe13(%rip),%rsi
lea    0xe19(%rip),%rdx
mov    $0x4c,%ecx
lea    0xea3(%rip),%r8
call   1050 <fprintf@plt>
mov    0x2dd4(%rip),%rax
mov    (%rax),%edi
call   1060 <fflush@plt>
mov    $0x6f,%edi
call   1030 <_exit@plt>
lea    -0x5(%rbp),%rdi
mov    $0x5,%esi
lea    0xe8a(%rip),%rdx
call   1070 <str_copyn@plt>
cmp    $0x0,%rax
je     1281 <test_copyn+0x131>
jmp    1241 <test_copyn+0xf1>
mov    0x2d98(%rip),%rax
mov    (%rax),%edi
lea    0xdaf(%rip),%rsi
lea    0xdb5(%rip),%rdx
mov    $0x4d,%ecx
lea    0xe3f(%rip),%r8
call   1050 <fprintf@plt>
mov    0x2d70(%rip),%rax
mov    (%rax),%edi
call   1060 <fflush@plt>
mov    $0x6f,%edi
call   1030 <_exit@plt>
lea    -0x5(%rbp),%rdi
lea    0xe31(%rip),%rsi
call   1040 <strcmp@plt>
cmp    $0x0,%rax
je     12e0 <test_copyn+0x190>
jmp    12a0 <test_copyn+0x150>
mov    0x2d39(%rip),%rax
mov    (%rax),%edi
lea    0xd50(%rip),%rsi
lea    0xd56(%rip),%rdx
mov    $0x4e,%ecx
lea    0xde0(%rip),%r8
call   1050 <fprintf@plt>
mov    0x2d11(%rip),%rax
mov    (%rax),%edi
call   1060 <fflush@plt>
mov    $0x6f,%edi
call   1030 <_exit@plt>
lea    -0x5(%rbp),%rdi
mov    $0x5,%esi
lea    0xdcd(%rip),%rdx
call   1070 <str_copyn@plt>
cmp    $0x0,%rax
jne    1344 <test_copyn+0x1f4>
jmp    1304 <test_copyn+0x1b4>
mov    0x2cd5(%rip),%rax
mov    (%rax),%edi
lea    0xcec(%rip),%rsi
lea    0xcf2(%rip),%rdx
mov    $0x51,%ecx
lea    0xd7c(%rip),%r8
call   1050 <fprintf@plt>
mov    0x2cad(%rip),%rax
mov    (%rax),%edi
call   1060 <fflush@plt>
mov    $0x6f,%edi
call   1030 <_exit@plt>
lea    -0x5(%rbp),%rdi
lea    0xd6e(%rip),%rsi
call   1040 <strcmp@plt>
cmp    $0x0,%rax
je     13a3 <test_copyn+0x253>
jmp    1363 <test_copyn+0x213>
mov    0x2c76(%rip),%rax
mov    (%rax),%edi
lea    0xc8d(%rip),%rsi
lea    0xc93(%rip),%rdx
mov    $0x52,%ecx
lea    0xd1d(%rip),%r8
call   1050 <fprintf@plt>
mov    0x2c4e(%rip),%rax
mov    (%rax),%edi
call   1060 <fflush@plt>
mov    $0x6f,%edi
call   1030 <_exit@plt>
lea    -0x5(%rbp),%rdi
mov    $0x5,%esi
lea    0xc59(%rip),%rdx
call   1070 <str_copyn@plt>
cmp    $0x0,%rax
jne    1407 <test_copyn+0x2b7>
jmp    13c7 <test_copyn+0x277>
mov    0x2c12(%rip),%rax
mov    (%rax),%edi
lea    0xc29(%rip),%rsi
lea    0xc2f(%rip),%rdx
mov    $0x53,%ecx
lea    0xcb9(%rip),%r8
call   1050 <fprintf@plt>
mov    0x2bea(%rip),%rax
mov    (%rax),%edi
call   1060 <fflush@plt>
mov    $0x6f,%edi
call   1030 <_exit@plt>
lea    -0x5(%rbp),%rdi
lea    0xbfa(%rip),%rsi
call   1040 <strcmp@plt>
cmp    $0x0,%rax
je     1466 <test_copyn+0x316>
jmp    1426 <test_copyn+0x2d6>
mov    0x2bb3(%rip),%rax
mov    (%rax),%edi
lea    0xbca(%rip),%rsi
lea    0xbd0(%rip),%rdx
mov    $0x54,%ecx
lea    0xc5a(%rip),%r8
call   1050 <fprintf@plt>
mov    0x2b8b(%rip),%rax
mov    (%rax),%edi
call   1060 <fflush@plt>
mov    $0x6f,%edi
call   1030 <_exit@plt>
add    $0x10,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<test_copyn>:
push   %rbx
sub    $0x10,%rsp
lea    0xeb0(%rip),%rdx
lea    0xb(%rsp),%rdi
xor    %esi,%esi
call   1070 <str_copyn@plt>
test   %rax,%rax
jne    1241 <test_copyn+0xf1>
lea    0xf3d(%rip),%rdx
lea    0xb(%rsp),%rdi
mov    $0x1,%esi
call   1070 <str_copyn@plt>
test   %rax,%rax
jne    1269 <test_copyn+0x119>
lea    0xf20(%rip),%rdx
lea    0xb(%rsp),%rdi
mov    $0x5,%esi
call   1070 <str_copyn@plt>
test   %rax,%rax
jne    1291 <test_copyn+0x141>
lea    0xf07(%rip),%rsi
lea    0xb(%rsp),%rdi
call   1040 <strcmp@plt>
test   %rax,%rax
jne    12b9 <test_copyn+0x169>
lea    0xeed(%rip),%rdx
lea    0xb(%rsp),%rdi
mov    $0x5,%esi
call   1070 <str_copyn@plt>
test   %rax,%rax
je     12e1 <test_copyn+0x191>
lea    0xece(%rip),%rsi
lea    0xb(%rsp),%rdi
call   1040 <strcmp@plt>
test   %rax,%rax
jne    1306 <test_copyn+0x1b6>
lea    0xe03(%rip),%rdx
lea    0xb(%rsp),%rdi
mov    $0x5,%esi
call   1070 <str_copyn@plt>
test   %rax,%rax
je     132b <test_copyn+0x1db>
lea    0xde4(%rip),%rsi
lea    0xb(%rsp),%rdi
call   1040 <strcmp@plt>
test   %rax,%rax
jne    1350 <test_copyn+0x200>
add    $0x10,%rsp
pop    %rbx
ret
mov    0x2d98(%rip),%rbx
mov    (%rbx),%edi
lea    0xdaf(%rip),%rsi
lea    0xdb5(%rip),%rdx
lea    0xe44(%rip),%r8
mov    $0x4b,%ecx
jmp    1373 <test_copyn+0x223>
mov    0x2d70(%rip),%rbx
mov    (%rbx),%edi
lea    0xd87(%rip),%rsi
lea    0xd8d(%rip),%rdx
lea    0xe1c(%rip),%r8
mov    $0x4c,%ecx
jmp    1373 <test_copyn+0x223>
mov    0x2d48(%rip),%rbx
mov    (%rbx),%edi
lea    0xd5f(%rip),%rsi
lea    0xd65(%rip),%rdx
lea    0xdf4(%rip),%r8
mov    $0x4d,%ecx
jmp    1373 <test_copyn+0x223>
mov    0x2d20(%rip),%rbx
mov    (%rbx),%edi
lea    0xd37(%rip),%rsi
lea    0xd3d(%rip),%rdx
lea    0xdcc(%rip),%r8
mov    $0x4e,%ecx
jmp    1373 <test_copyn+0x223>
mov    0x2cf8(%rip),%rbx
mov    (%rbx),%edi
lea    0xd0f(%rip),%rsi
lea    0xd15(%rip),%rdx
lea    0xda4(%rip),%r8
mov    $0x51,%ecx
jmp    1373 <test_copyn+0x223>
mov    0x2cd3(%rip),%rbx
mov    (%rbx),%edi
lea    0xcea(%rip),%rsi
lea    0xcf0(%rip),%rdx
lea    0xd7f(%rip),%r8
mov    $0x52,%ecx
jmp    1373 <test_copyn+0x223>
mov    0x2cae(%rip),%rbx
mov    (%rbx),%edi
lea    0xcc5(%rip),%rsi
lea    0xccb(%rip),%rdx
lea    0xd5a(%rip),%r8
mov    $0x53,%ecx
jmp    1373 <test_copyn+0x223>
mov    0x2c89(%rip),%rbx
mov    (%rbx),%edi
lea    0xca0(%rip),%rsi
lea    0xca6(%rip),%rdx
lea    0xd35(%rip),%r8
mov    $0x54,%ecx
call   1050 <fprintf@plt>
mov    (%rbx),%edi
call   1060 <fflush@plt>
mov    $0x6f,%edi
call   1030 <_exit@plt>

LLVM IR (-O0):
@.str = [1 x i8] zeroinitializer
@stderr = global i32 0
@.str.1 = [13 x i8] c"%s:%llu: %s\0A\00"
@.str.2 = [150 x i8] c"/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/2022-01-22/02-19-57/repos/janmojzis/tinyssh/refs/heads/master/tinyssh-tests/strtest.c\00"
@.str.3 = [18 x i8] c"str_copyn failure\00"
@.str.4 = [2 x i8] c"a\00"
@.str.5 = [6 x i8] c"ahoj!\00"
@.str.6 = [5 x i8] c"ahoj\00"
define void @test_copyn() {
%1 = alloca [5 x i8]
%2 = getelementptr inbounds [5 x i8], [5 x i8]* %1, i64 0, i64 0
%3 = call i64 @str_copyn(i8* %2, i32 0, i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str, i64 0, i64 0))
%4 = icmp ne i64 %3, 0
br i1 %4, label %5, label %13
5: ; preds = %0
br label %6
6: ; preds = %5
%7 = load i32, i32* @stderr
%8 = call i32 @fprintf(i32 %7, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.1, i64 0, i64 0), i8* getelementptr inbounds ([150 x i8], [150 x i8]* @.str.2, i64 0, i64 0), i64 75, i8* getelementptr inbounds ([18 x i8], [18 x i8]* @.str.3, i64 0, i64 0))
%9 = load i32, i32* @stderr
%10 = call i32 @fflush(i32 %9)
%11 = call i32 @_exit(i32 111)
unreachable
12: ; No predecessors!
br label %13
13: ; preds = %12, %0
%14 = getelementptr inbounds [5 x i8], [5 x i8]* %1, i64 0, i64 0
%15 = call i64 @str_copyn(i8* %14, i32 1, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.4, i64 0, i64 0))
%16 = icmp ne i64 %15, 0
br i1 %16, label %17, label %25
17: ; preds = %13
br label %18
18: ; preds = %17
%19 = load i32, i32* @stderr
%20 = call i32 @fprintf(i32 %19, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.1, i64 0, i64 0), i8* getelementptr inbounds ([150 x i8], [150 x i8]* @.str.2, i64 0, i64 0), i64 76, i8* getelementptr inbounds ([18 x i8], [18 x i8]* @.str.3, i64 0, i64 0))
%21 = load i32, i32* @stderr
%22 = call i32 @fflush(i32 %21)
%23 = call i32 @_exit(i32 111)
unreachable
24: ; No predecessors!
br label %25
25: ; preds = %24, %13
%26 = getelementptr inbounds [5 x i8], [5 x i8]* %1, i64 0, i64 0
%27 = call i64 @str_copyn(i8* %26, i32 5, i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.5, i64 0, i64 0))
%28 = icmp ne i64 %27, 0
br i1 %28, label %29, label %37
29: ; preds = %25
br label %30
30: ; preds = %29
%31 = load i32, i32* @stderr
%32 = call i32 @fprintf(i32 %31, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.1, i64 0, i64 0), i8* getelementptr inbounds ([150 x i8], [150 x i8]* @.str.2, i64 0, i64 0), i64 77, i8* getelementptr inbounds ([18 x i8], [18 x i8]* @.str.3, i64 0, i64 0))
%33 = load i32, i32* @stderr
%34 = call i32 @fflush(i32 %33)
%35 = call i32 @_exit(i32 111)
unreachable
36: ; No predecessors!
br label %37
37: ; preds = %36, %25
%38 = getelementptr inbounds [5 x i8], [5 x i8]* %1, i64 0, i64 0
%39 = call i64 @strcmp(i8* %38, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.6, i64 0, i64 0))
%40 = icmp ne i64 %39, 0
br i1 %40, label %41, label %49
41: ; preds = %37
br label %42
42: ; preds = %41
%43 = load i32, i32* @stderr
%44 = call i32 @fprintf(i32 %43, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.1, i64 0, i64 0), i8* getelementptr inbounds ([150 x i8], [150 x i8]* @.str.2, i64 0, i64 0), i64 78, i8* getelementptr inbounds ([18 x i8], [18 x i8]* @.str.3, i64 0, i64 0))
%45 = load i32, i32* @stderr
%46 = call i32 @fflush(i32 %45)
%47 = call i32 @_exit(i32 111)
unreachable
48: ; No predecessors!
br label %49
49: ; preds = %48, %37
%50 = getelementptr inbounds [5 x i8], [5 x i8]* %1, i64 0, i64 0
%51 = call i64 @str_copyn(i8* %50, i32 5, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.6, i64 0, i64 0))
%52 = icmp ne i64 %51, 0
br i1 %52, label %61, label %53
53: ; preds = %49
br label %54
54: ; preds = %53
%55 = load i32, i32* @stderr
%56 = call i32 @fprintf(i32 %55, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.1, i64 0, i64 0), i8* getelementptr inbounds ([150 x i8], [150 x i8]* @.str.2, i64 0, i64 0), i64 81, i8* getelementptr inbounds ([18 x i8], [18 x i8]* @.str.3, i64 0, i64 0))
%57 = load i32, i32* @stderr
%58 = call i32 @fflush(i32 %57)
%59 = call i32 @_exit(i32 111)
unreachable
60: ; No predecessors!
br label %61
61: ; preds = %60, %49
%62 = getelementptr inbounds [5 x i8], [5 x i8]* %1, i64 0, i64 0
%63 = call i64 @strcmp(i8* %62, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.6, i64 0, i64 0))
%64 = icmp ne i64 %63, 0
br i1 %64, label %65, label %73
65: ; preds = %61
br label %66
66: ; preds = %65
%67 = load i32, i32* @stderr
%68 = call i32 @fprintf(i32 %67, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.1, i64 0, i64 0), i8* getelementptr inbounds ([150 x i8], [150 x i8]* @.str.2, i64 0, i64 0), i64 82, i8* getelementptr inbounds ([18 x i8], [18 x i8]* @.str.3, i64 0, i64 0))
%69 = load i32, i32* @stderr
%70 = call i32 @fflush(i32 %69)
%71 = call i32 @_exit(i32 111)
unreachable
72: ; No predecessors!
br label %73
73: ; preds = %72, %61
%74 = getelementptr inbounds [5 x i8], [5 x i8]* %1, i64 0, i64 0
%75 = call i64 @str_copyn(i8* %74, i32 5, i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str, i64 0, i64 0))
%76 = icmp ne i64 %75, 0
br i1 %76, label %85, label %77
77: ; preds = %73
br label %78
78: ; preds = %77
%79 = load i32, i32* @stderr
%80 = call i32 @fprintf(i32 %79, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.1, i64 0, i64 0), i8* getelementptr inbounds ([150 x i8], [150 x i8]* @.str.2, i64 0, i64 0), i64 83, i8* getelementptr inbounds ([18 x i8], [18 x i8]* @.str.3, i64 0, i64 0))
%81 = load i32, i32* @stderr
%82 = call i32 @fflush(i32 %81)
%83 = call i32 @_exit(i32 111)
unreachable
84: ; No predecessors!
br label %85
85: ; preds = %84, %73
%86 = getelementptr inbounds [5 x i8], [5 x i8]* %1, i64 0, i64 0
%87 = call i64 @strcmp(i8* %86, i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str, i64 0, i64 0))
%88 = icmp ne i64 %87, 0
br i1 %88, label %89, label %97
89: ; preds = %85
br label %90
90: ; preds = %89
%91 = load i32, i32* @stderr
%92 = call i32 @fprintf(i32 %91, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.1, i64 0, i64 0), i8* getelementptr inbounds ([150 x i8], [150 x i8]* @.str.2, i64 0, i64 0), i64 84, i8* getelementptr inbounds ([18 x i8], [18 x i8]* @.str.3, i64 0, i64 0))
%93 = load i32, i32* @stderr
%94 = call i32 @fflush(i32 %93)
%95 = call i32 @_exit(i32 111)
unreachable
96: ; No predecessors!
br label %97
97: ; preds = %96, %85
ret void
}

LLVM IR (-O2):
@.str = [1 x i8] zeroinitializer
@stderr = global i32 0
@.str.1 = [13 x i8] c"%s:%llu: %s\0A\00"
@.str.2 = [150 x i8] c"/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/2022-01-22/02-19-57/repos/janmojzis/tinyssh/refs/heads/master/tinyssh-tests/strtest.c\00"
@.str.3 = [18 x i8] c"str_copyn failure\00"
@.str.4 = [2 x i8] c"a\00"
@.str.5 = [6 x i8] c"ahoj!\00"
@.str.6 = [5 x i8] c"ahoj\00"
define void @test_copyn() {
%1 = alloca [5 x i8]
%2 = getelementptr inbounds [5 x i8], [5 x i8]* %1, i64 0, i64 0
%3 = call i64 @str_copyn(i8* %2, i32 0, i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str, i64 0, i64 0))
%4 = icmp eq i64 %3, 0
br i1 %4, label %11, label %5
5: ; preds = %0
%6 = load i32, i32* @stderr
%7 = call i32 @fprintf(i32 %6, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.1, i64 0, i64 0), i8* getelementptr inbounds ([150 x i8], [150 x i8]* @.str.2, i64 0, i64 0), i64 75, i8* getelementptr inbounds ([18 x i8], [18 x i8]* @.str.3, i64 0, i64 0))
%8 = load i32, i32* @stderr
%9 = call i32 @fflush(i32 %8)
%10 = call i32 @_exit(i32 111)
unreachable
11: ; preds = %0
%12 = call i64 @str_copyn(i8* %2, i32 1, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.4, i64 0, i64 0))
%13 = icmp eq i64 %12, 0
br i1 %13, label %20, label %14
14: ; preds = %11
%15 = load i32, i32* @stderr
%16 = call i32 @fprintf(i32 %15, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.1, i64 0, i64 0), i8* getelementptr inbounds ([150 x i8], [150 x i8]* @.str.2, i64 0, i64 0), i64 76, i8* getelementptr inbounds ([18 x i8], [18 x i8]* @.str.3, i64 0, i64 0))
%17 = load i32, i32* @stderr
%18 = call i32 @fflush(i32 %17)
%19 = call i32 @_exit(i32 111)
unreachable
20: ; preds = %11
%21 = call i64 @str_copyn(i8* %2, i32 5, i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.5, i64 0, i64 0))
%22 = icmp eq i64 %21, 0
br i1 %22, label %29, label %23
23: ; preds = %20
%24 = load i32, i32* @stderr
%25 = call i32 @fprintf(i32 %24, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.1, i64 0, i64 0), i8* getelementptr inbounds ([150 x i8], [150 x i8]* @.str.2, i64 0, i64 0), i64 77, i8* getelementptr inbounds ([18 x i8], [18 x i8]* @.str.3, i64 0, i64 0))
%26 = load i32, i32* @stderr
%27 = call i32 @fflush(i32 %26)
%28 = call i32 @_exit(i32 111)
unreachable
29: ; preds = %20
%30 = call i64 @strcmp(i8* %2, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.6, i64 0, i64 0))
%31 = icmp eq i64 %30, 0
br i1 %31, label %38, label %32
32: ; preds = %29
%33 = load i32, i32* @stderr
%34 = call i32 @fprintf(i32 %33, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.1, i64 0, i64 0), i8* getelementptr inbounds ([150 x i8], [150 x i8]* @.str.2, i64 0, i64 0), i64 78, i8* getelementptr inbounds ([18 x i8], [18 x i8]* @.str.3, i64 0, i64 0))
%35 = load i32, i32* @stderr
%36 = call i32 @fflush(i32 %35)
%37 = call i32 @_exit(i32 111)
unreachable
38: ; preds = %29
%39 = call i64 @str_copyn(i8* %2, i32 5, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.6, i64 0, i64 0))
%40 = icmp eq i64 %39, 0
br i1 %40, label %41, label %47
41: ; preds = %38
%42 = load i32, i32* @stderr
%43 = call i32 @fprintf(i32 %42, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.1, i64 0, i64 0), i8* getelementptr inbounds ([150 x i8], [150 x i8]* @.str.2, i64 0, i64 0), i64 81, i8* getelementptr inbounds ([18 x i8], [18 x i8]* @.str.3, i64 0, i64 0))
%44 = load i32, i32* @stderr
%45 = call i32 @fflush(i32 %44)
%46 = call i32 @_exit(i32 111)
unreachable
47: ; preds = %38
%48 = call i64 @strcmp(i8* %2, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.6, i64 0, i64 0))
%49 = icmp eq i64 %48, 0
br i1 %49, label %56, label %50
50: ; preds = %47
%51 = load i32, i32* @stderr
%52 = call i32 @fprintf(i32 %51, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.1, i64 0, i64 0), i8* getelementptr inbounds ([150 x i8], [150 x i8]* @.str.2, i64 0, i64 0), i64 82, i8* getelementptr inbounds ([18 x i8], [18 x i8]* @.str.3, i64 0, i64 0))
%53 = load i32, i32* @stderr
%54 = call i32 @fflush(i32 %53)
%55 = call i32 @_exit(i32 111)
unreachable
56: ; preds = %47
%57 = call i64 @str_copyn(i8* %2, i32 5, i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str, i64 0, i64 0))
%58 = icmp eq i64 %57, 0
br i1 %58, label %59, label %65
59: ; preds = %56
%60 = load i32, i32* @stderr
%61 = call i32 @fprintf(i32 %60, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.1, i64 0, i64 0), i8* getelementptr inbounds ([150 x i8], [150 x i8]* @.str.2, i64 0, i64 0), i64 83, i8* getelementptr inbounds ([18 x i8], [18 x i8]* @.str.3, i64 0, i64 0))
%62 = load i32, i32* @stderr
%63 = call i32 @fflush(i32 %62)
%64 = call i32 @_exit(i32 111)
unreachable
65: ; preds = %56
%66 = call i64 @strcmp(i8* %2, i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str, i64 0, i64 0))
%67 = icmp eq i64 %66, 0
br i1 %67, label %74, label %68
68: ; preds = %65
%69 = load i32, i32* @stderr
%70 = call i32 @fprintf(i32 %69, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.1, i64 0, i64 0), i8* getelementptr inbounds ([150 x i8], [150 x i8]* @.str.2, i64 0, i64 0), i64 84, i8* getelementptr inbounds ([18 x i8], [18 x i8]* @.str.3, i64 0, i64 0))
%71 = load i32, i32* @stderr
%72 = call i32 @fflush(i32 %71)
%73 = call i32 @_exit(i32 111)
unreachable
74: ; preds = %65
ret void
}