char original_commands(com_val)
char com_val;
{
  int dir_val;
  switch (com_val) {
  case ('K' & 0x1F):
    com_val = 'Q';
    break;
  case ('J' & 0x1F):
  case ('M' & 0x1F):
    com_val = '+';
    break;
  case ('P' & 0x1F):
  case ('W' & 0x1F):
  case ('X' & 0x1F):
  case ('V' & 0x1F):
  case ' ':
  case '!':
  case '$':
    break;
  case '.':
    if (get_dir((char *)0, &dir_val))
      switch (dir_val) {
      case 1:
        com_val = 'B';
        break;
      case 2:
        com_val = 'J';
        break;
      case 3:
        com_val = 'N';
        break;
      case 4:
        com_val = 'H';
        break;
      case 6:
        com_val = 'L';
        break;
      case 7:
        com_val = 'Y';
        break;
      case 8:
        com_val = 'K';
        break;
      case 9:
        com_val = 'U';
        break;
      default:
        com_val = ' ';
        break;
      }
    else
      com_val = ' ';
    break;
  case '/':
  case '<':
  case '>':
  case '-':
  case '=':
  case '{':
  case '?':
  case 'A':
    break;
  case '1':
    com_val = 'b';
    break;
  case '2':
    com_val = 'j';
    break;
  case '3':
    com_val = 'n';
    break;
  case '4':
    com_val = 'h';
    break;
  case '5':
    com_val = '.';
    break;
  case '6':
    com_val = 'l';
    break;
  case '7':
    com_val = 'y';
    break;
  case '8':
    com_val = 'k';
    break;
  case '9':
    com_val = 'u';
    break;
  case 'B':
    com_val = 'f';
    break;
  case 'C':
  case 'D':
  case 'E':
  case 'F':
  case 'G':
    break;
  case 'L':
    com_val = 'W';
    break;
  case 'M':
    break;
  case 'R':
    break;
  case 'S':
    com_val = '#';
    break;
  case 'T':
    if (get_dir((char *)0, &dir_val))
      switch (dir_val) {
      case 1:
        com_val = ('B' & 0x1F);
        break;
      case 2:
        com_val = ('J' & 0x1F);
        break;
      case 3:
        com_val = ('N' & 0x1F);
        break;
      case 4:
        com_val = ('H' & 0x1F);
        break;
      case 6:
        com_val = ('L' & 0x1F);
        break;
      case 7:
        com_val = ('Y' & 0x1F);
        break;
      case 8:
        com_val = ('K' & 0x1F);
        break;
      case 9:
        com_val = ('U' & 0x1F);
        break;
      default:
        com_val = ' ';
        break;
      }
    else
      com_val = ' ';
    break;
  case 'V':
    break;
  case 'a':
    com_val = 'z';
    break;
  case 'b':
    com_val = 'P';
    break;
  case 'c':
  case 'd':
  case 'e':
    break;
  case 'f':
    com_val = 't';
    break;
  case 'h':
    com_val = '?';
    break;
  case 'i':
    break;
  case 'j':
    com_val = 'S';
    break;
  case 'l':
    com_val = 'x';
    break;
  case 'm':
  case 'o':
  case 'p':
  case 'q':
  case 'r':
  case 's':
    break;
  case 't':
    com_val = 'T';
    break;
  case 'u':
    com_val = 'Z';
    break;
  case 'v':
  case 'w':
    break;
  case 'x':
    com_val = 'X';
    break;
  case ('A' & 0x1F):
    break;
  case ('B' & 0x1F):
    com_val = ('O' & 0x1F);
    break;
  case ('D' & 0x1F):
    break;
  case ('H' & 0x1F):
    com_val = '\\';
    break;
  case ('I' & 0x1F):
    break;
  case ('L' & 0x1F):
    com_val = '*';
    break;
  case ':':
  case ('T' & 0x1F):
  case ('E' & 0x1F):
  case ('F' & 0x1F):
  case ('G' & 0x1F):
  case '@':
  case '+':
    break;
  case ('U' & 0x1F):
    com_val = '&';
    break;
  default:
    com_val = '~';
    break;
  }
  return com_val;
}


x86 assembly (clang, -O0):
<original_commands>:
push   %rbp
mov    %rsp,%rbp
sub    $0x20,%rsp
mov    %dil,%al
mov    %al,-0x1(%rbp)
movsbl -0x1(%rbp),%eax
add    $0xffffffff,%eax
mov    %eax,%ecx
mov    %rcx,-0x10(%rbp)
sub    $0x7a,%eax
ja     13b7 <original_commands+0x2a7>
mov    -0x10(%rbp),%rax
lea    0xec1(%rip),%rcx
movslq (%rcx,%rax,4),%rax
add    %rcx,%rax
jmp    *%rax
movb   $0x51,-0x1(%rbp)
jmp    13bb <original_commands+0x2ab>
movb   $0x2b,-0x1(%rbp)
jmp    13bb <original_commands+0x2ab>
jmp    13bb <original_commands+0x2ab>
xor    %eax,%eax
mov    %eax,%edi
lea    -0x8(%rbp),%rsi
mov    $0x0,%al
call   1030 <get_dir@plt>
cmp    $0x0,%eax
je     11f1 <original_commands+0xe1>
mov    -0x8(%rbp),%eax
add    $0xffffffff,%eax
mov    %eax,%ecx
mov    %rcx,-0x18(%rbp)
sub    $0x8,%eax
ja     11e8 <original_commands+0xd8>
mov    -0x18(%rbp),%rax
lea    0x1079(%rip),%rcx
movslq (%rcx,%rax,4),%rax
add    %rcx,%rax
jmp    *%rax
movb   $0x42,-0x1(%rbp)
jmp    11ec <original_commands+0xdc>
movb   $0x4a,-0x1(%rbp)
jmp    11ec <original_commands+0xdc>
movb   $0x4e,-0x1(%rbp)
jmp    11ec <original_commands+0xdc>
movb   $0x48,-0x1(%rbp)
jmp    11ec <original_commands+0xdc>
movb   $0x4c,-0x1(%rbp)
jmp    11ec <original_commands+0xdc>
movb   $0x59,-0x1(%rbp)
jmp    11ec <original_commands+0xdc>
movb   $0x4b,-0x1(%rbp)
jmp    11ec <original_commands+0xdc>
movb   $0x55,-0x1(%rbp)
jmp    11ec <original_commands+0xdc>
movb   $0x20,-0x1(%rbp)
jmp    11f5 <original_commands+0xe5>
movb   $0x20,-0x1(%rbp)
jmp    13bb <original_commands+0x2ab>
jmp    13bb <original_commands+0x2ab>
movb   $0x62,-0x1(%rbp)
jmp    13bb <original_commands+0x2ab>
movb   $0x6a,-0x1(%rbp)
jmp    13bb <original_commands+0x2ab>
movb   $0x6e,-0x1(%rbp)
jmp    13bb <original_commands+0x2ab>
movb   $0x68,-0x1(%rbp)
jmp    13bb <original_commands+0x2ab>
movb   $0x2e,-0x1(%rbp)
jmp    13bb <original_commands+0x2ab>
movb   $0x6c,-0x1(%rbp)
jmp    13bb <original_commands+0x2ab>
movb   $0x79,-0x1(%rbp)
jmp    13bb <original_commands+0x2ab>
movb   $0x6b,-0x1(%rbp)
jmp    13bb <original_commands+0x2ab>
movb   $0x75,-0x1(%rbp)
jmp    13bb <original_commands+0x2ab>
movb   $0x66,-0x1(%rbp)
jmp    13bb <original_commands+0x2ab>
jmp    13bb <original_commands+0x2ab>
movb   $0x57,-0x1(%rbp)
jmp    13bb <original_commands+0x2ab>
jmp    13bb <original_commands+0x2ab>
jmp    13bb <original_commands+0x2ab>
movb   $0x23,-0x1(%rbp)
jmp    13bb <original_commands+0x2ab>
xor    %eax,%eax
mov    %eax,%edi
lea    -0x8(%rbp),%rsi
mov    $0x0,%al
call   1030 <get_dir@plt>
cmp    $0x0,%eax
je     130c <original_commands+0x1fc>
mov    -0x8(%rbp),%eax
add    $0xffffffff,%eax
mov    %eax,%ecx
mov    %rcx,-0x20(%rbp)
sub    $0x8,%eax
ja     1303 <original_commands+0x1f3>
mov    -0x20(%rbp),%rax
lea    0xf3a(%rip),%rcx
movslq (%rcx,%rax,4),%rax
add    %rcx,%rax
jmp    *%rax
movb   $0x2,-0x1(%rbp)
jmp    1307 <original_commands+0x1f7>
movb   $0xa,-0x1(%rbp)
jmp    1307 <original_commands+0x1f7>
movb   $0xe,-0x1(%rbp)
jmp    1307 <original_commands+0x1f7>
movb   $0x8,-0x1(%rbp)
jmp    1307 <original_commands+0x1f7>
movb   $0xc,-0x1(%rbp)
jmp    1307 <original_commands+0x1f7>
movb   $0x19,-0x1(%rbp)
jmp    1307 <original_commands+0x1f7>
movb   $0xb,-0x1(%rbp)
jmp    1307 <original_commands+0x1f7>
movb   $0x15,-0x1(%rbp)
jmp    1307 <original_commands+0x1f7>
movb   $0x20,-0x1(%rbp)
jmp    1310 <original_commands+0x200>
movb   $0x20,-0x1(%rbp)
jmp    13bb <original_commands+0x2ab>
jmp    13bb <original_commands+0x2ab>
movb   $0x7a,-0x1(%rbp)
jmp    13bb <original_commands+0x2ab>
movb   $0x50,-0x1(%rbp)
jmp    13bb <original_commands+0x2ab>
jmp    13bb <original_commands+0x2ab>
movb   $0x74,-0x1(%rbp)
jmp    13bb <original_commands+0x2ab>
movb   $0x3f,-0x1(%rbp)
jmp    13bb <original_commands+0x2ab>
jmp    13bb <original_commands+0x2ab>
movb   $0x53,-0x1(%rbp)
jmp    13bb <original_commands+0x2ab>
movb   $0x78,-0x1(%rbp)
jmp    13bb <original_commands+0x2ab>
jmp    13bb <original_commands+0x2ab>
movb   $0x54,-0x1(%rbp)
jmp    13bb <original_commands+0x2ab>
movb   $0x5a,-0x1(%rbp)
jmp    13bb <original_commands+0x2ab>
jmp    13bb <original_commands+0x2ab>
movb   $0x58,-0x1(%rbp)
jmp    13bb <original_commands+0x2ab>
jmp    13bb <original_commands+0x2ab>
movb   $0xf,-0x1(%rbp)
jmp    13bb <original_commands+0x2ab>
jmp    13bb <original_commands+0x2ab>
movb   $0x5c,-0x1(%rbp)
jmp    13bb <original_commands+0x2ab>
jmp    13bb <original_commands+0x2ab>
movb   $0x2a,-0x1(%rbp)
jmp    13bb <original_commands+0x2ab>
jmp    13bb <original_commands+0x2ab>
movb   $0x26,-0x1(%rbp)
jmp    13bb <original_commands+0x2ab>
movb   $0x7e,-0x1(%rbp)
movsbl -0x1(%rbp),%eax
add    $0x20,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<original_commands>:
push   %rax
mov    %edi,%eax
movsbl %al,%ecx
add    $0xffffffff,%ecx
cmp    $0x7a,%ecx
ja     1138 <original_commands+0x28>
lea    0xedb(%rip),%rdx
movslq (%rdx,%rcx,4),%rcx
add    %rdx,%rcx
jmp    *%rcx
pop    %rcx
ret
mov    $0x2b,%al
pop    %rcx
ret
mov    $0xf,%al
pop    %rcx
ret
mov    $0x7e,%al
pop    %rcx
ret
mov    $0x5c,%al
pop    %rcx
ret
mov    $0x51,%al
pop    %rcx
ret
mov    $0x2a,%al
pop    %rcx
ret
mov    $0x26,%al
pop    %rcx
ret
lea    0x4(%rsp),%rsi
xor    %edi,%edi
xor    %eax,%eax
call   1030 <get_dir@plt>
mov    %eax,%ecx
mov    $0x20,%al
test   %ecx,%ecx
je     112e <original_commands+0x1e>
mov    0x4(%rsp),%ecx
add    $0xffffffff,%ecx
cmp    $0x9,%ecx
jae    112e <original_commands+0x1e>
movslq %ecx,%rax
lea    0x1074(%rip),%rcx
jmp    11de <original_commands+0xce>
mov    $0x62,%al
pop    %rcx
ret
mov    $0x6a,%al
pop    %rcx
ret
mov    $0x6e,%al
pop    %rcx
ret
mov    $0x68,%al
pop    %rcx
ret
mov    $0x2e,%al
pop    %rcx
ret
mov    $0x6c,%al
pop    %rcx
ret
mov    $0x79,%al
pop    %rcx
ret
mov    $0x6b,%al
pop    %rcx
ret
mov    $0x75,%al
pop    %rcx
ret
mov    $0x66,%al
pop    %rcx
ret
mov    $0x57,%al
pop    %rcx
ret
mov    $0x23,%al
pop    %rcx
ret
lea    0x4(%rsp),%rsi
xor    %edi,%edi
xor    %eax,%eax
call   1030 <get_dir@plt>
mov    %eax,%ecx
mov    $0x20,%al
test   %ecx,%ecx
je     112e <original_commands+0x1e>
mov    0x4(%rsp),%ecx
add    $0xffffffff,%ecx
cmp    $0x9,%ecx
jae    112e <original_commands+0x1e>
movslq %ecx,%rax
lea    0x1017(%rip),%rcx
mov    (%rax,%rcx,1),%al
pop    %rcx
ret
mov    $0x7a,%al
pop    %rcx
ret
mov    $0x50,%al
pop    %rcx
ret
mov    $0x74,%al
pop    %rcx
ret
mov    $0x3f,%al
pop    %rcx
ret
mov    $0x53,%al
pop    %rcx
ret
mov    $0x78,%al
pop    %rcx
ret
mov    $0x54,%al
pop    %rcx
ret
mov    $0x5a,%al
pop    %rcx
ret
mov    $0x58,%al
pop    %rcx
ret

LLVM IR (-O0):
define signext i8 @original_commands(i32 %0) {
%2 = alloca i8
%3 = alloca i32
%4 = trunc i32 %0 to i8
store i8 %4, i8* %2
%5 = load i8, i8* %2
%6 = sext i8 %5 to i32
switch i32 %6, label %82 [
i32 11, label %7
i32 10, label %8
i32 13, label %8
i32 16, label %9
i32 23, label %9
i32 24, label %9
i32 22, label %9
i32 32, label %9
i32 33, label %9
i32 36, label %9
i32 46, label %10
i32 47, label %27
i32 60, label %27
i32 62, label %27
i32 45, label %27
i32 61, label %27
i32 123, label %27
i32 63, label %27
i32 65, label %27
i32 49, label %28
i32 50, label %29
i32 51, label %30
i32 52, label %31
i32 53, label %32
i32 54, label %33
i32 55, label %34
i32 56, label %35
i32 57, label %36
i32 66, label %37
i32 67, label %38
i32 68, label %38
i32 69, label %38
i32 70, label %38
i32 71, label %38
i32 76, label %39
i32 77, label %40
i32 82, label %41
i32 83, label %42
i32 84, label %43
i32 86, label %60
i32 97, label %61
i32 98, label %62
i32 99, label %63
i32 100, label %63
i32 101, label %63
i32 102, label %64
i32 104, label %65
i32 105, label %66
i32 106, label %67
i32 108, label %68
i32 109, label %69
i32 111, label %69
i32 112, label %69
i32 113, label %69
i32 114, label %69
i32 115, label %69
i32 116, label %70
i32 117, label %71
i32 118, label %72
i32 119, label %72
i32 120, label %73
i32 1, label %74
i32 2, label %75
i32 4, label %76
i32 8, label %77
i32 9, label %78
i32 12, label %79
i32 58, label %80
i32 20, label %80
i32 5, label %80
i32 6, label %80
i32 7, label %80
i32 64, label %80
i32 43, label %80
i32 21, label %81
]
7: ; preds = %1
store i8 81, i8* %2
br label %83
8: ; preds = %1, %1
store i8 43, i8* %2
br label %83
9: ; preds = %1, %1, %1, %1, %1, %1, %1
br label %83
10: ; preds = %1
%11 = call i32 (i8*, i32*, ...) bitcast (i32 (...)* @get_dir to i32 (i8*, i32*, ...)*)(i8* null, i32* %3)
%12 = icmp ne i32 %11, 0
br i1 %12, label %13, label %25
13: ; preds = %10
%14 = load i32, i32* %3
switch i32 %14, label %23 [
i32 1, label %15
i32 2, label %16
i32 3, label %17
i32 4, label %18
i32 6, label %19
i32 7, label %20
i32 8, label %21
i32 9, label %22
]
15: ; preds = %13
store i8 66, i8* %2
br label %24
16: ; preds = %13
store i8 74, i8* %2
br label %24
17: ; preds = %13
store i8 78, i8* %2
br label %24
18: ; preds = %13
store i8 72, i8* %2
br label %24
19: ; preds = %13
store i8 76, i8* %2
br label %24
20: ; preds = %13
store i8 89, i8* %2
br label %24
21: ; preds = %13
store i8 75, i8* %2
br label %24
22: ; preds = %13
store i8 85, i8* %2
br label %24
23: ; preds = %13
store i8 32, i8* %2
br label %24
24: ; preds = %23, %22, %21, %20, %19, %18, %17, %16, %15
br label %26
25: ; preds = %10
store i8 32, i8* %2
br label %26
26: ; preds = %25, %24
br label %83
27: ; preds = %1, %1, %1, %1, %1, %1, %1, %1
br label %83
28: ; preds = %1
store i8 98, i8* %2
br label %83
29: ; preds = %1
store i8 106, i8* %2
br label %83
30: ; preds = %1
store i8 110, i8* %2
br label %83
31: ; preds = %1
store i8 104, i8* %2
br label %83
32: ; preds = %1
store i8 46, i8* %2
br label %83
33: ; preds = %1
store i8 108, i8* %2
br label %83
34: ; preds = %1
store i8 121, i8* %2
br label %83
35: ; preds = %1
store i8 107, i8* %2
br label %83
36: ; preds = %1
store i8 117, i8* %2
br label %83
37: ; preds = %1
store i8 102, i8* %2
br label %83
38: ; preds = %1, %1, %1, %1, %1
br label %83
39: ; preds = %1
store i8 87, i8* %2
br label %83
40: ; preds = %1
br label %83
41: ; preds = %1
br label %83
42: ; preds = %1
store i8 35, i8* %2
br label %83
43: ; preds = %1
%44 = call i32 (i8*, i32*, ...) bitcast (i32 (...)* @get_dir to i32 (i8*, i32*, ...)*)(i8* null, i32* %3)
%45 = icmp ne i32 %44, 0
br i1 %45, label %46, label %58
46: ; preds = %43
%47 = load i32, i32* %3
switch i32 %47, label %56 [
i32 1, label %48
i32 2, label %49
i32 3, label %50
i32 4, label %51
i32 6, label %52
i32 7, label %53
i32 8, label %54
i32 9, label %55
]
48: ; preds = %46
store i8 2, i8* %2
br label %57
49: ; preds = %46
store i8 10, i8* %2
br label %57
50: ; preds = %46
store i8 14, i8* %2
br label %57
51: ; preds = %46
store i8 8, i8* %2
br label %57
52: ; preds = %46
store i8 12, i8* %2
br label %57
53: ; preds = %46
store i8 25, i8* %2
br label %57
54: ; preds = %46
store i8 11, i8* %2
br label %57
55: ; preds = %46
store i8 21, i8* %2
br label %57
56: ; preds = %46
store i8 32, i8* %2
br label %57
57: ; preds = %56, %55, %54, %53, %52, %51, %50, %49, %48
br label %59
58: ; preds = %43
store i8 32, i8* %2
br label %59
59: ; preds = %58, %57
br label %83
60: ; preds = %1
br label %83
61: ; preds = %1
store i8 122, i8* %2
br label %83
62: ; preds = %1
store i8 80, i8* %2
br label %83
63: ; preds = %1, %1, %1
br label %83
64: ; preds = %1
store i8 116, i8* %2
br label %83
65: ; preds = %1
store i8 63, i8* %2
br label %83
66: ; preds = %1
br label %83
67: ; preds = %1
store i8 83, i8* %2
br label %83
68: ; preds = %1
store i8 120, i8* %2
br label %83
69: ; preds = %1, %1, %1, %1, %1, %1
br label %83
70: ; preds = %1
store i8 84, i8* %2
br label %83
71: ; preds = %1
store i8 90, i8* %2
br label %83
72: ; preds = %1, %1
br label %83
73: ; preds = %1
store i8 88, i8* %2
br label %83
74: ; preds = %1
br label %83
75: ; preds = %1
store i8 15, i8* %2
br label %83
76: ; preds = %1
br label %83
77: ; preds = %1
store i8 92, i8* %2
br label %83
78: ; preds = %1
br label %83
79: ; preds = %1
store i8 42, i8* %2
br label %83
80: ; preds = %1, %1, %1, %1, %1, %1, %1
br label %83
81: ; preds = %1
store i8 38, i8* %2
br label %83
82: ; preds = %1
store i8 126, i8* %2
br label %83
83: ; preds = %82, %81, %80, %79, %78, %77, %76, %75, %74, %73, %72, %71, %70, %69, %68, %67, %66, %65, %64, %63, %62, %61, %60, %59, %42, %41, %40, %39, %38, %37, %36, %35, %34, %33, %32, %31, %30, %29, %28, %27, %26, %9, %8, %7
%84 = load i8, i8* %2
ret i8 %84
}

LLVM IR (-O2):
@switch.table.original_commands = [9 x i8] c"BJNH LYKU"
@switch.table.original_commands.1 = [9 x i8] c"\02\0A\0E\08 \0C\19\0B\15"
define signext i8 @original_commands(i32 %0) {
%2 = alloca i32
%3 = trunc i32 %0 to i8
%4 = bitcast i32* %2 to i8*
%5 = shl i32 %0, 24
%6 = ashr exact i32 %5, 24
switch i32 %6, label %48 [
i32 11, label %7
i32 10, label %8
i32 13, label %8
i32 16, label %57
i32 23, label %57
i32 24, label %57
i32 22, label %57
i32 32, label %57
i32 33, label %57
i32 36, label %57
i32 46, label %9
i32 47, label %57
i32 60, label %57
i32 62, label %57
i32 45, label %57
i32 61, label %57
i32 123, label %57
i32 63, label %57
i32 65, label %57
i32 49, label %16
i32 50, label %17
i32 51, label %18
i32 52, label %19
i32 53, label %20
i32 54, label %21
i32 55, label %22
i32 56, label %23
i32 57, label %24
i32 66, label %25
i32 67, label %57
i32 68, label %57
i32 69, label %57
i32 70, label %57
i32 71, label %57
i32 76, label %26
i32 77, label %57
i32 82, label %57
i32 83, label %27
i32 84, label %28
i32 86, label %57
i32 97, label %35
i32 98, label %36
i32 99, label %57
i32 100, label %57
i32 101, label %57
i32 102, label %37
i32 104, label %38
i32 105, label %57
i32 106, label %39
i32 108, label %40
i32 109, label %57
i32 111, label %57
i32 112, label %57
i32 113, label %57
i32 114, label %57
i32 115, label %57
i32 116, label %41
i32 117, label %42
i32 118, label %57
i32 119, label %57
i32 120, label %43
i32 1, label %57
i32 2, label %44
i32 4, label %57
i32 8, label %45
i32 9, label %57
i32 12, label %46
i32 58, label %57
i32 20, label %57
i32 5, label %57
i32 6, label %57
i32 7, label %57
i32 64, label %57
i32 43, label %57
i32 21, label %47
]
7: ; preds = %1
br label %57
8: ; preds = %1, %1
br label %57
9: ; preds = %1
%10 = call i32 (i8*, i32*, ...) bitcast (i32 (...)* @get_dir to i32 (i8*, i32*, ...)*)(i8* null, i32* %2)
%11 = icmp eq i32 %10, 0
br i1 %11, label %57, label %12
12: ; preds = %9
%13 = load i32, i32* %2
%14 = add i32 %13, -1
%15 = icmp ult i32 %14, 9
br i1 %15, label %49, label %57
16: ; preds = %1
br label %57
17: ; preds = %1
br label %57
18: ; preds = %1
br label %57
19: ; preds = %1
br label %57
20: ; preds = %1
br label %57
21: ; preds = %1
br label %57
22: ; preds = %1
br label %57
23: ; preds = %1
br label %57
24: ; preds = %1
br label %57
25: ; preds = %1
br label %57
26: ; preds = %1
br label %57
27: ; preds = %1
br label %57
28: ; preds = %1
%29 = call i32 (i8*, i32*, ...) bitcast (i32 (...)* @get_dir to i32 (i8*, i32*, ...)*)(i8* null, i32* %2)
%30 = icmp eq i32 %29, 0
br i1 %30, label %57, label %31
31: ; preds = %28
%32 = load i32, i32* %2
%33 = add i32 %32, -1
%34 = icmp ult i32 %33, 9
br i1 %34, label %53, label %57
35: ; preds = %1
br label %57
36: ; preds = %1
br label %57
37: ; preds = %1
br label %57
38: ; preds = %1
br label %57
39: ; preds = %1
br label %57
40: ; preds = %1
br label %57
41: ; preds = %1
br label %57
42: ; preds = %1
br label %57
43: ; preds = %1
br label %57
44: ; preds = %1
br label %57
45: ; preds = %1
br label %57
46: ; preds = %1
br label %57
47: ; preds = %1
br label %57
48: ; preds = %1
br label %57
49: ; preds = %12
%50 = sext i32 %14 to i64
%51 = getelementptr inbounds [9 x i8], [9 x i8]* @switch.table.original_commands, i64 0, i64 %50
%52 = load i8, i8* %51
br label %57
53: ; preds = %31
%54 = sext i32 %33 to i64
%55 = getelementptr inbounds [9 x i8], [9 x i8]* @switch.table.original_commands.1, i64 0, i64 %54
%56 = load i8, i8* %55
br label %57
57: ; preds = %31, %53, %12, %49, %28, %9, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %48, %47, %46, %1, %45, %1, %44, %1, %43, %42, %41, %40, %39, %1, %38, %37, %36, %35, %1, %27, %1, %1, %26, %25, %24, %23, %22, %21, %20, %19, %18, %17, %16, %8, %7
%58 = phi i8 [ 126, %48 ], [ 38, %47 ], [ 42, %46 ], [ 92, %45 ], [ 15, %44 ], [ 88, %43 ], [ 90, %42 ], [ 84, %41 ], [ 120, %40 ], [ 83, %39 ], [ 63, %38 ], [ 116, %37 ], [ 80, %36 ], [ 122, %35 ], [ 35, %27 ], [ 87, %26 ], [ 102, %25 ], [ 117, %24 ], [ 107, %23 ], [ 121, %22 ], [ 108, %21 ], [ 46, %20 ], [ 104, %19 ], [ 110, %18 ], [ 106, %17 ], [ 98, %16 ], [ %3, %1 ], [ %3, %1 ], [ %3, %1 ], [ %3, %1 ], [ %3, %1 ], [ %3, %1 ], [ %3, %1 ], [ %3, %1 ], [ %3, %1 ], [ %3, %1 ], [ %3, %1 ], [ %3, %1 ], [ %3, %1 ], [ %3, %1 ], [ %3, %1 ], [ %3, %1 ], [ %3, %1 ], [ %3, %1 ], [ %3, %1 ], [ %3, %1 ], [ %3, %1 ], [ %3, %1 ], [ %3, %1 ], [ %3, %1 ], [ %3, %1 ], [ %3, %1 ], [ %3, %1 ], [ %3, %1 ], [ %3, %1 ], [ %3, %1 ], [ %3, %1 ], [ %3, %1 ], [ %3, %1 ], [ %3, %1 ], [ %3, %1 ], [ %3, %1 ], [ %3, %1 ], [ %3, %1 ], [ %3, %1 ], [ %3, %1 ], [ %3, %1 ], [ %3, %1 ], [ %3, %1 ], [ %3, %1 ], [ %3, %1 ], [ 43, %8 ], [ 81, %7 ], [ 32, %9 ], [ 32, %28 ], [ %52, %49 ], [ 32, %12 ], [ %56, %53 ], [ 32, %31 ]
ret i8 %58
}