#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*/ loadlevel(char *);
void loadstorylevel(int levelnum) {
  if (levelnum == 1)
    loadlevel("sewer1.lvl");
  if (levelnum == 2)
    loadlevel("sewer2.lvl");
  if (levelnum == 3)
    loadlevel("sewer3.lvl");
  if (levelnum == 4)
    loadlevel("sewer4.lvl");
  if (levelnum == 5)
    loadlevel("sewer5.lvl");
  if (levelnum == 6)
    loadlevel("sewer6.lvl");
  if (levelnum == 7)
    loadlevel("sewer7.lvl");
  if (levelnum == 8)
    loadlevel("cave1.lvl");
  if (levelnum == 9)
    loadlevel("cave2.lvl");
  if (levelnum == 10)
    loadlevel("cave3.lvl");
  if (levelnum == 11)
    loadlevel("cave4.lvl");
  if (levelnum == 12)
    loadlevel("cave5.lvl");
  if (levelnum == 13)
    loadlevel("cave6.lvl");
  if (levelnum == 14)
    loadlevel("cave7.lvl");
  if (levelnum == 15)
    loadlevel("hell1.lvl");
  if (levelnum == 16)
    loadlevel("hell2.lvl");
  if (levelnum == 17)
    loadlevel("hell3.lvl");
  if (levelnum == 18)
    loadlevel("hell4.lvl");
  if (levelnum == 19)
    loadlevel("hell5.lvl");
  if (levelnum == 20)
    loadlevel("hell6.lvl");
  if (levelnum == 21)
    loadlevel("hell7.lvl");
  if (levelnum == 22)
    loadlevel("egypt1.lvl");
  if (levelnum == 23)
    loadlevel("egypt2.lvl");
  if (levelnum == 24)
    loadlevel("egypt3.lvl");
  if (levelnum == 25)
    loadlevel("egypt4.lvl");
  if (levelnum == 26)
    loadlevel("egypt5.lvl");
  if (levelnum == 27)
    loadlevel("egypt6.lvl");
  if (levelnum == 28)
    loadlevel("egypt7.lvl");
  if (levelnum == 29)
    loadlevel("church1.lvl");
  if (levelnum == 30)
    loadlevel("church2.lvl");
  if (levelnum == 31)
    loadlevel("church3.lvl");
  if (levelnum == 32)
    loadlevel("church4.lvl");
  if (levelnum == 33)
    loadlevel("church5.lvl");
  if (levelnum == 34)
    loadlevel("church6.lvl");
  if (levelnum == 64)
    loadlevel("sewer8.lvl");
  if (levelnum == 65)
    loadlevel("cave8.lvl");
  if (levelnum == 66)
    loadlevel("egypt8.lvl");
  if (levelnum == 67)
    loadlevel("death.lvl");
  if (levelnum == 68)
    loadlevel("death2.lvl");
}


x86 assembly (clang, -O0):
<loadstorylevel>:
push   %rbp
mov    %rsp,%rbp
sub    $0x10,%rsp
mov    %edi,-0x4(%rbp)
cmpl   $0x1,-0x4(%rbp)
jne    1131 <loadstorylevel+0x21>
lea    0xed4(%rip),%rdi
call   1030 <loadlevel@plt>
cmpl   $0x2,-0x4(%rbp)
jne    1147 <loadstorylevel+0x37>
lea    0xec9(%rip),%rdi
call   1030 <loadlevel@plt>
cmpl   $0x3,-0x4(%rbp)
jne    115d <loadstorylevel+0x4d>
lea    0xebe(%rip),%rdi
call   1030 <loadlevel@plt>
cmpl   $0x4,-0x4(%rbp)
jne    1173 <loadstorylevel+0x63>
lea    0xeb3(%rip),%rdi
call   1030 <loadlevel@plt>
cmpl   $0x5,-0x4(%rbp)
jne    1189 <loadstorylevel+0x79>
lea    0xea8(%rip),%rdi
call   1030 <loadlevel@plt>
cmpl   $0x6,-0x4(%rbp)
jne    119f <loadstorylevel+0x8f>
lea    0xe9d(%rip),%rdi
call   1030 <loadlevel@plt>
cmpl   $0x7,-0x4(%rbp)
jne    11b5 <loadstorylevel+0xa5>
lea    0xe92(%rip),%rdi
call   1030 <loadlevel@plt>
cmpl   $0x8,-0x4(%rbp)
jne    11cb <loadstorylevel+0xbb>
lea    0xe87(%rip),%rdi
call   1030 <loadlevel@plt>
cmpl   $0x9,-0x4(%rbp)
jne    11e1 <loadstorylevel+0xd1>
lea    0xe7b(%rip),%rdi
call   1030 <loadlevel@plt>
cmpl   $0xa,-0x4(%rbp)
jne    11f7 <loadstorylevel+0xe7>
lea    0xe6f(%rip),%rdi
call   1030 <loadlevel@plt>
cmpl   $0xb,-0x4(%rbp)
jne    120d <loadstorylevel+0xfd>
lea    0xe63(%rip),%rdi
call   1030 <loadlevel@plt>
cmpl   $0xc,-0x4(%rbp)
jne    1223 <loadstorylevel+0x113>
lea    0xe57(%rip),%rdi
call   1030 <loadlevel@plt>
cmpl   $0xd,-0x4(%rbp)
jne    1239 <loadstorylevel+0x129>
lea    0xe4b(%rip),%rdi
call   1030 <loadlevel@plt>
cmpl   $0xe,-0x4(%rbp)
jne    124f <loadstorylevel+0x13f>
lea    0xe3f(%rip),%rdi
call   1030 <loadlevel@plt>
cmpl   $0xf,-0x4(%rbp)
jne    1265 <loadstorylevel+0x155>
lea    0xe33(%rip),%rdi
call   1030 <loadlevel@plt>
cmpl   $0x10,-0x4(%rbp)
jne    127b <loadstorylevel+0x16b>
lea    0xe27(%rip),%rdi
call   1030 <loadlevel@plt>
cmpl   $0x11,-0x4(%rbp)
jne    1291 <loadstorylevel+0x181>
lea    0xe1b(%rip),%rdi
call   1030 <loadlevel@plt>
cmpl   $0x12,-0x4(%rbp)
jne    12a7 <loadstorylevel+0x197>
lea    0xe0f(%rip),%rdi
call   1030 <loadlevel@plt>
cmpl   $0x13,-0x4(%rbp)
jne    12bd <loadstorylevel+0x1ad>
lea    0xe03(%rip),%rdi
call   1030 <loadlevel@plt>
cmpl   $0x14,-0x4(%rbp)
jne    12d3 <loadstorylevel+0x1c3>
lea    0xdf7(%rip),%rdi
call   1030 <loadlevel@plt>
cmpl   $0x15,-0x4(%rbp)
jne    12e9 <loadstorylevel+0x1d9>
lea    0xdeb(%rip),%rdi
call   1030 <loadlevel@plt>
cmpl   $0x16,-0x4(%rbp)
jne    12ff <loadstorylevel+0x1ef>
lea    0xddf(%rip),%rdi
call   1030 <loadlevel@plt>
cmpl   $0x17,-0x4(%rbp)
jne    1315 <loadstorylevel+0x205>
lea    0xdd4(%rip),%rdi
call   1030 <loadlevel@plt>
cmpl   $0x18,-0x4(%rbp)
jne    132b <loadstorylevel+0x21b>
lea    0xdc9(%rip),%rdi
call   1030 <loadlevel@plt>
cmpl   $0x19,-0x4(%rbp)
jne    1341 <loadstorylevel+0x231>
lea    0xdbe(%rip),%rdi
call   1030 <loadlevel@plt>
cmpl   $0x1a,-0x4(%rbp)
jne    1357 <loadstorylevel+0x247>
lea    0xdb3(%rip),%rdi
call   1030 <loadlevel@plt>
cmpl   $0x1b,-0x4(%rbp)
jne    136d <loadstorylevel+0x25d>
lea    0xda8(%rip),%rdi
call   1030 <loadlevel@plt>
cmpl   $0x1c,-0x4(%rbp)
jne    1383 <loadstorylevel+0x273>
lea    0xd9d(%rip),%rdi
call   1030 <loadlevel@plt>
cmpl   $0x1d,-0x4(%rbp)
jne    1399 <loadstorylevel+0x289>
lea    0xd92(%rip),%rdi
call   1030 <loadlevel@plt>
cmpl   $0x1e,-0x4(%rbp)
jne    13af <loadstorylevel+0x29f>
lea    0xd88(%rip),%rdi
call   1030 <loadlevel@plt>
cmpl   $0x1f,-0x4(%rbp)
jne    13c5 <loadstorylevel+0x2b5>
lea    0xd7e(%rip),%rdi
call   1030 <loadlevel@plt>
cmpl   $0x20,-0x4(%rbp)
jne    13db <loadstorylevel+0x2cb>
lea    0xd74(%rip),%rdi
call   1030 <loadlevel@plt>
cmpl   $0x21,-0x4(%rbp)
jne    13f1 <loadstorylevel+0x2e1>
lea    0xd6a(%rip),%rdi
call   1030 <loadlevel@plt>
cmpl   $0x22,-0x4(%rbp)
jne    1407 <loadstorylevel+0x2f7>
lea    0xd60(%rip),%rdi
call   1030 <loadlevel@plt>
cmpl   $0x40,-0x4(%rbp)
jne    141d <loadstorylevel+0x30d>
lea    0xd56(%rip),%rdi
call   1030 <loadlevel@plt>
cmpl   $0x41,-0x4(%rbp)
jne    1433 <loadstorylevel+0x323>
lea    0xd4b(%rip),%rdi
call   1030 <loadlevel@plt>
cmpl   $0x42,-0x4(%rbp)
jne    1449 <loadstorylevel+0x339>
lea    0xd3f(%rip),%rdi
call   1030 <loadlevel@plt>
cmpl   $0x43,-0x4(%rbp)
jne    145f <loadstorylevel+0x34f>
lea    0xd34(%rip),%rdi
call   1030 <loadlevel@plt>
cmpl   $0x44,-0x4(%rbp)
jne    1475 <loadstorylevel+0x365>
lea    0xd28(%rip),%rdi
call   1030 <loadlevel@plt>
add    $0x10,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<loadstorylevel>:
mov    %edi,%eax
add    $0xffffffff,%eax
cmp    $0x43,%eax
ja     12c1 <loadstorylevel+0x1b1>
lea    0xfeb(%rip),%rdi
lea    0xed4(%rip),%rcx
movslq (%rcx,%rax,4),%rax
add    %rcx,%rax
jmp    *%rax
lea    0xfdf(%rip),%rdi
jmp    1030 <loadlevel@plt>
lea    0xfde(%rip),%rdi
jmp    1030 <loadlevel@plt>
lea    0xfdd(%rip),%rdi
jmp    1030 <loadlevel@plt>
lea    0xfdc(%rip),%rdi
jmp    1030 <loadlevel@plt>
lea    0xfdb(%rip),%rdi
jmp    1030 <loadlevel@plt>
lea    0xfda(%rip),%rdi
jmp    1030 <loadlevel@plt>
lea    0xfd9(%rip),%rdi
jmp    1030 <loadlevel@plt>
lea    0xfd7(%rip),%rdi
jmp    1030 <loadlevel@plt>
lea    0xfd5(%rip),%rdi
jmp    1030 <loadlevel@plt>
lea    0xfd3(%rip),%rdi
jmp    1030 <loadlevel@plt>
lea    0xfd1(%rip),%rdi
jmp    1030 <loadlevel@plt>
lea    0xfcf(%rip),%rdi
jmp    1030 <loadlevel@plt>
lea    0xfcd(%rip),%rdi
jmp    1030 <loadlevel@plt>
lea    0xfcb(%rip),%rdi
jmp    1030 <loadlevel@plt>
lea    0xfc9(%rip),%rdi
jmp    1030 <loadlevel@plt>
lea    0xfc7(%rip),%rdi
jmp    1030 <loadlevel@plt>
lea    0xfc5(%rip),%rdi
jmp    1030 <loadlevel@plt>
lea    0xfc3(%rip),%rdi
jmp    1030 <loadlevel@plt>
lea    0xfc1(%rip),%rdi
jmp    1030 <loadlevel@plt>
lea    0xfbf(%rip),%rdi
jmp    1030 <loadlevel@plt>
lea    0xfbd(%rip),%rdi
jmp    1030 <loadlevel@plt>
lea    0xfbc(%rip),%rdi
jmp    1030 <loadlevel@plt>
lea    0xfbb(%rip),%rdi
jmp    1030 <loadlevel@plt>
lea    0xfba(%rip),%rdi
jmp    1030 <loadlevel@plt>
lea    0xfb9(%rip),%rdi
jmp    1030 <loadlevel@plt>
lea    0xfb8(%rip),%rdi
jmp    1030 <loadlevel@plt>
lea    0xfb7(%rip),%rdi
jmp    1030 <loadlevel@plt>
lea    0xfb6(%rip),%rdi
jmp    1030 <loadlevel@plt>
lea    0xfb6(%rip),%rdi
jmp    1030 <loadlevel@plt>
lea    0xfb6(%rip),%rdi
jmp    1030 <loadlevel@plt>
lea    0xfb6(%rip),%rdi
jmp    1030 <loadlevel@plt>
lea    0xfb6(%rip),%rdi
jmp    1030 <loadlevel@plt>
lea    0xfb6(%rip),%rdi
jmp    1030 <loadlevel@plt>
ret
lea    0xfb5(%rip),%rdi
jmp    1030 <loadlevel@plt>
lea    0xfb4(%rip),%rdi
jmp    1030 <loadlevel@plt>
lea    0xfb2(%rip),%rdi
jmp    1030 <loadlevel@plt>
lea    0xfb1(%rip),%rdi
jmp    1030 <loadlevel@plt>
lea    0xfaf(%rip),%rdi
jmp    1030 <loadlevel@plt>

LLVM IR (-O0):
@.str = [11 x i8] c"sewer1.lvl\00"
@.str.1 = [11 x i8] c"sewer2.lvl\00"
@.str.2 = [11 x i8] c"sewer3.lvl\00"
@.str.3 = [11 x i8] c"sewer4.lvl\00"
@.str.4 = [11 x i8] c"sewer5.lvl\00"
@.str.5 = [11 x i8] c"sewer6.lvl\00"
@.str.6 = [11 x i8] c"sewer7.lvl\00"
@.str.7 = [10 x i8] c"cave1.lvl\00"
@.str.8 = [10 x i8] c"cave2.lvl\00"
@.str.9 = [10 x i8] c"cave3.lvl\00"
@.str.10 = [10 x i8] c"cave4.lvl\00"
@.str.11 = [10 x i8] c"cave5.lvl\00"
@.str.12 = [10 x i8] c"cave6.lvl\00"
@.str.13 = [10 x i8] c"cave7.lvl\00"
@.str.14 = [10 x i8] c"hell1.lvl\00"
@.str.15 = [10 x i8] c"hell2.lvl\00"
@.str.16 = [10 x i8] c"hell3.lvl\00"
@.str.17 = [10 x i8] c"hell4.lvl\00"
@.str.18 = [10 x i8] c"hell5.lvl\00"
@.str.19 = [10 x i8] c"hell6.lvl\00"
@.str.20 = [10 x i8] c"hell7.lvl\00"
@.str.21 = [11 x i8] c"egypt1.lvl\00"
@.str.22 = [11 x i8] c"egypt2.lvl\00"
@.str.23 = [11 x i8] c"egypt3.lvl\00"
@.str.24 = [11 x i8] c"egypt4.lvl\00"
@.str.25 = [11 x i8] c"egypt5.lvl\00"
@.str.26 = [11 x i8] c"egypt6.lvl\00"
@.str.27 = [11 x i8] c"egypt7.lvl\00"
@.str.28 = [12 x i8] c"church1.lvl\00"
@.str.29 = [12 x i8] c"church2.lvl\00"
@.str.30 = [12 x i8] c"church3.lvl\00"
@.str.31 = [12 x i8] c"church4.lvl\00"
@.str.32 = [12 x i8] c"church5.lvl\00"
@.str.33 = [12 x i8] c"church6.lvl\00"
@.str.34 = [11 x i8] c"sewer8.lvl\00"
@.str.35 = [10 x i8] c"cave8.lvl\00"
@.str.36 = [11 x i8] c"egypt8.lvl\00"
@.str.37 = [10 x i8] c"death.lvl\00"
@.str.38 = [11 x i8] c"death2.lvl\00"
define void @loadstorylevel(i32 %0) {
%2 = alloca i32
store i32 %0, i32* %2
%3 = load i32, i32* %2
%4 = icmp eq i32 %3, 1
br i1 %4, label %5, label %7
5: ; preds = %1
%6 = call i32 @loadlevel(i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i64 0, i64 0))
br label %7
7: ; preds = %5, %1
%8 = load i32, i32* %2
%9 = icmp eq i32 %8, 2
br i1 %9, label %10, label %12
10: ; preds = %7
%11 = call i32 @loadlevel(i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str.1, i64 0, i64 0))
br label %12
12: ; preds = %10, %7
%13 = load i32, i32* %2
%14 = icmp eq i32 %13, 3
br i1 %14, label %15, label %17
15: ; preds = %12
%16 = call i32 @loadlevel(i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str.2, i64 0, i64 0))
br label %17
17: ; preds = %15, %12
%18 = load i32, i32* %2
%19 = icmp eq i32 %18, 4
br i1 %19, label %20, label %22
20: ; preds = %17
%21 = call i32 @loadlevel(i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str.3, i64 0, i64 0))
br label %22
22: ; preds = %20, %17
%23 = load i32, i32* %2
%24 = icmp eq i32 %23, 5
br i1 %24, label %25, label %27
25: ; preds = %22
%26 = call i32 @loadlevel(i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str.4, i64 0, i64 0))
br label %27
27: ; preds = %25, %22
%28 = load i32, i32* %2
%29 = icmp eq i32 %28, 6
br i1 %29, label %30, label %32
30: ; preds = %27
%31 = call i32 @loadlevel(i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str.5, i64 0, i64 0))
br label %32
32: ; preds = %30, %27
%33 = load i32, i32* %2
%34 = icmp eq i32 %33, 7
br i1 %34, label %35, label %37
35: ; preds = %32
%36 = call i32 @loadlevel(i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str.6, i64 0, i64 0))
br label %37
37: ; preds = %35, %32
%38 = load i32, i32* %2
%39 = icmp eq i32 %38, 8
br i1 %39, label %40, label %42
40: ; preds = %37
%41 = call i32 @loadlevel(i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.7, i64 0, i64 0))
br label %42
42: ; preds = %40, %37
%43 = load i32, i32* %2
%44 = icmp eq i32 %43, 9
br i1 %44, label %45, label %47
45: ; preds = %42
%46 = call i32 @loadlevel(i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.8, i64 0, i64 0))
br label %47
47: ; preds = %45, %42
%48 = load i32, i32* %2
%49 = icmp eq i32 %48, 10
br i1 %49, label %50, label %52
50: ; preds = %47
%51 = call i32 @loadlevel(i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.9, i64 0, i64 0))
br label %52
52: ; preds = %50, %47
%53 = load i32, i32* %2
%54 = icmp eq i32 %53, 11
br i1 %54, label %55, label %57
55: ; preds = %52
%56 = call i32 @loadlevel(i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.10, i64 0, i64 0))
br label %57
57: ; preds = %55, %52
%58 = load i32, i32* %2
%59 = icmp eq i32 %58, 12
br i1 %59, label %60, label %62
60: ; preds = %57
%61 = call i32 @loadlevel(i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.11, i64 0, i64 0))
br label %62
62: ; preds = %60, %57
%63 = load i32, i32* %2
%64 = icmp eq i32 %63, 13
br i1 %64, label %65, label %67
65: ; preds = %62
%66 = call i32 @loadlevel(i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.12, i64 0, i64 0))
br label %67
67: ; preds = %65, %62
%68 = load i32, i32* %2
%69 = icmp eq i32 %68, 14
br i1 %69, label %70, label %72
70: ; preds = %67
%71 = call i32 @loadlevel(i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.13, i64 0, i64 0))
br label %72
72: ; preds = %70, %67
%73 = load i32, i32* %2
%74 = icmp eq i32 %73, 15
br i1 %74, label %75, label %77
75: ; preds = %72
%76 = call i32 @loadlevel(i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.14, i64 0, i64 0))
br label %77
77: ; preds = %75, %72
%78 = load i32, i32* %2
%79 = icmp eq i32 %78, 16
br i1 %79, label %80, label %82
80: ; preds = %77
%81 = call i32 @loadlevel(i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.15, i64 0, i64 0))
br label %82
82: ; preds = %80, %77
%83 = load i32, i32* %2
%84 = icmp eq i32 %83, 17
br i1 %84, label %85, label %87
85: ; preds = %82
%86 = call i32 @loadlevel(i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.16, i64 0, i64 0))
br label %87
87: ; preds = %85, %82
%88 = load i32, i32* %2
%89 = icmp eq i32 %88, 18
br i1 %89, label %90, label %92
90: ; preds = %87
%91 = call i32 @loadlevel(i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.17, i64 0, i64 0))
br label %92
92: ; preds = %90, %87
%93 = load i32, i32* %2
%94 = icmp eq i32 %93, 19
br i1 %94, label %95, label %97
95: ; preds = %92
%96 = call i32 @loadlevel(i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.18, i64 0, i64 0))
br label %97
97: ; preds = %95, %92
%98 = load i32, i32* %2
%99 = icmp eq i32 %98, 20
br i1 %99, label %100, label %102
100: ; preds = %97
%101 = call i32 @loadlevel(i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.19, i64 0, i64 0))
br label %102
102: ; preds = %100, %97
%103 = load i32, i32* %2
%104 = icmp eq i32 %103, 21
br i1 %104, label %105, label %107
105: ; preds = %102
%106 = call i32 @loadlevel(i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.20, i64 0, i64 0))
br label %107
107: ; preds = %105, %102
%108 = load i32, i32* %2
%109 = icmp eq i32 %108, 22
br i1 %109, label %110, label %112
110: ; preds = %107
%111 = call i32 @loadlevel(i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str.21, i64 0, i64 0))
br label %112
112: ; preds = %110, %107
%113 = load i32, i32* %2
%114 = icmp eq i32 %113, 23
br i1 %114, label %115, label %117
115: ; preds = %112
%116 = call i32 @loadlevel(i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str.22, i64 0, i64 0))
br label %117
117: ; preds = %115, %112
%118 = load i32, i32* %2
%119 = icmp eq i32 %118, 24
br i1 %119, label %120, label %122
120: ; preds = %117
%121 = call i32 @loadlevel(i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str.23, i64 0, i64 0))
br label %122
122: ; preds = %120, %117
%123 = load i32, i32* %2
%124 = icmp eq i32 %123, 25
br i1 %124, label %125, label %127
125: ; preds = %122
%126 = call i32 @loadlevel(i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str.24, i64 0, i64 0))
br label %127
127: ; preds = %125, %122
%128 = load i32, i32* %2
%129 = icmp eq i32 %128, 26
br i1 %129, label %130, label %132
130: ; preds = %127
%131 = call i32 @loadlevel(i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str.25, i64 0, i64 0))
br label %132
132: ; preds = %130, %127
%133 = load i32, i32* %2
%134 = icmp eq i32 %133, 27
br i1 %134, label %135, label %137
135: ; preds = %132
%136 = call i32 @loadlevel(i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str.26, i64 0, i64 0))
br label %137
137: ; preds = %135, %132
%138 = load i32, i32* %2
%139 = icmp eq i32 %138, 28
br i1 %139, label %140, label %142
140: ; preds = %137
%141 = call i32 @loadlevel(i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str.27, i64 0, i64 0))
br label %142
142: ; preds = %140, %137
%143 = load i32, i32* %2
%144 = icmp eq i32 %143, 29
br i1 %144, label %145, label %147
145: ; preds = %142
%146 = call i32 @loadlevel(i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.28, i64 0, i64 0))
br label %147
147: ; preds = %145, %142
%148 = load i32, i32* %2
%149 = icmp eq i32 %148, 30
br i1 %149, label %150, label %152
150: ; preds = %147
%151 = call i32 @loadlevel(i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.29, i64 0, i64 0))
br label %152
152: ; preds = %150, %147
%153 = load i32, i32* %2
%154 = icmp eq i32 %153, 31
br i1 %154, label %155, label %157
155: ; preds = %152
%156 = call i32 @loadlevel(i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.30, i64 0, i64 0))
br label %157
157: ; preds = %155, %152
%158 = load i32, i32* %2
%159 = icmp eq i32 %158, 32
br i1 %159, label %160, label %162
160: ; preds = %157
%161 = call i32 @loadlevel(i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.31, i64 0, i64 0))
br label %162
162: ; preds = %160, %157
%163 = load i32, i32* %2
%164 = icmp eq i32 %163, 33
br i1 %164, label %165, label %167
165: ; preds = %162
%166 = call i32 @loadlevel(i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.32, i64 0, i64 0))
br label %167
167: ; preds = %165, %162
%168 = load i32, i32* %2
%169 = icmp eq i32 %168, 34
br i1 %169, label %170, label %172
170: ; preds = %167
%171 = call i32 @loadlevel(i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.33, i64 0, i64 0))
br label %172
172: ; preds = %170, %167
%173 = load i32, i32* %2
%174 = icmp eq i32 %173, 64
br i1 %174, label %175, label %177
175: ; preds = %172
%176 = call i32 @loadlevel(i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str.34, i64 0, i64 0))
br label %177
177: ; preds = %175, %172
%178 = load i32, i32* %2
%179 = icmp eq i32 %178, 65
br i1 %179, label %180, label %182
180: ; preds = %177
%181 = call i32 @loadlevel(i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.35, i64 0, i64 0))
br label %182
182: ; preds = %180, %177
%183 = load i32, i32* %2
%184 = icmp eq i32 %183, 66
br i1 %184, label %185, label %187
185: ; preds = %182
%186 = call i32 @loadlevel(i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str.36, i64 0, i64 0))
br label %187
187: ; preds = %185, %182
%188 = load i32, i32* %2
%189 = icmp eq i32 %188, 67
br i1 %189, label %190, label %192
190: ; preds = %187
%191 = call i32 @loadlevel(i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.37, i64 0, i64 0))
br label %192
192: ; preds = %190, %187
%193 = load i32, i32* %2
%194 = icmp eq i32 %193, 68
br i1 %194, label %195, label %197
195: ; preds = %192
%196 = call i32 @loadlevel(i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str.38, i64 0, i64 0))
br label %197
197: ; preds = %195, %192
ret void
}

LLVM IR (-O2):
@.str = [11 x i8] c"sewer1.lvl\00"
@.str.1 = [11 x i8] c"sewer2.lvl\00"
@.str.2 = [11 x i8] c"sewer3.lvl\00"
@.str.3 = [11 x i8] c"sewer4.lvl\00"
@.str.4 = [11 x i8] c"sewer5.lvl\00"
@.str.5 = [11 x i8] c"sewer6.lvl\00"
@.str.6 = [11 x i8] c"sewer7.lvl\00"
@.str.7 = [10 x i8] c"cave1.lvl\00"
@.str.8 = [10 x i8] c"cave2.lvl\00"
@.str.9 = [10 x i8] c"cave3.lvl\00"
@.str.10 = [10 x i8] c"cave4.lvl\00"
@.str.11 = [10 x i8] c"cave5.lvl\00"
@.str.12 = [10 x i8] c"cave6.lvl\00"
@.str.13 = [10 x i8] c"cave7.lvl\00"
@.str.14 = [10 x i8] c"hell1.lvl\00"
@.str.15 = [10 x i8] c"hell2.lvl\00"
@.str.16 = [10 x i8] c"hell3.lvl\00"
@.str.17 = [10 x i8] c"hell4.lvl\00"
@.str.18 = [10 x i8] c"hell5.lvl\00"
@.str.19 = [10 x i8] c"hell6.lvl\00"
@.str.20 = [10 x i8] c"hell7.lvl\00"
@.str.21 = [11 x i8] c"egypt1.lvl\00"
@.str.22 = [11 x i8] c"egypt2.lvl\00"
@.str.23 = [11 x i8] c"egypt3.lvl\00"
@.str.24 = [11 x i8] c"egypt4.lvl\00"
@.str.25 = [11 x i8] c"egypt5.lvl\00"
@.str.26 = [11 x i8] c"egypt6.lvl\00"
@.str.27 = [11 x i8] c"egypt7.lvl\00"
@.str.28 = [12 x i8] c"church1.lvl\00"
@.str.29 = [12 x i8] c"church2.lvl\00"
@.str.30 = [12 x i8] c"church3.lvl\00"
@.str.31 = [12 x i8] c"church4.lvl\00"
@.str.32 = [12 x i8] c"church5.lvl\00"
@.str.33 = [12 x i8] c"church6.lvl\00"
@.str.34 = [11 x i8] c"sewer8.lvl\00"
@.str.35 = [10 x i8] c"cave8.lvl\00"
@.str.36 = [11 x i8] c"egypt8.lvl\00"
@.str.37 = [10 x i8] c"death.lvl\00"
@.str.38 = [11 x i8] c"death2.lvl\00"
define void @loadstorylevel(i32 %0) {
switch i32 %0, label %43 [
i32 1, label %40
i32 2, label %2
i32 3, label %3
i32 4, label %4
i32 5, label %5
i32 6, label %6
i32 7, label %7
i32 8, label %8
i32 9, label %9
i32 10, label %10
i32 11, label %11
i32 12, label %12
i32 13, label %13
i32 14, label %14
i32 15, label %15
i32 16, label %16
i32 17, label %17
i32 18, label %18
i32 19, label %19
i32 20, label %20
i32 21, label %21
i32 22, label %22
i32 23, label %23
i32 24, label %24
i32 25, label %25
i32 26, label %26
i32 27, label %27
i32 28, label %28
i32 29, label %29
i32 30, label %30
i32 31, label %31
i32 32, label %32
i32 33, label %33
i32 34, label %34
i32 64, label %35
i32 65, label %36
i32 66, label %37
i32 67, label %38
i32 68, label %39
]
2: ; preds = %1
br label %40
3: ; preds = %1
br label %40
4: ; preds = %1
br label %40
5: ; preds = %1
br label %40
6: ; preds = %1
br label %40
7: ; preds = %1
br label %40
8: ; preds = %1
br label %40
9: ; preds = %1
br label %40
10: ; preds = %1
br label %40
11: ; preds = %1
br label %40
12: ; preds = %1
br label %40
13: ; preds = %1
br label %40
14: ; preds = %1
br label %40
15: ; preds = %1
br label %40
16: ; preds = %1
br label %40
17: ; preds = %1
br label %40
18: ; preds = %1
br label %40
19: ; preds = %1
br label %40
20: ; preds = %1
br label %40
21: ; preds = %1
br label %40
22: ; preds = %1
br label %40
23: ; preds = %1
br label %40
24: ; preds = %1
br label %40
25: ; preds = %1
br label %40
26: ; preds = %1
br label %40
27: ; preds = %1
br label %40
28: ; preds = %1
br label %40
29: ; preds = %1
br label %40
30: ; preds = %1
br label %40
31: ; preds = %1
br label %40
32: ; preds = %1
br label %40
33: ; preds = %1
br label %40
34: ; preds = %1
br label %40
35: ; preds = %1
br label %40
36: ; preds = %1
br label %40
37: ; preds = %1
br label %40
38: ; preds = %1
br label %40
39: ; preds = %1
br label %40
40: ; preds = %1, %39, %2, %12, %11, %10, %9, %21, %14, %13, %8, %22, %16, %15, %7, %23, %18, %17, %6, %24, %19, %25, %20, %5, %26, %27, %28, %4, %29, %30, %31, %32, %33, %34, %3, %35, %36, %37, %38
%41 = phi i8* [ getelementptr inbounds ([10 x i8], [10 x i8]* @.str.37, i64 0, i64 0), %38 ], [ getelementptr inbounds ([11 x i8], [11 x i8]* @.str.36, i64 0, i64 0), %37 ], [ getelementptr inbounds ([10 x i8], [10 x i8]* @.str.35, i64 0, i64 0), %36 ], [ getelementptr inbounds ([11 x i8], [11 x i8]* @.str.34, i64 0, i64 0), %35 ], [ getelementptr inbounds ([11 x i8], [11 x i8]* @.str.2, i64 0, i64 0), %3 ], [ getelementptr inbounds ([12 x i8], [12 x i8]* @.str.33, i64 0, i64 0), %34 ], [ getelementptr inbounds ([12 x i8], [12 x i8]* @.str.32, i64 0, i64 0), %33 ], [ getelementptr inbounds ([12 x i8], [12 x i8]* @.str.31, i64 0, i64 0), %32 ], [ getelementptr inbounds ([12 x i8], [12 x i8]* @.str.30, i64 0, i64 0), %31 ], [ getelementptr inbounds ([12 x i8], [12 x i8]* @.str.29, i64 0, i64 0), %30 ], [ getelementptr inbounds ([12 x i8], [12 x i8]* @.str.28, i64 0, i64 0), %29 ], [ getelementptr inbounds ([11 x i8], [11 x i8]* @.str.3, i64 0, i64 0), %4 ], [ getelementptr inbounds ([11 x i8], [11 x i8]* @.str.27, i64 0, i64 0), %28 ], [ getelementptr inbounds ([11 x i8], [11 x i8]* @.str.26, i64 0, i64 0), %27 ], [ getelementptr inbounds ([11 x i8], [11 x i8]* @.str.25, i64 0, i64 0), %26 ], [ getelementptr inbounds ([11 x i8], [11 x i8]* @.str.4, i64 0, i64 0), %5 ], [ getelementptr inbounds ([10 x i8], [10 x i8]* @.str.19, i64 0, i64 0), %20 ], [ getelementptr inbounds ([11 x i8], [11 x i8]* @.str.24, i64 0, i64 0), %25 ], [ getelementptr inbounds ([10 x i8], [10 x i8]* @.str.18, i64 0, i64 0), %19 ], [ getelementptr inbounds ([11 x i8], [11 x i8]* @.str.23, i64 0, i64 0), %24 ], [ getelementptr inbounds ([11 x i8], [11 x i8]* @.str.5, i64 0, i64 0), %6 ], [ getelementptr inbounds ([10 x i8], [10 x i8]* @.str.16, i64 0, i64 0), %17 ], [ getelementptr inbounds ([10 x i8], [10 x i8]* @.str.17, i64 0, i64 0), %18 ], [ getelementptr inbounds ([11 x i8], [11 x i8]* @.str.22, i64 0, i64 0), %23 ], [ getelementptr inbounds ([11 x i8], [11 x i8]* @.str.6, i64 0, i64 0), %7 ], [ getelementptr inbounds ([10 x i8], [10 x i8]* @.str.14, i64 0, i64 0), %15 ], [ getelementptr inbounds ([10 x i8], [10 x i8]* @.str.15, i64 0, i64 0), %16 ], [ getelementptr inbounds ([11 x i8], [11 x i8]* @.str.21, i64 0, i64 0), %22 ], [ getelementptr inbounds ([10 x i8], [10 x i8]* @.str.7, i64 0, i64 0), %8 ], [ getelementptr inbounds ([10 x i8], [10 x i8]* @.str.12, i64 0, i64 0), %13 ], [ getelementptr inbounds ([10 x i8], [10 x i8]* @.str.13, i64 0, i64 0), %14 ], [ getelementptr inbounds ([10 x i8], [10 x i8]* @.str.20, i64 0, i64 0), %21 ], [ getelementptr inbounds ([10 x i8], [10 x i8]* @.str.8, i64 0, i64 0), %9 ], [ getelementptr inbounds ([10 x i8], [10 x i8]* @.str.9, i64 0, i64 0), %10 ], [ getelementptr inbounds ([10 x i8], [10 x i8]* @.str.10, i64 0, i64 0), %11 ], [ getelementptr inbounds ([10 x i8], [10 x i8]* @.str.11, i64 0, i64 0), %12 ], [ getelementptr inbounds ([11 x i8], [11 x i8]* @.str.1, i64 0, i64 0), %2 ], [ getelementptr inbounds ([11 x i8], [11 x i8]* @.str.38, i64 0, i64 0), %39 ], [ getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i64 0, i64 0), %1 ]
%42 = tail call i32 @loadlevel(i8* %41)
br label %43
43: ; preds = %40, %1
ret void
}