#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*/ fprintf(int /*<<< orphan*/, char *);
int /*<<< orphan*/ stderr;
void help() {
  fprintf(
      stderr,
      "Usage: hwinfo [OPTIONS]\n"
      "Probe for hardware.\n"
      "Options:\n"
      "    --<HARDWARE_ITEM>\n"
      "        This option can be given more than once. Probe for a "
      "particular\n"
      "        HARDWARE_ITEM. Available hardware items are:\n"
      "        all, arch, bios, block, bluetooth, braille, bridge, camera,\n"
      "        cdrom, chipcard, cpu, disk, dsl, dvb, fingerprint, floppy,\n"
      "        framebuffer, gfxcard, hub, ide, isapnp, isdn, joystick, "
      "keyboard,\n"
      "        memory, mmc-ctrl, modem, monitor, mouse, netcard, network, "
      "partition,\n"
      "        pci, pcmcia, pcmcia-ctrl, pppoe, printer, redasd,\n"
      "        reallyall, scanner, scsi, smp, sound, storage-ctrl, sys, tape,\n"
      "        tv, uml, usb, usb-ctrl, vbe, wlan, xen, zip\n"
      "    --short\n"
      "        Show only a summary. Use this option in addition to a hardware\n"
      "        probing option.\n"
      "    --listmd\n"
      "        Normally hwinfo does not report RAID devices. Add this option "
      "to\n"
      "        see them.\n"
      "    --only DEVNAME\n"
      "        This option can be given more than once. If you add this "
      "option\n"
      "        only entries in the device list matching DEVNAME will be "
      "shown.\n"
      "        Note that you also have to specify --<HARDWARE_ITEM> to "
      "trigger\n"
      "        any device probing.\n"
      "    --save-config SPEC\n"
      "        Store config  for a particular device below /var/lib/hardware.\n"
      "        SPEC can be a device name, an UDI, or 'all'. This option must "
      "be\n"
      "        given in addition to a hardware probing option.\n"
      "    --show-config UDI\n"
      "        Show saved config data for a particular device.\n"
      "    --map\n"
      "        If disk names have  changed (e.g. after a kernel update) this\n"
      "        prints a list of disk name mappings. Note  that  you must have\n"
      "        used --save-config at some point before for this can work.\n"
      "    --debug N\n"
      "        Set debug level to N. The debug info is shown only in the log\n"
      "        file. If you specify a log file, the debug level is implicitly\n"
      "        set to a reasonable value (N is a bitmask of individual "
      "flags).\n"
      "    --verbose\n"
      "        Increase verbosity. Only together with --map.\n"
      "    --log FILE\n"
      "        Write log info to FILE.\n"
      "        Don't forget to also specify --<HARDWARE_ITEM> to trigger any\n"
      "        device probing.\n"
      "    --dump-db N\n"
      "        Dump hardware data base. N is either 0 for the external data\n"
      "        base in /var/lib/hardware, or 1 for the internal data base.\n"
      "    --version\n"
      "        Print libhd version.\n"
      "    --help\n"
      "        Print usage.\n");
}


x86 assembly (clang, -O0):
<help>:
push   %rbp
mov    %rsp,%rbp
mov    0x2ec5(%rip),%rax
mov    (%rax),%edi
lea    0xedc(%rip),%rsi
call   1030 <fprintf@plt>
pop    %rbp
ret

x86 assembly (clang, -O2):
<help>:
mov    0x2ec9(%rip),%rax
mov    (%rax),%edi
lea    0xee0(%rip),%rsi
jmp    1030 <fprintf@plt>

LLVM IR (-O0):
@stderr = global i32 0
@.str = [2326 x i8] c"Usage: hwinfo [OPTIONS]\0AProbe for hardware.\0AOptions:\0A --<HARDWARE_ITEM>\0A This option can be given more than once. Probe for a particular\0A HARDWARE_ITEM. Available hardware items are:\0A all, arch, bios, block, bluetooth, braille, bridge, camera,\0A cdrom, chipcard, cpu, disk, dsl, dvb, fingerprint, floppy,\0A framebuffer, gfxcard, hub, ide, isapnp, isdn, joystick, keyboard,\0A memory, mmc-ctrl, modem, monitor, mouse, netcard, network, partition,\0A pci, pcmcia, pcmcia-ctrl, pppoe, printer, redasd,\0A reallyall, scanner, scsi, smp, sound, storage-ctrl, sys, tape,\0A tv, uml, usb, usb-ctrl, vbe, wlan, xen, zip\0A --short\0A Show only a summary. Use this option in addition to a hardware\0A probing option.\0A --listmd\0A Normally hwinfo does not report RAID devices. Add this option to\0A see them.\0A --only DEVNAME\0A This option can be given more than once. If you add this option\0A only entries in the device list matching DEVNAME will be shown.\0A Note that you also have to specify --<HARDWARE_ITEM> to trigger\0A any device probing.\0A --save-config SPEC\0A Store config for a particular device below /var/lib/hardware.\0A SPEC can be a device name, an UDI, or 'all'. This option must be\0A given in addition to a hardware probing option.\0A --show-config UDI\0A Show saved config data for a particular device.\0A --map\0A If disk names have changed (e.g. after a kernel update) this\0A prints a list of disk name mappings. Note that you must have\0A used --save-config at some point before for this can work.\0A --debug N\0A Set debug level to N. The debug info is shown only in the log\0A file. If you specify a log file, the debug level is implicitly\0A set to a reasonable value (N is a bitmask of individual flags).\0A --verbose\0A Increase verbosity. Only together with --map.\0A --log FILE\0A Write log info to FILE.\0A Don't forget to also specify --<HARDWARE_ITEM> to trigger any\0A device probing.\0A --dump-db N\0A Dump hardware data base. N is either 0 for the external data\0A base in /var/lib/hardware, or 1 for the internal data base.\0A --version\0A Print libhd version.\0A --help\0A Print usage.\0A\00"
define void @help() {
%1 = load i32, i32* @stderr
%2 = call i32 @fprintf(i32 %1, i8* getelementptr inbounds ([2326 x i8], [2326 x i8]* @.str, i64 0, i64 0))
ret void
}

LLVM IR (-O2):
@stderr = global i32 0
@.str = [2326 x i8] c"Usage: hwinfo [OPTIONS]\0AProbe for hardware.\0AOptions:\0A --<HARDWARE_ITEM>\0A This option can be given more than once. Probe for a particular\0A HARDWARE_ITEM. Available hardware items are:\0A all, arch, bios, block, bluetooth, braille, bridge, camera,\0A cdrom, chipcard, cpu, disk, dsl, dvb, fingerprint, floppy,\0A framebuffer, gfxcard, hub, ide, isapnp, isdn, joystick, keyboard,\0A memory, mmc-ctrl, modem, monitor, mouse, netcard, network, partition,\0A pci, pcmcia, pcmcia-ctrl, pppoe, printer, redasd,\0A reallyall, scanner, scsi, smp, sound, storage-ctrl, sys, tape,\0A tv, uml, usb, usb-ctrl, vbe, wlan, xen, zip\0A --short\0A Show only a summary. Use this option in addition to a hardware\0A probing option.\0A --listmd\0A Normally hwinfo does not report RAID devices. Add this option to\0A see them.\0A --only DEVNAME\0A This option can be given more than once. If you add this option\0A only entries in the device list matching DEVNAME will be shown.\0A Note that you also have to specify --<HARDWARE_ITEM> to trigger\0A any device probing.\0A --save-config SPEC\0A Store config for a particular device below /var/lib/hardware.\0A SPEC can be a device name, an UDI, or 'all'. This option must be\0A given in addition to a hardware probing option.\0A --show-config UDI\0A Show saved config data for a particular device.\0A --map\0A If disk names have changed (e.g. after a kernel update) this\0A prints a list of disk name mappings. Note that you must have\0A used --save-config at some point before for this can work.\0A --debug N\0A Set debug level to N. The debug info is shown only in the log\0A file. If you specify a log file, the debug level is implicitly\0A set to a reasonable value (N is a bitmask of individual flags).\0A --verbose\0A Increase verbosity. Only together with --map.\0A --log FILE\0A Write log info to FILE.\0A Don't forget to also specify --<HARDWARE_ITEM> to trigger any\0A device probing.\0A --dump-db N\0A Dump hardware data base. N is either 0 for the external data\0A base in /var/lib/hardware, or 1 for the internal data base.\0A --version\0A Print libhd version.\0A --help\0A Print usage.\0A\00"
define void @help() {
%1 = load i32, i32* @stderr
%2 = tail call i32 @fprintf(i32 %1, i8* getelementptr inbounds ([2326 x i8], [2326 x i8]* @.str, i64 0, i64 0))
ret void
}