void handleInterrupt21(int ax, int bx, int cx, int dx) {
  char errorMsg[36];
  switch (ax) {
  case 0:
    printString(bx);
    break;
  case 1:
    readString(bx);
    break;
  case 2:
    readSector(bx, cx);
    break;
  case 3:
    readFile(bx, cx, dx);
    break;
  case 4:
    executeProgram(bx);
    break;
  case 5:
    terminate();
    break;
  case 6:
    writeSector(bx, cx);
    break;
  case 7:
    deleteFile(bx);
    break;
  case 8:
    writeFile(bx, cx, dx);
    break;
  case 9:
    listFile();
    break;
  case 10:
    clearScreen();
    break;
  case 11:
    killProcess(bx);
    break;
  case 12:
    changeFGcolor(bx, cx);
    break;
  case 13:
    changeBGcolor(bx);
    break;
  case 14:
    blockExecuteProgram(bx);
    break;
  case 15:
    displayHelpMessage();
  case 99:
    countFileSectors(bx, cx);
    break;
  default:
    errorMsg[0] = 'E';
    errorMsg[1] = 'r';
    errorMsg[2] = 'r';
    errorMsg[3] = 'o';
    errorMsg[4] = 'r';
    errorMsg[5] = ':';
    errorMsg[6] = ' ';
    errorMsg[7] = 'w';
    errorMsg[8] = 'h';
    errorMsg[9] = 'a';
    errorMsg[10] = 't';
    errorMsg[11] = ' ';
    errorMsg[12] = 'd';
    errorMsg[13] = 'i';
    errorMsg[14] = 'd';
    errorMsg[15] = ' ';
    errorMsg[16] = 'y';
    errorMsg[17] = 'o';
    errorMsg[18] = 'u';
    errorMsg[19] = ' ';
    errorMsg[20] = 'c';
    errorMsg[21] = 'a';
    errorMsg[22] = 'l';
    errorMsg[23] = 'l';
    errorMsg[24] = ' ';
    errorMsg[25] = 'i';
    errorMsg[26] = 't';
    errorMsg[27] = ' ';
    errorMsg[28] = 'w';
    errorMsg[29] = 'i';
    errorMsg[30] = 't';
    errorMsg[31] = 'h';
    errorMsg[32] = '?';
    errorMsg[33] = '\r';
    errorMsg[34] = '\n';
    errorMsg[35] = '\0';
    printString(errorMsg);
  }
}


x86 assembly (clang, -O0):
<handleInterrupt21>:
push   %rbp
mov    %rsp,%rbp
sub    $0x50,%rsp
mov    %edi,-0x4(%rbp)
mov    %esi,-0x8(%rbp)
mov    %edx,-0xc(%rbp)
mov    %ecx,-0x10(%rbp)
mov    -0x4(%rbp),%eax
mov    %rax,-0x48(%rbp)
sub    $0x63,%rax
ja     134f <handleInterrupt21+0x13f>
mov    -0x48(%rbp),%rax
lea    0xdc0(%rip),%rcx
movslq (%rcx,%rax,4),%rax
add    %rcx,%rax
jmp    *%rax
mov    -0x8(%rbp),%edi
mov    $0x0,%al
call   1080 <printString@plt>
jmp    13ea <handleInterrupt21+0x1da>
mov    -0x8(%rbp),%edi
mov    $0x0,%al
call   10f0 <readString@plt>
jmp    13ea <handleInterrupt21+0x1da>
mov    -0x8(%rbp),%edi
mov    -0xc(%rbp),%esi
mov    $0x0,%al
call   1100 <readSector@plt>
jmp    13ea <handleInterrupt21+0x1da>
mov    -0x8(%rbp),%edi
mov    -0xc(%rbp),%esi
mov    -0x10(%rbp),%edx
mov    $0x0,%al
call   1130 <readFile@plt>
jmp    13ea <handleInterrupt21+0x1da>
mov    -0x8(%rbp),%edi
mov    $0x0,%al
call   1120 <executeProgram@plt>
jmp    13ea <handleInterrupt21+0x1da>
mov    $0x0,%al
call   1110 <terminate@plt>
jmp    13ea <handleInterrupt21+0x1da>
mov    -0x8(%rbp),%edi
mov    -0xc(%rbp),%esi
mov    $0x0,%al
call   1060 <writeSector@plt>
jmp    13ea <handleInterrupt21+0x1da>
mov    -0x8(%rbp),%edi
mov    $0x0,%al
call   1090 <deleteFile@plt>
jmp    13ea <handleInterrupt21+0x1da>
mov    -0x8(%rbp),%edi
mov    -0xc(%rbp),%esi
mov    -0x10(%rbp),%edx
mov    $0x0,%al
call   10a0 <writeFile@plt>
jmp    13ea <handleInterrupt21+0x1da>
mov    $0x0,%al
call   1050 <listFile@plt>
jmp    13ea <handleInterrupt21+0x1da>
mov    $0x0,%al
call   10d0 <clearScreen@plt>
jmp    13ea <handleInterrupt21+0x1da>
mov    -0x8(%rbp),%edi
mov    $0x0,%al
call   10b0 <killProcess@plt>
jmp    13ea <handleInterrupt21+0x1da>
mov    -0x8(%rbp),%edi
mov    -0xc(%rbp),%esi
mov    $0x0,%al
call   10e0 <changeFGcolor@plt>
jmp    13ea <handleInterrupt21+0x1da>
mov    -0x8(%rbp),%edi
mov    $0x0,%al
call   1040 <changeBGcolor@plt>
jmp    13ea <handleInterrupt21+0x1da>
mov    -0x8(%rbp),%edi
mov    $0x0,%al
call   1030 <blockExecuteProgram@plt>
jmp    13ea <handleInterrupt21+0x1da>
mov    $0x0,%al
call   10c0 <displayHelpMessage@plt>
mov    -0x8(%rbp),%edi
mov    -0xc(%rbp),%esi
mov    $0x0,%al
call   1070 <countFileSectors@plt>
jmp    13ea <handleInterrupt21+0x1da>
movb   $0x45,-0x40(%rbp)
movb   $0x72,-0x3f(%rbp)
movb   $0x72,-0x3e(%rbp)
movb   $0x6f,-0x3d(%rbp)
movb   $0x72,-0x3c(%rbp)
movb   $0x3a,-0x3b(%rbp)
movb   $0x20,-0x3a(%rbp)
movb   $0x77,-0x39(%rbp)
movb   $0x68,-0x38(%rbp)
movb   $0x61,-0x37(%rbp)
movb   $0x74,-0x36(%rbp)
movb   $0x20,-0x35(%rbp)
movb   $0x64,-0x34(%rbp)
movb   $0x69,-0x33(%rbp)
movb   $0x64,-0x32(%rbp)
movb   $0x20,-0x31(%rbp)
movb   $0x79,-0x30(%rbp)
movb   $0x6f,-0x2f(%rbp)
movb   $0x75,-0x2e(%rbp)
movb   $0x20,-0x2d(%rbp)
movb   $0x63,-0x2c(%rbp)
movb   $0x61,-0x2b(%rbp)
movb   $0x6c,-0x2a(%rbp)
movb   $0x6c,-0x29(%rbp)
movb   $0x20,-0x28(%rbp)
movb   $0x69,-0x27(%rbp)
movb   $0x74,-0x26(%rbp)
movb   $0x20,-0x25(%rbp)
movb   $0x77,-0x24(%rbp)
movb   $0x69,-0x23(%rbp)
movb   $0x74,-0x22(%rbp)
movb   $0x68,-0x21(%rbp)
movb   $0x3f,-0x20(%rbp)
movb   $0xd,-0x1f(%rbp)
movb   $0xa,-0x1e(%rbp)
movb   $0x0,-0x1d(%rbp)
lea    -0x40(%rbp),%rdi
mov    $0x0,%al
call   1080 <printString@plt>
add    $0x50,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<handleInterrupt21>:
push   %rbp
push   %rbx
sub    $0x28,%rsp
cmp    $0x63,%edi
ja     1336 <handleInterrupt21+0x126>
mov    %edx,%ebp
mov    %esi,%ebx
mov    %edi,%eax
lea    0xdf4(%rip),%rdx
movslq (%rdx,%rax,4),%rax
add    %rdx,%rax
jmp    *%rax
mov    %ebx,%edi
xor    %eax,%eax
add    $0x28,%rsp
pop    %rbx
pop    %rbp
jmp    1080 <printString@plt>
mov    %ebx,%edi
xor    %eax,%eax
add    $0x28,%rsp
pop    %rbx
pop    %rbp
jmp    10f0 <readString@plt>
mov    %ebx,%edi
mov    %ebp,%esi
xor    %eax,%eax
add    $0x28,%rsp
pop    %rbx
pop    %rbp
jmp    1100 <readSector@plt>
mov    %ebx,%edi
mov    %ebp,%esi
mov    %ecx,%edx
xor    %eax,%eax
add    $0x28,%rsp
pop    %rbx
pop    %rbp
jmp    1130 <readFile@plt>
mov    %ebx,%edi
xor    %eax,%eax
add    $0x28,%rsp
pop    %rbx
pop    %rbp
jmp    1120 <executeProgram@plt>
xor    %eax,%eax
add    $0x28,%rsp
pop    %rbx
pop    %rbp
jmp    1110 <terminate@plt>
mov    %ebx,%edi
mov    %ebp,%esi
xor    %eax,%eax
add    $0x28,%rsp
pop    %rbx
pop    %rbp
jmp    1060 <writeSector@plt>
mov    %ebx,%edi
xor    %eax,%eax
add    $0x28,%rsp
pop    %rbx
pop    %rbp
jmp    1090 <deleteFile@plt>
mov    %ebx,%edi
mov    %ebp,%esi
mov    %ecx,%edx
xor    %eax,%eax
add    $0x28,%rsp
pop    %rbx
pop    %rbp
jmp    10a0 <writeFile@plt>
xor    %eax,%eax
add    $0x28,%rsp
pop    %rbx
pop    %rbp
jmp    1050 <listFile@plt>
xor    %eax,%eax
add    $0x28,%rsp
pop    %rbx
pop    %rbp
jmp    10d0 <clearScreen@plt>
mov    %ebx,%edi
xor    %eax,%eax
add    $0x28,%rsp
pop    %rbx
pop    %rbp
jmp    10b0 <killProcess@plt>
mov    %ebx,%edi
mov    %ebp,%esi
xor    %eax,%eax
add    $0x28,%rsp
pop    %rbx
pop    %rbp
jmp    10e0 <changeFGcolor@plt>
mov    %ebx,%edi
xor    %eax,%eax
add    $0x28,%rsp
pop    %rbx
pop    %rbp
jmp    1040 <changeBGcolor@plt>
mov    %ebx,%edi
xor    %eax,%eax
add    $0x28,%rsp
pop    %rbx
pop    %rbp
jmp    1030 <blockExecuteProgram@plt>
xor    %eax,%eax
call   10c0 <displayHelpMessage@plt>
mov    %ebx,%edi
mov    %ebp,%esi
xor    %eax,%eax
add    $0x28,%rsp
pop    %rbx
pop    %rbp
jmp    1070 <countFileSectors@plt>
movaps 0xcc3(%rip),%xmm0
movaps %xmm0,(%rsp)
movaps 0xcc8(%rip),%xmm0
movaps %xmm0,0x10(%rsp)
movl   $0xa0d3f,0x20(%rsp)
mov    %rsp,%rdi
xor    %eax,%eax
call   1080 <printString@plt>
add    $0x28,%rsp
pop    %rbx
pop    %rbp
ret

LLVM IR (-O0):
define void @handleInterrupt21(i32 %0, i32 %1, i32 %2, i32 %3) {
%5 = alloca i32
%6 = alloca i32
%7 = alloca i32
%8 = alloca i32
%9 = alloca [36 x i8]
store i32 %0, i32* %5
store i32 %1, i32* %6
store i32 %2, i32* %7
store i32 %3, i32* %8
%10 = load i32, i32* %5
switch i32 %10, label %66 [
i32 0, label %11
i32 1, label %14
i32 2, label %17
i32 3, label %21
i32 4, label %26
i32 5, label %29
i32 6, label %31
i32 7, label %35
i32 8, label %38
i32 9, label %43
i32 10, label %45
i32 11, label %47
i32 12, label %50
i32 13, label %54
i32 14, label %57
i32 15, label %60
i32 99, label %62
]
11: ; preds = %4
%12 = load i32, i32* %6
%13 = call i32 (i32, ...) bitcast (i32 (...)* @printString to i32 (i32, ...)*)(i32 %12)
br label %105
14: ; preds = %4
%15 = load i32, i32* %6
%16 = call i32 (i32, ...) bitcast (i32 (...)* @readString to i32 (i32, ...)*)(i32 %15)
br label %105
17: ; preds = %4
%18 = load i32, i32* %6
%19 = load i32, i32* %7
%20 = call i32 (i32, i32, ...) bitcast (i32 (...)* @readSector to i32 (i32, i32, ...)*)(i32 %18, i32 %19)
br label %105
21: ; preds = %4
%22 = load i32, i32* %6
%23 = load i32, i32* %7
%24 = load i32, i32* %8
%25 = call i32 (i32, i32, i32, ...) bitcast (i32 (...)* @readFile to i32 (i32, i32, i32, ...)*)(i32 %22, i32 %23, i32 %24)
br label %105
26: ; preds = %4
%27 = load i32, i32* %6
%28 = call i32 (i32, ...) bitcast (i32 (...)* @executeProgram to i32 (i32, ...)*)(i32 %27)
br label %105
29: ; preds = %4
%30 = call i32 (...) @terminate()
br label %105
31: ; preds = %4
%32 = load i32, i32* %6
%33 = load i32, i32* %7
%34 = call i32 (i32, i32, ...) bitcast (i32 (...)* @writeSector to i32 (i32, i32, ...)*)(i32 %32, i32 %33)
br label %105
35: ; preds = %4
%36 = load i32, i32* %6
%37 = call i32 (i32, ...) bitcast (i32 (...)* @deleteFile to i32 (i32, ...)*)(i32 %36)
br label %105
38: ; preds = %4
%39 = load i32, i32* %6
%40 = load i32, i32* %7
%41 = load i32, i32* %8
%42 = call i32 (i32, i32, i32, ...) bitcast (i32 (...)* @writeFile to i32 (i32, i32, i32, ...)*)(i32 %39, i32 %40, i32 %41)
br label %105
43: ; preds = %4
%44 = call i32 (...) @listFile()
br label %105
45: ; preds = %4
%46 = call i32 (...) @clearScreen()
br label %105
47: ; preds = %4
%48 = load i32, i32* %6
%49 = call i32 (i32, ...) bitcast (i32 (...)* @killProcess to i32 (i32, ...)*)(i32 %48)
br label %105
50: ; preds = %4
%51 = load i32, i32* %6
%52 = load i32, i32* %7
%53 = call i32 (i32, i32, ...) bitcast (i32 (...)* @changeFGcolor to i32 (i32, i32, ...)*)(i32 %51, i32 %52)
br label %105
54: ; preds = %4
%55 = load i32, i32* %6
%56 = call i32 (i32, ...) bitcast (i32 (...)* @changeBGcolor to i32 (i32, ...)*)(i32 %55)
br label %105
57: ; preds = %4
%58 = load i32, i32* %6
%59 = call i32 (i32, ...) bitcast (i32 (...)* @blockExecuteProgram to i32 (i32, ...)*)(i32 %58)
br label %105
60: ; preds = %4
%61 = call i32 (...) @displayHelpMessage()
br label %62
62: ; preds = %4, %60
%63 = load i32, i32* %6
%64 = load i32, i32* %7
%65 = call i32 (i32, i32, ...) bitcast (i32 (...)* @countFileSectors to i32 (i32, i32, ...)*)(i32 %63, i32 %64)
br label %105
66: ; preds = %4
%67 = getelementptr inbounds [36 x i8], [36 x i8]* %9, i64 0, i64 0
store i8 69, i8* %67
%68 = getelementptr inbounds [36 x i8], [36 x i8]* %9, i64 0, i64 1
store i8 114, i8* %68
%69 = getelementptr inbounds [36 x i8], [36 x i8]* %9, i64 0, i64 2
store i8 114, i8* %69
%70 = getelementptr inbounds [36 x i8], [36 x i8]* %9, i64 0, i64 3
store i8 111, i8* %70
%71 = getelementptr inbounds [36 x i8], [36 x i8]* %9, i64 0, i64 4
store i8 114, i8* %71
%72 = getelementptr inbounds [36 x i8], [36 x i8]* %9, i64 0, i64 5
store i8 58, i8* %72
%73 = getelementptr inbounds [36 x i8], [36 x i8]* %9, i64 0, i64 6
store i8 32, i8* %73
%74 = getelementptr inbounds [36 x i8], [36 x i8]* %9, i64 0, i64 7
store i8 119, i8* %74
%75 = getelementptr inbounds [36 x i8], [36 x i8]* %9, i64 0, i64 8
store i8 104, i8* %75
%76 = getelementptr inbounds [36 x i8], [36 x i8]* %9, i64 0, i64 9
store i8 97, i8* %76
%77 = getelementptr inbounds [36 x i8], [36 x i8]* %9, i64 0, i64 10
store i8 116, i8* %77
%78 = getelementptr inbounds [36 x i8], [36 x i8]* %9, i64 0, i64 11
store i8 32, i8* %78
%79 = getelementptr inbounds [36 x i8], [36 x i8]* %9, i64 0, i64 12
store i8 100, i8* %79
%80 = getelementptr inbounds [36 x i8], [36 x i8]* %9, i64 0, i64 13
store i8 105, i8* %80
%81 = getelementptr inbounds [36 x i8], [36 x i8]* %9, i64 0, i64 14
store i8 100, i8* %81
%82 = getelementptr inbounds [36 x i8], [36 x i8]* %9, i64 0, i64 15
store i8 32, i8* %82
%83 = getelementptr inbounds [36 x i8], [36 x i8]* %9, i64 0, i64 16
store i8 121, i8* %83
%84 = getelementptr inbounds [36 x i8], [36 x i8]* %9, i64 0, i64 17
store i8 111, i8* %84
%85 = getelementptr inbounds [36 x i8], [36 x i8]* %9, i64 0, i64 18
store i8 117, i8* %85
%86 = getelementptr inbounds [36 x i8], [36 x i8]* %9, i64 0, i64 19
store i8 32, i8* %86
%87 = getelementptr inbounds [36 x i8], [36 x i8]* %9, i64 0, i64 20
store i8 99, i8* %87
%88 = getelementptr inbounds [36 x i8], [36 x i8]* %9, i64 0, i64 21
store i8 97, i8* %88
%89 = getelementptr inbounds [36 x i8], [36 x i8]* %9, i64 0, i64 22
store i8 108, i8* %89
%90 = getelementptr inbounds [36 x i8], [36 x i8]* %9, i64 0, i64 23
store i8 108, i8* %90
%91 = getelementptr inbounds [36 x i8], [36 x i8]* %9, i64 0, i64 24
store i8 32, i8* %91
%92 = getelementptr inbounds [36 x i8], [36 x i8]* %9, i64 0, i64 25
store i8 105, i8* %92
%93 = getelementptr inbounds [36 x i8], [36 x i8]* %9, i64 0, i64 26
store i8 116, i8* %93
%94 = getelementptr inbounds [36 x i8], [36 x i8]* %9, i64 0, i64 27
store i8 32, i8* %94
%95 = getelementptr inbounds [36 x i8], [36 x i8]* %9, i64 0, i64 28
store i8 119, i8* %95
%96 = getelementptr inbounds [36 x i8], [36 x i8]* %9, i64 0, i64 29
store i8 105, i8* %96
%97 = getelementptr inbounds [36 x i8], [36 x i8]* %9, i64 0, i64 30
store i8 116, i8* %97
%98 = getelementptr inbounds [36 x i8], [36 x i8]* %9, i64 0, i64 31
store i8 104, i8* %98
%99 = getelementptr inbounds [36 x i8], [36 x i8]* %9, i64 0, i64 32
store i8 63, i8* %99
%100 = getelementptr inbounds [36 x i8], [36 x i8]* %9, i64 0, i64 33
store i8 13, i8* %100
%101 = getelementptr inbounds [36 x i8], [36 x i8]* %9, i64 0, i64 34
store i8 10, i8* %101
%102 = getelementptr inbounds [36 x i8], [36 x i8]* %9, i64 0, i64 35
store i8 0, i8* %102
%103 = getelementptr inbounds [36 x i8], [36 x i8]* %9, i64 0, i64 0
%104 = call i32 (i8*, ...) bitcast (i32 (...)* @printString to i32 (i8*, ...)*)(i8* %103)
br label %105
105: ; preds = %66, %62, %57, %54, %50, %47, %45, %43, %38, %35, %31, %29, %26, %21, %17, %14, %11
ret void
}

LLVM IR (-O2):
define void @handleInterrupt21(i32 %0, i32 %1, i32 %2, i32 %3) {
%5 = alloca [36 x i8]
%6 = getelementptr inbounds [36 x i8], [36 x i8]* %5, i64 0, i64 0
switch i32 %0, label %41 [
i32 0, label %7
i32 1, label %9
i32 2, label %11
i32 3, label %13
i32 4, label %15
i32 5, label %17
i32 6, label %19
i32 7, label %21
i32 8, label %23
i32 9, label %25
i32 10, label %27
i32 11, label %29
i32 12, label %31
i32 13, label %33
i32 14, label %35
i32 15, label %37
i32 99, label %39
]
7: ; preds = %4
%8 = tail call i32 (i32, ...) bitcast (i32 (...)* @printString to i32 (i32, ...)*)(i32 %1)
br label %50
9: ; preds = %4
%10 = tail call i32 (i32, ...) bitcast (i32 (...)* @readString to i32 (i32, ...)*)(i32 %1)
br label %50
11: ; preds = %4
%12 = tail call i32 (i32, i32, ...) bitcast (i32 (...)* @readSector to i32 (i32, i32, ...)*)(i32 %1, i32 %2)
br label %50
13: ; preds = %4
%14 = tail call i32 (i32, i32, i32, ...) bitcast (i32 (...)* @readFile to i32 (i32, i32, i32, ...)*)(i32 %1, i32 %2, i32 %3)
br label %50
15: ; preds = %4
%16 = tail call i32 (i32, ...) bitcast (i32 (...)* @executeProgram to i32 (i32, ...)*)(i32 %1)
br label %50
17: ; preds = %4
%18 = tail call i32 (...) @terminate()
br label %50
19: ; preds = %4
%20 = tail call i32 (i32, i32, ...) bitcast (i32 (...)* @writeSector to i32 (i32, i32, ...)*)(i32 %1, i32 %2)
br label %50
21: ; preds = %4
%22 = tail call i32 (i32, ...) bitcast (i32 (...)* @deleteFile to i32 (i32, ...)*)(i32 %1)
br label %50
23: ; preds = %4
%24 = tail call i32 (i32, i32, i32, ...) bitcast (i32 (...)* @writeFile to i32 (i32, i32, i32, ...)*)(i32 %1, i32 %2, i32 %3)
br label %50
25: ; preds = %4
%26 = tail call i32 (...) @listFile()
br label %50
27: ; preds = %4
%28 = tail call i32 (...) @clearScreen()
br label %50
29: ; preds = %4
%30 = tail call i32 (i32, ...) bitcast (i32 (...)* @killProcess to i32 (i32, ...)*)(i32 %1)
br label %50
31: ; preds = %4
%32 = tail call i32 (i32, i32, ...) bitcast (i32 (...)* @changeFGcolor to i32 (i32, i32, ...)*)(i32 %1, i32 %2)
br label %50
33: ; preds = %4
%34 = tail call i32 (i32, ...) bitcast (i32 (...)* @changeBGcolor to i32 (i32, ...)*)(i32 %1)
br label %50
35: ; preds = %4
%36 = tail call i32 (i32, ...) bitcast (i32 (...)* @blockExecuteProgram to i32 (i32, ...)*)(i32 %1)
br label %50
37: ; preds = %4
%38 = tail call i32 (...) @displayHelpMessage()
br label %39
39: ; preds = %4, %37
%40 = tail call i32 (i32, i32, ...) bitcast (i32 (...)* @countFileSectors to i32 (i32, i32, ...)*)(i32 %1, i32 %2)
br label %50
41: ; preds = %4
%42 = bitcast [36 x i8]* %5 to <16 x i8>*
store <16 x i8> <i8 69, i8 114, i8 114, i8 111, i8 114, i8 58, i8 32, i8 119, i8 104, i8 97, i8 116, i8 32, i8 100, i8 105, i8 100, i8 32>, <16 x i8>* %42
%43 = getelementptr inbounds [36 x i8], [36 x i8]* %5, i64 0, i64 16
%44 = bitcast i8* %43 to <16 x i8>*
store <16 x i8> <i8 121, i8 111, i8 117, i8 32, i8 99, i8 97, i8 108, i8 108, i8 32, i8 105, i8 116, i8 32, i8 119, i8 105, i8 116, i8 104>, <16 x i8>* %44
%45 = getelementptr inbounds [36 x i8], [36 x i8]* %5, i64 0, i64 32
store i8 63, i8* %45
%46 = getelementptr inbounds [36 x i8], [36 x i8]* %5, i64 0, i64 33
store i8 13, i8* %46
%47 = getelementptr inbounds [36 x i8], [36 x i8]* %5, i64 0, i64 34
store i8 10, i8* %47
%48 = getelementptr inbounds [36 x i8], [36 x i8]* %5, i64 0, i64 35
store i8 0, i8* %48
%49 = call i32 (i8*, ...) bitcast (i32 (...)* @printString to i32 (i8*, ...)*)(i8* %6)
br label %50
50: ; preds = %41, %39, %35, %33, %31, %29, %27, %25, %23, %21, %19, %17, %15, %13, %11, %9, %7
ret void
}