#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 */
scalar_t__ EEXIST;
int S_IFBLK;
scalar_t__ errno;
int /*<<< orphan*/ exit(int);
int /*<<< orphan*/ makedev(int, int /*<<< orphan*/);
int mkdir(char *, int);
int mknod(char *, int, int /*<<< orphan*/);
int mount(char *, char *, char *, int /*<<< orphan*/, int /*<<< orphan*/ *);
int /*<<< orphan*/ printf(char *, char *);
char *strerror(scalar_t__);
int /*<<< orphan*/ umask(int /*<<< orphan*/);
void init(void) {
  int ret;
  umask(0);
  ret = mkdir("/dev", 0755);
  if (ret && errno != EEXIST) {
    printf("error: "
           "failed to create /dev"
           ": %s"
           "\n",
           strerror(errno));
    exit(-1);
  };
  ret = mkdir("/proc", 0755);
  if (ret && errno != EEXIST) {
    printf("error: "
           "failed to create /proc"
           ": %s"
           "\n",
           strerror(errno));
    exit(-1);
  };
  ret = mkdir("/sys", 0755);
  if (ret && errno != EEXIST) {
    printf("error: "
           "failed to create /sys"
           ": %s"
           "\n",
           strerror(errno));
    exit(-1);
  };
  ret = mount("proc", "/proc", "proc", 0, NULL);
  if (ret) {
    printf("error: "
           "failed to mount proc"
           ": %s"
           "\n",
           strerror(errno));
    exit(-1);
  };
  ret = mount("sysfs", "/sys", "sysfs", 0, NULL);
  if (ret) {
    printf("error: "
           "failed to mount sys"
           ": %s"
           "\n",
           strerror(errno));
    exit(-1);
  };
  ret = mkdir("/dev/block", 0755);
  if (ret && errno != EEXIST) {
    printf("error: "
           "failed to create /dev/block"
           ": %s"
           "\n",
           strerror(errno));
    exit(-1);
  };
  ret = mknod("/dev/block/mmcblk0", S_IFBLK | 0755, makedev(179, 0));
  if (ret) {
    printf("error: "
           "failed to create mmcblk0"
           ": %s"
           "\n",
           strerror(errno));
    exit(-1);
  };
}


x86 assembly (clang, -O0):
<init>:
push   %rbp
mov    %rsp,%rbp
sub    $0x10,%rsp
xor    %edi,%edi
call   1060 <umask@plt>
lea    0xe6a(%rip),%rdi
mov    $0x1ed,%esi
call   1030 <mkdir@plt>
mov    %eax,-0x4(%rbp)
cmpl   $0x0,-0x4(%rbp)
je     11ef <init+0x6f>
mov    0x2e1c(%rip),%rax
mov    (%rax),%rax
mov    0x2e1a(%rip),%rcx
cmp    (%rcx),%rax
je     11ef <init+0x6f>
mov    0x2e02(%rip),%rax
mov    (%rax),%rdi
call   10a0 <strerror@plt>
mov    %rax,%rsi
lea    0xe25(%rip),%rdi
call   1050 <printf@plt>
mov    $0xffffffff,%edi
call   1090 <exit@plt>
lea    0xe31(%rip),%rdi
mov    $0x1ed,%esi
call   1030 <mkdir@plt>
mov    %eax,-0x4(%rbp)
cmpl   $0x0,-0x4(%rbp)
je     124f <init+0xcf>
mov    0x2dbc(%rip),%rax
mov    (%rax),%rax
mov    0x2dba(%rip),%rcx
cmp    (%rcx),%rax
je     124f <init+0xcf>
mov    0x2da2(%rip),%rax
mov    (%rax),%rdi
call   10a0 <strerror@plt>
mov    %rax,%rsi
lea    0xded(%rip),%rdi
call   1050 <printf@plt>
mov    $0xffffffff,%edi
call   1090 <exit@plt>
lea    0xdfa(%rip),%rdi
mov    $0x1ed,%esi
call   1030 <mkdir@plt>
mov    %eax,-0x4(%rbp)
cmpl   $0x0,-0x4(%rbp)
je     12af <init+0x12f>
mov    0x2d5c(%rip),%rax
mov    (%rax),%rax
mov    0x2d5a(%rip),%rcx
cmp    (%rcx),%rax
je     12af <init+0x12f>
mov    0x2d42(%rip),%rax
mov    (%rax),%rdi
call   10a0 <strerror@plt>
mov    %rax,%rsi
lea    0xdb5(%rip),%rdi
call   1050 <printf@plt>
mov    $0xffffffff,%edi
call   1090 <exit@plt>
lea    0xd72(%rip),%rdx
lea    0xd6a(%rip),%rsi
xor    %ecx,%ecx
xor    %eax,%eax
mov    %eax,%r8d
mov    %rdx,%rdi
call   1040 <mount@plt>
mov    %eax,-0x4(%rbp)
cmpl   $0x0,-0x4(%rbp)
je     1301 <init+0x181>
mov    0x2cf0(%rip),%rax
mov    (%rax),%rdi
call   10a0 <strerror@plt>
mov    %rax,%rsi
lea    0xd85(%rip),%rdi
call   1050 <printf@plt>
mov    $0xffffffff,%edi
call   1090 <exit@plt>
lea    0xd90(%rip),%rdx
lea    0xd41(%rip),%rsi
xor    %ecx,%ecx
xor    %eax,%eax
mov    %eax,%r8d
mov    %rdx,%rdi
call   1040 <mount@plt>
mov    %eax,-0x4(%rbp)
cmpl   $0x0,-0x4(%rbp)
je     1353 <init+0x1d3>
mov    0x2c9e(%rip),%rax
mov    (%rax),%rdi
call   10a0 <strerror@plt>
mov    %rax,%rsi
lea    0xd5a(%rip),%rdi
call   1050 <printf@plt>
mov    $0xffffffff,%edi
call   1090 <exit@plt>
lea    0xd64(%rip),%rdi
mov    $0x1ed,%esi
call   1030 <mkdir@plt>
mov    %eax,-0x4(%rbp)
cmpl   $0x0,-0x4(%rbp)
je     13b3 <init+0x233>
mov    0x2c58(%rip),%rax
mov    (%rax),%rax
mov    0x2c56(%rip),%rcx
cmp    (%rcx),%rax
je     13b3 <init+0x233>
mov    0x2c3e(%rip),%rax
mov    (%rax),%rdi
call   10a0 <strerror@plt>
mov    %rax,%rsi
lea    0xd25(%rip),%rdi
call   1050 <printf@plt>
mov    $0xffffffff,%edi
call   1090 <exit@plt>
mov    0x2c26(%rip),%rax
mov    (%rax),%eax
or     $0x1ed,%eax
mov    %eax,-0x8(%rbp)
mov    $0xb3,%edi
xor    %esi,%esi
call   1080 <makedev@plt>
mov    -0x8(%rbp),%esi
mov    %eax,%edx
lea    0xd15(%rip),%rdi
call   1070 <mknod@plt>
mov    %eax,-0x4(%rbp)
cmpl   $0x0,-0x4(%rbp)
je     1416 <init+0x296>
mov    0x2bdb(%rip),%rax
mov    (%rax),%rdi
call   10a0 <strerror@plt>
mov    %rax,%rsi
lea    0xcfd(%rip),%rdi
call   1050 <printf@plt>
mov    $0xffffffff,%edi
call   1090 <exit@plt>
add    $0x10,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<init>:
push   %rbx
xor    %edi,%edi
call   1060 <umask@plt>
lea    0xe71(%rip),%rdi
mov    $0x1ed,%esi
call   1030 <mkdir@plt>
test   %eax,%eax
je     11b7 <init+0x37>
mov    0x2e2c(%rip),%rax
mov    (%rax),%rdi
mov    0x2e2a(%rip),%rax
cmp    (%rax),%rdi
jne    12fa <init+0x17a>
lea    0xe69(%rip),%rdi
mov    $0x1ed,%esi
call   1030 <mkdir@plt>
test   %eax,%eax
je     11e6 <init+0x66>
mov    0x2dfd(%rip),%rax
mov    (%rax),%rdi
mov    0x2dfb(%rip),%rax
cmp    (%rax),%rdi
jne    1308 <init+0x188>
lea    0xe63(%rip),%rdi
mov    $0x1ed,%esi
call   1030 <mkdir@plt>
test   %eax,%eax
je     1215 <init+0x95>
mov    0x2dce(%rip),%rax
mov    (%rax),%rdi
mov    0x2dcc(%rip),%rax
cmp    (%rax),%rdi
jne    1316 <init+0x196>
lea    0xe0b(%rip),%rsi
lea    0xe05(%rip),%rdi
mov    %rdi,%rdx
xor    %ecx,%ecx
xor    %r8d,%r8d
call   1040 <mount@plt>
test   %eax,%eax
jne    12b2 <init+0x132>
lea    0xe15(%rip),%rsi
lea    0xe56(%rip),%rdi
mov    %rdi,%rdx
xor    %ecx,%ecx
xor    %r8d,%r8d
call   1040 <mount@plt>
test   %eax,%eax
jne    12ca <init+0x14a>
lea    0xe64(%rip),%rdi
mov    $0x1ed,%ebx
mov    $0x1ed,%esi
call   1030 <mkdir@plt>
test   %eax,%eax
je     1287 <init+0x107>
mov    0x2d5c(%rip),%rax
mov    (%rax),%rdi
mov    0x2d5a(%rip),%rax
cmp    (%rax),%rdi
jne    1324 <init+0x1a4>
mov    0x2d52(%rip),%rax
or     (%rax),%ebx
mov    $0xb3,%edi
xor    %esi,%esi
call   1080 <makedev@plt>
lea    0xe4e(%rip),%rdi
mov    %ebx,%esi
mov    %eax,%edx
call   1070 <mknod@plt>
test   %eax,%eax
jne    12e2 <init+0x162>
pop    %rbx
ret
mov    0x2d17(%rip),%rax
mov    (%rax),%rdi
call   10a0 <strerror@plt>
lea    0xdaf(%rip),%rdi
jmp    1330 <init+0x1b0>
mov    0x2cff(%rip),%rax
mov    (%rax),%rdi
call   10a0 <strerror@plt>
lea    0xdbe(%rip),%rdi
jmp    1330 <init+0x1b0>
mov    0x2ce7(%rip),%rax
mov    (%rax),%rdi
call   10a0 <strerror@plt>
lea    0xe0c(%rip),%rdi
jmp    1330 <init+0x1b0>
call   10a0 <strerror@plt>
lea    0xcff(%rip),%rdi
jmp    1330 <init+0x1b0>
call   10a0 <strerror@plt>
lea    0xd19(%rip),%rdi
jmp    1330 <init+0x1b0>
call   10a0 <strerror@plt>
lea    0xd33(%rip),%rdi
jmp    1330 <init+0x1b0>
call   10a0 <strerror@plt>
lea    0xd99(%rip),%rdi
mov    %rax,%rsi
call   1050 <printf@plt>
mov    $0xffffffff,%edi
call   1090 <exit@plt>

LLVM IR (-O0):
@.str = [5 x i8] c"/dev\00"
@errno = global i64 0
@EEXIST = global i64 0
@.str.1 = [34 x i8] c"error: failed to create /dev: %s\0A\00"
@.str.2 = [6 x i8] c"/proc\00"
@.str.3 = [35 x i8] c"error: failed to create /proc: %s\0A\00"
@.str.4 = [5 x i8] c"/sys\00"
@.str.5 = [34 x i8] c"error: failed to create /sys: %s\0A\00"
@.str.6 = [5 x i8] c"proc\00"
@.str.7 = [33 x i8] c"error: failed to mount proc: %s\0A\00"
@.str.8 = [6 x i8] c"sysfs\00"
@.str.9 = [32 x i8] c"error: failed to mount sys: %s\0A\00"
@.str.10 = [11 x i8] c"/dev/block\00"
@.str.11 = [40 x i8] c"error: failed to create /dev/block: %s\0A\00"
@.str.12 = [19 x i8] c"/dev/block/mmcblk0\00"
@S_IFBLK = global i32 0
@.str.13 = [37 x i8] c"error: failed to create mmcblk0: %s\0A\00"
define void @init() {
%1 = alloca i32
%2 = call i32 @umask(i32 0)
%3 = call i32 @mkdir(i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str, i64 0, i64 0), i32 493)
store i32 %3, i32* %1
%4 = load i32, i32* %1
%5 = icmp ne i32 %4, 0
br i1 %5, label %6, label %15
6: ; preds = %0
%7 = load i64, i64* @errno
%8 = load i64, i64* @EEXIST
%9 = icmp ne i64 %7, %8
br i1 %9, label %10, label %15
10: ; preds = %6
%11 = load i64, i64* @errno
%12 = call i8* @strerror(i64 %11)
%13 = call i32 @printf(i8* getelementptr inbounds ([34 x i8], [34 x i8]* @.str.1, i64 0, i64 0), i8* %12)
%14 = call i32 @exit(i32 -1)
unreachable
15: ; preds = %6, %0
%16 = call i32 @mkdir(i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.2, i64 0, i64 0), i32 493)
store i32 %16, i32* %1
%17 = load i32, i32* %1
%18 = icmp ne i32 %17, 0
br i1 %18, label %19, label %28
19: ; preds = %15
%20 = load i64, i64* @errno
%21 = load i64, i64* @EEXIST
%22 = icmp ne i64 %20, %21
br i1 %22, label %23, label %28
23: ; preds = %19
%24 = load i64, i64* @errno
%25 = call i8* @strerror(i64 %24)
%26 = call i32 @printf(i8* getelementptr inbounds ([35 x i8], [35 x i8]* @.str.3, i64 0, i64 0), i8* %25)
%27 = call i32 @exit(i32 -1)
unreachable
28: ; preds = %19, %15
%29 = call i32 @mkdir(i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.4, i64 0, i64 0), i32 493)
store i32 %29, i32* %1
%30 = load i32, i32* %1
%31 = icmp ne i32 %30, 0
br i1 %31, label %32, label %41
32: ; preds = %28
%33 = load i64, i64* @errno
%34 = load i64, i64* @EEXIST
%35 = icmp ne i64 %33, %34
br i1 %35, label %36, label %41
36: ; preds = %32
%37 = load i64, i64* @errno
%38 = call i8* @strerror(i64 %37)
%39 = call i32 @printf(i8* getelementptr inbounds ([34 x i8], [34 x i8]* @.str.5, i64 0, i64 0), i8* %38)
%40 = call i32 @exit(i32 -1)
unreachable
41: ; preds = %32, %28
%42 = call i32 @mount(i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.6, i64 0, i64 0), i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.2, i64 0, i64 0), i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.6, i64 0, i64 0), i32 0, i32* null)
store i32 %42, i32* %1
%43 = load i32, i32* %1
%44 = icmp ne i32 %43, 0
br i1 %44, label %45, label %50
45: ; preds = %41
%46 = load i64, i64* @errno
%47 = call i8* @strerror(i64 %46)
%48 = call i32 @printf(i8* getelementptr inbounds ([33 x i8], [33 x i8]* @.str.7, i64 0, i64 0), i8* %47)
%49 = call i32 @exit(i32 -1)
unreachable
50: ; preds = %41
%51 = call i32 @mount(i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.8, i64 0, i64 0), i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.4, i64 0, i64 0), i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.8, i64 0, i64 0), i32 0, i32* null)
store i32 %51, i32* %1
%52 = load i32, i32* %1
%53 = icmp ne i32 %52, 0
br i1 %53, label %54, label %59
54: ; preds = %50
%55 = load i64, i64* @errno
%56 = call i8* @strerror(i64 %55)
%57 = call i32 @printf(i8* getelementptr inbounds ([32 x i8], [32 x i8]* @.str.9, i64 0, i64 0), i8* %56)
%58 = call i32 @exit(i32 -1)
unreachable
59: ; preds = %50
%60 = call i32 @mkdir(i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str.10, i64 0, i64 0), i32 493)
store i32 %60, i32* %1
%61 = load i32, i32* %1
%62 = icmp ne i32 %61, 0
br i1 %62, label %63, label %72
63: ; preds = %59
%64 = load i64, i64* @errno
%65 = load i64, i64* @EEXIST
%66 = icmp ne i64 %64, %65
br i1 %66, label %67, label %72
67: ; preds = %63
%68 = load i64, i64* @errno
%69 = call i8* @strerror(i64 %68)
%70 = call i32 @printf(i8* getelementptr inbounds ([40 x i8], [40 x i8]* @.str.11, i64 0, i64 0), i8* %69)
%71 = call i32 @exit(i32 -1)
unreachable
72: ; preds = %63, %59
%73 = load i32, i32* @S_IFBLK
%74 = or i32 %73, 493
%75 = call i32 @makedev(i32 179, i32 0)
%76 = call i32 @mknod(i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.12, i64 0, i64 0), i32 %74, i32 %75)
store i32 %76, i32* %1
%77 = load i32, i32* %1
%78 = icmp ne i32 %77, 0
br i1 %78, label %79, label %84
79: ; preds = %72
%80 = load i64, i64* @errno
%81 = call i8* @strerror(i64 %80)
%82 = call i32 @printf(i8* getelementptr inbounds ([37 x i8], [37 x i8]* @.str.13, i64 0, i64 0), i8* %81)
%83 = call i32 @exit(i32 -1)
unreachable
84: ; preds = %72
ret void
}

LLVM IR (-O2):
@.str = [5 x i8] c"/dev\00"
@errno = global i64 0
@EEXIST = global i64 0
@.str.1 = [34 x i8] c"error: failed to create /dev: %s\0A\00"
@.str.2 = [6 x i8] c"/proc\00"
@.str.3 = [35 x i8] c"error: failed to create /proc: %s\0A\00"
@.str.4 = [5 x i8] c"/sys\00"
@.str.5 = [34 x i8] c"error: failed to create /sys: %s\0A\00"
@.str.6 = [5 x i8] c"proc\00"
@.str.7 = [33 x i8] c"error: failed to mount proc: %s\0A\00"
@.str.8 = [6 x i8] c"sysfs\00"
@.str.9 = [32 x i8] c"error: failed to mount sys: %s\0A\00"
@.str.10 = [11 x i8] c"/dev/block\00"
@.str.11 = [40 x i8] c"error: failed to create /dev/block: %s\0A\00"
@.str.12 = [19 x i8] c"/dev/block/mmcblk0\00"
@S_IFBLK = global i32 0
@.str.13 = [37 x i8] c"error: failed to create mmcblk0: %s\0A\00"
define void @init() {
%1 = tail call i32 @umask(i32 0)
%2 = tail call i32 @mkdir(i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str, i64 0, i64 0), i32 493)
%3 = icmp eq i32 %2, 0
br i1 %3, label %12, label %4
4: ; preds = %0
%5 = load i64, i64* @errno
%6 = load i64, i64* @EEXIST
%7 = icmp eq i64 %5, %6
br i1 %7, label %12, label %8
8: ; preds = %4
%9 = tail call i8* @strerror(i64 %5)
%10 = tail call i32 @printf(i8* getelementptr inbounds ([34 x i8], [34 x i8]* @.str.1, i64 0, i64 0), i8* %9)
%11 = tail call i32 @exit(i32 -1)
unreachable
12: ; preds = %4, %0
%13 = tail call i32 @mkdir(i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.2, i64 0, i64 0), i32 493)
%14 = icmp eq i32 %13, 0
br i1 %14, label %23, label %15
15: ; preds = %12
%16 = load i64, i64* @errno
%17 = load i64, i64* @EEXIST
%18 = icmp eq i64 %16, %17
br i1 %18, label %23, label %19
19: ; preds = %15
%20 = tail call i8* @strerror(i64 %16)
%21 = tail call i32 @printf(i8* getelementptr inbounds ([35 x i8], [35 x i8]* @.str.3, i64 0, i64 0), i8* %20)
%22 = tail call i32 @exit(i32 -1)
unreachable
23: ; preds = %15, %12
%24 = tail call i32 @mkdir(i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.4, i64 0, i64 0), i32 493)
%25 = icmp eq i32 %24, 0
br i1 %25, label %34, label %26
26: ; preds = %23
%27 = load i64, i64* @errno
%28 = load i64, i64* @EEXIST
%29 = icmp eq i64 %27, %28
br i1 %29, label %34, label %30
30: ; preds = %26
%31 = tail call i8* @strerror(i64 %27)
%32 = tail call i32 @printf(i8* getelementptr inbounds ([34 x i8], [34 x i8]* @.str.5, i64 0, i64 0), i8* %31)
%33 = tail call i32 @exit(i32 -1)
unreachable
34: ; preds = %26, %23
%35 = tail call i32 @mount(i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.6, i64 0, i64 0), i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.2, i64 0, i64 0), i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.6, i64 0, i64 0), i32 0, i32* null)
%36 = icmp eq i32 %35, 0
br i1 %36, label %42, label %37
37: ; preds = %34
%38 = load i64, i64* @errno
%39 = tail call i8* @strerror(i64 %38)
%40 = tail call i32 @printf(i8* getelementptr inbounds ([33 x i8], [33 x i8]* @.str.7, i64 0, i64 0), i8* %39)
%41 = tail call i32 @exit(i32 -1)
unreachable
42: ; preds = %34
%43 = tail call i32 @mount(i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.8, i64 0, i64 0), i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.4, i64 0, i64 0), i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.8, i64 0, i64 0), i32 0, i32* null)
%44 = icmp eq i32 %43, 0
br i1 %44, label %50, label %45
45: ; preds = %42
%46 = load i64, i64* @errno
%47 = tail call i8* @strerror(i64 %46)
%48 = tail call i32 @printf(i8* getelementptr inbounds ([32 x i8], [32 x i8]* @.str.9, i64 0, i64 0), i8* %47)
%49 = tail call i32 @exit(i32 -1)
unreachable
50: ; preds = %42
%51 = tail call i32 @mkdir(i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str.10, i64 0, i64 0), i32 493)
%52 = icmp eq i32 %51, 0
br i1 %52, label %61, label %53
53: ; preds = %50
%54 = load i64, i64* @errno
%55 = load i64, i64* @EEXIST
%56 = icmp eq i64 %54, %55
br i1 %56, label %61, label %57
57: ; preds = %53
%58 = tail call i8* @strerror(i64 %54)
%59 = tail call i32 @printf(i8* getelementptr inbounds ([40 x i8], [40 x i8]* @.str.11, i64 0, i64 0), i8* %58)
%60 = tail call i32 @exit(i32 -1)
unreachable
61: ; preds = %53, %50
%62 = load i32, i32* @S_IFBLK
%63 = or i32 %62, 493
%64 = tail call i32 @makedev(i32 179, i32 0)
%65 = tail call i32 @mknod(i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.12, i64 0, i64 0), i32 %63, i32 %64)
%66 = icmp eq i32 %65, 0
br i1 %66, label %72, label %67
67: ; preds = %61
%68 = load i64, i64* @errno
%69 = tail call i8* @strerror(i64 %68)
%70 = tail call i32 @printf(i8* getelementptr inbounds ([37 x i8], [37 x i8]* @.str.13, i64 0, i64 0), i8* %69)
%71 = tail call i32 @exit(i32 -1)
unreachable
72: ; preds = %61
ret void
}