#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*/ printf(char *);
void print64(unsigned char a) {
  switch (a) {
  case 11:
    printf("****************************************************************"
           "\e[46m"
           " "
           "\e[45m");
    break;
  case 12:
    printf("**                                                            **"
           "\e[46m"
           " "
           "\e[45m");
    break;
  case 10:
    printf("**********************    "
           "\e[32m"
           ""
           "\e[1m"
           "MAIN    MENU"
           "\e[21m"
           ""
           "\e[39m"
           "    **********************"
           "\e[46m"
           " "
           "\e[45m");
    break;
  case 1:
    printf("**     1. "
           "\e[4m"
           "C"
           "\e[24m"
           "reate a contact "
           "\e[37m"
           ""
           "\e[41m"
           "(Already Exist)"
           "\e[45m"
           ""
           "\e[39m"
           "                    **"
           "\e[46m"
           " "
           "\e[45m");
    break;
  case 2:
    printf("**     2. "
           "\e[4m"
           "L"
           "\e[24m"
           "ist the contact                                    **"
           "\e[46m"
           " "
           "\e[45m");
    break;
  case 3:
    printf("**     3. "
           "\e[4m"
           "A"
           "\e[24m"
           "dd a member to the contacts                        **"
           "\e[46m"
           " "
           "\e[45m");
    break;
  case 4:
    printf("**     4. "
           "\e[4m"
           "D"
           "\e[24m"
           "elete a member form the contact                    **"
           "\e[46m"
           " "
           "\e[45m");
    break;
  case 5:
    printf("**     5. "
           "\e[4m"
           "F"
           "\e[24m"
           "ind and Edit a member from the contacts            **"
           "\e[46m"
           " "
           "\e[45m");
    break;
  case 6:
    printf("**     6: "
           "\e[4m"
           "S"
           "\e[24m"
           "ort your contacts                                  **"
           "\e[46m"
           " "
           "\e[45m");
    break;
  case 7:
    printf("**     7: S"
           "\e[4m"
           "t"
           "\e[24m"
           "atistics                                          **"
           "\e[46m"
           " "
           "\e[45m");
    break;
  case 8:
    printf("**     8: Sa"
           "\e[4m"
           "v"
           "\e[24m"
           "e your contacts                                  **"
           "\e[46m"
           " "
           "\e[45m");
    break;
  case 9:
    printf("**     9: C"
           "\e[4m"
           "h"
           "\e[24m"
           "ange user password                                **"
           "\e[46m"
           " "
           "\e[45m");
    break;
  case 0:
    printf("**     0: "
           "\e[4m"
           "E"
           "\e[24m"
           "xit                                                **"
           "\e[46m"
           " "
           "\e[45m");
    break;
  case 13:
    printf("**    Please select the number or enter "
           "\e[4m"
           "underlined"
           "\e[24m"
           " letter     **"
           "\e[46m"
           " "
           "\e[45m");
    break;
  case 14:
    printf("                                                                ");
    break;
  case 15:
    printf("**     1. Create a contact                                    **"
           "\e[46m"
           " "
           "\e[45m");
    break;
  case 16:
    printf("\e[44m"
           " "
           "\e[46m"
           "                                                                "
           "\e[39m");
    break;
  case 17:
    printf("**                           "
           "\e[33m"
           ""
           "\e[1m"
           "About:"
           "\e[39m"
           ""
           "\e[21m"
           "                           **"
           "\e[46m"
           " "
           "\e[45m");
    break;
  case 18:
    printf("**          "
           "\e[32m"
           "Thanks for using contacts manage system!"
           "\e[39m"
           "          **"
           "\e[46m"
           " "
           "\e[45m");
    break;
  case 19:
    printf("**                "
           "\e[33m"
           "Contacts Manage System V1.00"
           "\e[39m"
           "                **"
           "\e[46m"
           " "
           "\e[45m");
    break;
  case 20:
    printf("**                     "
           "\e[34m"
           "Made by Ruilx Alxa"
           "\e[39m"
           "                     **"
           "\e[46m"
           " "
           "\e[45m");
    break;
  case 21:
    printf("**     "
           "\e[36m"
           "in Xian University of Posts and Telecommunications"
           "\e[39m"
           "     **"
           "\e[46m"
           " "
           "\e[45m");
    break;
  case 22:
    printf("** "
           "\e[37m"
           "Copyright (C) 2010-2013 GT-Soft Studio All Rights Reserved"
           "\e[39m"
           " **"
           "\e[46m"
           " "
           "\e[45m");
    break;
  case 23:
    printf("**          "
           "\e[32m"
           "Please E-mail bugs to: "
           "\e[34m"
           ""
           "\e[4m"
           "zrrabbit@gmail.com"
           "\e[24m"
           ""
           "\e[39m"
           "         **"
           "\e[46m"
           " "
           "\e[45m");
    break;
  case 24:
    printf("**     "
           "\e[32m"
           "Please visit our Homepage: "
           "\e[34m"
           ""
           "\e[4m"
           "http://gtsoft.cwsurf.de"
           "\e[24m"
           ""
           "\e[39m"
           "     **"
           "\e[46m"
           " "
           "\e[45m");
    break;
  case 25:
    printf("**      You haven't save your contact yet, if you still       **"
           "\e[46m"
           " "
           "\e[41m");
    break;
  case 26:
    printf("**         exit, you may lost all your changes, Sure?         **"
           "\e[46m"
           " "
           "\e[41m");
    break;
  case 27:
    printf("**  "
           "\e[33m"
           "1. "
           "\e[4m"
           "S"
           "\e[24m"
           "ave & Exit"
           "\e[39m"
           "  **  "
           "\e[32m"
           "2. "
           "\e[4m"
           "M"
           "\e[24m"
           "ain Menu"
           "\e[39m"
           "  **  "
           "\e[35m"
           "3. "
           "\e[4m"
           "D"
           "\e[24m"
           "iscard Exit"
           "\e[39m"
           "  ** **"
           "\e[46m"
           " "
           "\e[41m");
    break;
  case 28:
    printf("****************************************************************"
           "\e[46m"
           " "
           "\e[41m");
    break;
  default:
    return;
  }
}


x86 assembly (clang, -O0):
<print64>:
push   %rbp
mov    %rsp,%rbp
sub    $0x10,%rsp
mov    %dil,%al
mov    %al,-0x1(%rbp)
movzbl -0x1(%rbp),%eax
mov    %rax,-0x10(%rbp)
sub    $0x1c,%rax
ja     1331 <print64+0x221>
mov    -0x10(%rbp),%rax
lea    0xec5(%rip),%rcx
movslq (%rcx,%rax,4),%rax
add    %rcx,%rax
jmp    *%rax
lea    0xf29(%rip),%rdi
call   1030 <printf@plt>
jmp    1336 <print64+0x226>
lea    0xf64(%rip),%rdi
call   1030 <printf@plt>
jmp    1336 <print64+0x226>
lea    0xf9f(%rip),%rdi
call   1030 <printf@plt>
jmp    1336 <print64+0x226>
lea    0xfed(%rip),%rdi
call   1030 <printf@plt>
jmp    1336 <print64+0x226>
lea    0x1045(%rip),%rdi
call   1030 <printf@plt>
jmp    1336 <print64+0x226>
lea    0x1089(%rip),%rdi
call   1030 <printf@plt>
jmp    1336 <print64+0x226>
lea    0x10cd(%rip),%rdi
call   1030 <printf@plt>
jmp    1336 <print64+0x226>
lea    0x1111(%rip),%rdi
call   1030 <printf@plt>
jmp    1336 <print64+0x226>
lea    0x1155(%rip),%rdi
call   1030 <printf@plt>
jmp    1336 <print64+0x226>
lea    0x1199(%rip),%rdi
call   1030 <printf@plt>
jmp    1336 <print64+0x226>
lea    0x11dd(%rip),%rdi
call   1030 <printf@plt>
jmp    1336 <print64+0x226>
lea    0x1221(%rip),%rdi
call   1030 <printf@plt>
jmp    1336 <print64+0x226>
lea    0x1265(%rip),%rdi
call   1030 <printf@plt>
jmp    1336 <print64+0x226>
lea    0x12a9(%rip),%rdi
call   1030 <printf@plt>
jmp    1336 <print64+0x226>
lea    0x12ed(%rip),%rdi
call   1030 <printf@plt>
jmp    1336 <print64+0x226>
lea    0x131d(%rip),%rdi
call   1030 <printf@plt>
jmp    1336 <print64+0x226>
lea    0x1358(%rip),%rdi
call   1030 <printf@plt>
jmp    1336 <print64+0x226>
lea    0x1398(%rip),%rdi
call   1030 <printf@plt>
jmp    1336 <print64+0x226>
lea    0x13e6(%rip),%rdi
call   1030 <printf@plt>
jmp    1336 <print64+0x226>
lea    0x142b(%rip),%rdi
call   1030 <printf@plt>
jmp    1336 <print64+0x226>
lea    0x1470(%rip),%rdi
call   1030 <printf@plt>
jmp    1336 <print64+0x226>
lea    0x14b5(%rip),%rdi
call   1030 <printf@plt>
jmp    1336 <print64+0x226>
lea    0x14fa(%rip),%rdi
call   1030 <printf@plt>
jmp    1336 <print64+0x226>
lea    0x153f(%rip),%rdi
call   1030 <printf@plt>
jmp    1336 <print64+0x226>
lea    0x1592(%rip),%rdi
call   1030 <printf@plt>
jmp    1336 <print64+0x226>
lea    0x15e5(%rip),%rdi
call   1030 <printf@plt>
jmp    1336 <print64+0x226>
lea    0x1620(%rip),%rdi
call   1030 <printf@plt>
jmp    1336 <print64+0x226>
lea    0x165b(%rip),%rdi
call   1030 <printf@plt>
jmp    1336 <print64+0x226>
lea    0x16cf(%rip),%rdi
call   1030 <printf@plt>
jmp    1336 <print64+0x226>
jmp    1336 <print64+0x226>
add    $0x10,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<print64>:
cmp    $0x1c,%dil
ja     112d <print64+0x1d>
movsbq %dil,%rax
lea    0x18af(%rip),%rcx
movslq (%rcx,%rax,4),%rdi
add    %rcx,%rdi
jmp    1030 <printf@plt>
ret

LLVM IR (-O0):
@.str = [76 x i8] c"****************************************************************\1B[46m \1B[45m\00"
@.str.1 = [76 x i8] c"** **\1B[46m \1B[45m\00"
@.str.2 = [95 x i8] c"********************** \1B[32m\1B[1mMAIN MENU\1B[21m\1B[39m **********************\1B[46m \1B[45m\00"
@.str.3 = [105 x i8] c"** 1. \1B[4mC\1B[24mreate a contact \1B[37m\1B[41m(Already Exist)\1B[45m\1B[39m **\1B[46m \1B[45m\00"
@.str.4 = [85 x i8] c"** 2. \1B[4mL\1B[24mist the contact **\1B[46m \1B[45m\00"
@.str.5 = [85 x i8] c"** 3. \1B[4mA\1B[24mdd a member to the contacts **\1B[46m \1B[45m\00"
@.str.6 = [85 x i8] c"** 4. \1B[4mD\1B[24melete a member form the contact **\1B[46m \1B[45m\00"
@.str.7 = [85 x i8] c"** 5. \1B[4mF\1B[24mind and Edit a member from the contacts **\1B[46m \1B[45m\00"
@.str.8 = [85 x i8] c"** 6: \1B[4mS\1B[24mort your contacts **\1B[46m \1B[45m\00"
@.str.9 = [85 x i8] c"** 7: S\1B[4mt\1B[24matistics **\1B[46m \1B[45m\00"
@.str.10 = [85 x i8] c"** 8: Sa\1B[4mv\1B[24me your contacts **\1B[46m \1B[45m\00"
@.str.11 = [85 x i8] c"** 9: C\1B[4mh\1B[24mange user password **\1B[46m \1B[45m\00"
@.str.12 = [85 x i8] c"** 0: \1B[4mE\1B[24mxit **\1B[46m \1B[45m\00"
@.str.13 = [85 x i8] c"** Please select the number or enter \1B[4munderlined\1B[24m letter **\1B[46m \1B[45m\00"
@.str.14 = [65 x i8] c" \00"
@.str.15 = [76 x i8] c"** 1. Create a contact **\1B[46m \1B[45m\00"
@.str.16 = [81 x i8] c"\1B[44m \1B[46m \1B[39m\00"
@.str.17 = [95 x i8] c"** \1B[33m\1B[1mAbout:\1B[39m\1B[21m **\1B[46m \1B[45m\00"
@.str.18 = [86 x i8] c"** \1B[32mThanks for using contacts manage system!\1B[39m **\1B[46m \1B[45m\00"
@.str.19 = [86 x i8] c"** \1B[33mContacts Manage System V1.00\1B[39m **\1B[46m \1B[45m\00"
@.str.20 = [86 x i8] c"** \1B[34mMade by Ruilx Alxa\1B[39m **\1B[46m \1B[45m\00"
@.str.21 = [86 x i8] c"** \1B[36min Xian University of Posts and Telecommunications\1B[39m **\1B[46m \1B[45m\00"
@.str.22 = [86 x i8] c"** \1B[37mCopyright (C) 2010-2013 GT-Soft Studio All Rights Reserved\1B[39m **\1B[46m \1B[45m\00"
@.str.23 = [100 x i8] c"** \1B[32mPlease E-mail bugs to: \1B[34m\1B[4mzrrabbit@gmail.com\1B[24m\1B[39m **\1B[46m \1B[45m\00"
@.str.24 = [100 x i8] c"** \1B[32mPlease visit our Homepage: \1B[34m\1B[4mhttp://gtsoft.cwsurf.de\1B[24m\1B[39m **\1B[46m \1B[45m\00"
@.str.25 = [76 x i8] c"** You haven't save your contact yet, if you still **\1B[46m \1B[41m\00"
@.str.26 = [76 x i8] c"** exit, you may lost all your changes, Sure? **\1B[46m \1B[41m\00"
@.str.27 = [133 x i8] c"** \1B[33m1. \1B[4mS\1B[24mave & Exit\1B[39m ** \1B[32m2. \1B[4mM\1B[24main Menu\1B[39m ** \1B[35m3. \1B[4mD\1B[24miscard Exit\1B[39m ** **\1B[46m \1B[41m\00"
@.str.28 = [76 x i8] c"****************************************************************\1B[46m \1B[41m\00"
define void @print64(i8 zeroext %0) {
%2 = alloca i8
store i8 %0, i8* %2
%3 = load i8, i8* %2
%4 = zext i8 %3 to i32
switch i32 %4, label %63 [
i32 11, label %5
i32 12, label %7
i32 10, label %9
i32 1, label %11
i32 2, label %13
i32 3, label %15
i32 4, label %17
i32 5, label %19
i32 6, label %21
i32 7, label %23
i32 8, label %25
i32 9, label %27
i32 0, label %29
i32 13, label %31
i32 14, label %33
i32 15, label %35
i32 16, label %37
i32 17, label %39
i32 18, label %41
i32 19, label %43
i32 20, label %45
i32 21, label %47
i32 22, label %49
i32 23, label %51
i32 24, label %53
i32 25, label %55
i32 26, label %57
i32 27, label %59
i32 28, label %61
]
5: ; preds = %1
%6 = call i32 @printf(i8* getelementptr inbounds ([76 x i8], [76 x i8]* @.str, i64 0, i64 0))
br label %64
7: ; preds = %1
%8 = call i32 @printf(i8* getelementptr inbounds ([76 x i8], [76 x i8]* @.str.1, i64 0, i64 0))
br label %64
9: ; preds = %1
%10 = call i32 @printf(i8* getelementptr inbounds ([95 x i8], [95 x i8]* @.str.2, i64 0, i64 0))
br label %64
11: ; preds = %1
%12 = call i32 @printf(i8* getelementptr inbounds ([105 x i8], [105 x i8]* @.str.3, i64 0, i64 0))
br label %64
13: ; preds = %1
%14 = call i32 @printf(i8* getelementptr inbounds ([85 x i8], [85 x i8]* @.str.4, i64 0, i64 0))
br label %64
15: ; preds = %1
%16 = call i32 @printf(i8* getelementptr inbounds ([85 x i8], [85 x i8]* @.str.5, i64 0, i64 0))
br label %64
17: ; preds = %1
%18 = call i32 @printf(i8* getelementptr inbounds ([85 x i8], [85 x i8]* @.str.6, i64 0, i64 0))
br label %64
19: ; preds = %1
%20 = call i32 @printf(i8* getelementptr inbounds ([85 x i8], [85 x i8]* @.str.7, i64 0, i64 0))
br label %64
21: ; preds = %1
%22 = call i32 @printf(i8* getelementptr inbounds ([85 x i8], [85 x i8]* @.str.8, i64 0, i64 0))
br label %64
23: ; preds = %1
%24 = call i32 @printf(i8* getelementptr inbounds ([85 x i8], [85 x i8]* @.str.9, i64 0, i64 0))
br label %64
25: ; preds = %1
%26 = call i32 @printf(i8* getelementptr inbounds ([85 x i8], [85 x i8]* @.str.10, i64 0, i64 0))
br label %64
27: ; preds = %1
%28 = call i32 @printf(i8* getelementptr inbounds ([85 x i8], [85 x i8]* @.str.11, i64 0, i64 0))
br label %64
29: ; preds = %1
%30 = call i32 @printf(i8* getelementptr inbounds ([85 x i8], [85 x i8]* @.str.12, i64 0, i64 0))
br label %64
31: ; preds = %1
%32 = call i32 @printf(i8* getelementptr inbounds ([85 x i8], [85 x i8]* @.str.13, i64 0, i64 0))
br label %64
33: ; preds = %1
%34 = call i32 @printf(i8* getelementptr inbounds ([65 x i8], [65 x i8]* @.str.14, i64 0, i64 0))
br label %64
35: ; preds = %1
%36 = call i32 @printf(i8* getelementptr inbounds ([76 x i8], [76 x i8]* @.str.15, i64 0, i64 0))
br label %64
37: ; preds = %1
%38 = call i32 @printf(i8* getelementptr inbounds ([81 x i8], [81 x i8]* @.str.16, i64 0, i64 0))
br label %64
39: ; preds = %1
%40 = call i32 @printf(i8* getelementptr inbounds ([95 x i8], [95 x i8]* @.str.17, i64 0, i64 0))
br label %64
41: ; preds = %1
%42 = call i32 @printf(i8* getelementptr inbounds ([86 x i8], [86 x i8]* @.str.18, i64 0, i64 0))
br label %64
43: ; preds = %1
%44 = call i32 @printf(i8* getelementptr inbounds ([86 x i8], [86 x i8]* @.str.19, i64 0, i64 0))
br label %64
45: ; preds = %1
%46 = call i32 @printf(i8* getelementptr inbounds ([86 x i8], [86 x i8]* @.str.20, i64 0, i64 0))
br label %64
47: ; preds = %1
%48 = call i32 @printf(i8* getelementptr inbounds ([86 x i8], [86 x i8]* @.str.21, i64 0, i64 0))
br label %64
49: ; preds = %1
%50 = call i32 @printf(i8* getelementptr inbounds ([86 x i8], [86 x i8]* @.str.22, i64 0, i64 0))
br label %64
51: ; preds = %1
%52 = call i32 @printf(i8* getelementptr inbounds ([100 x i8], [100 x i8]* @.str.23, i64 0, i64 0))
br label %64
53: ; preds = %1
%54 = call i32 @printf(i8* getelementptr inbounds ([100 x i8], [100 x i8]* @.str.24, i64 0, i64 0))
br label %64
55: ; preds = %1
%56 = call i32 @printf(i8* getelementptr inbounds ([76 x i8], [76 x i8]* @.str.25, i64 0, i64 0))
br label %64
57: ; preds = %1
%58 = call i32 @printf(i8* getelementptr inbounds ([76 x i8], [76 x i8]* @.str.26, i64 0, i64 0))
br label %64
59: ; preds = %1
%60 = call i32 @printf(i8* getelementptr inbounds ([133 x i8], [133 x i8]* @.str.27, i64 0, i64 0))
br label %64
61: ; preds = %1
%62 = call i32 @printf(i8* getelementptr inbounds ([76 x i8], [76 x i8]* @.str.28, i64 0, i64 0))
br label %64
63: ; preds = %1
br label %64
64: ; preds = %63, %61, %59, %57, %55, %53, %51, %49, %47, %45, %43, %41, %39, %37, %35, %33, %31, %29, %27, %25, %23, %21, %19, %17, %15, %13, %11, %9, %7, %5
ret void
}

LLVM IR (-O2):
@.str = [76 x i8] c"****************************************************************\1B[46m \1B[45m\00"
@.str.1 = [76 x i8] c"** **\1B[46m \1B[45m\00"
@.str.2 = [95 x i8] c"********************** \1B[32m\1B[1mMAIN MENU\1B[21m\1B[39m **********************\1B[46m \1B[45m\00"
@.str.3 = [105 x i8] c"** 1. \1B[4mC\1B[24mreate a contact \1B[37m\1B[41m(Already Exist)\1B[45m\1B[39m **\1B[46m \1B[45m\00"
@.str.4 = [85 x i8] c"** 2. \1B[4mL\1B[24mist the contact **\1B[46m \1B[45m\00"
@.str.5 = [85 x i8] c"** 3. \1B[4mA\1B[24mdd a member to the contacts **\1B[46m \1B[45m\00"
@.str.6 = [85 x i8] c"** 4. \1B[4mD\1B[24melete a member form the contact **\1B[46m \1B[45m\00"
@.str.7 = [85 x i8] c"** 5. \1B[4mF\1B[24mind and Edit a member from the contacts **\1B[46m \1B[45m\00"
@.str.8 = [85 x i8] c"** 6: \1B[4mS\1B[24mort your contacts **\1B[46m \1B[45m\00"
@.str.9 = [85 x i8] c"** 7: S\1B[4mt\1B[24matistics **\1B[46m \1B[45m\00"
@.str.10 = [85 x i8] c"** 8: Sa\1B[4mv\1B[24me your contacts **\1B[46m \1B[45m\00"
@.str.11 = [85 x i8] c"** 9: C\1B[4mh\1B[24mange user password **\1B[46m \1B[45m\00"
@.str.12 = [85 x i8] c"** 0: \1B[4mE\1B[24mxit **\1B[46m \1B[45m\00"
@.str.13 = [85 x i8] c"** Please select the number or enter \1B[4munderlined\1B[24m letter **\1B[46m \1B[45m\00"
@.str.14 = [65 x i8] c" \00"
@.str.15 = [76 x i8] c"** 1. Create a contact **\1B[46m \1B[45m\00"
@.str.16 = [81 x i8] c"\1B[44m \1B[46m \1B[39m\00"
@.str.17 = [95 x i8] c"** \1B[33m\1B[1mAbout:\1B[39m\1B[21m **\1B[46m \1B[45m\00"
@.str.18 = [86 x i8] c"** \1B[32mThanks for using contacts manage system!\1B[39m **\1B[46m \1B[45m\00"
@.str.19 = [86 x i8] c"** \1B[33mContacts Manage System V1.00\1B[39m **\1B[46m \1B[45m\00"
@.str.20 = [86 x i8] c"** \1B[34mMade by Ruilx Alxa\1B[39m **\1B[46m \1B[45m\00"
@.str.21 = [86 x i8] c"** \1B[36min Xian University of Posts and Telecommunications\1B[39m **\1B[46m \1B[45m\00"
@.str.22 = [86 x i8] c"** \1B[37mCopyright (C) 2010-2013 GT-Soft Studio All Rights Reserved\1B[39m **\1B[46m \1B[45m\00"
@.str.23 = [100 x i8] c"** \1B[32mPlease E-mail bugs to: \1B[34m\1B[4mzrrabbit@gmail.com\1B[24m\1B[39m **\1B[46m \1B[45m\00"
@.str.24 = [100 x i8] c"** \1B[32mPlease visit our Homepage: \1B[34m\1B[4mhttp://gtsoft.cwsurf.de\1B[24m\1B[39m **\1B[46m \1B[45m\00"
@.str.25 = [76 x i8] c"** You haven't save your contact yet, if you still **\1B[46m \1B[41m\00"
@.str.26 = [76 x i8] c"** exit, you may lost all your changes, Sure? **\1B[46m \1B[41m\00"
@.str.27 = [133 x i8] c"** \1B[33m1. \1B[4mS\1B[24mave & Exit\1B[39m ** \1B[32m2. \1B[4mM\1B[24main Menu\1B[39m ** \1B[35m3. \1B[4mD\1B[24miscard Exit\1B[39m ** **\1B[46m \1B[41m\00"
@.str.28 = [76 x i8] c"****************************************************************\1B[46m \1B[41m\00"
@reltable.print64 = [29 x i32] [i32 trunc (i64 sub (i64 ptrtoint ([85 x i8]* @.str.12 to i64), i64 ptrtoint ([29 x i32]* @reltable.print64 to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([105 x i8]* @.str.3 to i64), i64 ptrtoint ([29 x i32]* @reltable.print64 to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([85 x i8]* @.str.4 to i64), i64 ptrtoint ([29 x i32]* @reltable.print64 to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([85 x i8]* @.str.5 to i64), i64 ptrtoint ([29 x i32]* @reltable.print64 to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([85 x i8]* @.str.6 to i64), i64 ptrtoint ([29 x i32]* @reltable.print64 to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([85 x i8]* @.str.7 to i64), i64 ptrtoint ([29 x i32]* @reltable.print64 to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([85 x i8]* @.str.8 to i64), i64 ptrtoint ([29 x i32]* @reltable.print64 to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([85 x i8]* @.str.9 to i64), i64 ptrtoint ([29 x i32]* @reltable.print64 to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([85 x i8]* @.str.10 to i64), i64 ptrtoint ([29 x i32]* @reltable.print64 to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([85 x i8]* @.str.11 to i64), i64 ptrtoint ([29 x i32]* @reltable.print64 to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([95 x i8]* @.str.2 to i64), i64 ptrtoint ([29 x i32]* @reltable.print64 to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([76 x i8]* @.str to i64), i64 ptrtoint ([29 x i32]* @reltable.print64 to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([76 x i8]* @.str.1 to i64), i64 ptrtoint ([29 x i32]* @reltable.print64 to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([85 x i8]* @.str.13 to i64), i64 ptrtoint ([29 x i32]* @reltable.print64 to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([65 x i8]* @.str.14 to i64), i64 ptrtoint ([29 x i32]* @reltable.print64 to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([76 x i8]* @.str.15 to i64), i64 ptrtoint ([29 x i32]* @reltable.print64 to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([81 x i8]* @.str.16 to i64), i64 ptrtoint ([29 x i32]* @reltable.print64 to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([95 x i8]* @.str.17 to i64), i64 ptrtoint ([29 x i32]* @reltable.print64 to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([86 x i8]* @.str.18 to i64), i64 ptrtoint ([29 x i32]* @reltable.print64 to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([86 x i8]* @.str.19 to i64), i64 ptrtoint ([29 x i32]* @reltable.print64 to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([86 x i8]* @.str.20 to i64), i64 ptrtoint ([29 x i32]* @reltable.print64 to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([86 x i8]* @.str.21 to i64), i64 ptrtoint ([29 x i32]* @reltable.print64 to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([86 x i8]* @.str.22 to i64), i64 ptrtoint ([29 x i32]* @reltable.print64 to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([100 x i8]* @.str.23 to i64), i64 ptrtoint ([29 x i32]* @reltable.print64 to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([100 x i8]* @.str.24 to i64), i64 ptrtoint ([29 x i32]* @reltable.print64 to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([76 x i8]* @.str.25 to i64), i64 ptrtoint ([29 x i32]* @reltable.print64 to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([76 x i8]* @.str.26 to i64), i64 ptrtoint ([29 x i32]* @reltable.print64 to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([133 x i8]* @.str.27 to i64), i64 ptrtoint ([29 x i32]* @reltable.print64 to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([76 x i8]* @.str.28 to i64), i64 ptrtoint ([29 x i32]* @reltable.print64 to i64)) to i32)]
define void @print64(i8 zeroext %0) {
%2 = icmp ult i8 %0, 29
br i1 %2, label %3, label %8
3: ; preds = %1
%4 = sext i8 %0 to i64
%5 = shl i64 %4, 2
%6 = call i8* @llvm.load.relative.i64(i8* bitcast ([29 x i32]* @reltable.print64 to i8*), i64 %5)
%7 = tail call i32 @printf(i8* dereferenceable(1) %6)
br label %8
8: ; preds = %1, %3
ret void
}