#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 */
typedef int /*<<< orphan*/ FILE;

/* Variables and functions */
int /*<<< orphan*/ fclose(int /*<<< orphan*/ *);
int /*<<< orphan*/ *fopen(char *, char *);
int /*<<< orphan*/ fprintf(int /*<<< orphan*/ *, char *);
int main(void) {
  FILE *fptr;
  fptr = fopen("matrix_blue-pill-prelude", "a");
  fprintf(fptr, "Morpheus: Do you believe in fate, Neo?\n\n");
  fprintf(fptr, "Neo: No.\n\n");
  fprintf(fptr, "Morpheus: Why?\n\n");
  fprintf(fptr, "Neo: Because I don't like the idea that I'm not in control of "
                "my own life.\n\n");
  fprintf(fptr,
          "Morpheus: I know...*exactly* what you mean. Let me tell you why "
          "you're here. You're here because you know something. What you know, "
          "you can't explain. But you feel it. You've felt it your entire "
          "life. That there's something *wrong* with the world. You don't know "
          "what it is, but it's there... like a splinter in you're mind, "
          "driving you mad. It is this feeling that has brought you to me. Do "
          "you *know* what I'm talking about?\n\n");
  fprintf(fptr, "Neo: The Matrix?\n\n");
  fprintf(fptr, "Morpheus: Do you want to know... *what* *it* is...?\n\n");
  fprintf(fptr, "Neo nods\n\n");
  fprintf(
      fptr,
      "Morpheus: The Matrix is everywhere. It's all around us, even in this "
      "very room. You can see it when you look out your window or when you "
      "turn on your television. You can feel it when you go to work, when you "
      "go to work, when you pay your taxes. The Matrix is the world that has "
      "been pulled over your eyes, to blind you from the truth.\n\n");
  fprintf(fptr, "Neo: What truth?\n\n");
  fprintf(
      fptr,
      "Morpheus: That you are a slave, Neo. Like everyone else, you were born "
      "into bondage, born into a prison that you cannot smell or taste or "
      "touch. A prison... for your mind... Unfortunatly, no one can be... "
      "*told* what the Matrix is. You have to see it for yourself.");
  fclose(fptr);
  return 0;
}


x86 assembly (clang, -O0):
<main>:
push   %rbp
mov    %rsp,%rbp
sub    $0x10,%rsp
movl   $0x0,-0x4(%rbp)
lea    0xeba(%rip),%rdi
lea    0xecc(%rip),%rsi
call   1050 <fopen@plt>
mov    %rax,-0x10(%rbp)
mov    -0x10(%rbp),%rdi
lea    0xeba(%rip),%rsi
call   1040 <fprintf@plt>
mov    -0x10(%rbp),%rdi
lea    0xed3(%rip),%rsi
call   1040 <fprintf@plt>
mov    -0x10(%rbp),%rdi
lea    0xece(%rip),%rsi
call   1040 <fprintf@plt>
mov    -0x10(%rbp),%rdi
lea    0xecf(%rip),%rsi
call   1040 <fprintf@plt>
mov    -0x10(%rbp),%rdi
lea    0xf0c(%rip),%rsi
call   1040 <fprintf@plt>
mov    -0x10(%rbp),%rdi
lea    0x10a9(%rip),%rsi
call   1040 <fprintf@plt>
mov    -0x10(%rbp),%rdi
lea    0x10ac(%rip),%rsi
call   1040 <fprintf@plt>
mov    -0x10(%rbp),%rdi
lea    0x10d2(%rip),%rsi
call   1040 <fprintf@plt>
mov    -0x10(%rbp),%rdi
lea    0x10cd(%rip),%rsi
call   1040 <fprintf@plt>
mov    -0x10(%rbp),%rdi
lea    0x120e(%rip),%rsi
call   1040 <fprintf@plt>
mov    -0x10(%rbp),%rdi
lea    0x1211(%rip),%rsi
call   1040 <fprintf@plt>
mov    -0x10(%rbp),%rdi
call   1030 <fclose@plt>
xor    %eax,%eax
add    $0x10,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<main>:
push   %rbx
lea    0xec8(%rip),%rdi
lea    0xeda(%rip),%rsi
call   1040 <fopen@plt>
mov    %rax,%rbx
lea    0xecd(%rip),%rdi
mov    $0x28,%esi
mov    $0x1,%edx
mov    %rax,%rcx
call   1050 <fwrite@plt>
lea    0xedd(%rip),%rdi
mov    $0xa,%esi
mov    $0x1,%edx
mov    %rbx,%rcx
call   1050 <fwrite@plt>
lea    0xecf(%rip),%rdi
mov    $0x10,%esi
mov    $0x1,%edx
mov    %rbx,%rcx
call   1050 <fwrite@plt>
lea    0xec7(%rip),%rdi
mov    $0x4c,%esi
mov    $0x1,%edx
mov    %rbx,%rcx
call   1050 <fwrite@plt>
lea    0xefb(%rip),%rdi
mov    $0x1ac,%esi
mov    $0x1,%edx
mov    %rbx,%rcx
call   1050 <fwrite@plt>
lea    0x108f(%rip),%rdi
mov    $0x12,%esi
mov    $0x1,%edx
mov    %rbx,%rcx
call   1050 <fwrite@plt>
lea    0x1089(%rip),%rdi
mov    $0x35,%esi
mov    $0x1,%edx
mov    %rbx,%rcx
call   1050 <fwrite@plt>
lea    0x10a6(%rip),%rdi
mov    $0xa,%esi
mov    $0x1,%edx
mov    %rbx,%rcx
call   1050 <fwrite@plt>
lea    0x1098(%rip),%rdi
mov    $0x150,%esi
mov    $0x1,%edx
mov    %rbx,%rcx
call   1050 <fwrite@plt>
lea    0x11d0(%rip),%rdi
mov    $0x12,%esi
mov    $0x1,%edx
mov    %rbx,%rcx
call   1050 <fwrite@plt>
lea    0x11ca(%rip),%rdi
mov    $0x108,%esi
mov    $0x1,%edx
mov    %rbx,%rcx
call   1050 <fwrite@plt>
mov    %rbx,%rdi
call   1030 <fclose@plt>
xor    %eax,%eax
pop    %rbx
ret

LLVM IR (-O0):
@.str = [25 x i8] c"matrix_blue-pill-prelude\00"
@.str.1 = [2 x i8] c"a\00"
@.str.2 = [41 x i8] c"Morpheus: Do you believe in fate, Neo?\0A\0A\00"
@.str.3 = [11 x i8] c"Neo: No.\0A\0A\00"
@.str.4 = [17 x i8] c"Morpheus: Why?\0A\0A\00"
@.str.5 = [77 x i8] c"Neo: Because I don't like the idea that I'm not in control of my own life.\0A\0A\00"
@.str.6 = [429 x i8] c"Morpheus: I know...*exactly* what you mean. Let me tell you why you're here. You're here because you know something. What you know, you can't explain. But you feel it. You've felt it your entire life. That there's something *wrong* with the world. You don't know what it is, but it's there... like a splinter in you're mind, driving you mad. It is this feeling that has brought you to me. Do you *know* what I'm talking about?\0A\0A\00"
@.str.7 = [19 x i8] c"Neo: The Matrix?\0A\0A\00"
@.str.8 = [54 x i8] c"Morpheus: Do you want to know... *what* *it* is...?\0A\0A\00"
@.str.9 = [11 x i8] c"Neo nods\0A\0A\00"
@.str.10 = [337 x i8] c"Morpheus: The Matrix is everywhere. It's all around us, even in this very room. You can see it when you look out your window or when you turn on your television. You can feel it when you go to work, when you go to work, when you pay your taxes. The Matrix is the world that has been pulled over your eyes, to blind you from the truth.\0A\0A\00"
@.str.11 = [19 x i8] c"Neo: What truth?\0A\0A\00"
@.str.12 = [265 x i8] c"Morpheus: That you are a slave, Neo. Like everyone else, you were born into bondage, born into a prison that you cannot smell or taste or touch. A prison... for your mind... Unfortunatly, no one can be... *told* what the Matrix is. You have to see it for yourself.\00"
define i32 @main() {
%1 = alloca i32
%2 = alloca i32*
store i32 0, i32* %1
%3 = call i32* @fopen(i8* getelementptr inbounds ([25 x i8], [25 x i8]* @.str, i64 0, i64 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.1, i64 0, i64 0))
store i32* %3, i32** %2
%4 = load i32*, i32** %2
%5 = call i32 @fprintf(i32* %4, i8* getelementptr inbounds ([41 x i8], [41 x i8]* @.str.2, i64 0, i64 0))
%6 = load i32*, i32** %2
%7 = call i32 @fprintf(i32* %6, i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str.3, i64 0, i64 0))
%8 = load i32*, i32** %2
%9 = call i32 @fprintf(i32* %8, i8* getelementptr inbounds ([17 x i8], [17 x i8]* @.str.4, i64 0, i64 0))
%10 = load i32*, i32** %2
%11 = call i32 @fprintf(i32* %10, i8* getelementptr inbounds ([77 x i8], [77 x i8]* @.str.5, i64 0, i64 0))
%12 = load i32*, i32** %2
%13 = call i32 @fprintf(i32* %12, i8* getelementptr inbounds ([429 x i8], [429 x i8]* @.str.6, i64 0, i64 0))
%14 = load i32*, i32** %2
%15 = call i32 @fprintf(i32* %14, i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.7, i64 0, i64 0))
%16 = load i32*, i32** %2
%17 = call i32 @fprintf(i32* %16, i8* getelementptr inbounds ([54 x i8], [54 x i8]* @.str.8, i64 0, i64 0))
%18 = load i32*, i32** %2
%19 = call i32 @fprintf(i32* %18, i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str.9, i64 0, i64 0))
%20 = load i32*, i32** %2
%21 = call i32 @fprintf(i32* %20, i8* getelementptr inbounds ([337 x i8], [337 x i8]* @.str.10, i64 0, i64 0))
%22 = load i32*, i32** %2
%23 = call i32 @fprintf(i32* %22, i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.11, i64 0, i64 0))
%24 = load i32*, i32** %2
%25 = call i32 @fprintf(i32* %24, i8* getelementptr inbounds ([265 x i8], [265 x i8]* @.str.12, i64 0, i64 0))
%26 = load i32*, i32** %2
%27 = call i32 @fclose(i32* %26)
ret i32 0
}

LLVM IR (-O2):
@.str = [25 x i8] c"matrix_blue-pill-prelude\00"
@.str.1 = [2 x i8] c"a\00"
@.str.2 = [41 x i8] c"Morpheus: Do you believe in fate, Neo?\0A\0A\00"
@.str.3 = [11 x i8] c"Neo: No.\0A\0A\00"
@.str.4 = [17 x i8] c"Morpheus: Why?\0A\0A\00"
@.str.5 = [77 x i8] c"Neo: Because I don't like the idea that I'm not in control of my own life.\0A\0A\00"
@.str.6 = [429 x i8] c"Morpheus: I know...*exactly* what you mean. Let me tell you why you're here. You're here because you know something. What you know, you can't explain. But you feel it. You've felt it your entire life. That there's something *wrong* with the world. You don't know what it is, but it's there... like a splinter in you're mind, driving you mad. It is this feeling that has brought you to me. Do you *know* what I'm talking about?\0A\0A\00"
@.str.7 = [19 x i8] c"Neo: The Matrix?\0A\0A\00"
@.str.8 = [54 x i8] c"Morpheus: Do you want to know... *what* *it* is...?\0A\0A\00"
@.str.9 = [11 x i8] c"Neo nods\0A\0A\00"
@.str.10 = [337 x i8] c"Morpheus: The Matrix is everywhere. It's all around us, even in this very room. You can see it when you look out your window or when you turn on your television. You can feel it when you go to work, when you go to work, when you pay your taxes. The Matrix is the world that has been pulled over your eyes, to blind you from the truth.\0A\0A\00"
@.str.11 = [19 x i8] c"Neo: What truth?\0A\0A\00"
@.str.12 = [265 x i8] c"Morpheus: That you are a slave, Neo. Like everyone else, you were born into bondage, born into a prison that you cannot smell or taste or touch. A prison... for your mind... Unfortunatly, no one can be... *told* what the Matrix is. You have to see it for yourself.\00"
define i32 @main() {
%1 = tail call i32* @fopen(i8* getelementptr inbounds ([25 x i8], [25 x i8]* @.str, i64 0, i64 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.1, i64 0, i64 0))
%2 = tail call i64 @fwrite(i8* getelementptr inbounds ([41 x i8], [41 x i8]* @.str.2, i64 0, i64 0), i64 40, i64 1, i32* %1)
%3 = tail call i64 @fwrite(i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str.3, i64 0, i64 0), i64 10, i64 1, i32* %1)
%4 = tail call i64 @fwrite(i8* getelementptr inbounds ([17 x i8], [17 x i8]* @.str.4, i64 0, i64 0), i64 16, i64 1, i32* %1)
%5 = tail call i64 @fwrite(i8* getelementptr inbounds ([77 x i8], [77 x i8]* @.str.5, i64 0, i64 0), i64 76, i64 1, i32* %1)
%6 = tail call i64 @fwrite(i8* getelementptr inbounds ([429 x i8], [429 x i8]* @.str.6, i64 0, i64 0), i64 428, i64 1, i32* %1)
%7 = tail call i64 @fwrite(i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.7, i64 0, i64 0), i64 18, i64 1, i32* %1)
%8 = tail call i64 @fwrite(i8* getelementptr inbounds ([54 x i8], [54 x i8]* @.str.8, i64 0, i64 0), i64 53, i64 1, i32* %1)
%9 = tail call i64 @fwrite(i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str.9, i64 0, i64 0), i64 10, i64 1, i32* %1)
%10 = tail call i64 @fwrite(i8* getelementptr inbounds ([337 x i8], [337 x i8]* @.str.10, i64 0, i64 0), i64 336, i64 1, i32* %1)
%11 = tail call i64 @fwrite(i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.11, i64 0, i64 0), i64 18, i64 1, i32* %1)
%12 = tail call i64 @fwrite(i8* getelementptr inbounds ([265 x i8], [265 x i8]* @.str.12, i64 0, i64 0), i64 264, i64 1, i32* %1)
%13 = tail call i32 @fclose(i32* %1)
ret i32 0
}