#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 print_help(void) {
  printf(
      "Usage: asapconv [OPTIONS] INPUTFILE...\n"
      "Each INPUTFILE must be in a supported format:\n"
      "SAP, CMC, CM3, CMR, CMS, DMC, DLT, MPT, MPD, RMT, TMC, TM8, TM2 or FC.\n"
      "Output EXT must be one of the above or XEX, "
      "WAV or RAW"
      ".\n"
      "Options:\n"
      "-o FILE.EXT --output=FILE.EXT  Write to the specified file\n"
      "-o .EXT     --output=.EXT      Use input file path and name\n"
      "-o DIR/.EXT --output=DIR/.EXT  Write to the specified directory\n"
      "-o -.EXT    --output=-.EXT     Write to standard output\n"
      "-a \"TEXT\"   --author=\"TEXT\"    Set author name\n"
      "-n \"TEXT\"   --name=\"TEXT\"      Set music name\n"
      "-d \"TEXT\"   --date=\"TEXT\"      Set music creation date (DD/MM/YYYY "
      "format)\n"
      "-h          --help             Display this information\n"
      "-v          --version          Display version information\n"
      "In FILE, DIR and EXT you may use the following placeholders:\n"
      "%%a                             Music author\n"
      "%%n                             Music name\n"
      "%%d                             Music creation date\n"
      "%%e                             Original extension (e.g. \"cmc\")\n"
      "Options for "
      "WAV or RAW"
      " output:\n"
      "-s SONG     --song=SONG        Select subsong number (zero-based)\n"
      "-t TIME     --time=TIME        Set output length (MM:SS format)\n"
      "-m CHANNELS --mute=CHANNELS    Mute POKEY channels (1-8)\n"
      "-b          --byte-samples     Output 8-bit samples\n"
      "-w          --word-samples     Output 16-bit samples (default)\n"
      "Options for XEX, WAV "
      "output:\n"
      "            --tag              Include metadata in the output file\n"
      "Options for SAP output:\n"
      "-s SONG     --song=SONG        Select subsong to set length of\n"
      "-t TIME     --time=TIME        Set subsong length (MM:SS format)\n"
      "Options for native modules (output format same as input format):\n"
      "            --address=HEXNUM   Relocate music to the given address\n");
}


x86 assembly (clang, -O0):
<print_help>:
push   %rbp
mov    %rsp,%rbp
lea    0xee5(%rip),%rdi
call   1030 <printf@plt>
pop    %rbp
ret

x86 assembly (clang, -O2):
<print_help>:
lea    0xee9(%rip),%rdi
jmp    1030 <printf@plt>

LLVM IR (-O0):
@.str = [1722 x i8] c"Usage: asapconv [OPTIONS] INPUTFILE...\0AEach INPUTFILE must be in a supported format:\0ASAP, CMC, CM3, CMR, CMS, DMC, DLT, MPT, MPD, RMT, TMC, TM8, TM2 or FC.\0AOutput EXT must be one of the above or XEX, WAV or RAW.\0AOptions:\0A-o FILE.EXT --output=FILE.EXT Write to the specified file\0A-o .EXT --output=.EXT Use input file path and name\0A-o DIR/.EXT --output=DIR/.EXT Write to the specified directory\0A-o -.EXT --output=-.EXT Write to standard output\0A-a \22TEXT\22 --author=\22TEXT\22 Set author name\0A-n \22TEXT\22 --name=\22TEXT\22 Set music name\0A-d \22TEXT\22 --date=\22TEXT\22 Set music creation date (DD/MM/YYYY format)\0A-h --help Display this information\0A-v --version Display version information\0AIn FILE, DIR and EXT you may use the following placeholders:\0A%%a Music author\0A%%n Music name\0A%%d Music creation date\0A%%e Original extension (e.g. \22cmc\22)\0AOptions for WAV or RAW output:\0A-s SONG --song=SONG Select subsong number (zero-based)\0A-t TIME --time=TIME Set output length (MM:SS format)\0A-m CHANNELS --mute=CHANNELS Mute POKEY channels (1-8)\0A-b --byte-samples Output 8-bit samples\0A-w --word-samples Output 16-bit samples (default)\0AOptions for XEX, WAV output:\0A --tag Include metadata in the output file\0AOptions for SAP output:\0A-s SONG --song=SONG Select subsong to set length of\0A-t TIME --time=TIME Set subsong length (MM:SS format)\0AOptions for native modules (output format same as input format):\0A --address=HEXNUM Relocate music to the given address\0A\00"
define void @print_help() {
%1 = call i32 @printf(i8* getelementptr inbounds ([1722 x i8], [1722 x i8]* @.str, i64 0, i64 0))
ret void
}

LLVM IR (-O2):
@.str = [1722 x i8] c"Usage: asapconv [OPTIONS] INPUTFILE...\0AEach INPUTFILE must be in a supported format:\0ASAP, CMC, CM3, CMR, CMS, DMC, DLT, MPT, MPD, RMT, TMC, TM8, TM2 or FC.\0AOutput EXT must be one of the above or XEX, WAV or RAW.\0AOptions:\0A-o FILE.EXT --output=FILE.EXT Write to the specified file\0A-o .EXT --output=.EXT Use input file path and name\0A-o DIR/.EXT --output=DIR/.EXT Write to the specified directory\0A-o -.EXT --output=-.EXT Write to standard output\0A-a \22TEXT\22 --author=\22TEXT\22 Set author name\0A-n \22TEXT\22 --name=\22TEXT\22 Set music name\0A-d \22TEXT\22 --date=\22TEXT\22 Set music creation date (DD/MM/YYYY format)\0A-h --help Display this information\0A-v --version Display version information\0AIn FILE, DIR and EXT you may use the following placeholders:\0A%%a Music author\0A%%n Music name\0A%%d Music creation date\0A%%e Original extension (e.g. \22cmc\22)\0AOptions for WAV or RAW output:\0A-s SONG --song=SONG Select subsong number (zero-based)\0A-t TIME --time=TIME Set output length (MM:SS format)\0A-m CHANNELS --mute=CHANNELS Mute POKEY channels (1-8)\0A-b --byte-samples Output 8-bit samples\0A-w --word-samples Output 16-bit samples (default)\0AOptions for XEX, WAV output:\0A --tag Include metadata in the output file\0AOptions for SAP output:\0A-s SONG --song=SONG Select subsong to set length of\0A-t TIME --time=TIME Set subsong length (MM:SS format)\0AOptions for native modules (output format same as input format):\0A --address=HEXNUM Relocate music to the given address\0A\00"
define void @print_help() {
%1 = tail call i32 @printf(i8* dereferenceable(1) getelementptr inbounds ([1722 x i8], [1722 x i8]* @.str, i64 0, i64 0))
ret void
}