#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*/ exit(int /*<<< orphan*/);
int /*<<< orphan*/ printf(char *);
void usage(void) {
  printf("mp3nema"
         " Copyright (C) 2009 Matt Davis\n"
         "(enferex) of 757Labs (www.757labs.com)\n"
         "This program comes with ABSOLUTELY NO WARRANTY\n"
         "This is free software, and you are welcome to redistribute it\n"
         "under certain conditions.  For details see the file 'LICENSE'\n"
         "that came with this software or visit:\n"
         "<http://www.gnu.org/licenses/gpl-3.0.txt>\n\n"
         "-- MP3nema v"
         "0"
         "."
         "4"
         " --\n"
         "An MP3 analysis, data capturing, and data hiding utility\n");
  printf("Usage: ./mp3nema <source.mp3 | stream> "
         "[-c] [[-e] | [-i file]] [-v]\n"
         "\t-c Capture audio from network stream\n"
         "\t-i <file> Inject data from 'file' into the mp3 between frames\n"
         "\t-e Extract out of band data to a file\n"
         "\t-v Display more information (out-of-frame data)\n");
  exit(0);
}


x86 assembly (clang, -O0):
<usage>:
push   %rbp
mov    %rsp,%rbp
lea    0xed5(%rip),%rdi
call   1030 <printf@plt>
lea    0x1060(%rip),%rdi
call   1030 <printf@plt>
xor    %edi,%edi
call   1040 <exit@plt>

x86 assembly (clang, -O2):
<usage>:
push   %rax
lea    0xed8(%rip),%rdi
call   1030 <puts@plt>
lea    0x1062(%rip),%rdi
call   1030 <puts@plt>
xor    %edi,%edi
call   1040 <exit@plt>

LLVM IR (-O0):
@.str = [407 x i8] c"mp3nema Copyright (C) 2009 Matt Davis\0A(enferex) of 757Labs (www.757labs.com)\0AThis program comes with ABSOLUTELY NO WARRANTY\0AThis is free software, and you are welcome to redistribute it\0Aunder certain conditions. For details see the file 'LICENSE'\0Athat came with this software or visit:\0A<http://www.gnu.org/licenses/gpl-3.0.txt>\0A\0A-- MP3nema v0.4 --\0AAn MP3 analysis, data capturing, and data hiding utility\0A\00"
@.str.1 = [258 x i8] c"Usage: ./mp3nema <source.mp3 | stream> [-c] [[-e] | [-i file]] [-v]\0A\09-c Capture audio from network stream\0A\09-i <file> Inject data from 'file' into the mp3 between frames\0A\09-e Extract out of band data to a file\0A\09-v Display more information (out-of-frame data)\0A\00"
define void @usage() {
%1 = call i32 @printf(i8* getelementptr inbounds ([407 x i8], [407 x i8]* @.str, i64 0, i64 0))
%2 = call i32 @printf(i8* getelementptr inbounds ([258 x i8], [258 x i8]* @.str.1, i64 0, i64 0))
%3 = call i32 @exit(i32 0)
unreachable
}

LLVM IR (-O2):
@str = [406 x i8] c"mp3nema Copyright (C) 2009 Matt Davis\0A(enferex) of 757Labs (www.757labs.com)\0AThis program comes with ABSOLUTELY NO WARRANTY\0AThis is free software, and you are welcome to redistribute it\0Aunder certain conditions. For details see the file 'LICENSE'\0Athat came with this software or visit:\0A<http://www.gnu.org/licenses/gpl-3.0.txt>\0A\0A-- MP3nema v0.4 --\0AAn MP3 analysis, data capturing, and data hiding utility\00"
@str.2 = [257 x i8] c"Usage: ./mp3nema <source.mp3 | stream> [-c] [[-e] | [-i file]] [-v]\0A\09-c Capture audio from network stream\0A\09-i <file> Inject data from 'file' into the mp3 between frames\0A\09-e Extract out of band data to a file\0A\09-v Display more information (out-of-frame data)\00"
define void @usage() {
%1 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([406 x i8], [406 x i8]* @str, i64 0, i64 0))
%2 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([257 x i8], [257 x i8]* @str.2, i64 0, i64 0))
%3 = tail call i32 @exit(i32 0)
unreachable
}