#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, int);
int /*<<< orphan*/ stderr;
void PrintVersion(void) {
  fprintf(stderr,
          "                                                                    "
          "     \n"
          "                          ===================                       "
          "     \n"
          "                          |   KESTREL %u.%u   |                     "
          "     \n"
          "                          ===================                       "
          "     \n"
          "                                                                    "
          "     \n"
          "                     A compression method to filter                 "
          "     \n"
          "                   FASTQ reads by relative similarity.              "
          "     \n"
          "                                                                    "
          "     \n"
          "              Copyright (C) 2014-2018 University of Aveiro.         "
          "     \n"
          "                                                                    "
          "     \n"
          "                  This is a Free software, under GPLv3.             "
          "     \n"
          "                                                                    "
          "     \n"
          "You may redistribute copies of it under the terms of the GNU - "
          "General   \n"
          "Public License v3 <http://www.gnu.org/licenses/gpl.html>. There is "
          "NOT   \n"
          "ANY WARRANTY, to the extent permitted by law. Developed and Written "
          "by   \n"
          "Diogo Pratas and Armando J. Pinho.\n\n",
          1, 1);
}


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

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

LLVM IR (-O0):
@stderr = global i32 0
@.str = [1147 x i8] c" \0A =================== \0A | KESTREL %u.%u | \0A =================== \0A \0A A compression method to filter \0A FASTQ reads by relative similarity. \0A \0A Copyright (C) 2014-2018 University of Aveiro. \0A \0A This is a Free software, under GPLv3. \0A \0AYou may redistribute copies of it under the terms of the GNU - General \0APublic License v3 <http://www.gnu.org/licenses/gpl.html>. There is NOT \0AANY WARRANTY, to the extent permitted by law. Developed and Written by \0ADiogo Pratas and Armando J. Pinho.\0A\0A\00"
define void @PrintVersion() {
%1 = load i32, i32* @stderr
%2 = call i32 @fprintf(i32 %1, i8* getelementptr inbounds ([1147 x i8], [1147 x i8]* @.str, i64 0, i64 0), i32 1, i32 1)
ret void
}

LLVM IR (-O2):
@stderr = global i32 0
@.str = [1147 x i8] c" \0A =================== \0A | KESTREL %u.%u | \0A =================== \0A \0A A compression method to filter \0A FASTQ reads by relative similarity. \0A \0A Copyright (C) 2014-2018 University of Aveiro. \0A \0A This is a Free software, under GPLv3. \0A \0AYou may redistribute copies of it under the terms of the GNU - General \0APublic License v3 <http://www.gnu.org/licenses/gpl.html>. There is NOT \0AANY WARRANTY, to the extent permitted by law. Developed and Written by \0ADiogo Pratas and Armando J. Pinho.\0A\0A\00"
define void @PrintVersion() {
%1 = load i32, i32* @stderr
%2 = tail call i32 @fprintf(i32 %1, i8* getelementptr inbounds ([1147 x i8], [1147 x i8]* @.str, i64 0, i64 0), i32 1, i32 1)
ret void
}