#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 choose(int, char *, int, char *);
int /*<<< orphan*/ printf(char *);
page41() {
  printf("You stumble down the hallway of the Troubleshooter Training Course "
         "looking for\n");
  printf("your next class.  Up ahead you see one of the instructors waving to "
         "you.  When\n");
  printf("you get there he shakes your hand and says, \"I am Jung-I-PSY.  "
         "Welcome to the\n");
  printf("secret society infiltration seminar.  I hope you ...\"  You don\'t "
         "catch the\n");
  printf("rest of his greeting because you\'re paying too much attention to "
         "his handshake;\n");
  printf("it is the strangest thing that has ever been done to your hand, sort "
         "of how it\n");
  printf("would feel if you put a neuro whip in a high energy palm massage "
         "unit.\n");
  printf("It doesn\'t take you long to learn what he is up to; you feel him "
         "briefly shake\n");
  printf("your hand with the secret Illuminati handshake.\n");
  return choose(42,
                "You respond with the proper Illuminati code phrase, \"Ewige "
                "Blumenkraft\"",
                43, "You ignore this secret society contact");
}


x86 assembly (clang, -O0):
<page41>:
push   %rbp
mov    %rsp,%rbp
lea    0xed5(%rip),%rdi
call   1040 <printf@plt>
lea    0xf19(%rip),%rdi
call   1040 <printf@plt>
lea    0xf5d(%rip),%rdi
call   1040 <printf@plt>
lea    0xfa0(%rip),%rdi
call   1040 <printf@plt>
lea    0xfe0(%rip),%rdi
call   1040 <printf@plt>
lea    0x1025(%rip),%rdi
call   1040 <printf@plt>
lea    0x1069(%rip),%rdi
call   1040 <printf@plt>
lea    0x10a5(%rip),%rdi
call   1040 <printf@plt>
lea    0x10e9(%rip),%rdi
call   1040 <printf@plt>
mov    $0x2a,%edi
lea    0x1109(%rip),%rsi
mov    $0x2b,%edx
lea    0x1145(%rip),%rcx
call   1030 <choose@plt>
pop    %rbp
ret

x86 assembly (clang, -O2):
<page41>:
push   %rax
lea    0xf47(%rip),%rdi
call   1030 <puts@plt>
lea    0xf8a(%rip),%rdi
call   1030 <puts@plt>
lea    0xfcd(%rip),%rdi
call   1030 <puts@plt>
lea    0x100f(%rip),%rdi
call   1030 <puts@plt>
lea    0x104e(%rip),%rdi
call   1030 <puts@plt>
lea    0x1092(%rip),%rdi
call   1030 <puts@plt>
lea    0x10d5(%rip),%rdi
call   1030 <puts@plt>
lea    0x1110(%rip),%rdi
call   1030 <puts@plt>
lea    0x1153(%rip),%rdi
call   1030 <puts@plt>
lea    0xe6c(%rip),%rsi
lea    0xead(%rip),%rcx
mov    $0x2a,%edi
mov    $0x2b,%edx
pop    %rax
jmp    1040 <choose@plt>

LLVM IR (-O0):
@.str = [80 x i8] c"You stumble down the hallway of the Troubleshooter Training Course looking for\0A\00"
@.str.1 = [80 x i8] c"your next class. Up ahead you see one of the instructors waving to you. When\0A\00"
@.str.2 = [79 x i8] c"you get there he shakes your hand and says, \22I am Jung-I-PSY. Welcome to the\0A\00"
@.str.3 = [76 x i8] c"secret society infiltration seminar. I hope you ...\22 You don't catch the\0A\00"
@.str.4 = [81 x i8] c"rest of his greeting because you're paying too much attention to his handshake;\0A\00"
@.str.5 = [80 x i8] c"it is the strangest thing that has ever been done to your hand, sort of how it\0A\00"
@.str.6 = [72 x i8] c"would feel if you put a neuro whip in a high energy palm massage unit.\0A\00"
@.str.7 = [80 x i8] c"It doesn't take you long to learn what he is up to; you feel him briefly shake\0A\00"
@.str.8 = [49 x i8] c"your hand with the secret Illuminati handshake.\0A\00"
@.str.9 = [72 x i8] c"You respond with the proper Illuminati code phrase, \22Ewige Blumenkraft\22\00"
@.str.10 = [39 x i8] c"You ignore this secret society contact\00"
define i32 @page41() {
%1 = call i32 @printf(i8* getelementptr inbounds ([80 x i8], [80 x i8]* @.str, i64 0, i64 0))
%2 = call i32 @printf(i8* getelementptr inbounds ([80 x i8], [80 x i8]* @.str.1, i64 0, i64 0))
%3 = call i32 @printf(i8* getelementptr inbounds ([79 x i8], [79 x i8]* @.str.2, i64 0, i64 0))
%4 = call i32 @printf(i8* getelementptr inbounds ([76 x i8], [76 x i8]* @.str.3, i64 0, i64 0))
%5 = call i32 @printf(i8* getelementptr inbounds ([81 x i8], [81 x i8]* @.str.4, i64 0, i64 0))
%6 = call i32 @printf(i8* getelementptr inbounds ([80 x i8], [80 x i8]* @.str.5, i64 0, i64 0))
%7 = call i32 @printf(i8* getelementptr inbounds ([72 x i8], [72 x i8]* @.str.6, i64 0, i64 0))
%8 = call i32 @printf(i8* getelementptr inbounds ([80 x i8], [80 x i8]* @.str.7, i64 0, i64 0))
%9 = call i32 @printf(i8* getelementptr inbounds ([49 x i8], [49 x i8]* @.str.8, i64 0, i64 0))
%10 = call i32 @choose(i32 42, i8* getelementptr inbounds ([72 x i8], [72 x i8]* @.str.9, i64 0, i64 0), i32 43, i8* getelementptr inbounds ([39 x i8], [39 x i8]* @.str.10, i64 0, i64 0))
ret i32 %10
}

LLVM IR (-O2):
@.str.9 = [72 x i8] c"You respond with the proper Illuminati code phrase, \22Ewige Blumenkraft\22\00"
@.str.10 = [39 x i8] c"You ignore this secret society contact\00"
@str = [79 x i8] c"You stumble down the hallway of the Troubleshooter Training Course looking for\00"
@str.11 = [79 x i8] c"your next class. Up ahead you see one of the instructors waving to you. When\00"
@str.12 = [78 x i8] c"you get there he shakes your hand and says, \22I am Jung-I-PSY. Welcome to the\00"
@str.13 = [75 x i8] c"secret society infiltration seminar. I hope you ...\22 You don't catch the\00"
@str.14 = [80 x i8] c"rest of his greeting because you're paying too much attention to his handshake;\00"
@str.15 = [79 x i8] c"it is the strangest thing that has ever been done to your hand, sort of how it\00"
@str.16 = [71 x i8] c"would feel if you put a neuro whip in a high energy palm massage unit.\00"
@str.17 = [79 x i8] c"It doesn't take you long to learn what he is up to; you feel him briefly shake\00"
@str.18 = [48 x i8] c"your hand with the secret Illuminati handshake.\00"
define i32 @page41() {
%1 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([79 x i8], [79 x i8]* @str, i64 0, i64 0))
%2 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([79 x i8], [79 x i8]* @str.11, i64 0, i64 0))
%3 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([78 x i8], [78 x i8]* @str.12, i64 0, i64 0))
%4 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([75 x i8], [75 x i8]* @str.13, i64 0, i64 0))
%5 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([80 x i8], [80 x i8]* @str.14, i64 0, i64 0))
%6 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([79 x i8], [79 x i8]* @str.15, i64 0, i64 0))
%7 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([71 x i8], [71 x i8]* @str.16, i64 0, i64 0))
%8 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([79 x i8], [79 x i8]* @str.17, i64 0, i64 0))
%9 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([48 x i8], [48 x i8]* @str.18, i64 0, i64 0))
%10 = tail call i32 @choose(i32 42, i8* getelementptr inbounds ([72 x i8], [72 x i8]* @.str.9, i64 0, i64 0), i32 43, i8* getelementptr inbounds ([39 x i8], [39 x i8]* @.str.10, i64 0, i64 0))
ret i32 %10
}