#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 dos_fn_man(char fn) {
  printf("\n");
  switch (fn) {
  case 0:
    printf("Program terminate");
    break;
  case 1:
    printf("Keyboard input with echo");
    break;
  case 2:
    printf("Display output");
    break;
  case 3:
    printf("Wait for auxiliary device input");
    break;
  case 4:
    printf("Auxiliary output");
    break;
  case 5:
    printf("Printer output");
    break;
  case 6:
    printf("Direct console I/O");
    break;
  case 7:
    printf("Wait for direct console input without echo");
    break;
  case 8:
    printf("Wait for console input without echo");
    break;
  case 9:
    printf("Print string");
    break;
  case 0xA:
    printf("Buffered keyboard input");
    break;
  case 0xB:
    printf("Check standard input status");
    break;
  case 0xC:
    printf("Clear keyboard buffer, invoke keyboard function");
    break;
  case 0xD:
    printf("Disk reset");
    break;
  case 0xE:
    printf("Select disk");
    break;
  case 0xF:
    printf("Open file using FCB");
    break;
  case 0x10:
    printf("Close file using FCB");
    break;
  case 0x11:
    printf("Search for first entry using FCB");
    break;
  case 0x12:
    printf("Search for next entry using FCB");
    break;
  case 0x13:
    printf("Delete file using FCB");
    break;
  case 0x14:
    printf("Sequential read using FCB");
    break;
  case 0x15:
    printf("Sequential write using FCB");
    break;
  case 0x16:
    printf("Create a file using FCB");
    break;
  case 0x17:
    printf("Rename file using FCB");
    break;
  case 0x18:
    printf("DOS dummy function (CP/M) (not used/listed)");
    break;
  case 0x19:
    printf("Get current default drive");
    break;
  case 0x1A:
    printf("Set disk transfer address");
    break;
  case 0x1B:
    printf("Get allocation table information");
    break;
  case 0x1C:
    printf("Get allocation table info for specific device");
    break;
  case 0x1D:
    printf("DOS dummy function (CP/M) (not used/listed)");
    break;
  case 0x1E:
    printf("DOS dummy function (CP/M) (not used/listed)");
    break;
  case 0x1F:
    printf("Get pointer to default drive parameter table (undocumented)");
    break;
  case 0x20:
    printf("DOS dummy function (CP/M) (not used/listed)");
    break;
  case 0x21:
    printf("Random read using FCB");
    break;
  case 0x22:
    printf("Random write using FCB");
    break;
  case 0x23:
    printf("Get file size using FCB");
    break;
  case 0x24:
    printf("Set relative record field for FCB");
    break;
  case 0x25:
    printf("Set interrupt vector");
    break;
  case 0x26:
    printf("Create new program segment");
    break;
  case 0x27:
    printf("Random block read using FCB");
    break;
  case 0x28:
    printf("Random block write using FCB");
    break;
  case 0x29:
    printf("Parse filename for FCB");
    break;
  case 0x2A:
    printf("Get date");
    break;
  case 0x2B:
    printf("Set date");
    break;
  case 0x2C:
    printf("Get time");
    break;
  case 0x2D:
    printf("Set time");
    break;
  case 0x2E:
    printf("Set/reset verify switch");
    break;
  case 0x2F:
    printf("Get disk transfer address");
    break;
  case 0x30:
    printf("Get DOS version number");
    break;
  case 0x31:
    printf("Terminate and stay resident");
    break;
  case 0x32:
    printf("Get pointer to drive parameter table (undocumented)");
    break;
  case 0x33:
    printf("Get/set Ctrl-Break check state & get boot drive");
    break;
  case 0x34:
    printf("Get address to DOS critical flag (undocumented)");
    break;
  case 0x35:
    printf("Get interrupt vector");
    break;
  case 0x36:
    printf("Get disk free space");
    break;
  case 0x37:
    printf("Get/set switch character (undocumented)");
    break;
  case 0x38:
    printf("Get/set country dependent information");
    break;
  case 0x39:
    printf("Create subdirectory (mkdir)");
    break;
  case 0x3A:
    printf("Remove subdirectory (rmdir)");
    break;
  case 0x3B:
    printf("Change current subdirectory (chdir)");
    break;
  case 0x3C:
    printf("Create file using handle");
    break;
  case 0x3D:
    printf("Open file using handle");
    break;
  case 0x3E:
    printf("Close file using handle");
    break;
  case 0x3F:
    printf("Read file or device using handle");
    break;
  case 0x40:
    printf("Write file or device using handle");
    break;
  case 0x41:
    printf("Delete file");
    break;
  case 0x42:
    printf("Move file pointer using handle");
    break;
  case 0x43:
    printf("Change file mode");
    break;
  case 0x44:
    printf("I/O control for devices (IOCTL)");
    break;
  case 0x45:
    printf("Duplicate file handle");
    break;
  case 0x46:
    printf("Force duplicate file handle");
    break;
  case 0x47:
    printf("Get current directory");
    break;
  case 0x48:
    printf("Allocate memory blocks");
    break;
  case 0x49:
    printf("Free allocated memory blocks");
    break;
  case 0x4A:
    printf("Modify allocated memory blocks");
    break;
  case 0x4B:
    printf("EXEC load and execute program (func 1 undocumented)");
    break;
  case 0x4C:
    printf("Terminate process with return code");
    break;
  case 0x4D:
    printf("Get return code of a sub-process");
    break;
  case 0x4E:
    printf("Find first matching file");
    break;
  case 0x4F:
    printf("Find next matching file");
    break;
  case 0x50:
    printf("Set current process id (undocumented)");
    break;
  case 0x51:
    printf("Get current process id (undocumented)");
    break;
  case 0x52:
    printf("Get pointer to DOS 'INVARS' (undocumented)");
    break;
  case 0x53:
    printf("Generate drive parameter table (undocumented)");
    break;
  case 0x54:
    printf("Get verify setting");
    break;
  case 0x55:
    printf("Create PSP (undocumented)");
    break;
  case 0x56:
    printf("Rename file");
    break;
  case 0x57:
    printf("Get/set file date and time using handle");
    break;
  case 0x58:
    printf("Get/set memory allocation strategy (3.x+, undocumented)");
    break;
  case 0x59:
    printf("Get extended error information (3.x+)");
    break;
  case 0x5A:
    printf("Create temporary file (3.x+)");
    break;
  case 0x5B:
    printf("Create new file (3.x+)");
    break;
  case 0x5C:
    printf("Lock/unlock file access (3.x+)");
    break;
  case 0x5D:
    printf("Critical error information (undocumented 3.x+)");
    break;
  case 0x5E:
    printf("Network services (3.1+)");
    break;
  case 0x5F:
    printf("Network redirection (3.1+)");
    break;
  case 0x60:
    printf("Get fully qualified file name (undocumented 3.x+)");
    break;
  case 0x62:
    printf("Get address of program segment prefix (3.x+)");
    break;
  case 0x63:
    printf("Get system lead byte table (MSDOS 2.25 only)");
    break;
  case 0x64:
    printf("Set device driver look ahead  (undocumented 3.3+)");
    break;
  case 0x65:
    printf("Get extended country information (3.3+)");
    break;
  case 0x66:
    printf("Get/set global code page (3.3+)");
    break;
  case 0x67:
    printf("Set handle count (3.3+)");
    break;
  case 0x68:
    printf("Flush buffer (3.3+)");
    break;
  case 0x69:
    printf("Get/set disk serial number (undocumented DOS 4.0+)");
    break;
  case 0x6A:
    printf("DOS reserved (DOS 4.0+)");
    break;
  case 0x6B:
    printf("DOS reserved");
    break;
  case 0x6C:
    printf("Extended open/create (4.x+)");
    break;
  case 0xF8:
  case 0xF9:
  case 0xFA:
  case 0xFB:
  case 0xFC:
  case 0xFD:
  case 0xFE:
  case 0xFF:
    printf("OEM INT 21 handler (undocumented)");
    break;
  default:
    printf("unknown");
  }
}


x86 assembly (clang, -O0):
<dos_fn_man>:
push   %rbp
mov    %rsp,%rbp
sub    $0x10,%rsp
mov    %dil,%al
mov    %al,-0x1(%rbp)
lea    0x12db(%rip),%rdi
call   1030 <printf@plt>
movsbl -0x1(%rbp),%eax
mov    %eax,%ecx
mov    %rcx,-0x10(%rbp)
sub    $0xff,%eax
ja     1890 <dos_fn_man+0x780>
mov    -0x10(%rbp),%rax
lea    0xeb6(%rip),%rcx
movslq (%rcx,%rax,4),%rax
add    %rcx,%rax
jmp    *%rax
lea    0x12a8(%rip),%rdi
call   1030 <printf@plt>
jmp    189c <dos_fn_man+0x78c>
lea    0x12a9(%rip),%rdi
call   1030 <printf@plt>
jmp    189c <dos_fn_man+0x78c>
lea    0x12b1(%rip),%rdi
call   1030 <printf@plt>
jmp    189c <dos_fn_man+0x78c>
lea    0x12af(%rip),%rdi
call   1030 <printf@plt>
jmp    189c <dos_fn_man+0x78c>
lea    0x12be(%rip),%rdi
call   1030 <printf@plt>
jmp    189c <dos_fn_man+0x78c>
lea    0x12be(%rip),%rdi
call   1030 <printf@plt>
jmp    189c <dos_fn_man+0x78c>
lea    0x12bc(%rip),%rdi
call   1030 <printf@plt>
jmp    189c <dos_fn_man+0x78c>
lea    0x12be(%rip),%rdi
call   1030 <printf@plt>
jmp    189c <dos_fn_man+0x78c>
lea    0x12d8(%rip),%rdi
call   1030 <printf@plt>
jmp    189c <dos_fn_man+0x78c>
lea    0x12eb(%rip),%rdi
call   1030 <printf@plt>
jmp    189c <dos_fn_man+0x78c>
lea    0x12e7(%rip),%rdi
call   1030 <printf@plt>
jmp    189c <dos_fn_man+0x78c>
lea    0x12ee(%rip),%rdi
call   1030 <printf@plt>
jmp    189c <dos_fn_man+0x78c>
lea    0x12f9(%rip),%rdi
call   1030 <printf@plt>
jmp    189c <dos_fn_man+0x78c>
lea    0x1318(%rip),%rdi
call   1030 <printf@plt>
jmp    189c <dos_fn_man+0x78c>
lea    0x1312(%rip),%rdi
call   1030 <printf@plt>
jmp    189c <dos_fn_man+0x78c>
lea    0x130d(%rip),%rdi
call   1030 <printf@plt>
jmp    189c <dos_fn_man+0x78c>
lea    0x1310(%rip),%rdi
call   1030 <printf@plt>
jmp    189c <dos_fn_man+0x78c>
lea    0x1314(%rip),%rdi
call   1030 <printf@plt>
jmp    189c <dos_fn_man+0x78c>
lea    0x1324(%rip),%rdi
call   1030 <printf@plt>
jmp    189c <dos_fn_man+0x78c>
lea    0x1333(%rip),%rdi
call   1030 <printf@plt>
jmp    189c <dos_fn_man+0x78c>
lea    0x1338(%rip),%rdi
call   1030 <printf@plt>
jmp    189c <dos_fn_man+0x78c>
lea    0x1341(%rip),%rdi
call   1030 <printf@plt>
jmp    189c <dos_fn_man+0x78c>
lea    0x134b(%rip),%rdi
call   1030 <printf@plt>
jmp    189c <dos_fn_man+0x78c>
lea    0x1352(%rip),%rdi
call   1030 <printf@plt>
jmp    189c <dos_fn_man+0x78c>
lea    0x1357(%rip),%rdi
call   1030 <printf@plt>
jmp    189c <dos_fn_man+0x78c>
lea    0x1372(%rip),%rdi
call   1030 <printf@plt>
jmp    189c <dos_fn_man+0x78c>
lea    0x137b(%rip),%rdi
call   1030 <printf@plt>
jmp    189c <dos_fn_man+0x78c>
lea    0x1384(%rip),%rdi
call   1030 <printf@plt>
jmp    189c <dos_fn_man+0x78c>
lea    0x1394(%rip),%rdi
call   1030 <printf@plt>
jmp    189c <dos_fn_man+0x78c>
lea    0x1302(%rip),%rdi
call   1030 <printf@plt>
jmp    189c <dos_fn_man+0x78c>
lea    0x12f1(%rip),%rdi
call   1030 <printf@plt>
jmp    189c <dos_fn_man+0x78c>
lea    0x138f(%rip),%rdi
call   1030 <printf@plt>
jmp    189c <dos_fn_man+0x78c>
lea    0x12cf(%rip),%rdi
call   1030 <printf@plt>
jmp    189c <dos_fn_man+0x78c>
lea    0x13a9(%rip),%rdi
call   1030 <printf@plt>
jmp    189c <dos_fn_man+0x78c>
lea    0x13ae(%rip),%rdi
call   1030 <printf@plt>
jmp    189c <dos_fn_man+0x78c>
lea    0x13b4(%rip),%rdi
call   1030 <printf@plt>
jmp    189c <dos_fn_man+0x78c>
lea    0x13bb(%rip),%rdi
call   1030 <printf@plt>
jmp    189c <dos_fn_man+0x78c>
lea    0x13cc(%rip),%rdi
call   1030 <printf@plt>
jmp    189c <dos_fn_man+0x78c>
lea    0x13d0(%rip),%rdi
call   1030 <printf@plt>
jmp    189c <dos_fn_man+0x78c>
lea    0x13da(%rip),%rdi
call   1030 <printf@plt>
jmp    189c <dos_fn_man+0x78c>
lea    0x13e5(%rip),%rdi
call   1030 <printf@plt>
jmp    189c <dos_fn_man+0x78c>
lea    0x13f1(%rip),%rdi
call   1030 <printf@plt>
jmp    189c <dos_fn_man+0x78c>
lea    0x13f7(%rip),%rdi
call   1030 <printf@plt>
jmp    189c <dos_fn_man+0x78c>
lea    0x13ef(%rip),%rdi
call   1030 <printf@plt>
jmp    189c <dos_fn_man+0x78c>
lea    0x13e7(%rip),%rdi
call   1030 <printf@plt>
jmp    189c <dos_fn_man+0x78c>
lea    0x13df(%rip),%rdi
call   1030 <printf@plt>
jmp    189c <dos_fn_man+0x78c>
lea    0x13d7(%rip),%rdi
call   1030 <printf@plt>
jmp    189c <dos_fn_man+0x78c>
lea    0x13de(%rip),%rdi
call   1030 <printf@plt>
jmp    189c <dos_fn_man+0x78c>
lea    0x13e7(%rip),%rdi
call   1030 <printf@plt>
jmp    189c <dos_fn_man+0x78c>
lea    0x13ed(%rip),%rdi
call   1030 <printf@plt>
jmp    189c <dos_fn_man+0x78c>
lea    0x13f8(%rip),%rdi
call   1030 <printf@plt>
jmp    189c <dos_fn_man+0x78c>
lea    0x141b(%rip),%rdi
call   1030 <printf@plt>
jmp    189c <dos_fn_man+0x78c>
lea    0x143a(%rip),%rdi
call   1030 <printf@plt>
jmp    189c <dos_fn_man+0x78c>
lea    0x1459(%rip),%rdi
call   1030 <printf@plt>
jmp    189c <dos_fn_man+0x78c>
lea    0x145d(%rip),%rdi
call   1030 <printf@plt>
jmp    189c <dos_fn_man+0x78c>
lea    0x1460(%rip),%rdi
call   1030 <printf@plt>
jmp    189c <dos_fn_man+0x78c>
lea    0x1477(%rip),%rdi
call   1030 <printf@plt>
jmp    189c <dos_fn_man+0x78c>
lea    0x148c(%rip),%rdi
call   1030 <printf@plt>
jmp    189c <dos_fn_man+0x78c>
lea    0x1497(%rip),%rdi
call   1030 <printf@plt>
jmp    189c <dos_fn_man+0x78c>
lea    0x14a2(%rip),%rdi
call   1030 <printf@plt>
jmp    189c <dos_fn_man+0x78c>
lea    0x14b5(%rip),%rdi
call   1030 <printf@plt>
jmp    189c <dos_fn_man+0x78c>
lea    0x14bd(%rip),%rdi
call   1030 <printf@plt>
jmp    189c <dos_fn_man+0x78c>
lea    0x14c3(%rip),%rdi
call   1030 <printf@plt>
jmp    189c <dos_fn_man+0x78c>
lea    0x14ca(%rip),%rdi
call   1030 <printf@plt>
jmp    189c <dos_fn_man+0x78c>
lea    0x14da(%rip),%rdi
call   1030 <printf@plt>
jmp    189c <dos_fn_man+0x78c>
lea    0x14eb(%rip),%rdi
call   1030 <printf@plt>
jmp    189c <dos_fn_man+0x78c>
lea    0x14e6(%rip),%rdi
call   1030 <printf@plt>
jmp    189c <dos_fn_man+0x78c>
lea    0x14f4(%rip),%rdi
call   1030 <printf@plt>
jmp    189c <dos_fn_man+0x78c>
lea    0x14f4(%rip),%rdi
call   1030 <printf@plt>
jmp    189c <dos_fn_man+0x78c>
lea    0x1503(%rip),%rdi
call   1030 <printf@plt>
jmp    189c <dos_fn_man+0x78c>
lea    0x1508(%rip),%rdi
call   1030 <printf@plt>
jmp    189c <dos_fn_man+0x78c>
lea    0x1513(%rip),%rdi
call   1030 <printf@plt>
jmp    189c <dos_fn_man+0x78c>
lea    0x1518(%rip),%rdi
call   1030 <printf@plt>
jmp    189c <dos_fn_man+0x78c>
lea    0x151e(%rip),%rdi
call   1030 <printf@plt>
jmp    189c <dos_fn_man+0x78c>
lea    0x152a(%rip),%rdi
call   1030 <printf@plt>
jmp    189c <dos_fn_man+0x78c>
lea    0x1538(%rip),%rdi
call   1030 <printf@plt>
jmp    189c <dos_fn_man+0x78c>
lea    0x155b(%rip),%rdi
call   1030 <printf@plt>
jmp    189c <dos_fn_man+0x78c>
lea    0x156d(%rip),%rdi
call   1030 <printf@plt>
jmp    189c <dos_fn_man+0x78c>
lea    0x157d(%rip),%rdi
call   1030 <printf@plt>
jmp    189c <dos_fn_man+0x78c>
lea    0x1585(%rip),%rdi
call   1030 <printf@plt>
jmp    189c <dos_fn_man+0x78c>
lea    0x158c(%rip),%rdi
call   1030 <printf@plt>
jmp    189c <dos_fn_man+0x78c>
lea    0x15a1(%rip),%rdi
call   1030 <printf@plt>
jmp    189c <dos_fn_man+0x78c>
lea    0x15b6(%rip),%rdi
call   1030 <printf@plt>
jmp    189c <dos_fn_man+0x78c>
lea    0x15d0(%rip),%rdi
call   1030 <printf@plt>
jmp    189c <dos_fn_man+0x78c>
lea    0x15ed(%rip),%rdi
call   1030 <printf@plt>
jmp    189c <dos_fn_man+0x78c>
lea    0x15ef(%rip),%rdi
call   1030 <printf@plt>
jmp    189c <dos_fn_man+0x78c>
lea    0x15f8(%rip),%rdi
call   1030 <printf@plt>
jmp    189c <dos_fn_man+0x78c>
lea    0x15f3(%rip),%rdi
call   1030 <printf@plt>
jmp    189c <dos_fn_man+0x78c>
lea    0x160a(%rip),%rdi
call   1030 <printf@plt>
jmp    189c <dos_fn_man+0x78c>
lea    0x1631(%rip),%rdi
call   1030 <printf@plt>
jmp    189c <dos_fn_man+0x78c>
lea    0x1646(%rip),%rdi
call   1030 <printf@plt>
jmp    189c <dos_fn_man+0x78c>
lea    0x1652(%rip),%rdi
call   1030 <printf@plt>
jmp    189c <dos_fn_man+0x78c>
lea    0x1658(%rip),%rdi
call   1030 <printf@plt>
jmp    189c <dos_fn_man+0x78c>
lea    0x1666(%rip),%rdi
call   1030 <printf@plt>
jmp    189c <dos_fn_man+0x78c>
lea    0x1684(%rip),%rdi
call   1030 <printf@plt>
jmp    189c <dos_fn_man+0x78c>
lea    0x168b(%rip),%rdi
call   1030 <printf@plt>
jmp    189c <dos_fn_man+0x78c>
lea    0x1695(%rip),%rdi
call   1030 <printf@plt>
jmp    189c <dos_fn_man+0x78c>
lea    0x16b6(%rip),%rdi
call   1030 <printf@plt>
jmp    189c <dos_fn_man+0x78c>
lea    0x16d2(%rip),%rdi
call   1030 <printf@plt>
jmp    189c <dos_fn_man+0x78c>
lea    0x16ee(%rip),%rdi
call   1030 <printf@plt>
jmp    189c <dos_fn_man+0x78c>
lea    0x170f(%rip),%rdi
call   1030 <printf@plt>
jmp    189c <dos_fn_man+0x78c>
lea    0x1726(%rip),%rdi
call   1030 <printf@plt>
jmp    189c <dos_fn_man+0x78c>
lea    0x1735(%rip),%rdi
call   1030 <printf@plt>
jmp    189c <dos_fn_man+0x78c>
lea    0x173c(%rip),%rdi
call   1030 <printf@plt>
jmp    189c <dos_fn_man+0x78c>
lea    0x173f(%rip),%rdi
call   1030 <printf@plt>
jmp    189c <dos_fn_man+0x78c>
lea    0x1761(%rip),%rdi
call   1030 <printf@plt>
jmp    189c <dos_fn_man+0x78c>
lea    0x1768(%rip),%rdi
call   1030 <printf@plt>
jmp    189c <dos_fn_man+0x78c>
lea    0x1764(%rip),%rdi
call   1030 <printf@plt>
jmp    189c <dos_fn_man+0x78c>
lea    0x176f(%rip),%rdi
call   1030 <printf@plt>
jmp    189c <dos_fn_man+0x78c>
lea    0x1780(%rip),%rdi
call   1030 <printf@plt>
add    $0x10,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<dos_fn_man>:
push   %rbx
mov    %edi,%ebx
mov    $0xa,%edi
call   1030 <putchar@plt>
cmp    $0x6c,%bl
ja     114a <dos_fn_man+0x2a>
movsbq %bl,%rax
lea    0x1abf(%rip),%rcx
movslq (%rcx,%rax,4),%rdi
add    %rcx,%rdi
pop    %rbx
jmp    1040 <printf@plt>
lea    0x1aa2(%rip),%rdi
pop    %rbx
jmp    1040 <printf@plt>

LLVM IR (-O0):
@.str = [2 x i8] c"\0A\00"
@.str.1 = [18 x i8] c"Program terminate\00"
@.str.2 = [25 x i8] c"Keyboard input with echo\00"
@.str.3 = [15 x i8] c"Display output\00"
@.str.4 = [32 x i8] c"Wait for auxiliary device input\00"
@.str.5 = [17 x i8] c"Auxiliary output\00"
@.str.6 = [15 x i8] c"Printer output\00"
@.str.7 = [19 x i8] c"Direct console I/O\00"
@.str.8 = [43 x i8] c"Wait for direct console input without echo\00"
@.str.9 = [36 x i8] c"Wait for console input without echo\00"
@.str.10 = [13 x i8] c"Print string\00"
@.str.11 = [24 x i8] c"Buffered keyboard input\00"
@.str.12 = [28 x i8] c"Check standard input status\00"
@.str.13 = [48 x i8] c"Clear keyboard buffer, invoke keyboard function\00"
@.str.14 = [11 x i8] c"Disk reset\00"
@.str.15 = [12 x i8] c"Select disk\00"
@.str.16 = [20 x i8] c"Open file using FCB\00"
@.str.17 = [21 x i8] c"Close file using FCB\00"
@.str.18 = [33 x i8] c"Search for first entry using FCB\00"
@.str.19 = [32 x i8] c"Search for next entry using FCB\00"
@.str.20 = [22 x i8] c"Delete file using FCB\00"
@.str.21 = [26 x i8] c"Sequential read using FCB\00"
@.str.22 = [27 x i8] c"Sequential write using FCB\00"
@.str.23 = [24 x i8] c"Create a file using FCB\00"
@.str.24 = [22 x i8] c"Rename file using FCB\00"
@.str.25 = [44 x i8] c"DOS dummy function (CP/M) (not used/listed)\00"
@.str.26 = [26 x i8] c"Get current default drive\00"
@.str.27 = [26 x i8] c"Set disk transfer address\00"
@.str.28 = [33 x i8] c"Get allocation table information\00"
@.str.29 = [46 x i8] c"Get allocation table info for specific device\00"
@.str.30 = [60 x i8] c"Get pointer to default drive parameter table (undocumented)\00"
@.str.31 = [22 x i8] c"Random read using FCB\00"
@.str.32 = [23 x i8] c"Random write using FCB\00"
@.str.33 = [24 x i8] c"Get file size using FCB\00"
@.str.34 = [34 x i8] c"Set relative record field for FCB\00"
@.str.35 = [21 x i8] c"Set interrupt vector\00"
@.str.36 = [27 x i8] c"Create new program segment\00"
@.str.37 = [28 x i8] c"Random block read using FCB\00"
@.str.38 = [29 x i8] c"Random block write using FCB\00"
@.str.39 = [23 x i8] c"Parse filename for FCB\00"
@.str.40 = [9 x i8] c"Get date\00"
@.str.41 = [9 x i8] c"Set date\00"
@.str.42 = [9 x i8] c"Get time\00"
@.str.43 = [9 x i8] c"Set time\00"
@.str.44 = [24 x i8] c"Set/reset verify switch\00"
@.str.45 = [26 x i8] c"Get disk transfer address\00"
@.str.46 = [23 x i8] c"Get DOS version number\00"
@.str.47 = [28 x i8] c"Terminate and stay resident\00"
@.str.48 = [52 x i8] c"Get pointer to drive parameter table (undocumented)\00"
@.str.49 = [48 x i8] c"Get/set Ctrl-Break check state & get boot drive\00"
@.str.50 = [48 x i8] c"Get address to DOS critical flag (undocumented)\00"
@.str.51 = [21 x i8] c"Get interrupt vector\00"
@.str.52 = [20 x i8] c"Get disk free space\00"
@.str.53 = [40 x i8] c"Get/set switch character (undocumented)\00"
@.str.54 = [38 x i8] c"Get/set country dependent information\00"
@.str.55 = [28 x i8] c"Create subdirectory (mkdir)\00"
@.str.56 = [28 x i8] c"Remove subdirectory (rmdir)\00"
@.str.57 = [36 x i8] c"Change current subdirectory (chdir)\00"
@.str.58 = [25 x i8] c"Create file using handle\00"
@.str.59 = [23 x i8] c"Open file using handle\00"
@.str.60 = [24 x i8] c"Close file using handle\00"
@.str.61 = [33 x i8] c"Read file or device using handle\00"
@.str.62 = [34 x i8] c"Write file or device using handle\00"
@.str.63 = [12 x i8] c"Delete file\00"
@.str.64 = [31 x i8] c"Move file pointer using handle\00"
@.str.65 = [17 x i8] c"Change file mode\00"
@.str.66 = [32 x i8] c"I/O control for devices (IOCTL)\00"
@.str.67 = [22 x i8] c"Duplicate file handle\00"
@.str.68 = [28 x i8] c"Force duplicate file handle\00"
@.str.69 = [22 x i8] c"Get current directory\00"
@.str.70 = [23 x i8] c"Allocate memory blocks\00"
@.str.71 = [29 x i8] c"Free allocated memory blocks\00"
@.str.72 = [31 x i8] c"Modify allocated memory blocks\00"
@.str.73 = [52 x i8] c"EXEC load and execute program (func 1 undocumented)\00"
@.str.74 = [35 x i8] c"Terminate process with return code\00"
@.str.75 = [33 x i8] c"Get return code of a sub-process\00"
@.str.76 = [25 x i8] c"Find first matching file\00"
@.str.77 = [24 x i8] c"Find next matching file\00"
@.str.78 = [38 x i8] c"Set current process id (undocumented)\00"
@.str.79 = [38 x i8] c"Get current process id (undocumented)\00"
@.str.80 = [43 x i8] c"Get pointer to DOS 'INVARS' (undocumented)\00"
@.str.81 = [46 x i8] c"Generate drive parameter table (undocumented)\00"
@.str.82 = [19 x i8] c"Get verify setting\00"
@.str.83 = [26 x i8] c"Create PSP (undocumented)\00"
@.str.84 = [12 x i8] c"Rename file\00"
@.str.85 = [40 x i8] c"Get/set file date and time using handle\00"
@.str.86 = [56 x i8] c"Get/set memory allocation strategy (3.x+, undocumented)\00"
@.str.87 = [38 x i8] c"Get extended error information (3.x+)\00"
@.str.88 = [29 x i8] c"Create temporary file (3.x+)\00"
@.str.89 = [23 x i8] c"Create new file (3.x+)\00"
@.str.90 = [31 x i8] c"Lock/unlock file access (3.x+)\00"
@.str.91 = [47 x i8] c"Critical error information (undocumented 3.x+)\00"
@.str.92 = [24 x i8] c"Network services (3.1+)\00"
@.str.93 = [27 x i8] c"Network redirection (3.1+)\00"
@.str.94 = [50 x i8] c"Get fully qualified file name (undocumented 3.x+)\00"
@.str.95 = [45 x i8] c"Get address of program segment prefix (3.x+)\00"
@.str.96 = [45 x i8] c"Get system lead byte table (MSDOS 2.25 only)\00"
@.str.97 = [50 x i8] c"Set device driver look ahead (undocumented 3.3+)\00"
@.str.98 = [40 x i8] c"Get extended country information (3.3+)\00"
@.str.99 = [32 x i8] c"Get/set global code page (3.3+)\00"
@.str.100 = [24 x i8] c"Set handle count (3.3+)\00"
@.str.101 = [20 x i8] c"Flush buffer (3.3+)\00"
@.str.102 = [51 x i8] c"Get/set disk serial number (undocumented DOS 4.0+)\00"
@.str.103 = [24 x i8] c"DOS reserved (DOS 4.0+)\00"
@.str.104 = [13 x i8] c"DOS reserved\00"
@.str.105 = [28 x i8] c"Extended open/create (4.x+)\00"
@.str.106 = [34 x i8] c"OEM INT 21 handler (undocumented)\00"
@.str.107 = [8 x i8] c"unknown\00"
define void @dos_fn_man(i8 signext %0) {
%2 = alloca i8
store i8 %0, i8* %2
%3 = call i32 @printf(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str, i64 0, i64 0))
%4 = load i8, i8* %2
%5 = sext i8 %4 to i32
switch i32 %5, label %224 [
i32 0, label %6
i32 1, label %8
i32 2, label %10
i32 3, label %12
i32 4, label %14
i32 5, label %16
i32 6, label %18
i32 7, label %20
i32 8, label %22
i32 9, label %24
i32 10, label %26
i32 11, label %28
i32 12, label %30
i32 13, label %32
i32 14, label %34
i32 15, label %36
i32 16, label %38
i32 17, label %40
i32 18, label %42
i32 19, label %44
i32 20, label %46
i32 21, label %48
i32 22, label %50
i32 23, label %52
i32 24, label %54
i32 25, label %56
i32 26, label %58
i32 27, label %60
i32 28, label %62
i32 29, label %64
i32 30, label %66
i32 31, label %68
i32 32, label %70
i32 33, label %72
i32 34, label %74
i32 35, label %76
i32 36, label %78
i32 37, label %80
i32 38, label %82
i32 39, label %84
i32 40, label %86
i32 41, label %88
i32 42, label %90
i32 43, label %92
i32 44, label %94
i32 45, label %96
i32 46, label %98
i32 47, label %100
i32 48, label %102
i32 49, label %104
i32 50, label %106
i32 51, label %108
i32 52, label %110
i32 53, label %112
i32 54, label %114
i32 55, label %116
i32 56, label %118
i32 57, label %120
i32 58, label %122
i32 59, label %124
i32 60, label %126
i32 61, label %128
i32 62, label %130
i32 63, label %132
i32 64, label %134
i32 65, label %136
i32 66, label %138
i32 67, label %140
i32 68, label %142
i32 69, label %144
i32 70, label %146
i32 71, label %148
i32 72, label %150
i32 73, label %152
i32 74, label %154
i32 75, label %156
i32 76, label %158
i32 77, label %160
i32 78, label %162
i32 79, label %164
i32 80, label %166
i32 81, label %168
i32 82, label %170
i32 83, label %172
i32 84, label %174
i32 85, label %176
i32 86, label %178
i32 87, label %180
i32 88, label %182
i32 89, label %184
i32 90, label %186
i32 91, label %188
i32 92, label %190
i32 93, label %192
i32 94, label %194
i32 95, label %196
i32 96, label %198
i32 98, label %200
i32 99, label %202
i32 100, label %204
i32 101, label %206
i32 102, label %208
i32 103, label %210
i32 104, label %212
i32 105, label %214
i32 106, label %216
i32 107, label %218
i32 108, label %220
i32 248, label %222
i32 249, label %222
i32 250, label %222
i32 251, label %222
i32 252, label %222
i32 253, label %222
i32 254, label %222
i32 255, label %222
]
6: ; preds = %1
%7 = call i32 @printf(i8* getelementptr inbounds ([18 x i8], [18 x i8]* @.str.1, i64 0, i64 0))
br label %226
8: ; preds = %1
%9 = call i32 @printf(i8* getelementptr inbounds ([25 x i8], [25 x i8]* @.str.2, i64 0, i64 0))
br label %226
10: ; preds = %1
%11 = call i32 @printf(i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str.3, i64 0, i64 0))
br label %226
12: ; preds = %1
%13 = call i32 @printf(i8* getelementptr inbounds ([32 x i8], [32 x i8]* @.str.4, i64 0, i64 0))
br label %226
14: ; preds = %1
%15 = call i32 @printf(i8* getelementptr inbounds ([17 x i8], [17 x i8]* @.str.5, i64 0, i64 0))
br label %226
16: ; preds = %1
%17 = call i32 @printf(i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str.6, i64 0, i64 0))
br label %226
18: ; preds = %1
%19 = call i32 @printf(i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.7, i64 0, i64 0))
br label %226
20: ; preds = %1
%21 = call i32 @printf(i8* getelementptr inbounds ([43 x i8], [43 x i8]* @.str.8, i64 0, i64 0))
br label %226
22: ; preds = %1
%23 = call i32 @printf(i8* getelementptr inbounds ([36 x i8], [36 x i8]* @.str.9, i64 0, i64 0))
br label %226
24: ; preds = %1
%25 = call i32 @printf(i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.10, i64 0, i64 0))
br label %226
26: ; preds = %1
%27 = call i32 @printf(i8* getelementptr inbounds ([24 x i8], [24 x i8]* @.str.11, i64 0, i64 0))
br label %226
28: ; preds = %1
%29 = call i32 @printf(i8* getelementptr inbounds ([28 x i8], [28 x i8]* @.str.12, i64 0, i64 0))
br label %226
30: ; preds = %1
%31 = call i32 @printf(i8* getelementptr inbounds ([48 x i8], [48 x i8]* @.str.13, i64 0, i64 0))
br label %226
32: ; preds = %1
%33 = call i32 @printf(i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str.14, i64 0, i64 0))
br label %226
34: ; preds = %1
%35 = call i32 @printf(i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.15, i64 0, i64 0))
br label %226
36: ; preds = %1
%37 = call i32 @printf(i8* getelementptr inbounds ([20 x i8], [20 x i8]* @.str.16, i64 0, i64 0))
br label %226
38: ; preds = %1
%39 = call i32 @printf(i8* getelementptr inbounds ([21 x i8], [21 x i8]* @.str.17, i64 0, i64 0))
br label %226
40: ; preds = %1
%41 = call i32 @printf(i8* getelementptr inbounds ([33 x i8], [33 x i8]* @.str.18, i64 0, i64 0))
br label %226
42: ; preds = %1
%43 = call i32 @printf(i8* getelementptr inbounds ([32 x i8], [32 x i8]* @.str.19, i64 0, i64 0))
br label %226
44: ; preds = %1
%45 = call i32 @printf(i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.20, i64 0, i64 0))
br label %226
46: ; preds = %1
%47 = call i32 @printf(i8* getelementptr inbounds ([26 x i8], [26 x i8]* @.str.21, i64 0, i64 0))
br label %226
48: ; preds = %1
%49 = call i32 @printf(i8* getelementptr inbounds ([27 x i8], [27 x i8]* @.str.22, i64 0, i64 0))
br label %226
50: ; preds = %1
%51 = call i32 @printf(i8* getelementptr inbounds ([24 x i8], [24 x i8]* @.str.23, i64 0, i64 0))
br label %226
52: ; preds = %1
%53 = call i32 @printf(i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.24, i64 0, i64 0))
br label %226
54: ; preds = %1
%55 = call i32 @printf(i8* getelementptr inbounds ([44 x i8], [44 x i8]* @.str.25, i64 0, i64 0))
br label %226
56: ; preds = %1
%57 = call i32 @printf(i8* getelementptr inbounds ([26 x i8], [26 x i8]* @.str.26, i64 0, i64 0))
br label %226
58: ; preds = %1
%59 = call i32 @printf(i8* getelementptr inbounds ([26 x i8], [26 x i8]* @.str.27, i64 0, i64 0))
br label %226
60: ; preds = %1
%61 = call i32 @printf(i8* getelementptr inbounds ([33 x i8], [33 x i8]* @.str.28, i64 0, i64 0))
br label %226
62: ; preds = %1
%63 = call i32 @printf(i8* getelementptr inbounds ([46 x i8], [46 x i8]* @.str.29, i64 0, i64 0))
br label %226
64: ; preds = %1
%65 = call i32 @printf(i8* getelementptr inbounds ([44 x i8], [44 x i8]* @.str.25, i64 0, i64 0))
br label %226
66: ; preds = %1
%67 = call i32 @printf(i8* getelementptr inbounds ([44 x i8], [44 x i8]* @.str.25, i64 0, i64 0))
br label %226
68: ; preds = %1
%69 = call i32 @printf(i8* getelementptr inbounds ([60 x i8], [60 x i8]* @.str.30, i64 0, i64 0))
br label %226
70: ; preds = %1
%71 = call i32 @printf(i8* getelementptr inbounds ([44 x i8], [44 x i8]* @.str.25, i64 0, i64 0))
br label %226
72: ; preds = %1
%73 = call i32 @printf(i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.31, i64 0, i64 0))
br label %226
74: ; preds = %1
%75 = call i32 @printf(i8* getelementptr inbounds ([23 x i8], [23 x i8]* @.str.32, i64 0, i64 0))
br label %226
76: ; preds = %1
%77 = call i32 @printf(i8* getelementptr inbounds ([24 x i8], [24 x i8]* @.str.33, i64 0, i64 0))
br label %226
78: ; preds = %1
%79 = call i32 @printf(i8* getelementptr inbounds ([34 x i8], [34 x i8]* @.str.34, i64 0, i64 0))
br label %226
80: ; preds = %1
%81 = call i32 @printf(i8* getelementptr inbounds ([21 x i8], [21 x i8]* @.str.35, i64 0, i64 0))
br label %226
82: ; preds = %1
%83 = call i32 @printf(i8* getelementptr inbounds ([27 x i8], [27 x i8]* @.str.36, i64 0, i64 0))
br label %226
84: ; preds = %1
%85 = call i32 @printf(i8* getelementptr inbounds ([28 x i8], [28 x i8]* @.str.37, i64 0, i64 0))
br label %226
86: ; preds = %1
%87 = call i32 @printf(i8* getelementptr inbounds ([29 x i8], [29 x i8]* @.str.38, i64 0, i64 0))
br label %226
88: ; preds = %1
%89 = call i32 @printf(i8* getelementptr inbounds ([23 x i8], [23 x i8]* @.str.39, i64 0, i64 0))
br label %226
90: ; preds = %1
%91 = call i32 @printf(i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.40, i64 0, i64 0))
br label %226
92: ; preds = %1
%93 = call i32 @printf(i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.41, i64 0, i64 0))
br label %226
94: ; preds = %1
%95 = call i32 @printf(i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.42, i64 0, i64 0))
br label %226
96: ; preds = %1
%97 = call i32 @printf(i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.43, i64 0, i64 0))
br label %226
98: ; preds = %1
%99 = call i32 @printf(i8* getelementptr inbounds ([24 x i8], [24 x i8]* @.str.44, i64 0, i64 0))
br label %226
100: ; preds = %1
%101 = call i32 @printf(i8* getelementptr inbounds ([26 x i8], [26 x i8]* @.str.45, i64 0, i64 0))
br label %226
102: ; preds = %1
%103 = call i32 @printf(i8* getelementptr inbounds ([23 x i8], [23 x i8]* @.str.46, i64 0, i64 0))
br label %226
104: ; preds = %1
%105 = call i32 @printf(i8* getelementptr inbounds ([28 x i8], [28 x i8]* @.str.47, i64 0, i64 0))
br label %226
106: ; preds = %1
%107 = call i32 @printf(i8* getelementptr inbounds ([52 x i8], [52 x i8]* @.str.48, i64 0, i64 0))
br label %226
108: ; preds = %1
%109 = call i32 @printf(i8* getelementptr inbounds ([48 x i8], [48 x i8]* @.str.49, i64 0, i64 0))
br label %226
110: ; preds = %1
%111 = call i32 @printf(i8* getelementptr inbounds ([48 x i8], [48 x i8]* @.str.50, i64 0, i64 0))
br label %226
112: ; preds = %1
%113 = call i32 @printf(i8* getelementptr inbounds ([21 x i8], [21 x i8]* @.str.51, i64 0, i64 0))
br label %226
114: ; preds = %1
%115 = call i32 @printf(i8* getelementptr inbounds ([20 x i8], [20 x i8]* @.str.52, i64 0, i64 0))
br label %226
116: ; preds = %1
%117 = call i32 @printf(i8* getelementptr inbounds ([40 x i8], [40 x i8]* @.str.53, i64 0, i64 0))
br label %226
118: ; preds = %1
%119 = call i32 @printf(i8* getelementptr inbounds ([38 x i8], [38 x i8]* @.str.54, i64 0, i64 0))
br label %226
120: ; preds = %1
%121 = call i32 @printf(i8* getelementptr inbounds ([28 x i8], [28 x i8]* @.str.55, i64 0, i64 0))
br label %226
122: ; preds = %1
%123 = call i32 @printf(i8* getelementptr inbounds ([28 x i8], [28 x i8]* @.str.56, i64 0, i64 0))
br label %226
124: ; preds = %1
%125 = call i32 @printf(i8* getelementptr inbounds ([36 x i8], [36 x i8]* @.str.57, i64 0, i64 0))
br label %226
126: ; preds = %1
%127 = call i32 @printf(i8* getelementptr inbounds ([25 x i8], [25 x i8]* @.str.58, i64 0, i64 0))
br label %226
128: ; preds = %1
%129 = call i32 @printf(i8* getelementptr inbounds ([23 x i8], [23 x i8]* @.str.59, i64 0, i64 0))
br label %226
130: ; preds = %1
%131 = call i32 @printf(i8* getelementptr inbounds ([24 x i8], [24 x i8]* @.str.60, i64 0, i64 0))
br label %226
132: ; preds = %1
%133 = call i32 @printf(i8* getelementptr inbounds ([33 x i8], [33 x i8]* @.str.61, i64 0, i64 0))
br label %226
134: ; preds = %1
%135 = call i32 @printf(i8* getelementptr inbounds ([34 x i8], [34 x i8]* @.str.62, i64 0, i64 0))
br label %226
136: ; preds = %1
%137 = call i32 @printf(i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.63, i64 0, i64 0))
br label %226
138: ; preds = %1
%139 = call i32 @printf(i8* getelementptr inbounds ([31 x i8], [31 x i8]* @.str.64, i64 0, i64 0))
br label %226
140: ; preds = %1
%141 = call i32 @printf(i8* getelementptr inbounds ([17 x i8], [17 x i8]* @.str.65, i64 0, i64 0))
br label %226
142: ; preds = %1
%143 = call i32 @printf(i8* getelementptr inbounds ([32 x i8], [32 x i8]* @.str.66, i64 0, i64 0))
br label %226
144: ; preds = %1
%145 = call i32 @printf(i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.67, i64 0, i64 0))
br label %226
146: ; preds = %1
%147 = call i32 @printf(i8* getelementptr inbounds ([28 x i8], [28 x i8]* @.str.68, i64 0, i64 0))
br label %226
148: ; preds = %1
%149 = call i32 @printf(i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.69, i64 0, i64 0))
br label %226
150: ; preds = %1
%151 = call i32 @printf(i8* getelementptr inbounds ([23 x i8], [23 x i8]* @.str.70, i64 0, i64 0))
br label %226
152: ; preds = %1
%153 = call i32 @printf(i8* getelementptr inbounds ([29 x i8], [29 x i8]* @.str.71, i64 0, i64 0))
br label %226
154: ; preds = %1
%155 = call i32 @printf(i8* getelementptr inbounds ([31 x i8], [31 x i8]* @.str.72, i64 0, i64 0))
br label %226
156: ; preds = %1
%157 = call i32 @printf(i8* getelementptr inbounds ([52 x i8], [52 x i8]* @.str.73, i64 0, i64 0))
br label %226
158: ; preds = %1
%159 = call i32 @printf(i8* getelementptr inbounds ([35 x i8], [35 x i8]* @.str.74, i64 0, i64 0))
br label %226
160: ; preds = %1
%161 = call i32 @printf(i8* getelementptr inbounds ([33 x i8], [33 x i8]* @.str.75, i64 0, i64 0))
br label %226
162: ; preds = %1
%163 = call i32 @printf(i8* getelementptr inbounds ([25 x i8], [25 x i8]* @.str.76, i64 0, i64 0))
br label %226
164: ; preds = %1
%165 = call i32 @printf(i8* getelementptr inbounds ([24 x i8], [24 x i8]* @.str.77, i64 0, i64 0))
br label %226
166: ; preds = %1
%167 = call i32 @printf(i8* getelementptr inbounds ([38 x i8], [38 x i8]* @.str.78, i64 0, i64 0))
br label %226
168: ; preds = %1
%169 = call i32 @printf(i8* getelementptr inbounds ([38 x i8], [38 x i8]* @.str.79, i64 0, i64 0))
br label %226
170: ; preds = %1
%171 = call i32 @printf(i8* getelementptr inbounds ([43 x i8], [43 x i8]* @.str.80, i64 0, i64 0))
br label %226
172: ; preds = %1
%173 = call i32 @printf(i8* getelementptr inbounds ([46 x i8], [46 x i8]* @.str.81, i64 0, i64 0))
br label %226
174: ; preds = %1
%175 = call i32 @printf(i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.82, i64 0, i64 0))
br label %226
176: ; preds = %1
%177 = call i32 @printf(i8* getelementptr inbounds ([26 x i8], [26 x i8]* @.str.83, i64 0, i64 0))
br label %226
178: ; preds = %1
%179 = call i32 @printf(i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.84, i64 0, i64 0))
br label %226
180: ; preds = %1
%181 = call i32 @printf(i8* getelementptr inbounds ([40 x i8], [40 x i8]* @.str.85, i64 0, i64 0))
br label %226
182: ; preds = %1
%183 = call i32 @printf(i8* getelementptr inbounds ([56 x i8], [56 x i8]* @.str.86, i64 0, i64 0))
br label %226
184: ; preds = %1
%185 = call i32 @printf(i8* getelementptr inbounds ([38 x i8], [38 x i8]* @.str.87, i64 0, i64 0))
br label %226
186: ; preds = %1
%187 = call i32 @printf(i8* getelementptr inbounds ([29 x i8], [29 x i8]* @.str.88, i64 0, i64 0))
br label %226
188: ; preds = %1
%189 = call i32 @printf(i8* getelementptr inbounds ([23 x i8], [23 x i8]* @.str.89, i64 0, i64 0))
br label %226
190: ; preds = %1
%191 = call i32 @printf(i8* getelementptr inbounds ([31 x i8], [31 x i8]* @.str.90, i64 0, i64 0))
br label %226
192: ; preds = %1
%193 = call i32 @printf(i8* getelementptr inbounds ([47 x i8], [47 x i8]* @.str.91, i64 0, i64 0))
br label %226
194: ; preds = %1
%195 = call i32 @printf(i8* getelementptr inbounds ([24 x i8], [24 x i8]* @.str.92, i64 0, i64 0))
br label %226
196: ; preds = %1
%197 = call i32 @printf(i8* getelementptr inbounds ([27 x i8], [27 x i8]* @.str.93, i64 0, i64 0))
br label %226
198: ; preds = %1
%199 = call i32 @printf(i8* getelementptr inbounds ([50 x i8], [50 x i8]* @.str.94, i64 0, i64 0))
br label %226
200: ; preds = %1
%201 = call i32 @printf(i8* getelementptr inbounds ([45 x i8], [45 x i8]* @.str.95, i64 0, i64 0))
br label %226
202: ; preds = %1
%203 = call i32 @printf(i8* getelementptr inbounds ([45 x i8], [45 x i8]* @.str.96, i64 0, i64 0))
br label %226
204: ; preds = %1
%205 = call i32 @printf(i8* getelementptr inbounds ([50 x i8], [50 x i8]* @.str.97, i64 0, i64 0))
br label %226
206: ; preds = %1
%207 = call i32 @printf(i8* getelementptr inbounds ([40 x i8], [40 x i8]* @.str.98, i64 0, i64 0))
br label %226
208: ; preds = %1
%209 = call i32 @printf(i8* getelementptr inbounds ([32 x i8], [32 x i8]* @.str.99, i64 0, i64 0))
br label %226
210: ; preds = %1
%211 = call i32 @printf(i8* getelementptr inbounds ([24 x i8], [24 x i8]* @.str.100, i64 0, i64 0))
br label %226
212: ; preds = %1
%213 = call i32 @printf(i8* getelementptr inbounds ([20 x i8], [20 x i8]* @.str.101, i64 0, i64 0))
br label %226
214: ; preds = %1
%215 = call i32 @printf(i8* getelementptr inbounds ([51 x i8], [51 x i8]* @.str.102, i64 0, i64 0))
br label %226
216: ; preds = %1
%217 = call i32 @printf(i8* getelementptr inbounds ([24 x i8], [24 x i8]* @.str.103, i64 0, i64 0))
br label %226
218: ; preds = %1
%219 = call i32 @printf(i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.104, i64 0, i64 0))
br label %226
220: ; preds = %1
%221 = call i32 @printf(i8* getelementptr inbounds ([28 x i8], [28 x i8]* @.str.105, i64 0, i64 0))
br label %226
222: ; preds = %1, %1, %1, %1, %1, %1, %1, %1
%223 = call i32 @printf(i8* getelementptr inbounds ([34 x i8], [34 x i8]* @.str.106, i64 0, i64 0))
br label %226
224: ; preds = %1
%225 = call i32 @printf(i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.107, i64 0, i64 0))
br label %226
226: ; preds = %224, %222, %220, %218, %216, %214, %212, %210, %208, %206, %204, %202, %200, %198, %196, %194, %192, %190, %188, %186, %184, %182, %180, %178, %176, %174, %172, %170, %168, %166, %164, %162, %160, %158, %156, %154, %152, %150, %148, %146, %144, %142, %140, %138, %136, %134, %132, %130, %128, %126, %124, %122, %120, %118, %116, %114, %112, %110, %108, %106, %104, %102, %100, %98, %96, %94, %92, %90, %88, %86, %84, %82, %80, %78, %76, %74, %72, %70, %68, %66, %64, %62, %60, %58, %56, %54, %52, %50, %48, %46, %44, %42, %40, %38, %36, %34, %32, %30, %28, %26, %24, %22, %20, %18, %16, %14, %12, %10, %8, %6
ret void
}

LLVM IR (-O2):
@.str.1 = [18 x i8] c"Program terminate\00"
@.str.2 = [25 x i8] c"Keyboard input with echo\00"
@.str.3 = [15 x i8] c"Display output\00"
@.str.4 = [32 x i8] c"Wait for auxiliary device input\00"
@.str.5 = [17 x i8] c"Auxiliary output\00"
@.str.6 = [15 x i8] c"Printer output\00"
@.str.7 = [19 x i8] c"Direct console I/O\00"
@.str.8 = [43 x i8] c"Wait for direct console input without echo\00"
@.str.9 = [36 x i8] c"Wait for console input without echo\00"
@.str.10 = [13 x i8] c"Print string\00"
@.str.11 = [24 x i8] c"Buffered keyboard input\00"
@.str.12 = [28 x i8] c"Check standard input status\00"
@.str.13 = [48 x i8] c"Clear keyboard buffer, invoke keyboard function\00"
@.str.14 = [11 x i8] c"Disk reset\00"
@.str.15 = [12 x i8] c"Select disk\00"
@.str.16 = [20 x i8] c"Open file using FCB\00"
@.str.17 = [21 x i8] c"Close file using FCB\00"
@.str.18 = [33 x i8] c"Search for first entry using FCB\00"
@.str.19 = [32 x i8] c"Search for next entry using FCB\00"
@.str.20 = [22 x i8] c"Delete file using FCB\00"
@.str.21 = [26 x i8] c"Sequential read using FCB\00"
@.str.22 = [27 x i8] c"Sequential write using FCB\00"
@.str.23 = [24 x i8] c"Create a file using FCB\00"
@.str.24 = [22 x i8] c"Rename file using FCB\00"
@.str.25 = [44 x i8] c"DOS dummy function (CP/M) (not used/listed)\00"
@.str.26 = [26 x i8] c"Get current default drive\00"
@.str.27 = [26 x i8] c"Set disk transfer address\00"
@.str.28 = [33 x i8] c"Get allocation table information\00"
@.str.29 = [46 x i8] c"Get allocation table info for specific device\00"
@.str.30 = [60 x i8] c"Get pointer to default drive parameter table (undocumented)\00"
@.str.31 = [22 x i8] c"Random read using FCB\00"
@.str.32 = [23 x i8] c"Random write using FCB\00"
@.str.33 = [24 x i8] c"Get file size using FCB\00"
@.str.34 = [34 x i8] c"Set relative record field for FCB\00"
@.str.35 = [21 x i8] c"Set interrupt vector\00"
@.str.36 = [27 x i8] c"Create new program segment\00"
@.str.37 = [28 x i8] c"Random block read using FCB\00"
@.str.38 = [29 x i8] c"Random block write using FCB\00"
@.str.39 = [23 x i8] c"Parse filename for FCB\00"
@.str.40 = [9 x i8] c"Get date\00"
@.str.41 = [9 x i8] c"Set date\00"
@.str.42 = [9 x i8] c"Get time\00"
@.str.43 = [9 x i8] c"Set time\00"
@.str.44 = [24 x i8] c"Set/reset verify switch\00"
@.str.45 = [26 x i8] c"Get disk transfer address\00"
@.str.46 = [23 x i8] c"Get DOS version number\00"
@.str.47 = [28 x i8] c"Terminate and stay resident\00"
@.str.48 = [52 x i8] c"Get pointer to drive parameter table (undocumented)\00"
@.str.49 = [48 x i8] c"Get/set Ctrl-Break check state & get boot drive\00"
@.str.50 = [48 x i8] c"Get address to DOS critical flag (undocumented)\00"
@.str.51 = [21 x i8] c"Get interrupt vector\00"
@.str.52 = [20 x i8] c"Get disk free space\00"
@.str.53 = [40 x i8] c"Get/set switch character (undocumented)\00"
@.str.54 = [38 x i8] c"Get/set country dependent information\00"
@.str.55 = [28 x i8] c"Create subdirectory (mkdir)\00"
@.str.56 = [28 x i8] c"Remove subdirectory (rmdir)\00"
@.str.57 = [36 x i8] c"Change current subdirectory (chdir)\00"
@.str.58 = [25 x i8] c"Create file using handle\00"
@.str.59 = [23 x i8] c"Open file using handle\00"
@.str.60 = [24 x i8] c"Close file using handle\00"
@.str.61 = [33 x i8] c"Read file or device using handle\00"
@.str.62 = [34 x i8] c"Write file or device using handle\00"
@.str.63 = [12 x i8] c"Delete file\00"
@.str.64 = [31 x i8] c"Move file pointer using handle\00"
@.str.65 = [17 x i8] c"Change file mode\00"
@.str.66 = [32 x i8] c"I/O control for devices (IOCTL)\00"
@.str.67 = [22 x i8] c"Duplicate file handle\00"
@.str.68 = [28 x i8] c"Force duplicate file handle\00"
@.str.69 = [22 x i8] c"Get current directory\00"
@.str.70 = [23 x i8] c"Allocate memory blocks\00"
@.str.71 = [29 x i8] c"Free allocated memory blocks\00"
@.str.72 = [31 x i8] c"Modify allocated memory blocks\00"
@.str.73 = [52 x i8] c"EXEC load and execute program (func 1 undocumented)\00"
@.str.74 = [35 x i8] c"Terminate process with return code\00"
@.str.75 = [33 x i8] c"Get return code of a sub-process\00"
@.str.76 = [25 x i8] c"Find first matching file\00"
@.str.77 = [24 x i8] c"Find next matching file\00"
@.str.78 = [38 x i8] c"Set current process id (undocumented)\00"
@.str.79 = [38 x i8] c"Get current process id (undocumented)\00"
@.str.80 = [43 x i8] c"Get pointer to DOS 'INVARS' (undocumented)\00"
@.str.81 = [46 x i8] c"Generate drive parameter table (undocumented)\00"
@.str.82 = [19 x i8] c"Get verify setting\00"
@.str.83 = [26 x i8] c"Create PSP (undocumented)\00"
@.str.84 = [12 x i8] c"Rename file\00"
@.str.85 = [40 x i8] c"Get/set file date and time using handle\00"
@.str.86 = [56 x i8] c"Get/set memory allocation strategy (3.x+, undocumented)\00"
@.str.87 = [38 x i8] c"Get extended error information (3.x+)\00"
@.str.88 = [29 x i8] c"Create temporary file (3.x+)\00"
@.str.89 = [23 x i8] c"Create new file (3.x+)\00"
@.str.90 = [31 x i8] c"Lock/unlock file access (3.x+)\00"
@.str.91 = [47 x i8] c"Critical error information (undocumented 3.x+)\00"
@.str.92 = [24 x i8] c"Network services (3.1+)\00"
@.str.93 = [27 x i8] c"Network redirection (3.1+)\00"
@.str.94 = [50 x i8] c"Get fully qualified file name (undocumented 3.x+)\00"
@.str.95 = [45 x i8] c"Get address of program segment prefix (3.x+)\00"
@.str.96 = [45 x i8] c"Get system lead byte table (MSDOS 2.25 only)\00"
@.str.97 = [50 x i8] c"Set device driver look ahead (undocumented 3.3+)\00"
@.str.98 = [40 x i8] c"Get extended country information (3.3+)\00"
@.str.99 = [32 x i8] c"Get/set global code page (3.3+)\00"
@.str.100 = [24 x i8] c"Set handle count (3.3+)\00"
@.str.101 = [20 x i8] c"Flush buffer (3.3+)\00"
@.str.102 = [51 x i8] c"Get/set disk serial number (undocumented DOS 4.0+)\00"
@.str.103 = [24 x i8] c"DOS reserved (DOS 4.0+)\00"
@.str.104 = [13 x i8] c"DOS reserved\00"
@.str.105 = [28 x i8] c"Extended open/create (4.x+)\00"
@.str.107 = [8 x i8] c"unknown\00"
@reltable.dos_fn_man = [109 x i32] [i32 trunc (i64 sub (i64 ptrtoint ([18 x i8]* @.str.1 to i64), i64 ptrtoint ([109 x i32]* @reltable.dos_fn_man to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([25 x i8]* @.str.2 to i64), i64 ptrtoint ([109 x i32]* @reltable.dos_fn_man to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([15 x i8]* @.str.3 to i64), i64 ptrtoint ([109 x i32]* @reltable.dos_fn_man to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([32 x i8]* @.str.4 to i64), i64 ptrtoint ([109 x i32]* @reltable.dos_fn_man to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([17 x i8]* @.str.5 to i64), i64 ptrtoint ([109 x i32]* @reltable.dos_fn_man to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([15 x i8]* @.str.6 to i64), i64 ptrtoint ([109 x i32]* @reltable.dos_fn_man to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([19 x i8]* @.str.7 to i64), i64 ptrtoint ([109 x i32]* @reltable.dos_fn_man to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([43 x i8]* @.str.8 to i64), i64 ptrtoint ([109 x i32]* @reltable.dos_fn_man to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([36 x i8]* @.str.9 to i64), i64 ptrtoint ([109 x i32]* @reltable.dos_fn_man to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([13 x i8]* @.str.10 to i64), i64 ptrtoint ([109 x i32]* @reltable.dos_fn_man to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([24 x i8]* @.str.11 to i64), i64 ptrtoint ([109 x i32]* @reltable.dos_fn_man to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([28 x i8]* @.str.12 to i64), i64 ptrtoint ([109 x i32]* @reltable.dos_fn_man to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([48 x i8]* @.str.13 to i64), i64 ptrtoint ([109 x i32]* @reltable.dos_fn_man to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([11 x i8]* @.str.14 to i64), i64 ptrtoint ([109 x i32]* @reltable.dos_fn_man to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([12 x i8]* @.str.15 to i64), i64 ptrtoint ([109 x i32]* @reltable.dos_fn_man to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([20 x i8]* @.str.16 to i64), i64 ptrtoint ([109 x i32]* @reltable.dos_fn_man to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([21 x i8]* @.str.17 to i64), i64 ptrtoint ([109 x i32]* @reltable.dos_fn_man to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([33 x i8]* @.str.18 to i64), i64 ptrtoint ([109 x i32]* @reltable.dos_fn_man to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([32 x i8]* @.str.19 to i64), i64 ptrtoint ([109 x i32]* @reltable.dos_fn_man to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([22 x i8]* @.str.20 to i64), i64 ptrtoint ([109 x i32]* @reltable.dos_fn_man to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([26 x i8]* @.str.21 to i64), i64 ptrtoint ([109 x i32]* @reltable.dos_fn_man to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([27 x i8]* @.str.22 to i64), i64 ptrtoint ([109 x i32]* @reltable.dos_fn_man to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([24 x i8]* @.str.23 to i64), i64 ptrtoint ([109 x i32]* @reltable.dos_fn_man to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([22 x i8]* @.str.24 to i64), i64 ptrtoint ([109 x i32]* @reltable.dos_fn_man to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([44 x i8]* @.str.25 to i64), i64 ptrtoint ([109 x i32]* @reltable.dos_fn_man to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([26 x i8]* @.str.26 to i64), i64 ptrtoint ([109 x i32]* @reltable.dos_fn_man to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([26 x i8]* @.str.27 to i64), i64 ptrtoint ([109 x i32]* @reltable.dos_fn_man to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([33 x i8]* @.str.28 to i64), i64 ptrtoint ([109 x i32]* @reltable.dos_fn_man to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([46 x i8]* @.str.29 to i64), i64 ptrtoint ([109 x i32]* @reltable.dos_fn_man to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([44 x i8]* @.str.25 to i64), i64 ptrtoint ([109 x i32]* @reltable.dos_fn_man to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([44 x i8]* @.str.25 to i64), i64 ptrtoint ([109 x i32]* @reltable.dos_fn_man to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([60 x i8]* @.str.30 to i64), i64 ptrtoint ([109 x i32]* @reltable.dos_fn_man to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([44 x i8]* @.str.25 to i64), i64 ptrtoint ([109 x i32]* @reltable.dos_fn_man to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([22 x i8]* @.str.31 to i64), i64 ptrtoint ([109 x i32]* @reltable.dos_fn_man to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([23 x i8]* @.str.32 to i64), i64 ptrtoint ([109 x i32]* @reltable.dos_fn_man to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([24 x i8]* @.str.33 to i64), i64 ptrtoint ([109 x i32]* @reltable.dos_fn_man to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([34 x i8]* @.str.34 to i64), i64 ptrtoint ([109 x i32]* @reltable.dos_fn_man to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([21 x i8]* @.str.35 to i64), i64 ptrtoint ([109 x i32]* @reltable.dos_fn_man to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([27 x i8]* @.str.36 to i64), i64 ptrtoint ([109 x i32]* @reltable.dos_fn_man to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([28 x i8]* @.str.37 to i64), i64 ptrtoint ([109 x i32]* @reltable.dos_fn_man to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([29 x i8]* @.str.38 to i64), i64 ptrtoint ([109 x i32]* @reltable.dos_fn_man to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([23 x i8]* @.str.39 to i64), i64 ptrtoint ([109 x i32]* @reltable.dos_fn_man to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([9 x i8]* @.str.40 to i64), i64 ptrtoint ([109 x i32]* @reltable.dos_fn_man to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([9 x i8]* @.str.41 to i64), i64 ptrtoint ([109 x i32]* @reltable.dos_fn_man to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([9 x i8]* @.str.42 to i64), i64 ptrtoint ([109 x i32]* @reltable.dos_fn_man to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([9 x i8]* @.str.43 to i64), i64 ptrtoint ([109 x i32]* @reltable.dos_fn_man to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([24 x i8]* @.str.44 to i64), i64 ptrtoint ([109 x i32]* @reltable.dos_fn_man to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([26 x i8]* @.str.45 to i64), i64 ptrtoint ([109 x i32]* @reltable.dos_fn_man to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([23 x i8]* @.str.46 to i64), i64 ptrtoint ([109 x i32]* @reltable.dos_fn_man to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([28 x i8]* @.str.47 to i64), i64 ptrtoint ([109 x i32]* @reltable.dos_fn_man to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([52 x i8]* @.str.48 to i64), i64 ptrtoint ([109 x i32]* @reltable.dos_fn_man to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([48 x i8]* @.str.49 to i64), i64 ptrtoint ([109 x i32]* @reltable.dos_fn_man to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([48 x i8]* @.str.50 to i64), i64 ptrtoint ([109 x i32]* @reltable.dos_fn_man to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([21 x i8]* @.str.51 to i64), i64 ptrtoint ([109 x i32]* @reltable.dos_fn_man to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([20 x i8]* @.str.52 to i64), i64 ptrtoint ([109 x i32]* @reltable.dos_fn_man to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([40 x i8]* @.str.53 to i64), i64 ptrtoint ([109 x i32]* @reltable.dos_fn_man to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([38 x i8]* @.str.54 to i64), i64 ptrtoint ([109 x i32]* @reltable.dos_fn_man to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([28 x i8]* @.str.55 to i64), i64 ptrtoint ([109 x i32]* @reltable.dos_fn_man to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([28 x i8]* @.str.56 to i64), i64 ptrtoint ([109 x i32]* @reltable.dos_fn_man to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([36 x i8]* @.str.57 to i64), i64 ptrtoint ([109 x i32]* @reltable.dos_fn_man to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([25 x i8]* @.str.58 to i64), i64 ptrtoint ([109 x i32]* @reltable.dos_fn_man to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([23 x i8]* @.str.59 to i64), i64 ptrtoint ([109 x i32]* @reltable.dos_fn_man to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([24 x i8]* @.str.60 to i64), i64 ptrtoint ([109 x i32]* @reltable.dos_fn_man to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([33 x i8]* @.str.61 to i64), i64 ptrtoint ([109 x i32]* @reltable.dos_fn_man to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([34 x i8]* @.str.62 to i64), i64 ptrtoint ([109 x i32]* @reltable.dos_fn_man to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([12 x i8]* @.str.63 to i64), i64 ptrtoint ([109 x i32]* @reltable.dos_fn_man to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([31 x i8]* @.str.64 to i64), i64 ptrtoint ([109 x i32]* @reltable.dos_fn_man to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([17 x i8]* @.str.65 to i64), i64 ptrtoint ([109 x i32]* @reltable.dos_fn_man to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([32 x i8]* @.str.66 to i64), i64 ptrtoint ([109 x i32]* @reltable.dos_fn_man to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([22 x i8]* @.str.67 to i64), i64 ptrtoint ([109 x i32]* @reltable.dos_fn_man to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([28 x i8]* @.str.68 to i64), i64 ptrtoint ([109 x i32]* @reltable.dos_fn_man to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([22 x i8]* @.str.69 to i64), i64 ptrtoint ([109 x i32]* @reltable.dos_fn_man to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([23 x i8]* @.str.70 to i64), i64 ptrtoint ([109 x i32]* @reltable.dos_fn_man to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([29 x i8]* @.str.71 to i64), i64 ptrtoint ([109 x i32]* @reltable.dos_fn_man to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([31 x i8]* @.str.72 to i64), i64 ptrtoint ([109 x i32]* @reltable.dos_fn_man to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([52 x i8]* @.str.73 to i64), i64 ptrtoint ([109 x i32]* @reltable.dos_fn_man to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([35 x i8]* @.str.74 to i64), i64 ptrtoint ([109 x i32]* @reltable.dos_fn_man to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([33 x i8]* @.str.75 to i64), i64 ptrtoint ([109 x i32]* @reltable.dos_fn_man to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([25 x i8]* @.str.76 to i64), i64 ptrtoint ([109 x i32]* @reltable.dos_fn_man to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([24 x i8]* @.str.77 to i64), i64 ptrtoint ([109 x i32]* @reltable.dos_fn_man to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([38 x i8]* @.str.78 to i64), i64 ptrtoint ([109 x i32]* @reltable.dos_fn_man to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([38 x i8]* @.str.79 to i64), i64 ptrtoint ([109 x i32]* @reltable.dos_fn_man to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([43 x i8]* @.str.80 to i64), i64 ptrtoint ([109 x i32]* @reltable.dos_fn_man to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([46 x i8]* @.str.81 to i64), i64 ptrtoint ([109 x i32]* @reltable.dos_fn_man to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([19 x i8]* @.str.82 to i64), i64 ptrtoint ([109 x i32]* @reltable.dos_fn_man to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([26 x i8]* @.str.83 to i64), i64 ptrtoint ([109 x i32]* @reltable.dos_fn_man to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([12 x i8]* @.str.84 to i64), i64 ptrtoint ([109 x i32]* @reltable.dos_fn_man to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([40 x i8]* @.str.85 to i64), i64 ptrtoint ([109 x i32]* @reltable.dos_fn_man to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([56 x i8]* @.str.86 to i64), i64 ptrtoint ([109 x i32]* @reltable.dos_fn_man to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([38 x i8]* @.str.87 to i64), i64 ptrtoint ([109 x i32]* @reltable.dos_fn_man to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([29 x i8]* @.str.88 to i64), i64 ptrtoint ([109 x i32]* @reltable.dos_fn_man to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([23 x i8]* @.str.89 to i64), i64 ptrtoint ([109 x i32]* @reltable.dos_fn_man to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([31 x i8]* @.str.90 to i64), i64 ptrtoint ([109 x i32]* @reltable.dos_fn_man to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([47 x i8]* @.str.91 to i64), i64 ptrtoint ([109 x i32]* @reltable.dos_fn_man to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([24 x i8]* @.str.92 to i64), i64 ptrtoint ([109 x i32]* @reltable.dos_fn_man to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([27 x i8]* @.str.93 to i64), i64 ptrtoint ([109 x i32]* @reltable.dos_fn_man to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([50 x i8]* @.str.94 to i64), i64 ptrtoint ([109 x i32]* @reltable.dos_fn_man to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([8 x i8]* @.str.107 to i64), i64 ptrtoint ([109 x i32]* @reltable.dos_fn_man to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([45 x i8]* @.str.95 to i64), i64 ptrtoint ([109 x i32]* @reltable.dos_fn_man to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([45 x i8]* @.str.96 to i64), i64 ptrtoint ([109 x i32]* @reltable.dos_fn_man to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([50 x i8]* @.str.97 to i64), i64 ptrtoint ([109 x i32]* @reltable.dos_fn_man to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([40 x i8]* @.str.98 to i64), i64 ptrtoint ([109 x i32]* @reltable.dos_fn_man to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([32 x i8]* @.str.99 to i64), i64 ptrtoint ([109 x i32]* @reltable.dos_fn_man to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([24 x i8]* @.str.100 to i64), i64 ptrtoint ([109 x i32]* @reltable.dos_fn_man to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([20 x i8]* @.str.101 to i64), i64 ptrtoint ([109 x i32]* @reltable.dos_fn_man to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([51 x i8]* @.str.102 to i64), i64 ptrtoint ([109 x i32]* @reltable.dos_fn_man to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([24 x i8]* @.str.103 to i64), i64 ptrtoint ([109 x i32]* @reltable.dos_fn_man to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([13 x i8]* @.str.104 to i64), i64 ptrtoint ([109 x i32]* @reltable.dos_fn_man to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([28 x i8]* @.str.105 to i64), i64 ptrtoint ([109 x i32]* @reltable.dos_fn_man to i64)) to i32)]
define void @dos_fn_man(i8 signext %0) {
%2 = tail call i32 @putchar(i32 10)
%3 = icmp ult i8 %0, 109
br i1 %3, label %4, label %8
4: ; preds = %1
%5 = sext i8 %0 to i64
%6 = shl i64 %5, 2
%7 = call i8* @llvm.load.relative.i64(i8* bitcast ([109 x i32]* @reltable.dos_fn_man to i8*), i64 %6)
br label %8
8: ; preds = %1, %4
%9 = phi i8* [ %7, %4 ], [ getelementptr inbounds ([8 x i8], [8 x i8]* @.str.107, i64 0, i64 0), %1 ]
%10 = tail call i32 @printf(i8* dereferenceable(1) %9)
ret void
}