#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 GLubyte;
typedef int GLint;

/* Variables and functions */
int /*<<< orphan*/ GL_DECAL;
int /*<<< orphan*/ GL_LINEAR;
int /*<<< orphan*/ GL_LINEAR_MIPMAP_LINEAR;
int /*<<< orphan*/ GL_RGB;
int /*<<< orphan*/ GL_TEXTURE_2D;
int /*<<< orphan*/ GL_TEXTURE_ENV;
int /*<<< orphan*/ GL_TEXTURE_ENV_MODE;
int /*<<< orphan*/ GL_TEXTURE_MAG_FILTER;
int /*<<< orphan*/ GL_TEXTURE_MIN_FILTER;
int /*<<< orphan*/ GL_UNSIGNED_BYTE;
int /*<<< orphan*/ glBindTexture(int /*<<< orphan*/, int);
int /*<<< orphan*/ glTexEnvf(int /*<<< orphan*/, int /*<<< orphan*/,
                             int /*<<< orphan*/);
int /*<<< orphan*/ glTexParameterf(int /*<<< orphan*/, int /*<<< orphan*/,
                                   int /*<<< orphan*/);
int /*<<< orphan*/ gluBuild2DMipmaps(int /*<<< orphan*/, int, int, int,
                                     int /*<<< orphan*/, int /*<<< orphan*/,
                                     int **);
void textureInit(void) {
  static int width = 8, height = 8;
  static GLubyte tex1[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
                           0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
                           0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
                           0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
  GLubyte tex[64][3];
  GLint i, j;
  glBindTexture(GL_TEXTURE_2D, 1);
  for (i = 0; i < height; i++) {
    for (j = 0; j < width; j++) {
      int p = i * width + j;
      if (tex1[(height - i - 1) * width + j]) {
        tex[p][0] = 255;
        tex[p][1] = 0;
        tex[p][2] = 0;
      } else {
        tex[p][0] = 255;
        tex[p][1] = 255;
        tex[p][2] = 255;
      }
    }
  }
  glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_DECAL);
  gluBuild2DMipmaps(GL_TEXTURE_2D, 3, width, height, GL_RGB, GL_UNSIGNED_BYTE,
                    tex);
  glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
  glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER,
                  GL_LINEAR_MIPMAP_LINEAR);
}


x86 assembly (clang, -O0):
<textureInit>:
push   %rbp
mov    %rsp,%rbp
sub    $0x320,%rsp
mov    0x2e5e(%rip),%rax
mov    (%rax),%edi
mov    $0x1,%esi
call   1050 <glBindTexture@plt>
movl   $0x0,-0x304(%rbp)
mov    -0x304(%rbp),%eax
cmp    0x2ee0(%rip),%eax
jge    12bc <textureInit+0x17c>
movl   $0x0,-0x308(%rbp)
mov    -0x308(%rbp),%eax
cmp    0x2ec0(%rip),%eax
jge    12a3 <textureInit+0x163>
mov    -0x304(%rbp),%eax
imul   0x2ead(%rip),%eax
add    -0x308(%rbp),%eax
mov    %eax,-0x30c(%rbp)
mov    0x2e9f(%rip),%eax
sub    -0x304(%rbp),%eax
sub    $0x1,%eax
imul   0x2e8b(%rip),%eax
add    -0x308(%rbp),%eax
movslq %eax,%rcx
lea    0x2e8b(%rip),%rax
cmpl   $0x0,(%rax,%rcx,4)
je     1237 <textureInit+0xf7>
movslq -0x30c(%rbp),%rcx
lea    -0x300(%rbp),%rax
imul   $0xc,%rcx,%rcx
add    %rcx,%rax
movl   $0xff,(%rax)
movslq -0x30c(%rbp),%rcx
lea    -0x300(%rbp),%rax
imul   $0xc,%rcx,%rcx
add    %rcx,%rax
movl   $0x0,0x4(%rax)
movslq -0x30c(%rbp),%rcx
lea    -0x300(%rbp),%rax
imul   $0xc,%rcx,%rcx
add    %rcx,%rax
movl   $0x0,0x8(%rax)
jmp    128a <textureInit+0x14a>
movslq -0x30c(%rbp),%rcx
lea    -0x300(%rbp),%rax
imul   $0xc,%rcx,%rcx
add    %rcx,%rax
movl   $0xff,(%rax)
movslq -0x30c(%rbp),%rcx
lea    -0x300(%rbp),%rax
imul   $0xc,%rcx,%rcx
add    %rcx,%rax
movl   $0xff,0x4(%rax)
movslq -0x30c(%rbp),%rcx
lea    -0x300(%rbp),%rax
imul   $0xc,%rcx,%rcx
add    %rcx,%rax
movl   $0xff,0x8(%rax)
jmp    128f <textureInit+0x14f>
mov    -0x308(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x308(%rbp)
jmp    1184 <textureInit+0x44>
jmp    12a8 <textureInit+0x168>
mov    -0x304(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x304(%rbp)
jmp    1168 <textureInit+0x28>
mov    0x2d05(%rip),%rax
mov    (%rax),%edi
mov    0x2cf4(%rip),%rax
mov    (%rax),%esi
mov    0x2d23(%rip),%rax
mov    (%rax),%edx
call   1030 <glTexEnvf@plt>
mov    0x2ccd(%rip),%rax
mov    (%rax),%edi
mov    0x2d65(%rip),%edx
mov    0x2d63(%rip),%ecx
mov    0x2cf0(%rip),%rax
mov    (%rax),%r8d
mov    0x2c9e(%rip),%rax
mov    (%rax),%r9d
lea    -0x300(%rbp),%rax
mov    $0x3,%esi
mov    %rax,(%rsp)
call   1060 <gluBuild2DMipmaps@plt>
mov    0x2c8f(%rip),%rax
mov    (%rax),%edi
mov    0x2c6e(%rip),%rax
mov    (%rax),%esi
mov    0x2c9d(%rip),%rax
mov    (%rax),%edx
call   1040 <glTexParameterf@plt>
mov    0x2c6f(%rip),%rax
mov    (%rax),%edi
mov    0x2c8e(%rip),%rax
mov    (%rax),%esi
mov    0x2c55(%rip),%rax
mov    (%rax),%edx
call   1040 <glTexParameterf@plt>
add    $0x320,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<textureInit>:
push   %rbx
sub    $0x310,%rsp
mov    0x2e61(%rip),%rbx
mov    (%rbx),%edi
mov    $0x1,%esi
call   1050 <glBindTexture@plt>
lea    0x6c(%rsp),%rax
mov    $0x100,%ecx
lea    0xe94(%rip),%rdx
mov    $0xff,%esi
cs nopw 0x0(%rax,%rax,1)
nopl   0x0(%rax,%rax,1)
cmpl   $0x0,-0x20(%rcx,%rdx,1)
mov    $0x0,%edi
cmove  %esi,%edi
movl   $0xff,-0x5c(%rax)
mov    %edi,-0x58(%rax)
mov    %edi,-0x54(%rax)
cmpl   $0x0,-0x1c(%rcx,%rdx,1)
mov    $0x0,%edi
cmove  %esi,%edi
movl   $0xff,-0x50(%rax)
mov    %edi,-0x4c(%rax)
mov    %edi,-0x48(%rax)
cmpl   $0x0,-0x18(%rcx,%rdx,1)
mov    $0x0,%edi
cmove  %esi,%edi
movl   $0xff,-0x44(%rax)
mov    %edi,-0x40(%rax)
mov    %edi,-0x3c(%rax)
cmpl   $0x0,-0x14(%rcx,%rdx,1)
mov    $0x0,%edi
cmove  %esi,%edi
movl   $0xff,-0x38(%rax)
mov    %edi,-0x34(%rax)
mov    %edi,-0x30(%rax)
cmpl   $0x0,-0x10(%rcx,%rdx,1)
mov    $0x0,%edi
cmove  %esi,%edi
movl   $0xff,-0x2c(%rax)
mov    %edi,-0x28(%rax)
mov    %edi,-0x24(%rax)
cmpl   $0x0,-0xc(%rcx,%rdx,1)
mov    $0x0,%edi
cmove  %esi,%edi
movl   $0xff,-0x20(%rax)
mov    %edi,-0x1c(%rax)
mov    %edi,-0x18(%rax)
cmpl   $0x0,-0x8(%rcx,%rdx,1)
mov    $0x0,%edi
cmove  %esi,%edi
movl   $0xff,-0x14(%rax)
mov    %edi,-0x10(%rax)
mov    %edi,-0xc(%rax)
cmpl   $0x0,-0x4(%rcx,%rdx,1)
mov    $0x0,%edi
cmove  %esi,%edi
movl   $0xff,-0x8(%rax)
mov    %edi,-0x4(%rax)
mov    %edi,(%rax)
add    $0x60,%rax
add    $0xffffffffffffffe0,%rcx
jne    1180 <textureInit+0x40>
mov    0x2d64(%rip),%rax
mov    (%rax),%edi
mov    0x2d53(%rip),%rax
mov    (%rax),%esi
mov    0x2d82(%rip),%rax
mov    (%rax),%edx
call   1030 <glTexEnvf@plt>
mov    (%rbx),%edi
mov    0x2d62(%rip),%rax
mov    (%rax),%r8d
mov    0x2d10(%rip),%rax
mov    (%rax),%r9d
lea    0x10(%rsp),%rax
mov    %rax,(%rsp)
mov    $0x3,%esi
mov    $0x8,%edx
mov    $0x8,%ecx
call   1060 <gluBuild2DMipmaps@plt>
mov    (%rbx),%edi
mov    0x2cdf(%rip),%rax
mov    (%rax),%esi
mov    0x2d0e(%rip),%rax
mov    (%rax),%edx
call   1040 <glTexParameterf@plt>
mov    (%rbx),%edi
mov    0x2d06(%rip),%rax
mov    (%rax),%esi
mov    0x2ccd(%rip),%rax
mov    (%rax),%edx
call   1040 <glTexParameterf@plt>
add    $0x310,%rsp
pop    %rbx
ret

LLVM IR (-O0):
@textureInit.width = internal global i32 8
@textureInit.height = internal global i32 8
@textureInit.tex1 = internal global <{ [54 x i32], [10 x i32] }> <{ [54 x i32] [i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 1, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 1, i32 1, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 1, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 1, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 1, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 1, i32 1, i32 1], [10 x i32] zeroinitializer }>
@GL_TEXTURE_2D = global i32 0
@GL_TEXTURE_ENV = global i32 0
@GL_TEXTURE_ENV_MODE = global i32 0
@GL_DECAL = global i32 0
@GL_RGB = global i32 0
@GL_UNSIGNED_BYTE = global i32 0
@GL_TEXTURE_MAG_FILTER = global i32 0
@GL_LINEAR = global i32 0
@GL_TEXTURE_MIN_FILTER = global i32 0
@GL_LINEAR_MIPMAP_LINEAR = global i32 0
define void @textureInit() {
%1 = alloca [64 x [3 x i32]]
%2 = alloca i32
%3 = alloca i32
%4 = alloca i32
%5 = load i32, i32* @GL_TEXTURE_2D
%6 = call i32 @glBindTexture(i32 %5, i32 1)
store i32 0, i32* %2
br label %7
7: ; preds = %65, %0
%8 = load i32, i32* %2
%9 = load i32, i32* @textureInit.height
%10 = icmp slt i32 %8, %9
br i1 %10, label %11, label %68
11: ; preds = %7
store i32 0, i32* %3
br label %12
12: ; preds = %61, %11
%13 = load i32, i32* %3
%14 = load i32, i32* @textureInit.width
%15 = icmp slt i32 %13, %14
br i1 %15, label %16, label %64
16: ; preds = %12
%17 = load i32, i32* %2
%18 = load i32, i32* @textureInit.width
%19 = mul nsw i32 %17, %18
%20 = load i32, i32* %3
%21 = add nsw i32 %19, %20
store i32 %21, i32* %4
%22 = load i32, i32* @textureInit.height
%23 = load i32, i32* %2
%24 = sub nsw i32 %22, %23
%25 = sub nsw i32 %24, 1
%26 = load i32, i32* @textureInit.width
%27 = mul nsw i32 %25, %26
%28 = load i32, i32* %3
%29 = add nsw i32 %27, %28
%30 = sext i32 %29 to i64
%31 = getelementptr inbounds [64 x i32], [64 x i32]* bitcast (<{ [54 x i32], [10 x i32] }>* @textureInit.tex1 to [64 x i32]*), i64 0, i64 %30
%32 = load i32, i32* %31
%33 = icmp ne i32 %32, 0
br i1 %33, label %34, label %47
34: ; preds = %16
%35 = load i32, i32* %4
%36 = sext i32 %35 to i64
%37 = getelementptr inbounds [64 x [3 x i32]], [64 x [3 x i32]]* %1, i64 0, i64 %36
%38 = getelementptr inbounds [3 x i32], [3 x i32]* %37, i64 0, i64 0
store i32 255, i32* %38
%39 = load i32, i32* %4
%40 = sext i32 %39 to i64
%41 = getelementptr inbounds [64 x [3 x i32]], [64 x [3 x i32]]* %1, i64 0, i64 %40
%42 = getelementptr inbounds [3 x i32], [3 x i32]* %41, i64 0, i64 1
store i32 0, i32* %42
%43 = load i32, i32* %4
%44 = sext i32 %43 to i64
%45 = getelementptr inbounds [64 x [3 x i32]], [64 x [3 x i32]]* %1, i64 0, i64 %44
%46 = getelementptr inbounds [3 x i32], [3 x i32]* %45, i64 0, i64 2
store i32 0, i32* %46
br label %60
47: ; preds = %16
%48 = load i32, i32* %4
%49 = sext i32 %48 to i64
%50 = getelementptr inbounds [64 x [3 x i32]], [64 x [3 x i32]]* %1, i64 0, i64 %49
%51 = getelementptr inbounds [3 x i32], [3 x i32]* %50, i64 0, i64 0
store i32 255, i32* %51
%52 = load i32, i32* %4
%53 = sext i32 %52 to i64
%54 = getelementptr inbounds [64 x [3 x i32]], [64 x [3 x i32]]* %1, i64 0, i64 %53
%55 = getelementptr inbounds [3 x i32], [3 x i32]* %54, i64 0, i64 1
store i32 255, i32* %55
%56 = load i32, i32* %4
%57 = sext i32 %56 to i64
%58 = getelementptr inbounds [64 x [3 x i32]], [64 x [3 x i32]]* %1, i64 0, i64 %57
%59 = getelementptr inbounds [3 x i32], [3 x i32]* %58, i64 0, i64 2
store i32 255, i32* %59
br label %60
60: ; preds = %47, %34
br label %61
61: ; preds = %60
%62 = load i32, i32* %3
%63 = add nsw i32 %62, 1
store i32 %63, i32* %3
br label %12
64: ; preds = %12
br label %65
65: ; preds = %64
%66 = load i32, i32* %2
%67 = add nsw i32 %66, 1
store i32 %67, i32* %2
br label %7
68: ; preds = %7
%69 = load i32, i32* @GL_TEXTURE_ENV
%70 = load i32, i32* @GL_TEXTURE_ENV_MODE
%71 = load i32, i32* @GL_DECAL
%72 = call i32 @glTexEnvf(i32 %69, i32 %70, i32 %71)
%73 = load i32, i32* @GL_TEXTURE_2D
%74 = load i32, i32* @textureInit.width
%75 = load i32, i32* @textureInit.height
%76 = load i32, i32* @GL_RGB
%77 = load i32, i32* @GL_UNSIGNED_BYTE
%78 = getelementptr inbounds [64 x [3 x i32]], [64 x [3 x i32]]* %1, i64 0, i64 0
%79 = bitcast [3 x i32]* %78 to i32**
%80 = call i32 @gluBuild2DMipmaps(i32 %73, i32 3, i32 %74, i32 %75, i32 %76, i32 %77, i32** %79)
%81 = load i32, i32* @GL_TEXTURE_2D
%82 = load i32, i32* @GL_TEXTURE_MAG_FILTER
%83 = load i32, i32* @GL_LINEAR
%84 = call i32 @glTexParameterf(i32 %81, i32 %82, i32 %83)
%85 = load i32, i32* @GL_TEXTURE_2D
%86 = load i32, i32* @GL_TEXTURE_MIN_FILTER
%87 = load i32, i32* @GL_LINEAR_MIPMAP_LINEAR
%88 = call i32 @glTexParameterf(i32 %85, i32 %86, i32 %87)
ret void
}

LLVM IR (-O2):
@textureInit.tex1 = internal unnamed_addr constant <{ [54 x i32], [10 x i32] }> <{ [54 x i32] [i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 1, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 1, i32 1, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 1, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 1, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 1, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 1, i32 1, i32 1], [10 x i32] zeroinitializer }>
@GL_TEXTURE_2D = global i32 0
@GL_TEXTURE_ENV = global i32 0
@GL_TEXTURE_ENV_MODE = global i32 0
@GL_DECAL = global i32 0
@GL_RGB = global i32 0
@GL_UNSIGNED_BYTE = global i32 0
@GL_TEXTURE_MAG_FILTER = global i32 0
@GL_LINEAR = global i32 0
@GL_TEXTURE_MIN_FILTER = global i32 0
@GL_LINEAR_MIPMAP_LINEAR = global i32 0
define void @textureInit() {
%1 = alloca [64 x [3 x i32]]
%2 = bitcast [64 x [3 x i32]]* %1 to i8*
%3 = load i32, i32* @GL_TEXTURE_2D
%4 = tail call i32 @glBindTexture(i32 %3, i32 1)
br label %5
5: ; preds = %0, %5
%6 = phi i64 [ 0, %0 ], [ %80, %5 ]
%7 = shl nsw i64 %6, 3
%8 = mul nsw i64 %6, -8
%9 = add nsw i64 %8, 56
%10 = getelementptr inbounds [64 x i32], [64 x i32]* bitcast (<{ [54 x i32], [10 x i32] }>* @textureInit.tex1 to [64 x i32]*), i64 0, i64 %9
%11 = load i32, i32* %10
%12 = icmp eq i32 %11, 0
%13 = select i1 %12, i32 255, i32 0
%14 = getelementptr inbounds [64 x [3 x i32]], [64 x [3 x i32]]* %1, i64 0, i64 %7, i64 0
store i32 255, i32* %14
%15 = getelementptr inbounds [64 x [3 x i32]], [64 x [3 x i32]]* %1, i64 0, i64 %7, i64 1
store i32 %13, i32* %15
%16 = getelementptr inbounds [64 x [3 x i32]], [64 x [3 x i32]]* %1, i64 0, i64 %7, i64 2
store i32 %13, i32* %16
%17 = or i64 %7, 1
%18 = add nsw i64 %8, 57
%19 = getelementptr inbounds [64 x i32], [64 x i32]* bitcast (<{ [54 x i32], [10 x i32] }>* @textureInit.tex1 to [64 x i32]*), i64 0, i64 %18
%20 = load i32, i32* %19
%21 = icmp eq i32 %20, 0
%22 = select i1 %21, i32 255, i32 0
%23 = getelementptr inbounds [64 x [3 x i32]], [64 x [3 x i32]]* %1, i64 0, i64 %17, i64 0
store i32 255, i32* %23
%24 = getelementptr inbounds [64 x [3 x i32]], [64 x [3 x i32]]* %1, i64 0, i64 %17, i64 1
store i32 %22, i32* %24
%25 = getelementptr inbounds [64 x [3 x i32]], [64 x [3 x i32]]* %1, i64 0, i64 %17, i64 2
store i32 %22, i32* %25
%26 = or i64 %7, 2
%27 = add nsw i64 %8, 58
%28 = getelementptr inbounds [64 x i32], [64 x i32]* bitcast (<{ [54 x i32], [10 x i32] }>* @textureInit.tex1 to [64 x i32]*), i64 0, i64 %27
%29 = load i32, i32* %28
%30 = icmp eq i32 %29, 0
%31 = select i1 %30, i32 255, i32 0
%32 = getelementptr inbounds [64 x [3 x i32]], [64 x [3 x i32]]* %1, i64 0, i64 %26, i64 0
store i32 255, i32* %32
%33 = getelementptr inbounds [64 x [3 x i32]], [64 x [3 x i32]]* %1, i64 0, i64 %26, i64 1
store i32 %31, i32* %33
%34 = getelementptr inbounds [64 x [3 x i32]], [64 x [3 x i32]]* %1, i64 0, i64 %26, i64 2
store i32 %31, i32* %34
%35 = or i64 %7, 3
%36 = add nsw i64 %8, 59
%37 = getelementptr inbounds [64 x i32], [64 x i32]* bitcast (<{ [54 x i32], [10 x i32] }>* @textureInit.tex1 to [64 x i32]*), i64 0, i64 %36
%38 = load i32, i32* %37
%39 = icmp eq i32 %38, 0
%40 = select i1 %39, i32 255, i32 0
%41 = getelementptr inbounds [64 x [3 x i32]], [64 x [3 x i32]]* %1, i64 0, i64 %35, i64 0
store i32 255, i32* %41
%42 = getelementptr inbounds [64 x [3 x i32]], [64 x [3 x i32]]* %1, i64 0, i64 %35, i64 1
store i32 %40, i32* %42
%43 = getelementptr inbounds [64 x [3 x i32]], [64 x [3 x i32]]* %1, i64 0, i64 %35, i64 2
store i32 %40, i32* %43
%44 = or i64 %7, 4
%45 = add nsw i64 %8, 60
%46 = getelementptr inbounds [64 x i32], [64 x i32]* bitcast (<{ [54 x i32], [10 x i32] }>* @textureInit.tex1 to [64 x i32]*), i64 0, i64 %45
%47 = load i32, i32* %46
%48 = icmp eq i32 %47, 0
%49 = select i1 %48, i32 255, i32 0
%50 = getelementptr inbounds [64 x [3 x i32]], [64 x [3 x i32]]* %1, i64 0, i64 %44, i64 0
store i32 255, i32* %50
%51 = getelementptr inbounds [64 x [3 x i32]], [64 x [3 x i32]]* %1, i64 0, i64 %44, i64 1
store i32 %49, i32* %51
%52 = getelementptr inbounds [64 x [3 x i32]], [64 x [3 x i32]]* %1, i64 0, i64 %44, i64 2
store i32 %49, i32* %52
%53 = or i64 %7, 5
%54 = add nsw i64 %8, 61
%55 = getelementptr inbounds [64 x i32], [64 x i32]* bitcast (<{ [54 x i32], [10 x i32] }>* @textureInit.tex1 to [64 x i32]*), i64 0, i64 %54
%56 = load i32, i32* %55
%57 = icmp eq i32 %56, 0
%58 = select i1 %57, i32 255, i32 0
%59 = getelementptr inbounds [64 x [3 x i32]], [64 x [3 x i32]]* %1, i64 0, i64 %53, i64 0
store i32 255, i32* %59
%60 = getelementptr inbounds [64 x [3 x i32]], [64 x [3 x i32]]* %1, i64 0, i64 %53, i64 1
store i32 %58, i32* %60
%61 = getelementptr inbounds [64 x [3 x i32]], [64 x [3 x i32]]* %1, i64 0, i64 %53, i64 2
store i32 %58, i32* %61
%62 = or i64 %7, 6
%63 = add nsw i64 %8, 62
%64 = getelementptr inbounds [64 x i32], [64 x i32]* bitcast (<{ [54 x i32], [10 x i32] }>* @textureInit.tex1 to [64 x i32]*), i64 0, i64 %63
%65 = load i32, i32* %64
%66 = icmp eq i32 %65, 0
%67 = select i1 %66, i32 255, i32 0
%68 = getelementptr inbounds [64 x [3 x i32]], [64 x [3 x i32]]* %1, i64 0, i64 %62, i64 0
store i32 255, i32* %68
%69 = getelementptr inbounds [64 x [3 x i32]], [64 x [3 x i32]]* %1, i64 0, i64 %62, i64 1
store i32 %67, i32* %69
%70 = getelementptr inbounds [64 x [3 x i32]], [64 x [3 x i32]]* %1, i64 0, i64 %62, i64 2
store i32 %67, i32* %70
%71 = or i64 %7, 7
%72 = add nsw i64 %8, 63
%73 = getelementptr inbounds [64 x i32], [64 x i32]* bitcast (<{ [54 x i32], [10 x i32] }>* @textureInit.tex1 to [64 x i32]*), i64 0, i64 %72
%74 = load i32, i32* %73
%75 = icmp eq i32 %74, 0
%76 = select i1 %75, i32 255, i32 0
%77 = getelementptr inbounds [64 x [3 x i32]], [64 x [3 x i32]]* %1, i64 0, i64 %71, i64 0
store i32 255, i32* %77
%78 = getelementptr inbounds [64 x [3 x i32]], [64 x [3 x i32]]* %1, i64 0, i64 %71, i64 1
store i32 %76, i32* %78
%79 = getelementptr inbounds [64 x [3 x i32]], [64 x [3 x i32]]* %1, i64 0, i64 %71, i64 2
store i32 %76, i32* %79
%80 = add nuw nsw i64 %6, 1
%81 = icmp eq i64 %80, 8
br i1 %81, label %82, label %5
82: ; preds = %5
%83 = load i32, i32* @GL_TEXTURE_ENV
%84 = load i32, i32* @GL_TEXTURE_ENV_MODE
%85 = load i32, i32* @GL_DECAL
%86 = tail call i32 @glTexEnvf(i32 %83, i32 %84, i32 %85)
%87 = load i32, i32* @GL_TEXTURE_2D
%88 = load i32, i32* @GL_RGB
%89 = load i32, i32* @GL_UNSIGNED_BYTE
%90 = bitcast [64 x [3 x i32]]* %1 to i32**
%91 = call i32 @gluBuild2DMipmaps(i32 %87, i32 3, i32 8, i32 8, i32 %88, i32 %89, i32** %90)
%92 = load i32, i32* @GL_TEXTURE_2D
%93 = load i32, i32* @GL_TEXTURE_MAG_FILTER
%94 = load i32, i32* @GL_LINEAR
%95 = call i32 @glTexParameterf(i32 %92, i32 %93, i32 %94)
%96 = load i32, i32* @GL_TEXTURE_2D
%97 = load i32, i32* @GL_TEXTURE_MIN_FILTER
%98 = load i32, i32* @GL_LINEAR_MIPMAP_LINEAR
%99 = call i32 @glTexParameterf(i32 %96, i32 %97, i32 %98)
ret void
}