#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 *);
page37() {
  printf("\"Come with me please, Troubleshooter,\" says the Green clearance "
         "technician\n");
  printf("after he has dislodged your head from the cannon.  \"You have been "
         "participating\n");
  printf("in the Troubleshooter Training Course since you got off the tube car "
         "in\n");
  printf("GDH7-beta,\" he explains as he leads you down a corridor.  \"The "
         "entire\n");
  printf("Christmas assignment was a test mission to assess your current level "
         "of\n");
  printf("training.  You didn\'t do so well.  We\'re going to start at the "
         "beginning with\n");
  printf("the other student.  Ah, here we are, the mutant identification and "
         "elimination\n");
  printf("lecture.\"  He shows you into a vast lecture hall filled with empty "
         "seats.\n");
  printf("There is only one other student here, a Troubleshooter near the "
         "front row\n");
  printf("playing with his Action Troubleshooter(tm) figure.  \"Find a seat "
         "and I will\n");
  printf("begin,\" says the instructor.\n");
  return 38;
}


x86 assembly (clang, -O0):
<page37>:
push   %rbp
mov    %rsp,%rbp
lea    0xee5(%rip),%rdi
call   1030 <printf@plt>
lea    0xf25(%rip),%rdi
call   1030 <printf@plt>
lea    0xf6a(%rip),%rdi
call   1030 <printf@plt>
lea    0xfa7(%rip),%rdi
call   1030 <printf@plt>
lea    0xfe2(%rip),%rdi
call   1030 <printf@plt>
lea    0x101f(%rip),%rdi
call   1030 <printf@plt>
lea    0x1062(%rip),%rdi
call   1030 <printf@plt>
lea    0x10a6(%rip),%rdi
call   1030 <printf@plt>
lea    0x10e5(%rip),%rdi
call   1030 <printf@plt>
lea    0x1124(%rip),%rdi
call   1030 <printf@plt>
lea    0x1165(%rip),%rdi
call   1030 <printf@plt>
mov    $0x26,%eax
pop    %rbp
ret

x86 assembly (clang, -O2):
<page37>:
push   %rax
lea    0xee8(%rip),%rdi
call   1030 <puts@plt>
lea    0xf27(%rip),%rdi
call   1030 <puts@plt>
lea    0xf6b(%rip),%rdi
call   1030 <puts@plt>
lea    0xfa7(%rip),%rdi
call   1030 <puts@plt>
lea    0xfe1(%rip),%rdi
call   1030 <puts@plt>
lea    0x101d(%rip),%rdi
call   1030 <puts@plt>
lea    0x105f(%rip),%rdi
call   1030 <puts@plt>
lea    0x10a2(%rip),%rdi
call   1030 <puts@plt>
lea    0x10e0(%rip),%rdi
call   1030 <puts@plt>
lea    0x111e(%rip),%rdi
call   1030 <puts@plt>
lea    0x115e(%rip),%rdi
call   1030 <puts@plt>
mov    $0x26,%eax
pop    %rcx
ret

LLVM IR (-O0):
@.str = [76 x i8] c"\22Come with me please, Troubleshooter,\22 says the Green clearance technician\0A\00"
@.str.1 = [81 x i8] c"after he has dislodged your head from the cannon. \22You have been participating\0A\00"
@.str.2 = [73 x i8] c"in the Troubleshooter Training Course since you got off the tube car in\0A\00"
@.str.3 = [71 x i8] c"GDH7-beta,\22 he explains as he leads you down a corridor. \22The entire\0A\00"
@.str.4 = [73 x i8] c"Christmas assignment was a test mission to assess your current level of\0A\00"
@.str.5 = [79 x i8] c"training. You didn't do so well. We're going to start at the beginning with\0A\00"
@.str.6 = [80 x i8] c"the other student. Ah, here we are, the mutant identification and elimination\0A\00"
@.str.7 = [75 x i8] c"lecture.\22 He shows you into a vast lecture hall filled with empty seats.\0A\00"
@.str.8 = [75 x i8] c"There is only one other student here, a Troubleshooter near the front row\0A\00"
@.str.9 = [77 x i8] c"playing with his Action Troubleshooter(tm) figure. \22Find a seat and I will\0A\00"
@.str.10 = [30 x i8] c"begin,\22 says the instructor.\0A\00"
define i32 @page37() {
%1 = call i32 @printf(i8* getelementptr inbounds ([76 x i8], [76 x i8]* @.str, i64 0, i64 0))
%2 = call i32 @printf(i8* getelementptr inbounds ([81 x i8], [81 x i8]* @.str.1, i64 0, i64 0))
%3 = call i32 @printf(i8* getelementptr inbounds ([73 x i8], [73 x i8]* @.str.2, i64 0, i64 0))
%4 = call i32 @printf(i8* getelementptr inbounds ([71 x i8], [71 x i8]* @.str.3, i64 0, i64 0))
%5 = call i32 @printf(i8* getelementptr inbounds ([73 x i8], [73 x i8]* @.str.4, i64 0, i64 0))
%6 = call i32 @printf(i8* getelementptr inbounds ([79 x i8], [79 x i8]* @.str.5, i64 0, i64 0))
%7 = call i32 @printf(i8* getelementptr inbounds ([80 x i8], [80 x i8]* @.str.6, i64 0, i64 0))
%8 = call i32 @printf(i8* getelementptr inbounds ([75 x i8], [75 x i8]* @.str.7, i64 0, i64 0))
%9 = call i32 @printf(i8* getelementptr inbounds ([75 x i8], [75 x i8]* @.str.8, i64 0, i64 0))
%10 = call i32 @printf(i8* getelementptr inbounds ([77 x i8], [77 x i8]* @.str.9, i64 0, i64 0))
%11 = call i32 @printf(i8* getelementptr inbounds ([30 x i8], [30 x i8]* @.str.10, i64 0, i64 0))
ret i32 38
}

LLVM IR (-O2):
@str = [75 x i8] c"\22Come with me please, Troubleshooter,\22 says the Green clearance technician\00"
@str.11 = [80 x i8] c"after he has dislodged your head from the cannon. \22You have been participating\00"
@str.12 = [72 x i8] c"in the Troubleshooter Training Course since you got off the tube car in\00"
@str.13 = [70 x i8] c"GDH7-beta,\22 he explains as he leads you down a corridor. \22The entire\00"
@str.14 = [72 x i8] c"Christmas assignment was a test mission to assess your current level of\00"
@str.15 = [78 x i8] c"training. You didn't do so well. We're going to start at the beginning with\00"
@str.16 = [79 x i8] c"the other student. Ah, here we are, the mutant identification and elimination\00"
@str.17 = [74 x i8] c"lecture.\22 He shows you into a vast lecture hall filled with empty seats.\00"
@str.18 = [74 x i8] c"There is only one other student here, a Troubleshooter near the front row\00"
@str.19 = [76 x i8] c"playing with his Action Troubleshooter(tm) figure. \22Find a seat and I will\00"
@str.20 = [29 x i8] c"begin,\22 says the instructor.\00"
define i32 @page37() {
%1 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([75 x i8], [75 x i8]* @str, i64 0, i64 0))
%2 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([80 x i8], [80 x i8]* @str.11, i64 0, i64 0))
%3 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([72 x i8], [72 x i8]* @str.12, i64 0, i64 0))
%4 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([70 x i8], [70 x i8]* @str.13, i64 0, i64 0))
%5 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([72 x i8], [72 x i8]* @str.14, i64 0, i64 0))
%6 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([78 x i8], [78 x i8]* @str.15, i64 0, i64 0))
%7 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([79 x i8], [79 x i8]* @str.16, i64 0, i64 0))
%8 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([74 x i8], [74 x i8]* @str.17, i64 0, i64 0))
%9 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([74 x i8], [74 x i8]* @str.18, i64 0, i64 0))
%10 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([76 x i8], [76 x i8]* @str.19, i64 0, i64 0))
%11 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([29 x i8], [29 x i8]* @str.20, i64 0, i64 0))
ret i32 38
}