#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 */
char *make_lower_temp(char *);
int /*<<< orphan*/ strcmp(char *, char *);
char *fast_interface_type_shortname(char *str) {
  char *retval, *str2;
  str2 = make_lower_temp(str);
  if (!strcmp(str2, "initinputtype")) {
    retval = "InitInput";
  } else if (!strcmp(str2, "initoutputtype")) {
    retval = "InitOutput";
  } else if (!strcmp(str2, "inputtype")) {
    retval = "Input";
  } else if (!strcmp(str2, "outputtype")) {
    retval = "Output";
  } else if (!strcmp(str2, "continuousstatetype")) {
    retval = "ContState";
  } else if (!strcmp(str2, "discretestatetype")) {
    retval = "DiscState";
  } else if (!strcmp(str2, "constraintstatetype")) {
    retval = "ConstrState";
  } else if (!strcmp(str2, "otherstatetype")) {
    retval = "OtherState";
  } else if (!strcmp(str2, "miscvartype")) {
    retval = "Misc";
  } else if (!strcmp(str2, "parametertype")) {
    retval = "Param";
  } else if (!strcmp(str2, "partialoutputpinputtype")) {
    retval = "dYdu";
  } else if (!strcmp(str2, "partialcontstatepinputtype")) {
    retval = "dXdu";
  } else if (!strcmp(str2, "partialdiscstatepinputtype")) {
    retval = "dXddu";
  } else if (!strcmp(str2, "partialconstrstatepinputtype")) {
    retval = "dZdu";
  } else {
    retval = str;
  }
  return (retval);
}


x86 assembly (clang, -O0):
<fast_interface_type_shortname>:
push   %rbp
mov    %rsp,%rbp
sub    $0x20,%rsp
mov    %rdi,-0x8(%rbp)
mov    -0x8(%rbp),%rdi
call   1040 <make_lower_temp@plt>
mov    %rax,-0x18(%rbp)
mov    -0x18(%rbp),%rdi
lea    0xebc(%rip),%rsi
call   1030 <strcmp@plt>
cmp    $0x0,%eax
jne    1162 <fast_interface_type_shortname+0x42>
lea    0xeb5(%rip),%rax
mov    %rax,-0x10(%rbp)
jmp    13c0 <fast_interface_type_shortname+0x2a0>
mov    -0x18(%rbp),%rdi
lea    0xeab(%rip),%rsi
call   1030 <strcmp@plt>
cmp    $0x0,%eax
jne    118b <fast_interface_type_shortname+0x6b>
lea    0xea5(%rip),%rax
mov    %rax,-0x10(%rbp)
jmp    13bb <fast_interface_type_shortname+0x29b>
mov    -0x18(%rbp),%rdi
lea    0xf83(%rip),%rsi
call   1030 <strcmp@plt>
cmp    $0x0,%eax
jne    11b4 <fast_interface_type_shortname+0x94>
lea    0xe67(%rip),%rax
mov    %rax,-0x10(%rbp)
jmp    13b6 <fast_interface_type_shortname+0x296>
mov    -0x18(%rbp),%rdi
lea    0xe5d(%rip),%rsi
call   1030 <strcmp@plt>
cmp    $0x0,%eax
jne    11dd <fast_interface_type_shortname+0xbd>
lea    0xe57(%rip),%rax
mov    %rax,-0x10(%rbp)
jmp    13b1 <fast_interface_type_shortname+0x291>
mov    -0x18(%rbp),%rdi
lea    0xe4a(%rip),%rsi
call   1030 <strcmp@plt>
cmp    $0x0,%eax
jne    1206 <fast_interface_type_shortname+0xe6>
lea    0xe49(%rip),%rax
mov    %rax,-0x10(%rbp)
jmp    13ac <fast_interface_type_shortname+0x28c>
mov    -0x18(%rbp),%rdi
lea    0xe3f(%rip),%rsi
call   1030 <strcmp@plt>
cmp    $0x0,%eax
jne    122f <fast_interface_type_shortname+0x10f>
lea    0xe3c(%rip),%rax
mov    %rax,-0x10(%rbp)
jmp    13a7 <fast_interface_type_shortname+0x287>
mov    -0x18(%rbp),%rdi
lea    0xe32(%rip),%rsi
call   1030 <strcmp@plt>
cmp    $0x0,%eax
jne    1258 <fast_interface_type_shortname+0x138>
lea    0xe31(%rip),%rax
mov    %rax,-0x10(%rbp)
jmp    13a2 <fast_interface_type_shortname+0x282>
mov    -0x18(%rbp),%rdi
lea    0xe29(%rip),%rsi
call   1030 <strcmp@plt>
cmp    $0x0,%eax
jne    1281 <fast_interface_type_shortname+0x161>
lea    0xe23(%rip),%rax
mov    %rax,-0x10(%rbp)
jmp    139d <fast_interface_type_shortname+0x27d>
mov    -0x18(%rbp),%rdi
lea    0xe1a(%rip),%rsi
call   1030 <strcmp@plt>
cmp    $0x0,%eax
jne    12aa <fast_interface_type_shortname+0x18a>
lea    0xe11(%rip),%rax
mov    %rax,-0x10(%rbp)
jmp    1398 <fast_interface_type_shortname+0x278>
mov    -0x18(%rbp),%rdi
lea    0xe02(%rip),%rsi
call   1030 <strcmp@plt>
cmp    $0x0,%eax
jne    12d3 <fast_interface_type_shortname+0x1b3>
lea    0xdfb(%rip),%rax
mov    %rax,-0x10(%rbp)
jmp    1393 <fast_interface_type_shortname+0x273>
mov    -0x18(%rbp),%rdi
lea    0xded(%rip),%rsi
call   1030 <strcmp@plt>
cmp    $0x0,%eax
jne    12fc <fast_interface_type_shortname+0x1dc>
lea    0xdf0(%rip),%rax
mov    %rax,-0x10(%rbp)
jmp    138e <fast_interface_type_shortname+0x26e>
mov    -0x18(%rbp),%rdi
lea    0xde1(%rip),%rsi
call   1030 <strcmp@plt>
cmp    $0x0,%eax
jne    1325 <fast_interface_type_shortname+0x205>
lea    0xde7(%rip),%rax
mov    %rax,-0x10(%rbp)
jmp    1389 <fast_interface_type_shortname+0x269>
mov    -0x18(%rbp),%rdi
lea    0xdd8(%rip),%rsi
call   1030 <strcmp@plt>
cmp    $0x0,%eax
jne    134e <fast_interface_type_shortname+0x22e>
lea    0xdde(%rip),%rax
mov    %rax,-0x10(%rbp)
jmp    1384 <fast_interface_type_shortname+0x264>
mov    -0x18(%rbp),%rdi
lea    0xdd0(%rip),%rsi
call   1030 <strcmp@plt>
cmp    $0x0,%eax
jne    1377 <fast_interface_type_shortname+0x257>
lea    0xdd8(%rip),%rax
mov    %rax,-0x10(%rbp)
jmp    137f <fast_interface_type_shortname+0x25f>
mov    -0x8(%rbp),%rax
mov    %rax,-0x10(%rbp)
jmp    1384 <fast_interface_type_shortname+0x264>
jmp    1389 <fast_interface_type_shortname+0x269>
jmp    138e <fast_interface_type_shortname+0x26e>
jmp    1393 <fast_interface_type_shortname+0x273>
jmp    1398 <fast_interface_type_shortname+0x278>
jmp    139d <fast_interface_type_shortname+0x27d>
jmp    13a2 <fast_interface_type_shortname+0x282>
jmp    13a7 <fast_interface_type_shortname+0x287>
jmp    13ac <fast_interface_type_shortname+0x28c>
jmp    13b1 <fast_interface_type_shortname+0x291>
jmp    13b6 <fast_interface_type_shortname+0x296>
jmp    13bb <fast_interface_type_shortname+0x29b>
jmp    13c0 <fast_interface_type_shortname+0x2a0>
mov    -0x10(%rbp),%rax
add    $0x20,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<fast_interface_type_shortname>:
push   %r14
push   %rbx
push   %rax
mov    %rdi,%r14
call   1040 <make_lower_temp@plt>
mov    %rax,%rbx
lea    0xeca(%rip),%rsi
mov    %rax,%rdi
call   1030 <strcmp@plt>
test   %eax,%eax
je     1278 <fast_interface_type_shortname+0x158>
lea    0xecb(%rip),%rsi
mov    %rbx,%rdi
call   1030 <strcmp@plt>
test   %eax,%eax
je     1281 <fast_interface_type_shortname+0x161>
lea    0xfb5(%rip),%rsi
mov    %rbx,%rdi
call   1030 <strcmp@plt>
test   %eax,%eax
je     128a <fast_interface_type_shortname+0x16a>
lea    0xea1(%rip),%rsi
mov    %rbx,%rdi
call   1030 <strcmp@plt>
test   %eax,%eax
je     1293 <fast_interface_type_shortname+0x173>
lea    0xea0(%rip),%rsi
mov    %rbx,%rdi
call   1030 <strcmp@plt>
test   %eax,%eax
je     129c <fast_interface_type_shortname+0x17c>
lea    0xea7(%rip),%rsi
mov    %rbx,%rdi
call   1030 <strcmp@plt>
test   %eax,%eax
je     12a5 <fast_interface_type_shortname+0x185>
lea    0xeac(%rip),%rsi
mov    %rbx,%rdi
call   1030 <strcmp@plt>
test   %eax,%eax
je     12ae <fast_interface_type_shortname+0x18e>
lea    0xeb5(%rip),%rsi
mov    %rbx,%rdi
call   1030 <strcmp@plt>
test   %eax,%eax
je     12b7 <fast_interface_type_shortname+0x197>
lea    0xeb8(%rip),%rsi
mov    %rbx,%rdi
call   1030 <strcmp@plt>
test   %eax,%eax
je     12c0 <fast_interface_type_shortname+0x1a0>
lea    0xeb2(%rip),%rsi
mov    %rbx,%rdi
call   1030 <strcmp@plt>
test   %eax,%eax
je     12c9 <fast_interface_type_shortname+0x1a9>
lea    0xeaf(%rip),%rsi
mov    %rbx,%rdi
call   1030 <strcmp@plt>
test   %eax,%eax
je     12d2 <fast_interface_type_shortname+0x1b2>
lea    0xeb5(%rip),%rsi
mov    %rbx,%rdi
call   1030 <strcmp@plt>
test   %eax,%eax
je     12db <fast_interface_type_shortname+0x1bb>
lea    0xebe(%rip),%rsi
mov    %rbx,%rdi
call   1030 <strcmp@plt>
test   %eax,%eax
je     12e4 <fast_interface_type_shortname+0x1c4>
lea    0xec8(%rip),%rsi
mov    %rbx,%rdi
call   1030 <strcmp@plt>
test   %eax,%eax
lea    0xed4(%rip),%rax
cmove  %rax,%r14
jmp    12eb <fast_interface_type_shortname+0x1cb>
lea    0xd8f(%rip),%r14
jmp    12eb <fast_interface_type_shortname+0x1cb>
lea    0xd9f(%rip),%r14
jmp    12eb <fast_interface_type_shortname+0x1cb>
lea    0xd81(%rip),%r14
jmp    12eb <fast_interface_type_shortname+0x1cb>
lea    0xd91(%rip),%r14
jmp    12eb <fast_interface_type_shortname+0x1cb>
lea    0xda3(%rip),%r14
jmp    12eb <fast_interface_type_shortname+0x1cb>
lea    0xdb6(%rip),%r14
jmp    12eb <fast_interface_type_shortname+0x1cb>
lea    0xdcb(%rip),%r14
jmp    12eb <fast_interface_type_shortname+0x1cb>
lea    0xddd(%rip),%r14
jmp    12eb <fast_interface_type_shortname+0x1cb>
lea    0xdeb(%rip),%r14
jmp    12eb <fast_interface_type_shortname+0x1cb>
lea    0xdf5(%rip),%r14
jmp    12eb <fast_interface_type_shortname+0x1cb>
lea    0xe0a(%rip),%r14
jmp    12eb <fast_interface_type_shortname+0x1cb>
lea    0xe21(%rip),%r14
jmp    12eb <fast_interface_type_shortname+0x1cb>
lea    0xe38(%rip),%r14
mov    %r14,%rax
add    $0x8,%rsp
pop    %rbx
pop    %r14
ret

LLVM IR (-O0):
@.str = [14 x i8] c"initinputtype\00"
@.str.1 = [10 x i8] c"InitInput\00"
@.str.2 = [15 x i8] c"initoutputtype\00"
@.str.3 = [11 x i8] c"InitOutput\00"
@.str.4 = [10 x i8] c"inputtype\00"
@.str.5 = [6 x i8] c"Input\00"
@.str.6 = [11 x i8] c"outputtype\00"
@.str.7 = [7 x i8] c"Output\00"
@.str.8 = [20 x i8] c"continuousstatetype\00"
@.str.9 = [10 x i8] c"ContState\00"
@.str.10 = [18 x i8] c"discretestatetype\00"
@.str.11 = [10 x i8] c"DiscState\00"
@.str.12 = [20 x i8] c"constraintstatetype\00"
@.str.13 = [12 x i8] c"ConstrState\00"
@.str.14 = [15 x i8] c"otherstatetype\00"
@.str.15 = [11 x i8] c"OtherState\00"
@.str.16 = [12 x i8] c"miscvartype\00"
@.str.17 = [5 x i8] c"Misc\00"
@.str.18 = [14 x i8] c"parametertype\00"
@.str.19 = [6 x i8] c"Param\00"
@.str.20 = [24 x i8] c"partialoutputpinputtype\00"
@.str.21 = [5 x i8] c"dYdu\00"
@.str.22 = [27 x i8] c"partialcontstatepinputtype\00"
@.str.23 = [5 x i8] c"dXdu\00"
@.str.24 = [27 x i8] c"partialdiscstatepinputtype\00"
@.str.25 = [6 x i8] c"dXddu\00"
@.str.26 = [29 x i8] c"partialconstrstatepinputtype\00"
@.str.27 = [5 x i8] c"dZdu\00"
define i8* @fast_interface_type_shortname(i8* %0) {
%2 = alloca i8*
%3 = alloca i8*
%4 = alloca i8*
store i8* %0, i8** %2
%5 = load i8*, i8** %2
%6 = call i8* @make_lower_temp(i8* %5)
store i8* %6, i8** %4
%7 = load i8*, i8** %4
%8 = call i32 @strcmp(i8* %7, i8* getelementptr inbounds ([14 x i8], [14 x i8]* @.str, i64 0, i64 0))
%9 = icmp ne i32 %8, 0
br i1 %9, label %11, label %10
10: ; preds = %1
store i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.1, i64 0, i64 0), i8** %3
br label %91
11: ; preds = %1
%12 = load i8*, i8** %4
%13 = call i32 @strcmp(i8* %12, i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str.2, i64 0, i64 0))
%14 = icmp ne i32 %13, 0
br i1 %14, label %16, label %15
15: ; preds = %11
store i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str.3, i64 0, i64 0), i8** %3
br label %90
16: ; preds = %11
%17 = load i8*, i8** %4
%18 = call i32 @strcmp(i8* %17, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.4, i64 0, i64 0))
%19 = icmp ne i32 %18, 0
br i1 %19, label %21, label %20
20: ; preds = %16
store i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.5, i64 0, i64 0), i8** %3
br label %89
21: ; preds = %16
%22 = load i8*, i8** %4
%23 = call i32 @strcmp(i8* %22, i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str.6, i64 0, i64 0))
%24 = icmp ne i32 %23, 0
br i1 %24, label %26, label %25
25: ; preds = %21
store i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.7, i64 0, i64 0), i8** %3
br label %88
26: ; preds = %21
%27 = load i8*, i8** %4
%28 = call i32 @strcmp(i8* %27, i8* getelementptr inbounds ([20 x i8], [20 x i8]* @.str.8, i64 0, i64 0))
%29 = icmp ne i32 %28, 0
br i1 %29, label %31, label %30
30: ; preds = %26
store i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.9, i64 0, i64 0), i8** %3
br label %87
31: ; preds = %26
%32 = load i8*, i8** %4
%33 = call i32 @strcmp(i8* %32, i8* getelementptr inbounds ([18 x i8], [18 x i8]* @.str.10, i64 0, i64 0))
%34 = icmp ne i32 %33, 0
br i1 %34, label %36, label %35
35: ; preds = %31
store i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.11, i64 0, i64 0), i8** %3
br label %86
36: ; preds = %31
%37 = load i8*, i8** %4
%38 = call i32 @strcmp(i8* %37, i8* getelementptr inbounds ([20 x i8], [20 x i8]* @.str.12, i64 0, i64 0))
%39 = icmp ne i32 %38, 0
br i1 %39, label %41, label %40
40: ; preds = %36
store i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.13, i64 0, i64 0), i8** %3
br label %85
41: ; preds = %36
%42 = load i8*, i8** %4
%43 = call i32 @strcmp(i8* %42, i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str.14, i64 0, i64 0))
%44 = icmp ne i32 %43, 0
br i1 %44, label %46, label %45
45: ; preds = %41
store i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str.15, i64 0, i64 0), i8** %3
br label %84
46: ; preds = %41
%47 = load i8*, i8** %4
%48 = call i32 @strcmp(i8* %47, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.16, i64 0, i64 0))
%49 = icmp ne i32 %48, 0
br i1 %49, label %51, label %50
50: ; preds = %46
store i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.17, i64 0, i64 0), i8** %3
br label %83
51: ; preds = %46
%52 = load i8*, i8** %4
%53 = call i32 @strcmp(i8* %52, i8* getelementptr inbounds ([14 x i8], [14 x i8]* @.str.18, i64 0, i64 0))
%54 = icmp ne i32 %53, 0
br i1 %54, label %56, label %55
55: ; preds = %51
store i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.19, i64 0, i64 0), i8** %3
br label %82
56: ; preds = %51
%57 = load i8*, i8** %4
%58 = call i32 @strcmp(i8* %57, i8* getelementptr inbounds ([24 x i8], [24 x i8]* @.str.20, i64 0, i64 0))
%59 = icmp ne i32 %58, 0
br i1 %59, label %61, label %60
60: ; preds = %56
store i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.21, i64 0, i64 0), i8** %3
br label %81
61: ; preds = %56
%62 = load i8*, i8** %4
%63 = call i32 @strcmp(i8* %62, i8* getelementptr inbounds ([27 x i8], [27 x i8]* @.str.22, i64 0, i64 0))
%64 = icmp ne i32 %63, 0
br i1 %64, label %66, label %65
65: ; preds = %61
store i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.23, i64 0, i64 0), i8** %3
br label %80
66: ; preds = %61
%67 = load i8*, i8** %4
%68 = call i32 @strcmp(i8* %67, i8* getelementptr inbounds ([27 x i8], [27 x i8]* @.str.24, i64 0, i64 0))
%69 = icmp ne i32 %68, 0
br i1 %69, label %71, label %70
70: ; preds = %66
store i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.25, i64 0, i64 0), i8** %3
br label %79
71: ; preds = %66
%72 = load i8*, i8** %4
%73 = call i32 @strcmp(i8* %72, i8* getelementptr inbounds ([29 x i8], [29 x i8]* @.str.26, i64 0, i64 0))
%74 = icmp ne i32 %73, 0
br i1 %74, label %76, label %75
75: ; preds = %71
store i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.27, i64 0, i64 0), i8** %3
br label %78
76: ; preds = %71
%77 = load i8*, i8** %2
store i8* %77, i8** %3
br label %78
78: ; preds = %76, %75
br label %79
79: ; preds = %78, %70
br label %80
80: ; preds = %79, %65
br label %81
81: ; preds = %80, %60
br label %82
82: ; preds = %81, %55
br label %83
83: ; preds = %82, %50
br label %84
84: ; preds = %83, %45
br label %85
85: ; preds = %84, %40
br label %86
86: ; preds = %85, %35
br label %87
87: ; preds = %86, %30
br label %88
88: ; preds = %87, %25
br label %89
89: ; preds = %88, %20
br label %90
90: ; preds = %89, %15
br label %91
91: ; preds = %90, %10
%92 = load i8*, i8** %3
ret i8* %92
}

LLVM IR (-O2):
@.str = [14 x i8] c"initinputtype\00"
@.str.1 = [10 x i8] c"InitInput\00"
@.str.2 = [15 x i8] c"initoutputtype\00"
@.str.3 = [11 x i8] c"InitOutput\00"
@.str.4 = [10 x i8] c"inputtype\00"
@.str.5 = [6 x i8] c"Input\00"
@.str.6 = [11 x i8] c"outputtype\00"
@.str.7 = [7 x i8] c"Output\00"
@.str.8 = [20 x i8] c"continuousstatetype\00"
@.str.9 = [10 x i8] c"ContState\00"
@.str.10 = [18 x i8] c"discretestatetype\00"
@.str.11 = [10 x i8] c"DiscState\00"
@.str.12 = [20 x i8] c"constraintstatetype\00"
@.str.13 = [12 x i8] c"ConstrState\00"
@.str.14 = [15 x i8] c"otherstatetype\00"
@.str.15 = [11 x i8] c"OtherState\00"
@.str.16 = [12 x i8] c"miscvartype\00"
@.str.17 = [5 x i8] c"Misc\00"
@.str.18 = [14 x i8] c"parametertype\00"
@.str.19 = [6 x i8] c"Param\00"
@.str.20 = [24 x i8] c"partialoutputpinputtype\00"
@.str.21 = [5 x i8] c"dYdu\00"
@.str.22 = [27 x i8] c"partialcontstatepinputtype\00"
@.str.23 = [5 x i8] c"dXdu\00"
@.str.24 = [27 x i8] c"partialdiscstatepinputtype\00"
@.str.25 = [6 x i8] c"dXddu\00"
@.str.26 = [29 x i8] c"partialconstrstatepinputtype\00"
@.str.27 = [5 x i8] c"dZdu\00"
define i8* @fast_interface_type_shortname(i8* %0) {
%2 = tail call i8* @make_lower_temp(i8* %0)
%3 = tail call i32 @strcmp(i8* dereferenceable(1) %2, i8* dereferenceable(14) getelementptr inbounds ([14 x i8], [14 x i8]* @.str, i64 0, i64 0))
%4 = icmp eq i32 %3, 0
br i1 %4, label %45, label %5
5: ; preds = %1
%6 = tail call i32 @strcmp(i8* dereferenceable(1) %2, i8* dereferenceable(15) getelementptr inbounds ([15 x i8], [15 x i8]* @.str.2, i64 0, i64 0))
%7 = icmp eq i32 %6, 0
br i1 %7, label %45, label %8
8: ; preds = %5
%9 = tail call i32 @strcmp(i8* dereferenceable(1) %2, i8* dereferenceable(10) getelementptr inbounds ([10 x i8], [10 x i8]* @.str.4, i64 0, i64 0))
%10 = icmp eq i32 %9, 0
br i1 %10, label %45, label %11
11: ; preds = %8
%12 = tail call i32 @strcmp(i8* dereferenceable(1) %2, i8* dereferenceable(11) getelementptr inbounds ([11 x i8], [11 x i8]* @.str.6, i64 0, i64 0))
%13 = icmp eq i32 %12, 0
br i1 %13, label %45, label %14
14: ; preds = %11
%15 = tail call i32 @strcmp(i8* dereferenceable(1) %2, i8* dereferenceable(20) getelementptr inbounds ([20 x i8], [20 x i8]* @.str.8, i64 0, i64 0))
%16 = icmp eq i32 %15, 0
br i1 %16, label %45, label %17
17: ; preds = %14
%18 = tail call i32 @strcmp(i8* dereferenceable(1) %2, i8* dereferenceable(18) getelementptr inbounds ([18 x i8], [18 x i8]* @.str.10, i64 0, i64 0))
%19 = icmp eq i32 %18, 0
br i1 %19, label %45, label %20
20: ; preds = %17
%21 = tail call i32 @strcmp(i8* dereferenceable(1) %2, i8* dereferenceable(20) getelementptr inbounds ([20 x i8], [20 x i8]* @.str.12, i64 0, i64 0))
%22 = icmp eq i32 %21, 0
br i1 %22, label %45, label %23
23: ; preds = %20
%24 = tail call i32 @strcmp(i8* dereferenceable(1) %2, i8* dereferenceable(15) getelementptr inbounds ([15 x i8], [15 x i8]* @.str.14, i64 0, i64 0))
%25 = icmp eq i32 %24, 0
br i1 %25, label %45, label %26
26: ; preds = %23
%27 = tail call i32 @strcmp(i8* dereferenceable(1) %2, i8* dereferenceable(12) getelementptr inbounds ([12 x i8], [12 x i8]* @.str.16, i64 0, i64 0))
%28 = icmp eq i32 %27, 0
br i1 %28, label %45, label %29
29: ; preds = %26
%30 = tail call i32 @strcmp(i8* dereferenceable(1) %2, i8* dereferenceable(14) getelementptr inbounds ([14 x i8], [14 x i8]* @.str.18, i64 0, i64 0))
%31 = icmp eq i32 %30, 0
br i1 %31, label %45, label %32
32: ; preds = %29
%33 = tail call i32 @strcmp(i8* dereferenceable(1) %2, i8* dereferenceable(24) getelementptr inbounds ([24 x i8], [24 x i8]* @.str.20, i64 0, i64 0))
%34 = icmp eq i32 %33, 0
br i1 %34, label %45, label %35
35: ; preds = %32
%36 = tail call i32 @strcmp(i8* dereferenceable(1) %2, i8* dereferenceable(27) getelementptr inbounds ([27 x i8], [27 x i8]* @.str.22, i64 0, i64 0))
%37 = icmp eq i32 %36, 0
br i1 %37, label %45, label %38
38: ; preds = %35
%39 = tail call i32 @strcmp(i8* dereferenceable(1) %2, i8* dereferenceable(27) getelementptr inbounds ([27 x i8], [27 x i8]* @.str.24, i64 0, i64 0))
%40 = icmp eq i32 %39, 0
br i1 %40, label %45, label %41
41: ; preds = %38
%42 = tail call i32 @strcmp(i8* dereferenceable(1) %2, i8* dereferenceable(29) getelementptr inbounds ([29 x i8], [29 x i8]* @.str.26, i64 0, i64 0))
%43 = icmp eq i32 %42, 0
%44 = select i1 %43, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.27, i64 0, i64 0), i8* %0
br label %45
45: ; preds = %41, %38, %35, %32, %29, %26, %23, %20, %17, %14, %11, %8, %5, %1
%46 = phi i8* [ getelementptr inbounds ([10 x i8], [10 x i8]* @.str.1, i64 0, i64 0), %1 ], [ getelementptr inbounds ([11 x i8], [11 x i8]* @.str.3, i64 0, i64 0), %5 ], [ getelementptr inbounds ([6 x i8], [6 x i8]* @.str.5, i64 0, i64 0), %8 ], [ getelementptr inbounds ([7 x i8], [7 x i8]* @.str.7, i64 0, i64 0), %11 ], [ getelementptr inbounds ([10 x i8], [10 x i8]* @.str.9, i64 0, i64 0), %14 ], [ getelementptr inbounds ([10 x i8], [10 x i8]* @.str.11, i64 0, i64 0), %17 ], [ getelementptr inbounds ([12 x i8], [12 x i8]* @.str.13, i64 0, i64 0), %20 ], [ getelementptr inbounds ([11 x i8], [11 x i8]* @.str.15, i64 0, i64 0), %23 ], [ getelementptr inbounds ([5 x i8], [5 x i8]* @.str.17, i64 0, i64 0), %26 ], [ getelementptr inbounds ([6 x i8], [6 x i8]* @.str.19, i64 0, i64 0), %29 ], [ getelementptr inbounds ([5 x i8], [5 x i8]* @.str.21, i64 0, i64 0), %32 ], [ getelementptr inbounds ([5 x i8], [5 x i8]* @.str.23, i64 0, i64 0), %35 ], [ getelementptr inbounds ([6 x i8], [6 x i8]* @.str.25, i64 0, i64 0), %38 ], [ %44, %41 ]
ret i8* %46
}