#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*/ uiclhint();
void uiclhelp(char *version) {
  uiclhint();
  printf("nmond %s\n\n", version);
  printf("For Interactive-Mode\n");
  printf("\t-s <seconds>  time between refreshing the screen [default 2]\n");
  printf("\t-c <number>   count of screen refreshes [default millions]\n");
  printf("\t-g <filename> User Defined Disk Groups [hit g to show them]\n");
  printf("\t              - file = on each line: group_name <disks list> space "
         "separated\n");
  printf("\t              - like: database sdb sdc sdd sde\n");
  printf("\t              - upto 64 disk groups, 512 disks per line\n");
  printf(
      "\t              - disks can appear more than once and in many groups\n");
  printf("\t-g auto       - will make a file called \"auto\" with just disks "
         "fron \"lsblk|grep disk\" output\n");
  printf("\t-b            black and white [default is colour]\n");
  printf("\texample: nmond -s 1 -c 100\n");
  printf("\n");
  printf(
      "For Data-Collect-Mode = spreadsheet format (comma separated values)\n");
  printf(
      "\tNote: use only one of f,F,z,x or X and make it the first argument\n");
  printf("\t-f            spreadsheet output format [note: default -s300 "
         "-c288]\n");
  printf("\t\t\t output file is <hostname>_YYYYMMDD_HHMM.nmon\n");
  printf("\t-F <filename> same as -f but user supplied filename\n");
  printf("\t-r <runname>  used in the spreadsheet file [default hostname]\n");
  printf("\t-t            include top processes in the output\n");
  printf("\t-T            as -t plus saves command line arguments in UARG "
         "section\n");
  printf("\t-s <seconds>  between snap shots\n");
  printf("\t-c <number>   of snapshots before nmon stops\n");
  printf("\t-d <disks>    to increase the number of disks [default 256]\n");
  printf("\t-l <dpl>      disks/line default 150 to avoid spreadsheet issues. "
         "EMC=64.\n");
  printf("\t-g <filename> User Defined Disk Groups (see above) - see BBBG & DG "
         "lines\n");
  printf("\t-g auto       As above but makes the file \"auto\" for you of just "
         "the disks like sda etc.\n");
  printf("\t-D            Use with -g to add the Disk wait/service time & "
         "inflight stats.\n");
  printf("\t-N            include NFS Network File System\n");
  printf(
      "\t-I <percent>  Include process & disks busy threshold (default 0.1)\n");
  printf("\t              don't save or show proc/disk using less than this "
         "percent\n");
  printf("\t-m <directory> nmon changes to this directory before saving to "
         "file\n");
  printf(
      "\texample: collect for 1 hour at 30 second intervals with top procs\n");
  printf("\t\t nmond -f -t -r Test1 -s30 -c120\n");
  printf("\n");
  printf("\tTo load into a spreadsheet:\n");
  printf("\tsort -A *nmon >stats.csv\n");
  printf("\ttransfer the stats.csv file to your PC\n");
  printf("\tStart spreadsheet & then Open type=comma-separated-value ASCII "
         "file\n");
  printf(
      "\t The nmon analyser or consolidator does not need the file sorted.\n");
  printf("\n");
  printf("Capacity planning mode - use cron to run each day\n");
  printf("\t-x            sensible spreadsheet output for CP =  one day\n");
  printf("\t              every 15 mins for 1 day ( i.e. -ft -s 900 -c 96)\n");
  printf("\t-X            sensible spreadsheet output for CP = busy hour\n");
  printf("\t              every 30 secs for 1 hour ( i.e. -ft -s 30 -c 120)\n");
  printf("\n");
  printf("Interactive Mode Commands\n");
  printf("\tkey --- Toggles to control what is displayed ---\n");
  printf("\th   = Online help information\n");
  printf("\tr   = Machine type, machine name, cache details and OS version + "
         "LPAR\n");
  printf("\tc   = CPU by processor stats with bar graphs\n");
  printf("\tl   = long term CPU (over 75 snapshots) with bar graphs\n");
  printf("\tm   = Memory stats\n");
  printf("\tL   = Huge memory page stats\n");
  printf("\tV   = Virtual Memory and Swap stats\n");
  printf("\tk   = Kernel Internal stats\n");
  printf("\tn   = Network stats and errors\n");
  printf("\tN   = NFS Network File System\n");
  printf("\td   = Disk I/O Graphs\n");
  printf("\tD   = Disk I/O Stats\n");
  printf(
      "\to   = Disk I/O Map (one character per disk showing how busy it is)\n");
  printf("\tg   = User Defined Disk Groups        (assumes -g <file> when nmon "
         "started)\n");
  printf("\tG   = Change Disk stats to just disks (assumes -g auto   when nmon "
         "started)\n");
  printf("\tj   = File Systems \n");
  printf("\tt   = Top Process stats: select the data & order 1=Basic, 3=Perf "
         "4=Size 5=I/O=root only\n");
  printf("\tt   = Top Process stats use 1,3,4,5 to select the data & order\n");
  printf("\tu   = Top Process full command details\n");
  printf("\tv   = Verbose mode - tries to make recommendations\n");
  printf("\tP   = Partitions Disk I/O Stats\n");
  printf("\tb   = black and white mode (or use -b option)\n");
  printf("\t.   = minimum mode i.e. only busy disks and processes\n");
  printf("\n");
  printf("\tkey --- Other Controls ---\n");
  printf("\t+   = double the screen refresh time\n");
  printf("\t-   = halves the screen refresh time\n");
  printf("\tq   = quit (also x, e or control-C)\n");
  printf("\t0   = reset peak counts to zero (peak = \">\")\n");
  printf("\tspace = refresh screen now\n");
  printf("\n");
  printf("Startup Control\n");
  printf(
      "\tIf you find you always type the same toggles every time you start\n");
  printf("\tthen place them in the NMON shell variable. For example:\n");
  printf("\t export NMON=cmdrvtan\n");
  printf("\n");
  printf("Others:\n");
  printf("\ta) To you want to stop nmon - kill -USR2 <nmon-pid>\n");
  printf("\tb) Use -p and nmon outputs the background process pid\n");
  printf("\tc) To limit the processes nmon lists (online and to a file)\n");
  printf("\t   Either set NMONCMD0 to NMONCMD63 to the program names\n");
  printf("\t   or use -C cmd:cmd:cmd etc. example: -C ksh:vi:syncd\n");
  printf(
      "\td) If you want to pipe nmon output to other commands use a FIFO:\n");
  printf("\t   mkfifo /tmp/mypipe\n");
  printf("\t   nmon -F /tmp/mypipe &\n");
  printf("\t   grep /tmp/mypipe\n");
  printf("\te) If nmon fails please report it with:\n");
  printf("\t   1) nmon version like: %s\n", version);
  printf("\t   2) the output of cat /proc/cpuinfo\n");
  printf("\t   3) some clue of what you were doing\n");
  printf("\t   4) I may ask you to run the debug version\n");
  printf("\n");
  printf("\tDeveloper Nigel Griffiths\n");
  printf("\tFeedback welcome - on the current release only and state exactly "
         "the problem\n");
  printf("\tNo warranty given or implied.\n");
}


x86 assembly (clang, -O0):
<uiclhelp>:
push   %rbp
mov    %rsp,%rbp
sub    $0x10,%rsp
mov    %rdi,-0x8(%rbp)
mov    $0x0,%al
call   1040 <uiclhint@plt>
mov    -0x8(%rbp),%rsi
lea    0xec2(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0xebf(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0xec7(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0xef8(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0xf27(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0xf57(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0xf98(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0xfbb(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0xfe7(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x101e(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x106f(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x1095(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0xe23(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x1096(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x10cd(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x1103(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x113b(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x115f(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x1187(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x11b9(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x11df(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x1219(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x122e(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x124f(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x127f(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x12bd(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x12fa(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x1347(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x1389(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x13ab(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x13e2(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x141e(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x1456(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x148c(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0xcef(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x1494(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x14a4(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x14b1(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x14cc(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x1504(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0xc9b(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x152c(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x1551(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x1581(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x15b4(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x15e5(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0xc47(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x160b(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x1618(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x163d(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x164f(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x1689(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x16aa(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x16d6(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x16dd(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x16ee(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x1706(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x1716(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x1729(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x173b(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x1745(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x174e(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x1785(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x17c5(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x1805(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x180d(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x1859(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x188c(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x18a7(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x18ce(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x18e2(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x1904(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0xadb(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x1920(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x192f(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x1948(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x1961(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x1979(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x199a(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0xa79(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x199b(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x199e(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x19d4(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x1a01(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0xa33(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x19fd(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x19f8(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x1a20(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x1a4a(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x1a7a(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x1aa7(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x1ad2(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x1b07(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x1b11(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x1b1e(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x1b26(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
mov    -0x8(%rbp),%rsi
lea    0x1b3e(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x1b4e(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x1b68(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x1b83(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x94f(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x1b96(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x1ba4(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x1be5(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
add    $0x10,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<uiclhelp>:
push   %rbx
mov    %rdi,%rbx
xor    %eax,%eax
call   1060 <uiclhint@plt>
lea    0xeae(%rip),%rdi
mov    %rbx,%rsi
xor    %eax,%eax
call   1050 <printf@plt>
lea    0xec6(%rip),%rdi
call   1040 <puts@plt>
lea    0xecf(%rip),%rdi
call   1040 <puts@plt>
lea    0xf01(%rip),%rdi
call   1040 <puts@plt>
lea    0xf31(%rip),%rdi
call   1040 <puts@plt>
lea    0xf62(%rip),%rdi
call   1040 <puts@plt>
lea    0xfa4(%rip),%rdi
call   1040 <puts@plt>
lea    0xfc8(%rip),%rdi
call   1040 <puts@plt>
lea    0xff5(%rip),%rdi
call   1040 <puts@plt>
lea    0x102d(%rip),%rdi
call   1040 <puts@plt>
lea    0x107f(%rip),%rdi
call   1040 <puts@plt>
lea    0x10a6(%rip),%rdi
call   1040 <puts@plt>
mov    $0xa,%edi
call   1030 <putchar@plt>
lea    0x10ac(%rip),%rdi
call   1040 <puts@plt>
lea    0x10e4(%rip),%rdi
call   1040 <puts@plt>
lea    0x111b(%rip),%rdi
call   1040 <puts@plt>
lea    0x1154(%rip),%rdi
call   1040 <puts@plt>
lea    0x1179(%rip),%rdi
call   1040 <puts@plt>
lea    0x11a2(%rip),%rdi
call   1040 <puts@plt>
lea    0x11d5(%rip),%rdi
call   1040 <puts@plt>
lea    0x11fc(%rip),%rdi
call   1040 <puts@plt>
lea    0x1237(%rip),%rdi
call   1040 <puts@plt>
lea    0x124d(%rip),%rdi
call   1040 <puts@plt>
lea    0x126f(%rip),%rdi
call   1040 <puts@plt>
lea    0x12a0(%rip),%rdi
call   1040 <puts@plt>
lea    0x12df(%rip),%rdi
call   1040 <puts@plt>
lea    0x131d(%rip),%rdi
call   1040 <puts@plt>
lea    0x136b(%rip),%rdi
call   1040 <puts@plt>
lea    0x13ae(%rip),%rdi
call   1040 <puts@plt>
lea    0x13d1(%rip),%rdi
call   1040 <puts@plt>
lea    0x1409(%rip),%rdi
call   1040 <puts@plt>
lea    0x1446(%rip),%rdi
call   1040 <puts@plt>
lea    0x147f(%rip),%rdi
call   1040 <puts@plt>
lea    0x14b6(%rip),%rdi
call   1040 <puts@plt>
mov    $0xa,%edi
call   1030 <putchar@plt>
lea    0x14c3(%rip),%rdi
call   1040 <puts@plt>
lea    0x14d4(%rip),%rdi
call   1040 <puts@plt>
lea    0x14e2(%rip),%rdi
call   1040 <puts@plt>
lea    0x14fe(%rip),%rdi
call   1040 <puts@plt>
lea    0x1537(%rip),%rdi
call   1040 <puts@plt>
mov    $0xa,%edi
call   1030 <putchar@plt>
lea    0x1564(%rip),%rdi
call   1040 <puts@plt>
lea    0x158a(%rip),%rdi
call   1040 <puts@plt>
lea    0x15bb(%rip),%rdi
call   1040 <puts@plt>
lea    0x15ef(%rip),%rdi
call   1040 <puts@plt>
lea    0x1621(%rip),%rdi
call   1040 <puts@plt>
mov    $0xa,%edi
call   1030 <putchar@plt>
lea    0x164c(%rip),%rdi
call   1040 <puts@plt>
lea    0x165a(%rip),%rdi
call   1040 <puts@plt>
lea    0x1680(%rip),%rdi
call   1040 <puts@plt>
lea    0x1693(%rip),%rdi
call   1040 <puts@plt>
lea    0x16ce(%rip),%rdi
call   1040 <puts@plt>
lea    0x16f0(%rip),%rdi
call   1040 <puts@plt>
lea    0x171d(%rip),%rdi
call   1040 <puts@plt>
lea    0x1725(%rip),%rdi
call   1040 <puts@plt>
lea    0x1737(%rip),%rdi
call   1040 <puts@plt>
lea    0x1750(%rip),%rdi
call   1040 <puts@plt>
lea    0x1761(%rip),%rdi
call   1040 <puts@plt>
lea    0x1775(%rip),%rdi
call   1040 <puts@plt>
lea    0x1788(%rip),%rdi
call   1040 <puts@plt>
lea    0x1793(%rip),%rdi
call   1040 <puts@plt>
lea    0x179d(%rip),%rdi
call   1040 <puts@plt>
lea    0x17d5(%rip),%rdi
call   1040 <puts@plt>
lea    0x1816(%rip),%rdi
call   1040 <puts@plt>
lea    0x1857(%rip),%rdi
call   1040 <puts@plt>
lea    0x1860(%rip),%rdi
call   1040 <puts@plt>
lea    0x18ad(%rip),%rdi
call   1040 <puts@plt>
lea    0x18e1(%rip),%rdi
call   1040 <puts@plt>
lea    0x18fd(%rip),%rdi
call   1040 <puts@plt>
lea    0x1925(%rip),%rdi
call   1040 <puts@plt>
lea    0x193a(%rip),%rdi
call   1040 <puts@plt>
lea    0x195d(%rip),%rdi
call   1040 <puts@plt>
mov    $0xa,%edi
call   1030 <putchar@plt>
lea    0x197e(%rip),%rdi
call   1040 <puts@plt>
lea    0x198e(%rip),%rdi
call   1040 <puts@plt>
lea    0x19a8(%rip),%rdi
call   1040 <puts@plt>
lea    0x19c2(%rip),%rdi
call   1040 <puts@plt>
lea    0x19db(%rip),%rdi
call   1040 <puts@plt>
lea    0x19fd(%rip),%rdi
call   1040 <puts@plt>
mov    $0xa,%edi
call   1030 <putchar@plt>
lea    0x1a03(%rip),%rdi
call   1040 <puts@plt>
lea    0x1a07(%rip),%rdi
call   1040 <puts@plt>
lea    0x1a3e(%rip),%rdi
call   1040 <puts@plt>
lea    0x1a6c(%rip),%rdi
call   1040 <puts@plt>
mov    $0xa,%edi
call   1030 <putchar@plt>
lea    0x1a6d(%rip),%rdi
call   1040 <puts@plt>
lea    0x1a69(%rip),%rdi
call   1040 <puts@plt>
lea    0x1a92(%rip),%rdi
call   1040 <puts@plt>
lea    0x1abd(%rip),%rdi
call   1040 <puts@plt>
lea    0x1aee(%rip),%rdi
call   1040 <puts@plt>
lea    0x1b1c(%rip),%rdi
call   1040 <puts@plt>
lea    0x1b48(%rip),%rdi
call   1040 <puts@plt>
lea    0x1b7e(%rip),%rdi
call   1040 <puts@plt>
lea    0x1b89(%rip),%rdi
call   1040 <puts@plt>
lea    0x1b97(%rip),%rdi
call   1040 <puts@plt>
lea    0x1ba0(%rip),%rdi
call   1040 <puts@plt>
lea    0xa42(%rip),%rdi
mov    %rbx,%rsi
xor    %eax,%eax
call   1050 <printf@plt>
lea    0x1bac(%rip),%rdi
call   1040 <puts@plt>
lea    0x1bc7(%rip),%rdi
call   1040 <puts@plt>
lea    0x1be3(%rip),%rdi
call   1040 <puts@plt>
mov    $0xa,%edi
call   1030 <putchar@plt>
lea    0x1bfb(%rip),%rdi
call   1040 <puts@plt>
lea    0x1c0a(%rip),%rdi
call   1040 <puts@plt>
lea    0x1c4c(%rip),%rdi
pop    %rbx
jmp    1040 <puts@plt>

LLVM IR (-O0):
@.str = [11 x i8] c"nmond %s\0A\0A\00"
@.str.1 = [22 x i8] c"For Interactive-Mode\0A\00"
@.str.2 = [63 x i8] c"\09-s <seconds> time between refreshing the screen [default 2]\0A\00"
@.str.3 = [61 x i8] c"\09-c <number> count of screen refreshes [default millions]\0A\00"
@.str.4 = [62 x i8] c"\09-g <filename> User Defined Disk Groups [hit g to show them]\0A\00"
@.str.5 = [79 x i8] c"\09 - file = on each line: group_name <disks list> space separated\0A\00"
@.str.6 = [49 x i8] c"\09 - like: database sdb sdc sdd sde\0A\00"
@.str.7 = [58 x i8] c"\09 - upto 64 disk groups, 512 disks per line\0A\00"
@.str.8 = [69 x i8] c"\09 - disks can appear more than once and in many groups\0A\00"
@.str.9 = [95 x i8] c"\09-g auto - will make a file called \22auto\22 with just disks fron \22lsblk|grep disk\22 output\0A\00"
@.str.10 = [52 x i8] c"\09-b black and white [default is colour]\0A\00"
@.str.11 = [29 x i8] c"\09example: nmond -s 1 -c 100\0A\00"
@.str.12 = [2 x i8] c"\0A\00"
@.str.13 = [69 x i8] c"For Data-Collect-Mode = spreadsheet format (comma separated values)\0A\00"
@.str.14 = [68 x i8] c"\09Note: use only one of f,F,z,x or X and make it the first argument\0A\00"
@.str.15 = [70 x i8] c"\09-f spreadsheet output format [note: default -s300 -c288]\0A\00"
@.str.16 = [50 x i8] c"\09\09\09 output file is <hostname>_YYYYMMDD_HHMM.nmon\0A\00"
@.str.17 = [54 x i8] c"\09-F <filename> same as -f but user supplied filename\0A\00"
@.str.18 = [64 x i8] c"\09-r <runname> used in the spreadsheet file [default hostname]\0A\00"
@.str.19 = [52 x i8] c"\09-t include top processes in the output\0A\00"
@.str.20 = [72 x i8] c"\09-T as -t plus saves command line arguments in UARG section\0A\00"
@.str.21 = [35 x i8] c"\09-s <seconds> between snap shots\0A\00"
@.str.22 = [47 x i8] c"\09-c <number> of snapshots before nmon stops\0A\00"
@.str.23 = [62 x i8] c"\09-d <disks> to increase the number of disks [default 256]\0A\00"
@.str.24 = [76 x i8] c"\09-l <dpl> disks/line default 150 to avoid spreadsheet issues. EMC=64.\0A\00"
@.str.25 = [75 x i8] c"\09-g <filename> User Defined Disk Groups (see above) - see BBBG & DG lines\0A\00"
@.str.26 = [91 x i8] c"\09-g auto As above but makes the file \22auto\22 for you of just the disks like sda etc.\0A\00"
@.str.27 = [80 x i8] c"\09-D Use with -g to add the Disk wait/service time & inflight stats.\0A\00"
@.str.28 = [48 x i8] c"\09-N include NFS Network File System\0A\00"
@.str.29 = [69 x i8] c"\09-I <percent> Include process & disks busy threshold (default 0.1)\0A\00"
@.str.30 = [74 x i8] c"\09 don't save or show proc/disk using less than this percent\0A\00"
@.str.31 = [70 x i8] c"\09-m <directory> nmon changes to this directory before saving to file\0A\00"
@.str.32 = [68 x i8] c"\09example: collect for 1 hour at 30 second intervals with top procs\0A\00"
@.str.33 = [36 x i8] c"\09\09 nmond -f -t -r Test1 -s30 -c120\0A\00"
@.str.34 = [30 x i8] c"\09To load into a spreadsheet:\0A\00"
@.str.35 = [27 x i8] c"\09sort -A *nmon >stats.csv\0A\00"
@.str.36 = [41 x i8] c"\09transfer the stats.csv file to your PC\0A\00"
@.str.37 = [70 x i8] c"\09Start spreadsheet & then Open type=comma-separated-value ASCII file\0A\00"
@.str.38 = [68 x i8] c"\09 The nmon analyser or consolidator does not need the file sorted.\0A\00"
@.str.39 = [51 x i8] c"Capacity planning mode - use cron to run each day\0A\00"
@.str.40 = [62 x i8] c"\09-x sensible spreadsheet output for CP = one day\0A\00"
@.str.41 = [65 x i8] c"\09 every 15 mins for 1 day ( i.e. -ft -s 900 -c 96)\0A\00"
@.str.42 = [63 x i8] c"\09-X sensible spreadsheet output for CP = busy hour\0A\00"
@.str.43 = [66 x i8] c"\09 every 30 secs for 1 hour ( i.e. -ft -s 30 -c 120)\0A\00"
@.str.44 = [27 x i8] c"Interactive Mode Commands\0A\00"
@.str.45 = [51 x i8] c"\09key --- Toggles to control what is displayed ---\0A\00"
@.str.46 = [32 x i8] c"\09h = Online help information\0A\00"
@.str.47 = [72 x i8] c"\09r = Machine type, machine name, cache details and OS version + LPAR\0A\00"
@.str.48 = [47 x i8] c"\09c = CPU by processor stats with bar graphs\0A\00"
@.str.49 = [58 x i8] c"\09l = long term CPU (over 75 snapshots) with bar graphs\0A\00"
@.str.50 = [21 x i8] c"\09m = Memory stats\0A\00"
@.str.51 = [31 x i8] c"\09L = Huge memory page stats\0A\00"
@.str.52 = [38 x i8] c"\09V = Virtual Memory and Swap stats\0A\00"
@.str.53 = [30 x i8] c"\09k = Kernel Internal stats\0A\00"
@.str.54 = [33 x i8] c"\09n = Network stats and errors\0A\00"
@.str.55 = [32 x i8] c"\09N = NFS Network File System\0A\00"
@.str.56 = [24 x i8] c"\09d = Disk I/O Graphs\0A\00"
@.str.57 = [23 x i8] c"\09D = Disk I/O Stats\0A\00"
@.str.58 = [69 x i8] c"\09o = Disk I/O Map (one character per disk showing how busy it is)\0A\00"
@.str.59 = [78 x i8] c"\09g = User Defined Disk Groups (assumes -g <file> when nmon started)\0A\00"
@.str.60 = [78 x i8] c"\09G = Change Disk stats to just disks (assumes -g auto when nmon started)\0A\00"
@.str.61 = [22 x i8] c"\09j = File Systems \0A\00"
@.str.62 = [90 x i8] c"\09t = Top Process stats: select the data & order 1=Basic, 3=Perf 4=Size 5=I/O=root only\0A\00"
@.str.63 = [65 x i8] c"\09t = Top Process stats use 1,3,4,5 to select the data & order\0A\00"
@.str.64 = [41 x i8] c"\09u = Top Process full command details\0A\00"
@.str.65 = [53 x i8] c"\09v = Verbose mode - tries to make recommendations\0A\00"
@.str.66 = [34 x i8] c"\09P = Partitions Disk I/O Stats\0A\00"
@.str.67 = [48 x i8] c"\09b = black and white mode (or use -b option)\0A\00"
@.str.68 = [56 x i8] c"\09. = minimum mode i.e. only busy disks and processes\0A\00"
@.str.69 = [29 x i8] c"\09key --- Other Controls ---\0A\00"
@.str.70 = [39 x i8] c"\09+ = double the screen refresh time\0A\00"
@.str.71 = [39 x i8] c"\09- = halves the screen refresh time\0A\00"
@.str.72 = [38 x i8] c"\09q = quit (also x, e or control-C)\0A\00"
@.str.73 = [47 x i8] c"\090 = reset peak counts to zero (peak = \22>\22)\0A\00"
@.str.74 = [29 x i8] c"\09space = refresh screen now\0A\00"
@.str.75 = [17 x i8] c"Startup Control\0A\00"
@.str.76 = [68 x i8] c"\09If you find you always type the same toggles every time you start\0A\00"
@.str.77 = [59 x i8] c"\09then place them in the NMON shell variable. For example:\0A\00"
@.str.78 = [24 x i8] c"\09 export NMON=cmdrvtan\0A\00"
@.str.79 = [9 x i8] c"Others:\0A\00"
@.str.80 = [54 x i8] c"\09a) To you want to stop nmon - kill -USR2 <nmon-pid>\0A\00"
@.str.81 = [56 x i8] c"\09b) Use -p and nmon outputs the background process pid\0A\00"
@.str.82 = [62 x i8] c"\09c) To limit the processes nmon lists (online and to a file)\0A\00"
@.str.83 = [59 x i8] c"\09 Either set NMONCMD0 to NMONCMD63 to the program names\0A\00"
@.str.84 = [57 x i8] c"\09 or use -C cmd:cmd:cmd etc. example: -C ksh:vi:syncd\0A\00"
@.str.85 = [67 x i8] c"\09d) If you want to pipe nmon output to other commands use a FIFO:\0A\00"
@.str.86 = [24 x i8] c"\09 mkfifo /tmp/mypipe\0A\00"
@.str.87 = [27 x i8] c"\09 nmon -F /tmp/mypipe &\0A\00"
@.str.88 = [22 x i8] c"\09 grep /tmp/mypipe\0A\00"
@.str.89 = [42 x i8] c"\09e) If nmon fails please report it with:\0A\00"
@.str.90 = [30 x i8] c"\09 1) nmon version like: %s\0A\00"
@.str.91 = [40 x i8] c"\09 2) the output of cat /proc/cpuinfo\0A\00"
@.str.92 = [41 x i8] c"\09 3) some clue of what you were doing\0A\00"
@.str.93 = [47 x i8] c"\09 4) I may ask you to run the debug version\0A\00"
@.str.94 = [28 x i8] c"\09Developer Nigel Griffiths\0A\00"
@.str.95 = [79 x i8] c"\09Feedback welcome - on the current release only and state exactly the problem\0A\00"
@.str.96 = [32 x i8] c"\09No warranty given or implied.\0A\00"
define void @uiclhelp(i8* %0) {
%2 = alloca i8*
store i8* %0, i8** %2
%3 = call i32 (...) @uiclhint()
%4 = load i8*, i8** %2
%5 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i64 0, i64 0), i8* %4)
%6 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.1, i64 0, i64 0))
%7 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([63 x i8], [63 x i8]* @.str.2, i64 0, i64 0))
%8 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([61 x i8], [61 x i8]* @.str.3, i64 0, i64 0))
%9 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([62 x i8], [62 x i8]* @.str.4, i64 0, i64 0))
%10 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([79 x i8], [79 x i8]* @.str.5, i64 0, i64 0))
%11 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([49 x i8], [49 x i8]* @.str.6, i64 0, i64 0))
%12 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([58 x i8], [58 x i8]* @.str.7, i64 0, i64 0))
%13 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([69 x i8], [69 x i8]* @.str.8, i64 0, i64 0))
%14 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([95 x i8], [95 x i8]* @.str.9, i64 0, i64 0))
%15 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([52 x i8], [52 x i8]* @.str.10, i64 0, i64 0))
%16 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([29 x i8], [29 x i8]* @.str.11, i64 0, i64 0))
%17 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.12, i64 0, i64 0))
%18 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([69 x i8], [69 x i8]* @.str.13, i64 0, i64 0))
%19 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([68 x i8], [68 x i8]* @.str.14, i64 0, i64 0))
%20 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([70 x i8], [70 x i8]* @.str.15, i64 0, i64 0))
%21 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([50 x i8], [50 x i8]* @.str.16, i64 0, i64 0))
%22 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([54 x i8], [54 x i8]* @.str.17, i64 0, i64 0))
%23 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([64 x i8], [64 x i8]* @.str.18, i64 0, i64 0))
%24 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([52 x i8], [52 x i8]* @.str.19, i64 0, i64 0))
%25 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([72 x i8], [72 x i8]* @.str.20, i64 0, i64 0))
%26 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([35 x i8], [35 x i8]* @.str.21, i64 0, i64 0))
%27 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([47 x i8], [47 x i8]* @.str.22, i64 0, i64 0))
%28 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([62 x i8], [62 x i8]* @.str.23, i64 0, i64 0))
%29 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([76 x i8], [76 x i8]* @.str.24, i64 0, i64 0))
%30 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([75 x i8], [75 x i8]* @.str.25, i64 0, i64 0))
%31 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([91 x i8], [91 x i8]* @.str.26, i64 0, i64 0))
%32 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([80 x i8], [80 x i8]* @.str.27, i64 0, i64 0))
%33 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([48 x i8], [48 x i8]* @.str.28, i64 0, i64 0))
%34 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([69 x i8], [69 x i8]* @.str.29, i64 0, i64 0))
%35 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([74 x i8], [74 x i8]* @.str.30, i64 0, i64 0))
%36 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([70 x i8], [70 x i8]* @.str.31, i64 0, i64 0))
%37 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([68 x i8], [68 x i8]* @.str.32, i64 0, i64 0))
%38 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([36 x i8], [36 x i8]* @.str.33, i64 0, i64 0))
%39 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.12, i64 0, i64 0))
%40 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([30 x i8], [30 x i8]* @.str.34, i64 0, i64 0))
%41 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([27 x i8], [27 x i8]* @.str.35, i64 0, i64 0))
%42 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([41 x i8], [41 x i8]* @.str.36, i64 0, i64 0))
%43 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([70 x i8], [70 x i8]* @.str.37, i64 0, i64 0))
%44 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([68 x i8], [68 x i8]* @.str.38, i64 0, i64 0))
%45 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.12, i64 0, i64 0))
%46 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([51 x i8], [51 x i8]* @.str.39, i64 0, i64 0))
%47 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([62 x i8], [62 x i8]* @.str.40, i64 0, i64 0))
%48 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([65 x i8], [65 x i8]* @.str.41, i64 0, i64 0))
%49 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([63 x i8], [63 x i8]* @.str.42, i64 0, i64 0))
%50 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([66 x i8], [66 x i8]* @.str.43, i64 0, i64 0))
%51 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.12, i64 0, i64 0))
%52 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([27 x i8], [27 x i8]* @.str.44, i64 0, i64 0))
%53 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([51 x i8], [51 x i8]* @.str.45, i64 0, i64 0))
%54 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([32 x i8], [32 x i8]* @.str.46, i64 0, i64 0))
%55 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([72 x i8], [72 x i8]* @.str.47, i64 0, i64 0))
%56 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([47 x i8], [47 x i8]* @.str.48, i64 0, i64 0))
%57 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([58 x i8], [58 x i8]* @.str.49, i64 0, i64 0))
%58 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([21 x i8], [21 x i8]* @.str.50, i64 0, i64 0))
%59 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([31 x i8], [31 x i8]* @.str.51, i64 0, i64 0))
%60 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([38 x i8], [38 x i8]* @.str.52, i64 0, i64 0))
%61 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([30 x i8], [30 x i8]* @.str.53, i64 0, i64 0))
%62 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([33 x i8], [33 x i8]* @.str.54, i64 0, i64 0))
%63 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([32 x i8], [32 x i8]* @.str.55, i64 0, i64 0))
%64 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([24 x i8], [24 x i8]* @.str.56, i64 0, i64 0))
%65 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([23 x i8], [23 x i8]* @.str.57, i64 0, i64 0))
%66 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([69 x i8], [69 x i8]* @.str.58, i64 0, i64 0))
%67 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([78 x i8], [78 x i8]* @.str.59, i64 0, i64 0))
%68 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([78 x i8], [78 x i8]* @.str.60, i64 0, i64 0))
%69 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.61, i64 0, i64 0))
%70 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([90 x i8], [90 x i8]* @.str.62, i64 0, i64 0))
%71 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([65 x i8], [65 x i8]* @.str.63, i64 0, i64 0))
%72 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([41 x i8], [41 x i8]* @.str.64, i64 0, i64 0))
%73 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([53 x i8], [53 x i8]* @.str.65, i64 0, i64 0))
%74 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([34 x i8], [34 x i8]* @.str.66, i64 0, i64 0))
%75 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([48 x i8], [48 x i8]* @.str.67, i64 0, i64 0))
%76 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([56 x i8], [56 x i8]* @.str.68, i64 0, i64 0))
%77 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.12, i64 0, i64 0))
%78 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([29 x i8], [29 x i8]* @.str.69, i64 0, i64 0))
%79 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([39 x i8], [39 x i8]* @.str.70, i64 0, i64 0))
%80 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([39 x i8], [39 x i8]* @.str.71, i64 0, i64 0))
%81 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([38 x i8], [38 x i8]* @.str.72, i64 0, i64 0))
%82 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([47 x i8], [47 x i8]* @.str.73, i64 0, i64 0))
%83 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([29 x i8], [29 x i8]* @.str.74, i64 0, i64 0))
%84 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.12, i64 0, i64 0))
%85 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([17 x i8], [17 x i8]* @.str.75, i64 0, i64 0))
%86 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([68 x i8], [68 x i8]* @.str.76, i64 0, i64 0))
%87 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([59 x i8], [59 x i8]* @.str.77, i64 0, i64 0))
%88 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([24 x i8], [24 x i8]* @.str.78, i64 0, i64 0))
%89 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.12, i64 0, i64 0))
%90 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.79, i64 0, i64 0))
%91 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([54 x i8], [54 x i8]* @.str.80, i64 0, i64 0))
%92 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([56 x i8], [56 x i8]* @.str.81, i64 0, i64 0))
%93 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([62 x i8], [62 x i8]* @.str.82, i64 0, i64 0))
%94 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([59 x i8], [59 x i8]* @.str.83, i64 0, i64 0))
%95 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([57 x i8], [57 x i8]* @.str.84, i64 0, i64 0))
%96 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([67 x i8], [67 x i8]* @.str.85, i64 0, i64 0))
%97 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([24 x i8], [24 x i8]* @.str.86, i64 0, i64 0))
%98 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([27 x i8], [27 x i8]* @.str.87, i64 0, i64 0))
%99 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.88, i64 0, i64 0))
%100 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([42 x i8], [42 x i8]* @.str.89, i64 0, i64 0))
%101 = load i8*, i8** %2
%102 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([30 x i8], [30 x i8]* @.str.90, i64 0, i64 0), i8* %101)
%103 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([40 x i8], [40 x i8]* @.str.91, i64 0, i64 0))
%104 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([41 x i8], [41 x i8]* @.str.92, i64 0, i64 0))
%105 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([47 x i8], [47 x i8]* @.str.93, i64 0, i64 0))
%106 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.12, i64 0, i64 0))
%107 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([28 x i8], [28 x i8]* @.str.94, i64 0, i64 0))
%108 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([79 x i8], [79 x i8]* @.str.95, i64 0, i64 0))
%109 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([32 x i8], [32 x i8]* @.str.96, i64 0, i64 0))
ret void
}

LLVM IR (-O2):
@.str = [11 x i8] c"nmond %s\0A\0A\00"
@.str.90 = [30 x i8] c"\09 1) nmon version like: %s\0A\00"
@str = [21 x i8] c"For Interactive-Mode\00"
@str.97 = [62 x i8] c"\09-s <seconds> time between refreshing the screen [default 2]\00"
@str.98 = [60 x i8] c"\09-c <number> count of screen refreshes [default millions]\00"
@str.99 = [61 x i8] c"\09-g <filename> User Defined Disk Groups [hit g to show them]\00"
@str.100 = [78 x i8] c"\09 - file = on each line: group_name <disks list> space separated\00"
@str.101 = [48 x i8] c"\09 - like: database sdb sdc sdd sde\00"
@str.102 = [57 x i8] c"\09 - upto 64 disk groups, 512 disks per line\00"
@str.103 = [68 x i8] c"\09 - disks can appear more than once and in many groups\00"
@str.104 = [94 x i8] c"\09-g auto - will make a file called \22auto\22 with just disks fron \22lsblk|grep disk\22 output\00"
@str.105 = [51 x i8] c"\09-b black and white [default is colour]\00"
@str.106 = [28 x i8] c"\09example: nmond -s 1 -c 100\00"
@str.107 = [68 x i8] c"For Data-Collect-Mode = spreadsheet format (comma separated values)\00"
@str.108 = [67 x i8] c"\09Note: use only one of f,F,z,x or X and make it the first argument\00"
@str.109 = [69 x i8] c"\09-f spreadsheet output format [note: default -s300 -c288]\00"
@str.110 = [49 x i8] c"\09\09\09 output file is <hostname>_YYYYMMDD_HHMM.nmon\00"
@str.111 = [53 x i8] c"\09-F <filename> same as -f but user supplied filename\00"
@str.112 = [63 x i8] c"\09-r <runname> used in the spreadsheet file [default hostname]\00"
@str.113 = [51 x i8] c"\09-t include top processes in the output\00"
@str.114 = [71 x i8] c"\09-T as -t plus saves command line arguments in UARG section\00"
@str.115 = [34 x i8] c"\09-s <seconds> between snap shots\00"
@str.116 = [46 x i8] c"\09-c <number> of snapshots before nmon stops\00"
@str.117 = [61 x i8] c"\09-d <disks> to increase the number of disks [default 256]\00"
@str.118 = [75 x i8] c"\09-l <dpl> disks/line default 150 to avoid spreadsheet issues. EMC=64.\00"
@str.119 = [74 x i8] c"\09-g <filename> User Defined Disk Groups (see above) - see BBBG & DG lines\00"
@str.120 = [90 x i8] c"\09-g auto As above but makes the file \22auto\22 for you of just the disks like sda etc.\00"
@str.121 = [79 x i8] c"\09-D Use with -g to add the Disk wait/service time & inflight stats.\00"
@str.122 = [47 x i8] c"\09-N include NFS Network File System\00"
@str.123 = [68 x i8] c"\09-I <percent> Include process & disks busy threshold (default 0.1)\00"
@str.124 = [73 x i8] c"\09 don't save or show proc/disk using less than this percent\00"
@str.125 = [69 x i8] c"\09-m <directory> nmon changes to this directory before saving to file\00"
@str.126 = [67 x i8] c"\09example: collect for 1 hour at 30 second intervals with top procs\00"
@str.127 = [35 x i8] c"\09\09 nmond -f -t -r Test1 -s30 -c120\00"
@str.128 = [29 x i8] c"\09To load into a spreadsheet:\00"
@str.129 = [26 x i8] c"\09sort -A *nmon >stats.csv\00"
@str.130 = [40 x i8] c"\09transfer the stats.csv file to your PC\00"
@str.131 = [69 x i8] c"\09Start spreadsheet & then Open type=comma-separated-value ASCII file\00"
@str.132 = [67 x i8] c"\09 The nmon analyser or consolidator does not need the file sorted.\00"
@str.133 = [50 x i8] c"Capacity planning mode - use cron to run each day\00"
@str.134 = [61 x i8] c"\09-x sensible spreadsheet output for CP = one day\00"
@str.135 = [64 x i8] c"\09 every 15 mins for 1 day ( i.e. -ft -s 900 -c 96)\00"
@str.136 = [62 x i8] c"\09-X sensible spreadsheet output for CP = busy hour\00"
@str.137 = [65 x i8] c"\09 every 30 secs for 1 hour ( i.e. -ft -s 30 -c 120)\00"
@str.138 = [26 x i8] c"Interactive Mode Commands\00"
@str.139 = [50 x i8] c"\09key --- Toggles to control what is displayed ---\00"
@str.140 = [31 x i8] c"\09h = Online help information\00"
@str.141 = [71 x i8] c"\09r = Machine type, machine name, cache details and OS version + LPAR\00"
@str.142 = [46 x i8] c"\09c = CPU by processor stats with bar graphs\00"
@str.143 = [57 x i8] c"\09l = long term CPU (over 75 snapshots) with bar graphs\00"
@str.144 = [20 x i8] c"\09m = Memory stats\00"
@str.145 = [30 x i8] c"\09L = Huge memory page stats\00"
@str.146 = [37 x i8] c"\09V = Virtual Memory and Swap stats\00"
@str.147 = [29 x i8] c"\09k = Kernel Internal stats\00"
@str.148 = [32 x i8] c"\09n = Network stats and errors\00"
@str.149 = [31 x i8] c"\09N = NFS Network File System\00"
@str.150 = [23 x i8] c"\09d = Disk I/O Graphs\00"
@str.151 = [22 x i8] c"\09D = Disk I/O Stats\00"
@str.152 = [68 x i8] c"\09o = Disk I/O Map (one character per disk showing how busy it is)\00"
@str.153 = [77 x i8] c"\09g = User Defined Disk Groups (assumes -g <file> when nmon started)\00"
@str.154 = [77 x i8] c"\09G = Change Disk stats to just disks (assumes -g auto when nmon started)\00"
@str.155 = [21 x i8] c"\09j = File Systems \00"
@str.156 = [89 x i8] c"\09t = Top Process stats: select the data & order 1=Basic, 3=Perf 4=Size 5=I/O=root only\00"
@str.157 = [64 x i8] c"\09t = Top Process stats use 1,3,4,5 to select the data & order\00"
@str.158 = [40 x i8] c"\09u = Top Process full command details\00"
@str.159 = [52 x i8] c"\09v = Verbose mode - tries to make recommendations\00"
@str.160 = [33 x i8] c"\09P = Partitions Disk I/O Stats\00"
@str.161 = [47 x i8] c"\09b = black and white mode (or use -b option)\00"
@str.162 = [55 x i8] c"\09. = minimum mode i.e. only busy disks and processes\00"
@str.163 = [28 x i8] c"\09key --- Other Controls ---\00"
@str.164 = [38 x i8] c"\09+ = double the screen refresh time\00"
@str.165 = [38 x i8] c"\09- = halves the screen refresh time\00"
@str.166 = [37 x i8] c"\09q = quit (also x, e or control-C)\00"
@str.167 = [46 x i8] c"\090 = reset peak counts to zero (peak = \22>\22)\00"
@str.168 = [28 x i8] c"\09space = refresh screen now\00"
@str.169 = [16 x i8] c"Startup Control\00"
@str.170 = [67 x i8] c"\09If you find you always type the same toggles every time you start\00"
@str.171 = [58 x i8] c"\09then place them in the NMON shell variable. For example:\00"
@str.172 = [23 x i8] c"\09 export NMON=cmdrvtan\00"
@str.173 = [8 x i8] c"Others:\00"
@str.174 = [53 x i8] c"\09a) To you want to stop nmon - kill -USR2 <nmon-pid>\00"
@str.175 = [55 x i8] c"\09b) Use -p and nmon outputs the background process pid\00"
@str.176 = [61 x i8] c"\09c) To limit the processes nmon lists (online and to a file)\00"
@str.177 = [58 x i8] c"\09 Either set NMONCMD0 to NMONCMD63 to the program names\00"
@str.178 = [56 x i8] c"\09 or use -C cmd:cmd:cmd etc. example: -C ksh:vi:syncd\00"
@str.179 = [66 x i8] c"\09d) If you want to pipe nmon output to other commands use a FIFO:\00"
@str.180 = [23 x i8] c"\09 mkfifo /tmp/mypipe\00"
@str.181 = [26 x i8] c"\09 nmon -F /tmp/mypipe &\00"
@str.182 = [21 x i8] c"\09 grep /tmp/mypipe\00"
@str.183 = [41 x i8] c"\09e) If nmon fails please report it with:\00"
@str.184 = [39 x i8] c"\09 2) the output of cat /proc/cpuinfo\00"
@str.185 = [40 x i8] c"\09 3) some clue of what you were doing\00"
@str.186 = [46 x i8] c"\09 4) I may ask you to run the debug version\00"
@str.187 = [27 x i8] c"\09Developer Nigel Griffiths\00"
@str.188 = [78 x i8] c"\09Feedback welcome - on the current release only and state exactly the problem\00"
@str.189 = [31 x i8] c"\09No warranty given or implied.\00"
define void @uiclhelp(i8* %0) {
%2 = tail call i32 (...) @uiclhint()
%3 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([11 x i8], [11 x i8]* @.str, i64 0, i64 0), i8* %0)
%4 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([21 x i8], [21 x i8]* @str, i64 0, i64 0))
%5 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([62 x i8], [62 x i8]* @str.97, i64 0, i64 0))
%6 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([60 x i8], [60 x i8]* @str.98, i64 0, i64 0))
%7 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([61 x i8], [61 x i8]* @str.99, i64 0, i64 0))
%8 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([78 x i8], [78 x i8]* @str.100, i64 0, i64 0))
%9 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([48 x i8], [48 x i8]* @str.101, i64 0, i64 0))
%10 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([57 x i8], [57 x i8]* @str.102, i64 0, i64 0))
%11 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([68 x i8], [68 x i8]* @str.103, i64 0, i64 0))
%12 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([94 x i8], [94 x i8]* @str.104, i64 0, i64 0))
%13 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([51 x i8], [51 x i8]* @str.105, i64 0, i64 0))
%14 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([28 x i8], [28 x i8]* @str.106, i64 0, i64 0))
%15 = tail call i32 @putchar(i32 10)
%16 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([68 x i8], [68 x i8]* @str.107, i64 0, i64 0))
%17 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([67 x i8], [67 x i8]* @str.108, i64 0, i64 0))
%18 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([69 x i8], [69 x i8]* @str.109, i64 0, i64 0))
%19 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([49 x i8], [49 x i8]* @str.110, i64 0, i64 0))
%20 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([53 x i8], [53 x i8]* @str.111, i64 0, i64 0))
%21 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([63 x i8], [63 x i8]* @str.112, i64 0, i64 0))
%22 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([51 x i8], [51 x i8]* @str.113, i64 0, i64 0))
%23 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([71 x i8], [71 x i8]* @str.114, i64 0, i64 0))
%24 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([34 x i8], [34 x i8]* @str.115, i64 0, i64 0))
%25 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([46 x i8], [46 x i8]* @str.116, i64 0, i64 0))
%26 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([61 x i8], [61 x i8]* @str.117, i64 0, i64 0))
%27 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([75 x i8], [75 x i8]* @str.118, i64 0, i64 0))
%28 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([74 x i8], [74 x i8]* @str.119, i64 0, i64 0))
%29 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([90 x i8], [90 x i8]* @str.120, i64 0, i64 0))
%30 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([79 x i8], [79 x i8]* @str.121, i64 0, i64 0))
%31 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([47 x i8], [47 x i8]* @str.122, i64 0, i64 0))
%32 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([68 x i8], [68 x i8]* @str.123, i64 0, i64 0))
%33 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([73 x i8], [73 x i8]* @str.124, i64 0, i64 0))
%34 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([69 x i8], [69 x i8]* @str.125, i64 0, i64 0))
%35 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([67 x i8], [67 x i8]* @str.126, i64 0, i64 0))
%36 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([35 x i8], [35 x i8]* @str.127, i64 0, i64 0))
%37 = tail call i32 @putchar(i32 10)
%38 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([29 x i8], [29 x i8]* @str.128, i64 0, i64 0))
%39 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([26 x i8], [26 x i8]* @str.129, i64 0, i64 0))
%40 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([40 x i8], [40 x i8]* @str.130, i64 0, i64 0))
%41 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([69 x i8], [69 x i8]* @str.131, i64 0, i64 0))
%42 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([67 x i8], [67 x i8]* @str.132, i64 0, i64 0))
%43 = tail call i32 @putchar(i32 10)
%44 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([50 x i8], [50 x i8]* @str.133, i64 0, i64 0))
%45 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([61 x i8], [61 x i8]* @str.134, i64 0, i64 0))
%46 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([64 x i8], [64 x i8]* @str.135, i64 0, i64 0))
%47 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([62 x i8], [62 x i8]* @str.136, i64 0, i64 0))
%48 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([65 x i8], [65 x i8]* @str.137, i64 0, i64 0))
%49 = tail call i32 @putchar(i32 10)
%50 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([26 x i8], [26 x i8]* @str.138, i64 0, i64 0))
%51 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([50 x i8], [50 x i8]* @str.139, i64 0, i64 0))
%52 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([31 x i8], [31 x i8]* @str.140, i64 0, i64 0))
%53 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([71 x i8], [71 x i8]* @str.141, i64 0, i64 0))
%54 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([46 x i8], [46 x i8]* @str.142, i64 0, i64 0))
%55 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([57 x i8], [57 x i8]* @str.143, i64 0, i64 0))
%56 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([20 x i8], [20 x i8]* @str.144, i64 0, i64 0))
%57 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([30 x i8], [30 x i8]* @str.145, i64 0, i64 0))
%58 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([37 x i8], [37 x i8]* @str.146, i64 0, i64 0))
%59 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([29 x i8], [29 x i8]* @str.147, i64 0, i64 0))
%60 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([32 x i8], [32 x i8]* @str.148, i64 0, i64 0))
%61 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([31 x i8], [31 x i8]* @str.149, i64 0, i64 0))
%62 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([23 x i8], [23 x i8]* @str.150, i64 0, i64 0))
%63 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([22 x i8], [22 x i8]* @str.151, i64 0, i64 0))
%64 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([68 x i8], [68 x i8]* @str.152, i64 0, i64 0))
%65 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([77 x i8], [77 x i8]* @str.153, i64 0, i64 0))
%66 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([77 x i8], [77 x i8]* @str.154, i64 0, i64 0))
%67 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([21 x i8], [21 x i8]* @str.155, i64 0, i64 0))
%68 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([89 x i8], [89 x i8]* @str.156, i64 0, i64 0))
%69 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([64 x i8], [64 x i8]* @str.157, i64 0, i64 0))
%70 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([40 x i8], [40 x i8]* @str.158, i64 0, i64 0))
%71 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([52 x i8], [52 x i8]* @str.159, i64 0, i64 0))
%72 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([33 x i8], [33 x i8]* @str.160, i64 0, i64 0))
%73 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([47 x i8], [47 x i8]* @str.161, i64 0, i64 0))
%74 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([55 x i8], [55 x i8]* @str.162, i64 0, i64 0))
%75 = tail call i32 @putchar(i32 10)
%76 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([28 x i8], [28 x i8]* @str.163, i64 0, i64 0))
%77 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([38 x i8], [38 x i8]* @str.164, i64 0, i64 0))
%78 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([38 x i8], [38 x i8]* @str.165, i64 0, i64 0))
%79 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([37 x i8], [37 x i8]* @str.166, i64 0, i64 0))
%80 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([46 x i8], [46 x i8]* @str.167, i64 0, i64 0))
%81 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([28 x i8], [28 x i8]* @str.168, i64 0, i64 0))
%82 = tail call i32 @putchar(i32 10)
%83 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([16 x i8], [16 x i8]* @str.169, i64 0, i64 0))
%84 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([67 x i8], [67 x i8]* @str.170, i64 0, i64 0))
%85 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([58 x i8], [58 x i8]* @str.171, i64 0, i64 0))
%86 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([23 x i8], [23 x i8]* @str.172, i64 0, i64 0))
%87 = tail call i32 @putchar(i32 10)
%88 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([8 x i8], [8 x i8]* @str.173, i64 0, i64 0))
%89 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([53 x i8], [53 x i8]* @str.174, i64 0, i64 0))
%90 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([55 x i8], [55 x i8]* @str.175, i64 0, i64 0))
%91 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([61 x i8], [61 x i8]* @str.176, i64 0, i64 0))
%92 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([58 x i8], [58 x i8]* @str.177, i64 0, i64 0))
%93 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([56 x i8], [56 x i8]* @str.178, i64 0, i64 0))
%94 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([66 x i8], [66 x i8]* @str.179, i64 0, i64 0))
%95 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([23 x i8], [23 x i8]* @str.180, i64 0, i64 0))
%96 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([26 x i8], [26 x i8]* @str.181, i64 0, i64 0))
%97 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([21 x i8], [21 x i8]* @str.182, i64 0, i64 0))
%98 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([41 x i8], [41 x i8]* @str.183, i64 0, i64 0))
%99 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([30 x i8], [30 x i8]* @.str.90, i64 0, i64 0), i8* %0)
%100 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([39 x i8], [39 x i8]* @str.184, i64 0, i64 0))
%101 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([40 x i8], [40 x i8]* @str.185, i64 0, i64 0))
%102 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([46 x i8], [46 x i8]* @str.186, i64 0, i64 0))
%103 = tail call i32 @putchar(i32 10)
%104 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([27 x i8], [27 x i8]* @str.187, i64 0, i64 0))
%105 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([78 x i8], [78 x i8]* @str.188, i64 0, i64 0))
%106 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([31 x i8], [31 x i8]* @str.189, i64 0, i64 0))
ret void
}