#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 *);
page39() {
  printf("You bravely volunteer to test the mutant detection gun.  You stand "
         "up and walk\n");
  printf("down the steps to the podium, passing a very relieved Troubleshooter "
         "along the\n");
  printf("way.  When you reach the podium Plato-B-PHI hands you the mutant "
         "detection gun\n");
  printf("and says, \"Here, aim the gun at that Troubleshooter and push the "
         "small button.\n");
  printf("If you see a purple light, stun him.\"  Grasping the opportunity to "
         "prove your\n");
  printf("worth to The Computer, you fire the mutant detection ray at the "
         "Troubleshooter.\n");
  printf("A brilliant purple nimbus instantly surrounds his body.  You slip "
         "your finger\n");
  printf("to the large stun button and he falls writhing to the floor.\n");
  printf("\"Good shot,\" says the instructor as you hand him the mutant "
         "detection gun,\n");
  printf("\"I\'ll see that you get a commendation for this.  It seems you have "
         "the hang\n");
  printf("of mutant detection and elimination.  You can go on to the secret "
         "society\n");
  printf("infiltration class.  I\'ll see that the little mutie gets packaged "
         "for\n");
  printf("tomorrow\'s mutant dissection class.\"\n");
  return 41;
}


x86 assembly (clang, -O0):
<page39>:
push   %rbp
mov    %rsp,%rbp
lea    0xee5(%rip),%rdi
call   1030 <printf@plt>
lea    0xf29(%rip),%rdi
call   1030 <printf@plt>
lea    0xf6d(%rip),%rdi
call   1030 <printf@plt>
lea    0xfb1(%rip),%rdi
call   1030 <printf@plt>
lea    0xff5(%rip),%rdi
call   1030 <printf@plt>
lea    0x1038(%rip),%rdi
call   1030 <printf@plt>
lea    0x107d(%rip),%rdi
call   1030 <printf@plt>
lea    0x10c0(%rip),%rdi
call   1030 <printf@plt>
lea    0x10f2(%rip),%rdi
call   1030 <printf@plt>
lea    0x1132(%rip),%rdi
call   1030 <printf@plt>
lea    0x1173(%rip),%rdi
call   1030 <printf@plt>
lea    0x11b2(%rip),%rdi
call   1030 <printf@plt>
lea    0x11ed(%rip),%rdi
call   1030 <printf@plt>
mov    $0x29,%eax
pop    %rbp
ret

x86 assembly (clang, -O2):
<page39>:
push   %rax
lea    0xee8(%rip),%rdi
call   1030 <puts@plt>
lea    0xf2b(%rip),%rdi
call   1030 <puts@plt>
lea    0xf6e(%rip),%rdi
call   1030 <puts@plt>
lea    0xfb1(%rip),%rdi
call   1030 <puts@plt>
lea    0xff4(%rip),%rdi
call   1030 <puts@plt>
lea    0x1036(%rip),%rdi
call   1030 <puts@plt>
lea    0x107a(%rip),%rdi
call   1030 <puts@plt>
lea    0x10bc(%rip),%rdi
call   1030 <puts@plt>
lea    0x10ed(%rip),%rdi
call   1030 <puts@plt>
lea    0x112c(%rip),%rdi
call   1030 <puts@plt>
lea    0x116c(%rip),%rdi
call   1030 <puts@plt>
lea    0x11aa(%rip),%rdi
call   1030 <puts@plt>
lea    0x11e4(%rip),%rdi
call   1030 <puts@plt>
mov    $0x29,%eax
pop    %rcx
ret

LLVM IR (-O0):
@.str = [80 x i8] c"You bravely volunteer to test the mutant detection gun. You stand up and walk\0A\00"
@.str.1 = [80 x i8] c"down the steps to the podium, passing a very relieved Troubleshooter along the\0A\00"
@.str.2 = [80 x i8] c"way. When you reach the podium Plato-B-PHI hands you the mutant detection gun\0A\00"
@.str.3 = [80 x i8] c"and says, \22Here, aim the gun at that Troubleshooter and push the small button.\0A\00"
@.str.4 = [79 x i8] c"If you see a purple light, stun him.\22 Grasping the opportunity to prove your\0A\00"
@.str.5 = [81 x i8] c"worth to The Computer, you fire the mutant detection ray at the Troubleshooter.\0A\00"
@.str.6 = [79 x i8] c"A brilliant purple nimbus instantly surrounds his body. You slip your finger\0A\00"
@.str.7 = [62 x i8] c"to the large stun button and he falls writhing to the floor.\0A\00"
@.str.8 = [76 x i8] c"\22Good shot,\22 says the instructor as you hand him the mutant detection gun,\0A\00"
@.str.9 = [77 x i8] c"\22I'll see that you get a commendation for this. It seems you have the hang\0A\00"
@.str.10 = [75 x i8] c"of mutant detection and elimination. You can go on to the secret society\0A\00"
@.str.11 = [71 x i8] c"infiltration class. I'll see that the little mutie gets packaged for\0A\00"
@.str.12 = [38 x i8] c"tomorrow's mutant dissection class.\22\0A\00"
define i32 @page39() {
%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 ([80 x i8], [80 x i8]* @.str.2, i64 0, i64 0))
%4 = call i32 @printf(i8* getelementptr inbounds ([80 x i8], [80 x i8]* @.str.3, i64 0, i64 0))
%5 = call i32 @printf(i8* getelementptr inbounds ([79 x i8], [79 x i8]* @.str.4, i64 0, i64 0))
%6 = call i32 @printf(i8* getelementptr inbounds ([81 x i8], [81 x i8]* @.str.5, i64 0, i64 0))
%7 = call i32 @printf(i8* getelementptr inbounds ([79 x i8], [79 x i8]* @.str.6, i64 0, i64 0))
%8 = call i32 @printf(i8* getelementptr inbounds ([62 x i8], [62 x i8]* @.str.7, i64 0, i64 0))
%9 = call i32 @printf(i8* getelementptr inbounds ([76 x i8], [76 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 ([75 x i8], [75 x i8]* @.str.10, i64 0, i64 0))
%12 = call i32 @printf(i8* getelementptr inbounds ([71 x i8], [71 x i8]* @.str.11, i64 0, i64 0))
%13 = call i32 @printf(i8* getelementptr inbounds ([38 x i8], [38 x i8]* @.str.12, i64 0, i64 0))
ret i32 41
}

LLVM IR (-O2):
@str = [79 x i8] c"You bravely volunteer to test the mutant detection gun. You stand up and walk\00"
@str.13 = [79 x i8] c"down the steps to the podium, passing a very relieved Troubleshooter along the\00"
@str.14 = [79 x i8] c"way. When you reach the podium Plato-B-PHI hands you the mutant detection gun\00"
@str.15 = [79 x i8] c"and says, \22Here, aim the gun at that Troubleshooter and push the small button.\00"
@str.16 = [78 x i8] c"If you see a purple light, stun him.\22 Grasping the opportunity to prove your\00"
@str.17 = [80 x i8] c"worth to The Computer, you fire the mutant detection ray at the Troubleshooter.\00"
@str.18 = [78 x i8] c"A brilliant purple nimbus instantly surrounds his body. You slip your finger\00"
@str.19 = [61 x i8] c"to the large stun button and he falls writhing to the floor.\00"
@str.20 = [75 x i8] c"\22Good shot,\22 says the instructor as you hand him the mutant detection gun,\00"
@str.21 = [76 x i8] c"\22I'll see that you get a commendation for this. It seems you have the hang\00"
@str.22 = [74 x i8] c"of mutant detection and elimination. You can go on to the secret society\00"
@str.23 = [70 x i8] c"infiltration class. I'll see that the little mutie gets packaged for\00"
@str.24 = [37 x i8] c"tomorrow's mutant dissection class.\22\00"
define i32 @page39() {
%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.13, i64 0, i64 0))
%3 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([79 x i8], [79 x i8]* @str.14, i64 0, i64 0))
%4 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([79 x i8], [79 x i8]* @str.15, i64 0, i64 0))
%5 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([78 x i8], [78 x i8]* @str.16, i64 0, i64 0))
%6 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([80 x i8], [80 x i8]* @str.17, i64 0, i64 0))
%7 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([78 x i8], [78 x i8]* @str.18, i64 0, i64 0))
%8 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([61 x i8], [61 x i8]* @str.19, i64 0, i64 0))
%9 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([75 x i8], [75 x i8]* @str.20, i64 0, i64 0))
%10 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([76 x i8], [76 x i8]* @str.21, i64 0, i64 0))
%11 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([74 x i8], [74 x i8]* @str.22, i64 0, i64 0))
%12 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([70 x i8], [70 x i8]* @str.23, i64 0, i64 0))
%13 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([37 x i8], [37 x i8]* @str.24, i64 0, i64 0))
ret i32 41
}