#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 display_help() {
  printf("%s %s\n\nUSAGE:\n\n", "MP3Info 0.8.5",
         "Copyright (C) 2006 Cedric Tefft and Ricardo Cerqueira");
  printf("\tmp3info [ -h | -G ]\n"
         "\n\tmp3info [-x] [-F] [-r a|m|v] [-p FORMAT_STRING] file(s)\n"
         "\n\tmp3info [-d] file(s)\n"
         "\n\tmp3info [-i]  [-t title] [-a artist] [-l album] [-y year]\n"
         "\t\t[-c comment] [-n track] [-g genre] file(s)\n"
         "\nOPTIONS\n"
         "\t-a artist\tSpecify ID3 artist name\n"
         "\t-c comment\tSpecify ID3 comment\n"
         "\t-g genre\tSpecify ID3 genre (use -G for genre list)\n"
         "\t-l album\tSpecify ID3 album name\n"
         "\t-n track\tSpecify ID3 v1.1 track number\n"
         "\t-t title\tSpecify ID3 track title\n"
         "\t-y year\t\tSpecify ID3 copyright year\n\n"
         "\t-G\t\tDisplay valid genres\n"
         "\t-h\t\tDisplay this help page\n"
         "\t-x\t\tDisplay technical attributes of the MP3 file\n"
         "\t-r a|m|v\tReport bit rate of (VBR) files as:\n"
         "\t\ta - Average bit rate (float)\n"
         "\t\tm - Median bit rate (integer)\n"
         "\t\tv - Simply  use  the  word 'Variable' (string) [default]\n\n"
         "\t-i\t\tEdit ID3  tag  interactively\n"
         "\t-d\t\tDelete ID3 tag (if one exists)\n"
         "\t-f\t\tForce processing if file is not a standard MP3\n"
         "\t-F\t\tFull Scan (see man page for details)\n"
         "\n\n\t-p \"FORMAT_STRING\" Print FORMAT_STRING with substitutions\n"
         "\n\t\tConversion Specifiers\n\n"
         "\t\t%%f\tFilename without the path (string)\n"
         "\t\t%%F\tFilename with the path (string)\n"
         "\t\t%%k\tFile size in KB (integer)\n"
         "\n\t\t%%a\tArtist (string)\n"
         "\t\t%%c\tComment (string)\n"
         "\t\t%%g\tMusical genre (string)\n"
         "\t\t%%G\tMusical genre (integer)\n"
         "\t\t%%l\tAlbum name (string)\n"
         "\t\t%%n\tTrack (integer)\n"
         "\t\t%%t\tTrack Title (string)\n"
         "\t\t%%y\tYear (string)\n"
         "\n\t\t%%C\tCopyright flag (string)\n"
         "\t\t%%e\tEmphasis (string)\n"
         "\t\t%%E\tCRC Error protection (string)\n"
         "\t\t%%L\tMPEG Layer (string)\n"
         "\t\t%%O\tOriginal material flag (string)\n"
         "\t\t%%o\tStereo/mono mode (string)\n"
         "\t\t%%p\tPadding (string)\n"
         "\t\t%%v\tMPEG Version (float)\n"
         "\n\t\t%%u\tNumber of good audio frames (integer)\n"
         "\t\t%%b\tNumber of corrupt audio frames (integer)\n"
         "\t\t%%Q\tSampling frequency in Hz (integer)\n"
         "\t\t%%q\tSampling frequency in KHz (integer)\n"
         "\t\t%%r\tBit  Rate  in  KB/s  (see also '-r')\n"
         "\n\t\t%%m\tPlaying time: minutes only (integer)\n"
         "\t\t%%s\tPlaying time: seconds only (integer)\n"
         "\t\t%%S\tTotal playing time in seconds (integer)\n"
         "\n\t\t%%%%\tA single percent sign\n"
         "\n\t\tEscape Sequences\n\n"
         "\t\t\\n\tNewline\n"
         "\t\t\\t\tHorizontal tab\n"
         "\t\t\\v\tVertical tab\n"
         "\t\t\\b\tBackspace\n"
         "\t\t\\r\tCarriage Return\n"
         "\t\t\\f\tForm Feed\n"
         "\t\t\\a\tAudible Alert (terminal bell)\n"
         "\t\t\\xhh\tAny  arbitrary character specified by the\n"
         "\t\t\thexidecimal number hh\n"
         "\t\t\\ooo\tAny arbitrary character specified by  the\n"
         "\t\t\toctal number ooo\n"
         "\t\t\\\\\tA single backslash character\n\n"
         "This help screen is only a summary of command-line switches\n"
         "See the man page for complete documentation.\n\n");
}


x86 assembly (clang, -O0):
<display_help>:
push   %rbp
mov    %rsp,%rbp
lea    0xee5(%rip),%rdi
lea    0xeee(%rip),%rsi
lea    0xef5(%rip),%rdx
mov    $0x0,%al
call   1030 <printf@plt>
lea    0xf1d(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
pop    %rbp
ret

x86 assembly (clang, -O2):
<display_help>:
push   %rax
lea    0xee8(%rip),%rdi
lea    0xef1(%rip),%rsi
lea    0xef8(%rip),%rdx
xor    %eax,%eax
call   1030 <printf@plt>
lea    0xf20(%rip),%rdi
xor    %eax,%eax
pop    %rcx
jmp    1030 <printf@plt>

LLVM IR (-O0):
@.str = [16 x i8] c"%s %s\0A\0AUSAGE:\0A\0A\00"
@.str.1 = [14 x i8] c"MP3Info 0.8.5\00"
@.str.2 = [54 x i8] c"Copyright (C) 2006 Cedric Tefft and Ricardo Cerqueira\00"
@.str.3 = [2375 x i8] c"\09mp3info [ -h | -G ]\0A\0A\09mp3info [-x] [-F] [-r a|m|v] [-p FORMAT_STRING] file(s)\0A\0A\09mp3info [-d] file(s)\0A\0A\09mp3info [-i] [-t title] [-a artist] [-l album] [-y year]\0A\09\09[-c comment] [-n track] [-g genre] file(s)\0A\0AOPTIONS\0A\09-a artist\09Specify ID3 artist name\0A\09-c comment\09Specify ID3 comment\0A\09-g genre\09Specify ID3 genre (use -G for genre list)\0A\09-l album\09Specify ID3 album name\0A\09-n track\09Specify ID3 v1.1 track number\0A\09-t title\09Specify ID3 track title\0A\09-y year\09\09Specify ID3 copyright year\0A\0A\09-G\09\09Display valid genres\0A\09-h\09\09Display this help page\0A\09-x\09\09Display technical attributes of the MP3 file\0A\09-r a|m|v\09Report bit rate of (VBR) files as:\0A\09\09a - Average bit rate (float)\0A\09\09m - Median bit rate (integer)\0A\09\09v - Simply use the word 'Variable' (string) [default]\0A\0A\09-i\09\09Edit ID3 tag interactively\0A\09-d\09\09Delete ID3 tag (if one exists)\0A\09-f\09\09Force processing if file is not a standard MP3\0A\09-F\09\09Full Scan (see man page for details)\0A\0A\0A\09-p \22FORMAT_STRING\22 Print FORMAT_STRING with substitutions\0A\0A\09\09Conversion Specifiers\0A\0A\09\09%%f\09Filename without the path (string)\0A\09\09%%F\09Filename with the path (string)\0A\09\09%%k\09File size in KB (integer)\0A\0A\09\09%%a\09Artist (string)\0A\09\09%%c\09Comment (string)\0A\09\09%%g\09Musical genre (string)\0A\09\09%%G\09Musical genre (integer)\0A\09\09%%l\09Album name (string)\0A\09\09%%n\09Track (integer)\0A\09\09%%t\09Track Title (string)\0A\09\09%%y\09Year (string)\0A\0A\09\09%%C\09Copyright flag (string)\0A\09\09%%e\09Emphasis (string)\0A\09\09%%E\09CRC Error protection (string)\0A\09\09%%L\09MPEG Layer (string)\0A\09\09%%O\09Original material flag (string)\0A\09\09%%o\09Stereo/mono mode (string)\0A\09\09%%p\09Padding (string)\0A\09\09%%v\09MPEG Version (float)\0A\0A\09\09%%u\09Number of good audio frames (integer)\0A\09\09%%b\09Number of corrupt audio frames (integer)\0A\09\09%%Q\09Sampling frequency in Hz (integer)\0A\09\09%%q\09Sampling frequency in KHz (integer)\0A\09\09%%r\09Bit Rate in KB/s (see also '-r')\0A\0A\09\09%%m\09Playing time: minutes only (integer)\0A\09\09%%s\09Playing time: seconds only (integer)\0A\09\09%%S\09Total playing time in seconds (integer)\0A\0A\09\09%%%%\09A single percent sign\0A\0A\09\09Escape Sequences\0A\0A\09\09\\n\09Newline\0A\09\09\\t\09Horizontal tab\0A\09\09\\v\09Vertical tab\0A\09\09\\b\09Backspace\0A\09\09\\r\09Carriage Return\0A\09\09\\f\09Form Feed\0A\09\09\\a\09Audible Alert (terminal bell)\0A\09\09\\xhh\09Any arbitrary character specified by the\0A\09\09\09hexidecimal number hh\0A\09\09\\ooo\09Any arbitrary character specified by the\0A\09\09\09octal number ooo\0A\09\09\\\\\09A single backslash character\0A\0AThis help screen is only a summary of command-line switches\0ASee the man page for complete documentation.\0A\0A\00"
define void @display_help() {
%1 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str, i64 0, i64 0), i8* getelementptr inbounds ([14 x i8], [14 x i8]* @.str.1, i64 0, i64 0), i8* getelementptr inbounds ([54 x i8], [54 x i8]* @.str.2, i64 0, i64 0))
%2 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([2375 x i8], [2375 x i8]* @.str.3, i64 0, i64 0))
ret void
}

LLVM IR (-O2):
@.str = [16 x i8] c"%s %s\0A\0AUSAGE:\0A\0A\00"
@.str.1 = [14 x i8] c"MP3Info 0.8.5\00"
@.str.2 = [54 x i8] c"Copyright (C) 2006 Cedric Tefft and Ricardo Cerqueira\00"
@.str.3 = [2375 x i8] c"\09mp3info [ -h | -G ]\0A\0A\09mp3info [-x] [-F] [-r a|m|v] [-p FORMAT_STRING] file(s)\0A\0A\09mp3info [-d] file(s)\0A\0A\09mp3info [-i] [-t title] [-a artist] [-l album] [-y year]\0A\09\09[-c comment] [-n track] [-g genre] file(s)\0A\0AOPTIONS\0A\09-a artist\09Specify ID3 artist name\0A\09-c comment\09Specify ID3 comment\0A\09-g genre\09Specify ID3 genre (use -G for genre list)\0A\09-l album\09Specify ID3 album name\0A\09-n track\09Specify ID3 v1.1 track number\0A\09-t title\09Specify ID3 track title\0A\09-y year\09\09Specify ID3 copyright year\0A\0A\09-G\09\09Display valid genres\0A\09-h\09\09Display this help page\0A\09-x\09\09Display technical attributes of the MP3 file\0A\09-r a|m|v\09Report bit rate of (VBR) files as:\0A\09\09a - Average bit rate (float)\0A\09\09m - Median bit rate (integer)\0A\09\09v - Simply use the word 'Variable' (string) [default]\0A\0A\09-i\09\09Edit ID3 tag interactively\0A\09-d\09\09Delete ID3 tag (if one exists)\0A\09-f\09\09Force processing if file is not a standard MP3\0A\09-F\09\09Full Scan (see man page for details)\0A\0A\0A\09-p \22FORMAT_STRING\22 Print FORMAT_STRING with substitutions\0A\0A\09\09Conversion Specifiers\0A\0A\09\09%%f\09Filename without the path (string)\0A\09\09%%F\09Filename with the path (string)\0A\09\09%%k\09File size in KB (integer)\0A\0A\09\09%%a\09Artist (string)\0A\09\09%%c\09Comment (string)\0A\09\09%%g\09Musical genre (string)\0A\09\09%%G\09Musical genre (integer)\0A\09\09%%l\09Album name (string)\0A\09\09%%n\09Track (integer)\0A\09\09%%t\09Track Title (string)\0A\09\09%%y\09Year (string)\0A\0A\09\09%%C\09Copyright flag (string)\0A\09\09%%e\09Emphasis (string)\0A\09\09%%E\09CRC Error protection (string)\0A\09\09%%L\09MPEG Layer (string)\0A\09\09%%O\09Original material flag (string)\0A\09\09%%o\09Stereo/mono mode (string)\0A\09\09%%p\09Padding (string)\0A\09\09%%v\09MPEG Version (float)\0A\0A\09\09%%u\09Number of good audio frames (integer)\0A\09\09%%b\09Number of corrupt audio frames (integer)\0A\09\09%%Q\09Sampling frequency in Hz (integer)\0A\09\09%%q\09Sampling frequency in KHz (integer)\0A\09\09%%r\09Bit Rate in KB/s (see also '-r')\0A\0A\09\09%%m\09Playing time: minutes only (integer)\0A\09\09%%s\09Playing time: seconds only (integer)\0A\09\09%%S\09Total playing time in seconds (integer)\0A\0A\09\09%%%%\09A single percent sign\0A\0A\09\09Escape Sequences\0A\0A\09\09\\n\09Newline\0A\09\09\\t\09Horizontal tab\0A\09\09\\v\09Vertical tab\0A\09\09\\b\09Backspace\0A\09\09\\r\09Carriage Return\0A\09\09\\f\09Form Feed\0A\09\09\\a\09Audible Alert (terminal bell)\0A\09\09\\xhh\09Any arbitrary character specified by the\0A\09\09\09hexidecimal number hh\0A\09\09\\ooo\09Any arbitrary character specified by the\0A\09\09\09octal number ooo\0A\09\09\\\\\09A single backslash character\0A\0AThis help screen is only a summary of command-line switches\0ASee the man page for complete documentation.\0A\0A\00"
define void @display_help() {
%1 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([16 x i8], [16 x i8]* @.str, i64 0, i64 0), i8* getelementptr inbounds ([14 x i8], [14 x i8]* @.str.1, i64 0, i64 0), i8* getelementptr inbounds ([54 x i8], [54 x i8]* @.str.2, i64 0, i64 0))
%2 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([2375 x i8], [2375 x i8]* @.str.3, i64 0, i64 0))
ret void
}