#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 drawLogo(void) {
  printf(""
         "  _   _  \n"
         " | | | | __ _ _ __   __ _ _ __ ___   __ _ _ __   \n"
         " | |_| |/ _` | '_ \\ / _` | '_ ` _ \\ / _` | '_ \\  \n"
         " |  _  | (_| | | | | (_| | | | | | | (_| | | | | \n"
         " |_| |_|\\__,_|_| |_|\\__, |_| |_| |_|\\__,_|_| |_| \n"
         "  _____             |___/ _             _ _              _   _ \n"
         " |_   _|__ _ __ _ __ ___ (_)_ __   __ _| (_)___  ___  __| | | |\n"
         "   | |/ _ \\ '__| '_ ` _ \\| | '_ \\ / _` | | / __|/ _ \\/ _` | | |\n"
         "   | |  __/ |  | | | | | | | | | | (_| | | \\__ \\  __/ (_| | |_|\n"
         "   |_|\\___|_|  |_| |_| |_|_|_| |_|\\__,_|_|_|___/\\___|\\__,_| (_)\n"
         "\n"
         " - Save him if you can! \n\n"
         "[*] Version: 0.1\n"
         "[*] Author: Khaled Mohammad(@itskhaledmohammad)\n"
         "[*] Released under BSD-3-Clause\n"
         "\n\n");
}


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

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

LLVM IR (-O0):
@.str = [657 x i8] c" _ _ \0A | | | | __ _ _ __ __ _ _ __ ___ __ _ _ __ \0A | |_| |/ _` | '_ \\ / _` | '_ ` _ \\ / _` | '_ \\ \0A | _ | (_| | | | | (_| | | | | | | (_| | | | | \0A |_| |_|\\__,_|_| |_|\\__, |_| |_| |_|\\__,_|_| |_| \0A _____ |___/ _ _ _ _ _ \0A |_ _|__ _ __ _ __ ___ (_)_ __ __ _| (_)___ ___ __| | | |\0A | |/ _ \\ '__| '_ ` _ \\| | '_ \\ / _` | | / __|/ _ \\/ _` | | |\0A | | __/ | | | | | | | | | | | (_| | | \\__ \\ __/ (_| | |_|\0A |_|\\___|_| |_| |_| |_|_|_| |_|\\__,_|_|_|___/\\___|\\__,_| (_)\0A\0A - Save him if you can! \0A\0A[*] Version: 0.1\0A[*] Author: Khaled Mohammad(@itskhaledmohammad)\0A[*] Released under BSD-3-Clause\0A\0A\0A\00"
define void @drawLogo() {
%1 = call i32 @printf(i8* getelementptr inbounds ([657 x i8], [657 x i8]* @.str, i64 0, i64 0))
ret void
}

LLVM IR (-O2):
@str = [656 x i8] c" _ _ \0A | | | | __ _ _ __ __ _ _ __ ___ __ _ _ __ \0A | |_| |/ _` | '_ \\ / _` | '_ ` _ \\ / _` | '_ \\ \0A | _ | (_| | | | | (_| | | | | | | (_| | | | | \0A |_| |_|\\__,_|_| |_|\\__, |_| |_| |_|\\__,_|_| |_| \0A _____ |___/ _ _ _ _ _ \0A |_ _|__ _ __ _ __ ___ (_)_ __ __ _| (_)___ ___ __| | | |\0A | |/ _ \\ '__| '_ ` _ \\| | '_ \\ / _` | | / __|/ _ \\/ _` | | |\0A | | __/ | | | | | | | | | | | (_| | | \\__ \\ __/ (_| | |_|\0A |_|\\___|_| |_| |_| |_|_|_| |_|\\__,_|_|_|___/\\___|\\__,_| (_)\0A\0A - Save him if you can! \0A\0A[*] Version: 0.1\0A[*] Author: Khaled Mohammad(@itskhaledmohammad)\0A[*] Released under BSD-3-Clause\0A\0A\00"
define void @drawLogo() {
%1 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([656 x i8], [656 x i8]* @str, i64 0, i64 0))
ret void
}