; LLVM IR from Eukky/TRender :: lib/glew/src (visualinfo)

; Unoptimized IR (clang -disable-llvm-passes):
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-linux-gnu"

%struct.GLContextStruct = type { ptr, ptr, ptr, i64, i64 }
%struct.anon = type { ptr, ptr, i32, i32, i32, i32, ptr, i64, i64, i64, i32, ptr, i32, i32, i32, i32, i32, ptr, i32, i32, ptr, ptr, i32, i64, i64, ptr, ptr, ptr, ptr, i32, ptr, ptr, ptr, i32, i32, ptr, i64, i64, i32, i32, ptr, ptr, i32, ptr }

@verbose = external dso_local global i32, align 4
@file = external dso_local global ptr, align 8
@__glewXGetFBConfigs = external global ptr, align 8
@.str.15 = external hidden unnamed_addr constant [94 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [94 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [94 x i8], align 1
@__glewXGetFBConfigAttrib = external global ptr, align 8
@.str.18 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [4 x i8], align 1
@__GLXEW_NV_float_buffer = external global i8, align 1
@.str.34 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.43 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.44 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.45 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.46 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.47 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.48 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.49 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.50 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.51 = external hidden unnamed_addr constant [8 x i8], align 1

; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite)
declare void @llvm.lifetime.start.p0(i64 immarg, ptr nocapture) #0

; Function Attrs: nounwind
declare i32 @fprintf(ptr noundef, ptr noundef, ...) #1

; Function Attrs: nounwind uwtable
define dso_local void @VisualInfo(ptr noundef %0) #2 {
  %2 = alloca ptr, align 8
  %3 = alloca i32, align 4
  %4 = alloca ptr, align 8
  %5 = alloca i32, align 4
  %6 = alloca i32, align 4
  %7 = alloca i32, align 4
  %8 = alloca i32, align 4
  %9 = alloca i32, align 4
  store ptr %0, ptr %2, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %3) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %4) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %5) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %6) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %7) #3
  %10 = load ptr, ptr @__glewXGetFBConfigs, align 8, !tbaa !5
  %11 = load ptr, ptr %2, align 8, !tbaa !5
  %12 = getelementptr inbounds %struct.GLContextStruct, ptr %11, i32 0, i32 0
  %13 = load ptr, ptr %12, align 8, !tbaa !9
  %14 = load ptr, ptr %2, align 8, !tbaa !5
  %15 = getelementptr inbounds %struct.GLContextStruct, ptr %14, i32 0, i32 0
  %16 = load ptr, ptr %15, align 8, !tbaa !9
  %17 = getelementptr inbounds %struct.anon, ptr %16, i32 0, i32 33
  %18 = load i32, ptr %17, align 8, !tbaa !12
  %19 = call ptr %10(ptr noundef %13, i32 noundef %18, ptr noundef %3)
  store ptr %19, ptr %4, align 8, !tbaa !5
  %20 = load ptr, ptr %4, align 8, !tbaa !5
  %21 = icmp ne ptr %20, null
  br i1 %21, label %22, label %808

22:                                               ; preds = %1
  %23 = load i32, ptr @verbose, align 4, !tbaa !15
  %24 = icmp ne i32 %23, 0
  br i1 %24, label %807, label %25

25:                                               ; preds = %22
  %26 = load ptr, ptr @file, align 8, !tbaa !5
  %27 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %26, ptr noundef @.str.15) #3
  %28 = load ptr, ptr @file, align 8, !tbaa !5
  %29 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %28, ptr noundef @.str.16) #3
  %30 = load ptr, ptr @file, align 8, !tbaa !5
  %31 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %30, ptr noundef @.str.17) #3
  %32 = load ptr, ptr @file, align 8, !tbaa !5
  %33 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %32, ptr noundef @.str.15) #3
  store i32 0, ptr %7, align 4, !tbaa !15
  br label %34

34:                                               ; preds = %795, %25
  %35 = load i32, ptr %7, align 4, !tbaa !15
  %36 = load i32, ptr %3, align 4, !tbaa !15
  %37 = icmp slt i32 %35, %36
  br i1 %37, label %38, label %798

38:                                               ; preds = %34
  %39 = load ptr, ptr @__glewXGetFBConfigAttrib, align 8, !tbaa !5
  %40 = load ptr, ptr %2, align 8, !tbaa !5
  %41 = getelementptr inbounds %struct.GLContextStruct, ptr %40, i32 0, i32 0
  %42 = load ptr, ptr %41, align 8, !tbaa !9
  %43 = load ptr, ptr %4, align 8, !tbaa !5
  %44 = load i32, ptr %7, align 4, !tbaa !15
  %45 = sext i32 %44 to i64
  %46 = getelementptr inbounds ptr, ptr %43, i64 %45
  %47 = load ptr, ptr %46, align 8, !tbaa !5
  %48 = call i32 %39(ptr noundef %42, ptr noundef %47, i32 noundef 32787, ptr noundef %5)
  store i32 %48, ptr %6, align 4, !tbaa !15
  %49 = load i32, ptr %6, align 4, !tbaa !15
  %50 = icmp ne i32 %49, 0
  br i1 %50, label %51, label %54

51:                                               ; preds = %38
  %52 = load ptr, ptr @file, align 8, !tbaa !5
  %53 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %52, ptr noundef @.str.18) #3
  br label %58

54:                                               ; preds = %38
  %55 = load ptr, ptr @file, align 8, !tbaa !5
  %56 = load i32, ptr %5, align 4, !tbaa !15
  %57 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %55, ptr noundef @.str.19, i32 noundef %56) #3
  br label %58

58:                                               ; preds = %54, %51
  %59 = load ptr, ptr @__glewXGetFBConfigAttrib, align 8, !tbaa !5
  %60 = load ptr, ptr %2, align 8, !tbaa !5
  %61 = getelementptr inbounds %struct.GLContextStruct, ptr %60, i32 0, i32 0
  %62 = load ptr, ptr %61, align 8, !tbaa !9
  %63 = load ptr, ptr %4, align 8, !tbaa !5
  %64 = load i32, ptr %7, align 4, !tbaa !15
  %65 = sext i32 %64 to i64
  %66 = getelementptr inbounds ptr, ptr %63, i64 %65
  %67 = load ptr, ptr %66, align 8, !tbaa !5
  %68 = call i32 %59(ptr noundef %62, ptr noundef %67, i32 noundef 32784, ptr noundef %5)
  store i32 %68, ptr %6, align 4, !tbaa !15
  %69 = load i32, ptr %6, align 4, !tbaa !15
  %70 = icmp ne i32 %69, 0
  br i1 %70, label %71, label %74

71:                                               ; preds = %58
  %72 = load ptr, ptr @file, align 8, !tbaa !5
  %73 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %72, ptr noundef @.str.20) #3
  br label %109

74:                                               ; preds = %58
  %75 = load i32, ptr %5, align 4, !tbaa !15
  %76 = and i32 %75, 1
  %77 = icmp ne i32 %76, 0
  br i1 %77, label %78, label %89

78:                                               ; preds = %74
  %79 = load i32, ptr %5, align 4, !tbaa !15
  %80 = and i32 %79, 4
  %81 = icmp ne i32 %80, 0
  br i1 %81, label %82, label %85

82:                                               ; preds = %78
  %83 = load ptr, ptr @file, align 8, !tbaa !5
  %84 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %83, ptr noundef @.str.21) #3
  br label %88

85:                                               ; preds = %78
  %86 = load ptr, ptr @file, align 8, !tbaa !5
  %87 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %86, ptr noundef @.str.22) #3
  br label %88

88:                                               ; preds = %85, %82
  br label %108

89:                                               ; preds = %74
  %90 = load i32, ptr %5, align 4, !tbaa !15
  %91 = and i32 %90, 4
  %92 = icmp ne i32 %91, 0
  br i1 %92, label %93, label %96

93:                                               ; preds = %89
  %94 = load ptr, ptr @file, align 8, !tbaa !5
  %95 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %94, ptr noundef @.str.23) #3
  br label %107

96:                                               ; preds = %89
  %97 = load i32, ptr %5, align 4, !tbaa !15
  %98 = and i32 %97, 2
  %99 = icmp ne i32 %98, 0
  br i1 %99, label %100, label %103

100:                                              ; preds = %96
  %101 = load ptr, ptr @file, align 8, !tbaa !5
  %102 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %101, ptr noundef @.str.24) #3
  br label %106

103:                                              ; preds = %96
  %104 = load ptr, ptr @file, align 8, !tbaa !5
  %105 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %104, ptr noundef @.str.20) #3
  br label %106

106:                                              ; preds = %103, %100
  br label %107

107:                                              ; preds = %106, %93
  br label %108

108:                                              ; preds = %107, %88
  br label %109

109:                                              ; preds = %108, %71
  %110 = load ptr, ptr @__glewXGetFBConfigAttrib, align 8, !tbaa !5
  %111 = load ptr, ptr %2, align 8, !tbaa !5
  %112 = getelementptr inbounds %struct.GLContextStruct, ptr %111, i32 0, i32 0
  %113 = load ptr, ptr %112, align 8, !tbaa !9
  %114 = load ptr, ptr %4, align 8, !tbaa !5
  %115 = load i32, ptr %7, align 4, !tbaa !15
  %116 = sext i32 %115 to i64
  %117 = getelementptr inbounds ptr, ptr %114, i64 %116
  %118 = load ptr, ptr %117, align 8, !tbaa !5
  %119 = call i32 %110(ptr noundef %113, ptr noundef %118, i32 noundef 32786, ptr noundef %5)
  store i32 %119, ptr %6, align 4, !tbaa !15
  %120 = load i32, ptr %6, align 4, !tbaa !15
  %121 = icmp ne i32 %120, 0
  br i1 %121, label %122, label %125

122:                                              ; preds = %109
  %123 = load ptr, ptr @file, align 8, !tbaa !5
  %124 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %123, ptr noundef @.str.20) #3
  br label %132

125:                                              ; preds = %109
  %126 = load ptr, ptr @file, align 8, !tbaa !5
  %127 = load i32, ptr %5, align 4, !tbaa !15
  %128 = icmp ne i32 %127, 0
  %129 = zext i1 %128 to i64
  %130 = select i1 %128, ptr @.str.25, ptr @.str.26
  %131 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %126, ptr noundef %130) #3
  br label %132

132:                                              ; preds = %125, %122
  %133 = load ptr, ptr @__glewXGetFBConfigAttrib, align 8, !tbaa !5
  %134 = load ptr, ptr %2, align 8, !tbaa !5
  %135 = getelementptr inbounds %struct.GLContextStruct, ptr %134, i32 0, i32 0
  %136 = load ptr, ptr %135, align 8, !tbaa !9
  %137 = load ptr, ptr %4, align 8, !tbaa !5
  %138 = load i32, ptr %7, align 4, !tbaa !15
  %139 = sext i32 %138 to i64
  %140 = getelementptr inbounds ptr, ptr %137, i64 %139
  %141 = load ptr, ptr %140, align 8, !tbaa !5
  %142 = call i32 %133(ptr noundef %136, ptr noundef %141, i32 noundef 34, ptr noundef %5)
  store i32 %142, ptr %6, align 4, !tbaa !15
  %143 = load i32, ptr %6, align 4, !tbaa !15
  %144 = icmp ne i32 %143, 0
  br i1 %144, label %145, label %148

145:                                              ; preds = %132
  %146 = load ptr, ptr @file, align 8, !tbaa !5
  %147 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %146, ptr noundef @.str.20) #3
  br label %200

148:                                              ; preds = %132
  %149 = load i32, ptr %5, align 4, !tbaa !15
  %150 = icmp eq i32 32770, %149
  br i1 %150, label %151, label %154

151:                                              ; preds = %148
  %152 = load ptr, ptr @file, align 8, !tbaa !5
  %153 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %152, ptr noundef @.str.27) #3
  br label %199

154:                                              ; preds = %148
  %155 = load i32, ptr %5, align 4, !tbaa !15
  %156 = icmp eq i32 32771, %155
  br i1 %156, label %157, label %160

157:                                              ; preds = %154
  %158 = load ptr, ptr @file, align 8, !tbaa !5
  %159 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %158, ptr noundef @.str.28) #3
  br label %198

160:                                              ; preds = %154
  %161 = load i32, ptr %5, align 4, !tbaa !15
  %162 = icmp eq i32 32772, %161
  br i1 %162, label %163, label %166

163:                                              ; preds = %160
  %164 = load ptr, ptr @file, align 8, !tbaa !5
  %165 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %164, ptr noundef @.str.29) #3
  br label %197

166:                                              ; preds = %160
  %167 = load i32, ptr %5, align 4, !tbaa !15
  %168 = icmp eq i32 32773, %167
  br i1 %168, label %169, label %172

169:                                              ; preds = %166
  %170 = load ptr, ptr @file, align 8, !tbaa !5
  %171 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %170, ptr noundef @.str.30) #3
  br label %196

172:                                              ; preds = %166
  %173 = load i32, ptr %5, align 4, !tbaa !15
  %174 = icmp eq i32 32774, %173
  br i1 %174, label %175, label %178

175:                                              ; preds = %172
  %176 = load ptr, ptr @file, align 8, !tbaa !5
  %177 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %176, ptr noundef @.str.31) #3
  br label %195

178:                                              ; preds = %172
  %179 = load i32, ptr %5, align 4, !tbaa !15
  %180 = icmp eq i32 32775, %179
  br i1 %180, label %181, label %184

181:                                              ; preds = %178
  %182 = load ptr, ptr @file, align 8, !tbaa !5
  %183 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %182, ptr noundef @.str.32) #3
  br label %194

184:                                              ; preds = %178
  %185 = load i32, ptr %5, align 4, !tbaa !15
  %186 = icmp eq i32 34, %185
  br i1 %186, label %187, label %190

187:                                              ; preds = %184
  %188 = load ptr, ptr @file, align 8, !tbaa !5
  %189 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %188, ptr noundef @.str.33) #3
  br label %193

190:                                              ; preds = %184
  %191 = load ptr, ptr @file, align 8, !tbaa !5
  %192 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %191, ptr noundef @.str.20) #3
  br label %193

193:                                              ; preds = %190, %187
  br label %194

194:                                              ; preds = %193, %181
  br label %195

195:                                              ; preds = %194, %175
  br label %196

196:                                              ; preds = %195, %169
  br label %197

197:                                              ; preds = %196, %163
  br label %198

198:                                              ; preds = %197, %157
  br label %199

199:                                              ; preds = %198, %151
  br label %200

200:                                              ; preds = %199, %145
  %201 = load ptr, ptr @__glewXGetFBConfigAttrib, align 8, !tbaa !5
  %202 = load ptr, ptr %2, align 8, !tbaa !5
  %203 = getelementptr inbounds %struct.GLContextStruct, ptr %202, i32 0, i32 0
  %204 = load ptr, ptr %203, align 8, !tbaa !9
  %205 = load ptr, ptr %4, align 8, !tbaa !5
  %206 = load i32, ptr %7, align 4, !tbaa !15
  %207 = sext i32 %206 to i64
  %208 = getelementptr inbounds ptr, ptr %205, i64 %207
  %209 = load ptr, ptr %208, align 8, !tbaa !5
  %210 = call i32 %201(ptr noundef %204, ptr noundef %209, i32 noundef 32785, ptr noundef %5)
  store i32 %210, ptr %6, align 4, !tbaa !15
  %211 = load i32, ptr %6, align 4, !tbaa !15
  %212 = icmp ne i32 %211, 0
  br i1 %212, label %213, label %216

213:                                              ; preds = %200
  %214 = load ptr, ptr @file, align 8, !tbaa !5
  %215 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %214, ptr noundef @.str.20) #3
  br label %286

216:                                              ; preds = %200
  %217 = load i8, ptr @__GLXEW_NV_float_buffer, align 1, !tbaa !16
  %218 = icmp ne i8 %217, 0
  br i1 %218, label %219, label %258

219:                                              ; preds = %216
  call void @llvm.lifetime.start.p0(i64 4, ptr %8) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %9) #3
  %220 = load ptr, ptr @__glewXGetFBConfigAttrib, align 8, !tbaa !5
  %221 = load ptr, ptr %2, align 8, !tbaa !5
  %222 = getelementptr inbounds %struct.GLContextStruct, ptr %221, i32 0, i32 0
  %223 = load ptr, ptr %222, align 8, !tbaa !9
  %224 = load ptr, ptr %4, align 8, !tbaa !5
  %225 = load i32, ptr %7, align 4, !tbaa !15
  %226 = sext i32 %225 to i64
  %227 = getelementptr inbounds ptr, ptr %224, i64 %226
  %228 = load ptr, ptr %227, align 8, !tbaa !5
  %229 = call i32 %220(ptr noundef %223, ptr noundef %228, i32 noundef 8368, ptr noundef %9)
  store i32 %229, ptr %8, align 4, !tbaa !15
  %230 = load i32, ptr %8, align 4, !tbaa !15
  %231 = icmp eq i32 0, %230
  br i1 %231, label %232, label %238

232:                                              ; preds = %219
  %233 = load i32, ptr %9, align 4, !tbaa !15
  %234 = icmp eq i32 1, %233
  br i1 %234, label %235, label %238

235:                                              ; preds = %232
  %236 = load ptr, ptr @file, align 8, !tbaa !5
  %237 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %236, ptr noundef @.str.34) #3
  br label %257

238:                                              ; preds = %232, %219
  %239 = load i32, ptr %5, align 4, !tbaa !15
  %240 = and i32 %239, 1
  %241 = icmp ne i32 %240, 0
  br i1 %241, label %242, label %245

242:                                              ; preds = %238
  %243 = load ptr, ptr @file, align 8, !tbaa !5
  %244 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %243, ptr noundef @.str.35) #3
  br label %256

245:                                              ; preds = %238
  %246 = load i32, ptr %5, align 4, !tbaa !15
  %247 = and i32 %246, 2
  %248 = icmp ne i32 %247, 0
  br i1 %248, label %249, label %252

249:                                              ; preds = %245
  %250 = load ptr, ptr @file, align 8, !tbaa !5
  %251 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %250, ptr noundef @.str.36) #3
  br label %255

252:                                              ; preds = %245
  %253 = load ptr, ptr @file, align 8, !tbaa !5
  %254 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %253, ptr noundef @.str.20) #3
  br label %255

255:                                              ; preds = %252, %249
  br label %256

256:                                              ; preds = %255, %242
  br label %257

257:                                              ; preds = %256, %235
  call void @llvm.lifetime.end.p0(i64 4, ptr %9) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %8) #3
  br label %285

258:                                              ; preds = %216
  %259 = load i32, ptr %5, align 4, !tbaa !15
  %260 = and i32 %259, 256
  %261 = icmp ne i32 %260, 0
  br i1 %261, label %262, label %265

262:                                              ; preds = %258
  %263 = load ptr, ptr @file, align 8, !tbaa !5
  %264 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %263, ptr noundef @.str.34) #3
  br label %284

265:                                              ; preds = %258
  %266 = load i32, ptr %5, align 4, !tbaa !15
  %267 = and i32 %266, 1
  %268 = icmp ne i32 %267, 0
  br i1 %268, label %269, label %272

269:                                              ; preds = %265
  %270 = load ptr, ptr @file, align 8, !tbaa !5
  %271 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %270, ptr noundef @.str.35) #3
  br label %283

272:                                              ; preds = %265
  %273 = load i32, ptr %5, align 4, !tbaa !15
  %274 = and i32 %273, 2
  %275 = icmp ne i32 %274, 0
  br i1 %275, label %276, label %279

276:                                              ; preds = %272
  %277 = load ptr, ptr @file, align 8, !tbaa !5
  %278 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %277, ptr noundef @.str.36) #3
  br label %282

279:                                              ; preds = %272
  %280 = load ptr, ptr @file, align 8, !tbaa !5
  %281 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %280, ptr noundef @.str.20) #3
  br label %282

282:                                              ; preds = %279, %276
  br label %283

283:                                              ; preds = %282, %269
  br label %284

284:                                              ; preds = %283, %262
  br label %285

285:                                              ; preds = %284, %257
  br label %286

286:                                              ; preds = %285, %213
  %287 = load ptr, ptr @__glewXGetFBConfigAttrib, align 8, !tbaa !5
  %288 = load ptr, ptr %2, align 8, !tbaa !5
  %289 = getelementptr inbounds %struct.GLContextStruct, ptr %288, i32 0, i32 0
  %290 = load ptr, ptr %289, align 8, !tbaa !9
  %291 = load ptr, ptr %4, align 8, !tbaa !5
  %292 = load i32, ptr %7, align 4, !tbaa !15
  %293 = sext i32 %292 to i64
  %294 = getelementptr inbounds ptr, ptr %291, i64 %293
  %295 = load ptr, ptr %294, align 8, !tbaa !5
  %296 = call i32 %287(ptr noundef %290, ptr noundef %295, i32 noundef 5, ptr noundef %5)
  store i32 %296, ptr %6, align 4, !tbaa !15
  %297 = load ptr, ptr @file, align 8, !tbaa !5
  %298 = load i32, ptr %6, align 4, !tbaa !15
  %299 = icmp ne i32 0, %298
  br i1 %299, label %300, label %301

300:                                              ; preds = %286
  br label %306

301:                                              ; preds = %286
  %302 = load i32, ptr %5, align 4, !tbaa !15
  %303 = icmp ne i32 %302, 0
  %304 = zext i1 %303 to i64
  %305 = select i1 %303, i32 121, i32 46
  br label %306

306:                                              ; preds = %301, %300
  %307 = phi i32 [ 63, %300 ], [ %305, %301 ]
  %308 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %297, ptr noundef @.str.37, i32 noundef %307) #3
  %309 = load ptr, ptr @__glewXGetFBConfigAttrib, align 8, !tbaa !5
  %310 = load ptr, ptr %2, align 8, !tbaa !5
  %311 = getelementptr inbounds %struct.GLContextStruct, ptr %310, i32 0, i32 0
  %312 = load ptr, ptr %311, align 8, !tbaa !9
  %313 = load ptr, ptr %4, align 8, !tbaa !5
  %314 = load i32, ptr %7, align 4, !tbaa !15
  %315 = sext i32 %314 to i64
  %316 = getelementptr inbounds ptr, ptr %313, i64 %315
  %317 = load ptr, ptr %316, align 8, !tbaa !5
  %318 = call i32 %309(ptr noundef %312, ptr noundef %317, i32 noundef 6, ptr noundef %5)
  store i32 %318, ptr %6, align 4, !tbaa !15
  %319 = load ptr, ptr @file, align 8, !tbaa !5
  %320 = load i32, ptr %6, align 4, !tbaa !15
  %321 = icmp ne i32 0, %320
  br i1 %321, label %322, label %323

322:                                              ; preds = %306
  br label %328

323:                                              ; preds = %306
  %324 = load i32, ptr %5, align 4, !tbaa !15
  %325 = icmp ne i32 %324, 0
  %326 = zext i1 %325 to i64
  %327 = select i1 %325, i32 121, i32 46
  br label %328

328:                                              ; preds = %323, %322
  %329 = phi i32 [ 63, %322 ], [ %327, %323 ]
  %330 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %319, ptr noundef @.str.37, i32 noundef %329) #3
  %331 = load ptr, ptr @__glewXGetFBConfigAttrib, align 8, !tbaa !5
  %332 = load ptr, ptr %2, align 8, !tbaa !5
  %333 = getelementptr inbounds %struct.GLContextStruct, ptr %332, i32 0, i32 0
  %334 = load ptr, ptr %333, align 8, !tbaa !9
  %335 = load ptr, ptr %4, align 8, !tbaa !5
  %336 = load i32, ptr %7, align 4, !tbaa !15
  %337 = sext i32 %336 to i64
  %338 = getelementptr inbounds ptr, ptr %335, i64 %337
  %339 = load ptr, ptr %338, align 8, !tbaa !5
  %340 = call i32 %331(ptr noundef %334, ptr noundef %339, i32 noundef 3, ptr noundef %5)
  store i32 %340, ptr %6, align 4, !tbaa !15
  %341 = load i32, ptr %6, align 4, !tbaa !15
  %342 = icmp ne i32 0, %341
  br i1 %342, label %343, label %346

343:                                              ; preds = %328
  %344 = load ptr, ptr @file, align 8, !tbaa !5
  %345 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %344, ptr noundef @.str.20) #3
  br label %350

346:                                              ; preds = %328
  %347 = load ptr, ptr @file, align 8, !tbaa !5
  %348 = load i32, ptr %5, align 4, !tbaa !15
  %349 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %347, ptr noundef @.str.38, i32 noundef %348) #3
  br label %350

350:                                              ; preds = %346, %343
  %351 = load ptr, ptr @__glewXGetFBConfigAttrib, align 8, !tbaa !5
  %352 = load ptr, ptr %2, align 8, !tbaa !5
  %353 = getelementptr inbounds %struct.GLContextStruct, ptr %352, i32 0, i32 0
  %354 = load ptr, ptr %353, align 8, !tbaa !9
  %355 = load ptr, ptr %4, align 8, !tbaa !5
  %356 = load i32, ptr %7, align 4, !tbaa !15
  %357 = sext i32 %356 to i64
  %358 = getelementptr inbounds ptr, ptr %355, i64 %357
  %359 = load ptr, ptr %358, align 8, !tbaa !5
  %360 = call i32 %351(ptr noundef %354, ptr noundef %359, i32 noundef 35, ptr noundef %5)
  store i32 %360, ptr %6, align 4, !tbaa !15
  %361 = load i32, ptr %6, align 4, !tbaa !15
  %362 = icmp ne i32 0, %361
  br i1 %362, label %363, label %366

363:                                              ; preds = %350
  %364 = load ptr, ptr @file, align 8, !tbaa !5
  %365 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %364, ptr noundef @.str.39) #3
  br label %390

366:                                              ; preds = %350
  %367 = load i32, ptr %5, align 4, !tbaa !15
  %368 = icmp eq i32 32776, %367
  br i1 %368, label %369, label %372

369:                                              ; preds = %366
  %370 = load ptr, ptr @file, align 8, !tbaa !5
  %371 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %370, ptr noundef @.str.40) #3
  br label %389

372:                                              ; preds = %366
  %373 = load i32, ptr %5, align 4, !tbaa !15
  %374 = icmp eq i32 32777, %373
  br i1 %374, label %375, label %378

375:                                              ; preds = %372
  %376 = load ptr, ptr @file, align 8, !tbaa !5
  %377 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %376, ptr noundef @.str.41) #3
  br label %388

378:                                              ; preds = %372
  %379 = load i32, ptr %5, align 4, !tbaa !15
  %380 = icmp eq i32 32768, %379
  br i1 %380, label %381, label %384

381:                                              ; preds = %378
  %382 = load ptr, ptr @file, align 8, !tbaa !5
  %383 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %382, ptr noundef @.str.42) #3
  br label %387

384:                                              ; preds = %378
  %385 = load ptr, ptr @file, align 8, !tbaa !5
  %386 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %385, ptr noundef @.str.39) #3
  br label %387

387:                                              ; preds = %384, %381
  br label %388

388:                                              ; preds = %387, %375
  br label %389

389:                                              ; preds = %388, %369
  br label %390

390:                                              ; preds = %389, %363
  %391 = load ptr, ptr @__glewXGetFBConfigAttrib, align 8, !tbaa !5
  %392 = load ptr, ptr %2, align 8, !tbaa !5
  %393 = getelementptr inbounds %struct.GLContextStruct, ptr %392, i32 0, i32 0
  %394 = load ptr, ptr %393, align 8, !tbaa !9
  %395 = load ptr, ptr %4, align 8, !tbaa !5
  %396 = load i32, ptr %7, align 4, !tbaa !15
  %397 = sext i32 %396 to i64
  %398 = getelementptr inbounds ptr, ptr %395, i64 %397
  %399 = load ptr, ptr %398, align 8, !tbaa !5
  %400 = call i32 %391(ptr noundef %394, ptr noundef %399, i32 noundef 2, ptr noundef %5)
  store i32 %400, ptr %6, align 4, !tbaa !15
  %401 = load i32, ptr %6, align 4, !tbaa !15
  %402 = icmp ne i32 0, %401
  br i1 %402, label %403, label %406

403:                                              ; preds = %390
  %404 = load ptr, ptr @file, align 8, !tbaa !5
  %405 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %404, ptr noundef @.str.43) #3
  br label %417

406:                                              ; preds = %390
  %407 = load i32, ptr %5, align 4, !tbaa !15
  %408 = icmp ne i32 %407, 0
  br i1 %408, label %409, label %413

409:                                              ; preds = %406
  %410 = load ptr, ptr @file, align 8, !tbaa !5
  %411 = load i32, ptr %5, align 4, !tbaa !15
  %412 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %410, ptr noundef @.str.44, i32 noundef %411) #3
  br label %416

413:                                              ; preds = %406
  %414 = load ptr, ptr @file, align 8, !tbaa !5
  %415 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %414, ptr noundef @.str.45) #3
  br label %416

416:                                              ; preds = %413, %409
  br label %417

417:                                              ; preds = %416, %403
  %418 = load ptr, ptr @__glewXGetFBConfigAttrib, align 8, !tbaa !5
  %419 = load ptr, ptr %2, align 8, !tbaa !5
  %420 = getelementptr inbounds %struct.GLContextStruct, ptr %419, i32 0, i32 0
  %421 = load ptr, ptr %420, align 8, !tbaa !9
  %422 = load ptr, ptr %4, align 8, !tbaa !5
  %423 = load i32, ptr %7, align 4, !tbaa !15
  %424 = sext i32 %423 to i64
  %425 = getelementptr inbounds ptr, ptr %422, i64 %424
  %426 = load ptr, ptr %425, align 8, !tbaa !5
  %427 = call i32 %418(ptr noundef %421, ptr noundef %426, i32 noundef 8, ptr noundef %5)
  store i32 %427, ptr %6, align 4, !tbaa !15
  %428 = load i32, ptr %6, align 4, !tbaa !15
  %429 = icmp ne i32 0, %428
  br i1 %429, label %430, label %433

430:                                              ; preds = %417
  %431 = load ptr, ptr @file, align 8, !tbaa !5
  %432 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %431, ptr noundef @.str.20) #3
  br label %444

433:                                              ; preds = %417
  %434 = load i32, ptr %5, align 4, !tbaa !15
  %435 = icmp ne i32 %434, 0
  br i1 %435, label %436, label %440

436:                                              ; preds = %433
  %437 = load ptr, ptr @file, align 8, !tbaa !5
  %438 = load i32, ptr %5, align 4, !tbaa !15
  %439 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %437, ptr noundef @.str.38, i32 noundef %438) #3
  br label %443

440:                                              ; preds = %433
  %441 = load ptr, ptr @file, align 8, !tbaa !5
  %442 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %441, ptr noundef @.str.33) #3
  br label %443

443:                                              ; preds = %440, %436
  br label %444

444:                                              ; preds = %443, %430
  %445 = load ptr, ptr @__glewXGetFBConfigAttrib, align 8, !tbaa !5
  %446 = load ptr, ptr %2, align 8, !tbaa !5
  %447 = getelementptr inbounds %struct.GLContextStruct, ptr %446, i32 0, i32 0
  %448 = load ptr, ptr %447, align 8, !tbaa !9
  %449 = load ptr, ptr %4, align 8, !tbaa !5
  %450 = load i32, ptr %7, align 4, !tbaa !15
  %451 = sext i32 %450 to i64
  %452 = getelementptr inbounds ptr, ptr %449, i64 %451
  %453 = load ptr, ptr %452, align 8, !tbaa !5
  %454 = call i32 %445(ptr noundef %448, ptr noundef %453, i32 noundef 9, ptr noundef %5)
  store i32 %454, ptr %6, align 4, !tbaa !15
  %455 = load i32, ptr %6, align 4, !tbaa !15
  %456 = icmp ne i32 0, %455
  br i1 %456, label %457, label %460

457:                                              ; preds = %444
  %458 = load ptr, ptr @file, align 8, !tbaa !5
  %459 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %458, ptr noundef @.str.20) #3
  br label %471

460:                                              ; preds = %444
  %461 = load i32, ptr %5, align 4, !tbaa !15
  %462 = icmp ne i32 %461, 0
  br i1 %462, label %463, label %467

463:                                              ; preds = %460
  %464 = load ptr, ptr @file, align 8, !tbaa !5
  %465 = load i32, ptr %5, align 4, !tbaa !15
  %466 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %464, ptr noundef @.str.38, i32 noundef %465) #3
  br label %470

467:                                              ; preds = %460
  %468 = load ptr, ptr @file, align 8, !tbaa !5
  %469 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %468, ptr noundef @.str.33) #3
  br label %470

470:                                              ; preds = %467, %463
  br label %471

471:                                              ; preds = %470, %457
  %472 = load ptr, ptr @__glewXGetFBConfigAttrib, align 8, !tbaa !5
  %473 = load ptr, ptr %2, align 8, !tbaa !5
  %474 = getelementptr inbounds %struct.GLContextStruct, ptr %473, i32 0, i32 0
  %475 = load ptr, ptr %474, align 8, !tbaa !9
  %476 = load ptr, ptr %4, align 8, !tbaa !5
  %477 = load i32, ptr %7, align 4, !tbaa !15
  %478 = sext i32 %477 to i64
  %479 = getelementptr inbounds ptr, ptr %476, i64 %478
  %480 = load ptr, ptr %479, align 8, !tbaa !5
  %481 = call i32 %472(ptr noundef %475, ptr noundef %480, i32 noundef 10, ptr noundef %5)
  store i32 %481, ptr %6, align 4, !tbaa !15
  %482 = load i32, ptr %6, align 4, !tbaa !15
  %483 = icmp ne i32 0, %482
  br i1 %483, label %484, label %487

484:                                              ; preds = %471
  %485 = load ptr, ptr @file, align 8, !tbaa !5
  %486 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %485, ptr noundef @.str.20) #3
  br label %498

487:                                              ; preds = %471
  %488 = load i32, ptr %5, align 4, !tbaa !15
  %489 = icmp ne i32 %488, 0
  br i1 %489, label %490, label %494

490:                                              ; preds = %487
  %491 = load ptr, ptr @file, align 8, !tbaa !5
  %492 = load i32, ptr %5, align 4, !tbaa !15
  %493 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %491, ptr noundef @.str.38, i32 noundef %492) #3
  br label %497

494:                                              ; preds = %487
  %495 = load ptr, ptr @file, align 8, !tbaa !5
  %496 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %495, ptr noundef @.str.33) #3
  br label %497

497:                                              ; preds = %494, %490
  br label %498

498:                                              ; preds = %497, %484
  %499 = load ptr, ptr @__glewXGetFBConfigAttrib, align 8, !tbaa !5
  %500 = load ptr, ptr %2, align 8, !tbaa !5
  %501 = getelementptr inbounds %struct.GLContextStruct, ptr %500, i32 0, i32 0
  %502 = load ptr, ptr %501, align 8, !tbaa !9
  %503 = load ptr, ptr %4, align 8, !tbaa !5
  %504 = load i32, ptr %7, align 4, !tbaa !15
  %505 = sext i32 %504 to i64
  %506 = getelementptr inbounds ptr, ptr %503, i64 %505
  %507 = load ptr, ptr %506, align 8, !tbaa !5
  %508 = call i32 %499(ptr noundef %502, ptr noundef %507, i32 noundef 11, ptr noundef %5)
  store i32 %508, ptr %6, align 4, !tbaa !15
  %509 = load i32, ptr %6, align 4, !tbaa !15
  %510 = icmp ne i32 0, %509
  br i1 %510, label %511, label %514

511:                                              ; preds = %498
  %512 = load ptr, ptr @file, align 8, !tbaa !5
  %513 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %512, ptr noundef @.str.39) #3
  br label %525

514:                                              ; preds = %498
  %515 = load i32, ptr %5, align 4, !tbaa !15
  %516 = icmp ne i32 %515, 0
  br i1 %516, label %517, label %521

517:                                              ; preds = %514
  %518 = load ptr, ptr @file, align 8, !tbaa !5
  %519 = load i32, ptr %5, align 4, !tbaa !15
  %520 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %518, ptr noundef @.str.46, i32 noundef %519) #3
  br label %524

521:                                              ; preds = %514
  %522 = load ptr, ptr @file, align 8, !tbaa !5
  %523 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %522, ptr noundef @.str.42) #3
  br label %524

524:                                              ; preds = %521, %517
  br label %525

525:                                              ; preds = %524, %511
  %526 = load ptr, ptr @__glewXGetFBConfigAttrib, align 8, !tbaa !5
  %527 = load ptr, ptr %2, align 8, !tbaa !5
  %528 = getelementptr inbounds %struct.GLContextStruct, ptr %527, i32 0, i32 0
  %529 = load ptr, ptr %528, align 8, !tbaa !9
  %530 = load ptr, ptr %4, align 8, !tbaa !5
  %531 = load i32, ptr %7, align 4, !tbaa !15
  %532 = sext i32 %531 to i64
  %533 = getelementptr inbounds ptr, ptr %530, i64 %532
  %534 = load ptr, ptr %533, align 8, !tbaa !5
  %535 = call i32 %526(ptr noundef %529, ptr noundef %534, i32 noundef 7, ptr noundef %5)
  store i32 %535, ptr %6, align 4, !tbaa !15
  %536 = load i32, ptr %6, align 4, !tbaa !15
  %537 = icmp ne i32 0, %536
  br i1 %537, label %538, label %541

538:                                              ; preds = %525
  %539 = load ptr, ptr @file, align 8, !tbaa !5
  %540 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %539, ptr noundef @.str.20) #3
  br label %552

541:                                              ; preds = %525
  %542 = load i32, ptr %5, align 4, !tbaa !15
  %543 = icmp ne i32 %542, 0
  br i1 %543, label %544, label %548

544:                                              ; preds = %541
  %545 = load ptr, ptr @file, align 8, !tbaa !5
  %546 = load i32, ptr %5, align 4, !tbaa !15
  %547 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %545, ptr noundef @.str.38, i32 noundef %546) #3
  br label %551

548:                                              ; preds = %541
  %549 = load ptr, ptr @file, align 8, !tbaa !5
  %550 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %549, ptr noundef @.str.33) #3
  br label %551

551:                                              ; preds = %548, %544
  br label %552

552:                                              ; preds = %551, %538
  %553 = load ptr, ptr @__glewXGetFBConfigAttrib, align 8, !tbaa !5
  %554 = load ptr, ptr %2, align 8, !tbaa !5
  %555 = getelementptr inbounds %struct.GLContextStruct, ptr %554, i32 0, i32 0
  %556 = load ptr, ptr %555, align 8, !tbaa !9
  %557 = load ptr, ptr %4, align 8, !tbaa !5
  %558 = load i32, ptr %7, align 4, !tbaa !15
  %559 = sext i32 %558 to i64
  %560 = getelementptr inbounds ptr, ptr %557, i64 %559
  %561 = load ptr, ptr %560, align 8, !tbaa !5
  %562 = call i32 %553(ptr noundef %556, ptr noundef %561, i32 noundef 12, ptr noundef %5)
  store i32 %562, ptr %6, align 4, !tbaa !15
  %563 = load i32, ptr %6, align 4, !tbaa !15
  %564 = icmp ne i32 0, %563
  br i1 %564, label %565, label %568

565:                                              ; preds = %552
  %566 = load ptr, ptr @file, align 8, !tbaa !5
  %567 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %566, ptr noundef @.str.20) #3
  br label %579

568:                                              ; preds = %552
  %569 = load i32, ptr %5, align 4, !tbaa !15
  %570 = icmp ne i32 %569, 0
  br i1 %570, label %571, label %575

571:                                              ; preds = %568
  %572 = load ptr, ptr @file, align 8, !tbaa !5
  %573 = load i32, ptr %5, align 4, !tbaa !15
  %574 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %572, ptr noundef @.str.38, i32 noundef %573) #3
  br label %578

575:                                              ; preds = %568
  %576 = load ptr, ptr @file, align 8, !tbaa !5
  %577 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %576, ptr noundef @.str.33) #3
  br label %578

578:                                              ; preds = %575, %571
  br label %579

579:                                              ; preds = %578, %565
  %580 = load ptr, ptr @__glewXGetFBConfigAttrib, align 8, !tbaa !5
  %581 = load ptr, ptr %2, align 8, !tbaa !5
  %582 = getelementptr inbounds %struct.GLContextStruct, ptr %581, i32 0, i32 0
  %583 = load ptr, ptr %582, align 8, !tbaa !9
  %584 = load ptr, ptr %4, align 8, !tbaa !5
  %585 = load i32, ptr %7, align 4, !tbaa !15
  %586 = sext i32 %585 to i64
  %587 = getelementptr inbounds ptr, ptr %584, i64 %586
  %588 = load ptr, ptr %587, align 8, !tbaa !5
  %589 = call i32 %580(ptr noundef %583, ptr noundef %588, i32 noundef 13, ptr noundef %5)
  store i32 %589, ptr %6, align 4, !tbaa !15
  %590 = load i32, ptr %6, align 4, !tbaa !15
  %591 = icmp ne i32 0, %590
  br i1 %591, label %592, label %595

592:                                              ; preds = %579
  %593 = load ptr, ptr @file, align 8, !tbaa !5
  %594 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %593, ptr noundef @.str.39) #3
  br label %606

595:                                              ; preds = %579
  %596 = load i32, ptr %5, align 4, !tbaa !15
  %597 = icmp ne i32 %596, 0
  br i1 %597, label %598, label %602

598:                                              ; preds = %595
  %599 = load ptr, ptr @file, align 8, !tbaa !5
  %600 = load i32, ptr %5, align 4, !tbaa !15
  %601 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %599, ptr noundef @.str.46, i32 noundef %600) #3
  br label %605

602:                                              ; preds = %595
  %603 = load ptr, ptr @file, align 8, !tbaa !5
  %604 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %603, ptr noundef @.str.42) #3
  br label %605

605:                                              ; preds = %602, %598
  br label %606

606:                                              ; preds = %605, %592
  %607 = load ptr, ptr @__glewXGetFBConfigAttrib, align 8, !tbaa !5
  %608 = load ptr, ptr %2, align 8, !tbaa !5
  %609 = getelementptr inbounds %struct.GLContextStruct, ptr %608, i32 0, i32 0
  %610 = load ptr, ptr %609, align 8, !tbaa !9
  %611 = load ptr, ptr %4, align 8, !tbaa !5
  %612 = load i32, ptr %7, align 4, !tbaa !15
  %613 = sext i32 %612 to i64
  %614 = getelementptr inbounds ptr, ptr %611, i64 %613
  %615 = load ptr, ptr %614, align 8, !tbaa !5
  %616 = call i32 %607(ptr noundef %610, ptr noundef %615, i32 noundef 14, ptr noundef %5)
  store i32 %616, ptr %6, align 4, !tbaa !15
  %617 = load i32, ptr %6, align 4, !tbaa !15
  %618 = icmp ne i32 0, %617
  br i1 %618, label %619, label %622

619:                                              ; preds = %606
  %620 = load ptr, ptr @file, align 8, !tbaa !5
  %621 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %620, ptr noundef @.str.20) #3
  br label %633

622:                                              ; preds = %606
  %623 = load i32, ptr %5, align 4, !tbaa !15
  %624 = icmp ne i32 %623, 0
  br i1 %624, label %625, label %629

625:                                              ; preds = %622
  %626 = load ptr, ptr @file, align 8, !tbaa !5
  %627 = load i32, ptr %5, align 4, !tbaa !15
  %628 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %626, ptr noundef @.str.38, i32 noundef %627) #3
  br label %632

629:                                              ; preds = %622
  %630 = load ptr, ptr @file, align 8, !tbaa !5
  %631 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %630, ptr noundef @.str.33) #3
  br label %632

632:                                              ; preds = %629, %625
  br label %633

633:                                              ; preds = %632, %619
  %634 = load ptr, ptr @__glewXGetFBConfigAttrib, align 8, !tbaa !5
  %635 = load ptr, ptr %2, align 8, !tbaa !5
  %636 = getelementptr inbounds %struct.GLContextStruct, ptr %635, i32 0, i32 0
  %637 = load ptr, ptr %636, align 8, !tbaa !9
  %638 = load ptr, ptr %4, align 8, !tbaa !5
  %639 = load i32, ptr %7, align 4, !tbaa !15
  %640 = sext i32 %639 to i64
  %641 = getelementptr inbounds ptr, ptr %638, i64 %640
  %642 = load ptr, ptr %641, align 8, !tbaa !5
  %643 = call i32 %634(ptr noundef %637, ptr noundef %642, i32 noundef 15, ptr noundef %5)
  store i32 %643, ptr %6, align 4, !tbaa !15
  %644 = load i32, ptr %6, align 4, !tbaa !15
  %645 = icmp ne i32 0, %644
  br i1 %645, label %646, label %649

646:                                              ; preds = %633
  %647 = load ptr, ptr @file, align 8, !tbaa !5
  %648 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %647, ptr noundef @.str.20) #3
  br label %660

649:                                              ; preds = %633
  %650 = load i32, ptr %5, align 4, !tbaa !15
  %651 = icmp ne i32 %650, 0
  br i1 %651, label %652, label %656

652:                                              ; preds = %649
  %653 = load ptr, ptr @file, align 8, !tbaa !5
  %654 = load i32, ptr %5, align 4, !tbaa !15
  %655 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %653, ptr noundef @.str.38, i32 noundef %654) #3
  br label %659

656:                                              ; preds = %649
  %657 = load ptr, ptr @file, align 8, !tbaa !5
  %658 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %657, ptr noundef @.str.33) #3
  br label %659

659:                                              ; preds = %656, %652
  br label %660

660:                                              ; preds = %659, %646
  %661 = load ptr, ptr @__glewXGetFBConfigAttrib, align 8, !tbaa !5
  %662 = load ptr, ptr %2, align 8, !tbaa !5
  %663 = getelementptr inbounds %struct.GLContextStruct, ptr %662, i32 0, i32 0
  %664 = load ptr, ptr %663, align 8, !tbaa !9
  %665 = load ptr, ptr %4, align 8, !tbaa !5
  %666 = load i32, ptr %7, align 4, !tbaa !15
  %667 = sext i32 %666 to i64
  %668 = getelementptr inbounds ptr, ptr %665, i64 %667
  %669 = load ptr, ptr %668, align 8, !tbaa !5
  %670 = call i32 %661(ptr noundef %664, ptr noundef %669, i32 noundef 16, ptr noundef %5)
  store i32 %670, ptr %6, align 4, !tbaa !15
  %671 = load i32, ptr %6, align 4, !tbaa !15
  %672 = icmp ne i32 0, %671
  br i1 %672, label %673, label %676

673:                                              ; preds = %660
  %674 = load ptr, ptr @file, align 8, !tbaa !5
  %675 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %674, ptr noundef @.str.20) #3
  br label %687

676:                                              ; preds = %660
  %677 = load i32, ptr %5, align 4, !tbaa !15
  %678 = icmp ne i32 %677, 0
  br i1 %678, label %679, label %683

679:                                              ; preds = %676
  %680 = load ptr, ptr @file, align 8, !tbaa !5
  %681 = load i32, ptr %5, align 4, !tbaa !15
  %682 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %680, ptr noundef @.str.38, i32 noundef %681) #3
  br label %686

683:                                              ; preds = %676
  %684 = load ptr, ptr @file, align 8, !tbaa !5
  %685 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %684, ptr noundef @.str.33) #3
  br label %686

686:                                              ; preds = %683, %679
  br label %687

687:                                              ; preds = %686, %673
  %688 = load ptr, ptr @__glewXGetFBConfigAttrib, align 8, !tbaa !5
  %689 = load ptr, ptr %2, align 8, !tbaa !5
  %690 = getelementptr inbounds %struct.GLContextStruct, ptr %689, i32 0, i32 0
  %691 = load ptr, ptr %690, align 8, !tbaa !9
  %692 = load ptr, ptr %4, align 8, !tbaa !5
  %693 = load i32, ptr %7, align 4, !tbaa !15
  %694 = sext i32 %693 to i64
  %695 = getelementptr inbounds ptr, ptr %692, i64 %694
  %696 = load ptr, ptr %695, align 8, !tbaa !5
  %697 = call i32 %688(ptr noundef %691, ptr noundef %696, i32 noundef 17, ptr noundef %5)
  store i32 %697, ptr %6, align 4, !tbaa !15
  %698 = load i32, ptr %6, align 4, !tbaa !15
  %699 = icmp ne i32 0, %698
  br i1 %699, label %700, label %703

700:                                              ; preds = %687
  %701 = load ptr, ptr @file, align 8, !tbaa !5
  %702 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %701, ptr noundef @.str.39) #3
  br label %714

703:                                              ; preds = %687
  %704 = load i32, ptr %5, align 4, !tbaa !15
  %705 = icmp ne i32 %704, 0
  br i1 %705, label %706, label %710

706:                                              ; preds = %703
  %707 = load ptr, ptr @file, align 8, !tbaa !5
  %708 = load i32, ptr %5, align 4, !tbaa !15
  %709 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %707, ptr noundef @.str.46, i32 noundef %708) #3
  br label %713

710:                                              ; preds = %703
  %711 = load ptr, ptr @file, align 8, !tbaa !5
  %712 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %711, ptr noundef @.str.42) #3
  br label %713

713:                                              ; preds = %710, %706
  br label %714

714:                                              ; preds = %713, %700
  %715 = load ptr, ptr @__glewXGetFBConfigAttrib, align 8, !tbaa !5
  %716 = load ptr, ptr %2, align 8, !tbaa !5
  %717 = getelementptr inbounds %struct.GLContextStruct, ptr %716, i32 0, i32 0
  %718 = load ptr, ptr %717, align 8, !tbaa !9
  %719 = load ptr, ptr %4, align 8, !tbaa !5
  %720 = load i32, ptr %7, align 4, !tbaa !15
  %721 = sext i32 %720 to i64
  %722 = getelementptr inbounds ptr, ptr %719, i64 %721
  %723 = load ptr, ptr %722, align 8, !tbaa !5
  %724 = call i32 %715(ptr noundef %718, ptr noundef %723, i32 noundef 100001, ptr noundef %5)
  store i32 %724, ptr %6, align 4, !tbaa !15
  %725 = load i32, ptr %6, align 4, !tbaa !15
  %726 = icmp ne i32 0, %725
  br i1 %726, label %727, label %730

727:                                              ; preds = %714
  %728 = load ptr, ptr @file, align 8, !tbaa !5
  %729 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %728, ptr noundef @.str.20) #3
  br label %734

730:                                              ; preds = %714
  %731 = load ptr, ptr @file, align 8, !tbaa !5
  %732 = load i32, ptr %5, align 4, !tbaa !15
  %733 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %731, ptr noundef @.str.38, i32 noundef %732) #3
  br label %734

734:                                              ; preds = %730, %727
  %735 = load ptr, ptr @__glewXGetFBConfigAttrib, align 8, !tbaa !5
  %736 = load ptr, ptr %2, align 8, !tbaa !5
  %737 = getelementptr inbounds %struct.GLContextStruct, ptr %736, i32 0, i32 0
  %738 = load ptr, ptr %737, align 8, !tbaa !9
  %739 = load ptr, ptr %4, align 8, !tbaa !5
  %740 = load i32, ptr %7, align 4, !tbaa !15
  %741 = sext i32 %740 to i64
  %742 = getelementptr inbounds ptr, ptr %739, i64 %741
  %743 = load ptr, ptr %742, align 8, !tbaa !5
  %744 = call i32 %735(ptr noundef %738, ptr noundef %743, i32 noundef 100000, ptr noundef %5)
  store i32 %744, ptr %6, align 4, !tbaa !15
  %745 = load i32, ptr %6, align 4, !tbaa !15
  %746 = icmp ne i32 0, %745
  br i1 %746, label %747, label %750

747:                                              ; preds = %734
  %748 = load ptr, ptr @file, align 8, !tbaa !5
  %749 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %748, ptr noundef @.str.39) #3
  br label %754

750:                                              ; preds = %734
  %751 = load ptr, ptr @file, align 8, !tbaa !5
  %752 = load i32, ptr %5, align 4, !tbaa !15
  %753 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %751, ptr noundef @.str.46, i32 noundef %752) #3
  br label %754

754:                                              ; preds = %750, %747
  %755 = load ptr, ptr @__glewXGetFBConfigAttrib, align 8, !tbaa !5
  %756 = load ptr, ptr %2, align 8, !tbaa !5
  %757 = getelementptr inbounds %struct.GLContextStruct, ptr %756, i32 0, i32 0
  %758 = load ptr, ptr %757, align 8, !tbaa !9
  %759 = load ptr, ptr %4, align 8, !tbaa !5
  %760 = load i32, ptr %7, align 4, !tbaa !15
  %761 = sext i32 %760 to i64
  %762 = getelementptr inbounds ptr, ptr %759, i64 %761
  %763 = load ptr, ptr %762, align 8, !tbaa !5
  %764 = call i32 %755(ptr noundef %758, ptr noundef %763, i32 noundef 32, ptr noundef %5)
  store i32 %764, ptr %6, align 4, !tbaa !15
  %765 = load i32, ptr %6, align 4, !tbaa !15
  %766 = icmp ne i32 0, %765
  br i1 %766, label %767, label %770

767:                                              ; preds = %754
  %768 = load ptr, ptr @file, align 8, !tbaa !5
  %769 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %768, ptr noundef @.str.47) #3
  br label %794

770:                                              ; preds = %754
  %771 = load i32, ptr %5, align 4, !tbaa !15
  %772 = icmp eq i32 32768, %771
  br i1 %772, label %773, label %776

773:                                              ; preds = %770
  %774 = load ptr, ptr @file, align 8, !tbaa !5
  %775 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %774, ptr noundef @.str.48) #3
  br label %793

776:                                              ; preds = %770
  %777 = load i32, ptr %5, align 4, !tbaa !15
  %778 = icmp eq i32 32769, %777
  br i1 %778, label %779, label %782

779:                                              ; preds = %776
  %780 = load ptr, ptr @file, align 8, !tbaa !5
  %781 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %780, ptr noundef @.str.49) #3
  br label %792

782:                                              ; preds = %776
  %783 = load i32, ptr %5, align 4, !tbaa !15
  %784 = icmp eq i32 32781, %783
  br i1 %784, label %785, label %788

785:                                              ; preds = %782
  %786 = load ptr, ptr @file, align 8, !tbaa !5
  %787 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %786, ptr noundef @.str.50) #3
  br label %791

788:                                              ; preds = %782
  %789 = load ptr, ptr @file, align 8, !tbaa !5
  %790 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %789, ptr noundef @.str.51) #3
  br label %791

791:                                              ; preds = %788, %785
  br label %792

792:                                              ; preds = %791, %779
  br label %793

793:                                              ; preds = %792, %773
  br label %794

794:                                              ; preds = %793, %767
  br label %795

795:                                              ; preds = %794
  %796 = load i32, ptr %7, align 4, !tbaa !15
  %797 = add nsw i32 %796, 1
  store i32 %797, ptr %7, align 4, !tbaa !15
  br label %34, !llvm.loop !17

798:                                              ; preds = %34
  %799 = load ptr, ptr @file, align 8, !tbaa !5
  %800 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %799, ptr noundef @.str.15) #3
  %801 = load ptr, ptr @file, align 8, !tbaa !5
  %802 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %801, ptr noundef @.str.17) #3
  %803 = load ptr, ptr @file, align 8, !tbaa !5
  %804 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %803, ptr noundef @.str.16) #3
  %805 = load ptr, ptr @file, align 8, !tbaa !5
  %806 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %805, ptr noundef @.str.15) #3
  br label %807

807:                                              ; preds = %798, %22
  br label %808

808:                                              ; preds = %807, %1
  call void @llvm.lifetime.end.p0(i64 4, ptr %7) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %6) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %5) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %4) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %3) #3
  ret void
}

; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite)
declare void @llvm.lifetime.end.p0(i64 immarg, ptr nocapture) #0

attributes #0 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #1 = { nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #2 = { nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { nounwind }

!llvm.module.flags = !{!0, !1, !2, !3}
!llvm.ident = !{!4}

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"any pointer", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/C++ TBAA"}
!9 = !{!10, !6, i64 0}
!10 = !{!"GLContextStruct", !6, i64 0, !6, i64 8, !6, i64 16, !11, i64 24, !11, i64 32}
!11 = !{!"long", !7, i64 0}
!12 = !{!13, !14, i64 224}
!13 = !{!"", !6, i64 0, !6, i64 8, !14, i64 16, !14, i64 20, !14, i64 24, !14, i64 28, !6, i64 32, !11, i64 40, !11, i64 48, !11, i64 56, !14, i64 64, !6, i64 72, !14, i64 80, !14, i64 84, !14, i64 88, !14, i64 92, !14, i64 96, !6, i64 104, !14, i64 112, !14, i64 116, !6, i64 120, !6, i64 128, !14, i64 136, !11, i64 144, !11, i64 152, !6, i64 160, !6, i64 168, !6, i64 176, !6, i64 184, !14, i64 192, !6, i64 200, !6, i64 208, !6, i64 216, !14, i64 224, !14, i64 228, !6, i64 232, !11, i64 240, !11, i64 248, !14, i64 256, !14, i64 260, !6, i64 264, !6, i64 272, !14, i64 280, !6, i64 288}
!14 = !{!"int", !7, i64 0}
!15 = !{!14, !14, i64 0}
!16 = !{!7, !7, i64 0}
!17 = distinct !{!17, !18}
!18 = !{!"llvm.loop.mustprogress"}


; Optimized IR (opt -passes='default<O3>'):
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-linux-gnu"

@verbose = external dso_local local_unnamed_addr global i32, align 4
@file = external dso_local local_unnamed_addr global ptr, align 8
@__glewXGetFBConfigs = external local_unnamed_addr global ptr, align 8
@.str.15 = external hidden unnamed_addr constant [94 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [94 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [94 x i8], align 1
@__glewXGetFBConfigAttrib = external local_unnamed_addr global ptr, align 8
@.str.18 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [4 x i8], align 1
@__GLXEW_NV_float_buffer = external local_unnamed_addr global i8, align 1
@.str.34 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.43 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.44 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.45 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.46 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.47 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.48 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.49 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.50 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.51 = external hidden unnamed_addr constant [8 x i8], align 1

; Function Attrs: mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite)
declare void @llvm.lifetime.start.p0(i64 immarg, ptr nocapture) #0

; Function Attrs: nofree nounwind
declare noundef i32 @fprintf(ptr nocapture noundef, ptr nocapture noundef readonly, ...) local_unnamed_addr #1

; Function Attrs: nounwind uwtable
define dso_local void @VisualInfo(ptr nocapture noundef readonly %0) local_unnamed_addr #2 {
  %2 = alloca i32, align 4
  %3 = alloca i32, align 4
  %4 = alloca i32, align 4
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %2) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %3) #3
  %5 = load ptr, ptr @__glewXGetFBConfigs, align 8, !tbaa !5
  %6 = load ptr, ptr %0, align 8, !tbaa !9
  %7 = getelementptr inbounds i8, ptr %6, i64 224
  %8 = load i32, ptr %7, align 8, !tbaa !12
  %9 = call ptr %5(ptr noundef %6, i32 noundef %8, ptr noundef nonnull %2) #3
  %10 = icmp eq ptr %9, null
  %11 = load i32, ptr @verbose, align 4
  %12 = icmp ne i32 %11, 0
  %or.cond3 = select i1 %10, i1 true, i1 %12
  br i1 %or.cond3, label %433, label %13

13:                                               ; preds = %1
  %14 = load ptr, ptr @file, align 8, !tbaa !5
  %15 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14, ptr noundef nonnull @.str.15) #3
  %16 = load ptr, ptr @file, align 8, !tbaa !5
  %17 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %16, ptr noundef nonnull @.str.16) #3
  %18 = load ptr, ptr @file, align 8, !tbaa !5
  %19 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %18, ptr noundef nonnull @.str.17) #3
  %20 = load ptr, ptr @file, align 8, !tbaa !5
  %21 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %20, ptr noundef nonnull @.str.15) #3
  %22 = load i32, ptr %2, align 4, !tbaa !15
  %23 = icmp sgt i32 %22, 0
  br i1 %23, label %.lr.ph, label %._crit_edge

.lr.ph:                                           ; preds = %13, %421
  %indvars.iv = phi i64 [ %indvars.iv.next, %421 ], [ 0, %13 ]
  %24 = load ptr, ptr @__glewXGetFBConfigAttrib, align 8, !tbaa !5
  %25 = load ptr, ptr %0, align 8, !tbaa !9
  %26 = getelementptr inbounds ptr, ptr %9, i64 %indvars.iv
  %27 = load ptr, ptr %26, align 8, !tbaa !5
  %28 = call i32 %24(ptr noundef %25, ptr noundef %27, i32 noundef 32787, ptr noundef nonnull %3) #3
  %.not = icmp eq i32 %28, 0
  %29 = load ptr, ptr @file, align 8, !tbaa !5
  br i1 %.not, label %32, label %30

30:                                               ; preds = %.lr.ph
  %31 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %29, ptr noundef nonnull @.str.18) #3
  br label %35

32:                                               ; preds = %.lr.ph
  %33 = load i32, ptr %3, align 4, !tbaa !15
  %34 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %29, ptr noundef nonnull @.str.19, i32 noundef %33) #3
  br label %35

35:                                               ; preds = %32, %30
  %36 = load ptr, ptr @__glewXGetFBConfigAttrib, align 8, !tbaa !5
  %37 = load ptr, ptr %0, align 8, !tbaa !9
  %38 = load ptr, ptr %26, align 8, !tbaa !5
  %39 = call i32 %36(ptr noundef %37, ptr noundef %38, i32 noundef 32784, ptr noundef nonnull %3) #3
  %.not123 = icmp eq i32 %39, 0
  br i1 %.not123, label %43, label %40

40:                                               ; preds = %35
  %41 = load ptr, ptr @file, align 8, !tbaa !5
  %42 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %41, ptr noundef nonnull @.str.20) #3
  br label %64

43:                                               ; preds = %35
  %44 = load i32, ptr %3, align 4, !tbaa !15
  %45 = and i32 %44, 1
  %.not124 = icmp eq i32 %45, 0
  %46 = and i32 %44, 4
  %.not125 = icmp eq i32 %46, 0
  br i1 %.not124, label %53, label %47

47:                                               ; preds = %43
  %48 = load ptr, ptr @file, align 8, !tbaa !5
  br i1 %.not125, label %51, label %49

49:                                               ; preds = %47
  %50 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %48, ptr noundef nonnull @.str.21) #3
  br label %64

51:                                               ; preds = %47
  %52 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %48, ptr noundef nonnull @.str.22) #3
  br label %64

53:                                               ; preds = %43
  br i1 %.not125, label %57, label %54

54:                                               ; preds = %53
  %55 = load ptr, ptr @file, align 8, !tbaa !5
  %56 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %55, ptr noundef nonnull @.str.23) #3
  br label %64

57:                                               ; preds = %53
  %58 = and i32 %44, 2
  %.not126 = icmp eq i32 %58, 0
  %59 = load ptr, ptr @file, align 8, !tbaa !5
  br i1 %.not126, label %62, label %60

60:                                               ; preds = %57
  %61 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %59, ptr noundef nonnull @.str.24) #3
  br label %64

62:                                               ; preds = %57
  %63 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %59, ptr noundef nonnull @.str.20) #3
  br label %64

64:                                               ; preds = %51, %49, %60, %62, %54, %40
  %65 = load ptr, ptr @__glewXGetFBConfigAttrib, align 8, !tbaa !5
  %66 = load ptr, ptr %0, align 8, !tbaa !9
  %67 = load ptr, ptr %26, align 8, !tbaa !5
  %68 = call i32 %65(ptr noundef %66, ptr noundef %67, i32 noundef 32786, ptr noundef nonnull %3) #3
  %.not128 = icmp eq i32 %68, 0
  %69 = load ptr, ptr @file, align 8, !tbaa !5
  %70 = load i32, ptr %3, align 4
  %.not129 = icmp eq i32 %70, 0
  %71 = select i1 %.not129, ptr @.str.26, ptr @.str.25
  %.sink = select i1 %.not128, ptr %71, ptr @.str.20
  %72 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %69, ptr noundef nonnull %.sink) #3
  %73 = load ptr, ptr @__glewXGetFBConfigAttrib, align 8, !tbaa !5
  %74 = load ptr, ptr %0, align 8, !tbaa !9
  %75 = load ptr, ptr %26, align 8, !tbaa !5
  %76 = call i32 %73(ptr noundef %74, ptr noundef %75, i32 noundef 34, ptr noundef nonnull %3) #3
  %.not130 = icmp eq i32 %76, 0
  br i1 %.not130, label %80, label %77

77:                                               ; preds = %64
  %78 = load ptr, ptr @file, align 8, !tbaa !5
  %79 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %78, ptr noundef nonnull @.str.20) #3
  br label %99

80:                                               ; preds = %64
  %81 = load i32, ptr %3, align 4, !tbaa !15
  %82 = load ptr, ptr @file, align 8, !tbaa !5
  switch i32 %81, label %97 [
    i32 32770, label %83
    i32 32771, label %85
    i32 32772, label %87
    i32 32773, label %89
    i32 32774, label %91
    i32 32775, label %93
    i32 34, label %95
  ]

83:                                               ; preds = %80
  %84 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %82, ptr noundef nonnull @.str.27) #3
  br label %99

85:                                               ; preds = %80
  %86 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %82, ptr noundef nonnull @.str.28) #3
  br label %99

87:                                               ; preds = %80
  %88 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %82, ptr noundef nonnull @.str.29) #3
  br label %99

89:                                               ; preds = %80
  %90 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %82, ptr noundef nonnull @.str.30) #3
  br label %99

91:                                               ; preds = %80
  %92 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %82, ptr noundef nonnull @.str.31) #3
  br label %99

93:                                               ; preds = %80
  %94 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %82, ptr noundef nonnull @.str.32) #3
  br label %99

95:                                               ; preds = %80
  %96 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %82, ptr noundef nonnull @.str.33) #3
  br label %99

97:                                               ; preds = %80
  %98 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %82, ptr noundef nonnull @.str.20) #3
  br label %99

99:                                               ; preds = %83, %87, %91, %95, %97, %93, %89, %85, %77
  %100 = load ptr, ptr @__glewXGetFBConfigAttrib, align 8, !tbaa !5
  %101 = load ptr, ptr %0, align 8, !tbaa !9
  %102 = load ptr, ptr %26, align 8, !tbaa !5
  %103 = call i32 %100(ptr noundef %101, ptr noundef %102, i32 noundef 32785, ptr noundef nonnull %3) #3
  %.not131 = icmp eq i32 %103, 0
  br i1 %.not131, label %107, label %104

104:                                              ; preds = %99
  %105 = load ptr, ptr @file, align 8, !tbaa !5
  %106 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %105, ptr noundef nonnull @.str.20) #3
  br label %152

107:                                              ; preds = %99
  %108 = load i8, ptr @__GLXEW_NV_float_buffer, align 1, !tbaa !16
  %.not132 = icmp eq i8 %108, 0
  br i1 %.not132, label %134, label %109

109:                                              ; preds = %107
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %4) #3
  %110 = load ptr, ptr @__glewXGetFBConfigAttrib, align 8, !tbaa !5
  %111 = load ptr, ptr %0, align 8, !tbaa !9
  %112 = load ptr, ptr %26, align 8, !tbaa !5
  %113 = call i32 %110(ptr noundef %111, ptr noundef %112, i32 noundef 8368, ptr noundef nonnull %4) #3
  %114 = icmp eq i32 %113, 0
  %115 = load i32, ptr %4, align 4
  %116 = icmp eq i32 %115, 1
  %or.cond = select i1 %114, i1 %116, i1 false
  br i1 %or.cond, label %117, label %120

117:                                              ; preds = %109
  %118 = load ptr, ptr @file, align 8, !tbaa !5
  %119 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %118, ptr noundef nonnull @.str.34) #3
  br label %133

120:                                              ; preds = %109
  %121 = load i32, ptr %3, align 4, !tbaa !15
  %122 = and i32 %121, 1
  %.not136 = icmp eq i32 %122, 0
  br i1 %.not136, label %126, label %123

123:                                              ; preds = %120
  %124 = load ptr, ptr @file, align 8, !tbaa !5
  %125 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %124, ptr noundef nonnull @.str.35) #3
  br label %133

126:                                              ; preds = %120
  %127 = and i32 %121, 2
  %.not137 = icmp eq i32 %127, 0
  %128 = load ptr, ptr @file, align 8, !tbaa !5
  br i1 %.not137, label %131, label %129

129:                                              ; preds = %126
  %130 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %128, ptr noundef nonnull @.str.36) #3
  br label %133

131:                                              ; preds = %126
  %132 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %128, ptr noundef nonnull @.str.20) #3
  br label %133

133:                                              ; preds = %123, %131, %129, %117
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %4) #3
  br label %152

134:                                              ; preds = %107
  %135 = load i32, ptr %3, align 4, !tbaa !15
  %136 = and i32 %135, 256
  %.not133 = icmp eq i32 %136, 0
  br i1 %.not133, label %140, label %137

137:                                              ; preds = %134
  %138 = load ptr, ptr @file, align 8, !tbaa !5
  %139 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %138, ptr noundef nonnull @.str.34) #3
  br label %152

140:                                              ; preds = %134
  %141 = and i32 %135, 1
  %.not134 = icmp eq i32 %141, 0
  br i1 %.not134, label %145, label %142

142:                                              ; preds = %140
  %143 = load ptr, ptr @file, align 8, !tbaa !5
  %144 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %143, ptr noundef nonnull @.str.35) #3
  br label %152

145:                                              ; preds = %140
  %146 = and i32 %135, 2
  %.not135 = icmp eq i32 %146, 0
  %147 = load ptr, ptr @file, align 8, !tbaa !5
  br i1 %.not135, label %150, label %148

148:                                              ; preds = %145
  %149 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %147, ptr noundef nonnull @.str.36) #3
  br label %152

150:                                              ; preds = %145
  %151 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %147, ptr noundef nonnull @.str.20) #3
  br label %152

152:                                              ; preds = %133, %142, %150, %148, %137, %104
  %153 = load ptr, ptr @__glewXGetFBConfigAttrib, align 8, !tbaa !5
  %154 = load ptr, ptr %0, align 8, !tbaa !9
  %155 = load ptr, ptr %26, align 8, !tbaa !5
  %156 = call i32 %153(ptr noundef %154, ptr noundef %155, i32 noundef 5, ptr noundef nonnull %3) #3
  %157 = load ptr, ptr @file, align 8, !tbaa !5
  %.not138 = icmp eq i32 %156, 0
  %158 = load i32, ptr %3, align 4
  %.not139 = icmp eq i32 %158, 0
  %159 = select i1 %.not139, i32 46, i32 121
  %160 = select i1 %.not138, i32 %159, i32 63
  %161 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %157, ptr noundef nonnull @.str.37, i32 noundef %160) #3
  %162 = load ptr, ptr @__glewXGetFBConfigAttrib, align 8, !tbaa !5
  %163 = load ptr, ptr %0, align 8, !tbaa !9
  %164 = load ptr, ptr %26, align 8, !tbaa !5
  %165 = call i32 %162(ptr noundef %163, ptr noundef %164, i32 noundef 6, ptr noundef nonnull %3) #3
  %166 = load ptr, ptr @file, align 8, !tbaa !5
  %.not140 = icmp eq i32 %165, 0
  %167 = load i32, ptr %3, align 4
  %.not141 = icmp eq i32 %167, 0
  %168 = select i1 %.not141, i32 46, i32 121
  %169 = select i1 %.not140, i32 %168, i32 63
  %170 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %166, ptr noundef nonnull @.str.37, i32 noundef %169) #3
  %171 = load ptr, ptr @__glewXGetFBConfigAttrib, align 8, !tbaa !5
  %172 = load ptr, ptr %0, align 8, !tbaa !9
  %173 = load ptr, ptr %26, align 8, !tbaa !5
  %174 = call i32 %171(ptr noundef %172, ptr noundef %173, i32 noundef 3, ptr noundef nonnull %3) #3
  %.not142 = icmp eq i32 %174, 0
  %175 = load ptr, ptr @file, align 8, !tbaa !5
  br i1 %.not142, label %178, label %176

176:                                              ; preds = %152
  %177 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %175, ptr noundef nonnull @.str.20) #3
  br label %181

178:                                              ; preds = %152
  %179 = load i32, ptr %3, align 4, !tbaa !15
  %180 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %175, ptr noundef nonnull @.str.38, i32 noundef %179) #3
  br label %181

181:                                              ; preds = %178, %176
  %182 = load ptr, ptr @__glewXGetFBConfigAttrib, align 8, !tbaa !5
  %183 = load ptr, ptr %0, align 8, !tbaa !9
  %184 = load ptr, ptr %26, align 8, !tbaa !5
  %185 = call i32 %182(ptr noundef %183, ptr noundef %184, i32 noundef 35, ptr noundef nonnull %3) #3
  %.not143 = icmp eq i32 %185, 0
  br i1 %.not143, label %189, label %186

186:                                              ; preds = %181
  %187 = load ptr, ptr @file, align 8, !tbaa !5
  %188 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %187, ptr noundef nonnull @.str.39) #3
  br label %200

189:                                              ; preds = %181
  %190 = load i32, ptr %3, align 4, !tbaa !15
  %191 = load ptr, ptr @file, align 8, !tbaa !5
  switch i32 %190, label %198 [
    i32 32776, label %192
    i32 32777, label %194
    i32 32768, label %196
  ]

192:                                              ; preds = %189
  %193 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %191, ptr noundef nonnull @.str.40) #3
  br label %200

194:                                              ; preds = %189
  %195 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %191, ptr noundef nonnull @.str.41) #3
  br label %200

196:                                              ; preds = %189
  %197 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %191, ptr noundef nonnull @.str.42) #3
  br label %200

198:                                              ; preds = %189
  %199 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %191, ptr noundef nonnull @.str.39) #3
  br label %200

200:                                              ; preds = %192, %196, %198, %194, %186
  %201 = load ptr, ptr @__glewXGetFBConfigAttrib, align 8, !tbaa !5
  %202 = load ptr, ptr %0, align 8, !tbaa !9
  %203 = load ptr, ptr %26, align 8, !tbaa !5
  %204 = call i32 %201(ptr noundef %202, ptr noundef %203, i32 noundef 2, ptr noundef nonnull %3) #3
  %.not144 = icmp eq i32 %204, 0
  br i1 %.not144, label %208, label %205

205:                                              ; preds = %200
  %206 = load ptr, ptr @file, align 8, !tbaa !5
  %207 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %206, ptr noundef nonnull @.str.43) #3
  br label %215

208:                                              ; preds = %200
  %209 = load i32, ptr %3, align 4, !tbaa !15
  %.not145 = icmp eq i32 %209, 0
  %210 = load ptr, ptr @file, align 8, !tbaa !5
  br i1 %.not145, label %213, label %211

211:                                              ; preds = %208
  %212 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %210, ptr noundef nonnull @.str.44, i32 noundef %209) #3
  br label %215

213:                                              ; preds = %208
  %214 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %210, ptr noundef nonnull @.str.45) #3
  br label %215

215:                                              ; preds = %211, %213, %205
  %216 = load ptr, ptr @__glewXGetFBConfigAttrib, align 8, !tbaa !5
  %217 = load ptr, ptr %0, align 8, !tbaa !9
  %218 = load ptr, ptr %26, align 8, !tbaa !5
  %219 = call i32 %216(ptr noundef %217, ptr noundef %218, i32 noundef 8, ptr noundef nonnull %3) #3
  %.not146 = icmp eq i32 %219, 0
  br i1 %.not146, label %223, label %220

220:                                              ; preds = %215
  %221 = load ptr, ptr @file, align 8, !tbaa !5
  %222 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %221, ptr noundef nonnull @.str.20) #3
  br label %230

223:                                              ; preds = %215
  %224 = load i32, ptr %3, align 4, !tbaa !15
  %.not147 = icmp eq i32 %224, 0
  %225 = load ptr, ptr @file, align 8, !tbaa !5
  br i1 %.not147, label %228, label %226

226:                                              ; preds = %223
  %227 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %225, ptr noundef nonnull @.str.38, i32 noundef %224) #3
  br label %230

228:                                              ; preds = %223
  %229 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %225, ptr noundef nonnull @.str.33) #3
  br label %230

230:                                              ; preds = %226, %228, %220
  %231 = load ptr, ptr @__glewXGetFBConfigAttrib, align 8, !tbaa !5
  %232 = load ptr, ptr %0, align 8, !tbaa !9
  %233 = load ptr, ptr %26, align 8, !tbaa !5
  %234 = call i32 %231(ptr noundef %232, ptr noundef %233, i32 noundef 9, ptr noundef nonnull %3) #3
  %.not148 = icmp eq i32 %234, 0
  br i1 %.not148, label %238, label %235

235:                                              ; preds = %230
  %236 = load ptr, ptr @file, align 8, !tbaa !5
  %237 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %236, ptr noundef nonnull @.str.20) #3
  br label %245

238:                                              ; preds = %230
  %239 = load i32, ptr %3, align 4, !tbaa !15
  %.not149 = icmp eq i32 %239, 0
  %240 = load ptr, ptr @file, align 8, !tbaa !5
  br i1 %.not149, label %243, label %241

241:                                              ; preds = %238
  %242 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %240, ptr noundef nonnull @.str.38, i32 noundef %239) #3
  br label %245

243:                                              ; preds = %238
  %244 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %240, ptr noundef nonnull @.str.33) #3
  br label %245

245:                                              ; preds = %241, %243, %235
  %246 = load ptr, ptr @__glewXGetFBConfigAttrib, align 8, !tbaa !5
  %247 = load ptr, ptr %0, align 8, !tbaa !9
  %248 = load ptr, ptr %26, align 8, !tbaa !5
  %249 = call i32 %246(ptr noundef %247, ptr noundef %248, i32 noundef 10, ptr noundef nonnull %3) #3
  %.not150 = icmp eq i32 %249, 0
  br i1 %.not150, label %253, label %250

250:                                              ; preds = %245
  %251 = load ptr, ptr @file, align 8, !tbaa !5
  %252 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %251, ptr noundef nonnull @.str.20) #3
  br label %260

253:                                              ; preds = %245
  %254 = load i32, ptr %3, align 4, !tbaa !15
  %.not151 = icmp eq i32 %254, 0
  %255 = load ptr, ptr @file, align 8, !tbaa !5
  br i1 %.not151, label %258, label %256

256:                                              ; preds = %253
  %257 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %255, ptr noundef nonnull @.str.38, i32 noundef %254) #3
  br label %260

258:                                              ; preds = %253
  %259 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %255, ptr noundef nonnull @.str.33) #3
  br label %260

260:                                              ; preds = %256, %258, %250
  %261 = load ptr, ptr @__glewXGetFBConfigAttrib, align 8, !tbaa !5
  %262 = load ptr, ptr %0, align 8, !tbaa !9
  %263 = load ptr, ptr %26, align 8, !tbaa !5
  %264 = call i32 %261(ptr noundef %262, ptr noundef %263, i32 noundef 11, ptr noundef nonnull %3) #3
  %.not152 = icmp eq i32 %264, 0
  br i1 %.not152, label %268, label %265

265:                                              ; preds = %260
  %266 = load ptr, ptr @file, align 8, !tbaa !5
  %267 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %266, ptr noundef nonnull @.str.39) #3
  br label %275

268:                                              ; preds = %260
  %269 = load i32, ptr %3, align 4, !tbaa !15
  %.not153 = icmp eq i32 %269, 0
  %270 = load ptr, ptr @file, align 8, !tbaa !5
  br i1 %.not153, label %273, label %271

271:                                              ; preds = %268
  %272 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %270, ptr noundef nonnull @.str.46, i32 noundef %269) #3
  br label %275

273:                                              ; preds = %268
  %274 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %270, ptr noundef nonnull @.str.42) #3
  br label %275

275:                                              ; preds = %271, %273, %265
  %276 = load ptr, ptr @__glewXGetFBConfigAttrib, align 8, !tbaa !5
  %277 = load ptr, ptr %0, align 8, !tbaa !9
  %278 = load ptr, ptr %26, align 8, !tbaa !5
  %279 = call i32 %276(ptr noundef %277, ptr noundef %278, i32 noundef 7, ptr noundef nonnull %3) #3
  %.not154 = icmp eq i32 %279, 0
  br i1 %.not154, label %283, label %280

280:                                              ; preds = %275
  %281 = load ptr, ptr @file, align 8, !tbaa !5
  %282 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %281, ptr noundef nonnull @.str.20) #3
  br label %290

283:                                              ; preds = %275
  %284 = load i32, ptr %3, align 4, !tbaa !15
  %.not155 = icmp eq i32 %284, 0
  %285 = load ptr, ptr @file, align 8, !tbaa !5
  br i1 %.not155, label %288, label %286

286:                                              ; preds = %283
  %287 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %285, ptr noundef nonnull @.str.38, i32 noundef %284) #3
  br label %290

288:                                              ; preds = %283
  %289 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %285, ptr noundef nonnull @.str.33) #3
  br label %290

290:                                              ; preds = %286, %288, %280
  %291 = load ptr, ptr @__glewXGetFBConfigAttrib, align 8, !tbaa !5
  %292 = load ptr, ptr %0, align 8, !tbaa !9
  %293 = load ptr, ptr %26, align 8, !tbaa !5
  %294 = call i32 %291(ptr noundef %292, ptr noundef %293, i32 noundef 12, ptr noundef nonnull %3) #3
  %.not156 = icmp eq i32 %294, 0
  br i1 %.not156, label %298, label %295

295:                                              ; preds = %290
  %296 = load ptr, ptr @file, align 8, !tbaa !5
  %297 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %296, ptr noundef nonnull @.str.20) #3
  br label %305

298:                                              ; preds = %290
  %299 = load i32, ptr %3, align 4, !tbaa !15
  %.not157 = icmp eq i32 %299, 0
  %300 = load ptr, ptr @file, align 8, !tbaa !5
  br i1 %.not157, label %303, label %301

301:                                              ; preds = %298
  %302 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %300, ptr noundef nonnull @.str.38, i32 noundef %299) #3
  br label %305

303:                                              ; preds = %298
  %304 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %300, ptr noundef nonnull @.str.33) #3
  br label %305

305:                                              ; preds = %301, %303, %295
  %306 = load ptr, ptr @__glewXGetFBConfigAttrib, align 8, !tbaa !5
  %307 = load ptr, ptr %0, align 8, !tbaa !9
  %308 = load ptr, ptr %26, align 8, !tbaa !5
  %309 = call i32 %306(ptr noundef %307, ptr noundef %308, i32 noundef 13, ptr noundef nonnull %3) #3
  %.not158 = icmp eq i32 %309, 0
  br i1 %.not158, label %313, label %310

310:                                              ; preds = %305
  %311 = load ptr, ptr @file, align 8, !tbaa !5
  %312 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %311, ptr noundef nonnull @.str.39) #3
  br label %320

313:                                              ; preds = %305
  %314 = load i32, ptr %3, align 4, !tbaa !15
  %.not159 = icmp eq i32 %314, 0
  %315 = load ptr, ptr @file, align 8, !tbaa !5
  br i1 %.not159, label %318, label %316

316:                                              ; preds = %313
  %317 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %315, ptr noundef nonnull @.str.46, i32 noundef %314) #3
  br label %320

318:                                              ; preds = %313
  %319 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %315, ptr noundef nonnull @.str.42) #3
  br label %320

320:                                              ; preds = %316, %318, %310
  %321 = load ptr, ptr @__glewXGetFBConfigAttrib, align 8, !tbaa !5
  %322 = load ptr, ptr %0, align 8, !tbaa !9
  %323 = load ptr, ptr %26, align 8, !tbaa !5
  %324 = call i32 %321(ptr noundef %322, ptr noundef %323, i32 noundef 14, ptr noundef nonnull %3) #3
  %.not160 = icmp eq i32 %324, 0
  br i1 %.not160, label %328, label %325

325:                                              ; preds = %320
  %326 = load ptr, ptr @file, align 8, !tbaa !5
  %327 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %326, ptr noundef nonnull @.str.20) #3
  br label %335

328:                                              ; preds = %320
  %329 = load i32, ptr %3, align 4, !tbaa !15
  %.not161 = icmp eq i32 %329, 0
  %330 = load ptr, ptr @file, align 8, !tbaa !5
  br i1 %.not161, label %333, label %331

331:                                              ; preds = %328
  %332 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %330, ptr noundef nonnull @.str.38, i32 noundef %329) #3
  br label %335

333:                                              ; preds = %328
  %334 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %330, ptr noundef nonnull @.str.33) #3
  br label %335

335:                                              ; preds = %331, %333, %325
  %336 = load ptr, ptr @__glewXGetFBConfigAttrib, align 8, !tbaa !5
  %337 = load ptr, ptr %0, align 8, !tbaa !9
  %338 = load ptr, ptr %26, align 8, !tbaa !5
  %339 = call i32 %336(ptr noundef %337, ptr noundef %338, i32 noundef 15, ptr noundef nonnull %3) #3
  %.not162 = icmp eq i32 %339, 0
  br i1 %.not162, label %343, label %340

340:                                              ; preds = %335
  %341 = load ptr, ptr @file, align 8, !tbaa !5
  %342 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %341, ptr noundef nonnull @.str.20) #3
  br label %350

343:                                              ; preds = %335
  %344 = load i32, ptr %3, align 4, !tbaa !15
  %.not163 = icmp eq i32 %344, 0
  %345 = load ptr, ptr @file, align 8, !tbaa !5
  br i1 %.not163, label %348, label %346

346:                                              ; preds = %343
  %347 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %345, ptr noundef nonnull @.str.38, i32 noundef %344) #3
  br label %350

348:                                              ; preds = %343
  %349 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %345, ptr noundef nonnull @.str.33) #3
  br label %350

350:                                              ; preds = %346, %348, %340
  %351 = load ptr, ptr @__glewXGetFBConfigAttrib, align 8, !tbaa !5
  %352 = load ptr, ptr %0, align 8, !tbaa !9
  %353 = load ptr, ptr %26, align 8, !tbaa !5
  %354 = call i32 %351(ptr noundef %352, ptr noundef %353, i32 noundef 16, ptr noundef nonnull %3) #3
  %.not164 = icmp eq i32 %354, 0
  br i1 %.not164, label %358, label %355

355:                                              ; preds = %350
  %356 = load ptr, ptr @file, align 8, !tbaa !5
  %357 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %356, ptr noundef nonnull @.str.20) #3
  br label %365

358:                                              ; preds = %350
  %359 = load i32, ptr %3, align 4, !tbaa !15
  %.not165 = icmp eq i32 %359, 0
  %360 = load ptr, ptr @file, align 8, !tbaa !5
  br i1 %.not165, label %363, label %361

361:                                              ; preds = %358
  %362 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %360, ptr noundef nonnull @.str.38, i32 noundef %359) #3
  br label %365

363:                                              ; preds = %358
  %364 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %360, ptr noundef nonnull @.str.33) #3
  br label %365

365:                                              ; preds = %361, %363, %355
  %366 = load ptr, ptr @__glewXGetFBConfigAttrib, align 8, !tbaa !5
  %367 = load ptr, ptr %0, align 8, !tbaa !9
  %368 = load ptr, ptr %26, align 8, !tbaa !5
  %369 = call i32 %366(ptr noundef %367, ptr noundef %368, i32 noundef 17, ptr noundef nonnull %3) #3
  %.not166 = icmp eq i32 %369, 0
  br i1 %.not166, label %373, label %370

370:                                              ; preds = %365
  %371 = load ptr, ptr @file, align 8, !tbaa !5
  %372 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %371, ptr noundef nonnull @.str.39) #3
  br label %380

373:                                              ; preds = %365
  %374 = load i32, ptr %3, align 4, !tbaa !15
  %.not167 = icmp eq i32 %374, 0
  %375 = load ptr, ptr @file, align 8, !tbaa !5
  br i1 %.not167, label %378, label %376

376:                                              ; preds = %373
  %377 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %375, ptr noundef nonnull @.str.46, i32 noundef %374) #3
  br label %380

378:                                              ; preds = %373
  %379 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %375, ptr noundef nonnull @.str.42) #3
  br label %380

380:                                              ; preds = %376, %378, %370
  %381 = load ptr, ptr @__glewXGetFBConfigAttrib, align 8, !tbaa !5
  %382 = load ptr, ptr %0, align 8, !tbaa !9
  %383 = load ptr, ptr %26, align 8, !tbaa !5
  %384 = call i32 %381(ptr noundef %382, ptr noundef %383, i32 noundef 100001, ptr noundef nonnull %3) #3
  %.not168 = icmp eq i32 %384, 0
  %385 = load ptr, ptr @file, align 8, !tbaa !5
  br i1 %.not168, label %388, label %386

386:                                              ; preds = %380
  %387 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %385, ptr noundef nonnull @.str.20) #3
  br label %391

388:                                              ; preds = %380
  %389 = load i32, ptr %3, align 4, !tbaa !15
  %390 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %385, ptr noundef nonnull @.str.38, i32 noundef %389) #3
  br label %391

391:                                              ; preds = %388, %386
  %392 = load ptr, ptr @__glewXGetFBConfigAttrib, align 8, !tbaa !5
  %393 = load ptr, ptr %0, align 8, !tbaa !9
  %394 = load ptr, ptr %26, align 8, !tbaa !5
  %395 = call i32 %392(ptr noundef %393, ptr noundef %394, i32 noundef 100000, ptr noundef nonnull %3) #3
  %.not169 = icmp eq i32 %395, 0
  %396 = load ptr, ptr @file, align 8, !tbaa !5
  br i1 %.not169, label %399, label %397

397:                                              ; preds = %391
  %398 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %396, ptr noundef nonnull @.str.39) #3
  br label %402

399:                                              ; preds = %391
  %400 = load i32, ptr %3, align 4, !tbaa !15
  %401 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %396, ptr noundef nonnull @.str.46, i32 noundef %400) #3
  br label %402

402:                                              ; preds = %399, %397
  %403 = load ptr, ptr @__glewXGetFBConfigAttrib, align 8, !tbaa !5
  %404 = load ptr, ptr %0, align 8, !tbaa !9
  %405 = load ptr, ptr %26, align 8, !tbaa !5
  %406 = call i32 %403(ptr noundef %404, ptr noundef %405, i32 noundef 32, ptr noundef nonnull %3) #3
  %.not170 = icmp eq i32 %406, 0
  br i1 %.not170, label %410, label %407

407:                                              ; preds = %402
  %408 = load ptr, ptr @file, align 8, !tbaa !5
  %409 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %408, ptr noundef nonnull @.str.47) #3
  br label %421

410:                                              ; preds = %402
  %411 = load i32, ptr %3, align 4, !tbaa !15
  %412 = load ptr, ptr @file, align 8, !tbaa !5
  switch i32 %411, label %419 [
    i32 32768, label %413
    i32 32769, label %415
    i32 32781, label %417
  ]

413:                                              ; preds = %410
  %414 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %412, ptr noundef nonnull @.str.48) #3
  br label %421

415:                                              ; preds = %410
  %416 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %412, ptr noundef nonnull @.str.49) #3
  br label %421

417:                                              ; preds = %410
  %418 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %412, ptr noundef nonnull @.str.50) #3
  br label %421

419:                                              ; preds = %410
  %420 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %412, ptr noundef nonnull @.str.51) #3
  br label %421

421:                                              ; preds = %407, %415, %419, %417, %413
  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
  %422 = load i32, ptr %2, align 4, !tbaa !15
  %423 = sext i32 %422 to i64
  %424 = icmp slt i64 %indvars.iv.next, %423
  br i1 %424, label %.lr.ph, label %._crit_edge, !llvm.loop !17

._crit_edge:                                      ; preds = %421, %13
  %425 = load ptr, ptr @file, align 8, !tbaa !5
  %426 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %425, ptr noundef nonnull @.str.15) #3
  %427 = load ptr, ptr @file, align 8, !tbaa !5
  %428 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %427, ptr noundef nonnull @.str.17) #3
  %429 = load ptr, ptr @file, align 8, !tbaa !5
  %430 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %429, ptr noundef nonnull @.str.16) #3
  %431 = load ptr, ptr @file, align 8, !tbaa !5
  %432 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %431, ptr noundef nonnull @.str.15) #3
  br label %433

433:                                              ; preds = %._crit_edge, %1
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %3) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %2) #3
  ret void
}

; Function Attrs: mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite)
declare void @llvm.lifetime.end.p0(i64 immarg, ptr nocapture) #0

attributes #0 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #1 = { nofree nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #2 = { nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { nounwind }

!llvm.module.flags = !{!0, !1, !2, !3}
!llvm.ident = !{!4}

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"any pointer", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/C++ TBAA"}
!9 = !{!10, !6, i64 0}
!10 = !{!"GLContextStruct", !6, i64 0, !6, i64 8, !6, i64 16, !11, i64 24, !11, i64 32}
!11 = !{!"long", !7, i64 0}
!12 = !{!13, !14, i64 224}
!13 = !{!"", !6, i64 0, !6, i64 8, !14, i64 16, !14, i64 20, !14, i64 24, !14, i64 28, !6, i64 32, !11, i64 40, !11, i64 48, !11, i64 56, !14, i64 64, !6, i64 72, !14, i64 80, !14, i64 84, !14, i64 88, !14, i64 92, !14, i64 96, !6, i64 104, !14, i64 112, !14, i64 116, !6, i64 120, !6, i64 128, !14, i64 136, !11, i64 144, !11, i64 152, !6, i64 160, !6, i64 168, !6, i64 176, !6, i64 184, !14, i64 192, !6, i64 200, !6, i64 208, !6, i64 216, !14, i64 224, !14, i64 228, !6, i64 232, !11, i64 240, !11, i64 248, !14, i64 256, !14, i64 260, !6, i64 264, !6, i64 272, !14, i64 280, !6, i64 288}
!14 = !{!"int", !7, i64 0}
!15 = !{!14, !14, i64 0}
!16 = !{!7, !7, i64 0}
!17 = distinct !{!17, !18}
!18 = !{!"llvm.loop.mustprogress"}


; Effective O3 passes: EarlyCSEPass,GlobalOptPass,IndVarSimplifyPass,InferFunctionAttrsPass,InstCombinePass,JumpThreadingPass,LoopRotatePass,LoopSimplifyPass,LoopUnrollPass,PostOrderFunctionAttrsPass,SROAPass,SimplifyCFGPass