#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,
          "lunafuck 0.1.0\n\n\tusage: lunafuck output_file input_file\n\n");
  fprintf(
      stderr,
      "Copyright (c) 2015-2016, Jakub Alba <jakubalba@gmail.com>\nAll rights "
      "reserved.\n\nRedistribution and use in source and binary forms, with "
      "or without modification,\nare permitted provided that the following "
      "conditions are met:\n\n1. Redistributions of source code must retain "
      "the above copyright notice, this\n   list of conditions and the "
      "following disclaimer.\n\n2. Redistributions in binary form must "
      "reproduce the above copyright notice,\n   this list of conditions and "
      "the following disclaimer in the documentation\n   and/or other "
      "materials provided with the distribution.\n\n3. Neither the name of "
      "the copyright holder nor the names of its contributors\n   may be "
      "used to endorse or promote products derived from this software "
      "without\n   specific prior written permission.\n\nTHIS SOFTWARE IS "
      "PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND\nANY "
      "EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE "
      "IMPLIED\nWARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR "
      "PURPOSE ARE\nDISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR "
      "CONTRIBUTORS BE LIABLE\nFOR ANY DIRECT, INDIRECT, INCIDENTAL, "
      "SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\nDAMAGES (INCLUDING, BUT NOT "
      "LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR\nSERVICES; LOSS OF "
      "USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER\nCAUSED AND "
      "ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT "
      "LIABILITY,\nOR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN "
      "ANY WAY OUT OF THE USE\nOF THIS SOFTWARE, EVEN IF ADVISED OF THE "
      "POSSIBILITY OF SUCH DAMAGE.\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>
mov    0x2eb0(%rip),%rax
mov    (%rax),%edi
lea    0xf01(%rip),%rsi
call   1030 <fprintf@plt>
pop    %rbp
ret

x86 assembly (clang, -O2):
<help>:
push   %rbx
mov    0x2ec8(%rip),%rbx
mov    (%rbx),%edi
lea    0xedf(%rip),%rsi
call   1030 <fprintf@plt>
mov    (%rbx),%edi
lea    0xf0b(%rip),%rsi
pop    %rbx
jmp    1030 <fprintf@plt>

LLVM IR (-O0):
@stderr = global i32 0
@.str = [58 x i8] c"lunafuck 0.1.0\0A\0A\09usage: lunafuck output_file input_file\0A\0A\00"
@.str.1 = [1524 x i8] c"Copyright (c) 2015-2016, Jakub Alba <jakubalba@gmail.com>\0AAll rights reserved.\0A\0ARedistribution and use in source and binary forms, with or without modification,\0Aare permitted provided that the following conditions are met:\0A\0A1. Redistributions of source code must retain the above copyright notice, this\0A list of conditions and the following disclaimer.\0A\0A2. Redistributions in binary form must reproduce the above copyright notice,\0A this list of conditions and the following disclaimer in the documentation\0A and/or other materials provided with the distribution.\0A\0A3. Neither the name of the copyright holder nor the names of its contributors\0A may be used to endorse or promote products derived from this software without\0A specific prior written permission.\0A\0ATHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \22AS IS\22 AND\0AANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\0AWARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\0ADISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE\0AFOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\0ADAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR\0ASERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER\0ACAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,\0AOR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\0AOF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\0A\00"
define void @help() {
%1 = load i32, i32* @stderr
%2 = call i32 @fprintf(i32 %1, i8* getelementptr inbounds ([58 x i8], [58 x i8]* @.str, i64 0, i64 0))
%3 = load i32, i32* @stderr
%4 = call i32 @fprintf(i32 %3, i8* getelementptr inbounds ([1524 x i8], [1524 x i8]* @.str.1, i64 0, i64 0))
ret void
}

LLVM IR (-O2):
@stderr = global i32 0
@.str = [58 x i8] c"lunafuck 0.1.0\0A\0A\09usage: lunafuck output_file input_file\0A\0A\00"
@.str.1 = [1524 x i8] c"Copyright (c) 2015-2016, Jakub Alba <jakubalba@gmail.com>\0AAll rights reserved.\0A\0ARedistribution and use in source and binary forms, with or without modification,\0Aare permitted provided that the following conditions are met:\0A\0A1. Redistributions of source code must retain the above copyright notice, this\0A list of conditions and the following disclaimer.\0A\0A2. Redistributions in binary form must reproduce the above copyright notice,\0A this list of conditions and the following disclaimer in the documentation\0A and/or other materials provided with the distribution.\0A\0A3. Neither the name of the copyright holder nor the names of its contributors\0A may be used to endorse or promote products derived from this software without\0A specific prior written permission.\0A\0ATHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \22AS IS\22 AND\0AANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\0AWARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\0ADISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE\0AFOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\0ADAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR\0ASERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER\0ACAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,\0AOR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\0AOF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\0A\00"
define void @help() {
%1 = load i32, i32* @stderr
%2 = tail call i32 @fprintf(i32 %1, i8* getelementptr inbounds ([58 x i8], [58 x i8]* @.str, i64 0, i64 0))
%3 = load i32, i32* @stderr
%4 = tail call i32 @fprintf(i32 %3, i8* getelementptr inbounds ([1524 x i8], [1524 x i8]* @.str.1, i64 0, i64 0))
ret void
}