#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 *, int, int, int, int, int, int, int, int, int,
                          int, int, int, int, int, int, int, int, int, int, int,
                          int, int, int, int, int, int, int, int, int, int,
                          int);
int main() {
  printf(
      "Flag: %c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c\n",
      71, 67, 84, 70, 123, 98, 52, 53, 104, 49, 110, 54, 95, 49, 53, 95, 98, 52,
      100, 95, 102, 48, 114, 95, 104, 51, 52, 108, 55, 104, 125);
}


x86 assembly (clang, -O0):
<main>:
push   %rbp
mov    %rsp,%rbp
sub    $0xd0,%rsp
lea    0xede(%rip),%rdi
mov    $0x47,%esi
mov    $0x43,%edx
mov    $0x54,%ecx
mov    $0x46,%r8d
mov    $0x7b,%r9d
movl   $0x62,(%rsp)
movl   $0x34,0x8(%rsp)
movl   $0x35,0x10(%rsp)
movl   $0x68,0x18(%rsp)
movl   $0x31,0x20(%rsp)
movl   $0x6e,0x28(%rsp)
movl   $0x36,0x30(%rsp)
movl   $0x5f,0x38(%rsp)
movl   $0x31,0x40(%rsp)
movl   $0x35,0x48(%rsp)
movl   $0x5f,0x50(%rsp)
movl   $0x62,0x58(%rsp)
movl   $0x34,0x60(%rsp)
movl   $0x64,0x68(%rsp)
movl   $0x5f,0x70(%rsp)
movl   $0x66,0x78(%rsp)
movl   $0x30,0x80(%rsp)
movl   $0x72,0x88(%rsp)
movl   $0x5f,0x90(%rsp)
movl   $0x68,0x98(%rsp)
movl   $0x33,0xa0(%rsp)
movl   $0x34,0xa8(%rsp)
movl   $0x6c,0xb0(%rsp)
movl   $0x37,0xb8(%rsp)
movl   $0x68,0xc0(%rsp)
movl   $0x7d,0xc8(%rsp)
call   1030 <printf@plt>
xor    %eax,%eax
add    $0xd0,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<main>:
push   %rax
lea    0xee8(%rip),%rdi
mov    $0x47,%esi
mov    $0x43,%edx
mov    $0x54,%ecx
mov    $0x46,%r8d
mov    $0x7b,%r9d
push   $0x7d
push   $0x68
push   $0x37
push   $0x6c
push   $0x34
push   $0x33
push   $0x68
push   $0x5f
push   $0x72
push   $0x30
push   $0x66
push   $0x5f
push   $0x64
push   $0x34
push   $0x62
push   $0x5f
push   $0x35
push   $0x31
push   $0x5f
push   $0x36
push   $0x6e
push   $0x31
push   $0x68
push   $0x35
push   $0x34
push   $0x62
call   1030 <printf@plt>
add    $0xd0,%rsp
xor    %eax,%eax
pop    %rcx
ret

LLVM IR (-O0):
@.str = [70 x i8] c"Flag: %c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c\0A\00"
define i32 @main() {
%1 = call i32 @printf(i8* getelementptr inbounds ([70 x i8], [70 x i8]* @.str, i64 0, i64 0), i32 71, i32 67, i32 84, i32 70, i32 123, i32 98, i32 52, i32 53, i32 104, i32 49, i32 110, i32 54, i32 95, i32 49, i32 53, i32 95, i32 98, i32 52, i32 100, i32 95, i32 102, i32 48, i32 114, i32 95, i32 104, i32 51, i32 52, i32 108, i32 55, i32 104, i32 125)
ret i32 0
}

LLVM IR (-O2):
@.str = [70 x i8] c"Flag: %c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c\0A\00"
define i32 @main() {
%1 = tail call i32 @printf(i8* getelementptr inbounds ([70 x i8], [70 x i8]* @.str, i64 0, i64 0), i32 71, i32 67, i32 84, i32 70, i32 123, i32 98, i32 52, i32 53, i32 104, i32 49, i32 110, i32 54, i32 95, i32 49, i32 53, i32 95, i32 98, i32 52, i32 100, i32 95, i32 102, i32 48, i32 114, i32 95, i32 104, i32 51, i32 52, i32 108, i32 55, i32 104, i32 125)
ret i32 0
}