#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*/ ConfigPoint();
int /*<<< orphan*/ GL_DEPTH_TEST;
int /*<<< orphan*/ GL_MODELVIEW;
int /*<<< orphan*/ GL_PROJECTION;
int /*<<< orphan*/ glClearColor(double, double, double, double);
int /*<<< orphan*/ glEnable(int /*<<< orphan*/);
int /*<<< orphan*/ glLoadIdentity();
int /*<<< orphan*/ glMatrixMode(int /*<<< orphan*/);
int /*<<< orphan*/ glOrtho(int, int, int, int, int, int);
int /*<<< orphan*/ glPointSize(double);
void Init(void) {
  ConfigPoint();
  glClearColor(0.0, 0.0, 0.0, 0.0);
  glPointSize(1.0);
  glEnable(GL_DEPTH_TEST);
  glMatrixMode(GL_PROJECTION);
  glLoadIdentity();
  glOrtho(-12, 12, -12, 12, -12, 12);
  glMatrixMode(GL_MODELVIEW);
  glLoadIdentity();
}


x86 assembly (clang, -O0):
<Init>:
push   %rbp
mov    %rsp,%rbp
mov    $0x0,%al
call   1080 <ConfigPoint@plt>
xorps  %xmm3,%xmm3
movaps %xmm3,%xmm0
movaps %xmm3,%xmm1
movaps %xmm3,%xmm2
call   1060 <glClearColor@plt>
movsd  0xe6c(%rip),%xmm0
call   1090 <glPointSize@plt>
mov    0x2e30(%rip),%rax
mov    (%rax),%edi
call   1040 <glEnable@plt>
mov    0x2e2a(%rip),%rax
mov    (%rax),%edi
call   1030 <glMatrixMode@plt>
mov    $0x0,%al
call   1070 <glLoadIdentity@plt>
mov    $0xfffffff4,%r8d
mov    $0xc,%r9d
mov    %r8d,%edi
mov    %r9d,%esi
mov    %r8d,%edx
mov    %r9d,%ecx
call   1050 <glOrtho@plt>
mov    0x2e08(%rip),%rax
mov    (%rax),%edi
call   1030 <glMatrixMode@plt>
mov    $0x0,%al
call   1070 <glLoadIdentity@plt>
pop    %rbp
ret

x86 assembly (clang, -O2):
<Init>:
push   %rax
xor    %eax,%eax
call   1080 <ConfigPoint@plt>
xorps  %xmm0,%xmm0
xorps  %xmm1,%xmm1
xorps  %xmm2,%xmm2
xorps  %xmm3,%xmm3
call   1060 <glClearColor@plt>
movsd  0xe6f(%rip),%xmm0
call   1090 <glPointSize@plt>
mov    0x2e33(%rip),%rax
mov    (%rax),%edi
call   1040 <glEnable@plt>
mov    0x2e2d(%rip),%rax
mov    (%rax),%edi
call   1030 <glMatrixMode@plt>
xor    %eax,%eax
call   1070 <glLoadIdentity@plt>
mov    $0xfffffff4,%edi
mov    $0xc,%esi
mov    $0xfffffff4,%edx
mov    $0xc,%ecx
mov    $0xfffffff4,%r8d
mov    $0xc,%r9d
call   1050 <glOrtho@plt>
mov    0x2e03(%rip),%rax
mov    (%rax),%edi
call   1030 <glMatrixMode@plt>
xor    %eax,%eax
pop    %rcx
jmp    1070 <glLoadIdentity@plt>

LLVM IR (-O0):
@GL_DEPTH_TEST = global i32 0
@GL_PROJECTION = global i32 0
@GL_MODELVIEW = global i32 0
define void @Init() {
%1 = call i32 (...) @ConfigPoint()
%2 = call i32 @glClearColor(double 0.000000e+00, double 0.000000e+00, double 0.000000e+00, double 0.000000e+00)
%3 = call i32 @glPointSize(double 1.000000e+00)
%4 = load i32, i32* @GL_DEPTH_TEST
%5 = call i32 @glEnable(i32 %4)
%6 = load i32, i32* @GL_PROJECTION
%7 = call i32 @glMatrixMode(i32 %6)
%8 = call i32 (...) @glLoadIdentity()
%9 = call i32 @glOrtho(i32 -12, i32 12, i32 -12, i32 12, i32 -12, i32 12)
%10 = load i32, i32* @GL_MODELVIEW
%11 = call i32 @glMatrixMode(i32 %10)
%12 = call i32 (...) @glLoadIdentity()
ret void
}

LLVM IR (-O2):
@GL_DEPTH_TEST = global i32 0
@GL_PROJECTION = global i32 0
@GL_MODELVIEW = global i32 0
define void @Init() {
%1 = tail call i32 (...) @ConfigPoint()
%2 = tail call i32 @glClearColor(double 0.000000e+00, double 0.000000e+00, double 0.000000e+00, double 0.000000e+00)
%3 = tail call i32 @glPointSize(double 1.000000e+00)
%4 = load i32, i32* @GL_DEPTH_TEST
%5 = tail call i32 @glEnable(i32 %4)
%6 = load i32, i32* @GL_PROJECTION
%7 = tail call i32 @glMatrixMode(i32 %6)
%8 = tail call i32 (...) @glLoadIdentity()
%9 = tail call i32 @glOrtho(i32 -12, i32 12, i32 -12, i32 12, i32 -12, i32 12)
%10 = load i32, i32* @GL_MODELVIEW
%11 = tail call i32 @glMatrixMode(i32 %10)
%12 = tail call i32 (...) @glLoadIdentity()
ret void
}