#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 *);
int /*<<< orphan*/ printheader();
int /*<<< orphan*/ printmainmenu();
int /*<<< orphan*/ readline(char *, int);
int /*<<< orphan*/ system(char *);
void manual() {
  system("clear");
  char err[1];
  printf("-------------------------------------"
         "---------------------------------------------------------------------"
         "--------------------------------------\n\n");
  printf("\x1b[31m"
         "\t\t\t\t<------------ MANUAL PAGE ------------->\n\n"
         "\x1b[0m");
  printf("\x1b[32m"
         "This project is designed to have HOSPITAL RECORD MANAGEMENT SYSTEM. "
         "It helps you to store data of patients, employees,"
         "\navailability of doctors and payment information. There is MAIN "
         "MENU that consists of 4 main options\n"
         "\x1b[0m");
  printf("\x1b[34m"
         "\n\t#option 1:"
         "\x1b[0m"
         "\x1b[35m"
         " PATIENT helps you to store data about patients. It consists of:\n"
         "\x1b[0m");
  printf("\x1b[34m"
         "\t\t>> option 1:"
         "\x1b[0m"
         "\x1b[35m"
         "Add new record of a patient. Fill the details according to fields "
         "\n\t\tdisplayed on the screen.\n"
         "\x1b[0m");
  printf("\x1b[34m"
         "\t\t>> option 2:"
         "\x1b[0m"
         "\x1b[35m"
         "Edit existing record of a patient. If u want to change the stored "
         "data, \n\t\tchoose this option and fill the"
         " data again.\n"
         "\x1b[0m");
  printf("\x1b[34m"
         "\t\t>> option 3:"
         "\x1b[0m"
         "\x1b[35m"
         "Display data of a particular patient. This option displays all the "
         "stored\n\t\tdata of a particular patient."
         " Search is done by name or registration number.\n"
         "\x1b[0m");
  printf("\x1b[34m"
         "\t\t>> option 4:"
         "\x1b[0m"
         "\x1b[35m"
         "List all existing records of patients. This option displays "
         "name\n\t\tand registration number of all stored"
         " patients in list form.\n"
         "\x1b[0m");
  printf("\x1b[34m"
         "\t\t>> option 5:"
         "\x1b[0m"
         "\x1b[35m"
         "Delete existing record of a patient. If you want to close "
         "record\n\t\tof a patient use this option.\n"
         "\x1b[0m");
  printf("\x1b[34m"
         "\n\t#option 2:"
         "\x1b[0m"
         "\x1b[35m"
         " EMPLOYEE helps you to store data about employees of the "
         "hospital.\n\tIt consists of:\n"
         "\x1b[0m");
  printf("\x1b[34m"
         "\t\t>> option 1:"
         "\x1b[0m"
         "\x1b[35m"
         "Add new record of a employee. Fill the details according to fields "
         "\n\t\tdisplayed on the screen.\n"
         "\x1b[0m");
  printf("\x1b[34m"
         "\t\t>> option 2:"
         "\x1b[0m"
         "\x1b[35m"
         "Edit existing record of a employee Fill the details according to "
         "fields \n\t\tdisplayed on the screen.\n"
         "\x1b[0m");
  printf("\x1b[34m"
         "\t\t>> option 3:"
         "\x1b[0m"
         "\x1b[35m"
         "Display data of a particular employee. This option displays all "
         "the\n\t\tstored data of a particular"
         "employee. Search is done by name or UID number.\n"
         "\x1b[0m");
  printf("\x1b[34m"
         "\t\t>> option 4:"
         "\x1b[0m"
         "\x1b[35m"
         "List all existing records of employees. This option displays "
         "name\n\t\tand UID number of all registered "
         "employee in list form.\n"
         "\x1b[0m");
  printf("\x1b[34m"
         "\t\t>> option 5:"
         "\x1b[0m"
         "\x1b[35m"
         "Delete existing record of a employee. If you want to close record "
         "\n\t\tof a employee use this option.\n"
         "\x1b[0m");
  printf("\x1b[34m"
         "\n\t#option 3:"
         "\x1b[0m"
         "\x1b[35m"
         " PAYMENT helps you to do payment of fees. It provides you with "
         "payment\n\treceipt that shows details of all"
         " fees to be paid.\n"
         "\x1b[0m");
  printf("\x1b[34m"
         "\n\t#option 4:"
         "\x1b[0m"
         "\x1b[35m"
         " AVAILABILITY helps you to store data about availability of "
         "doctors.\n\tAvailability is stored according to"
         " days of week and timing for each day. It consists of:\n"
         "\x1b[0m");
  printf("\x1b[34m"
         "\t\t>> option 1:"
         "\x1b[0m"
         "\x1b[35m"
         "Add new availability record of a doctor.\n"
         "\x1b[0m");
  printf("\x1b[34m"
         "\t\t>> option 2:"
         "\x1b[0m"
         "\x1b[35m"
         "Search and display availability of particular doctor.\n"
         "\x1b[0m");
  printf("\x1b[34m"
         "\t\t>> option 3:"
         "\x1b[0m"
         "\x1b[35m"
         "Edit availability data of a particular doctor.\n"
         "\x1b[0m");
  printf("\x1b[34m"
         "\t\t>> option 4:"
         "\x1b[0m"
         "\x1b[35m"
         "Delete availabilty data of particular doctor.\n"
         "\x1b[0m");
  printf("\x1b[34m"
         "\t\t>> option 5:"
         "\x1b[0m"
         "\x1b[35m"
         "List availability of all doctors. If you dont know the name of the "
         "doctor,\n\t\tthis option displays the"
         " whole list.\n"
         "\x1b[0m");
  printf("\n\nPress enter key to continue");
  readline(err, 1);
  readline(err, 1);
  system("clear");
  printheader();
  printmainmenu();
}


x86 assembly (clang, -O0):
<manual>:
push   %rbp
mov    %rsp,%rbp
sub    $0x10,%rsp
lea    0xea1(%rip),%rdi
call   1040 <system@plt>
lea    0xe9b(%rip),%rdi
call   1050 <printf@plt>
lea    0xf22(%rip),%rdi
call   1050 <printf@plt>
lea    0xf4e(%rip),%rdi
call   1050 <printf@plt>
lea    0x1027(%rip),%rdi
call   1050 <printf@plt>
lea    0x107b(%rip),%rdi
call   1050 <printf@plt>
lea    0x10ee(%rip),%rdi
call   1050 <printf@plt>
lea    0x117a(%rip),%rdi
call   1050 <printf@plt>
lea    0x1228(%rip),%rdi
call   1050 <printf@plt>
lea    0x12bd(%rip),%rdi
call   1050 <printf@plt>
lea    0x1333(%rip),%rdi
call   1050 <printf@plt>
lea    0x139a(%rip),%rdi
call   1050 <printf@plt>
lea    0x140e(%rip),%rdi
call   1050 <printf@plt>
lea    0x1487(%rip),%rdi
call   1050 <printf@plt>
lea    0x152d(%rip),%rdi
call   1050 <printf@plt>
lea    0x15be(%rip),%rdi
call   1050 <printf@plt>
lea    0x1637(%rip),%rdi
call   1050 <printf@plt>
lea    0x16c5(%rip),%rdi
call   1050 <printf@plt>
lea    0x1778(%rip),%rdi
call   1050 <printf@plt>
lea    0x17b6(%rip),%rdi
call   1050 <printf@plt>
lea    0x1801(%rip),%rdi
call   1050 <printf@plt>
lea    0x1845(%rip),%rdi
call   1050 <printf@plt>
lea    0x1888(%rip),%rdi
call   1050 <printf@plt>
lea    0x190f(%rip),%rdi
call   1050 <printf@plt>
lea    -0x1(%rbp),%rdi
mov    $0x1,%esi
call   1060 <readline@plt>
lea    -0x1(%rbp),%rdi
mov    $0x1,%esi
call   1060 <readline@plt>
lea    0xd65(%rip),%rdi
call   1040 <system@plt>
mov    $0x0,%al
call   1070 <printheader@plt>
mov    $0x0,%al
call   1030 <printmainmenu@plt>
add    $0x10,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<manual>:
push   %r14
push   %rbx
push   %rax
lea    0xe95(%rip),%r14
mov    %r14,%rdi
call   1050 <system@plt>
lea    0x1993(%rip),%rdi
call   1040 <puts@plt>
lea    0xe80(%rip),%rdi
call   1060 <printf@plt>
lea    0xeac(%rip),%rdi
call   1060 <printf@plt>
lea    0xf85(%rip),%rdi
call   1060 <printf@plt>
lea    0xfd9(%rip),%rdi
call   1060 <printf@plt>
lea    0x104c(%rip),%rdi
call   1060 <printf@plt>
lea    0x10d8(%rip),%rdi
call   1060 <printf@plt>
lea    0x1186(%rip),%rdi
call   1060 <printf@plt>
lea    0x121b(%rip),%rdi
call   1060 <printf@plt>
lea    0x1291(%rip),%rdi
call   1060 <printf@plt>
lea    0x12f8(%rip),%rdi
call   1060 <printf@plt>
lea    0x136c(%rip),%rdi
call   1060 <printf@plt>
lea    0x13e5(%rip),%rdi
call   1060 <printf@plt>
lea    0x148b(%rip),%rdi
call   1060 <printf@plt>
lea    0x151c(%rip),%rdi
call   1060 <printf@plt>
lea    0x1595(%rip),%rdi
call   1060 <printf@plt>
lea    0x1623(%rip),%rdi
call   1060 <printf@plt>
lea    0x16d6(%rip),%rdi
call   1060 <printf@plt>
lea    0x1714(%rip),%rdi
call   1060 <printf@plt>
lea    0x175f(%rip),%rdi
call   1060 <printf@plt>
lea    0x17a3(%rip),%rdi
call   1060 <printf@plt>
lea    0x17e6(%rip),%rdi
call   1060 <printf@plt>
lea    0x186d(%rip),%rdi
call   1060 <printf@plt>
lea    0x7(%rsp),%rbx
mov    %rbx,%rdi
mov    $0x1,%esi
call   1070 <readline@plt>
mov    %rbx,%rdi
mov    $0x1,%esi
call   1070 <readline@plt>
mov    %r14,%rdi
call   1050 <system@plt>
xor    %eax,%eax
call   1080 <printheader@plt>
xor    %eax,%eax
call   1030 <printmainmenu@plt>
add    $0x8,%rsp
pop    %rbx
pop    %r14
ret

LLVM IR (-O0):
@.str = [6 x i8] c"clear\00"
@.str.1 = [147 x i8] c"------------------------------------------------------------------------------------------------------------------------------------------------\0A\0A\00"
@.str.2 = [56 x i8] c"\1B[31m\09\09\09\09<------------ MANUAL PAGE ------------->\0A\0A\1B[0m\00"
@.str.3 = [229 x i8] c"\1B[32mThis project is designed to have HOSPITAL RECORD MANAGEMENT SYSTEM. It helps you to store data of patients, employees,\0Aavailability of doctors and payment information. There is MAIN MENU that consists of 4 main options\0A\1B[0m\00"
@.str.4 = [96 x i8] c"\1B[34m\0A\09#option 1:\1B[0m\1B[35m PATIENT helps you to store data about patients. It consists of:\0A\1B[0m\00"
@.str.5 = [127 x i8] c"\1B[34m\09\09>> option 1:\1B[0m\1B[35mAdd new record of a patient. Fill the details according to fields \0A\09\09displayed on the screen.\0A\1B[0m\00"
@.str.6 = [152 x i8] c"\1B[34m\09\09>> option 2:\1B[0m\1B[35mEdit existing record of a patient. If u want to change the stored data, \0A\09\09choose this option and fill the data again.\0A\1B[0m\00"
@.str.7 = [186 x i8] c"\1B[34m\09\09>> option 3:\1B[0m\1B[35mDisplay data of a particular patient. This option displays all the stored\0A\09\09data of a particular patient. Search is done by name or registration number.\0A\1B[0m\00"
@.str.8 = [161 x i8] c"\1B[34m\09\09>> option 4:\1B[0m\1B[35mList all existing records of patients. This option displays name\0A\09\09and registration number of all stored patients in list form.\0A\1B[0m\00"
@.str.9 = [130 x i8] c"\1B[34m\09\09>> option 5:\1B[0m\1B[35mDelete existing record of a patient. If you want to close record\0A\09\09of a patient use this option.\0A\1B[0m\00"
@.str.10 = [115 x i8] c"\1B[34m\0A\09#option 2:\1B[0m\1B[35m EMPLOYEE helps you to store data about employees of the hospital.\0A\09It consists of:\0A\1B[0m\00"
@.str.11 = [128 x i8] c"\1B[34m\09\09>> option 1:\1B[0m\1B[35mAdd new record of a employee. Fill the details according to fields \0A\09\09displayed on the screen.\0A\1B[0m\00"
@.str.12 = [133 x i8] c"\1B[34m\09\09>> option 2:\1B[0m\1B[35mEdit existing record of a employee Fill the details according to fields \0A\09\09displayed on the screen.\0A\1B[0m\00"
@.str.13 = [178 x i8] c"\1B[34m\09\09>> option 3:\1B[0m\1B[35mDisplay data of a particular employee. This option displays all the\0A\09\09stored data of a particularemployee. Search is done by name or UID number.\0A\1B[0m\00"
@.str.14 = [157 x i8] c"\1B[34m\09\09>> option 4:\1B[0m\1B[35mList all existing records of employees. This option displays name\0A\09\09and UID number of all registered employee in list form.\0A\1B[0m\00"
@.str.15 = [133 x i8] c"\1B[34m\09\09>> option 5:\1B[0m\1B[35mDelete existing record of a employee. If you want to close record \0A\09\09of a employee use this option.\0A\1B[0m\00"
@.str.16 = [154 x i8] c"\1B[34m\0A\09#option 3:\1B[0m\1B[35m PAYMENT helps you to do payment of fees. It provides you with payment\0A\09receipt that shows details of all fees to be paid.\0A\1B[0m\00"
@.str.17 = [191 x i8] c"\1B[34m\0A\09#option 4:\1B[0m\1B[35m AVAILABILITY helps you to store data about availability of doctors.\0A\09Availability is stored according to days of week and timing for each day. It consists of:\0A\1B[0m\00"
@.str.18 = [74 x i8] c"\1B[34m\09\09>> option 1:\1B[0m\1B[35mAdd new availability record of a doctor.\0A\1B[0m\00"
@.str.19 = [87 x i8] c"\1B[34m\09\09>> option 2:\1B[0m\1B[35mSearch and display availability of particular doctor.\0A\1B[0m\00"
@.str.20 = [80 x i8] c"\1B[34m\09\09>> option 3:\1B[0m\1B[35mEdit availability data of a particular doctor.\0A\1B[0m\00"
@.str.21 = [79 x i8] c"\1B[34m\09\09>> option 4:\1B[0m\1B[35mDelete availabilty data of particular doctor.\0A\1B[0m\00"
@.str.22 = [147 x i8] c"\1B[34m\09\09>> option 5:\1B[0m\1B[35mList availability of all doctors. If you dont know the name of the doctor,\0A\09\09this option displays the whole list.\0A\1B[0m\00"
@.str.23 = [30 x i8] c"\0A\0APress enter key to continue\00"
define void @manual() {
%1 = alloca [1 x i8]
%2 = call i32 @system(i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str, i64 0, i64 0))
%3 = call i32 @printf(i8* getelementptr inbounds ([147 x i8], [147 x i8]* @.str.1, i64 0, i64 0))
%4 = call i32 @printf(i8* getelementptr inbounds ([56 x i8], [56 x i8]* @.str.2, i64 0, i64 0))
%5 = call i32 @printf(i8* getelementptr inbounds ([229 x i8], [229 x i8]* @.str.3, i64 0, i64 0))
%6 = call i32 @printf(i8* getelementptr inbounds ([96 x i8], [96 x i8]* @.str.4, i64 0, i64 0))
%7 = call i32 @printf(i8* getelementptr inbounds ([127 x i8], [127 x i8]* @.str.5, i64 0, i64 0))
%8 = call i32 @printf(i8* getelementptr inbounds ([152 x i8], [152 x i8]* @.str.6, i64 0, i64 0))
%9 = call i32 @printf(i8* getelementptr inbounds ([186 x i8], [186 x i8]* @.str.7, i64 0, i64 0))
%10 = call i32 @printf(i8* getelementptr inbounds ([161 x i8], [161 x i8]* @.str.8, i64 0, i64 0))
%11 = call i32 @printf(i8* getelementptr inbounds ([130 x i8], [130 x i8]* @.str.9, i64 0, i64 0))
%12 = call i32 @printf(i8* getelementptr inbounds ([115 x i8], [115 x i8]* @.str.10, i64 0, i64 0))
%13 = call i32 @printf(i8* getelementptr inbounds ([128 x i8], [128 x i8]* @.str.11, i64 0, i64 0))
%14 = call i32 @printf(i8* getelementptr inbounds ([133 x i8], [133 x i8]* @.str.12, i64 0, i64 0))
%15 = call i32 @printf(i8* getelementptr inbounds ([178 x i8], [178 x i8]* @.str.13, i64 0, i64 0))
%16 = call i32 @printf(i8* getelementptr inbounds ([157 x i8], [157 x i8]* @.str.14, i64 0, i64 0))
%17 = call i32 @printf(i8* getelementptr inbounds ([133 x i8], [133 x i8]* @.str.15, i64 0, i64 0))
%18 = call i32 @printf(i8* getelementptr inbounds ([154 x i8], [154 x i8]* @.str.16, i64 0, i64 0))
%19 = call i32 @printf(i8* getelementptr inbounds ([191 x i8], [191 x i8]* @.str.17, i64 0, i64 0))
%20 = call i32 @printf(i8* getelementptr inbounds ([74 x i8], [74 x i8]* @.str.18, i64 0, i64 0))
%21 = call i32 @printf(i8* getelementptr inbounds ([87 x i8], [87 x i8]* @.str.19, i64 0, i64 0))
%22 = call i32 @printf(i8* getelementptr inbounds ([80 x i8], [80 x i8]* @.str.20, i64 0, i64 0))
%23 = call i32 @printf(i8* getelementptr inbounds ([79 x i8], [79 x i8]* @.str.21, i64 0, i64 0))
%24 = call i32 @printf(i8* getelementptr inbounds ([147 x i8], [147 x i8]* @.str.22, i64 0, i64 0))
%25 = call i32 @printf(i8* getelementptr inbounds ([30 x i8], [30 x i8]* @.str.23, i64 0, i64 0))
%26 = getelementptr inbounds [1 x i8], [1 x i8]* %1, i64 0, i64 0
%27 = call i32 @readline(i8* %26, i32 1)
%28 = getelementptr inbounds [1 x i8], [1 x i8]* %1, i64 0, i64 0
%29 = call i32 @readline(i8* %28, i32 1)
%30 = call i32 @system(i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str, i64 0, i64 0))
%31 = call i32 (...) @printheader()
%32 = call i32 (...) @printmainmenu()
ret void
}

LLVM IR (-O2):
@.str = [6 x i8] c"clear\00"
@.str.2 = [56 x i8] c"\1B[31m\09\09\09\09<------------ MANUAL PAGE ------------->\0A\0A\1B[0m\00"
@.str.3 = [229 x i8] c"\1B[32mThis project is designed to have HOSPITAL RECORD MANAGEMENT SYSTEM. It helps you to store data of patients, employees,\0Aavailability of doctors and payment information. There is MAIN MENU that consists of 4 main options\0A\1B[0m\00"
@.str.4 = [96 x i8] c"\1B[34m\0A\09#option 1:\1B[0m\1B[35m PATIENT helps you to store data about patients. It consists of:\0A\1B[0m\00"
@.str.5 = [127 x i8] c"\1B[34m\09\09>> option 1:\1B[0m\1B[35mAdd new record of a patient. Fill the details according to fields \0A\09\09displayed on the screen.\0A\1B[0m\00"
@.str.6 = [152 x i8] c"\1B[34m\09\09>> option 2:\1B[0m\1B[35mEdit existing record of a patient. If u want to change the stored data, \0A\09\09choose this option and fill the data again.\0A\1B[0m\00"
@.str.7 = [186 x i8] c"\1B[34m\09\09>> option 3:\1B[0m\1B[35mDisplay data of a particular patient. This option displays all the stored\0A\09\09data of a particular patient. Search is done by name or registration number.\0A\1B[0m\00"
@.str.8 = [161 x i8] c"\1B[34m\09\09>> option 4:\1B[0m\1B[35mList all existing records of patients. This option displays name\0A\09\09and registration number of all stored patients in list form.\0A\1B[0m\00"
@.str.9 = [130 x i8] c"\1B[34m\09\09>> option 5:\1B[0m\1B[35mDelete existing record of a patient. If you want to close record\0A\09\09of a patient use this option.\0A\1B[0m\00"
@.str.10 = [115 x i8] c"\1B[34m\0A\09#option 2:\1B[0m\1B[35m EMPLOYEE helps you to store data about employees of the hospital.\0A\09It consists of:\0A\1B[0m\00"
@.str.11 = [128 x i8] c"\1B[34m\09\09>> option 1:\1B[0m\1B[35mAdd new record of a employee. Fill the details according to fields \0A\09\09displayed on the screen.\0A\1B[0m\00"
@.str.12 = [133 x i8] c"\1B[34m\09\09>> option 2:\1B[0m\1B[35mEdit existing record of a employee Fill the details according to fields \0A\09\09displayed on the screen.\0A\1B[0m\00"
@.str.13 = [178 x i8] c"\1B[34m\09\09>> option 3:\1B[0m\1B[35mDisplay data of a particular employee. This option displays all the\0A\09\09stored data of a particularemployee. Search is done by name or UID number.\0A\1B[0m\00"
@.str.14 = [157 x i8] c"\1B[34m\09\09>> option 4:\1B[0m\1B[35mList all existing records of employees. This option displays name\0A\09\09and UID number of all registered employee in list form.\0A\1B[0m\00"
@.str.15 = [133 x i8] c"\1B[34m\09\09>> option 5:\1B[0m\1B[35mDelete existing record of a employee. If you want to close record \0A\09\09of a employee use this option.\0A\1B[0m\00"
@.str.16 = [154 x i8] c"\1B[34m\0A\09#option 3:\1B[0m\1B[35m PAYMENT helps you to do payment of fees. It provides you with payment\0A\09receipt that shows details of all fees to be paid.\0A\1B[0m\00"
@.str.17 = [191 x i8] c"\1B[34m\0A\09#option 4:\1B[0m\1B[35m AVAILABILITY helps you to store data about availability of doctors.\0A\09Availability is stored according to days of week and timing for each day. It consists of:\0A\1B[0m\00"
@.str.18 = [74 x i8] c"\1B[34m\09\09>> option 1:\1B[0m\1B[35mAdd new availability record of a doctor.\0A\1B[0m\00"
@.str.19 = [87 x i8] c"\1B[34m\09\09>> option 2:\1B[0m\1B[35mSearch and display availability of particular doctor.\0A\1B[0m\00"
@.str.20 = [80 x i8] c"\1B[34m\09\09>> option 3:\1B[0m\1B[35mEdit availability data of a particular doctor.\0A\1B[0m\00"
@.str.21 = [79 x i8] c"\1B[34m\09\09>> option 4:\1B[0m\1B[35mDelete availabilty data of particular doctor.\0A\1B[0m\00"
@.str.22 = [147 x i8] c"\1B[34m\09\09>> option 5:\1B[0m\1B[35mList availability of all doctors. If you dont know the name of the doctor,\0A\09\09this option displays the whole list.\0A\1B[0m\00"
@.str.23 = [30 x i8] c"\0A\0APress enter key to continue\00"
@str = [146 x i8] c"------------------------------------------------------------------------------------------------------------------------------------------------\0A\00"
define void @manual() {
%1 = alloca [1 x i8]
%2 = tail call i32 @system(i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str, i64 0, i64 0))
%3 = getelementptr inbounds [1 x i8], [1 x i8]* %1, i64 0, i64 0
%4 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([146 x i8], [146 x i8]* @str, i64 0, i64 0))
%5 = tail call i32 @printf(i8* dereferenceable(1) getelementptr inbounds ([56 x i8], [56 x i8]* @.str.2, i64 0, i64 0))
%6 = tail call i32 @printf(i8* dereferenceable(1) getelementptr inbounds ([229 x i8], [229 x i8]* @.str.3, i64 0, i64 0))
%7 = tail call i32 @printf(i8* dereferenceable(1) getelementptr inbounds ([96 x i8], [96 x i8]* @.str.4, i64 0, i64 0))
%8 = tail call i32 @printf(i8* dereferenceable(1) getelementptr inbounds ([127 x i8], [127 x i8]* @.str.5, i64 0, i64 0))
%9 = tail call i32 @printf(i8* dereferenceable(1) getelementptr inbounds ([152 x i8], [152 x i8]* @.str.6, i64 0, i64 0))
%10 = tail call i32 @printf(i8* dereferenceable(1) getelementptr inbounds ([186 x i8], [186 x i8]* @.str.7, i64 0, i64 0))
%11 = tail call i32 @printf(i8* dereferenceable(1) getelementptr inbounds ([161 x i8], [161 x i8]* @.str.8, i64 0, i64 0))
%12 = tail call i32 @printf(i8* dereferenceable(1) getelementptr inbounds ([130 x i8], [130 x i8]* @.str.9, i64 0, i64 0))
%13 = tail call i32 @printf(i8* dereferenceable(1) getelementptr inbounds ([115 x i8], [115 x i8]* @.str.10, i64 0, i64 0))
%14 = tail call i32 @printf(i8* dereferenceable(1) getelementptr inbounds ([128 x i8], [128 x i8]* @.str.11, i64 0, i64 0))
%15 = tail call i32 @printf(i8* dereferenceable(1) getelementptr inbounds ([133 x i8], [133 x i8]* @.str.12, i64 0, i64 0))
%16 = tail call i32 @printf(i8* dereferenceable(1) getelementptr inbounds ([178 x i8], [178 x i8]* @.str.13, i64 0, i64 0))
%17 = tail call i32 @printf(i8* dereferenceable(1) getelementptr inbounds ([157 x i8], [157 x i8]* @.str.14, i64 0, i64 0))
%18 = tail call i32 @printf(i8* dereferenceable(1) getelementptr inbounds ([133 x i8], [133 x i8]* @.str.15, i64 0, i64 0))
%19 = tail call i32 @printf(i8* dereferenceable(1) getelementptr inbounds ([154 x i8], [154 x i8]* @.str.16, i64 0, i64 0))
%20 = tail call i32 @printf(i8* dereferenceable(1) getelementptr inbounds ([191 x i8], [191 x i8]* @.str.17, i64 0, i64 0))
%21 = tail call i32 @printf(i8* dereferenceable(1) getelementptr inbounds ([74 x i8], [74 x i8]* @.str.18, i64 0, i64 0))
%22 = tail call i32 @printf(i8* dereferenceable(1) getelementptr inbounds ([87 x i8], [87 x i8]* @.str.19, i64 0, i64 0))
%23 = tail call i32 @printf(i8* dereferenceable(1) getelementptr inbounds ([80 x i8], [80 x i8]* @.str.20, i64 0, i64 0))
%24 = tail call i32 @printf(i8* dereferenceable(1) getelementptr inbounds ([79 x i8], [79 x i8]* @.str.21, i64 0, i64 0))
%25 = tail call i32 @printf(i8* dereferenceable(1) getelementptr inbounds ([147 x i8], [147 x i8]* @.str.22, i64 0, i64 0))
%26 = tail call i32 @printf(i8* dereferenceable(1) getelementptr inbounds ([30 x i8], [30 x i8]* @.str.23, i64 0, i64 0))
%27 = call i32 @readline(i8* %3, i32 1)
%28 = call i32 @readline(i8* %3, i32 1)
%29 = call i32 @system(i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str, i64 0, i64 0))
%30 = call i32 (...) @printheader()
%31 = call i32 (...) @printmainmenu()
ret void
}