; LLVM IR from thalium/icebox :: third_party/virtualbox/src/VBox/Devices/EFI/Firmware/IntelFrameworkModulePkg (Table)

; 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.PXENV_T = type <{ [6 x i8], i16, i8, i8, i32, i32, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, i16, ptr }>

@.str.52 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.53 = external hidden unnamed_addr constant [80 x i8], align 1
@.str.54 = external hidden unnamed_addr constant [58 x i8], align 1
@.str.55 = external hidden unnamed_addr constant [59 x i8], align 1
@.str.56 = external hidden unnamed_addr constant [53 x i8], align 1
@.str.57 = external hidden unnamed_addr constant [40 x i8], align 1
@.str.58 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.59 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.60 = external hidden unnamed_addr constant [33 x i8], align 1
@.str.61 = external hidden unnamed_addr constant [37 x i8], align 1
@.str.62 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.63 = external hidden unnamed_addr constant [37 x i8], align 1
@.str.64 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.65 = external hidden unnamed_addr constant [37 x i8], align 1
@.str.66 = external hidden unnamed_addr constant [41 x i8], align 1
@.str.67 = external hidden unnamed_addr constant [82 x i8], align 1
@.str.68 = external hidden unnamed_addr constant [47 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: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite)
declare void @llvm.lifetime.end.p0(i64 immarg, ptr nocapture) #0

declare zeroext i8 @DebugPrintEnabled() #1

declare zeroext i8 @DebugPrintLevelEnabled(i64 noundef) #1

declare void @DebugPrint(i64 noundef, ptr noundef, ...) #1

; Function Attrs: nounwind uwtable
define dso_local void @Print_PXENV_Table(ptr noundef %0) #2 {
  %2 = alloca ptr, align 8
  %3 = alloca ptr, align 8
  store ptr %0, ptr %2, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %3) #3
  %4 = load ptr, ptr %2, align 8, !tbaa !5
  store ptr %4, ptr %3, align 8, !tbaa !5
  br label %5

5:                                                ; preds = %1
  %6 = call zeroext i8 @DebugPrintEnabled()
  %7 = icmp ne i8 %6, 0
  br i1 %7, label %8, label %46

8:                                                ; preds = %5
  br label %9

9:                                                ; preds = %8
  %10 = call zeroext i8 @DebugPrintLevelEnabled(i64 noundef 16384)
  %11 = icmp ne i8 %10, 0
  br i1 %11, label %12, label %43

12:                                               ; preds = %9
  %13 = load ptr, ptr %3, align 8, !tbaa !5
  %14 = getelementptr inbounds %struct.PXENV_T, ptr %13, i32 0, i32 0
  %15 = getelementptr inbounds [6 x i8], ptr %14, i64 0, i64 0
  %16 = load i8, ptr %15, align 1, !tbaa !9
  %17 = sext i8 %16 to i32
  %18 = load ptr, ptr %3, align 8, !tbaa !5
  %19 = getelementptr inbounds %struct.PXENV_T, ptr %18, i32 0, i32 0
  %20 = getelementptr inbounds [6 x i8], ptr %19, i64 0, i64 1
  %21 = load i8, ptr %20, align 1, !tbaa !9
  %22 = sext i8 %21 to i32
  %23 = load ptr, ptr %3, align 8, !tbaa !5
  %24 = getelementptr inbounds %struct.PXENV_T, ptr %23, i32 0, i32 0
  %25 = getelementptr inbounds [6 x i8], ptr %24, i64 0, i64 2
  %26 = load i8, ptr %25, align 1, !tbaa !9
  %27 = sext i8 %26 to i32
  %28 = load ptr, ptr %3, align 8, !tbaa !5
  %29 = getelementptr inbounds %struct.PXENV_T, ptr %28, i32 0, i32 0
  %30 = getelementptr inbounds [6 x i8], ptr %29, i64 0, i64 3
  %31 = load i8, ptr %30, align 1, !tbaa !9
  %32 = sext i8 %31 to i32
  %33 = load ptr, ptr %3, align 8, !tbaa !5
  %34 = getelementptr inbounds %struct.PXENV_T, ptr %33, i32 0, i32 0
  %35 = getelementptr inbounds [6 x i8], ptr %34, i64 0, i64 4
  %36 = load i8, ptr %35, align 1, !tbaa !9
  %37 = sext i8 %36 to i32
  %38 = load ptr, ptr %3, align 8, !tbaa !5
  %39 = getelementptr inbounds %struct.PXENV_T, ptr %38, i32 0, i32 0
  %40 = getelementptr inbounds [6 x i8], ptr %39, i64 0, i64 5
  %41 = load i8, ptr %40, align 1, !tbaa !9
  %42 = sext i8 %41 to i32
  call void (i64, ptr, ...) @DebugPrint(i64 noundef 16384, ptr noundef @.str.52, i32 noundef %17, i32 noundef %22, i32 noundef %27, i32 noundef %32, i32 noundef %37, i32 noundef %42)
  br label %43

43:                                               ; preds = %12, %9
  br label %44

44:                                               ; preds = %43
  br label %45

45:                                               ; preds = %44
  br label %46

46:                                               ; preds = %45, %5
  br label %47

47:                                               ; preds = %46
  br label %48

48:                                               ; preds = %47
  br label %49

49:                                               ; preds = %48
  %50 = call zeroext i8 @DebugPrintEnabled()
  %51 = icmp ne i8 %50, 0
  br i1 %51, label %52, label %64

52:                                               ; preds = %49
  br label %53

53:                                               ; preds = %52
  %54 = call zeroext i8 @DebugPrintLevelEnabled(i64 noundef 16384)
  %55 = icmp ne i8 %54, 0
  br i1 %55, label %56, label %61

56:                                               ; preds = %53
  %57 = load ptr, ptr %3, align 8, !tbaa !5
  %58 = getelementptr inbounds %struct.PXENV_T, ptr %57, i32 0, i32 1
  %59 = load i16, ptr %58, align 1, !tbaa !10
  %60 = zext i16 %59 to i32
  call void (i64, ptr, ...) @DebugPrint(i64 noundef 16384, ptr noundef @.str.53, i32 noundef %60)
  br label %61

61:                                               ; preds = %56, %53
  br label %62

62:                                               ; preds = %61
  br label %63

63:                                               ; preds = %62
  br label %64

64:                                               ; preds = %63, %49
  br label %65

65:                                               ; preds = %64
  br label %66

66:                                               ; preds = %65
  br label %67

67:                                               ; preds = %66
  %68 = call zeroext i8 @DebugPrintEnabled()
  %69 = icmp ne i8 %68, 0
  br i1 %69, label %70, label %82

70:                                               ; preds = %67
  br label %71

71:                                               ; preds = %70
  %72 = call zeroext i8 @DebugPrintLevelEnabled(i64 noundef 16384)
  %73 = icmp ne i8 %72, 0
  br i1 %73, label %74, label %79

74:                                               ; preds = %71
  %75 = load ptr, ptr %3, align 8, !tbaa !5
  %76 = getelementptr inbounds %struct.PXENV_T, ptr %75, i32 0, i32 2
  %77 = load i8, ptr %76, align 1, !tbaa !14
  %78 = zext i8 %77 to i32
  call void (i64, ptr, ...) @DebugPrint(i64 noundef 16384, ptr noundef @.str.54, i32 noundef %78)
  br label %79

79:                                               ; preds = %74, %71
  br label %80

80:                                               ; preds = %79
  br label %81

81:                                               ; preds = %80
  br label %82

82:                                               ; preds = %81, %67
  br label %83

83:                                               ; preds = %82
  br label %84

84:                                               ; preds = %83
  br label %85

85:                                               ; preds = %84
  %86 = call zeroext i8 @DebugPrintEnabled()
  %87 = icmp ne i8 %86, 0
  br i1 %87, label %88, label %100

88:                                               ; preds = %85
  br label %89

89:                                               ; preds = %88
  %90 = call zeroext i8 @DebugPrintLevelEnabled(i64 noundef 16384)
  %91 = icmp ne i8 %90, 0
  br i1 %91, label %92, label %97

92:                                               ; preds = %89
  %93 = load ptr, ptr %3, align 8, !tbaa !5
  %94 = getelementptr inbounds %struct.PXENV_T, ptr %93, i32 0, i32 3
  %95 = load i8, ptr %94, align 1, !tbaa !15
  %96 = zext i8 %95 to i32
  call void (i64, ptr, ...) @DebugPrint(i64 noundef 16384, ptr noundef @.str.55, i32 noundef %96)
  br label %97

97:                                               ; preds = %92, %89
  br label %98

98:                                               ; preds = %97
  br label %99

99:                                               ; preds = %98
  br label %100

100:                                              ; preds = %99, %85
  br label %101

101:                                              ; preds = %100
  br label %102

102:                                              ; preds = %101
  br label %103

103:                                              ; preds = %102
  %104 = call zeroext i8 @DebugPrintEnabled()
  %105 = icmp ne i8 %104, 0
  br i1 %105, label %106, label %117

106:                                              ; preds = %103
  br label %107

107:                                              ; preds = %106
  %108 = call zeroext i8 @DebugPrintLevelEnabled(i64 noundef 16384)
  %109 = icmp ne i8 %108, 0
  br i1 %109, label %110, label %114

110:                                              ; preds = %107
  %111 = load ptr, ptr %3, align 8, !tbaa !5
  %112 = getelementptr inbounds %struct.PXENV_T, ptr %111, i32 0, i32 4
  %113 = load i32, ptr %112, align 1, !tbaa !16
  call void (i64, ptr, ...) @DebugPrint(i64 noundef 16384, ptr noundef @.str.56, i32 noundef %113)
  br label %114

114:                                              ; preds = %110, %107
  br label %115

115:                                              ; preds = %114
  br label %116

116:                                              ; preds = %115
  br label %117

117:                                              ; preds = %116, %103
  br label %118

118:                                              ; preds = %117
  br label %119

119:                                              ; preds = %118
  br label %120

120:                                              ; preds = %119
  %121 = call zeroext i8 @DebugPrintEnabled()
  %122 = icmp ne i8 %121, 0
  br i1 %122, label %123, label %134

123:                                              ; preds = %120
  br label %124

124:                                              ; preds = %123
  %125 = call zeroext i8 @DebugPrintLevelEnabled(i64 noundef 16384)
  %126 = icmp ne i8 %125, 0
  br i1 %126, label %127, label %131

127:                                              ; preds = %124
  %128 = load ptr, ptr %3, align 8, !tbaa !5
  %129 = getelementptr inbounds %struct.PXENV_T, ptr %128, i32 0, i32 5
  %130 = load i32, ptr %129, align 1, !tbaa !17
  call void (i64, ptr, ...) @DebugPrint(i64 noundef 16384, ptr noundef @.str.57, i32 noundef %130)
  br label %131

131:                                              ; preds = %127, %124
  br label %132

132:                                              ; preds = %131
  br label %133

133:                                              ; preds = %132
  br label %134

134:                                              ; preds = %133, %120
  br label %135

135:                                              ; preds = %134
  br label %136

136:                                              ; preds = %135
  br label %137

137:                                              ; preds = %136
  %138 = call zeroext i8 @DebugPrintEnabled()
  %139 = icmp ne i8 %138, 0
  br i1 %139, label %140, label %148

140:                                              ; preds = %137
  br label %141

141:                                              ; preds = %140
  %142 = call zeroext i8 @DebugPrintLevelEnabled(i64 noundef 16384)
  %143 = icmp ne i8 %142, 0
  br i1 %143, label %144, label %145

144:                                              ; preds = %141
  call void (i64, ptr, ...) @DebugPrint(i64 noundef 16384, ptr noundef @.str.58)
  br label %145

145:                                              ; preds = %144, %141
  br label %146

146:                                              ; preds = %145
  br label %147

147:                                              ; preds = %146
  br label %148

148:                                              ; preds = %147, %137
  br label %149

149:                                              ; preds = %148
  br label %150

150:                                              ; preds = %149
  br label %151

151:                                              ; preds = %150
  %152 = call zeroext i8 @DebugPrintEnabled()
  %153 = icmp ne i8 %152, 0
  br i1 %153, label %154, label %166

154:                                              ; preds = %151
  br label %155

155:                                              ; preds = %154
  %156 = call zeroext i8 @DebugPrintLevelEnabled(i64 noundef 16384)
  %157 = icmp ne i8 %156, 0
  br i1 %157, label %158, label %163

158:                                              ; preds = %155
  %159 = load ptr, ptr %3, align 8, !tbaa !5
  %160 = getelementptr inbounds %struct.PXENV_T, ptr %159, i32 0, i32 6
  %161 = load i16, ptr %160, align 1, !tbaa !18
  %162 = zext i16 %161 to i32
  call void (i64, ptr, ...) @DebugPrint(i64 noundef 16384, ptr noundef @.str.59, i32 noundef %162)
  br label %163

163:                                              ; preds = %158, %155
  br label %164

164:                                              ; preds = %163
  br label %165

165:                                              ; preds = %164
  br label %166

166:                                              ; preds = %165, %151
  br label %167

167:                                              ; preds = %166
  br label %168

168:                                              ; preds = %167
  br label %169

169:                                              ; preds = %168
  %170 = call zeroext i8 @DebugPrintEnabled()
  %171 = icmp ne i8 %170, 0
  br i1 %171, label %172, label %184

172:                                              ; preds = %169
  br label %173

173:                                              ; preds = %172
  %174 = call zeroext i8 @DebugPrintLevelEnabled(i64 noundef 16384)
  %175 = icmp ne i8 %174, 0
  br i1 %175, label %176, label %181

176:                                              ; preds = %173
  %177 = load ptr, ptr %3, align 8, !tbaa !5
  %178 = getelementptr inbounds %struct.PXENV_T, ptr %177, i32 0, i32 7
  %179 = load i16, ptr %178, align 1, !tbaa !19
  %180 = zext i16 %179 to i32
  call void (i64, ptr, ...) @DebugPrint(i64 noundef 16384, ptr noundef @.str.60, i32 noundef %180)
  br label %181

181:                                              ; preds = %176, %173
  br label %182

182:                                              ; preds = %181
  br label %183

183:                                              ; preds = %182
  br label %184

184:                                              ; preds = %183, %169
  br label %185

185:                                              ; preds = %184
  br label %186

186:                                              ; preds = %185
  br label %187

187:                                              ; preds = %186
  %188 = call zeroext i8 @DebugPrintEnabled()
  %189 = icmp ne i8 %188, 0
  br i1 %189, label %190, label %202

190:                                              ; preds = %187
  br label %191

191:                                              ; preds = %190
  %192 = call zeroext i8 @DebugPrintLevelEnabled(i64 noundef 16384)
  %193 = icmp ne i8 %192, 0
  br i1 %193, label %194, label %199

194:                                              ; preds = %191
  %195 = load ptr, ptr %3, align 8, !tbaa !5
  %196 = getelementptr inbounds %struct.PXENV_T, ptr %195, i32 0, i32 8
  %197 = load i16, ptr %196, align 1, !tbaa !20
  %198 = zext i16 %197 to i32
  call void (i64, ptr, ...) @DebugPrint(i64 noundef 16384, ptr noundef @.str.61, i32 noundef %198)
  br label %199

199:                                              ; preds = %194, %191
  br label %200

200:                                              ; preds = %199
  br label %201

201:                                              ; preds = %200
  br label %202

202:                                              ; preds = %201, %187
  br label %203

203:                                              ; preds = %202
  br label %204

204:                                              ; preds = %203
  br label %205

205:                                              ; preds = %204
  %206 = call zeroext i8 @DebugPrintEnabled()
  %207 = icmp ne i8 %206, 0
  br i1 %207, label %208, label %220

208:                                              ; preds = %205
  br label %209

209:                                              ; preds = %208
  %210 = call zeroext i8 @DebugPrintLevelEnabled(i64 noundef 16384)
  %211 = icmp ne i8 %210, 0
  br i1 %211, label %212, label %217

212:                                              ; preds = %209
  %213 = load ptr, ptr %3, align 8, !tbaa !5
  %214 = getelementptr inbounds %struct.PXENV_T, ptr %213, i32 0, i32 9
  %215 = load i16, ptr %214, align 1, !tbaa !21
  %216 = zext i16 %215 to i32
  call void (i64, ptr, ...) @DebugPrint(i64 noundef 16384, ptr noundef @.str.62, i32 noundef %216)
  br label %217

217:                                              ; preds = %212, %209
  br label %218

218:                                              ; preds = %217
  br label %219

219:                                              ; preds = %218
  br label %220

220:                                              ; preds = %219, %205
  br label %221

221:                                              ; preds = %220
  br label %222

222:                                              ; preds = %221
  br label %223

223:                                              ; preds = %222
  %224 = call zeroext i8 @DebugPrintEnabled()
  %225 = icmp ne i8 %224, 0
  br i1 %225, label %226, label %238

226:                                              ; preds = %223
  br label %227

227:                                              ; preds = %226
  %228 = call zeroext i8 @DebugPrintLevelEnabled(i64 noundef 16384)
  %229 = icmp ne i8 %228, 0
  br i1 %229, label %230, label %235

230:                                              ; preds = %227
  %231 = load ptr, ptr %3, align 8, !tbaa !5
  %232 = getelementptr inbounds %struct.PXENV_T, ptr %231, i32 0, i32 10
  %233 = load i16, ptr %232, align 1, !tbaa !22
  %234 = zext i16 %233 to i32
  call void (i64, ptr, ...) @DebugPrint(i64 noundef 16384, ptr noundef @.str.63, i32 noundef %234)
  br label %235

235:                                              ; preds = %230, %227
  br label %236

236:                                              ; preds = %235
  br label %237

237:                                              ; preds = %236
  br label %238

238:                                              ; preds = %237, %223
  br label %239

239:                                              ; preds = %238
  br label %240

240:                                              ; preds = %239
  br label %241

241:                                              ; preds = %240
  %242 = call zeroext i8 @DebugPrintEnabled()
  %243 = icmp ne i8 %242, 0
  br i1 %243, label %244, label %256

244:                                              ; preds = %241
  br label %245

245:                                              ; preds = %244
  %246 = call zeroext i8 @DebugPrintLevelEnabled(i64 noundef 16384)
  %247 = icmp ne i8 %246, 0
  br i1 %247, label %248, label %253

248:                                              ; preds = %245
  %249 = load ptr, ptr %3, align 8, !tbaa !5
  %250 = getelementptr inbounds %struct.PXENV_T, ptr %249, i32 0, i32 11
  %251 = load i16, ptr %250, align 1, !tbaa !23
  %252 = zext i16 %251 to i32
  call void (i64, ptr, ...) @DebugPrint(i64 noundef 16384, ptr noundef @.str.64, i32 noundef %252)
  br label %253

253:                                              ; preds = %248, %245
  br label %254

254:                                              ; preds = %253
  br label %255

255:                                              ; preds = %254
  br label %256

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

257:                                              ; preds = %256
  br label %258

258:                                              ; preds = %257
  br label %259

259:                                              ; preds = %258
  %260 = call zeroext i8 @DebugPrintEnabled()
  %261 = icmp ne i8 %260, 0
  br i1 %261, label %262, label %274

262:                                              ; preds = %259
  br label %263

263:                                              ; preds = %262
  %264 = call zeroext i8 @DebugPrintLevelEnabled(i64 noundef 16384)
  %265 = icmp ne i8 %264, 0
  br i1 %265, label %266, label %271

266:                                              ; preds = %263
  %267 = load ptr, ptr %3, align 8, !tbaa !5
  %268 = getelementptr inbounds %struct.PXENV_T, ptr %267, i32 0, i32 12
  %269 = load i16, ptr %268, align 1, !tbaa !24
  %270 = zext i16 %269 to i32
  call void (i64, ptr, ...) @DebugPrint(i64 noundef 16384, ptr noundef @.str.65, i32 noundef %270)
  br label %271

271:                                              ; preds = %266, %263
  br label %272

272:                                              ; preds = %271
  br label %273

273:                                              ; preds = %272
  br label %274

274:                                              ; preds = %273, %259
  br label %275

275:                                              ; preds = %274
  br label %276

276:                                              ; preds = %275
  br label %277

277:                                              ; preds = %276
  %278 = call zeroext i8 @DebugPrintEnabled()
  %279 = icmp ne i8 %278, 0
  br i1 %279, label %280, label %292

280:                                              ; preds = %277
  br label %281

281:                                              ; preds = %280
  %282 = call zeroext i8 @DebugPrintLevelEnabled(i64 noundef 16384)
  %283 = icmp ne i8 %282, 0
  br i1 %283, label %284, label %289

284:                                              ; preds = %281
  %285 = load ptr, ptr %3, align 8, !tbaa !5
  %286 = getelementptr inbounds %struct.PXENV_T, ptr %285, i32 0, i32 16
  %287 = load i16, ptr %286, align 1, !tbaa !25
  %288 = zext i16 %287 to i32
  call void (i64, ptr, ...) @DebugPrint(i64 noundef 16384, ptr noundef @.str.66, i32 noundef %288)
  br label %289

289:                                              ; preds = %284, %281
  br label %290

290:                                              ; preds = %289
  br label %291

291:                                              ; preds = %290
  br label %292

292:                                              ; preds = %291, %277
  br label %293

293:                                              ; preds = %292
  br label %294

294:                                              ; preds = %293
  br label %295

295:                                              ; preds = %294
  %296 = call zeroext i8 @DebugPrintEnabled()
  %297 = icmp ne i8 %296, 0
  br i1 %297, label %298, label %309

298:                                              ; preds = %295
  br label %299

299:                                              ; preds = %298
  %300 = call zeroext i8 @DebugPrintLevelEnabled(i64 noundef 16384)
  %301 = icmp ne i8 %300, 0
  br i1 %301, label %302, label %306

302:                                              ; preds = %299
  %303 = load ptr, ptr %3, align 8, !tbaa !5
  %304 = getelementptr inbounds %struct.PXENV_T, ptr %303, i32 0, i32 17
  %305 = load ptr, ptr %304, align 1, !tbaa !26
  call void (i64, ptr, ...) @DebugPrint(i64 noundef 16384, ptr noundef @.str.67, ptr noundef %305)
  br label %306

306:                                              ; preds = %302, %299
  br label %307

307:                                              ; preds = %306
  br label %308

308:                                              ; preds = %307
  br label %309

309:                                              ; preds = %308, %295
  br label %310

310:                                              ; preds = %309
  br label %311

311:                                              ; preds = %310
  br label %312

312:                                              ; preds = %311
  %313 = call zeroext i8 @DebugPrintEnabled()
  %314 = icmp ne i8 %313, 0
  br i1 %314, label %315, label %337

315:                                              ; preds = %312
  br label %316

316:                                              ; preds = %315
  %317 = call zeroext i8 @DebugPrintLevelEnabled(i64 noundef 16384)
  %318 = icmp ne i8 %317, 0
  br i1 %318, label %319, label %334

319:                                              ; preds = %316
  %320 = load ptr, ptr %3, align 8, !tbaa !5
  %321 = getelementptr inbounds %struct.PXENV_T, ptr %320, i32 0, i32 17
  %322 = load ptr, ptr %321, align 1, !tbaa !26
  %323 = ptrtoint ptr %322 to i64
  %324 = trunc i64 %323 to i32
  %325 = and i32 %324, 65535
  %326 = load ptr, ptr %3, align 8, !tbaa !5
  %327 = getelementptr inbounds %struct.PXENV_T, ptr %326, i32 0, i32 17
  %328 = load ptr, ptr %327, align 1, !tbaa !26
  %329 = ptrtoint ptr %328 to i64
  %330 = trunc i64 %329 to i32
  %331 = and i32 %330, -65536
  %332 = lshr i32 %331, 12
  %333 = add i32 %325, %332
  call void (i64, ptr, ...) @DebugPrint(i64 noundef 16384, ptr noundef @.str.68, i32 noundef %333)
  br label %334

334:                                              ; preds = %319, %316
  br label %335

335:                                              ; preds = %334
  br label %336

336:                                              ; preds = %335
  br label %337

337:                                              ; preds = %336, %312
  br label %338

338:                                              ; preds = %337
  br label %339

339:                                              ; preds = %338
  call void @llvm.lifetime.end.p0(i64 8, ptr %3) #3
  ret void
}

attributes #0 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #1 = { "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 = !{!7, !7, i64 0}
!10 = !{!11, !12, i64 6}
!11 = !{!"", !7, i64 0, !12, i64 6, !7, i64 8, !7, i64 9, !13, i64 10, !13, i64 14, !12, i64 18, !12, i64 20, !12, i64 22, !12, i64 24, !12, i64 26, !12, i64 28, !12, i64 30, !12, i64 32, !12, i64 34, !12, i64 36, !12, i64 38, !6, i64 40}
!12 = !{!"short", !7, i64 0}
!13 = !{!"int", !7, i64 0}
!14 = !{!11, !7, i64 8}
!15 = !{!11, !7, i64 9}
!16 = !{!11, !13, i64 10}
!17 = !{!11, !13, i64 14}
!18 = !{!11, !12, i64 18}
!19 = !{!11, !12, i64 20}
!20 = !{!11, !12, i64 22}
!21 = !{!11, !12, i64 24}
!22 = !{!11, !12, i64 26}
!23 = !{!11, !12, i64 28}
!24 = !{!11, !12, i64 30}
!25 = !{!11, !12, i64 38}
!26 = !{!11, !6, i64 40}


; 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"

@.str.52 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.53 = external hidden unnamed_addr constant [80 x i8], align 1
@.str.54 = external hidden unnamed_addr constant [58 x i8], align 1
@.str.55 = external hidden unnamed_addr constant [59 x i8], align 1
@.str.56 = external hidden unnamed_addr constant [53 x i8], align 1
@.str.57 = external hidden unnamed_addr constant [40 x i8], align 1
@.str.58 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.59 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.60 = external hidden unnamed_addr constant [33 x i8], align 1
@.str.61 = external hidden unnamed_addr constant [37 x i8], align 1
@.str.62 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.63 = external hidden unnamed_addr constant [37 x i8], align 1
@.str.64 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.65 = external hidden unnamed_addr constant [37 x i8], align 1
@.str.66 = external hidden unnamed_addr constant [41 x i8], align 1
@.str.67 = external hidden unnamed_addr constant [82 x i8], align 1
@.str.68 = external hidden unnamed_addr constant [47 x i8], align 1

declare zeroext i8 @DebugPrintEnabled() local_unnamed_addr #0

declare zeroext i8 @DebugPrintLevelEnabled(i64 noundef) local_unnamed_addr #0

declare void @DebugPrint(i64 noundef, ptr noundef, ...) local_unnamed_addr #0

; Function Attrs: nounwind uwtable
define dso_local void @Print_PXENV_Table(ptr nocapture noundef readonly %0) local_unnamed_addr #1 {
  %2 = tail call zeroext i8 @DebugPrintEnabled() #2
  %.not = icmp eq i8 %2, 0
  br i1 %.not, label %23, label %3

3:                                                ; preds = %1
  %4 = tail call zeroext i8 @DebugPrintLevelEnabled(i64 noundef 16384) #2
  %.not23 = icmp eq i8 %4, 0
  br i1 %.not23, label %23, label %5

5:                                                ; preds = %3
  %6 = load i8, ptr %0, align 1, !tbaa !5
  %7 = sext i8 %6 to i32
  %8 = getelementptr inbounds i8, ptr %0, i64 1
  %9 = load i8, ptr %8, align 1, !tbaa !5
  %10 = sext i8 %9 to i32
  %11 = getelementptr inbounds i8, ptr %0, i64 2
  %12 = load i8, ptr %11, align 1, !tbaa !5
  %13 = sext i8 %12 to i32
  %14 = getelementptr inbounds i8, ptr %0, i64 3
  %15 = load i8, ptr %14, align 1, !tbaa !5
  %16 = sext i8 %15 to i32
  %17 = getelementptr inbounds i8, ptr %0, i64 4
  %18 = load i8, ptr %17, align 1, !tbaa !5
  %19 = sext i8 %18 to i32
  %20 = getelementptr inbounds i8, ptr %0, i64 5
  %21 = load i8, ptr %20, align 1, !tbaa !5
  %22 = sext i8 %21 to i32
  tail call void (i64, ptr, ...) @DebugPrint(i64 noundef 16384, ptr noundef nonnull @.str.52, i32 noundef %7, i32 noundef %10, i32 noundef %13, i32 noundef %16, i32 noundef %19, i32 noundef %22) #2
  br label %23

23:                                               ; preds = %1, %5, %3
  %24 = tail call zeroext i8 @DebugPrintEnabled() #2
  %.not24 = icmp eq i8 %24, 0
  br i1 %.not24, label %31, label %25

25:                                               ; preds = %23
  %26 = tail call zeroext i8 @DebugPrintLevelEnabled(i64 noundef 16384) #2
  %.not25 = icmp eq i8 %26, 0
  br i1 %.not25, label %31, label %27

27:                                               ; preds = %25
  %28 = getelementptr inbounds i8, ptr %0, i64 6
  %29 = load i16, ptr %28, align 1, !tbaa !8
  %30 = zext i16 %29 to i32
  tail call void (i64, ptr, ...) @DebugPrint(i64 noundef 16384, ptr noundef nonnull @.str.53, i32 noundef %30) #2
  br label %31

31:                                               ; preds = %23, %27, %25
  %32 = tail call zeroext i8 @DebugPrintEnabled() #2
  %.not26 = icmp eq i8 %32, 0
  br i1 %.not26, label %39, label %33

33:                                               ; preds = %31
  %34 = tail call zeroext i8 @DebugPrintLevelEnabled(i64 noundef 16384) #2
  %.not27 = icmp eq i8 %34, 0
  br i1 %.not27, label %39, label %35

35:                                               ; preds = %33
  %36 = getelementptr inbounds i8, ptr %0, i64 8
  %37 = load i8, ptr %36, align 1, !tbaa !13
  %38 = zext i8 %37 to i32
  tail call void (i64, ptr, ...) @DebugPrint(i64 noundef 16384, ptr noundef nonnull @.str.54, i32 noundef %38) #2
  br label %39

39:                                               ; preds = %31, %35, %33
  %40 = tail call zeroext i8 @DebugPrintEnabled() #2
  %.not28 = icmp eq i8 %40, 0
  br i1 %.not28, label %47, label %41

41:                                               ; preds = %39
  %42 = tail call zeroext i8 @DebugPrintLevelEnabled(i64 noundef 16384) #2
  %.not29 = icmp eq i8 %42, 0
  br i1 %.not29, label %47, label %43

43:                                               ; preds = %41
  %44 = getelementptr inbounds i8, ptr %0, i64 9
  %45 = load i8, ptr %44, align 1, !tbaa !14
  %46 = zext i8 %45 to i32
  tail call void (i64, ptr, ...) @DebugPrint(i64 noundef 16384, ptr noundef nonnull @.str.55, i32 noundef %46) #2
  br label %47

47:                                               ; preds = %39, %43, %41
  %48 = tail call zeroext i8 @DebugPrintEnabled() #2
  %.not30 = icmp eq i8 %48, 0
  br i1 %.not30, label %54, label %49

49:                                               ; preds = %47
  %50 = tail call zeroext i8 @DebugPrintLevelEnabled(i64 noundef 16384) #2
  %.not31 = icmp eq i8 %50, 0
  br i1 %.not31, label %54, label %51

51:                                               ; preds = %49
  %52 = getelementptr inbounds i8, ptr %0, i64 10
  %53 = load i32, ptr %52, align 1, !tbaa !15
  tail call void (i64, ptr, ...) @DebugPrint(i64 noundef 16384, ptr noundef nonnull @.str.56, i32 noundef %53) #2
  br label %54

54:                                               ; preds = %47, %51, %49
  %55 = tail call zeroext i8 @DebugPrintEnabled() #2
  %.not32 = icmp eq i8 %55, 0
  br i1 %.not32, label %61, label %56

56:                                               ; preds = %54
  %57 = tail call zeroext i8 @DebugPrintLevelEnabled(i64 noundef 16384) #2
  %.not33 = icmp eq i8 %57, 0
  br i1 %.not33, label %61, label %58

58:                                               ; preds = %56
  %59 = getelementptr inbounds i8, ptr %0, i64 14
  %60 = load i32, ptr %59, align 1, !tbaa !16
  tail call void (i64, ptr, ...) @DebugPrint(i64 noundef 16384, ptr noundef nonnull @.str.57, i32 noundef %60) #2
  br label %61

61:                                               ; preds = %54, %58, %56
  %62 = tail call zeroext i8 @DebugPrintEnabled() #2
  %.not34 = icmp eq i8 %62, 0
  br i1 %.not34, label %66, label %63

63:                                               ; preds = %61
  %64 = tail call zeroext i8 @DebugPrintLevelEnabled(i64 noundef 16384) #2
  %.not35 = icmp eq i8 %64, 0
  br i1 %.not35, label %66, label %65

65:                                               ; preds = %63
  tail call void (i64, ptr, ...) @DebugPrint(i64 noundef 16384, ptr noundef nonnull @.str.58) #2
  br label %66

66:                                               ; preds = %61, %65, %63
  %67 = tail call zeroext i8 @DebugPrintEnabled() #2
  %.not36 = icmp eq i8 %67, 0
  br i1 %.not36, label %74, label %68

68:                                               ; preds = %66
  %69 = tail call zeroext i8 @DebugPrintLevelEnabled(i64 noundef 16384) #2
  %.not37 = icmp eq i8 %69, 0
  br i1 %.not37, label %74, label %70

70:                                               ; preds = %68
  %71 = getelementptr inbounds i8, ptr %0, i64 18
  %72 = load i16, ptr %71, align 1, !tbaa !17
  %73 = zext i16 %72 to i32
  tail call void (i64, ptr, ...) @DebugPrint(i64 noundef 16384, ptr noundef nonnull @.str.59, i32 noundef %73) #2
  br label %74

74:                                               ; preds = %66, %70, %68
  %75 = tail call zeroext i8 @DebugPrintEnabled() #2
  %.not38 = icmp eq i8 %75, 0
  br i1 %.not38, label %82, label %76

76:                                               ; preds = %74
  %77 = tail call zeroext i8 @DebugPrintLevelEnabled(i64 noundef 16384) #2
  %.not39 = icmp eq i8 %77, 0
  br i1 %.not39, label %82, label %78

78:                                               ; preds = %76
  %79 = getelementptr inbounds i8, ptr %0, i64 20
  %80 = load i16, ptr %79, align 1, !tbaa !18
  %81 = zext i16 %80 to i32
  tail call void (i64, ptr, ...) @DebugPrint(i64 noundef 16384, ptr noundef nonnull @.str.60, i32 noundef %81) #2
  br label %82

82:                                               ; preds = %74, %78, %76
  %83 = tail call zeroext i8 @DebugPrintEnabled() #2
  %.not40 = icmp eq i8 %83, 0
  br i1 %.not40, label %90, label %84

84:                                               ; preds = %82
  %85 = tail call zeroext i8 @DebugPrintLevelEnabled(i64 noundef 16384) #2
  %.not41 = icmp eq i8 %85, 0
  br i1 %.not41, label %90, label %86

86:                                               ; preds = %84
  %87 = getelementptr inbounds i8, ptr %0, i64 22
  %88 = load i16, ptr %87, align 1, !tbaa !19
  %89 = zext i16 %88 to i32
  tail call void (i64, ptr, ...) @DebugPrint(i64 noundef 16384, ptr noundef nonnull @.str.61, i32 noundef %89) #2
  br label %90

90:                                               ; preds = %82, %86, %84
  %91 = tail call zeroext i8 @DebugPrintEnabled() #2
  %.not42 = icmp eq i8 %91, 0
  br i1 %.not42, label %98, label %92

92:                                               ; preds = %90
  %93 = tail call zeroext i8 @DebugPrintLevelEnabled(i64 noundef 16384) #2
  %.not43 = icmp eq i8 %93, 0
  br i1 %.not43, label %98, label %94

94:                                               ; preds = %92
  %95 = getelementptr inbounds i8, ptr %0, i64 24
  %96 = load i16, ptr %95, align 1, !tbaa !20
  %97 = zext i16 %96 to i32
  tail call void (i64, ptr, ...) @DebugPrint(i64 noundef 16384, ptr noundef nonnull @.str.62, i32 noundef %97) #2
  br label %98

98:                                               ; preds = %90, %94, %92
  %99 = tail call zeroext i8 @DebugPrintEnabled() #2
  %.not44 = icmp eq i8 %99, 0
  br i1 %.not44, label %106, label %100

100:                                              ; preds = %98
  %101 = tail call zeroext i8 @DebugPrintLevelEnabled(i64 noundef 16384) #2
  %.not45 = icmp eq i8 %101, 0
  br i1 %.not45, label %106, label %102

102:                                              ; preds = %100
  %103 = getelementptr inbounds i8, ptr %0, i64 26
  %104 = load i16, ptr %103, align 1, !tbaa !21
  %105 = zext i16 %104 to i32
  tail call void (i64, ptr, ...) @DebugPrint(i64 noundef 16384, ptr noundef nonnull @.str.63, i32 noundef %105) #2
  br label %106

106:                                              ; preds = %98, %102, %100
  %107 = tail call zeroext i8 @DebugPrintEnabled() #2
  %.not46 = icmp eq i8 %107, 0
  br i1 %.not46, label %114, label %108

108:                                              ; preds = %106
  %109 = tail call zeroext i8 @DebugPrintLevelEnabled(i64 noundef 16384) #2
  %.not47 = icmp eq i8 %109, 0
  br i1 %.not47, label %114, label %110

110:                                              ; preds = %108
  %111 = getelementptr inbounds i8, ptr %0, i64 28
  %112 = load i16, ptr %111, align 1, !tbaa !22
  %113 = zext i16 %112 to i32
  tail call void (i64, ptr, ...) @DebugPrint(i64 noundef 16384, ptr noundef nonnull @.str.64, i32 noundef %113) #2
  br label %114

114:                                              ; preds = %106, %110, %108
  %115 = tail call zeroext i8 @DebugPrintEnabled() #2
  %.not48 = icmp eq i8 %115, 0
  br i1 %.not48, label %122, label %116

116:                                              ; preds = %114
  %117 = tail call zeroext i8 @DebugPrintLevelEnabled(i64 noundef 16384) #2
  %.not49 = icmp eq i8 %117, 0
  br i1 %.not49, label %122, label %118

118:                                              ; preds = %116
  %119 = getelementptr inbounds i8, ptr %0, i64 30
  %120 = load i16, ptr %119, align 1, !tbaa !23
  %121 = zext i16 %120 to i32
  tail call void (i64, ptr, ...) @DebugPrint(i64 noundef 16384, ptr noundef nonnull @.str.65, i32 noundef %121) #2
  br label %122

122:                                              ; preds = %114, %118, %116
  %123 = tail call zeroext i8 @DebugPrintEnabled() #2
  %.not50 = icmp eq i8 %123, 0
  br i1 %.not50, label %130, label %124

124:                                              ; preds = %122
  %125 = tail call zeroext i8 @DebugPrintLevelEnabled(i64 noundef 16384) #2
  %.not51 = icmp eq i8 %125, 0
  br i1 %.not51, label %130, label %126

126:                                              ; preds = %124
  %127 = getelementptr inbounds i8, ptr %0, i64 38
  %128 = load i16, ptr %127, align 1, !tbaa !24
  %129 = zext i16 %128 to i32
  tail call void (i64, ptr, ...) @DebugPrint(i64 noundef 16384, ptr noundef nonnull @.str.66, i32 noundef %129) #2
  br label %130

130:                                              ; preds = %122, %126, %124
  %131 = tail call zeroext i8 @DebugPrintEnabled() #2
  %.not52 = icmp eq i8 %131, 0
  br i1 %.not52, label %137, label %132

132:                                              ; preds = %130
  %133 = tail call zeroext i8 @DebugPrintLevelEnabled(i64 noundef 16384) #2
  %.not53 = icmp eq i8 %133, 0
  br i1 %.not53, label %137, label %134

134:                                              ; preds = %132
  %135 = getelementptr inbounds i8, ptr %0, i64 40
  %136 = load ptr, ptr %135, align 1, !tbaa !25
  tail call void (i64, ptr, ...) @DebugPrint(i64 noundef 16384, ptr noundef nonnull @.str.67, ptr noundef %136) #2
  br label %137

137:                                              ; preds = %130, %134, %132
  %138 = tail call zeroext i8 @DebugPrintEnabled() #2
  %.not54 = icmp eq i8 %138, 0
  br i1 %.not54, label %150, label %139

139:                                              ; preds = %137
  %140 = tail call zeroext i8 @DebugPrintLevelEnabled(i64 noundef 16384) #2
  %.not55 = icmp eq i8 %140, 0
  br i1 %.not55, label %150, label %141

141:                                              ; preds = %139
  %142 = getelementptr inbounds i8, ptr %0, i64 40
  %143 = load ptr, ptr %142, align 1, !tbaa !25
  %144 = ptrtoint ptr %143 to i64
  %145 = trunc i64 %144 to i32
  %146 = and i32 %145, 65535
  %147 = lshr i32 %145, 12
  %148 = and i32 %147, 1048560
  %149 = add nuw nsw i32 %148, %146
  tail call void (i64, ptr, ...) @DebugPrint(i64 noundef 16384, ptr noundef nonnull @.str.68, i32 noundef %149) #2
  br label %150

150:                                              ; preds = %139, %141, %137
  ret void
}

attributes #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 #1 = { 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 #2 = { 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 = !{!"omnipotent char", !7, i64 0}
!7 = !{!"Simple C/C++ TBAA"}
!8 = !{!9, !10, i64 6}
!9 = !{!"", !6, i64 0, !10, i64 6, !6, i64 8, !6, i64 9, !11, i64 10, !11, i64 14, !10, i64 18, !10, i64 20, !10, i64 22, !10, i64 24, !10, i64 26, !10, i64 28, !10, i64 30, !10, i64 32, !10, i64 34, !10, i64 36, !10, i64 38, !12, i64 40}
!10 = !{!"short", !6, i64 0}
!11 = !{!"int", !6, i64 0}
!12 = !{!"any pointer", !6, i64 0}
!13 = !{!9, !6, i64 8}
!14 = !{!9, !6, i64 9}
!15 = !{!9, !11, i64 10}
!16 = !{!9, !11, i64 14}
!17 = !{!9, !10, i64 18}
!18 = !{!9, !10, i64 20}
!19 = !{!9, !10, i64 22}
!20 = !{!9, !10, i64 24}
!21 = !{!9, !10, i64 26}
!22 = !{!9, !10, i64 28}
!23 = !{!9, !10, i64 30}
!24 = !{!9, !10, i64 38}
!25 = !{!9, !12, i64 40}


; Effective O3 passes: EarlyCSEPass,GlobalOptPass,IPSCCPPass,InferFunctionAttrsPass,InstCombinePass,PostOrderFunctionAttrsPass,ReassociatePass,SROAPass,SimplifyCFGPass,TailCallElimPass