#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*/ getch();
int /*<<< orphan*/ home_screen();
int /*<<< orphan*/ printf(char *);
int /*<<< orphan*/ puts(char *);
void about_quickScript() {
  char *title =
      "\n\n\t____________________________________\n\n\t\tTHE QUICKSCRIPT "
      "PROJECT\n\t____________________________________\n\n\n";
  char *info =
      "\tQuickScript is an open source project started in 2016 by\n\r        "
      "Anirudh Khanna, for developing a simple and easy to learn \n\r        "
      "special-purpose language which can be used to design artificial \n\r    "
      "    conversational agents and other programs that involve \n\r        "
      "textual dialogue between humans and computers.\n\r        \n\n\r        "
      "Find more about the project on its GitHub repository:\n\r        "
      "https://github.com/anirudhkhanna/QuickScript\n\n\r        Released "
      "under the GNU General Public License v3.0 \n\r        available here: "
      "http://www.gnu.org/licenses/gpl-3.0.html";
  puts(title);
  puts(info);
  printf("\n\tPress any key to go back to the home screen... ");
  getch();
  home_screen();
}


x86 assembly (clang, -O0):
<about_quickScript>:
push   %rbp
mov    %rsp,%rbp
sub    $0x10,%rsp
lea    0xeb1(%rip),%rax
mov    %rax,-0x8(%rbp)
lea    0xf12(%rip),%rax
mov    %rax,-0x10(%rbp)
mov    -0x8(%rbp),%rdi
call   1030 <puts@plt>
mov    -0x10(%rbp),%rdi
call   1030 <puts@plt>
lea    0x1135(%rip),%rdi
call   1040 <printf@plt>
mov    $0x0,%al
call   1060 <getch@plt>
mov    $0x0,%al
call   1050 <home_screen@plt>
add    $0x10,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<about_quickScript>:
push   %rax
lea    0xeb8(%rip),%rdi
call   1030 <puts@plt>
lea    0xf18(%rip),%rdi
call   1030 <puts@plt>
lea    0x114c(%rip),%rdi
call   1040 <printf@plt>
xor    %eax,%eax
call   1060 <getch@plt>
xor    %eax,%eax
pop    %rcx
jmp    1050 <home_screen@plt>

LLVM IR (-O0):
@.str = [108 x i8] c"\0A\0A\09____________________________________\0A\0A\09\09THE QUICKSCRIPT PROJECT\0A\09____________________________________\0A\0A\0A\00"
@.str.1 = [576 x i8] c"\09QuickScript is an open source project started in 2016 by\0A\0D Anirudh Khanna, for developing a simple and easy to learn \0A\0D special-purpose language which can be used to design artificial \0A\0D conversational agents and other programs that involve \0A\0D textual dialogue between humans and computers.\0A\0D \0A\0A\0D Find more about the project on its GitHub repository:\0A\0D https://github.com/anirudhkhanna/QuickScript\0A\0A\0D Released under the GNU General Public License v3.0 \0A\0D available here: http://www.gnu.org/licenses/gpl-3.0.html\00"
@.str.2 = [50 x i8] c"\0A\09Press any key to go back to the home screen... \00"
define void @about_quickScript() {
%1 = alloca i8*
%2 = alloca i8*
store i8* getelementptr inbounds ([108 x i8], [108 x i8]* @.str, i64 0, i64 0), i8** %1
store i8* getelementptr inbounds ([576 x i8], [576 x i8]* @.str.1, i64 0, i64 0), i8** %2
%3 = load i8*, i8** %1
%4 = call i32 @puts(i8* %3)
%5 = load i8*, i8** %2
%6 = call i32 @puts(i8* %5)
%7 = call i32 @printf(i8* getelementptr inbounds ([50 x i8], [50 x i8]* @.str.2, i64 0, i64 0))
%8 = call i32 (...) @getch()
%9 = call i32 (...) @home_screen()
ret void
}

LLVM IR (-O2):
@.str = [108 x i8] c"\0A\0A\09____________________________________\0A\0A\09\09THE QUICKSCRIPT PROJECT\0A\09____________________________________\0A\0A\0A\00"
@.str.1 = [576 x i8] c"\09QuickScript is an open source project started in 2016 by\0A\0D Anirudh Khanna, for developing a simple and easy to learn \0A\0D special-purpose language which can be used to design artificial \0A\0D conversational agents and other programs that involve \0A\0D textual dialogue between humans and computers.\0A\0D \0A\0A\0D Find more about the project on its GitHub repository:\0A\0D https://github.com/anirudhkhanna/QuickScript\0A\0A\0D Released under the GNU General Public License v3.0 \0A\0D available here: http://www.gnu.org/licenses/gpl-3.0.html\00"
@.str.2 = [50 x i8] c"\0A\09Press any key to go back to the home screen... \00"
define void @about_quickScript() {
%1 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([108 x i8], [108 x i8]* @.str, i64 0, i64 0))
%2 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([576 x i8], [576 x i8]* @.str.1, i64 0, i64 0))
%3 = tail call i32 @printf(i8* dereferenceable(1) getelementptr inbounds ([50 x i8], [50 x i8]* @.str.2, i64 0, i64 0))
%4 = tail call i32 (...) @getch()
%5 = tail call i32 (...) @home_screen()
ret void
}