#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*/ epicfail(char *);
int /*<<< orphan*/ snprintf(char *, int, char *, char *);
int strlen(char *);
int /*<<< orphan*/ strncat(char *, char *, int);
int /*<<< orphan*/ strncpy(char *, char *, int);
int write(int, char *, int);
void send_code_param(int fd, int code, char *p1) {
  char buf[256] = {0};
  if (code == 150)
    strncpy(buf, "150 Opening connection", 256 - 1);
  else if (code == 200)
    strncpy(buf, "200 Okay", 256 - 1);
  else if (code == 215)
    snprintf(buf, 256 - 1, "215 %s", p1);
  else if (code == 220)
    strncpy(buf, "220 Service ready", 256 - 1);
  else if (code == 221)
    strncpy(buf, "221 Goodbye", 256 - 1);
  else if (code == 226)
    strncpy(buf, "226 Transfer complete", 256 - 1);
  else if (code == 227)
    snprintf(buf, 256 - 1, "227 Entering Passive Mode (%s).", p1);
  else if (code == 230)
    strncpy(buf, "230 User logged in", 256 - 1);
  else if (code == 250)
    strncpy(buf, "250 Command successful", 256 - 1);
  else if (code == 257)
    snprintf(buf, 256 - 1, "257 \"%s\"\r\n", p1);
  else if (code == 331)
    strncpy(buf, "331 User name ok, need password", 256 - 1);
  else if (code == 500)
    strncpy(buf, "500 Syntax error, command unrecognized", 256 - 1);
  else if (code == 550)
    strncpy(buf, "550 Requested action not taken.", 256 - 1);
  else
    epicfail("Invalid code.");
  strncat(buf, "\r\n", 256 - 1);
  int len = strlen(buf);
  int bytes_written = write(fd, buf, len);
  if (bytes_written != len)
    epicfail("write");
}


x86 assembly (clang, -O0):
<send_code_param>:
push   %rbp
mov    %rsp,%rbp
sub    $0x120,%rsp
mov    %edi,-0x4(%rbp)
mov    %esi,-0x8(%rbp)
mov    %rdx,-0x10(%rbp)
lea    -0x110(%rbp),%rdi
xor    %esi,%esi
mov    $0x100,%edx
call   1070 <memset@plt>
cmpl   $0x96,-0x8(%rbp)
jne    11c2 <send_code_param+0x52>
lea    -0x110(%rbp),%rdi
lea    0xe4d(%rip),%rsi
mov    $0xff,%edx
call   1030 <strncpy@plt>
jmp    140e <send_code_param+0x29e>
cmpl   $0xc8,-0x8(%rbp)
jne    11ec <send_code_param+0x7c>
lea    -0x110(%rbp),%rdi
lea    0xe3a(%rip),%rsi
mov    $0xff,%edx
call   1030 <strncpy@plt>
jmp    1409 <send_code_param+0x299>
cmpl   $0xd7,-0x8(%rbp)
jne    121a <send_code_param+0xaa>
lea    -0x110(%rbp),%rdi
mov    -0x10(%rbp),%rcx
mov    $0xff,%esi
lea    0xe10(%rip),%rdx
call   1060 <snprintf@plt>
jmp    1404 <send_code_param+0x294>
cmpl   $0xdc,-0x8(%rbp)
jne    1244 <send_code_param+0xd4>
lea    -0x110(%rbp),%rdi
lea    0xdf2(%rip),%rsi
mov    $0xff,%edx
call   1030 <strncpy@plt>
jmp    13ff <send_code_param+0x28f>
cmpl   $0xdd,-0x8(%rbp)
jne    126e <send_code_param+0xfe>
lea    -0x110(%rbp),%rdi
lea    0xdda(%rip),%rsi
mov    $0xff,%edx
call   1030 <strncpy@plt>
jmp    13fa <send_code_param+0x28a>
cmpl   $0xe2,-0x8(%rbp)
jne    1298 <send_code_param+0x128>
lea    -0x110(%rbp),%rdi
lea    0xdbc(%rip),%rsi
mov    $0xff,%edx
call   1030 <strncpy@plt>
jmp    13f5 <send_code_param+0x285>
cmpl   $0xe3,-0x8(%rbp)
jne    12c6 <send_code_param+0x156>
lea    -0x110(%rbp),%rdi
mov    -0x10(%rbp),%rcx
mov    $0xff,%esi
lea    0xd9f(%rip),%rdx
call   1060 <snprintf@plt>
jmp    13f0 <send_code_param+0x280>
cmpl   $0xe6,-0x8(%rbp)
jne    12f0 <send_code_param+0x180>
lea    -0x110(%rbp),%rdi
lea    0xd9a(%rip),%rsi
mov    $0xff,%edx
call   1030 <strncpy@plt>
jmp    13eb <send_code_param+0x27b>
cmpl   $0xfa,-0x8(%rbp)
jne    131a <send_code_param+0x1aa>
lea    -0x110(%rbp),%rdi
lea    0xd83(%rip),%rsi
mov    $0xff,%edx
call   1030 <strncpy@plt>
jmp    13e6 <send_code_param+0x276>
cmpl   $0x101,-0x8(%rbp)
jne    1348 <send_code_param+0x1d8>
lea    -0x110(%rbp),%rdi
mov    -0x10(%rbp),%rcx
mov    $0xff,%esi
lea    0xd67(%rip),%rdx
call   1060 <snprintf@plt>
jmp    13e1 <send_code_param+0x271>
cmpl   $0x14b,-0x8(%rbp)
jne    1372 <send_code_param+0x202>
lea    -0x110(%rbp),%rdi
lea    0xd4d(%rip),%rsi
mov    $0xff,%edx
call   1030 <strncpy@plt>
jmp    13dc <send_code_param+0x26c>
cmpl   $0x1f4,-0x8(%rbp)
jne    139c <send_code_param+0x22c>
lea    -0x110(%rbp),%rdi
lea    0xd43(%rip),%rsi
mov    $0xff,%edx
call   1030 <strncpy@plt>
jmp    13d7 <send_code_param+0x267>
cmpl   $0x226,-0x8(%rbp)
jne    13c6 <send_code_param+0x256>
lea    -0x110(%rbp),%rdi
lea    0xd40(%rip),%rsi
mov    $0xff,%edx
call   1030 <strncpy@plt>
jmp    13d2 <send_code_param+0x262>
lea    0xd4a(%rip),%rdi
call   1090 <epicfail@plt>
jmp    13d7 <send_code_param+0x267>
jmp    13dc <send_code_param+0x26c>
jmp    13e1 <send_code_param+0x271>
jmp    13e6 <send_code_param+0x276>
jmp    13eb <send_code_param+0x27b>
jmp    13f0 <send_code_param+0x280>
jmp    13f5 <send_code_param+0x285>
jmp    13fa <send_code_param+0x28a>
jmp    13ff <send_code_param+0x28f>
jmp    1404 <send_code_param+0x294>
jmp    1409 <send_code_param+0x299>
jmp    140e <send_code_param+0x29e>
lea    -0x110(%rbp),%rdi
lea    0xc91(%rip),%rsi
mov    $0xff,%edx
call   1080 <strncat@plt>
lea    -0x110(%rbp),%rdi
call   1050 <strlen@plt>
mov    %eax,-0x114(%rbp)
mov    -0x4(%rbp),%edi
lea    -0x110(%rbp),%rsi
mov    -0x114(%rbp),%edx
call   1040 <write@plt>
mov    %eax,-0x118(%rbp)
mov    -0x118(%rbp),%eax
cmp    -0x114(%rbp),%eax
je     1471 <send_code_param+0x301>
lea    0xcb9(%rip),%rdi
call   1090 <epicfail@plt>
add    $0x120,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<send_code_param>:
push   %rbp
push   %r14
push   %rbx
sub    $0x100,%rsp
mov    %edi,%r14d
xorps  %xmm0,%xmm0
movaps %xmm0,0xf0(%rsp)
movaps %xmm0,0xe0(%rsp)
movaps %xmm0,0xd0(%rsp)
movaps %xmm0,0xc0(%rsp)
movaps %xmm0,0xb0(%rsp)
movaps %xmm0,0xa0(%rsp)
movaps %xmm0,0x90(%rsp)
movaps %xmm0,0x80(%rsp)
movaps %xmm0,0x70(%rsp)
movaps %xmm0,0x60(%rsp)
movaps %xmm0,0x50(%rsp)
movaps %xmm0,0x40(%rsp)
movaps %xmm0,0x30(%rsp)
movaps %xmm0,0x20(%rsp)
movaps %xmm0,0x10(%rsp)
movaps %xmm0,(%rsp)
cmp    $0x14a,%esi
jg     120a <send_code_param+0xaa>
lea    -0xc8(%rsi),%eax
cmp    $0x39,%eax
ja     1236 <send_code_param+0xd6>
mov    %rdx,%rcx
lea    0xe0b(%rip),%rdx
movslq (%rdx,%rax,4),%rax
add    %rdx,%rax
jmp    *%rax
lea    0xefa(%rip),%rsi
jmp    12ba <send_code_param+0x15a>
cmp    $0x14b,%esi
je     12aa <send_code_param+0x14a>
cmp    $0x1f4,%esi
je     12b3 <send_code_param+0x153>
cmp    $0x226,%esi
jne    1247 <send_code_param+0xe7>
lea    0xfae(%rip),%rsi
jmp    12ba <send_code_param+0x15a>
cmp    $0x96,%esi
jne    1247 <send_code_param+0xe7>
lea    0xea3(%rip),%rsi
jmp    12ba <send_code_param+0x15a>
lea    0xfb1(%rip),%rdi
call   1080 <epicfail@plt>
jmp    12c7 <send_code_param+0x167>
lea    0xeac(%rip),%rdx
jmp    129b <send_code_param+0x13b>
lea    0xeaa(%rip),%rsi
jmp    12ba <send_code_param+0x15a>
lea    0xeb3(%rip),%rsi
jmp    12ba <send_code_param+0x15a>
lea    0xeb6(%rip),%rsi
jmp    12ba <send_code_param+0x15a>
lea    0xec3(%rip),%rdx
jmp    129b <send_code_param+0x13b>
lea    0xeda(%rip),%rsi
jmp    12ba <send_code_param+0x15a>
lea    0xee4(%rip),%rsi
jmp    12ba <send_code_param+0x15a>
lea    0xef2(%rip),%rdx
mov    %rsp,%rdi
mov    $0xff,%esi
call   1060 <snprintf@plt>
jmp    12c7 <send_code_param+0x167>
lea    0xee7(%rip),%rsi
jmp    12ba <send_code_param+0x15a>
lea    0xefe(%rip),%rsi
mov    %rsp,%rdi
mov    $0xff,%edx
call   1030 <strncpy@plt>
lea    0xec7(%rip),%rsi
mov    %rsp,%rbx
mov    %rbx,%rdi
mov    $0xff,%edx
call   1070 <strncat@plt>
mov    %rbx,%rdi
call   1050 <strlen@plt>
mov    %eax,%ebp
mov    %r14d,%edi
mov    %rbx,%rsi
mov    %eax,%edx
call   1040 <write@plt>
cmp    %ebp,%eax
je     1305 <send_code_param+0x1a5>
lea    0xf0d(%rip),%rdi
call   1080 <epicfail@plt>
add    $0x100,%rsp
pop    %rbx
pop    %r14
pop    %rbp
ret

LLVM IR (-O0):
@.str = [23 x i8] c"150 Opening connection\00"
@.str.1 = [9 x i8] c"200 Okay\00"
@.str.2 = [7 x i8] c"215 %s\00"
@.str.3 = [18 x i8] c"220 Service ready\00"
@.str.4 = [12 x i8] c"221 Goodbye\00"
@.str.5 = [22 x i8] c"226 Transfer complete\00"
@.str.6 = [32 x i8] c"227 Entering Passive Mode (%s).\00"
@.str.7 = [19 x i8] c"230 User logged in\00"
@.str.8 = [23 x i8] c"250 Command successful\00"
@.str.9 = [11 x i8] c"257 \22%s\22\0D\0A\00"
@.str.10 = [32 x i8] c"331 User name ok, need password\00"
@.str.11 = [39 x i8] c"500 Syntax error, command unrecognized\00"
@.str.12 = [32 x i8] c"550 Requested action not taken.\00"
@.str.13 = [14 x i8] c"Invalid code.\00"
@.str.14 = [3 x i8] c"\0D\0A\00"
@.str.15 = [6 x i8] c"write\00"
define void @send_code_param(i32 %0, i32 %1, i8* %2) {
%4 = alloca i32
%5 = alloca i32
%6 = alloca i8*
%7 = alloca [256 x i8]
%8 = alloca i32
%9 = alloca i32
store i32 %0, i32* %4
store i32 %1, i32* %5
store i8* %2, i8** %6
%10 = bitcast [256 x i8]* %7 to i8*
%11 = load i32, i32* %5
%12 = icmp eq i32 %11, 150
br i1 %12, label %13, label %16
13: ; preds = %3
%14 = getelementptr inbounds [256 x i8], [256 x i8]* %7, i64 0, i64 0
%15 = call i32 @strncpy(i8* %14, i8* getelementptr inbounds ([23 x i8], [23 x i8]* @.str, i64 0, i64 0), i32 255)
br label %105
16: ; preds = %3
%17 = load i32, i32* %5
%18 = icmp eq i32 %17, 200
br i1 %18, label %19, label %22
19: ; preds = %16
%20 = getelementptr inbounds [256 x i8], [256 x i8]* %7, i64 0, i64 0
%21 = call i32 @strncpy(i8* %20, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.1, i64 0, i64 0), i32 255)
br label %104
22: ; preds = %16
%23 = load i32, i32* %5
%24 = icmp eq i32 %23, 215
br i1 %24, label %25, label %29
25: ; preds = %22
%26 = getelementptr inbounds [256 x i8], [256 x i8]* %7, i64 0, i64 0
%27 = load i8*, i8** %6
%28 = call i32 @snprintf(i8* %26, i32 255, i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.2, i64 0, i64 0), i8* %27)
br label %103
29: ; preds = %22
%30 = load i32, i32* %5
%31 = icmp eq i32 %30, 220
br i1 %31, label %32, label %35
32: ; preds = %29
%33 = getelementptr inbounds [256 x i8], [256 x i8]* %7, i64 0, i64 0
%34 = call i32 @strncpy(i8* %33, i8* getelementptr inbounds ([18 x i8], [18 x i8]* @.str.3, i64 0, i64 0), i32 255)
br label %102
35: ; preds = %29
%36 = load i32, i32* %5
%37 = icmp eq i32 %36, 221
br i1 %37, label %38, label %41
38: ; preds = %35
%39 = getelementptr inbounds [256 x i8], [256 x i8]* %7, i64 0, i64 0
%40 = call i32 @strncpy(i8* %39, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.4, i64 0, i64 0), i32 255)
br label %101
41: ; preds = %35
%42 = load i32, i32* %5
%43 = icmp eq i32 %42, 226
br i1 %43, label %44, label %47
44: ; preds = %41
%45 = getelementptr inbounds [256 x i8], [256 x i8]* %7, i64 0, i64 0
%46 = call i32 @strncpy(i8* %45, i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.5, i64 0, i64 0), i32 255)
br label %100
47: ; preds = %41
%48 = load i32, i32* %5
%49 = icmp eq i32 %48, 227
br i1 %49, label %50, label %54
50: ; preds = %47
%51 = getelementptr inbounds [256 x i8], [256 x i8]* %7, i64 0, i64 0
%52 = load i8*, i8** %6
%53 = call i32 @snprintf(i8* %51, i32 255, i8* getelementptr inbounds ([32 x i8], [32 x i8]* @.str.6, i64 0, i64 0), i8* %52)
br label %99
54: ; preds = %47
%55 = load i32, i32* %5
%56 = icmp eq i32 %55, 230
br i1 %56, label %57, label %60
57: ; preds = %54
%58 = getelementptr inbounds [256 x i8], [256 x i8]* %7, i64 0, i64 0
%59 = call i32 @strncpy(i8* %58, i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.7, i64 0, i64 0), i32 255)
br label %98
60: ; preds = %54
%61 = load i32, i32* %5
%62 = icmp eq i32 %61, 250
br i1 %62, label %63, label %66
63: ; preds = %60
%64 = getelementptr inbounds [256 x i8], [256 x i8]* %7, i64 0, i64 0
%65 = call i32 @strncpy(i8* %64, i8* getelementptr inbounds ([23 x i8], [23 x i8]* @.str.8, i64 0, i64 0), i32 255)
br label %97
66: ; preds = %60
%67 = load i32, i32* %5
%68 = icmp eq i32 %67, 257
br i1 %68, label %69, label %73
69: ; preds = %66
%70 = getelementptr inbounds [256 x i8], [256 x i8]* %7, i64 0, i64 0
%71 = load i8*, i8** %6
%72 = call i32 @snprintf(i8* %70, i32 255, i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str.9, i64 0, i64 0), i8* %71)
br label %96
73: ; preds = %66
%74 = load i32, i32* %5
%75 = icmp eq i32 %74, 331
br i1 %75, label %76, label %79
76: ; preds = %73
%77 = getelementptr inbounds [256 x i8], [256 x i8]* %7, i64 0, i64 0
%78 = call i32 @strncpy(i8* %77, i8* getelementptr inbounds ([32 x i8], [32 x i8]* @.str.10, i64 0, i64 0), i32 255)
br label %95
79: ; preds = %73
%80 = load i32, i32* %5
%81 = icmp eq i32 %80, 500
br i1 %81, label %82, label %85
82: ; preds = %79
%83 = getelementptr inbounds [256 x i8], [256 x i8]* %7, i64 0, i64 0
%84 = call i32 @strncpy(i8* %83, i8* getelementptr inbounds ([39 x i8], [39 x i8]* @.str.11, i64 0, i64 0), i32 255)
br label %94
85: ; preds = %79
%86 = load i32, i32* %5
%87 = icmp eq i32 %86, 550
br i1 %87, label %88, label %91
88: ; preds = %85
%89 = getelementptr inbounds [256 x i8], [256 x i8]* %7, i64 0, i64 0
%90 = call i32 @strncpy(i8* %89, i8* getelementptr inbounds ([32 x i8], [32 x i8]* @.str.12, i64 0, i64 0), i32 255)
br label %93
91: ; preds = %85
%92 = call i32 @epicfail(i8* getelementptr inbounds ([14 x i8], [14 x i8]* @.str.13, i64 0, i64 0))
br label %93
93: ; preds = %91, %88
br label %94
94: ; preds = %93, %82
br label %95
95: ; preds = %94, %76
br label %96
96: ; preds = %95, %69
br label %97
97: ; preds = %96, %63
br label %98
98: ; preds = %97, %57
br label %99
99: ; preds = %98, %50
br label %100
100: ; preds = %99, %44
br label %101
101: ; preds = %100, %38
br label %102
102: ; preds = %101, %32
br label %103
103: ; preds = %102, %25
br label %104
104: ; preds = %103, %19
br label %105
105: ; preds = %104, %13
%106 = getelementptr inbounds [256 x i8], [256 x i8]* %7, i64 0, i64 0
%107 = call i32 @strncat(i8* %106, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.14, i64 0, i64 0), i32 255)
%108 = getelementptr inbounds [256 x i8], [256 x i8]* %7, i64 0, i64 0
%109 = call i32 @strlen(i8* %108)
store i32 %109, i32* %8
%110 = load i32, i32* %4
%111 = getelementptr inbounds [256 x i8], [256 x i8]* %7, i64 0, i64 0
%112 = load i32, i32* %8
%113 = call i32 @write(i32 %110, i8* %111, i32 %112)
store i32 %113, i32* %9
%114 = load i32, i32* %9
%115 = load i32, i32* %8
%116 = icmp ne i32 %114, %115
br i1 %116, label %117, label %119
117: ; preds = %105
%118 = call i32 @epicfail(i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.15, i64 0, i64 0))
br label %119
119: ; preds = %117, %105
ret void
}

LLVM IR (-O2):
@.str = [23 x i8] c"150 Opening connection\00"
@.str.1 = [9 x i8] c"200 Okay\00"
@.str.2 = [7 x i8] c"215 %s\00"
@.str.3 = [18 x i8] c"220 Service ready\00"
@.str.4 = [12 x i8] c"221 Goodbye\00"
@.str.5 = [22 x i8] c"226 Transfer complete\00"
@.str.6 = [32 x i8] c"227 Entering Passive Mode (%s).\00"
@.str.7 = [19 x i8] c"230 User logged in\00"
@.str.8 = [23 x i8] c"250 Command successful\00"
@.str.9 = [11 x i8] c"257 \22%s\22\0D\0A\00"
@.str.10 = [32 x i8] c"331 User name ok, need password\00"
@.str.11 = [39 x i8] c"500 Syntax error, command unrecognized\00"
@.str.12 = [32 x i8] c"550 Requested action not taken.\00"
@.str.13 = [14 x i8] c"Invalid code.\00"
@.str.14 = [3 x i8] c"\0D\0A\00"
@.str.15 = [6 x i8] c"write\00"
define void @send_code_param(i32 %0, i32 %1, i8* %2) {
%4 = alloca [256 x i8]
%5 = getelementptr inbounds [256 x i8], [256 x i8]* %4, i64 0, i64 0
switch i32 %1, label %32 [
i32 150, label %6
i32 200, label %8
i32 215, label %10
i32 220, label %12
i32 221, label %14
i32 226, label %16
i32 227, label %18
i32 230, label %20
i32 250, label %22
i32 257, label %24
i32 331, label %26
i32 500, label %28
i32 550, label %30
]
6: ; preds = %3
%7 = call i32 @strncpy(i8* %5, i8* getelementptr inbounds ([23 x i8], [23 x i8]* @.str, i64 0, i64 0), i32 255)
br label %34
8: ; preds = %3
%9 = call i32 @strncpy(i8* %5, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.1, i64 0, i64 0), i32 255)
br label %34
10: ; preds = %3
%11 = call i32 @snprintf(i8* %5, i32 255, i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.2, i64 0, i64 0), i8* %2)
br label %34
12: ; preds = %3
%13 = call i32 @strncpy(i8* %5, i8* getelementptr inbounds ([18 x i8], [18 x i8]* @.str.3, i64 0, i64 0), i32 255)
br label %34
14: ; preds = %3
%15 = call i32 @strncpy(i8* %5, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.4, i64 0, i64 0), i32 255)
br label %34
16: ; preds = %3
%17 = call i32 @strncpy(i8* %5, i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.5, i64 0, i64 0), i32 255)
br label %34
18: ; preds = %3
%19 = call i32 @snprintf(i8* %5, i32 255, i8* getelementptr inbounds ([32 x i8], [32 x i8]* @.str.6, i64 0, i64 0), i8* %2)
br label %34
20: ; preds = %3
%21 = call i32 @strncpy(i8* %5, i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.7, i64 0, i64 0), i32 255)
br label %34
22: ; preds = %3
%23 = call i32 @strncpy(i8* %5, i8* getelementptr inbounds ([23 x i8], [23 x i8]* @.str.8, i64 0, i64 0), i32 255)
br label %34
24: ; preds = %3
%25 = call i32 @snprintf(i8* %5, i32 255, i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str.9, i64 0, i64 0), i8* %2)
br label %34
26: ; preds = %3
%27 = call i32 @strncpy(i8* %5, i8* getelementptr inbounds ([32 x i8], [32 x i8]* @.str.10, i64 0, i64 0), i32 255)
br label %34
28: ; preds = %3
%29 = call i32 @strncpy(i8* %5, i8* getelementptr inbounds ([39 x i8], [39 x i8]* @.str.11, i64 0, i64 0), i32 255)
br label %34
30: ; preds = %3
%31 = call i32 @strncpy(i8* %5, i8* getelementptr inbounds ([32 x i8], [32 x i8]* @.str.12, i64 0, i64 0), i32 255)
br label %34
32: ; preds = %3
%33 = tail call i32 @epicfail(i8* getelementptr inbounds ([14 x i8], [14 x i8]* @.str.13, i64 0, i64 0))
br label %34
34: ; preds = %8, %12, %16, %20, %24, %28, %32, %30, %26, %22, %18, %14, %10, %6
%35 = call i32 @strncat(i8* %5, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.14, i64 0, i64 0), i32 255)
%36 = call i32 @strlen(i8* %5)
%37 = call i32 @write(i32 %0, i8* %5, i32 %36)
%38 = icmp eq i32 %37, %36
br i1 %38, label %41, label %39
39: ; preds = %34
%40 = call i32 @epicfail(i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.15, i64 0, i64 0))
br label %41
41: ; preds = %39, %34
ret void
}