#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*/ log_add(char *);
void log_banner(char *app_name) {
  log_add("\n\nRadiotimesXmltv Emulator -(beta)- BRANCH{e2xmltv}\nSources "
          "https://github.com/LraiZer/RadiotimesXmltvEmulator\n");
  log_add("\nBased on SIFTeam Crossepg (c) 2009-2014 Sandro Cavazzoni\nSources "
          "https://github.com/oe-alliance/e2openplugin-CrossEPG\n");
  log_add("\nSource credits: crossepg, tv_grab_dvb\n");
  log_add("\nThis software is distributed under the terms of the,\nGNU Lesser "
          "General Public License v2.1\n");
}


x86 assembly (clang, -O0):
<log_banner>:
push   %rbp
mov    %rsp,%rbp
sub    $0x10,%rsp
mov    %rdi,-0x8(%rbp)
lea    0xedd(%rip),%rdi
call   1030 <log_add@plt>
lea    0xf41(%rip),%rdi
call   1030 <log_add@plt>
lea    0xfad(%rip),%rdi
call   1030 <log_add@plt>
lea    0xfc9(%rip),%rdi
call   1030 <log_add@plt>
add    $0x10,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<log_banner>:
push   %rax
lea    0xee8(%rip),%rdi
call   1030 <log_add@plt>
lea    0xf4c(%rip),%rdi
call   1030 <log_add@plt>
lea    0xfb8(%rip),%rdi
call   1030 <log_add@plt>
lea    0xfd4(%rip),%rdi
pop    %rax
jmp    1030 <log_add@plt>

LLVM IR (-O0):
@.str = [112 x i8] c"\0A\0ARadiotimesXmltv Emulator -(beta)- BRANCH{e2xmltv}\0ASources https://github.com/LraiZer/RadiotimesXmltvEmulator\0A\00"
@.str.1 = [120 x i8] c"\0ABased on SIFTeam Crossepg (c) 2009-2014 Sandro Cavazzoni\0ASources https://github.com/oe-alliance/e2openplugin-CrossEPG\0A\00"
@.str.2 = [40 x i8] c"\0ASource credits: crossepg, tv_grab_dvb\0A\00"
@.str.3 = [94 x i8] c"\0AThis software is distributed under the terms of the,\0AGNU Lesser General Public License v2.1\0A\00"
define void @log_banner(i8* %0) {
%2 = alloca i8*
store i8* %0, i8** %2
%3 = call i32 @log_add(i8* getelementptr inbounds ([112 x i8], [112 x i8]* @.str, i64 0, i64 0))
%4 = call i32 @log_add(i8* getelementptr inbounds ([120 x i8], [120 x i8]* @.str.1, i64 0, i64 0))
%5 = call i32 @log_add(i8* getelementptr inbounds ([40 x i8], [40 x i8]* @.str.2, i64 0, i64 0))
%6 = call i32 @log_add(i8* getelementptr inbounds ([94 x i8], [94 x i8]* @.str.3, i64 0, i64 0))
ret void
}

LLVM IR (-O2):
@.str = [112 x i8] c"\0A\0ARadiotimesXmltv Emulator -(beta)- BRANCH{e2xmltv}\0ASources https://github.com/LraiZer/RadiotimesXmltvEmulator\0A\00"
@.str.1 = [120 x i8] c"\0ABased on SIFTeam Crossepg (c) 2009-2014 Sandro Cavazzoni\0ASources https://github.com/oe-alliance/e2openplugin-CrossEPG\0A\00"
@.str.2 = [40 x i8] c"\0ASource credits: crossepg, tv_grab_dvb\0A\00"
@.str.3 = [94 x i8] c"\0AThis software is distributed under the terms of the,\0AGNU Lesser General Public License v2.1\0A\00"
define void @log_banner(i8* nocapture readnone %0) {
%2 = tail call i32 @log_add(i8* getelementptr inbounds ([112 x i8], [112 x i8]* @.str, i64 0, i64 0))
%3 = tail call i32 @log_add(i8* getelementptr inbounds ([120 x i8], [120 x i8]* @.str.1, i64 0, i64 0))
%4 = tail call i32 @log_add(i8* getelementptr inbounds ([40 x i8], [40 x i8]* @.str.2, i64 0, i64 0))
%5 = tail call i32 @log_add(i8* getelementptr inbounds ([94 x i8], [94 x i8]* @.str.3, i64 0, i64 0))
ret void
}