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

; 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.EFI_SIMPLE_NETWORK_DEV = type { i64, ptr, %struct._EFI_SIMPLE_NETWORK_PROTOCOL, %struct.EFI_SIMPLE_NETWORK_MODE, %struct._EFI_NETWORK_INTERFACE_IDENTIFIER_PROTOCOL, ptr, ptr, ptr, i8, ptr, ptr, i16, i16, %struct.EFI_SIMPLE_NETWORK_DEV_FIFO, ptr, ptr, %struct.PXENV_UNDI_GET_INFORMATION_T, %struct.PXENV_UNDI_GET_NIC_TYPE_T, %struct.PXENV_UNDI_GET_NDIS_INFO_T, i8, %struct.PXENV_UNDI_ISR_T, ptr, ptr, ptr, ptr, i8, i64, i64, i64, i64, ptr, ptr, ptr, ptr }
%struct._EFI_SIMPLE_NETWORK_PROTOCOL = type { i64, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr }
%struct.EFI_SIMPLE_NETWORK_MODE = type { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, [16 x %struct.EFI_MAC_ADDRESS], %struct.EFI_MAC_ADDRESS, %struct.EFI_MAC_ADDRESS, %struct.EFI_MAC_ADDRESS, i8, i8, i8, i8, i8 }
%struct.EFI_MAC_ADDRESS = type { [32 x i8] }
%struct._EFI_NETWORK_INTERFACE_IDENTIFIER_PROTOCOL = type { i64, i64, i64, i32, [4 x i8], i8, i8, i8, i8, i16 }
%struct.EFI_SIMPLE_NETWORK_DEV_FIFO = type { i32, i32, [64 x ptr] }
%struct.PXENV_UNDI_GET_INFORMATION_T = type { i16, i16, i16, i16, i16, i16, [16 x i8], [16 x i8], i16, i16, i16 }
%struct.PXENV_UNDI_GET_NIC_TYPE_T = type <{ i16, i8, %union.PCI_PNP_INFO_T }>
%union.PCI_PNP_INFO_T = type { %struct.PCI_INFO_T }
%struct.PCI_INFO_T = type { i16, i16, i8, i8, i8, i8, i16, i16, i16 }
%struct.PXENV_UNDI_GET_NDIS_INFO_T = type <{ i16, [16 x i8], i32, i32, [4 x i32] }>
%struct.PXENV_UNDI_ISR_T = type { i16, i16, i16, i16, i16, i16, i16, i8, i8 }

@.str.22 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [160 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.43 = external hidden unnamed_addr constant [31 x i8], align 1
@.str.44 = external hidden unnamed_addr constant [32 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 ptr @ZeroMem(ptr noundef, i64 noundef) #1

declare ptr @CopyMem(ptr noundef, ptr noundef, i64 noundef) #1

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 i64 @Undi16SimpleNetworkGetInformation(ptr noundef %0) #2 {
  %2 = alloca i64, align 8
  %3 = alloca ptr, align 8
  %4 = alloca i64, align 8
  %5 = alloca ptr, align 8
  %6 = alloca i64, align 8
  %7 = alloca i32, align 4
  store ptr %0, ptr %3, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %4) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %5) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %6) #3
  %8 = load ptr, ptr %3, align 8, !tbaa !5
  %9 = icmp eq ptr %8, null
  br i1 %9, label %10, label %11

10:                                               ; preds = %1
  store i64 -9223372036854775806, ptr %2, align 8
  store i32 1, ptr %7, align 4
  br label %422

11:                                               ; preds = %1
  store i64 0, ptr %4, align 8, !tbaa !9
  %12 = call zeroext i8 @DebugAssertEnabled()
  %13 = zext i8 %12 to i32
  %14 = icmp ne i32 %13, 0
  br i1 %14, label %15, label %25

15:                                               ; preds = %11
  %16 = load ptr, ptr %3, align 8, !tbaa !5
  %17 = ptrtoint ptr %16 to i64
  %18 = sub i64 %17, ptrtoint (ptr getelementptr inbounds (%struct.EFI_SIMPLE_NETWORK_DEV, ptr null, i32 0, i32 2) to i64)
  %19 = inttoptr i64 %18 to ptr
  %20 = getelementptr inbounds %struct.EFI_SIMPLE_NETWORK_DEV, ptr %19, i32 0, i32 0
  %21 = load i64, ptr %20, align 8, !tbaa !11
  %22 = icmp ne i64 %21, 909209203
  br i1 %22, label %23, label %25

23:                                               ; preds = %15
  call void @DebugAssert(ptr noundef @.str.29, i64 noundef 1467, ptr noundef @.str.30)
  %24 = load ptr, ptr %3, align 8, !tbaa !5
  br label %30

25:                                               ; preds = %15, %11
  %26 = load ptr, ptr %3, align 8, !tbaa !5
  %27 = ptrtoint ptr %26 to i64
  %28 = sub i64 %27, ptrtoint (ptr getelementptr inbounds (%struct.EFI_SIMPLE_NETWORK_DEV, ptr null, i32 0, i32 2) to i64)
  %29 = inttoptr i64 %28 to ptr
  br label %30

30:                                               ; preds = %25, %23
  %31 = phi ptr [ %24, %23 ], [ %29, %25 ]
  store ptr %31, ptr %5, align 8, !tbaa !5
  %32 = load ptr, ptr %5, align 8, !tbaa !5
  %33 = icmp eq ptr %32, null
  br i1 %33, label %34, label %35

34:                                               ; preds = %30
  store i64 -9223372036854775801, ptr %2, align 8
  store i32 1, ptr %7, align 4
  br label %422

35:                                               ; preds = %30
  %36 = load ptr, ptr %5, align 8, !tbaa !5
  %37 = getelementptr inbounds %struct.EFI_SIMPLE_NETWORK_DEV, ptr %36, i32 0, i32 3
  %38 = getelementptr inbounds %struct.EFI_SIMPLE_NETWORK_MODE, ptr %37, i32 0, i32 0
  %39 = load i32, ptr %38, align 8, !tbaa !24
  switch i32 %39, label %42 [
    i32 1, label %40
    i32 2, label %40
    i32 0, label %41
  ]

40:                                               ; preds = %35, %35
  br label %43

41:                                               ; preds = %35
  store i64 -9223372036854775789, ptr %2, align 8
  store i32 1, ptr %7, align 4
  br label %422

42:                                               ; preds = %35
  store i64 -9223372036854775801, ptr %2, align 8
  store i32 1, ptr %7, align 4
  br label %422

43:                                               ; preds = %40
  %44 = load ptr, ptr %5, align 8, !tbaa !5
  %45 = getelementptr inbounds %struct.EFI_SIMPLE_NETWORK_DEV, ptr %44, i32 0, i32 16
  %46 = call ptr @ZeroMem(ptr noundef %45, i64 noundef 50)
  %47 = load ptr, ptr %5, align 8, !tbaa !5
  %48 = getelementptr inbounds %struct.EFI_SIMPLE_NETWORK_DEV, ptr %47, i32 0, i32 16
  %49 = getelementptr inbounds %struct.PXENV_UNDI_GET_INFORMATION_T, ptr %48, i32 0, i32 0
  store i16 -21555, ptr %49, align 8, !tbaa !25
  %50 = load ptr, ptr %5, align 8, !tbaa !5
  %51 = load ptr, ptr %5, align 8, !tbaa !5
  %52 = getelementptr inbounds %struct.EFI_SIMPLE_NETWORK_DEV, ptr %51, i32 0, i32 16
  %53 = call i64 @PxeUndiGetInformation(ptr noundef %50, ptr noundef %52)
  store i64 %53, ptr %4, align 8, !tbaa !9
  %54 = load i64, ptr %4, align 8, !tbaa !9
  %55 = icmp slt i64 %54, 0
  br i1 %55, label %56, label %58

56:                                               ; preds = %43
  %57 = load i64, ptr %4, align 8, !tbaa !9
  store i64 %57, ptr %2, align 8
  store i32 1, ptr %7, align 4
  br label %422

58:                                               ; preds = %43
  br label %59

59:                                               ; preds = %58
  %60 = call zeroext i8 @DebugPrintEnabled()
  %61 = icmp ne i8 %60, 0
  br i1 %61, label %62, label %75

62:                                               ; preds = %59
  br label %63

63:                                               ; preds = %62
  %64 = call zeroext i8 @DebugPrintLevelEnabled(i64 noundef 16384)
  %65 = icmp ne i8 %64, 0
  br i1 %65, label %66, label %72

66:                                               ; preds = %63
  %67 = load ptr, ptr %5, align 8, !tbaa !5
  %68 = getelementptr inbounds %struct.EFI_SIMPLE_NETWORK_DEV, ptr %67, i32 0, i32 16
  %69 = getelementptr inbounds %struct.PXENV_UNDI_GET_INFORMATION_T, ptr %68, i32 0, i32 0
  %70 = load i16, ptr %69, align 8, !tbaa !25
  %71 = zext i16 %70 to i32
  call void (i64, ptr, ...) @DebugPrint(i64 noundef 16384, ptr noundef @.str.34, i32 noundef %71)
  br label %72

72:                                               ; preds = %66, %63
  br label %73

73:                                               ; preds = %72
  br label %74

74:                                               ; preds = %73
  br label %75

75:                                               ; preds = %74, %59
  br label %76

76:                                               ; preds = %75
  br label %77

77:                                               ; preds = %76
  br label %78

78:                                               ; preds = %77
  %79 = call zeroext i8 @DebugPrintEnabled()
  %80 = icmp ne i8 %79, 0
  br i1 %80, label %81, label %94

81:                                               ; preds = %78
  br label %82

82:                                               ; preds = %81
  %83 = call zeroext i8 @DebugPrintLevelEnabled(i64 noundef 16384)
  %84 = icmp ne i8 %83, 0
  br i1 %84, label %85, label %91

85:                                               ; preds = %82
  %86 = load ptr, ptr %5, align 8, !tbaa !5
  %87 = getelementptr inbounds %struct.EFI_SIMPLE_NETWORK_DEV, ptr %86, i32 0, i32 16
  %88 = getelementptr inbounds %struct.PXENV_UNDI_GET_INFORMATION_T, ptr %87, i32 0, i32 1
  %89 = load i16, ptr %88, align 2, !tbaa !26
  %90 = zext i16 %89 to i32
  call void (i64, ptr, ...) @DebugPrint(i64 noundef 16384, ptr noundef @.str.35, i32 noundef %90)
  br label %91

91:                                               ; preds = %85, %82
  br label %92

92:                                               ; preds = %91
  br label %93

93:                                               ; preds = %92
  br label %94

94:                                               ; preds = %93, %78
  br label %95

95:                                               ; preds = %94
  br label %96

96:                                               ; preds = %95
  br label %97

97:                                               ; preds = %96
  %98 = call zeroext i8 @DebugPrintEnabled()
  %99 = icmp ne i8 %98, 0
  br i1 %99, label %100, label %113

100:                                              ; preds = %97
  br label %101

101:                                              ; preds = %100
  %102 = call zeroext i8 @DebugPrintLevelEnabled(i64 noundef 16384)
  %103 = icmp ne i8 %102, 0
  br i1 %103, label %104, label %110

104:                                              ; preds = %101
  %105 = load ptr, ptr %5, align 8, !tbaa !5
  %106 = getelementptr inbounds %struct.EFI_SIMPLE_NETWORK_DEV, ptr %105, i32 0, i32 16
  %107 = getelementptr inbounds %struct.PXENV_UNDI_GET_INFORMATION_T, ptr %106, i32 0, i32 2
  %108 = load i16, ptr %107, align 4, !tbaa !27
  %109 = zext i16 %108 to i32
  call void (i64, ptr, ...) @DebugPrint(i64 noundef 16384, ptr noundef @.str.36, i32 noundef %109)
  br label %110

110:                                              ; preds = %104, %101
  br label %111

111:                                              ; preds = %110
  br label %112

112:                                              ; preds = %111
  br label %113

113:                                              ; preds = %112, %97
  br label %114

114:                                              ; preds = %113
  br label %115

115:                                              ; preds = %114
  br label %116

116:                                              ; preds = %115
  %117 = call zeroext i8 @DebugPrintEnabled()
  %118 = icmp ne i8 %117, 0
  br i1 %118, label %119, label %132

119:                                              ; preds = %116
  br label %120

120:                                              ; preds = %119
  %121 = call zeroext i8 @DebugPrintLevelEnabled(i64 noundef 16384)
  %122 = icmp ne i8 %121, 0
  br i1 %122, label %123, label %129

123:                                              ; preds = %120
  %124 = load ptr, ptr %5, align 8, !tbaa !5
  %125 = getelementptr inbounds %struct.EFI_SIMPLE_NETWORK_DEV, ptr %124, i32 0, i32 16
  %126 = getelementptr inbounds %struct.PXENV_UNDI_GET_INFORMATION_T, ptr %125, i32 0, i32 3
  %127 = load i16, ptr %126, align 2, !tbaa !28
  %128 = zext i16 %127 to i32
  call void (i64, ptr, ...) @DebugPrint(i64 noundef 16384, ptr noundef @.str.37, i32 noundef %128)
  br label %129

129:                                              ; preds = %123, %120
  br label %130

130:                                              ; preds = %129
  br label %131

131:                                              ; preds = %130
  br label %132

132:                                              ; preds = %131, %116
  br label %133

133:                                              ; preds = %132
  br label %134

134:                                              ; preds = %133
  br label %135

135:                                              ; preds = %134
  %136 = call zeroext i8 @DebugPrintEnabled()
  %137 = icmp ne i8 %136, 0
  br i1 %137, label %138, label %151

138:                                              ; preds = %135
  br label %139

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

142:                                              ; preds = %139
  %143 = load ptr, ptr %5, align 8, !tbaa !5
  %144 = getelementptr inbounds %struct.EFI_SIMPLE_NETWORK_DEV, ptr %143, i32 0, i32 16
  %145 = getelementptr inbounds %struct.PXENV_UNDI_GET_INFORMATION_T, ptr %144, i32 0, i32 4
  %146 = load i16, ptr %145, align 8, !tbaa !29
  %147 = zext i16 %146 to i32
  call void (i64, ptr, ...) @DebugPrint(i64 noundef 16384, ptr noundef @.str.38, i32 noundef %147)
  br label %148

148:                                              ; preds = %142, %139
  br label %149

149:                                              ; preds = %148
  br label %150

150:                                              ; preds = %149
  br label %151

151:                                              ; preds = %150, %135
  br label %152

152:                                              ; preds = %151
  br label %153

153:                                              ; preds = %152
  br label %154

154:                                              ; preds = %153
  %155 = call zeroext i8 @DebugPrintEnabled()
  %156 = icmp ne i8 %155, 0
  br i1 %156, label %157, label %170

157:                                              ; preds = %154
  br label %158

158:                                              ; preds = %157
  %159 = call zeroext i8 @DebugPrintLevelEnabled(i64 noundef 16384)
  %160 = icmp ne i8 %159, 0
  br i1 %160, label %161, label %167

161:                                              ; preds = %158
  %162 = load ptr, ptr %5, align 8, !tbaa !5
  %163 = getelementptr inbounds %struct.EFI_SIMPLE_NETWORK_DEV, ptr %162, i32 0, i32 16
  %164 = getelementptr inbounds %struct.PXENV_UNDI_GET_INFORMATION_T, ptr %163, i32 0, i32 5
  %165 = load i16, ptr %164, align 2, !tbaa !30
  %166 = zext i16 %165 to i32
  call void (i64, ptr, ...) @DebugPrint(i64 noundef 16384, ptr noundef @.str.39, i32 noundef %166)
  br label %167

167:                                              ; preds = %161, %158
  br label %168

168:                                              ; preds = %167
  br label %169

169:                                              ; preds = %168
  br label %170

170:                                              ; preds = %169, %154
  br label %171

171:                                              ; preds = %170
  br label %172

172:                                              ; preds = %171
  br label %173

173:                                              ; preds = %172
  %174 = call zeroext i8 @DebugPrintEnabled()
  %175 = icmp ne i8 %174, 0
  br i1 %175, label %176, label %189

176:                                              ; preds = %173
  br label %177

177:                                              ; preds = %176
  %178 = call zeroext i8 @DebugPrintLevelEnabled(i64 noundef 16384)
  %179 = icmp ne i8 %178, 0
  br i1 %179, label %180, label %186

180:                                              ; preds = %177
  %181 = load ptr, ptr %5, align 8, !tbaa !5
  %182 = getelementptr inbounds %struct.EFI_SIMPLE_NETWORK_DEV, ptr %181, i32 0, i32 16
  %183 = getelementptr inbounds %struct.PXENV_UNDI_GET_INFORMATION_T, ptr %182, i32 0, i32 8
  %184 = load i16, ptr %183, align 4, !tbaa !31
  %185 = zext i16 %184 to i32
  call void (i64, ptr, ...) @DebugPrint(i64 noundef 16384, ptr noundef @.str.40, i32 noundef %185)
  br label %186

186:                                              ; preds = %180, %177
  br label %187

187:                                              ; preds = %186
  br label %188

188:                                              ; preds = %187
  br label %189

189:                                              ; preds = %188, %173
  br label %190

190:                                              ; preds = %189
  br label %191

191:                                              ; preds = %190
  br label %192

192:                                              ; preds = %191
  %193 = call zeroext i8 @DebugPrintEnabled()
  %194 = icmp ne i8 %193, 0
  br i1 %194, label %195, label %208

195:                                              ; preds = %192
  br label %196

196:                                              ; preds = %195
  %197 = call zeroext i8 @DebugPrintLevelEnabled(i64 noundef 16384)
  %198 = icmp ne i8 %197, 0
  br i1 %198, label %199, label %205

199:                                              ; preds = %196
  %200 = load ptr, ptr %5, align 8, !tbaa !5
  %201 = getelementptr inbounds %struct.EFI_SIMPLE_NETWORK_DEV, ptr %200, i32 0, i32 16
  %202 = getelementptr inbounds %struct.PXENV_UNDI_GET_INFORMATION_T, ptr %201, i32 0, i32 9
  %203 = load i16, ptr %202, align 2, !tbaa !32
  %204 = zext i16 %203 to i32
  call void (i64, ptr, ...) @DebugPrint(i64 noundef 16384, ptr noundef @.str.41, i32 noundef %204)
  br label %205

205:                                              ; preds = %199, %196
  br label %206

206:                                              ; preds = %205
  br label %207

207:                                              ; preds = %206
  br label %208

208:                                              ; preds = %207, %192
  br label %209

209:                                              ; preds = %208
  br label %210

210:                                              ; preds = %209
  br label %211

211:                                              ; preds = %210
  %212 = call zeroext i8 @DebugPrintEnabled()
  %213 = icmp ne i8 %212, 0
  br i1 %213, label %214, label %227

214:                                              ; preds = %211
  br label %215

215:                                              ; preds = %214
  %216 = call zeroext i8 @DebugPrintLevelEnabled(i64 noundef 16384)
  %217 = icmp ne i8 %216, 0
  br i1 %217, label %218, label %224

218:                                              ; preds = %215
  %219 = load ptr, ptr %5, align 8, !tbaa !5
  %220 = getelementptr inbounds %struct.EFI_SIMPLE_NETWORK_DEV, ptr %219, i32 0, i32 16
  %221 = getelementptr inbounds %struct.PXENV_UNDI_GET_INFORMATION_T, ptr %220, i32 0, i32 10
  %222 = load i16, ptr %221, align 8, !tbaa !33
  %223 = zext i16 %222 to i32
  call void (i64, ptr, ...) @DebugPrint(i64 noundef 16384, ptr noundef @.str.42, i32 noundef %223)
  br label %224

224:                                              ; preds = %218, %215
  br label %225

225:                                              ; preds = %224
  br label %226

226:                                              ; preds = %225
  br label %227

227:                                              ; preds = %226, %211
  br label %228

228:                                              ; preds = %227
  br label %229

229:                                              ; preds = %228
  br label %230

230:                                              ; preds = %229
  %231 = call zeroext i8 @DebugPrintEnabled()
  %232 = icmp ne i8 %231, 0
  br i1 %232, label %233, label %241

233:                                              ; preds = %230
  br label %234

234:                                              ; preds = %233
  %235 = call zeroext i8 @DebugPrintLevelEnabled(i64 noundef 16384)
  %236 = icmp ne i8 %235, 0
  br i1 %236, label %237, label %238

237:                                              ; preds = %234
  call void (i64, ptr, ...) @DebugPrint(i64 noundef 16384, ptr noundef @.str.43)
  br label %238

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

239:                                              ; preds = %238
  br label %240

240:                                              ; preds = %239
  br label %241

241:                                              ; preds = %240, %230
  br label %242

242:                                              ; preds = %241
  br label %243

243:                                              ; preds = %242
  store i64 0, ptr %6, align 8, !tbaa !9
  br label %244

244:                                              ; preds = %269, %243
  %245 = load i64, ptr %6, align 8, !tbaa !9
  %246 = icmp ult i64 %245, 16
  br i1 %246, label %247, label %272

247:                                              ; preds = %244
  br label %248

248:                                              ; preds = %247
  %249 = call zeroext i8 @DebugPrintEnabled()
  %250 = icmp ne i8 %249, 0
  br i1 %250, label %251, label %266

251:                                              ; preds = %248
  br label %252

252:                                              ; preds = %251
  %253 = call zeroext i8 @DebugPrintLevelEnabled(i64 noundef 16384)
  %254 = icmp ne i8 %253, 0
  br i1 %254, label %255, label %263

255:                                              ; preds = %252
  %256 = load ptr, ptr %5, align 8, !tbaa !5
  %257 = getelementptr inbounds %struct.EFI_SIMPLE_NETWORK_DEV, ptr %256, i32 0, i32 16
  %258 = getelementptr inbounds %struct.PXENV_UNDI_GET_INFORMATION_T, ptr %257, i32 0, i32 6
  %259 = load i64, ptr %6, align 8, !tbaa !9
  %260 = getelementptr inbounds [16 x i8], ptr %258, i64 0, i64 %259
  %261 = load i8, ptr %260, align 1, !tbaa !34
  %262 = zext i8 %261 to i32
  call void (i64, ptr, ...) @DebugPrint(i64 noundef 16384, ptr noundef @.str.22, i32 noundef %262)
  br label %263

263:                                              ; preds = %255, %252
  br label %264

264:                                              ; preds = %263
  br label %265

265:                                              ; preds = %264
  br label %266

266:                                              ; preds = %265, %248
  br label %267

267:                                              ; preds = %266
  br label %268

268:                                              ; preds = %267
  br label %269

269:                                              ; preds = %268
  %270 = load i64, ptr %6, align 8, !tbaa !9
  %271 = add i64 %270, 1
  store i64 %271, ptr %6, align 8, !tbaa !9
  br label %244, !llvm.loop !35

272:                                              ; preds = %244
  br label %273

273:                                              ; preds = %272
  %274 = call zeroext i8 @DebugPrintEnabled()
  %275 = icmp ne i8 %274, 0
  br i1 %275, label %276, label %284

276:                                              ; preds = %273
  br label %277

277:                                              ; preds = %276
  %278 = call zeroext i8 @DebugPrintLevelEnabled(i64 noundef 16384)
  %279 = icmp ne i8 %278, 0
  br i1 %279, label %280, label %281

280:                                              ; preds = %277
  call void (i64, ptr, ...) @DebugPrint(i64 noundef 16384, ptr noundef @.str.23)
  br label %281

281:                                              ; preds = %280, %277
  br label %282

282:                                              ; preds = %281
  br label %283

283:                                              ; preds = %282
  br label %284

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

285:                                              ; preds = %284
  br label %286

286:                                              ; preds = %285
  br label %287

287:                                              ; preds = %286
  %288 = call zeroext i8 @DebugPrintEnabled()
  %289 = icmp ne i8 %288, 0
  br i1 %289, label %290, label %298

290:                                              ; preds = %287
  br label %291

291:                                              ; preds = %290
  %292 = call zeroext i8 @DebugPrintLevelEnabled(i64 noundef 16384)
  %293 = icmp ne i8 %292, 0
  br i1 %293, label %294, label %295

294:                                              ; preds = %291
  call void (i64, ptr, ...) @DebugPrint(i64 noundef 16384, ptr noundef @.str.44)
  br label %295

295:                                              ; preds = %294, %291
  br label %296

296:                                              ; preds = %295
  br label %297

297:                                              ; preds = %296
  br label %298

298:                                              ; preds = %297, %287
  br label %299

299:                                              ; preds = %298
  br label %300

300:                                              ; preds = %299
  store i64 0, ptr %6, align 8, !tbaa !9
  br label %301

301:                                              ; preds = %326, %300
  %302 = load i64, ptr %6, align 8, !tbaa !9
  %303 = icmp ult i64 %302, 16
  br i1 %303, label %304, label %329

304:                                              ; preds = %301
  br label %305

305:                                              ; preds = %304
  %306 = call zeroext i8 @DebugPrintEnabled()
  %307 = icmp ne i8 %306, 0
  br i1 %307, label %308, label %323

308:                                              ; preds = %305
  br label %309

309:                                              ; preds = %308
  %310 = call zeroext i8 @DebugPrintLevelEnabled(i64 noundef 16384)
  %311 = icmp ne i8 %310, 0
  br i1 %311, label %312, label %320

312:                                              ; preds = %309
  %313 = load ptr, ptr %5, align 8, !tbaa !5
  %314 = getelementptr inbounds %struct.EFI_SIMPLE_NETWORK_DEV, ptr %313, i32 0, i32 16
  %315 = getelementptr inbounds %struct.PXENV_UNDI_GET_INFORMATION_T, ptr %314, i32 0, i32 7
  %316 = load i64, ptr %6, align 8, !tbaa !9
  %317 = getelementptr inbounds [16 x i8], ptr %315, i64 0, i64 %316
  %318 = load i8, ptr %317, align 1, !tbaa !34
  %319 = zext i8 %318 to i32
  call void (i64, ptr, ...) @DebugPrint(i64 noundef 16384, ptr noundef @.str.22, i32 noundef %319)
  br label %320

320:                                              ; preds = %312, %309
  br label %321

321:                                              ; preds = %320
  br label %322

322:                                              ; preds = %321
  br label %323

323:                                              ; preds = %322, %305
  br label %324

324:                                              ; preds = %323
  br label %325

325:                                              ; preds = %324
  br label %326

326:                                              ; preds = %325
  %327 = load i64, ptr %6, align 8, !tbaa !9
  %328 = add i64 %327, 1
  store i64 %328, ptr %6, align 8, !tbaa !9
  br label %301, !llvm.loop !37

329:                                              ; preds = %301
  br label %330

330:                                              ; preds = %329
  %331 = call zeroext i8 @DebugPrintEnabled()
  %332 = icmp ne i8 %331, 0
  br i1 %332, label %333, label %341

333:                                              ; preds = %330
  br label %334

334:                                              ; preds = %333
  %335 = call zeroext i8 @DebugPrintLevelEnabled(i64 noundef 16384)
  %336 = icmp ne i8 %335, 0
  br i1 %336, label %337, label %338

337:                                              ; preds = %334
  call void (i64, ptr, ...) @DebugPrint(i64 noundef 16384, ptr noundef @.str.23)
  br label %338

338:                                              ; preds = %337, %334
  br label %339

339:                                              ; preds = %338
  br label %340

340:                                              ; preds = %339
  br label %341

341:                                              ; preds = %340, %330
  br label %342

342:                                              ; preds = %341
  br label %343

343:                                              ; preds = %342
  %344 = load ptr, ptr %5, align 8, !tbaa !5
  %345 = getelementptr inbounds %struct.EFI_SIMPLE_NETWORK_DEV, ptr %344, i32 0, i32 16
  %346 = getelementptr inbounds %struct.PXENV_UNDI_GET_INFORMATION_T, ptr %345, i32 0, i32 0
  %347 = load i16, ptr %346, align 8, !tbaa !25
  %348 = zext i16 %347 to i32
  %349 = icmp ne i32 %348, 0
  br i1 %349, label %350, label %351

350:                                              ; preds = %343
  store i64 -9223372036854775801, ptr %2, align 8
  store i32 1, ptr %7, align 4
  br label %422

351:                                              ; preds = %343
  %352 = load ptr, ptr %5, align 8, !tbaa !5
  %353 = getelementptr inbounds %struct.EFI_SIMPLE_NETWORK_DEV, ptr %352, i32 0, i32 16
  %354 = getelementptr inbounds %struct.PXENV_UNDI_GET_INFORMATION_T, ptr %353, i32 0, i32 5
  %355 = load i16, ptr %354, align 2, !tbaa !30
  %356 = zext i16 %355 to i32
  %357 = load ptr, ptr %5, align 8, !tbaa !5
  %358 = getelementptr inbounds %struct.EFI_SIMPLE_NETWORK_DEV, ptr %357, i32 0, i32 3
  %359 = getelementptr inbounds %struct.EFI_SIMPLE_NETWORK_MODE, ptr %358, i32 0, i32 1
  store i32 %356, ptr %359, align 4, !tbaa !38
  %360 = load ptr, ptr %5, align 8, !tbaa !5
  %361 = getelementptr inbounds %struct.EFI_SIMPLE_NETWORK_DEV, ptr %360, i32 0, i32 16
  %362 = getelementptr inbounds %struct.PXENV_UNDI_GET_INFORMATION_T, ptr %361, i32 0, i32 3
  %363 = load i16, ptr %362, align 2, !tbaa !28
  %364 = zext i16 %363 to i32
  %365 = load ptr, ptr %5, align 8, !tbaa !5
  %366 = getelementptr inbounds %struct.EFI_SIMPLE_NETWORK_DEV, ptr %365, i32 0, i32 3
  %367 = getelementptr inbounds %struct.EFI_SIMPLE_NETWORK_MODE, ptr %366, i32 0, i32 3
  store i32 %364, ptr %367, align 4, !tbaa !39
  %368 = load ptr, ptr %5, align 8, !tbaa !5
  %369 = getelementptr inbounds %struct.EFI_SIMPLE_NETWORK_DEV, ptr %368, i32 0, i32 16
  %370 = getelementptr inbounds %struct.PXENV_UNDI_GET_INFORMATION_T, ptr %369, i32 0, i32 4
  %371 = load i16, ptr %370, align 8, !tbaa !29
  %372 = trunc i16 %371 to i8
  %373 = load ptr, ptr %5, align 8, !tbaa !5
  %374 = getelementptr inbounds %struct.EFI_SIMPLE_NETWORK_DEV, ptr %373, i32 0, i32 3
  %375 = getelementptr inbounds %struct.EFI_SIMPLE_NETWORK_MODE, ptr %374, i32 0, i32 14
  store i8 %372, ptr %375, align 8, !tbaa !40
  %376 = load ptr, ptr %5, align 8, !tbaa !5
  %377 = getelementptr inbounds %struct.EFI_SIMPLE_NETWORK_DEV, ptr %376, i32 0, i32 3
  %378 = getelementptr inbounds %struct.EFI_SIMPLE_NETWORK_MODE, ptr %377, i32 0, i32 11
  %379 = call ptr @ZeroMem(ptr noundef %378, i64 noundef 32)
  %380 = load ptr, ptr %5, align 8, !tbaa !5
  %381 = getelementptr inbounds %struct.EFI_SIMPLE_NETWORK_DEV, ptr %380, i32 0, i32 3
  %382 = getelementptr inbounds %struct.EFI_SIMPLE_NETWORK_MODE, ptr %381, i32 0, i32 11
  %383 = load ptr, ptr %5, align 8, !tbaa !5
  %384 = getelementptr inbounds %struct.EFI_SIMPLE_NETWORK_DEV, ptr %383, i32 0, i32 16
  %385 = getelementptr inbounds %struct.PXENV_UNDI_GET_INFORMATION_T, ptr %384, i32 0, i32 6
  %386 = load ptr, ptr %5, align 8, !tbaa !5
  %387 = getelementptr inbounds %struct.EFI_SIMPLE_NETWORK_DEV, ptr %386, i32 0, i32 3
  %388 = getelementptr inbounds %struct.EFI_SIMPLE_NETWORK_MODE, ptr %387, i32 0, i32 1
  %389 = load i32, ptr %388, align 4, !tbaa !38
  %390 = zext i32 %389 to i64
  %391 = call ptr @CopyMem(ptr noundef %382, ptr noundef %385, i64 noundef %390)
  %392 = load ptr, ptr %5, align 8, !tbaa !5
  %393 = getelementptr inbounds %struct.EFI_SIMPLE_NETWORK_DEV, ptr %392, i32 0, i32 3
  %394 = getelementptr inbounds %struct.EFI_SIMPLE_NETWORK_MODE, ptr %393, i32 0, i32 13
  %395 = call ptr @ZeroMem(ptr noundef %394, i64 noundef 32)
  %396 = load ptr, ptr %5, align 8, !tbaa !5
  %397 = getelementptr inbounds %struct.EFI_SIMPLE_NETWORK_DEV, ptr %396, i32 0, i32 3
  %398 = getelementptr inbounds %struct.EFI_SIMPLE_NETWORK_MODE, ptr %397, i32 0, i32 13
  %399 = load ptr, ptr %5, align 8, !tbaa !5
  %400 = getelementptr inbounds %struct.EFI_SIMPLE_NETWORK_DEV, ptr %399, i32 0, i32 16
  %401 = getelementptr inbounds %struct.PXENV_UNDI_GET_INFORMATION_T, ptr %400, i32 0, i32 7
  %402 = load ptr, ptr %5, align 8, !tbaa !5
  %403 = getelementptr inbounds %struct.EFI_SIMPLE_NETWORK_DEV, ptr %402, i32 0, i32 3
  %404 = getelementptr inbounds %struct.EFI_SIMPLE_NETWORK_MODE, ptr %403, i32 0, i32 1
  %405 = load i32, ptr %404, align 4, !tbaa !38
  %406 = zext i32 %405 to i64
  %407 = call ptr @CopyMem(ptr noundef %398, ptr noundef %401, i64 noundef %406)
  %408 = load ptr, ptr %5, align 8, !tbaa !5
  %409 = getelementptr inbounds %struct.EFI_SIMPLE_NETWORK_DEV, ptr %408, i32 0, i32 3
  %410 = getelementptr inbounds %struct.EFI_SIMPLE_NETWORK_MODE, ptr %409, i32 0, i32 12
  %411 = call ptr @ZeroMem(ptr noundef %410, i64 noundef 32)
  %412 = load ptr, ptr %5, align 8, !tbaa !5
  %413 = getelementptr inbounds %struct.EFI_SIMPLE_NETWORK_DEV, ptr %412, i32 0, i32 3
  %414 = getelementptr inbounds %struct.EFI_SIMPLE_NETWORK_MODE, ptr %413, i32 0, i32 12
  %415 = load ptr, ptr %5, align 8, !tbaa !5
  %416 = getelementptr inbounds %struct.EFI_SIMPLE_NETWORK_DEV, ptr %415, i32 0, i32 3
  %417 = getelementptr inbounds %struct.EFI_SIMPLE_NETWORK_MODE, ptr %416, i32 0, i32 1
  %418 = load i32, ptr %417, align 4, !tbaa !38
  %419 = zext i32 %418 to i64
  %420 = call ptr @SetMem(ptr noundef %414, i64 noundef %419, i8 noundef zeroext -1)
  %421 = load i64, ptr %4, align 8, !tbaa !9
  store i64 %421, ptr %2, align 8
  store i32 1, ptr %7, align 4
  br label %422

422:                                              ; preds = %351, %350, %56, %42, %41, %34, %10
  call void @llvm.lifetime.end.p0(i64 8, ptr %6) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %5) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %4) #3
  %423 = load i64, ptr %2, align 8
  ret i64 %423
}

declare zeroext i8 @DebugAssertEnabled() #1

declare void @DebugAssert(ptr noundef, i64 noundef, ptr noundef) #1

declare i64 @PxeUndiGetInformation(ptr noundef, ptr noundef) #1

declare ptr @SetMem(ptr noundef, i64 noundef, i8 noundef zeroext) #1

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 = !{!10, !10, i64 0}
!10 = !{!"long long", !7, i64 0}
!11 = !{!12, !10, i64 0}
!12 = !{!"", !10, i64 0, !6, i64 8, !13, i64 16, !14, i64 144, !17, i64 800, !6, i64 840, !6, i64 848, !6, i64 856, !7, i64 864, !6, i64 872, !6, i64 880, !18, i64 888, !18, i64 890, !19, i64 896, !6, i64 1416, !6, i64 1424, !20, i64 1432, !21, i64 1482, !22, i64 1499, !7, i64 1541, !23, i64 1542, !6, i64 1560, !6, i64 1568, !6, i64 1576, !6, i64 1584, !7, i64 1592, !10, i64 1600, !10, i64 1608, !10, i64 1616, !10, i64 1624, !6, i64 1632, !6, i64 1640, !6, i64 1648, !6, i64 1656}
!13 = !{!"_EFI_SIMPLE_NETWORK_PROTOCOL", !10, i64 0, !6, i64 8, !6, i64 16, !6, i64 24, !6, i64 32, !6, i64 40, !6, i64 48, !6, i64 56, !6, i64 64, !6, i64 72, !6, i64 80, !6, i64 88, !6, i64 96, !6, i64 104, !6, i64 112, !6, i64 120}
!14 = !{!"", !15, i64 0, !15, i64 4, !15, i64 8, !15, i64 12, !15, i64 16, !15, i64 20, !15, i64 24, !15, i64 28, !15, i64 32, !15, i64 36, !7, i64 40, !16, i64 552, !16, i64 584, !16, i64 616, !7, i64 648, !7, i64 649, !7, i64 650, !7, i64 651, !7, i64 652}
!15 = !{!"int", !7, i64 0}
!16 = !{!"", !7, i64 0}
!17 = !{!"_EFI_NETWORK_INTERFACE_IDENTIFIER_PROTOCOL", !10, i64 0, !10, i64 8, !10, i64 16, !15, i64 24, !7, i64 28, !7, i64 32, !7, i64 33, !7, i64 34, !7, i64 35, !18, i64 36}
!18 = !{!"short", !7, i64 0}
!19 = !{!"", !15, i64 0, !15, i64 4, !7, i64 8}
!20 = !{!"", !18, i64 0, !18, i64 2, !18, i64 4, !18, i64 6, !18, i64 8, !18, i64 10, !7, i64 12, !7, i64 28, !18, i64 44, !18, i64 46, !18, i64 48}
!21 = !{!"", !18, i64 0, !7, i64 2, !7, i64 3}
!22 = !{!"", !18, i64 0, !7, i64 2, !15, i64 18, !15, i64 22, !7, i64 26}
!23 = !{!"", !18, i64 0, !18, i64 2, !18, i64 4, !18, i64 6, !18, i64 8, !18, i64 10, !18, i64 12, !7, i64 14, !7, i64 15}
!24 = !{!12, !15, i64 144}
!25 = !{!12, !18, i64 1432}
!26 = !{!12, !18, i64 1434}
!27 = !{!12, !18, i64 1436}
!28 = !{!12, !18, i64 1438}
!29 = !{!12, !18, i64 1440}
!30 = !{!12, !18, i64 1442}
!31 = !{!12, !18, i64 1476}
!32 = !{!12, !18, i64 1478}
!33 = !{!12, !18, i64 1480}
!34 = !{!7, !7, i64 0}
!35 = distinct !{!35, !36}
!36 = !{!"llvm.loop.mustprogress"}
!37 = distinct !{!37, !36}
!38 = !{!12, !15, i64 148}
!39 = !{!12, !15, i64 156}
!40 = !{!12, !7, i64 792}


; 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.22 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [160 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.43 = external hidden unnamed_addr constant [31 x i8], align 1
@.str.44 = external hidden unnamed_addr constant [32 x i8], align 1

declare ptr @ZeroMem(ptr noundef, i64 noundef) local_unnamed_addr #0

declare ptr @CopyMem(ptr noundef, ptr noundef, i64 noundef) local_unnamed_addr #0

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 i64 @Undi16SimpleNetworkGetInformation(ptr noundef %0) local_unnamed_addr #1 {
  %2 = icmp eq ptr %0, null
  br i1 %2, label %395, label %3

3:                                                ; preds = %1
  %4 = tail call zeroext i8 @DebugAssertEnabled() #2
  %.not = icmp eq i8 %4, 0
  %.pre = ptrtoint ptr %0 to i64
  %.pre87 = add i64 %.pre, -16
  %.pre89 = inttoptr i64 %.pre87 to ptr
  br i1 %.not, label %._crit_edge, label %5

5:                                                ; preds = %3
  %6 = load i64, ptr %.pre89, align 8, !tbaa !5
  %.not53 = icmp eq i64 %6, 909209203
  br i1 %.not53, label %._crit_edge, label %.thread

.thread:                                          ; preds = %5
  tail call void @DebugAssert(ptr noundef nonnull @.str.29, i64 noundef 1467, ptr noundef nonnull @.str.30) #2
  br label %8

._crit_edge:                                      ; preds = %3, %5
  %7 = icmp eq i64 %.pre87, 0
  br i1 %7, label %395, label %8

8:                                                ; preds = %.thread, %._crit_edge
  %9 = phi ptr [ %0, %.thread ], [ %.pre89, %._crit_edge ]
  %10 = getelementptr inbounds i8, ptr %9, i64 144
  %11 = load i32, ptr %10, align 8, !tbaa !22
  switch i32 %11, label %12 [
    i32 1, label %13
    i32 2, label %13
    i32 0, label %395
  ]

12:                                               ; preds = %8
  br label %395

13:                                               ; preds = %8, %8
  %14 = getelementptr inbounds i8, ptr %9, i64 1432
  %15 = tail call ptr @ZeroMem(ptr noundef nonnull %14, i64 noundef 50) #2
  store i16 -21555, ptr %14, align 8, !tbaa !23
  %16 = tail call i64 @PxeUndiGetInformation(ptr noundef nonnull %9, ptr noundef nonnull %14) #2
  %17 = icmp slt i64 %16, 0
  br i1 %17, label %395, label %18

18:                                               ; preds = %13
  %19 = tail call zeroext i8 @DebugPrintEnabled() #2
  %.not54 = icmp eq i8 %19, 0
  br i1 %.not54, label %25, label %20

20:                                               ; preds = %18
  %21 = tail call zeroext i8 @DebugPrintLevelEnabled(i64 noundef 16384) #2
  %.not55 = icmp eq i8 %21, 0
  br i1 %.not55, label %25, label %22

22:                                               ; preds = %20
  %23 = load i16, ptr %14, align 8, !tbaa !23
  %24 = zext i16 %23 to i32
  tail call void (i64, ptr, ...) @DebugPrint(i64 noundef 16384, ptr noundef nonnull @.str.34, i32 noundef %24) #2
  br label %25

25:                                               ; preds = %18, %22, %20
  %26 = tail call zeroext i8 @DebugPrintEnabled() #2
  %.not56 = icmp eq i8 %26, 0
  br i1 %.not56, label %33, label %27

27:                                               ; preds = %25
  %28 = tail call zeroext i8 @DebugPrintLevelEnabled(i64 noundef 16384) #2
  %.not57 = icmp eq i8 %28, 0
  br i1 %.not57, label %33, label %29

29:                                               ; preds = %27
  %30 = getelementptr inbounds i8, ptr %9, i64 1434
  %31 = load i16, ptr %30, align 2, !tbaa !24
  %32 = zext i16 %31 to i32
  tail call void (i64, ptr, ...) @DebugPrint(i64 noundef 16384, ptr noundef nonnull @.str.35, i32 noundef %32) #2
  br label %33

33:                                               ; preds = %25, %29, %27
  %34 = tail call zeroext i8 @DebugPrintEnabled() #2
  %.not58 = icmp eq i8 %34, 0
  br i1 %.not58, label %41, label %35

35:                                               ; preds = %33
  %36 = tail call zeroext i8 @DebugPrintLevelEnabled(i64 noundef 16384) #2
  %.not59 = icmp eq i8 %36, 0
  br i1 %.not59, label %41, label %37

37:                                               ; preds = %35
  %38 = getelementptr inbounds i8, ptr %9, i64 1436
  %39 = load i16, ptr %38, align 4, !tbaa !25
  %40 = zext i16 %39 to i32
  tail call void (i64, ptr, ...) @DebugPrint(i64 noundef 16384, ptr noundef nonnull @.str.36, i32 noundef %40) #2
  br label %41

41:                                               ; preds = %33, %37, %35
  %42 = tail call zeroext i8 @DebugPrintEnabled() #2
  %.not60 = icmp eq i8 %42, 0
  br i1 %.not60, label %49, label %43

43:                                               ; preds = %41
  %44 = tail call zeroext i8 @DebugPrintLevelEnabled(i64 noundef 16384) #2
  %.not61 = icmp eq i8 %44, 0
  br i1 %.not61, label %49, label %45

45:                                               ; preds = %43
  %46 = getelementptr inbounds i8, ptr %9, i64 1438
  %47 = load i16, ptr %46, align 2, !tbaa !26
  %48 = zext i16 %47 to i32
  tail call void (i64, ptr, ...) @DebugPrint(i64 noundef 16384, ptr noundef nonnull @.str.37, i32 noundef %48) #2
  br label %49

49:                                               ; preds = %41, %45, %43
  %50 = tail call zeroext i8 @DebugPrintEnabled() #2
  %.not62 = icmp eq i8 %50, 0
  br i1 %.not62, label %57, label %51

51:                                               ; preds = %49
  %52 = tail call zeroext i8 @DebugPrintLevelEnabled(i64 noundef 16384) #2
  %.not63 = icmp eq i8 %52, 0
  br i1 %.not63, label %57, label %53

53:                                               ; preds = %51
  %54 = getelementptr inbounds i8, ptr %9, i64 1440
  %55 = load i16, ptr %54, align 8, !tbaa !27
  %56 = zext i16 %55 to i32
  tail call void (i64, ptr, ...) @DebugPrint(i64 noundef 16384, ptr noundef nonnull @.str.38, i32 noundef %56) #2
  br label %57

57:                                               ; preds = %49, %53, %51
  %58 = tail call zeroext i8 @DebugPrintEnabled() #2
  %.not64 = icmp eq i8 %58, 0
  br i1 %.not64, label %65, label %59

59:                                               ; preds = %57
  %60 = tail call zeroext i8 @DebugPrintLevelEnabled(i64 noundef 16384) #2
  %.not65 = icmp eq i8 %60, 0
  br i1 %.not65, label %65, label %61

61:                                               ; preds = %59
  %62 = getelementptr inbounds i8, ptr %9, i64 1442
  %63 = load i16, ptr %62, align 2, !tbaa !28
  %64 = zext i16 %63 to i32
  tail call void (i64, ptr, ...) @DebugPrint(i64 noundef 16384, ptr noundef nonnull @.str.39, i32 noundef %64) #2
  br label %65

65:                                               ; preds = %57, %61, %59
  %66 = tail call zeroext i8 @DebugPrintEnabled() #2
  %.not66 = icmp eq i8 %66, 0
  br i1 %.not66, label %73, label %67

67:                                               ; preds = %65
  %68 = tail call zeroext i8 @DebugPrintLevelEnabled(i64 noundef 16384) #2
  %.not67 = icmp eq i8 %68, 0
  br i1 %.not67, label %73, label %69

69:                                               ; preds = %67
  %70 = getelementptr inbounds i8, ptr %9, i64 1476
  %71 = load i16, ptr %70, align 4, !tbaa !29
  %72 = zext i16 %71 to i32
  tail call void (i64, ptr, ...) @DebugPrint(i64 noundef 16384, ptr noundef nonnull @.str.40, i32 noundef %72) #2
  br label %73

73:                                               ; preds = %65, %69, %67
  %74 = tail call zeroext i8 @DebugPrintEnabled() #2
  %.not68 = icmp eq i8 %74, 0
  br i1 %.not68, label %81, label %75

75:                                               ; preds = %73
  %76 = tail call zeroext i8 @DebugPrintLevelEnabled(i64 noundef 16384) #2
  %.not69 = icmp eq i8 %76, 0
  br i1 %.not69, label %81, label %77

77:                                               ; preds = %75
  %78 = getelementptr inbounds i8, ptr %9, i64 1478
  %79 = load i16, ptr %78, align 2, !tbaa !30
  %80 = zext i16 %79 to i32
  tail call void (i64, ptr, ...) @DebugPrint(i64 noundef 16384, ptr noundef nonnull @.str.41, i32 noundef %80) #2
  br label %81

81:                                               ; preds = %73, %77, %75
  %82 = tail call zeroext i8 @DebugPrintEnabled() #2
  %.not70 = icmp eq i8 %82, 0
  br i1 %.not70, label %89, label %83

83:                                               ; preds = %81
  %84 = tail call zeroext i8 @DebugPrintLevelEnabled(i64 noundef 16384) #2
  %.not71 = icmp eq i8 %84, 0
  br i1 %.not71, label %89, label %85

85:                                               ; preds = %83
  %86 = getelementptr inbounds i8, ptr %9, i64 1480
  %87 = load i16, ptr %86, align 8, !tbaa !31
  %88 = zext i16 %87 to i32
  tail call void (i64, ptr, ...) @DebugPrint(i64 noundef 16384, ptr noundef nonnull @.str.42, i32 noundef %88) #2
  br label %89

89:                                               ; preds = %81, %85, %83
  %90 = tail call zeroext i8 @DebugPrintEnabled() #2
  %.not72 = icmp eq i8 %90, 0
  br i1 %.not72, label %94, label %91

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

93:                                               ; preds = %91
  tail call void (i64, ptr, ...) @DebugPrint(i64 noundef 16384, ptr noundef nonnull @.str.43) #2
  br label %94

94:                                               ; preds = %91, %93, %89
  %95 = getelementptr inbounds i8, ptr %9, i64 1444
  %96 = tail call zeroext i8 @DebugPrintEnabled() #2
  %.not83 = icmp eq i8 %96, 0
  br i1 %.not83, label %102, label %97

97:                                               ; preds = %94
  %98 = tail call zeroext i8 @DebugPrintLevelEnabled(i64 noundef 16384) #2
  %.not84 = icmp eq i8 %98, 0
  br i1 %.not84, label %102, label %99

99:                                               ; preds = %97
  %100 = load i8, ptr %95, align 1, !tbaa !32
  %101 = zext i8 %100 to i32
  tail call void (i64, ptr, ...) @DebugPrint(i64 noundef 16384, ptr noundef nonnull @.str.22, i32 noundef %101) #2
  br label %102

102:                                              ; preds = %94, %99, %97
  %103 = tail call zeroext i8 @DebugPrintEnabled() #2
  %.not83.1 = icmp eq i8 %103, 0
  br i1 %.not83.1, label %110, label %104

104:                                              ; preds = %102
  %105 = tail call zeroext i8 @DebugPrintLevelEnabled(i64 noundef 16384) #2
  %.not84.1 = icmp eq i8 %105, 0
  br i1 %.not84.1, label %110, label %106

106:                                              ; preds = %104
  %107 = getelementptr inbounds i8, ptr %9, i64 1445
  %108 = load i8, ptr %107, align 1, !tbaa !32
  %109 = zext i8 %108 to i32
  tail call void (i64, ptr, ...) @DebugPrint(i64 noundef 16384, ptr noundef nonnull @.str.22, i32 noundef %109) #2
  br label %110

110:                                              ; preds = %106, %104, %102
  %111 = tail call zeroext i8 @DebugPrintEnabled() #2
  %.not83.2 = icmp eq i8 %111, 0
  br i1 %.not83.2, label %118, label %112

112:                                              ; preds = %110
  %113 = tail call zeroext i8 @DebugPrintLevelEnabled(i64 noundef 16384) #2
  %.not84.2 = icmp eq i8 %113, 0
  br i1 %.not84.2, label %118, label %114

114:                                              ; preds = %112
  %115 = getelementptr inbounds i8, ptr %9, i64 1446
  %116 = load i8, ptr %115, align 1, !tbaa !32
  %117 = zext i8 %116 to i32
  tail call void (i64, ptr, ...) @DebugPrint(i64 noundef 16384, ptr noundef nonnull @.str.22, i32 noundef %117) #2
  br label %118

118:                                              ; preds = %114, %112, %110
  %119 = tail call zeroext i8 @DebugPrintEnabled() #2
  %.not83.3 = icmp eq i8 %119, 0
  br i1 %.not83.3, label %126, label %120

120:                                              ; preds = %118
  %121 = tail call zeroext i8 @DebugPrintLevelEnabled(i64 noundef 16384) #2
  %.not84.3 = icmp eq i8 %121, 0
  br i1 %.not84.3, label %126, label %122

122:                                              ; preds = %120
  %123 = getelementptr inbounds i8, ptr %9, i64 1447
  %124 = load i8, ptr %123, align 1, !tbaa !32
  %125 = zext i8 %124 to i32
  tail call void (i64, ptr, ...) @DebugPrint(i64 noundef 16384, ptr noundef nonnull @.str.22, i32 noundef %125) #2
  br label %126

126:                                              ; preds = %122, %120, %118
  %127 = tail call zeroext i8 @DebugPrintEnabled() #2
  %.not83.4 = icmp eq i8 %127, 0
  br i1 %.not83.4, label %134, label %128

128:                                              ; preds = %126
  %129 = tail call zeroext i8 @DebugPrintLevelEnabled(i64 noundef 16384) #2
  %.not84.4 = icmp eq i8 %129, 0
  br i1 %.not84.4, label %134, label %130

130:                                              ; preds = %128
  %131 = getelementptr inbounds i8, ptr %9, i64 1448
  %132 = load i8, ptr %131, align 1, !tbaa !32
  %133 = zext i8 %132 to i32
  tail call void (i64, ptr, ...) @DebugPrint(i64 noundef 16384, ptr noundef nonnull @.str.22, i32 noundef %133) #2
  br label %134

134:                                              ; preds = %130, %128, %126
  %135 = tail call zeroext i8 @DebugPrintEnabled() #2
  %.not83.5 = icmp eq i8 %135, 0
  br i1 %.not83.5, label %142, label %136

136:                                              ; preds = %134
  %137 = tail call zeroext i8 @DebugPrintLevelEnabled(i64 noundef 16384) #2
  %.not84.5 = icmp eq i8 %137, 0
  br i1 %.not84.5, label %142, label %138

138:                                              ; preds = %136
  %139 = getelementptr inbounds i8, ptr %9, i64 1449
  %140 = load i8, ptr %139, align 1, !tbaa !32
  %141 = zext i8 %140 to i32
  tail call void (i64, ptr, ...) @DebugPrint(i64 noundef 16384, ptr noundef nonnull @.str.22, i32 noundef %141) #2
  br label %142

142:                                              ; preds = %138, %136, %134
  %143 = tail call zeroext i8 @DebugPrintEnabled() #2
  %.not83.6 = icmp eq i8 %143, 0
  br i1 %.not83.6, label %150, label %144

144:                                              ; preds = %142
  %145 = tail call zeroext i8 @DebugPrintLevelEnabled(i64 noundef 16384) #2
  %.not84.6 = icmp eq i8 %145, 0
  br i1 %.not84.6, label %150, label %146

146:                                              ; preds = %144
  %147 = getelementptr inbounds i8, ptr %9, i64 1450
  %148 = load i8, ptr %147, align 1, !tbaa !32
  %149 = zext i8 %148 to i32
  tail call void (i64, ptr, ...) @DebugPrint(i64 noundef 16384, ptr noundef nonnull @.str.22, i32 noundef %149) #2
  br label %150

150:                                              ; preds = %146, %144, %142
  %151 = tail call zeroext i8 @DebugPrintEnabled() #2
  %.not83.7 = icmp eq i8 %151, 0
  br i1 %.not83.7, label %158, label %152

152:                                              ; preds = %150
  %153 = tail call zeroext i8 @DebugPrintLevelEnabled(i64 noundef 16384) #2
  %.not84.7 = icmp eq i8 %153, 0
  br i1 %.not84.7, label %158, label %154

154:                                              ; preds = %152
  %155 = getelementptr inbounds i8, ptr %9, i64 1451
  %156 = load i8, ptr %155, align 1, !tbaa !32
  %157 = zext i8 %156 to i32
  tail call void (i64, ptr, ...) @DebugPrint(i64 noundef 16384, ptr noundef nonnull @.str.22, i32 noundef %157) #2
  br label %158

158:                                              ; preds = %154, %152, %150
  %159 = tail call zeroext i8 @DebugPrintEnabled() #2
  %.not83.8 = icmp eq i8 %159, 0
  br i1 %.not83.8, label %166, label %160

160:                                              ; preds = %158
  %161 = tail call zeroext i8 @DebugPrintLevelEnabled(i64 noundef 16384) #2
  %.not84.8 = icmp eq i8 %161, 0
  br i1 %.not84.8, label %166, label %162

162:                                              ; preds = %160
  %163 = getelementptr inbounds i8, ptr %9, i64 1452
  %164 = load i8, ptr %163, align 1, !tbaa !32
  %165 = zext i8 %164 to i32
  tail call void (i64, ptr, ...) @DebugPrint(i64 noundef 16384, ptr noundef nonnull @.str.22, i32 noundef %165) #2
  br label %166

166:                                              ; preds = %162, %160, %158
  %167 = tail call zeroext i8 @DebugPrintEnabled() #2
  %.not83.9 = icmp eq i8 %167, 0
  br i1 %.not83.9, label %174, label %168

168:                                              ; preds = %166
  %169 = tail call zeroext i8 @DebugPrintLevelEnabled(i64 noundef 16384) #2
  %.not84.9 = icmp eq i8 %169, 0
  br i1 %.not84.9, label %174, label %170

170:                                              ; preds = %168
  %171 = getelementptr inbounds i8, ptr %9, i64 1453
  %172 = load i8, ptr %171, align 1, !tbaa !32
  %173 = zext i8 %172 to i32
  tail call void (i64, ptr, ...) @DebugPrint(i64 noundef 16384, ptr noundef nonnull @.str.22, i32 noundef %173) #2
  br label %174

174:                                              ; preds = %170, %168, %166
  %175 = tail call zeroext i8 @DebugPrintEnabled() #2
  %.not83.10 = icmp eq i8 %175, 0
  br i1 %.not83.10, label %182, label %176

176:                                              ; preds = %174
  %177 = tail call zeroext i8 @DebugPrintLevelEnabled(i64 noundef 16384) #2
  %.not84.10 = icmp eq i8 %177, 0
  br i1 %.not84.10, label %182, label %178

178:                                              ; preds = %176
  %179 = getelementptr inbounds i8, ptr %9, i64 1454
  %180 = load i8, ptr %179, align 1, !tbaa !32
  %181 = zext i8 %180 to i32
  tail call void (i64, ptr, ...) @DebugPrint(i64 noundef 16384, ptr noundef nonnull @.str.22, i32 noundef %181) #2
  br label %182

182:                                              ; preds = %178, %176, %174
  %183 = tail call zeroext i8 @DebugPrintEnabled() #2
  %.not83.11 = icmp eq i8 %183, 0
  br i1 %.not83.11, label %190, label %184

184:                                              ; preds = %182
  %185 = tail call zeroext i8 @DebugPrintLevelEnabled(i64 noundef 16384) #2
  %.not84.11 = icmp eq i8 %185, 0
  br i1 %.not84.11, label %190, label %186

186:                                              ; preds = %184
  %187 = getelementptr inbounds i8, ptr %9, i64 1455
  %188 = load i8, ptr %187, align 1, !tbaa !32
  %189 = zext i8 %188 to i32
  tail call void (i64, ptr, ...) @DebugPrint(i64 noundef 16384, ptr noundef nonnull @.str.22, i32 noundef %189) #2
  br label %190

190:                                              ; preds = %186, %184, %182
  %191 = tail call zeroext i8 @DebugPrintEnabled() #2
  %.not83.12 = icmp eq i8 %191, 0
  br i1 %.not83.12, label %198, label %192

192:                                              ; preds = %190
  %193 = tail call zeroext i8 @DebugPrintLevelEnabled(i64 noundef 16384) #2
  %.not84.12 = icmp eq i8 %193, 0
  br i1 %.not84.12, label %198, label %194

194:                                              ; preds = %192
  %195 = getelementptr inbounds i8, ptr %9, i64 1456
  %196 = load i8, ptr %195, align 1, !tbaa !32
  %197 = zext i8 %196 to i32
  tail call void (i64, ptr, ...) @DebugPrint(i64 noundef 16384, ptr noundef nonnull @.str.22, i32 noundef %197) #2
  br label %198

198:                                              ; preds = %194, %192, %190
  %199 = tail call zeroext i8 @DebugPrintEnabled() #2
  %.not83.13 = icmp eq i8 %199, 0
  br i1 %.not83.13, label %206, label %200

200:                                              ; preds = %198
  %201 = tail call zeroext i8 @DebugPrintLevelEnabled(i64 noundef 16384) #2
  %.not84.13 = icmp eq i8 %201, 0
  br i1 %.not84.13, label %206, label %202

202:                                              ; preds = %200
  %203 = getelementptr inbounds i8, ptr %9, i64 1457
  %204 = load i8, ptr %203, align 1, !tbaa !32
  %205 = zext i8 %204 to i32
  tail call void (i64, ptr, ...) @DebugPrint(i64 noundef 16384, ptr noundef nonnull @.str.22, i32 noundef %205) #2
  br label %206

206:                                              ; preds = %202, %200, %198
  %207 = tail call zeroext i8 @DebugPrintEnabled() #2
  %.not83.14 = icmp eq i8 %207, 0
  br i1 %.not83.14, label %214, label %208

208:                                              ; preds = %206
  %209 = tail call zeroext i8 @DebugPrintLevelEnabled(i64 noundef 16384) #2
  %.not84.14 = icmp eq i8 %209, 0
  br i1 %.not84.14, label %214, label %210

210:                                              ; preds = %208
  %211 = getelementptr inbounds i8, ptr %9, i64 1458
  %212 = load i8, ptr %211, align 1, !tbaa !32
  %213 = zext i8 %212 to i32
  tail call void (i64, ptr, ...) @DebugPrint(i64 noundef 16384, ptr noundef nonnull @.str.22, i32 noundef %213) #2
  br label %214

214:                                              ; preds = %210, %208, %206
  %215 = tail call zeroext i8 @DebugPrintEnabled() #2
  %.not83.15 = icmp eq i8 %215, 0
  br i1 %.not83.15, label %222, label %216

216:                                              ; preds = %214
  %217 = tail call zeroext i8 @DebugPrintLevelEnabled(i64 noundef 16384) #2
  %.not84.15 = icmp eq i8 %217, 0
  br i1 %.not84.15, label %222, label %218

218:                                              ; preds = %216
  %219 = getelementptr inbounds i8, ptr %9, i64 1459
  %220 = load i8, ptr %219, align 1, !tbaa !32
  %221 = zext i8 %220 to i32
  tail call void (i64, ptr, ...) @DebugPrint(i64 noundef 16384, ptr noundef nonnull @.str.22, i32 noundef %221) #2
  br label %222

222:                                              ; preds = %218, %216, %214
  %223 = tail call zeroext i8 @DebugPrintEnabled() #2
  %.not74 = icmp eq i8 %223, 0
  br i1 %.not74, label %227, label %224

224:                                              ; preds = %222
  %225 = tail call zeroext i8 @DebugPrintLevelEnabled(i64 noundef 16384) #2
  %.not75 = icmp eq i8 %225, 0
  br i1 %.not75, label %227, label %226

226:                                              ; preds = %224
  tail call void (i64, ptr, ...) @DebugPrint(i64 noundef 16384, ptr noundef nonnull @.str.23) #2
  br label %227

227:                                              ; preds = %222, %226, %224
  %228 = tail call zeroext i8 @DebugPrintEnabled() #2
  %.not76 = icmp eq i8 %228, 0
  br i1 %.not76, label %232, label %229

229:                                              ; preds = %227
  %230 = tail call zeroext i8 @DebugPrintLevelEnabled(i64 noundef 16384) #2
  %.not77 = icmp eq i8 %230, 0
  br i1 %.not77, label %232, label %231

231:                                              ; preds = %229
  tail call void (i64, ptr, ...) @DebugPrint(i64 noundef 16384, ptr noundef nonnull @.str.44) #2
  br label %232

232:                                              ; preds = %229, %231, %227
  %233 = getelementptr inbounds i8, ptr %9, i64 1460
  %234 = tail call zeroext i8 @DebugPrintEnabled() #2
  %.not81 = icmp eq i8 %234, 0
  br i1 %.not81, label %240, label %235

235:                                              ; preds = %232
  %236 = tail call zeroext i8 @DebugPrintLevelEnabled(i64 noundef 16384) #2
  %.not82 = icmp eq i8 %236, 0
  br i1 %.not82, label %240, label %237

237:                                              ; preds = %235
  %238 = load i8, ptr %233, align 1, !tbaa !32
  %239 = zext i8 %238 to i32
  tail call void (i64, ptr, ...) @DebugPrint(i64 noundef 16384, ptr noundef nonnull @.str.22, i32 noundef %239) #2
  br label %240

240:                                              ; preds = %232, %237, %235
  %241 = tail call zeroext i8 @DebugPrintEnabled() #2
  %.not81.1 = icmp eq i8 %241, 0
  br i1 %.not81.1, label %248, label %242

242:                                              ; preds = %240
  %243 = tail call zeroext i8 @DebugPrintLevelEnabled(i64 noundef 16384) #2
  %.not82.1 = icmp eq i8 %243, 0
  br i1 %.not82.1, label %248, label %244

244:                                              ; preds = %242
  %245 = getelementptr inbounds i8, ptr %9, i64 1461
  %246 = load i8, ptr %245, align 1, !tbaa !32
  %247 = zext i8 %246 to i32
  tail call void (i64, ptr, ...) @DebugPrint(i64 noundef 16384, ptr noundef nonnull @.str.22, i32 noundef %247) #2
  br label %248

248:                                              ; preds = %244, %242, %240
  %249 = tail call zeroext i8 @DebugPrintEnabled() #2
  %.not81.2 = icmp eq i8 %249, 0
  br i1 %.not81.2, label %256, label %250

250:                                              ; preds = %248
  %251 = tail call zeroext i8 @DebugPrintLevelEnabled(i64 noundef 16384) #2
  %.not82.2 = icmp eq i8 %251, 0
  br i1 %.not82.2, label %256, label %252

252:                                              ; preds = %250
  %253 = getelementptr inbounds i8, ptr %9, i64 1462
  %254 = load i8, ptr %253, align 1, !tbaa !32
  %255 = zext i8 %254 to i32
  tail call void (i64, ptr, ...) @DebugPrint(i64 noundef 16384, ptr noundef nonnull @.str.22, i32 noundef %255) #2
  br label %256

256:                                              ; preds = %252, %250, %248
  %257 = tail call zeroext i8 @DebugPrintEnabled() #2
  %.not81.3 = icmp eq i8 %257, 0
  br i1 %.not81.3, label %264, label %258

258:                                              ; preds = %256
  %259 = tail call zeroext i8 @DebugPrintLevelEnabled(i64 noundef 16384) #2
  %.not82.3 = icmp eq i8 %259, 0
  br i1 %.not82.3, label %264, label %260

260:                                              ; preds = %258
  %261 = getelementptr inbounds i8, ptr %9, i64 1463
  %262 = load i8, ptr %261, align 1, !tbaa !32
  %263 = zext i8 %262 to i32
  tail call void (i64, ptr, ...) @DebugPrint(i64 noundef 16384, ptr noundef nonnull @.str.22, i32 noundef %263) #2
  br label %264

264:                                              ; preds = %260, %258, %256
  %265 = tail call zeroext i8 @DebugPrintEnabled() #2
  %.not81.4 = icmp eq i8 %265, 0
  br i1 %.not81.4, label %272, label %266

266:                                              ; preds = %264
  %267 = tail call zeroext i8 @DebugPrintLevelEnabled(i64 noundef 16384) #2
  %.not82.4 = icmp eq i8 %267, 0
  br i1 %.not82.4, label %272, label %268

268:                                              ; preds = %266
  %269 = getelementptr inbounds i8, ptr %9, i64 1464
  %270 = load i8, ptr %269, align 1, !tbaa !32
  %271 = zext i8 %270 to i32
  tail call void (i64, ptr, ...) @DebugPrint(i64 noundef 16384, ptr noundef nonnull @.str.22, i32 noundef %271) #2
  br label %272

272:                                              ; preds = %268, %266, %264
  %273 = tail call zeroext i8 @DebugPrintEnabled() #2
  %.not81.5 = icmp eq i8 %273, 0
  br i1 %.not81.5, label %280, label %274

274:                                              ; preds = %272
  %275 = tail call zeroext i8 @DebugPrintLevelEnabled(i64 noundef 16384) #2
  %.not82.5 = icmp eq i8 %275, 0
  br i1 %.not82.5, label %280, label %276

276:                                              ; preds = %274
  %277 = getelementptr inbounds i8, ptr %9, i64 1465
  %278 = load i8, ptr %277, align 1, !tbaa !32
  %279 = zext i8 %278 to i32
  tail call void (i64, ptr, ...) @DebugPrint(i64 noundef 16384, ptr noundef nonnull @.str.22, i32 noundef %279) #2
  br label %280

280:                                              ; preds = %276, %274, %272
  %281 = tail call zeroext i8 @DebugPrintEnabled() #2
  %.not81.6 = icmp eq i8 %281, 0
  br i1 %.not81.6, label %288, label %282

282:                                              ; preds = %280
  %283 = tail call zeroext i8 @DebugPrintLevelEnabled(i64 noundef 16384) #2
  %.not82.6 = icmp eq i8 %283, 0
  br i1 %.not82.6, label %288, label %284

284:                                              ; preds = %282
  %285 = getelementptr inbounds i8, ptr %9, i64 1466
  %286 = load i8, ptr %285, align 1, !tbaa !32
  %287 = zext i8 %286 to i32
  tail call void (i64, ptr, ...) @DebugPrint(i64 noundef 16384, ptr noundef nonnull @.str.22, i32 noundef %287) #2
  br label %288

288:                                              ; preds = %284, %282, %280
  %289 = tail call zeroext i8 @DebugPrintEnabled() #2
  %.not81.7 = icmp eq i8 %289, 0
  br i1 %.not81.7, label %296, label %290

290:                                              ; preds = %288
  %291 = tail call zeroext i8 @DebugPrintLevelEnabled(i64 noundef 16384) #2
  %.not82.7 = icmp eq i8 %291, 0
  br i1 %.not82.7, label %296, label %292

292:                                              ; preds = %290
  %293 = getelementptr inbounds i8, ptr %9, i64 1467
  %294 = load i8, ptr %293, align 1, !tbaa !32
  %295 = zext i8 %294 to i32
  tail call void (i64, ptr, ...) @DebugPrint(i64 noundef 16384, ptr noundef nonnull @.str.22, i32 noundef %295) #2
  br label %296

296:                                              ; preds = %292, %290, %288
  %297 = tail call zeroext i8 @DebugPrintEnabled() #2
  %.not81.8 = icmp eq i8 %297, 0
  br i1 %.not81.8, label %304, label %298

298:                                              ; preds = %296
  %299 = tail call zeroext i8 @DebugPrintLevelEnabled(i64 noundef 16384) #2
  %.not82.8 = icmp eq i8 %299, 0
  br i1 %.not82.8, label %304, label %300

300:                                              ; preds = %298
  %301 = getelementptr inbounds i8, ptr %9, i64 1468
  %302 = load i8, ptr %301, align 1, !tbaa !32
  %303 = zext i8 %302 to i32
  tail call void (i64, ptr, ...) @DebugPrint(i64 noundef 16384, ptr noundef nonnull @.str.22, i32 noundef %303) #2
  br label %304

304:                                              ; preds = %300, %298, %296
  %305 = tail call zeroext i8 @DebugPrintEnabled() #2
  %.not81.9 = icmp eq i8 %305, 0
  br i1 %.not81.9, label %312, label %306

306:                                              ; preds = %304
  %307 = tail call zeroext i8 @DebugPrintLevelEnabled(i64 noundef 16384) #2
  %.not82.9 = icmp eq i8 %307, 0
  br i1 %.not82.9, label %312, label %308

308:                                              ; preds = %306
  %309 = getelementptr inbounds i8, ptr %9, i64 1469
  %310 = load i8, ptr %309, align 1, !tbaa !32
  %311 = zext i8 %310 to i32
  tail call void (i64, ptr, ...) @DebugPrint(i64 noundef 16384, ptr noundef nonnull @.str.22, i32 noundef %311) #2
  br label %312

312:                                              ; preds = %308, %306, %304
  %313 = tail call zeroext i8 @DebugPrintEnabled() #2
  %.not81.10 = icmp eq i8 %313, 0
  br i1 %.not81.10, label %320, label %314

314:                                              ; preds = %312
  %315 = tail call zeroext i8 @DebugPrintLevelEnabled(i64 noundef 16384) #2
  %.not82.10 = icmp eq i8 %315, 0
  br i1 %.not82.10, label %320, label %316

316:                                              ; preds = %314
  %317 = getelementptr inbounds i8, ptr %9, i64 1470
  %318 = load i8, ptr %317, align 1, !tbaa !32
  %319 = zext i8 %318 to i32
  tail call void (i64, ptr, ...) @DebugPrint(i64 noundef 16384, ptr noundef nonnull @.str.22, i32 noundef %319) #2
  br label %320

320:                                              ; preds = %316, %314, %312
  %321 = tail call zeroext i8 @DebugPrintEnabled() #2
  %.not81.11 = icmp eq i8 %321, 0
  br i1 %.not81.11, label %328, label %322

322:                                              ; preds = %320
  %323 = tail call zeroext i8 @DebugPrintLevelEnabled(i64 noundef 16384) #2
  %.not82.11 = icmp eq i8 %323, 0
  br i1 %.not82.11, label %328, label %324

324:                                              ; preds = %322
  %325 = getelementptr inbounds i8, ptr %9, i64 1471
  %326 = load i8, ptr %325, align 1, !tbaa !32
  %327 = zext i8 %326 to i32
  tail call void (i64, ptr, ...) @DebugPrint(i64 noundef 16384, ptr noundef nonnull @.str.22, i32 noundef %327) #2
  br label %328

328:                                              ; preds = %324, %322, %320
  %329 = tail call zeroext i8 @DebugPrintEnabled() #2
  %.not81.12 = icmp eq i8 %329, 0
  br i1 %.not81.12, label %336, label %330

330:                                              ; preds = %328
  %331 = tail call zeroext i8 @DebugPrintLevelEnabled(i64 noundef 16384) #2
  %.not82.12 = icmp eq i8 %331, 0
  br i1 %.not82.12, label %336, label %332

332:                                              ; preds = %330
  %333 = getelementptr inbounds i8, ptr %9, i64 1472
  %334 = load i8, ptr %333, align 1, !tbaa !32
  %335 = zext i8 %334 to i32
  tail call void (i64, ptr, ...) @DebugPrint(i64 noundef 16384, ptr noundef nonnull @.str.22, i32 noundef %335) #2
  br label %336

336:                                              ; preds = %332, %330, %328
  %337 = tail call zeroext i8 @DebugPrintEnabled() #2
  %.not81.13 = icmp eq i8 %337, 0
  br i1 %.not81.13, label %344, label %338

338:                                              ; preds = %336
  %339 = tail call zeroext i8 @DebugPrintLevelEnabled(i64 noundef 16384) #2
  %.not82.13 = icmp eq i8 %339, 0
  br i1 %.not82.13, label %344, label %340

340:                                              ; preds = %338
  %341 = getelementptr inbounds i8, ptr %9, i64 1473
  %342 = load i8, ptr %341, align 1, !tbaa !32
  %343 = zext i8 %342 to i32
  tail call void (i64, ptr, ...) @DebugPrint(i64 noundef 16384, ptr noundef nonnull @.str.22, i32 noundef %343) #2
  br label %344

344:                                              ; preds = %340, %338, %336
  %345 = tail call zeroext i8 @DebugPrintEnabled() #2
  %.not81.14 = icmp eq i8 %345, 0
  br i1 %.not81.14, label %352, label %346

346:                                              ; preds = %344
  %347 = tail call zeroext i8 @DebugPrintLevelEnabled(i64 noundef 16384) #2
  %.not82.14 = icmp eq i8 %347, 0
  br i1 %.not82.14, label %352, label %348

348:                                              ; preds = %346
  %349 = getelementptr inbounds i8, ptr %9, i64 1474
  %350 = load i8, ptr %349, align 1, !tbaa !32
  %351 = zext i8 %350 to i32
  tail call void (i64, ptr, ...) @DebugPrint(i64 noundef 16384, ptr noundef nonnull @.str.22, i32 noundef %351) #2
  br label %352

352:                                              ; preds = %348, %346, %344
  %353 = tail call zeroext i8 @DebugPrintEnabled() #2
  %.not81.15 = icmp eq i8 %353, 0
  br i1 %.not81.15, label %360, label %354

354:                                              ; preds = %352
  %355 = tail call zeroext i8 @DebugPrintLevelEnabled(i64 noundef 16384) #2
  %.not82.15 = icmp eq i8 %355, 0
  br i1 %.not82.15, label %360, label %356

356:                                              ; preds = %354
  %357 = getelementptr inbounds i8, ptr %9, i64 1475
  %358 = load i8, ptr %357, align 1, !tbaa !32
  %359 = zext i8 %358 to i32
  tail call void (i64, ptr, ...) @DebugPrint(i64 noundef 16384, ptr noundef nonnull @.str.22, i32 noundef %359) #2
  br label %360

360:                                              ; preds = %356, %354, %352
  %361 = tail call zeroext i8 @DebugPrintEnabled() #2
  %.not78 = icmp eq i8 %361, 0
  br i1 %.not78, label %365, label %362

362:                                              ; preds = %360
  %363 = tail call zeroext i8 @DebugPrintLevelEnabled(i64 noundef 16384) #2
  %.not79 = icmp eq i8 %363, 0
  br i1 %.not79, label %365, label %364

364:                                              ; preds = %362
  tail call void (i64, ptr, ...) @DebugPrint(i64 noundef 16384, ptr noundef nonnull @.str.23) #2
  br label %365

365:                                              ; preds = %362, %364, %360
  %366 = load i16, ptr %14, align 8, !tbaa !23
  %.not80 = icmp eq i16 %366, 0
  br i1 %.not80, label %367, label %395

367:                                              ; preds = %365
  %368 = getelementptr inbounds i8, ptr %9, i64 1442
  %369 = load i16, ptr %368, align 2, !tbaa !28
  %370 = zext i16 %369 to i32
  %371 = getelementptr inbounds i8, ptr %9, i64 148
  store i32 %370, ptr %371, align 4, !tbaa !33
  %372 = getelementptr inbounds i8, ptr %9, i64 1438
  %373 = load i16, ptr %372, align 2, !tbaa !26
  %374 = zext i16 %373 to i32
  %375 = getelementptr inbounds i8, ptr %9, i64 156
  store i32 %374, ptr %375, align 4, !tbaa !34
  %376 = getelementptr inbounds i8, ptr %9, i64 1440
  %377 = load i16, ptr %376, align 8, !tbaa !27
  %378 = trunc i16 %377 to i8
  %379 = getelementptr inbounds i8, ptr %9, i64 792
  store i8 %378, ptr %379, align 8, !tbaa !35
  %380 = getelementptr inbounds i8, ptr %9, i64 696
  %381 = tail call ptr @ZeroMem(ptr noundef nonnull %380, i64 noundef 32) #2
  %382 = load i32, ptr %371, align 4, !tbaa !33
  %383 = zext i32 %382 to i64
  %384 = tail call ptr @CopyMem(ptr noundef nonnull %380, ptr noundef nonnull %95, i64 noundef %383) #2
  %385 = getelementptr inbounds i8, ptr %9, i64 760
  %386 = tail call ptr @ZeroMem(ptr noundef nonnull %385, i64 noundef 32) #2
  %387 = load i32, ptr %371, align 4, !tbaa !33
  %388 = zext i32 %387 to i64
  %389 = tail call ptr @CopyMem(ptr noundef nonnull %385, ptr noundef nonnull %233, i64 noundef %388) #2
  %390 = getelementptr inbounds i8, ptr %9, i64 728
  %391 = tail call ptr @ZeroMem(ptr noundef nonnull %390, i64 noundef 32) #2
  %392 = load i32, ptr %371, align 4, !tbaa !33
  %393 = zext i32 %392 to i64
  %394 = tail call ptr @SetMem(ptr noundef nonnull %390, i64 noundef %393, i8 noundef zeroext -1) #2
  br label %395

395:                                              ; preds = %365, %13, %8, %._crit_edge, %1, %367, %12
  %.048 = phi i64 [ -9223372036854775801, %12 ], [ %16, %367 ], [ -9223372036854775806, %1 ], [ -9223372036854775801, %._crit_edge ], [ -9223372036854775789, %8 ], [ %16, %13 ], [ -9223372036854775801, %365 ]
  ret i64 %.048
}

declare zeroext i8 @DebugAssertEnabled() local_unnamed_addr #0

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

declare i64 @PxeUndiGetInformation(ptr noundef, ptr noundef) local_unnamed_addr #0

declare ptr @SetMem(ptr noundef, i64 noundef, i8 noundef zeroext) local_unnamed_addr #0

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, !7, i64 0}
!6 = !{!"", !7, i64 0, !10, i64 8, !11, i64 16, !12, i64 144, !15, i64 800, !10, i64 840, !10, i64 848, !10, i64 856, !8, i64 864, !10, i64 872, !10, i64 880, !16, i64 888, !16, i64 890, !17, i64 896, !10, i64 1416, !10, i64 1424, !18, i64 1432, !19, i64 1482, !20, i64 1499, !8, i64 1541, !21, i64 1542, !10, i64 1560, !10, i64 1568, !10, i64 1576, !10, i64 1584, !8, i64 1592, !7, i64 1600, !7, i64 1608, !7, i64 1616, !7, i64 1624, !10, i64 1632, !10, i64 1640, !10, i64 1648, !10, i64 1656}
!7 = !{!"long long", !8, i64 0}
!8 = !{!"omnipotent char", !9, i64 0}
!9 = !{!"Simple C/C++ TBAA"}
!10 = !{!"any pointer", !8, i64 0}
!11 = !{!"_EFI_SIMPLE_NETWORK_PROTOCOL", !7, i64 0, !10, i64 8, !10, i64 16, !10, i64 24, !10, i64 32, !10, i64 40, !10, i64 48, !10, i64 56, !10, i64 64, !10, i64 72, !10, i64 80, !10, i64 88, !10, i64 96, !10, i64 104, !10, i64 112, !10, i64 120}
!12 = !{!"", !13, i64 0, !13, i64 4, !13, i64 8, !13, i64 12, !13, i64 16, !13, i64 20, !13, i64 24, !13, i64 28, !13, i64 32, !13, i64 36, !8, i64 40, !14, i64 552, !14, i64 584, !14, i64 616, !8, i64 648, !8, i64 649, !8, i64 650, !8, i64 651, !8, i64 652}
!13 = !{!"int", !8, i64 0}
!14 = !{!"", !8, i64 0}
!15 = !{!"_EFI_NETWORK_INTERFACE_IDENTIFIER_PROTOCOL", !7, i64 0, !7, i64 8, !7, i64 16, !13, i64 24, !8, i64 28, !8, i64 32, !8, i64 33, !8, i64 34, !8, i64 35, !16, i64 36}
!16 = !{!"short", !8, i64 0}
!17 = !{!"", !13, i64 0, !13, i64 4, !8, i64 8}
!18 = !{!"", !16, i64 0, !16, i64 2, !16, i64 4, !16, i64 6, !16, i64 8, !16, i64 10, !8, i64 12, !8, i64 28, !16, i64 44, !16, i64 46, !16, i64 48}
!19 = !{!"", !16, i64 0, !8, i64 2, !8, i64 3}
!20 = !{!"", !16, i64 0, !8, i64 2, !13, i64 18, !13, i64 22, !8, i64 26}
!21 = !{!"", !16, i64 0, !16, i64 2, !16, i64 4, !16, i64 6, !16, i64 8, !16, i64 10, !16, i64 12, !8, i64 14, !8, i64 15}
!22 = !{!6, !13, i64 144}
!23 = !{!6, !16, i64 1432}
!24 = !{!6, !16, i64 1434}
!25 = !{!6, !16, i64 1436}
!26 = !{!6, !16, i64 1438}
!27 = !{!6, !16, i64 1440}
!28 = !{!6, !16, i64 1442}
!29 = !{!6, !16, i64 1476}
!30 = !{!6, !16, i64 1478}
!31 = !{!6, !16, i64 1480}
!32 = !{!8, !8, i64 0}
!33 = !{!6, !13, i64 148}
!34 = !{!6, !13, i64 156}
!35 = !{!6, !8, i64 792}


; Effective O3 passes: BDCEPass,EarlyCSEPass,GVNPass,GlobalOptPass,IPSCCPPass,IndVarSimplifyPass,InferFunctionAttrsPass,InstCombinePass,JumpThreadingPass,LICMPass,LoopRotatePass,SROAPass,SimplifyCFGPass,TailCallElimPass