#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 welcome_message() {
  printf("Welcome to Project Veggie version 1.1\n"
         "This application provides the required tools to assist the user and "
         "even possibly automate the process of cracking "
         "text encrypted via the VEGENERE Cypher.\n"
         "The application has a unique file that contains the calculated data "
         "so the user needs not write it down as he runs each step separately "
         "hence providing the user with the option to manually attempt the "
         "deciphering or use the pre-calculated data.\n"
         "The application automatically starts a new session everytime the app "
         "starts, but the user has the option to load an older session "
         "and continue from where he\\she previously left off\n\n"
         "The purpose of this app is to abstract the calculation that are gone "
         "through when decrypting text.\n"
         "It is assumed the language in the text is ENGLISH, and therefore the "
         "normal probability constants specific to the ENGLISH language "
         "will be used.\n\n"
         "This application was written by Ronny Majani.\n"
         "For further information please feel free to contact me at: "
         "ronnymajani@gmail.com\n\n"
         "---------------------------------------------------------------------"
         "----------------------------------------------"
         "---------------------------------------------------------------------"
         "----------------------------------------------"
         "\n");
}


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

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

LLVM IR (-O0):
@.str = [1225 x i8] c"Welcome to Project Veggie version 1.1\0AThis application provides the required tools to assist the user and even possibly automate the process of cracking text encrypted via the VEGENERE Cypher.\0AThe application has a unique file that contains the calculated data so the user needs not write it down as he runs each step separately hence providing the user with the option to manually attempt the deciphering or use the pre-calculated data.\0AThe application automatically starts a new session everytime the app starts, but the user has the option to load an older session and continue from where he\\she previously left off\0A\0AThe purpose of this app is to abstract the calculation that are gone through when decrypting text.\0AIt is assumed the language in the text is ENGLISH, and therefore the normal probability constants specific to the ENGLISH language will be used.\0A\0AThis application was written by Ronny Majani.\0AFor further information please feel free to contact me at: ronnymajani@gmail.com\0A\0A--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------\0A\00"
define void @welcome_message() {
%1 = call i32 @printf(i8* getelementptr inbounds ([1225 x i8], [1225 x i8]* @.str, i64 0, i64 0))
ret void
}

LLVM IR (-O2):
@str = [1224 x i8] c"Welcome to Project Veggie version 1.1\0AThis application provides the required tools to assist the user and even possibly automate the process of cracking text encrypted via the VEGENERE Cypher.\0AThe application has a unique file that contains the calculated data so the user needs not write it down as he runs each step separately hence providing the user with the option to manually attempt the deciphering or use the pre-calculated data.\0AThe application automatically starts a new session everytime the app starts, but the user has the option to load an older session and continue from where he\\she previously left off\0A\0AThe purpose of this app is to abstract the calculation that are gone through when decrypting text.\0AIt is assumed the language in the text is ENGLISH, and therefore the normal probability constants specific to the ENGLISH language will be used.\0A\0AThis application was written by Ronny Majani.\0AFor further information please feel free to contact me at: ronnymajani@gmail.com\0A\0A--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------\00"
define void @welcome_message() {
%1 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([1224 x i8], [1224 x i8]* @str, i64 0, i64 0))
ret void
}