#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 new_clone(int);
int /*<<< orphan*/ printf(char *);
page35() {
  printf("\"Oh master,\" you hear through the gun barrel, \"where have you "
         "been? It is\n");
  printf("time for the great Christmas gifting ceremony.  You had better hurry "
         "and get\n");
  printf("the costume on or the trainee may begin to suspect.\"  For the "
         "second time\n");
  printf("today you are forced to wear attire not of your own choosing.  They "
         "zip the\n");
  printf("suit to your chin just as you hear gunfire erupt behind you.\n");
  printf("\"Oh no! Who left the door open?  The commies will get in.  Quick, "
         "fire the\n");
  printf("laser cannon or we\'re all doomed.\"\n");
  printf("\"Too late you capitalist swine, the people\'s revolutionary strike "
         "force claims\n");
  printf("this cannon for the proletariat\'s valiant struggle against "
         "oppression.  Take\n");
  printf("that, you running dog imperialist lackey.  ZAP, KAPOW\"\n");
  printf("Just when you think that things couldn\'t get worse, \"Aha, look "
         "what we have\n");
  printf("here, the Master Retailer himself with his head caught in his own "
         "cannon.  His\n");
  printf("death will serve as a symbol of freedom for all Alpha Complex.\n");
  printf("Fire the cannon.\"\n");
  return new_clone(32);
}


x86 assembly (clang, -O0):
<page35>:
push   %rbp
mov    %rsp,%rbp
lea    0xed5(%rip),%rdi
call   1030 <printf@plt>
lea    0xf14(%rip),%rdi
call   1030 <printf@plt>
lea    0xf56(%rip),%rdi
call   1030 <printf@plt>
lea    0xf95(%rip),%rdi
call   1030 <printf@plt>
lea    0xfd6(%rip),%rdi
call   1030 <printf@plt>
lea    0x1008(%rip),%rdi
call   1030 <printf@plt>
lea    0x1048(%rip),%rdi
call   1030 <printf@plt>
lea    0x1060(%rip),%rdi
call   1030 <printf@plt>
lea    0x10a4(%rip),%rdi
call   1030 <printf@plt>
lea    0x10e6(%rip),%rdi
call   1030 <printf@plt>
lea    0x1112(%rip),%rdi
call   1030 <printf@plt>
lea    0x1153(%rip),%rdi
call   1030 <printf@plt>
lea    0x1197(%rip),%rdi
call   1030 <printf@plt>
lea    0x11cb(%rip),%rdi
call   1030 <printf@plt>
mov    $0x20,%edi
call   1040 <new_clone@plt>
pop    %rbp
ret

x86 assembly (clang, -O2):
<page35>:
push   %rax
lea    0xed8(%rip),%rdi
call   1030 <puts@plt>
lea    0xf16(%rip),%rdi
call   1030 <puts@plt>
lea    0xf57(%rip),%rdi
call   1030 <puts@plt>
lea    0xf95(%rip),%rdi
call   1030 <puts@plt>
lea    0xfd5(%rip),%rdi
call   1030 <puts@plt>
lea    0x1006(%rip),%rdi
call   1030 <puts@plt>
lea    0x1045(%rip),%rdi
call   1030 <puts@plt>
lea    0x105c(%rip),%rdi
call   1030 <puts@plt>
lea    0x109f(%rip),%rdi
call   1030 <puts@plt>
lea    0x10e0(%rip),%rdi
call   1030 <puts@plt>
lea    0x110b(%rip),%rdi
call   1030 <puts@plt>
lea    0x114b(%rip),%rdi
call   1030 <puts@plt>
lea    0x118e(%rip),%rdi
call   1030 <puts@plt>
lea    0x11c1(%rip),%rdi
call   1030 <puts@plt>
mov    $0x20,%edi
pop    %rax
jmp    1040 <new_clone@plt>

LLVM IR (-O0):
@.str = [75 x i8] c"\22Oh master,\22 you hear through the gun barrel, \22where have you been? It is\0A\00"
@.str.1 = [78 x i8] c"time for the great Christmas gifting ceremony. You had better hurry and get\0A\00"
@.str.2 = [75 x i8] c"the costume on or the trainee may begin to suspect.\22 For the second time\0A\00"
@.str.3 = [77 x i8] c"today you are forced to wear attire not of your own choosing. They zip the\0A\00"
@.str.4 = [62 x i8] c"suit to your chin just as you hear gunfire erupt behind you.\0A\00"
@.str.5 = [76 x i8] c"\22Oh no! Who left the door open? The commies will get in. Quick, fire the\0A\00"
@.str.6 = [36 x i8] c"laser cannon or we're all doomed.\22\0A\00"
@.str.7 = [80 x i8] c"\22Too late you capitalist swine, the people's revolutionary strike force claims\0A\00"
@.str.8 = [78 x i8] c"this cannon for the proletariat's valiant struggle against oppression. Take\0A\00"
@.str.9 = [56 x i8] c"that, you running dog imperialist lackey. ZAP, KAPOW\22\0A\00"
@.str.10 = [77 x i8] c"Just when you think that things couldn't get worse, \22Aha, look what we have\0A\00"
@.str.11 = [80 x i8] c"here, the Master Retailer himself with his head caught in his own cannon. His\0A\00"
@.str.12 = [64 x i8] c"death will serve as a symbol of freedom for all Alpha Complex.\0A\00"
@.str.13 = [19 x i8] c"Fire the cannon.\22\0A\00"
define i32 @page35() {
%1 = call i32 @printf(i8* getelementptr inbounds ([75 x i8], [75 x i8]* @.str, i64 0, i64 0))
%2 = call i32 @printf(i8* getelementptr inbounds ([78 x i8], [78 x i8]* @.str.1, i64 0, i64 0))
%3 = call i32 @printf(i8* getelementptr inbounds ([75 x i8], [75 x i8]* @.str.2, i64 0, i64 0))
%4 = call i32 @printf(i8* getelementptr inbounds ([77 x i8], [77 x i8]* @.str.3, i64 0, i64 0))
%5 = call i32 @printf(i8* getelementptr inbounds ([62 x i8], [62 x i8]* @.str.4, i64 0, i64 0))
%6 = call i32 @printf(i8* getelementptr inbounds ([76 x i8], [76 x i8]* @.str.5, i64 0, i64 0))
%7 = call i32 @printf(i8* getelementptr inbounds ([36 x i8], [36 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 ([78 x i8], [78 x i8]* @.str.8, i64 0, i64 0))
%10 = call i32 @printf(i8* getelementptr inbounds ([56 x i8], [56 x i8]* @.str.9, i64 0, i64 0))
%11 = call i32 @printf(i8* getelementptr inbounds ([77 x i8], [77 x i8]* @.str.10, i64 0, i64 0))
%12 = call i32 @printf(i8* getelementptr inbounds ([80 x i8], [80 x i8]* @.str.11, i64 0, i64 0))
%13 = call i32 @printf(i8* getelementptr inbounds ([64 x i8], [64 x i8]* @.str.12, i64 0, i64 0))
%14 = call i32 @printf(i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.13, i64 0, i64 0))
%15 = call i32 @new_clone(i32 32)
ret i32 %15
}

LLVM IR (-O2):
@str = [74 x i8] c"\22Oh master,\22 you hear through the gun barrel, \22where have you been? It is\00"
@str.14 = [77 x i8] c"time for the great Christmas gifting ceremony. You had better hurry and get\00"
@str.15 = [74 x i8] c"the costume on or the trainee may begin to suspect.\22 For the second time\00"
@str.16 = [76 x i8] c"today you are forced to wear attire not of your own choosing. They zip the\00"
@str.17 = [61 x i8] c"suit to your chin just as you hear gunfire erupt behind you.\00"
@str.18 = [75 x i8] c"\22Oh no! Who left the door open? The commies will get in. Quick, fire the\00"
@str.19 = [35 x i8] c"laser cannon or we're all doomed.\22\00"
@str.20 = [79 x i8] c"\22Too late you capitalist swine, the people's revolutionary strike force claims\00"
@str.21 = [77 x i8] c"this cannon for the proletariat's valiant struggle against oppression. Take\00"
@str.22 = [55 x i8] c"that, you running dog imperialist lackey. ZAP, KAPOW\22\00"
@str.23 = [76 x i8] c"Just when you think that things couldn't get worse, \22Aha, look what we have\00"
@str.24 = [79 x i8] c"here, the Master Retailer himself with his head caught in his own cannon. His\00"
@str.25 = [63 x i8] c"death will serve as a symbol of freedom for all Alpha Complex.\00"
@str.26 = [18 x i8] c"Fire the cannon.\22\00"
define i32 @page35() {
%1 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([74 x i8], [74 x i8]* @str, i64 0, i64 0))
%2 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([77 x i8], [77 x i8]* @str.14, i64 0, i64 0))
%3 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([74 x i8], [74 x i8]* @str.15, i64 0, i64 0))
%4 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([76 x i8], [76 x i8]* @str.16, i64 0, i64 0))
%5 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([61 x i8], [61 x i8]* @str.17, i64 0, i64 0))
%6 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([75 x i8], [75 x i8]* @str.18, i64 0, i64 0))
%7 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([35 x i8], [35 x i8]* @str.19, i64 0, i64 0))
%8 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([79 x i8], [79 x i8]* @str.20, i64 0, i64 0))
%9 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([77 x i8], [77 x i8]* @str.21, i64 0, i64 0))
%10 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([55 x i8], [55 x i8]* @str.22, i64 0, i64 0))
%11 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([76 x i8], [76 x i8]* @str.23, i64 0, i64 0))
%12 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([79 x i8], [79 x i8]* @str.24, i64 0, i64 0))
%13 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([63 x i8], [63 x i8]* @str.25, i64 0, i64 0))
%14 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([18 x i8], [18 x i8]* @str.26, i64 0, i64 0))
%15 = tail call i32 @new_clone(i32 32)
ret i32 %15
}