#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*/ glClearColor(float, float, float, float);
int /*<<< orphan*/ glClearDepthf(float);
int /*<<< orphan*/ glCullFace(int);
int /*<<< orphan*/ glDepthFunc(int);
int /*<<< orphan*/ glDisable(int);
int /*<<< orphan*/ glEnable(int);
int /*<<< orphan*/ glFrontFace(int);
int /*<<< orphan*/ glHint(int, int);
int /*<<< orphan*/ glLoadIdentity();
int /*<<< orphan*/ glMatrixMode(int);
int /*<<< orphan*/ glShadeModel(int);
int InitGL() {
  glEnable(0x0B71);
  glDepthFunc(0x0201);
  glClearColor(0.3f, 0.3f, 0.7f, 0.0f);
  glClearDepthf(1.0f);
  glDisable(0x0B20);
  glDisable(0x0B10);
  glShadeModel(0x1D01);
  glDisable(0x0B50);
  glDisable(0x0BE2);
  glDisable(0x0B57);
  glDisable(0x0BA1);
  glDisable(0x0C11);
  glDisable(0x0B90);
  glEnable(0x0B44);
  glCullFace(0x0405);
  glFrontFace(0x0901);
  glHint(0x0C50, 0x1102);
  glMatrixMode(0x1700);
  glLoadIdentity();
  return 1;
}


x86 assembly (clang, -O0):
<InitGL>:
push   %rbp
mov    %rsp,%rbp
mov    $0xb71,%edi
call   1050 <glEnable@plt>
mov    $0x201,%edi
call   1060 <glDepthFunc@plt>
movss  0xe34(%rip),%xmm1
movss  0xe30(%rip),%xmm2
xorps  %xmm3,%xmm3
movaps %xmm1,%xmm0
call   1070 <glClearColor@plt>
movss  0xe15(%rip),%xmm0
call   1030 <glClearDepthf@plt>
mov    $0xb20,%edi
call   10c0 <glDisable@plt>
mov    $0xb10,%edi
call   10c0 <glDisable@plt>
mov    $0x1d01,%edi
call   10b0 <glShadeModel@plt>
mov    $0xb50,%edi
call   10c0 <glDisable@plt>
mov    $0xbe2,%edi
call   10c0 <glDisable@plt>
mov    $0xb57,%edi
call   10c0 <glDisable@plt>
mov    $0xba1,%edi
call   10c0 <glDisable@plt>
mov    $0xc11,%edi
call   10c0 <glDisable@plt>
mov    $0xb90,%edi
call   10c0 <glDisable@plt>
mov    $0xb44,%edi
call   1050 <glEnable@plt>
mov    $0x405,%edi
call   10d0 <glCullFace@plt>
mov    $0x901,%edi
call   10a0 <glFrontFace@plt>
mov    $0xc50,%edi
mov    $0x1102,%esi
call   1090 <glHint@plt>
mov    $0x1700,%edi
call   1040 <glMatrixMode@plt>
mov    $0x0,%al
call   1080 <glLoadIdentity@plt>
mov    $0x1,%eax
pop    %rbp
ret

x86 assembly (clang, -O2):
<InitGL>:
push   %rax
mov    $0xb71,%edi
call   1050 <glEnable@plt>
mov    $0x201,%edi
call   1060 <glDepthFunc@plt>
movss  0xe33(%rip),%xmm0
movss  0xe2f(%rip),%xmm2
xorps  %xmm3,%xmm3
movaps %xmm0,%xmm1
call   1070 <glClearColor@plt>
movss  0xe20(%rip),%xmm0
call   1030 <glClearDepthf@plt>
mov    $0xb20,%edi
call   10c0 <glDisable@plt>
mov    $0xb10,%edi
call   10c0 <glDisable@plt>
mov    $0x1d01,%edi
call   10b0 <glShadeModel@plt>
mov    $0xb50,%edi
call   10c0 <glDisable@plt>
mov    $0xbe2,%edi
call   10c0 <glDisable@plt>
mov    $0xb57,%edi
call   10c0 <glDisable@plt>
mov    $0xba1,%edi
call   10c0 <glDisable@plt>
mov    $0xc11,%edi
call   10c0 <glDisable@plt>
mov    $0xb90,%edi
call   10c0 <glDisable@plt>
mov    $0xb44,%edi
call   1050 <glEnable@plt>
mov    $0x405,%edi
call   10d0 <glCullFace@plt>
mov    $0x901,%edi
call   10a0 <glFrontFace@plt>
mov    $0xc50,%edi
mov    $0x1102,%esi
call   1090 <glHint@plt>
mov    $0x1700,%edi
call   1040 <glMatrixMode@plt>
xor    %eax,%eax
call   1080 <glLoadIdentity@plt>
mov    $0x1,%eax
pop    %rcx
ret

LLVM IR (-O0):
define i32 @InitGL() {
%1 = call i32 @glEnable(i32 2929)
%2 = call i32 @glDepthFunc(i32 513)
%3 = call i32 @glClearColor(float 0x3FD3333340000000, float 0x3FD3333340000000, float 0x3FE6666660000000, float 0.000000e+00)
%4 = call i32 @glClearDepthf(float 1.000000e+00)
%5 = call i32 @glDisable(i32 2848)
%6 = call i32 @glDisable(i32 2832)
%7 = call i32 @glShadeModel(i32 7425)
%8 = call i32 @glDisable(i32 2896)
%9 = call i32 @glDisable(i32 3042)
%10 = call i32 @glDisable(i32 2903)
%11 = call i32 @glDisable(i32 2977)
%12 = call i32 @glDisable(i32 3089)
%13 = call i32 @glDisable(i32 2960)
%14 = call i32 @glEnable(i32 2884)
%15 = call i32 @glCullFace(i32 1029)
%16 = call i32 @glFrontFace(i32 2305)
%17 = call i32 @glHint(i32 3152, i32 4354)
%18 = call i32 @glMatrixMode(i32 5888)
%19 = call i32 (...) @glLoadIdentity()
ret i32 1
}

LLVM IR (-O2):
define i32 @InitGL() {
%1 = tail call i32 @glEnable(i32 2929)
%2 = tail call i32 @glDepthFunc(i32 513)
%3 = tail call i32 @glClearColor(float 0x3FD3333340000000, float 0x3FD3333340000000, float 0x3FE6666660000000, float 0.000000e+00)
%4 = tail call i32 @glClearDepthf(float 1.000000e+00)
%5 = tail call i32 @glDisable(i32 2848)
%6 = tail call i32 @glDisable(i32 2832)
%7 = tail call i32 @glShadeModel(i32 7425)
%8 = tail call i32 @glDisable(i32 2896)
%9 = tail call i32 @glDisable(i32 3042)
%10 = tail call i32 @glDisable(i32 2903)
%11 = tail call i32 @glDisable(i32 2977)
%12 = tail call i32 @glDisable(i32 3089)
%13 = tail call i32 @glDisable(i32 2960)
%14 = tail call i32 @glEnable(i32 2884)
%15 = tail call i32 @glCullFace(i32 1029)
%16 = tail call i32 @glFrontFace(i32 2305)
%17 = tail call i32 @glHint(i32 3152, i32 4354)
%18 = tail call i32 @glMatrixMode(i32 5888)
%19 = tail call i32 (...) @glLoadIdentity()
ret i32 1
}