#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 printLogo(void) {
  printf("\n"
         "   "
         "====================================================================="
         "=====\n"
         "   |                                                                 "
         "       |\n"
         "   |                                                                 "
         "       |\n"
         "   |                                                                 "
         "       |\n"
         "   |        '|.   '|'                          '||        .          "
         "       |\n"
         "   |         |'|   |    ...   ... ...    ... .  || ..   .||.   ....  "
         "       |\n"
         "   |         | '|. |  .|  '|.  ||  ||   || ||   ||' ||   ||   ||. '  "
         "       |\n"
         "   |         |   |||  ||   ||  ||  ||    |''    ||  ||   ||   . '|.. "
         "       |\n"
         "   |        .|.   '|   '|..|'  '|..'|.  '||||. .||. ||.  '|.' |'..|' "
         "       |\n"
         "   |                                   .|....'                       "
         "       |\n"
         "   |                                                                 "
         "       |\n"
         "   |                                             '||                 "
         "       |\n"
         "   |                        ....   .. ...      .. ||                 "
         "       |\n"
         "   |                       '' .||   ||  ||   .'  '||                 "
         "       |\n"
         "   |                       .|' ||   ||  ||   |.   ||                 "
         "       |\n"
         "   |                       '|..'|' .||. ||.  '|..'||.                "
         "       |\n"
         "   |                                                                 "
         "       |\n"
         "   |                                                                 "
         "       |\n"
         "   |           ..|'''.|                                              "
         "       |\n"
         "   |         .|'     '  ... ..    ...    ....   ....    ....   ....  "
         "       |\n"
         "   |         ||          ||' '' .|  '|. ||. '  ||. '  .|...|| ||. '  "
         "       |\n"
         "   |         '|.      .  ||     ||   || . '|.. . '|.. ||      . '|.. "
         "       |\n"
         "   |          ''|....'  .||.     '|..|' |'..|' |'..|'  '|...' |'..|' "
         "       |\n"
         "   |                                                                 "
         "       |\n"
         "   |                                                                 "
         "       |\n");
}


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

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

LLVM IR (-O0):
@.str = [1952 x i8] c"\0A ==========================================================================\0A | |\0A | |\0A | |\0A | '|. '|' '|| . |\0A | |'| | ... ... ... ... . || .. .||. .... |\0A | | '|. | .| '|. || || || || ||' || || ||. ' |\0A | | ||| || || || || |'' || || || . '|.. |\0A | .|. '| '|..|' '|..'|. '||||. .||. ||. '|.' |'..|' |\0A | .|....' |\0A | |\0A | '|| |\0A | .... .. ... .. || |\0A | '' .|| || || .' '|| |\0A | .|' || || || |. || |\0A | '|..'|' .||. ||. '|..'||. |\0A | |\0A | |\0A | ..|'''.| |\0A | .|' ' ... .. ... .... .... .... .... |\0A | || ||' '' .| '|. ||. ' ||. ' .|...|| ||. ' |\0A | '|. . || || || . '|.. . '|.. || . '|.. |\0A | ''|....' .||. '|..|' |'..|' |'..|' '|...' |'..|' |\0A | |\0A | |\0A\00"
define void @printLogo() {
%1 = call i32 @printf(i8* getelementptr inbounds ([1952 x i8], [1952 x i8]* @.str, i64 0, i64 0))
ret void
}

LLVM IR (-O2):
@str = [1951 x i8] c"\0A ==========================================================================\0A | |\0A | |\0A | |\0A | '|. '|' '|| . |\0A | |'| | ... ... ... ... . || .. .||. .... |\0A | | '|. | .| '|. || || || || ||' || || ||. ' |\0A | | ||| || || || || |'' || || || . '|.. |\0A | .|. '| '|..|' '|..'|. '||||. .||. ||. '|.' |'..|' |\0A | .|....' |\0A | |\0A | '|| |\0A | .... .. ... .. || |\0A | '' .|| || || .' '|| |\0A | .|' || || || |. || |\0A | '|..'|' .||. ||. '|..'||. |\0A | |\0A | |\0A | ..|'''.| |\0A | .|' ' ... .. ... .... .... .... .... |\0A | || ||' '' .| '|. ||. ' ||. ' .|...|| ||. ' |\0A | '|. . || || || . '|.. . '|.. || . '|.. |\0A | ''|....' .||. '|..|' |'..|' |'..|' '|...' |'..|' |\0A | |\0A | |\00"
define void @printLogo() {
%1 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([1951 x i8], [1951 x i8]* @str, i64 0, i64 0))
ret void
}