; LLVM IR from jingweizhanghuai/Morn :: src/image (morn_image)

; 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.MImage = type { i32, i32, i32, [4 x ptr], ptr }

@.str = external hidden unnamed_addr constant [78 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [19 x i8], align 1
@__FUNCTION__.mImageDataWeightAdd = external hidden unnamed_addr constant [20 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

declare void @m_Exception(i32 noundef, i32 noundef, ptr noundef, i32 noundef, ptr noundef, ptr noundef, ...) #1

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

; Function Attrs: nounwind uwtable
declare dso_local void @ImageRedefine(ptr noundef, i32 noundef, i32 noundef, i32 noundef, ptr noundef) #2

; Function Attrs: nounwind uwtable
define dso_local void @mImageDataWeightAdd(ptr noundef %0, ptr noundef %1, ptr noundef %2, float noundef %3, float noundef %4) #2 {
  %6 = alloca ptr, align 8
  %7 = alloca ptr, align 8
  %8 = alloca ptr, align 8
  %9 = alloca float, align 4
  %10 = alloca float, align 4
  %11 = alloca i32, align 4
  %12 = alloca i32, align 4
  %13 = alloca i32, align 4
  %14 = alloca i32, align 4
  %15 = alloca i32, align 4
  %16 = alloca [256 x i32], align 16
  %17 = alloca [256 x i32], align 16
  %18 = alloca i32, align 4
  %19 = alloca i32, align 4
  %20 = alloca ptr, align 8
  %21 = alloca ptr, align 8
  %22 = alloca i32, align 4
  %23 = alloca i32, align 4
  %24 = alloca i32, align 4
  %25 = alloca i32, align 4
  %26 = alloca i32, align 4
  %27 = alloca i32, align 4
  %28 = alloca i32, align 4
  %29 = alloca i32, align 4
  %30 = alloca i32, align 4
  %31 = alloca i32, align 4
  %32 = alloca i32, align 4
  %33 = alloca i32, align 4
  %34 = alloca i32, align 4
  %35 = alloca i32, align 4
  %36 = alloca i32, align 4
  %37 = alloca i32, align 4
  %38 = alloca i32, align 4
  %39 = alloca i32, align 4
  %40 = alloca i32, align 4
  %41 = alloca i32, align 4
  %42 = alloca i32, align 4
  %43 = alloca i32, align 4
  %44 = alloca i32, align 4
  %45 = alloca i32, align 4
  %46 = alloca i32, align 4
  %47 = alloca i32, align 4
  %48 = alloca i32, align 4
  %49 = alloca i32, align 4
  %50 = alloca i32, align 4
  %51 = alloca i32, align 4
  %52 = alloca i32, align 4
  %53 = alloca i32, align 4
  %54 = alloca i32, align 4
  %55 = alloca i32, align 4
  %56 = alloca i32, align 4
  %57 = alloca i32, align 4
  %58 = alloca i32, align 4
  %59 = alloca i32, align 4
  %60 = alloca i32, align 4
  %61 = alloca i32, align 4
  %62 = alloca i32, align 4
  %63 = alloca i32, align 4
  %64 = alloca i32, align 4
  %65 = alloca i32, align 4
  %66 = alloca i32, align 4
  %67 = alloca i32, align 4
  %68 = alloca i32, align 4
  %69 = alloca i32, align 4
  %70 = alloca i32, align 4
  %71 = alloca i32, align 4
  %72 = alloca i32, align 4
  %73 = alloca i32, align 4
  %74 = alloca i32, align 4
  %75 = alloca i32, align 4
  %76 = alloca i32, align 4
  %77 = alloca i32, align 4
  %78 = alloca i32, align 4
  %79 = alloca i32, align 4
  %80 = alloca i32, align 4
  %81 = alloca i32, align 4
  %82 = alloca i32, align 4
  %83 = alloca i32, align 4
  %84 = alloca i32, align 4
  %85 = alloca i32, align 4
  %86 = alloca i32, align 4
  %87 = alloca i32, align 4
  %88 = alloca i32, align 4
  %89 = alloca i32, align 4
  %90 = alloca i32, align 4
  %91 = alloca i32, align 4
  %92 = alloca i32, align 4
  %93 = alloca i32, align 4
  %94 = alloca i32, align 4
  %95 = alloca i32, align 4
  %96 = alloca i32, align 4
  %97 = alloca i32, align 4
  %98 = alloca i32, align 4
  %99 = alloca i32, align 4
  %100 = alloca i32, align 4
  %101 = alloca i32, align 4
  %102 = alloca i32, align 4
  %103 = alloca i32, align 4
  %104 = alloca i32, align 4
  %105 = alloca i32, align 4
  %106 = alloca i32, align 4
  %107 = alloca i32, align 4
  %108 = alloca i32, align 4
  %109 = alloca i32, align 4
  %110 = alloca i32, align 4
  %111 = alloca i32, align 4
  %112 = alloca i32, align 4
  %113 = alloca i32, align 4
  %114 = alloca i32, align 4
  %115 = alloca i32, align 4
  %116 = alloca i32, align 4
  %117 = alloca i32, align 4
  %118 = alloca i32, align 4
  %119 = alloca i32, align 4
  %120 = alloca i32, align 4
  %121 = alloca i32, align 4
  %122 = alloca i32, align 4
  %123 = alloca i32, align 4
  %124 = alloca i32, align 4
  %125 = alloca i32, align 4
  %126 = alloca i32, align 4
  %127 = alloca i32, align 4
  %128 = alloca i32, align 4
  %129 = alloca i32, align 4
  %130 = alloca i32, align 4
  %131 = alloca i32, align 4
  %132 = alloca i32, align 4
  %133 = alloca i32, align 4
  %134 = alloca i32, align 4
  %135 = alloca i32, align 4
  %136 = alloca i32, align 4
  %137 = alloca i32, align 4
  %138 = alloca i32, align 4
  %139 = alloca i32, align 4
  %140 = alloca i32, align 4
  %141 = alloca i32, align 4
  %142 = alloca i32, align 4
  %143 = alloca i32, align 4
  %144 = alloca i32, align 4
  %145 = alloca i32, align 4
  %146 = alloca i32, align 4
  %147 = alloca i32, align 4
  %148 = alloca i32, align 4
  %149 = alloca i32, align 4
  %150 = alloca i32, align 4
  %151 = alloca i32, align 4
  %152 = alloca i32, align 4
  %153 = alloca i32, align 4
  %154 = alloca i32, align 4
  %155 = alloca i32, align 4
  %156 = alloca i32, align 4
  %157 = alloca i32, align 4
  %158 = alloca i32, align 4
  %159 = alloca i32, align 4
  store ptr %0, ptr %6, align 8, !tbaa !5
  store ptr %1, ptr %7, align 8, !tbaa !5
  store ptr %2, ptr %8, align 8, !tbaa !5
  store float %3, ptr %9, align 4, !tbaa !9
  store float %4, ptr %10, align 4, !tbaa !9
  br label %160

160:                                              ; preds = %5
  call void @llvm.lifetime.start.p0(i64 4, ptr %11) #3
  %161 = load ptr, ptr %6, align 8, !tbaa !5
  %162 = icmp eq ptr %161, null
  br i1 %162, label %167, label %163

163:                                              ; preds = %160
  %164 = load ptr, ptr %6, align 8, !tbaa !5
  %165 = ptrtoint ptr %164 to i64
  %166 = icmp eq i64 %165, -1
  br i1 %166, label %167, label %168

167:                                              ; preds = %163, %160
  br i1 true, label %234, label %194

168:                                              ; preds = %163
  %169 = load ptr, ptr %6, align 8, !tbaa !5
  %170 = getelementptr inbounds %struct.MImage, ptr %169, i32 0, i32 3
  %171 = getelementptr inbounds [4 x ptr], ptr %170, i64 0, i64 0
  %172 = icmp eq ptr %171, null
  br i1 %172, label %234, label %173

173:                                              ; preds = %168
  %174 = load ptr, ptr %6, align 8, !tbaa !5
  %175 = getelementptr inbounds %struct.MImage, ptr %174, i32 0, i32 3
  %176 = getelementptr inbounds [4 x ptr], ptr %175, i64 0, i64 0
  %177 = ptrtoint ptr %176 to i64
  %178 = icmp eq i64 %177, -1
  br i1 %178, label %234, label %179

179:                                              ; preds = %173
  %180 = load ptr, ptr %6, align 8, !tbaa !5
  %181 = getelementptr inbounds %struct.MImage, ptr %180, i32 0, i32 0
  %182 = load i32, ptr %181, align 8, !tbaa !11
  %183 = icmp sle i32 %182, 0
  br i1 %183, label %234, label %184

184:                                              ; preds = %179
  %185 = load ptr, ptr %6, align 8, !tbaa !5
  %186 = getelementptr inbounds %struct.MImage, ptr %185, i32 0, i32 1
  %187 = load i32, ptr %186, align 4, !tbaa !14
  %188 = icmp sle i32 %187, 0
  br i1 %188, label %234, label %189

189:                                              ; preds = %184
  %190 = load ptr, ptr %6, align 8, !tbaa !5
  %191 = getelementptr inbounds %struct.MImage, ptr %190, i32 0, i32 2
  %192 = load i32, ptr %191, align 8, !tbaa !15
  %193 = icmp sle i32 %192, 0
  br i1 %193, label %234, label %194

194:                                              ; preds = %189, %167
  %195 = load ptr, ptr %7, align 8, !tbaa !5
  %196 = icmp eq ptr %195, null
  br i1 %196, label %201, label %197

197:                                              ; preds = %194
  %198 = load ptr, ptr %7, align 8, !tbaa !5
  %199 = ptrtoint ptr %198 to i64
  %200 = icmp eq i64 %199, -1
  br i1 %200, label %201, label %202

201:                                              ; preds = %197, %194
  br label %231

202:                                              ; preds = %197
  %203 = load ptr, ptr %7, align 8, !tbaa !5
  %204 = getelementptr inbounds %struct.MImage, ptr %203, i32 0, i32 3
  %205 = getelementptr inbounds [4 x ptr], ptr %204, i64 0, i64 0
  %206 = icmp eq ptr %205, null
  br i1 %206, label %228, label %207

207:                                              ; preds = %202
  %208 = load ptr, ptr %7, align 8, !tbaa !5
  %209 = getelementptr inbounds %struct.MImage, ptr %208, i32 0, i32 3
  %210 = getelementptr inbounds [4 x ptr], ptr %209, i64 0, i64 0
  %211 = ptrtoint ptr %210 to i64
  %212 = icmp eq i64 %211, -1
  br i1 %212, label %228, label %213

213:                                              ; preds = %207
  %214 = load ptr, ptr %7, align 8, !tbaa !5
  %215 = getelementptr inbounds %struct.MImage, ptr %214, i32 0, i32 0
  %216 = load i32, ptr %215, align 8, !tbaa !11
  %217 = icmp sle i32 %216, 0
  br i1 %217, label %228, label %218

218:                                              ; preds = %213
  %219 = load ptr, ptr %7, align 8, !tbaa !5
  %220 = getelementptr inbounds %struct.MImage, ptr %219, i32 0, i32 1
  %221 = load i32, ptr %220, align 4, !tbaa !14
  %222 = icmp sle i32 %221, 0
  br i1 %222, label %228, label %223

223:                                              ; preds = %218
  %224 = load ptr, ptr %7, align 8, !tbaa !5
  %225 = getelementptr inbounds %struct.MImage, ptr %224, i32 0, i32 2
  %226 = load i32, ptr %225, align 8, !tbaa !15
  %227 = icmp sle i32 %226, 0
  br label %228

228:                                              ; preds = %223, %218, %213, %207, %202
  %229 = phi i1 [ true, %218 ], [ true, %213 ], [ true, %207 ], [ true, %202 ], [ %227, %223 ]
  %230 = zext i1 %229 to i32
  br label %231

231:                                              ; preds = %228, %201
  %232 = phi i32 [ 1, %201 ], [ %230, %228 ]
  %233 = icmp ne i32 %232, 0
  br label %234

234:                                              ; preds = %231, %189, %184, %179, %173, %168, %167
  %235 = phi i1 [ true, %189 ], [ true, %184 ], [ true, %179 ], [ true, %173 ], [ true, %168 ], [ true, %167 ], [ %233, %231 ]
  %236 = zext i1 %235 to i32
  store i32 %236, ptr %11, align 4, !tbaa !16
  %237 = load i32, ptr %11, align 4, !tbaa !16
  %238 = icmp ne i32 %237, 0
  br i1 %238, label %239, label %241

239:                                              ; preds = %234
  %240 = load i32, ptr %11, align 4, !tbaa !16
  call void (i32, i32, ptr, i32, ptr, ptr, ...) @m_Exception(i32 noundef %240, i32 noundef -1, ptr noundef @.str, i32 noundef 550, ptr noundef @__FUNCTION__.mImageDataWeightAdd, ptr noundef @.str.2)
  br label %241

241:                                              ; preds = %239, %234
  call void @llvm.lifetime.end.p0(i64 4, ptr %11) #3
  br label %242

242:                                              ; preds = %241
  br label %243

243:                                              ; preds = %242
  call void @llvm.lifetime.start.p0(i64 4, ptr %12) #3
  %244 = load ptr, ptr %6, align 8, !tbaa !5
  %245 = getelementptr inbounds %struct.MImage, ptr %244, i32 0, i32 1
  %246 = load i32, ptr %245, align 4, !tbaa !14
  %247 = load ptr, ptr %7, align 8, !tbaa !5
  %248 = getelementptr inbounds %struct.MImage, ptr %247, i32 0, i32 1
  %249 = load i32, ptr %248, align 4, !tbaa !14
  %250 = icmp ne i32 %246, %249
  br i1 %250, label %259, label %251

251:                                              ; preds = %243
  %252 = load ptr, ptr %6, align 8, !tbaa !5
  %253 = getelementptr inbounds %struct.MImage, ptr %252, i32 0, i32 2
  %254 = load i32, ptr %253, align 8, !tbaa !15
  %255 = load ptr, ptr %7, align 8, !tbaa !5
  %256 = getelementptr inbounds %struct.MImage, ptr %255, i32 0, i32 2
  %257 = load i32, ptr %256, align 8, !tbaa !15
  %258 = icmp ne i32 %254, %257
  br label %259

259:                                              ; preds = %251, %243
  %260 = phi i1 [ true, %243 ], [ %258, %251 ]
  %261 = zext i1 %260 to i32
  store i32 %261, ptr %12, align 4, !tbaa !16
  %262 = load i32, ptr %12, align 4, !tbaa !16
  %263 = icmp ne i32 %262, 0
  br i1 %263, label %264, label %266

264:                                              ; preds = %259
  %265 = load i32, ptr %12, align 4, !tbaa !16
  call void (i32, i32, ptr, i32, ptr, ptr, ...) @m_Exception(i32 noundef %265, i32 noundef -1, ptr noundef @.str, i32 noundef 551, ptr noundef @__FUNCTION__.mImageDataWeightAdd, ptr noundef @.str.2)
  br label %266

266:                                              ; preds = %264, %259
  call void @llvm.lifetime.end.p0(i64 4, ptr %12) #3
  br label %267

267:                                              ; preds = %266
  br label %268

268:                                              ; preds = %267
  call void @llvm.lifetime.start.p0(i64 4, ptr %13) #3
  %269 = load ptr, ptr %7, align 8, !tbaa !5
  %270 = getelementptr inbounds %struct.MImage, ptr %269, i32 0, i32 0
  %271 = load i32, ptr %270, align 8, !tbaa !11
  %272 = load ptr, ptr %6, align 8, !tbaa !5
  %273 = getelementptr inbounds %struct.MImage, ptr %272, i32 0, i32 0
  %274 = load i32, ptr %273, align 8, !tbaa !11
  %275 = icmp ne i32 %271, %274
  br i1 %275, label %276, label %281

276:                                              ; preds = %268
  %277 = load ptr, ptr %7, align 8, !tbaa !5
  %278 = getelementptr inbounds %struct.MImage, ptr %277, i32 0, i32 0
  %279 = load i32, ptr %278, align 8, !tbaa !11
  %280 = icmp ne i32 %279, 1
  br label %281

281:                                              ; preds = %276, %268
  %282 = phi i1 [ false, %268 ], [ %280, %276 ]
  %283 = zext i1 %282 to i32
  store i32 %283, ptr %13, align 4, !tbaa !16
  %284 = load i32, ptr %13, align 4, !tbaa !16
  %285 = icmp ne i32 %284, 0
  br i1 %285, label %286, label %288

286:                                              ; preds = %281
  %287 = load i32, ptr %13, align 4, !tbaa !16
  call void (i32, i32, ptr, i32, ptr, ptr, ...) @m_Exception(i32 noundef %287, i32 noundef -1, ptr noundef @.str, i32 noundef 552, ptr noundef @__FUNCTION__.mImageDataWeightAdd, ptr noundef @.str.2)
  br label %288

288:                                              ; preds = %286, %281
  call void @llvm.lifetime.end.p0(i64 4, ptr %13) #3
  br label %289

289:                                              ; preds = %288
  %290 = load ptr, ptr %8, align 8, !tbaa !5
  %291 = icmp eq ptr %290, null
  br i1 %291, label %296, label %292

292:                                              ; preds = %289
  %293 = load ptr, ptr %8, align 8, !tbaa !5
  %294 = ptrtoint ptr %293 to i64
  %295 = icmp eq i64 %294, -1
  br i1 %295, label %296, label %298

296:                                              ; preds = %292, %289
  %297 = load ptr, ptr %6, align 8, !tbaa !5
  store ptr %297, ptr %8, align 8, !tbaa !5
  br label %363

298:                                              ; preds = %292
  br label %299

299:                                              ; preds = %298
  call void @llvm.lifetime.start.p0(i64 4, ptr %14) #3
  store i32 4, ptr %14, align 4, !tbaa !16
  %300 = load i32, ptr %14, align 4, !tbaa !16
  %301 = icmp eq i32 %300, 2
  br i1 %301, label %302, label %314

302:                                              ; preds = %299
  %303 = load ptr, ptr %8, align 8, !tbaa !5
  %304 = load ptr, ptr %6, align 8, !tbaa !5
  %305 = getelementptr inbounds %struct.MImage, ptr %304, i32 0, i32 0
  %306 = load i32, ptr %305, align 8, !tbaa !11
  %307 = add nsw i32 %306, 0
  %308 = load ptr, ptr %6, align 8, !tbaa !5
  %309 = getelementptr inbounds %struct.MImage, ptr %308, i32 0, i32 1
  %310 = load i32, ptr %309, align 4, !tbaa !14
  %311 = load ptr, ptr %8, align 8, !tbaa !5
  %312 = getelementptr inbounds %struct.MImage, ptr %311, i32 0, i32 3
  %313 = getelementptr inbounds [4 x ptr], ptr %312, i64 0, i64 0
  call void @ImageRedefine(ptr noundef %303, i32 noundef -1, i32 noundef %307, i32 noundef %310, ptr noundef %313)
  br label %361

314:                                              ; preds = %299
  %315 = load i32, ptr %14, align 4, !tbaa !16
  %316 = icmp eq i32 %315, 3
  br i1 %316, label %317, label %332

317:                                              ; preds = %314
  %318 = load ptr, ptr %8, align 8, !tbaa !5
  %319 = load ptr, ptr %6, align 8, !tbaa !5
  %320 = getelementptr inbounds %struct.MImage, ptr %319, i32 0, i32 0
  %321 = load i32, ptr %320, align 8, !tbaa !11
  %322 = add nsw i32 %321, 0
  %323 = load ptr, ptr %6, align 8, !tbaa !5
  %324 = getelementptr inbounds %struct.MImage, ptr %323, i32 0, i32 1
  %325 = load i32, ptr %324, align 4, !tbaa !14
  %326 = load ptr, ptr %6, align 8, !tbaa !5
  %327 = getelementptr inbounds %struct.MImage, ptr %326, i32 0, i32 2
  %328 = load i32, ptr %327, align 8, !tbaa !15
  %329 = load ptr, ptr %8, align 8, !tbaa !5
  %330 = getelementptr inbounds %struct.MImage, ptr %329, i32 0, i32 3
  %331 = getelementptr inbounds [4 x ptr], ptr %330, i64 0, i64 0
  call void @ImageRedefine(ptr noundef %318, i32 noundef %322, i32 noundef %325, i32 noundef %328, ptr noundef %331)
  br label %360

332:                                              ; preds = %314
  %333 = load i32, ptr %14, align 4, !tbaa !16
  %334 = icmp eq i32 %333, 4
  br i1 %334, label %335, label %350

335:                                              ; preds = %332
  %336 = load ptr, ptr %8, align 8, !tbaa !5
  %337 = load ptr, ptr %6, align 8, !tbaa !5
  %338 = getelementptr inbounds %struct.MImage, ptr %337, i32 0, i32 0
  %339 = load i32, ptr %338, align 8, !tbaa !11
  %340 = add nsw i32 %339, 0
  %341 = load ptr, ptr %6, align 8, !tbaa !5
  %342 = getelementptr inbounds %struct.MImage, ptr %341, i32 0, i32 1
  %343 = load i32, ptr %342, align 4, !tbaa !14
  %344 = load ptr, ptr %6, align 8, !tbaa !5
  %345 = getelementptr inbounds %struct.MImage, ptr %344, i32 0, i32 2
  %346 = load i32, ptr %345, align 8, !tbaa !15
  %347 = load ptr, ptr %8, align 8, !tbaa !5
  %348 = getelementptr inbounds %struct.MImage, ptr %347, i32 0, i32 3
  %349 = getelementptr inbounds [4 x ptr], ptr %348, i64 0, i64 0
  call void @ImageRedefine(ptr noundef %336, i32 noundef %340, i32 noundef %343, i32 noundef %346, ptr noundef %349)
  br label %359

350:                                              ; preds = %332
  br label %351

351:                                              ; preds = %350
  call void @llvm.lifetime.start.p0(i64 4, ptr %15) #3
  store i32 1, ptr %15, align 4, !tbaa !16
  %352 = load i32, ptr %15, align 4, !tbaa !16
  %353 = icmp ne i32 %352, 0
  br i1 %353, label %354, label %356

354:                                              ; preds = %351
  %355 = load i32, ptr %15, align 4, !tbaa !16
  call void (i32, i32, ptr, i32, ptr, ptr, ...) @m_Exception(i32 noundef %355, i32 noundef -1, ptr noundef @.str, i32 noundef 555, ptr noundef @__FUNCTION__.mImageDataWeightAdd, ptr noundef @.str.12)
  br label %356

356:                                              ; preds = %354, %351
  call void @llvm.lifetime.end.p0(i64 4, ptr %15) #3
  br label %357

357:                                              ; preds = %356
  br label %358

358:                                              ; preds = %357
  br label %359

359:                                              ; preds = %358, %335
  br label %360

360:                                              ; preds = %359, %317
  br label %361

361:                                              ; preds = %360, %302
  call void @llvm.lifetime.end.p0(i64 4, ptr %14) #3
  br label %362

362:                                              ; preds = %361
  br label %363

363:                                              ; preds = %362, %296
  %364 = load ptr, ptr %6, align 8, !tbaa !5
  %365 = getelementptr inbounds %struct.MImage, ptr %364, i32 0, i32 4
  %366 = load ptr, ptr %365, align 8, !tbaa !17
  %367 = icmp eq ptr %366, null
  br i1 %367, label %380, label %368

368:                                              ; preds = %363
  %369 = load ptr, ptr %6, align 8, !tbaa !5
  %370 = getelementptr inbounds %struct.MImage, ptr %369, i32 0, i32 4
  %371 = load ptr, ptr %370, align 8, !tbaa !17
  %372 = ptrtoint ptr %371 to i64
  %373 = icmp eq i64 %372, -1
  br i1 %373, label %380, label %374

374:                                              ; preds = %368
  %375 = load ptr, ptr %6, align 8, !tbaa !5
  %376 = getelementptr inbounds %struct.MImage, ptr %375, i32 0, i32 4
  %377 = load ptr, ptr %376, align 8, !tbaa !17
  %378 = load ptr, ptr %8, align 8, !tbaa !5
  %379 = getelementptr inbounds %struct.MImage, ptr %378, i32 0, i32 4
  store ptr %377, ptr %379, align 8, !tbaa !17
  br label %398

380:                                              ; preds = %368, %363
  %381 = load ptr, ptr %7, align 8, !tbaa !5
  %382 = getelementptr inbounds %struct.MImage, ptr %381, i32 0, i32 4
  %383 = load ptr, ptr %382, align 8, !tbaa !17
  %384 = icmp eq ptr %383, null
  br i1 %384, label %397, label %385

385:                                              ; preds = %380
  %386 = load ptr, ptr %7, align 8, !tbaa !5
  %387 = getelementptr inbounds %struct.MImage, ptr %386, i32 0, i32 4
  %388 = load ptr, ptr %387, align 8, !tbaa !17
  %389 = ptrtoint ptr %388 to i64
  %390 = icmp eq i64 %389, -1
  br i1 %390, label %397, label %391

391:                                              ; preds = %385
  %392 = load ptr, ptr %7, align 8, !tbaa !5
  %393 = getelementptr inbounds %struct.MImage, ptr %392, i32 0, i32 4
  %394 = load ptr, ptr %393, align 8, !tbaa !17
  %395 = load ptr, ptr %8, align 8, !tbaa !5
  %396 = getelementptr inbounds %struct.MImage, ptr %395, i32 0, i32 4
  store ptr %394, ptr %396, align 8, !tbaa !17
  br label %397

397:                                              ; preds = %391, %385, %380
  br label %398

398:                                              ; preds = %397, %374
  call void @llvm.lifetime.start.p0(i64 1024, ptr %16) #3
  call void @llvm.lifetime.start.p0(i64 1024, ptr %17) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %18) #3
  store i32 0, ptr %18, align 4, !tbaa !16
  br label %399

399:                                              ; preds = %420, %398
  %400 = load i32, ptr %18, align 4, !tbaa !16
  %401 = icmp slt i32 %400, 256
  br i1 %401, label %403, label %402

402:                                              ; preds = %399
  call void @llvm.lifetime.end.p0(i64 4, ptr %18) #3
  br label %423

403:                                              ; preds = %399
  %404 = load i32, ptr %18, align 4, !tbaa !16
  %405 = sitofp i32 %404 to float
  %406 = load float, ptr %9, align 4, !tbaa !9
  %407 = fmul float %405, %406
  %408 = fptosi float %407 to i32
  %409 = load i32, ptr %18, align 4, !tbaa !16
  %410 = sext i32 %409 to i64
  %411 = getelementptr inbounds [256 x i32], ptr %16, i64 0, i64 %410
  store i32 %408, ptr %411, align 4, !tbaa !16
  %412 = load i32, ptr %18, align 4, !tbaa !16
  %413 = sitofp i32 %412 to float
  %414 = load float, ptr %10, align 4, !tbaa !9
  %415 = fmul float %413, %414
  %416 = fptosi float %415 to i32
  %417 = load i32, ptr %18, align 4, !tbaa !16
  %418 = sext i32 %417 to i64
  %419 = getelementptr inbounds [256 x i32], ptr %17, i64 0, i64 %418
  store i32 %416, ptr %419, align 4, !tbaa !16
  br label %420

420:                                              ; preds = %403
  %421 = load i32, ptr %18, align 4, !tbaa !16
  %422 = add nsw i32 %421, 1
  store i32 %422, ptr %18, align 4, !tbaa !16
  br label %399, !llvm.loop !18

423:                                              ; preds = %402
  call void @llvm.lifetime.start.p0(i64 4, ptr %19) #3
  store i32 0, ptr %19, align 4, !tbaa !16
  br label %424

424:                                              ; preds = %10962, %423
  %425 = load i32, ptr %19, align 4, !tbaa !16
  %426 = load ptr, ptr %8, align 8, !tbaa !5
  %427 = getelementptr inbounds %struct.MImage, ptr %426, i32 0, i32 0
  %428 = load i32, ptr %427, align 8, !tbaa !11
  %429 = icmp slt i32 %425, %428
  br i1 %429, label %431, label %430

430:                                              ; preds = %424
  call void @llvm.lifetime.end.p0(i64 4, ptr %19) #3
  br label %10965

431:                                              ; preds = %424
  call void @llvm.lifetime.start.p0(i64 8, ptr %20) #3
  %432 = load ptr, ptr %6, align 8, !tbaa !5
  %433 = getelementptr inbounds %struct.MImage, ptr %432, i32 0, i32 3
  %434 = load i32, ptr %19, align 4, !tbaa !16
  %435 = sext i32 %434 to i64
  %436 = getelementptr inbounds [4 x ptr], ptr %433, i64 0, i64 %435
  %437 = load ptr, ptr %436, align 8, !tbaa !5
  store ptr %437, ptr %20, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %21) #3
  %438 = load i32, ptr %19, align 4, !tbaa !16
  %439 = load ptr, ptr %7, align 8, !tbaa !5
  %440 = getelementptr inbounds %struct.MImage, ptr %439, i32 0, i32 0
  %441 = load i32, ptr %440, align 8, !tbaa !11
  %442 = icmp sge i32 %438, %441
  br i1 %442, label %443, label %448

443:                                              ; preds = %431
  %444 = load ptr, ptr %7, align 8, !tbaa !5
  %445 = getelementptr inbounds %struct.MImage, ptr %444, i32 0, i32 3
  %446 = getelementptr inbounds [4 x ptr], ptr %445, i64 0, i64 0
  %447 = load ptr, ptr %446, align 8, !tbaa !5
  br label %455

448:                                              ; preds = %431
  %449 = load ptr, ptr %7, align 8, !tbaa !5
  %450 = getelementptr inbounds %struct.MImage, ptr %449, i32 0, i32 3
  %451 = load i32, ptr %19, align 4, !tbaa !16
  %452 = sext i32 %451 to i64
  %453 = getelementptr inbounds [4 x ptr], ptr %450, i64 0, i64 %452
  %454 = load ptr, ptr %453, align 8, !tbaa !5
  br label %455

455:                                              ; preds = %448, %443
  %456 = phi ptr [ %447, %443 ], [ %454, %448 ]
  store ptr %456, ptr %21, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %22) #3
  store i32 0, ptr %22, align 4, !tbaa !16
  br label %457

457:                                              ; preds = %10958, %455
  %458 = load i32, ptr %22, align 4, !tbaa !16
  %459 = load ptr, ptr %8, align 8, !tbaa !5
  %460 = getelementptr inbounds %struct.MImage, ptr %459, i32 0, i32 1
  %461 = load i32, ptr %460, align 4, !tbaa !14
  %462 = icmp slt i32 %458, %461
  br i1 %462, label %463, label %10961

463:                                              ; preds = %457
  br label %464

464:                                              ; preds = %463
  call void @llvm.lifetime.start.p0(i64 4, ptr %23) #3
  store i32 0, ptr %23, align 4, !tbaa !16
  store i32 0, ptr %23, align 4, !tbaa !16
  br label %465

465:                                              ; preds = %1689, %464
  %466 = load i32, ptr %23, align 4, !tbaa !16
  %467 = load ptr, ptr %8, align 8, !tbaa !5
  %468 = getelementptr inbounds %struct.MImage, ptr %467, i32 0, i32 2
  %469 = load i32, ptr %468, align 8, !tbaa !15
  %470 = sub nsw i32 %469, 15
  %471 = icmp slt i32 %466, %470
  br i1 %471, label %472, label %1692

472:                                              ; preds = %465
  call void @llvm.lifetime.start.p0(i64 4, ptr %24) #3
  %473 = load ptr, ptr %20, align 8, !tbaa !5
  %474 = load i32, ptr %22, align 4, !tbaa !16
  %475 = sext i32 %474 to i64
  %476 = getelementptr inbounds ptr, ptr %473, i64 %475
  %477 = load ptr, ptr %476, align 8, !tbaa !5
  %478 = load i32, ptr %23, align 4, !tbaa !16
  %479 = sext i32 %478 to i64
  %480 = getelementptr inbounds i8, ptr %477, i64 %479
  %481 = load i8, ptr %480, align 1, !tbaa !20
  %482 = zext i8 %481 to i64
  %483 = getelementptr inbounds [256 x i32], ptr %16, i64 0, i64 %482
  %484 = load i32, ptr %483, align 4, !tbaa !16
  %485 = load ptr, ptr %21, align 8, !tbaa !5
  %486 = load i32, ptr %22, align 4, !tbaa !16
  %487 = sext i32 %486 to i64
  %488 = getelementptr inbounds ptr, ptr %485, i64 %487
  %489 = load ptr, ptr %488, align 8, !tbaa !5
  %490 = load i32, ptr %23, align 4, !tbaa !16
  %491 = sext i32 %490 to i64
  %492 = getelementptr inbounds i8, ptr %489, i64 %491
  %493 = load i8, ptr %492, align 1, !tbaa !20
  %494 = zext i8 %493 to i64
  %495 = getelementptr inbounds [256 x i32], ptr %17, i64 0, i64 %494
  %496 = load i32, ptr %495, align 4, !tbaa !16
  %497 = add nsw i32 %484, %496
  store i32 %497, ptr %24, align 4, !tbaa !16
  %498 = load i32, ptr %24, align 4, !tbaa !16
  %499 = icmp slt i32 %498, 0
  br i1 %499, label %500, label %514

500:                                              ; preds = %472
  %501 = load ptr, ptr %8, align 8, !tbaa !5
  %502 = getelementptr inbounds %struct.MImage, ptr %501, i32 0, i32 3
  %503 = load i32, ptr %19, align 4, !tbaa !16
  %504 = sext i32 %503 to i64
  %505 = getelementptr inbounds [4 x ptr], ptr %502, i64 0, i64 %504
  %506 = load ptr, ptr %505, align 8, !tbaa !5
  %507 = load i32, ptr %22, align 4, !tbaa !16
  %508 = sext i32 %507 to i64
  %509 = getelementptr inbounds ptr, ptr %506, i64 %508
  %510 = load ptr, ptr %509, align 8, !tbaa !5
  %511 = load i32, ptr %23, align 4, !tbaa !16
  %512 = sext i32 %511 to i64
  %513 = getelementptr inbounds i8, ptr %510, i64 %512
  store i8 0, ptr %513, align 1, !tbaa !20
  br label %548

514:                                              ; preds = %472
  %515 = load i32, ptr %24, align 4, !tbaa !16
  %516 = icmp sgt i32 %515, 255
  br i1 %516, label %517, label %531

517:                                              ; preds = %514
  %518 = load ptr, ptr %8, align 8, !tbaa !5
  %519 = getelementptr inbounds %struct.MImage, ptr %518, i32 0, i32 3
  %520 = load i32, ptr %19, align 4, !tbaa !16
  %521 = sext i32 %520 to i64
  %522 = getelementptr inbounds [4 x ptr], ptr %519, i64 0, i64 %521
  %523 = load ptr, ptr %522, align 8, !tbaa !5
  %524 = load i32, ptr %22, align 4, !tbaa !16
  %525 = sext i32 %524 to i64
  %526 = getelementptr inbounds ptr, ptr %523, i64 %525
  %527 = load ptr, ptr %526, align 8, !tbaa !5
  %528 = load i32, ptr %23, align 4, !tbaa !16
  %529 = sext i32 %528 to i64
  %530 = getelementptr inbounds i8, ptr %527, i64 %529
  store i8 -1, ptr %530, align 1, !tbaa !20
  br label %547

531:                                              ; preds = %514
  %532 = load i32, ptr %24, align 4, !tbaa !16
  %533 = trunc i32 %532 to i8
  %534 = load ptr, ptr %8, align 8, !tbaa !5
  %535 = getelementptr inbounds %struct.MImage, ptr %534, i32 0, i32 3
  %536 = load i32, ptr %19, align 4, !tbaa !16
  %537 = sext i32 %536 to i64
  %538 = getelementptr inbounds [4 x ptr], ptr %535, i64 0, i64 %537
  %539 = load ptr, ptr %538, align 8, !tbaa !5
  %540 = load i32, ptr %22, align 4, !tbaa !16
  %541 = sext i32 %540 to i64
  %542 = getelementptr inbounds ptr, ptr %539, i64 %541
  %543 = load ptr, ptr %542, align 8, !tbaa !5
  %544 = load i32, ptr %23, align 4, !tbaa !16
  %545 = sext i32 %544 to i64
  %546 = getelementptr inbounds i8, ptr %543, i64 %545
  store i8 %533, ptr %546, align 1, !tbaa !20
  br label %547

547:                                              ; preds = %531, %517
  br label %548

548:                                              ; preds = %547, %500
  call void @llvm.lifetime.end.p0(i64 4, ptr %24) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %25) #3
  %549 = load ptr, ptr %20, align 8, !tbaa !5
  %550 = load i32, ptr %22, align 4, !tbaa !16
  %551 = sext i32 %550 to i64
  %552 = getelementptr inbounds ptr, ptr %549, i64 %551
  %553 = load ptr, ptr %552, align 8, !tbaa !5
  %554 = load i32, ptr %23, align 4, !tbaa !16
  %555 = sext i32 %554 to i64
  %556 = getelementptr inbounds i8, ptr %553, i64 %555
  %557 = load i8, ptr %556, align 1, !tbaa !20
  %558 = zext i8 %557 to i64
  %559 = getelementptr inbounds [256 x i32], ptr %16, i64 0, i64 %558
  %560 = load i32, ptr %559, align 4, !tbaa !16
  %561 = load ptr, ptr %21, align 8, !tbaa !5
  %562 = load i32, ptr %22, align 4, !tbaa !16
  %563 = sext i32 %562 to i64
  %564 = getelementptr inbounds ptr, ptr %561, i64 %563
  %565 = load ptr, ptr %564, align 8, !tbaa !5
  %566 = load i32, ptr %23, align 4, !tbaa !16
  %567 = sext i32 %566 to i64
  %568 = getelementptr inbounds i8, ptr %565, i64 %567
  %569 = load i8, ptr %568, align 1, !tbaa !20
  %570 = zext i8 %569 to i64
  %571 = getelementptr inbounds [256 x i32], ptr %17, i64 0, i64 %570
  %572 = load i32, ptr %571, align 4, !tbaa !16
  %573 = add nsw i32 %560, %572
  store i32 %573, ptr %25, align 4, !tbaa !16
  %574 = load i32, ptr %25, align 4, !tbaa !16
  %575 = icmp slt i32 %574, 0
  br i1 %575, label %576, label %590

576:                                              ; preds = %548
  %577 = load ptr, ptr %8, align 8, !tbaa !5
  %578 = getelementptr inbounds %struct.MImage, ptr %577, i32 0, i32 3
  %579 = load i32, ptr %19, align 4, !tbaa !16
  %580 = sext i32 %579 to i64
  %581 = getelementptr inbounds [4 x ptr], ptr %578, i64 0, i64 %580
  %582 = load ptr, ptr %581, align 8, !tbaa !5
  %583 = load i32, ptr %22, align 4, !tbaa !16
  %584 = sext i32 %583 to i64
  %585 = getelementptr inbounds ptr, ptr %582, i64 %584
  %586 = load ptr, ptr %585, align 8, !tbaa !5
  %587 = load i32, ptr %23, align 4, !tbaa !16
  %588 = sext i32 %587 to i64
  %589 = getelementptr inbounds i8, ptr %586, i64 %588
  store i8 0, ptr %589, align 1, !tbaa !20
  br label %624

590:                                              ; preds = %548
  %591 = load i32, ptr %25, align 4, !tbaa !16
  %592 = icmp sgt i32 %591, 255
  br i1 %592, label %593, label %607

593:                                              ; preds = %590
  %594 = load ptr, ptr %8, align 8, !tbaa !5
  %595 = getelementptr inbounds %struct.MImage, ptr %594, i32 0, i32 3
  %596 = load i32, ptr %19, align 4, !tbaa !16
  %597 = sext i32 %596 to i64
  %598 = getelementptr inbounds [4 x ptr], ptr %595, i64 0, i64 %597
  %599 = load ptr, ptr %598, align 8, !tbaa !5
  %600 = load i32, ptr %22, align 4, !tbaa !16
  %601 = sext i32 %600 to i64
  %602 = getelementptr inbounds ptr, ptr %599, i64 %601
  %603 = load ptr, ptr %602, align 8, !tbaa !5
  %604 = load i32, ptr %23, align 4, !tbaa !16
  %605 = sext i32 %604 to i64
  %606 = getelementptr inbounds i8, ptr %603, i64 %605
  store i8 -1, ptr %606, align 1, !tbaa !20
  br label %623

607:                                              ; preds = %590
  %608 = load i32, ptr %25, align 4, !tbaa !16
  %609 = trunc i32 %608 to i8
  %610 = load ptr, ptr %8, align 8, !tbaa !5
  %611 = getelementptr inbounds %struct.MImage, ptr %610, i32 0, i32 3
  %612 = load i32, ptr %19, align 4, !tbaa !16
  %613 = sext i32 %612 to i64
  %614 = getelementptr inbounds [4 x ptr], ptr %611, i64 0, i64 %613
  %615 = load ptr, ptr %614, align 8, !tbaa !5
  %616 = load i32, ptr %22, align 4, !tbaa !16
  %617 = sext i32 %616 to i64
  %618 = getelementptr inbounds ptr, ptr %615, i64 %617
  %619 = load ptr, ptr %618, align 8, !tbaa !5
  %620 = load i32, ptr %23, align 4, !tbaa !16
  %621 = sext i32 %620 to i64
  %622 = getelementptr inbounds i8, ptr %619, i64 %621
  store i8 %609, ptr %622, align 1, !tbaa !20
  br label %623

623:                                              ; preds = %607, %593
  br label %624

624:                                              ; preds = %623, %576
  call void @llvm.lifetime.end.p0(i64 4, ptr %25) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %26) #3
  %625 = load ptr, ptr %20, align 8, !tbaa !5
  %626 = load i32, ptr %22, align 4, !tbaa !16
  %627 = sext i32 %626 to i64
  %628 = getelementptr inbounds ptr, ptr %625, i64 %627
  %629 = load ptr, ptr %628, align 8, !tbaa !5
  %630 = load i32, ptr %23, align 4, !tbaa !16
  %631 = sext i32 %630 to i64
  %632 = getelementptr inbounds i8, ptr %629, i64 %631
  %633 = load i8, ptr %632, align 1, !tbaa !20
  %634 = zext i8 %633 to i64
  %635 = getelementptr inbounds [256 x i32], ptr %16, i64 0, i64 %634
  %636 = load i32, ptr %635, align 4, !tbaa !16
  %637 = load ptr, ptr %21, align 8, !tbaa !5
  %638 = load i32, ptr %22, align 4, !tbaa !16
  %639 = sext i32 %638 to i64
  %640 = getelementptr inbounds ptr, ptr %637, i64 %639
  %641 = load ptr, ptr %640, align 8, !tbaa !5
  %642 = load i32, ptr %23, align 4, !tbaa !16
  %643 = sext i32 %642 to i64
  %644 = getelementptr inbounds i8, ptr %641, i64 %643
  %645 = load i8, ptr %644, align 1, !tbaa !20
  %646 = zext i8 %645 to i64
  %647 = getelementptr inbounds [256 x i32], ptr %17, i64 0, i64 %646
  %648 = load i32, ptr %647, align 4, !tbaa !16
  %649 = add nsw i32 %636, %648
  store i32 %649, ptr %26, align 4, !tbaa !16
  %650 = load i32, ptr %26, align 4, !tbaa !16
  %651 = icmp slt i32 %650, 0
  br i1 %651, label %652, label %666

652:                                              ; preds = %624
  %653 = load ptr, ptr %8, align 8, !tbaa !5
  %654 = getelementptr inbounds %struct.MImage, ptr %653, i32 0, i32 3
  %655 = load i32, ptr %19, align 4, !tbaa !16
  %656 = sext i32 %655 to i64
  %657 = getelementptr inbounds [4 x ptr], ptr %654, i64 0, i64 %656
  %658 = load ptr, ptr %657, align 8, !tbaa !5
  %659 = load i32, ptr %22, align 4, !tbaa !16
  %660 = sext i32 %659 to i64
  %661 = getelementptr inbounds ptr, ptr %658, i64 %660
  %662 = load ptr, ptr %661, align 8, !tbaa !5
  %663 = load i32, ptr %23, align 4, !tbaa !16
  %664 = sext i32 %663 to i64
  %665 = getelementptr inbounds i8, ptr %662, i64 %664
  store i8 0, ptr %665, align 1, !tbaa !20
  br label %700

666:                                              ; preds = %624
  %667 = load i32, ptr %26, align 4, !tbaa !16
  %668 = icmp sgt i32 %667, 255
  br i1 %668, label %669, label %683

669:                                              ; preds = %666
  %670 = load ptr, ptr %8, align 8, !tbaa !5
  %671 = getelementptr inbounds %struct.MImage, ptr %670, i32 0, i32 3
  %672 = load i32, ptr %19, align 4, !tbaa !16
  %673 = sext i32 %672 to i64
  %674 = getelementptr inbounds [4 x ptr], ptr %671, i64 0, i64 %673
  %675 = load ptr, ptr %674, align 8, !tbaa !5
  %676 = load i32, ptr %22, align 4, !tbaa !16
  %677 = sext i32 %676 to i64
  %678 = getelementptr inbounds ptr, ptr %675, i64 %677
  %679 = load ptr, ptr %678, align 8, !tbaa !5
  %680 = load i32, ptr %23, align 4, !tbaa !16
  %681 = sext i32 %680 to i64
  %682 = getelementptr inbounds i8, ptr %679, i64 %681
  store i8 -1, ptr %682, align 1, !tbaa !20
  br label %699

683:                                              ; preds = %666
  %684 = load i32, ptr %26, align 4, !tbaa !16
  %685 = trunc i32 %684 to i8
  %686 = load ptr, ptr %8, align 8, !tbaa !5
  %687 = getelementptr inbounds %struct.MImage, ptr %686, i32 0, i32 3
  %688 = load i32, ptr %19, align 4, !tbaa !16
  %689 = sext i32 %688 to i64
  %690 = getelementptr inbounds [4 x ptr], ptr %687, i64 0, i64 %689
  %691 = load ptr, ptr %690, align 8, !tbaa !5
  %692 = load i32, ptr %22, align 4, !tbaa !16
  %693 = sext i32 %692 to i64
  %694 = getelementptr inbounds ptr, ptr %691, i64 %693
  %695 = load ptr, ptr %694, align 8, !tbaa !5
  %696 = load i32, ptr %23, align 4, !tbaa !16
  %697 = sext i32 %696 to i64
  %698 = getelementptr inbounds i8, ptr %695, i64 %697
  store i8 %685, ptr %698, align 1, !tbaa !20
  br label %699

699:                                              ; preds = %683, %669
  br label %700

700:                                              ; preds = %699, %652
  call void @llvm.lifetime.end.p0(i64 4, ptr %26) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %27) #3
  %701 = load ptr, ptr %20, align 8, !tbaa !5
  %702 = load i32, ptr %22, align 4, !tbaa !16
  %703 = sext i32 %702 to i64
  %704 = getelementptr inbounds ptr, ptr %701, i64 %703
  %705 = load ptr, ptr %704, align 8, !tbaa !5
  %706 = load i32, ptr %23, align 4, !tbaa !16
  %707 = sext i32 %706 to i64
  %708 = getelementptr inbounds i8, ptr %705, i64 %707
  %709 = load i8, ptr %708, align 1, !tbaa !20
  %710 = zext i8 %709 to i64
  %711 = getelementptr inbounds [256 x i32], ptr %16, i64 0, i64 %710
  %712 = load i32, ptr %711, align 4, !tbaa !16
  %713 = load ptr, ptr %21, align 8, !tbaa !5
  %714 = load i32, ptr %22, align 4, !tbaa !16
  %715 = sext i32 %714 to i64
  %716 = getelementptr inbounds ptr, ptr %713, i64 %715
  %717 = load ptr, ptr %716, align 8, !tbaa !5
  %718 = load i32, ptr %23, align 4, !tbaa !16
  %719 = sext i32 %718 to i64
  %720 = getelementptr inbounds i8, ptr %717, i64 %719
  %721 = load i8, ptr %720, align 1, !tbaa !20
  %722 = zext i8 %721 to i64
  %723 = getelementptr inbounds [256 x i32], ptr %17, i64 0, i64 %722
  %724 = load i32, ptr %723, align 4, !tbaa !16
  %725 = add nsw i32 %712, %724
  store i32 %725, ptr %27, align 4, !tbaa !16
  %726 = load i32, ptr %27, align 4, !tbaa !16
  %727 = icmp slt i32 %726, 0
  br i1 %727, label %728, label %742

728:                                              ; preds = %700
  %729 = load ptr, ptr %8, align 8, !tbaa !5
  %730 = getelementptr inbounds %struct.MImage, ptr %729, i32 0, i32 3
  %731 = load i32, ptr %19, align 4, !tbaa !16
  %732 = sext i32 %731 to i64
  %733 = getelementptr inbounds [4 x ptr], ptr %730, i64 0, i64 %732
  %734 = load ptr, ptr %733, align 8, !tbaa !5
  %735 = load i32, ptr %22, align 4, !tbaa !16
  %736 = sext i32 %735 to i64
  %737 = getelementptr inbounds ptr, ptr %734, i64 %736
  %738 = load ptr, ptr %737, align 8, !tbaa !5
  %739 = load i32, ptr %23, align 4, !tbaa !16
  %740 = sext i32 %739 to i64
  %741 = getelementptr inbounds i8, ptr %738, i64 %740
  store i8 0, ptr %741, align 1, !tbaa !20
  br label %776

742:                                              ; preds = %700
  %743 = load i32, ptr %27, align 4, !tbaa !16
  %744 = icmp sgt i32 %743, 255
  br i1 %744, label %745, label %759

745:                                              ; preds = %742
  %746 = load ptr, ptr %8, align 8, !tbaa !5
  %747 = getelementptr inbounds %struct.MImage, ptr %746, i32 0, i32 3
  %748 = load i32, ptr %19, align 4, !tbaa !16
  %749 = sext i32 %748 to i64
  %750 = getelementptr inbounds [4 x ptr], ptr %747, i64 0, i64 %749
  %751 = load ptr, ptr %750, align 8, !tbaa !5
  %752 = load i32, ptr %22, align 4, !tbaa !16
  %753 = sext i32 %752 to i64
  %754 = getelementptr inbounds ptr, ptr %751, i64 %753
  %755 = load ptr, ptr %754, align 8, !tbaa !5
  %756 = load i32, ptr %23, align 4, !tbaa !16
  %757 = sext i32 %756 to i64
  %758 = getelementptr inbounds i8, ptr %755, i64 %757
  store i8 -1, ptr %758, align 1, !tbaa !20
  br label %775

759:                                              ; preds = %742
  %760 = load i32, ptr %27, align 4, !tbaa !16
  %761 = trunc i32 %760 to i8
  %762 = load ptr, ptr %8, align 8, !tbaa !5
  %763 = getelementptr inbounds %struct.MImage, ptr %762, i32 0, i32 3
  %764 = load i32, ptr %19, align 4, !tbaa !16
  %765 = sext i32 %764 to i64
  %766 = getelementptr inbounds [4 x ptr], ptr %763, i64 0, i64 %765
  %767 = load ptr, ptr %766, align 8, !tbaa !5
  %768 = load i32, ptr %22, align 4, !tbaa !16
  %769 = sext i32 %768 to i64
  %770 = getelementptr inbounds ptr, ptr %767, i64 %769
  %771 = load ptr, ptr %770, align 8, !tbaa !5
  %772 = load i32, ptr %23, align 4, !tbaa !16
  %773 = sext i32 %772 to i64
  %774 = getelementptr inbounds i8, ptr %771, i64 %773
  store i8 %761, ptr %774, align 1, !tbaa !20
  br label %775

775:                                              ; preds = %759, %745
  br label %776

776:                                              ; preds = %775, %728
  call void @llvm.lifetime.end.p0(i64 4, ptr %27) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %28) #3
  %777 = load ptr, ptr %20, align 8, !tbaa !5
  %778 = load i32, ptr %22, align 4, !tbaa !16
  %779 = sext i32 %778 to i64
  %780 = getelementptr inbounds ptr, ptr %777, i64 %779
  %781 = load ptr, ptr %780, align 8, !tbaa !5
  %782 = load i32, ptr %23, align 4, !tbaa !16
  %783 = sext i32 %782 to i64
  %784 = getelementptr inbounds i8, ptr %781, i64 %783
  %785 = load i8, ptr %784, align 1, !tbaa !20
  %786 = zext i8 %785 to i64
  %787 = getelementptr inbounds [256 x i32], ptr %16, i64 0, i64 %786
  %788 = load i32, ptr %787, align 4, !tbaa !16
  %789 = load ptr, ptr %21, align 8, !tbaa !5
  %790 = load i32, ptr %22, align 4, !tbaa !16
  %791 = sext i32 %790 to i64
  %792 = getelementptr inbounds ptr, ptr %789, i64 %791
  %793 = load ptr, ptr %792, align 8, !tbaa !5
  %794 = load i32, ptr %23, align 4, !tbaa !16
  %795 = sext i32 %794 to i64
  %796 = getelementptr inbounds i8, ptr %793, i64 %795
  %797 = load i8, ptr %796, align 1, !tbaa !20
  %798 = zext i8 %797 to i64
  %799 = getelementptr inbounds [256 x i32], ptr %17, i64 0, i64 %798
  %800 = load i32, ptr %799, align 4, !tbaa !16
  %801 = add nsw i32 %788, %800
  store i32 %801, ptr %28, align 4, !tbaa !16
  %802 = load i32, ptr %28, align 4, !tbaa !16
  %803 = icmp slt i32 %802, 0
  br i1 %803, label %804, label %818

804:                                              ; preds = %776
  %805 = load ptr, ptr %8, align 8, !tbaa !5
  %806 = getelementptr inbounds %struct.MImage, ptr %805, i32 0, i32 3
  %807 = load i32, ptr %19, align 4, !tbaa !16
  %808 = sext i32 %807 to i64
  %809 = getelementptr inbounds [4 x ptr], ptr %806, i64 0, i64 %808
  %810 = load ptr, ptr %809, align 8, !tbaa !5
  %811 = load i32, ptr %22, align 4, !tbaa !16
  %812 = sext i32 %811 to i64
  %813 = getelementptr inbounds ptr, ptr %810, i64 %812
  %814 = load ptr, ptr %813, align 8, !tbaa !5
  %815 = load i32, ptr %23, align 4, !tbaa !16
  %816 = sext i32 %815 to i64
  %817 = getelementptr inbounds i8, ptr %814, i64 %816
  store i8 0, ptr %817, align 1, !tbaa !20
  br label %852

818:                                              ; preds = %776
  %819 = load i32, ptr %28, align 4, !tbaa !16
  %820 = icmp sgt i32 %819, 255
  br i1 %820, label %821, label %835

821:                                              ; preds = %818
  %822 = load ptr, ptr %8, align 8, !tbaa !5
  %823 = getelementptr inbounds %struct.MImage, ptr %822, i32 0, i32 3
  %824 = load i32, ptr %19, align 4, !tbaa !16
  %825 = sext i32 %824 to i64
  %826 = getelementptr inbounds [4 x ptr], ptr %823, i64 0, i64 %825
  %827 = load ptr, ptr %826, align 8, !tbaa !5
  %828 = load i32, ptr %22, align 4, !tbaa !16
  %829 = sext i32 %828 to i64
  %830 = getelementptr inbounds ptr, ptr %827, i64 %829
  %831 = load ptr, ptr %830, align 8, !tbaa !5
  %832 = load i32, ptr %23, align 4, !tbaa !16
  %833 = sext i32 %832 to i64
  %834 = getelementptr inbounds i8, ptr %831, i64 %833
  store i8 -1, ptr %834, align 1, !tbaa !20
  br label %851

835:                                              ; preds = %818
  %836 = load i32, ptr %28, align 4, !tbaa !16
  %837 = trunc i32 %836 to i8
  %838 = load ptr, ptr %8, align 8, !tbaa !5
  %839 = getelementptr inbounds %struct.MImage, ptr %838, i32 0, i32 3
  %840 = load i32, ptr %19, align 4, !tbaa !16
  %841 = sext i32 %840 to i64
  %842 = getelementptr inbounds [4 x ptr], ptr %839, i64 0, i64 %841
  %843 = load ptr, ptr %842, align 8, !tbaa !5
  %844 = load i32, ptr %22, align 4, !tbaa !16
  %845 = sext i32 %844 to i64
  %846 = getelementptr inbounds ptr, ptr %843, i64 %845
  %847 = load ptr, ptr %846, align 8, !tbaa !5
  %848 = load i32, ptr %23, align 4, !tbaa !16
  %849 = sext i32 %848 to i64
  %850 = getelementptr inbounds i8, ptr %847, i64 %849
  store i8 %837, ptr %850, align 1, !tbaa !20
  br label %851

851:                                              ; preds = %835, %821
  br label %852

852:                                              ; preds = %851, %804
  call void @llvm.lifetime.end.p0(i64 4, ptr %28) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %29) #3
  %853 = load ptr, ptr %20, align 8, !tbaa !5
  %854 = load i32, ptr %22, align 4, !tbaa !16
  %855 = sext i32 %854 to i64
  %856 = getelementptr inbounds ptr, ptr %853, i64 %855
  %857 = load ptr, ptr %856, align 8, !tbaa !5
  %858 = load i32, ptr %23, align 4, !tbaa !16
  %859 = sext i32 %858 to i64
  %860 = getelementptr inbounds i8, ptr %857, i64 %859
  %861 = load i8, ptr %860, align 1, !tbaa !20
  %862 = zext i8 %861 to i64
  %863 = getelementptr inbounds [256 x i32], ptr %16, i64 0, i64 %862
  %864 = load i32, ptr %863, align 4, !tbaa !16
  %865 = load ptr, ptr %21, align 8, !tbaa !5
  %866 = load i32, ptr %22, align 4, !tbaa !16
  %867 = sext i32 %866 to i64
  %868 = getelementptr inbounds ptr, ptr %865, i64 %867
  %869 = load ptr, ptr %868, align 8, !tbaa !5
  %870 = load i32, ptr %23, align 4, !tbaa !16
  %871 = sext i32 %870 to i64
  %872 = getelementptr inbounds i8, ptr %869, i64 %871
  %873 = load i8, ptr %872, align 1, !tbaa !20
  %874 = zext i8 %873 to i64
  %875 = getelementptr inbounds [256 x i32], ptr %17, i64 0, i64 %874
  %876 = load i32, ptr %875, align 4, !tbaa !16
  %877 = add nsw i32 %864, %876
  store i32 %877, ptr %29, align 4, !tbaa !16
  %878 = load i32, ptr %29, align 4, !tbaa !16
  %879 = icmp slt i32 %878, 0
  br i1 %879, label %880, label %894

880:                                              ; preds = %852
  %881 = load ptr, ptr %8, align 8, !tbaa !5
  %882 = getelementptr inbounds %struct.MImage, ptr %881, i32 0, i32 3
  %883 = load i32, ptr %19, align 4, !tbaa !16
  %884 = sext i32 %883 to i64
  %885 = getelementptr inbounds [4 x ptr], ptr %882, i64 0, i64 %884
  %886 = load ptr, ptr %885, align 8, !tbaa !5
  %887 = load i32, ptr %22, align 4, !tbaa !16
  %888 = sext i32 %887 to i64
  %889 = getelementptr inbounds ptr, ptr %886, i64 %888
  %890 = load ptr, ptr %889, align 8, !tbaa !5
  %891 = load i32, ptr %23, align 4, !tbaa !16
  %892 = sext i32 %891 to i64
  %893 = getelementptr inbounds i8, ptr %890, i64 %892
  store i8 0, ptr %893, align 1, !tbaa !20
  br label %928

894:                                              ; preds = %852
  %895 = load i32, ptr %29, align 4, !tbaa !16
  %896 = icmp sgt i32 %895, 255
  br i1 %896, label %897, label %911

897:                                              ; preds = %894
  %898 = load ptr, ptr %8, align 8, !tbaa !5
  %899 = getelementptr inbounds %struct.MImage, ptr %898, i32 0, i32 3
  %900 = load i32, ptr %19, align 4, !tbaa !16
  %901 = sext i32 %900 to i64
  %902 = getelementptr inbounds [4 x ptr], ptr %899, i64 0, i64 %901
  %903 = load ptr, ptr %902, align 8, !tbaa !5
  %904 = load i32, ptr %22, align 4, !tbaa !16
  %905 = sext i32 %904 to i64
  %906 = getelementptr inbounds ptr, ptr %903, i64 %905
  %907 = load ptr, ptr %906, align 8, !tbaa !5
  %908 = load i32, ptr %23, align 4, !tbaa !16
  %909 = sext i32 %908 to i64
  %910 = getelementptr inbounds i8, ptr %907, i64 %909
  store i8 -1, ptr %910, align 1, !tbaa !20
  br label %927

911:                                              ; preds = %894
  %912 = load i32, ptr %29, align 4, !tbaa !16
  %913 = trunc i32 %912 to i8
  %914 = load ptr, ptr %8, align 8, !tbaa !5
  %915 = getelementptr inbounds %struct.MImage, ptr %914, i32 0, i32 3
  %916 = load i32, ptr %19, align 4, !tbaa !16
  %917 = sext i32 %916 to i64
  %918 = getelementptr inbounds [4 x ptr], ptr %915, i64 0, i64 %917
  %919 = load ptr, ptr %918, align 8, !tbaa !5
  %920 = load i32, ptr %22, align 4, !tbaa !16
  %921 = sext i32 %920 to i64
  %922 = getelementptr inbounds ptr, ptr %919, i64 %921
  %923 = load ptr, ptr %922, align 8, !tbaa !5
  %924 = load i32, ptr %23, align 4, !tbaa !16
  %925 = sext i32 %924 to i64
  %926 = getelementptr inbounds i8, ptr %923, i64 %925
  store i8 %913, ptr %926, align 1, !tbaa !20
  br label %927

927:                                              ; preds = %911, %897
  br label %928

928:                                              ; preds = %927, %880
  call void @llvm.lifetime.end.p0(i64 4, ptr %29) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %30) #3
  %929 = load ptr, ptr %20, align 8, !tbaa !5
  %930 = load i32, ptr %22, align 4, !tbaa !16
  %931 = sext i32 %930 to i64
  %932 = getelementptr inbounds ptr, ptr %929, i64 %931
  %933 = load ptr, ptr %932, align 8, !tbaa !5
  %934 = load i32, ptr %23, align 4, !tbaa !16
  %935 = sext i32 %934 to i64
  %936 = getelementptr inbounds i8, ptr %933, i64 %935
  %937 = load i8, ptr %936, align 1, !tbaa !20
  %938 = zext i8 %937 to i64
  %939 = getelementptr inbounds [256 x i32], ptr %16, i64 0, i64 %938
  %940 = load i32, ptr %939, align 4, !tbaa !16
  %941 = load ptr, ptr %21, align 8, !tbaa !5
  %942 = load i32, ptr %22, align 4, !tbaa !16
  %943 = sext i32 %942 to i64
  %944 = getelementptr inbounds ptr, ptr %941, i64 %943
  %945 = load ptr, ptr %944, align 8, !tbaa !5
  %946 = load i32, ptr %23, align 4, !tbaa !16
  %947 = sext i32 %946 to i64
  %948 = getelementptr inbounds i8, ptr %945, i64 %947
  %949 = load i8, ptr %948, align 1, !tbaa !20
  %950 = zext i8 %949 to i64
  %951 = getelementptr inbounds [256 x i32], ptr %17, i64 0, i64 %950
  %952 = load i32, ptr %951, align 4, !tbaa !16
  %953 = add nsw i32 %940, %952
  store i32 %953, ptr %30, align 4, !tbaa !16
  %954 = load i32, ptr %30, align 4, !tbaa !16
  %955 = icmp slt i32 %954, 0
  br i1 %955, label %956, label %970

956:                                              ; preds = %928
  %957 = load ptr, ptr %8, align 8, !tbaa !5
  %958 = getelementptr inbounds %struct.MImage, ptr %957, i32 0, i32 3
  %959 = load i32, ptr %19, align 4, !tbaa !16
  %960 = sext i32 %959 to i64
  %961 = getelementptr inbounds [4 x ptr], ptr %958, i64 0, i64 %960
  %962 = load ptr, ptr %961, align 8, !tbaa !5
  %963 = load i32, ptr %22, align 4, !tbaa !16
  %964 = sext i32 %963 to i64
  %965 = getelementptr inbounds ptr, ptr %962, i64 %964
  %966 = load ptr, ptr %965, align 8, !tbaa !5
  %967 = load i32, ptr %23, align 4, !tbaa !16
  %968 = sext i32 %967 to i64
  %969 = getelementptr inbounds i8, ptr %966, i64 %968
  store i8 0, ptr %969, align 1, !tbaa !20
  br label %1004

970:                                              ; preds = %928
  %971 = load i32, ptr %30, align 4, !tbaa !16
  %972 = icmp sgt i32 %971, 255
  br i1 %972, label %973, label %987

973:                                              ; preds = %970
  %974 = load ptr, ptr %8, align 8, !tbaa !5
  %975 = getelementptr inbounds %struct.MImage, ptr %974, i32 0, i32 3
  %976 = load i32, ptr %19, align 4, !tbaa !16
  %977 = sext i32 %976 to i64
  %978 = getelementptr inbounds [4 x ptr], ptr %975, i64 0, i64 %977
  %979 = load ptr, ptr %978, align 8, !tbaa !5
  %980 = load i32, ptr %22, align 4, !tbaa !16
  %981 = sext i32 %980 to i64
  %982 = getelementptr inbounds ptr, ptr %979, i64 %981
  %983 = load ptr, ptr %982, align 8, !tbaa !5
  %984 = load i32, ptr %23, align 4, !tbaa !16
  %985 = sext i32 %984 to i64
  %986 = getelementptr inbounds i8, ptr %983, i64 %985
  store i8 -1, ptr %986, align 1, !tbaa !20
  br label %1003

987:                                              ; preds = %970
  %988 = load i32, ptr %30, align 4, !tbaa !16
  %989 = trunc i32 %988 to i8
  %990 = load ptr, ptr %8, align 8, !tbaa !5
  %991 = getelementptr inbounds %struct.MImage, ptr %990, i32 0, i32 3
  %992 = load i32, ptr %19, align 4, !tbaa !16
  %993 = sext i32 %992 to i64
  %994 = getelementptr inbounds [4 x ptr], ptr %991, i64 0, i64 %993
  %995 = load ptr, ptr %994, align 8, !tbaa !5
  %996 = load i32, ptr %22, align 4, !tbaa !16
  %997 = sext i32 %996 to i64
  %998 = getelementptr inbounds ptr, ptr %995, i64 %997
  %999 = load ptr, ptr %998, align 8, !tbaa !5
  %1000 = load i32, ptr %23, align 4, !tbaa !16
  %1001 = sext i32 %1000 to i64
  %1002 = getelementptr inbounds i8, ptr %999, i64 %1001
  store i8 %989, ptr %1002, align 1, !tbaa !20
  br label %1003

1003:                                             ; preds = %987, %973
  br label %1004

1004:                                             ; preds = %1003, %956
  call void @llvm.lifetime.end.p0(i64 4, ptr %30) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %31) #3
  %1005 = load ptr, ptr %20, align 8, !tbaa !5
  %1006 = load i32, ptr %22, align 4, !tbaa !16
  %1007 = sext i32 %1006 to i64
  %1008 = getelementptr inbounds ptr, ptr %1005, i64 %1007
  %1009 = load ptr, ptr %1008, align 8, !tbaa !5
  %1010 = load i32, ptr %23, align 4, !tbaa !16
  %1011 = sext i32 %1010 to i64
  %1012 = getelementptr inbounds i8, ptr %1009, i64 %1011
  %1013 = load i8, ptr %1012, align 1, !tbaa !20
  %1014 = zext i8 %1013 to i64
  %1015 = getelementptr inbounds [256 x i32], ptr %16, i64 0, i64 %1014
  %1016 = load i32, ptr %1015, align 4, !tbaa !16
  %1017 = load ptr, ptr %21, align 8, !tbaa !5
  %1018 = load i32, ptr %22, align 4, !tbaa !16
  %1019 = sext i32 %1018 to i64
  %1020 = getelementptr inbounds ptr, ptr %1017, i64 %1019
  %1021 = load ptr, ptr %1020, align 8, !tbaa !5
  %1022 = load i32, ptr %23, align 4, !tbaa !16
  %1023 = sext i32 %1022 to i64
  %1024 = getelementptr inbounds i8, ptr %1021, i64 %1023
  %1025 = load i8, ptr %1024, align 1, !tbaa !20
  %1026 = zext i8 %1025 to i64
  %1027 = getelementptr inbounds [256 x i32], ptr %17, i64 0, i64 %1026
  %1028 = load i32, ptr %1027, align 4, !tbaa !16
  %1029 = add nsw i32 %1016, %1028
  store i32 %1029, ptr %31, align 4, !tbaa !16
  %1030 = load i32, ptr %31, align 4, !tbaa !16
  %1031 = icmp slt i32 %1030, 0
  br i1 %1031, label %1032, label %1046

1032:                                             ; preds = %1004
  %1033 = load ptr, ptr %8, align 8, !tbaa !5
  %1034 = getelementptr inbounds %struct.MImage, ptr %1033, i32 0, i32 3
  %1035 = load i32, ptr %19, align 4, !tbaa !16
  %1036 = sext i32 %1035 to i64
  %1037 = getelementptr inbounds [4 x ptr], ptr %1034, i64 0, i64 %1036
  %1038 = load ptr, ptr %1037, align 8, !tbaa !5
  %1039 = load i32, ptr %22, align 4, !tbaa !16
  %1040 = sext i32 %1039 to i64
  %1041 = getelementptr inbounds ptr, ptr %1038, i64 %1040
  %1042 = load ptr, ptr %1041, align 8, !tbaa !5
  %1043 = load i32, ptr %23, align 4, !tbaa !16
  %1044 = sext i32 %1043 to i64
  %1045 = getelementptr inbounds i8, ptr %1042, i64 %1044
  store i8 0, ptr %1045, align 1, !tbaa !20
  br label %1080

1046:                                             ; preds = %1004
  %1047 = load i32, ptr %31, align 4, !tbaa !16
  %1048 = icmp sgt i32 %1047, 255
  br i1 %1048, label %1049, label %1063

1049:                                             ; preds = %1046
  %1050 = load ptr, ptr %8, align 8, !tbaa !5
  %1051 = getelementptr inbounds %struct.MImage, ptr %1050, i32 0, i32 3
  %1052 = load i32, ptr %19, align 4, !tbaa !16
  %1053 = sext i32 %1052 to i64
  %1054 = getelementptr inbounds [4 x ptr], ptr %1051, i64 0, i64 %1053
  %1055 = load ptr, ptr %1054, align 8, !tbaa !5
  %1056 = load i32, ptr %22, align 4, !tbaa !16
  %1057 = sext i32 %1056 to i64
  %1058 = getelementptr inbounds ptr, ptr %1055, i64 %1057
  %1059 = load ptr, ptr %1058, align 8, !tbaa !5
  %1060 = load i32, ptr %23, align 4, !tbaa !16
  %1061 = sext i32 %1060 to i64
  %1062 = getelementptr inbounds i8, ptr %1059, i64 %1061
  store i8 -1, ptr %1062, align 1, !tbaa !20
  br label %1079

1063:                                             ; preds = %1046
  %1064 = load i32, ptr %31, align 4, !tbaa !16
  %1065 = trunc i32 %1064 to i8
  %1066 = load ptr, ptr %8, align 8, !tbaa !5
  %1067 = getelementptr inbounds %struct.MImage, ptr %1066, i32 0, i32 3
  %1068 = load i32, ptr %19, align 4, !tbaa !16
  %1069 = sext i32 %1068 to i64
  %1070 = getelementptr inbounds [4 x ptr], ptr %1067, i64 0, i64 %1069
  %1071 = load ptr, ptr %1070, align 8, !tbaa !5
  %1072 = load i32, ptr %22, align 4, !tbaa !16
  %1073 = sext i32 %1072 to i64
  %1074 = getelementptr inbounds ptr, ptr %1071, i64 %1073
  %1075 = load ptr, ptr %1074, align 8, !tbaa !5
  %1076 = load i32, ptr %23, align 4, !tbaa !16
  %1077 = sext i32 %1076 to i64
  %1078 = getelementptr inbounds i8, ptr %1075, i64 %1077
  store i8 %1065, ptr %1078, align 1, !tbaa !20
  br label %1079

1079:                                             ; preds = %1063, %1049
  br label %1080

1080:                                             ; preds = %1079, %1032
  call void @llvm.lifetime.end.p0(i64 4, ptr %31) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %32) #3
  %1081 = load ptr, ptr %20, align 8, !tbaa !5
  %1082 = load i32, ptr %22, align 4, !tbaa !16
  %1083 = sext i32 %1082 to i64
  %1084 = getelementptr inbounds ptr, ptr %1081, i64 %1083
  %1085 = load ptr, ptr %1084, align 8, !tbaa !5
  %1086 = load i32, ptr %23, align 4, !tbaa !16
  %1087 = sext i32 %1086 to i64
  %1088 = getelementptr inbounds i8, ptr %1085, i64 %1087
  %1089 = load i8, ptr %1088, align 1, !tbaa !20
  %1090 = zext i8 %1089 to i64
  %1091 = getelementptr inbounds [256 x i32], ptr %16, i64 0, i64 %1090
  %1092 = load i32, ptr %1091, align 4, !tbaa !16
  %1093 = load ptr, ptr %21, align 8, !tbaa !5
  %1094 = load i32, ptr %22, align 4, !tbaa !16
  %1095 = sext i32 %1094 to i64
  %1096 = getelementptr inbounds ptr, ptr %1093, i64 %1095
  %1097 = load ptr, ptr %1096, align 8, !tbaa !5
  %1098 = load i32, ptr %23, align 4, !tbaa !16
  %1099 = sext i32 %1098 to i64
  %1100 = getelementptr inbounds i8, ptr %1097, i64 %1099
  %1101 = load i8, ptr %1100, align 1, !tbaa !20
  %1102 = zext i8 %1101 to i64
  %1103 = getelementptr inbounds [256 x i32], ptr %17, i64 0, i64 %1102
  %1104 = load i32, ptr %1103, align 4, !tbaa !16
  %1105 = add nsw i32 %1092, %1104
  store i32 %1105, ptr %32, align 4, !tbaa !16
  %1106 = load i32, ptr %32, align 4, !tbaa !16
  %1107 = icmp slt i32 %1106, 0
  br i1 %1107, label %1108, label %1122

1108:                                             ; preds = %1080
  %1109 = load ptr, ptr %8, align 8, !tbaa !5
  %1110 = getelementptr inbounds %struct.MImage, ptr %1109, i32 0, i32 3
  %1111 = load i32, ptr %19, align 4, !tbaa !16
  %1112 = sext i32 %1111 to i64
  %1113 = getelementptr inbounds [4 x ptr], ptr %1110, i64 0, i64 %1112
  %1114 = load ptr, ptr %1113, align 8, !tbaa !5
  %1115 = load i32, ptr %22, align 4, !tbaa !16
  %1116 = sext i32 %1115 to i64
  %1117 = getelementptr inbounds ptr, ptr %1114, i64 %1116
  %1118 = load ptr, ptr %1117, align 8, !tbaa !5
  %1119 = load i32, ptr %23, align 4, !tbaa !16
  %1120 = sext i32 %1119 to i64
  %1121 = getelementptr inbounds i8, ptr %1118, i64 %1120
  store i8 0, ptr %1121, align 1, !tbaa !20
  br label %1156

1122:                                             ; preds = %1080
  %1123 = load i32, ptr %32, align 4, !tbaa !16
  %1124 = icmp sgt i32 %1123, 255
  br i1 %1124, label %1125, label %1139

1125:                                             ; preds = %1122
  %1126 = load ptr, ptr %8, align 8, !tbaa !5
  %1127 = getelementptr inbounds %struct.MImage, ptr %1126, i32 0, i32 3
  %1128 = load i32, ptr %19, align 4, !tbaa !16
  %1129 = sext i32 %1128 to i64
  %1130 = getelementptr inbounds [4 x ptr], ptr %1127, i64 0, i64 %1129
  %1131 = load ptr, ptr %1130, align 8, !tbaa !5
  %1132 = load i32, ptr %22, align 4, !tbaa !16
  %1133 = sext i32 %1132 to i64
  %1134 = getelementptr inbounds ptr, ptr %1131, i64 %1133
  %1135 = load ptr, ptr %1134, align 8, !tbaa !5
  %1136 = load i32, ptr %23, align 4, !tbaa !16
  %1137 = sext i32 %1136 to i64
  %1138 = getelementptr inbounds i8, ptr %1135, i64 %1137
  store i8 -1, ptr %1138, align 1, !tbaa !20
  br label %1155

1139:                                             ; preds = %1122
  %1140 = load i32, ptr %32, align 4, !tbaa !16
  %1141 = trunc i32 %1140 to i8
  %1142 = load ptr, ptr %8, align 8, !tbaa !5
  %1143 = getelementptr inbounds %struct.MImage, ptr %1142, i32 0, i32 3
  %1144 = load i32, ptr %19, align 4, !tbaa !16
  %1145 = sext i32 %1144 to i64
  %1146 = getelementptr inbounds [4 x ptr], ptr %1143, i64 0, i64 %1145
  %1147 = load ptr, ptr %1146, align 8, !tbaa !5
  %1148 = load i32, ptr %22, align 4, !tbaa !16
  %1149 = sext i32 %1148 to i64
  %1150 = getelementptr inbounds ptr, ptr %1147, i64 %1149
  %1151 = load ptr, ptr %1150, align 8, !tbaa !5
  %1152 = load i32, ptr %23, align 4, !tbaa !16
  %1153 = sext i32 %1152 to i64
  %1154 = getelementptr inbounds i8, ptr %1151, i64 %1153
  store i8 %1141, ptr %1154, align 1, !tbaa !20
  br label %1155

1155:                                             ; preds = %1139, %1125
  br label %1156

1156:                                             ; preds = %1155, %1108
  call void @llvm.lifetime.end.p0(i64 4, ptr %32) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %33) #3
  %1157 = load ptr, ptr %20, align 8, !tbaa !5
  %1158 = load i32, ptr %22, align 4, !tbaa !16
  %1159 = sext i32 %1158 to i64
  %1160 = getelementptr inbounds ptr, ptr %1157, i64 %1159
  %1161 = load ptr, ptr %1160, align 8, !tbaa !5
  %1162 = load i32, ptr %23, align 4, !tbaa !16
  %1163 = sext i32 %1162 to i64
  %1164 = getelementptr inbounds i8, ptr %1161, i64 %1163
  %1165 = load i8, ptr %1164, align 1, !tbaa !20
  %1166 = zext i8 %1165 to i64
  %1167 = getelementptr inbounds [256 x i32], ptr %16, i64 0, i64 %1166
  %1168 = load i32, ptr %1167, align 4, !tbaa !16
  %1169 = load ptr, ptr %21, align 8, !tbaa !5
  %1170 = load i32, ptr %22, align 4, !tbaa !16
  %1171 = sext i32 %1170 to i64
  %1172 = getelementptr inbounds ptr, ptr %1169, i64 %1171
  %1173 = load ptr, ptr %1172, align 8, !tbaa !5
  %1174 = load i32, ptr %23, align 4, !tbaa !16
  %1175 = sext i32 %1174 to i64
  %1176 = getelementptr inbounds i8, ptr %1173, i64 %1175
  %1177 = load i8, ptr %1176, align 1, !tbaa !20
  %1178 = zext i8 %1177 to i64
  %1179 = getelementptr inbounds [256 x i32], ptr %17, i64 0, i64 %1178
  %1180 = load i32, ptr %1179, align 4, !tbaa !16
  %1181 = add nsw i32 %1168, %1180
  store i32 %1181, ptr %33, align 4, !tbaa !16
  %1182 = load i32, ptr %33, align 4, !tbaa !16
  %1183 = icmp slt i32 %1182, 0
  br i1 %1183, label %1184, label %1198

1184:                                             ; preds = %1156
  %1185 = load ptr, ptr %8, align 8, !tbaa !5
  %1186 = getelementptr inbounds %struct.MImage, ptr %1185, i32 0, i32 3
  %1187 = load i32, ptr %19, align 4, !tbaa !16
  %1188 = sext i32 %1187 to i64
  %1189 = getelementptr inbounds [4 x ptr], ptr %1186, i64 0, i64 %1188
  %1190 = load ptr, ptr %1189, align 8, !tbaa !5
  %1191 = load i32, ptr %22, align 4, !tbaa !16
  %1192 = sext i32 %1191 to i64
  %1193 = getelementptr inbounds ptr, ptr %1190, i64 %1192
  %1194 = load ptr, ptr %1193, align 8, !tbaa !5
  %1195 = load i32, ptr %23, align 4, !tbaa !16
  %1196 = sext i32 %1195 to i64
  %1197 = getelementptr inbounds i8, ptr %1194, i64 %1196
  store i8 0, ptr %1197, align 1, !tbaa !20
  br label %1232

1198:                                             ; preds = %1156
  %1199 = load i32, ptr %33, align 4, !tbaa !16
  %1200 = icmp sgt i32 %1199, 255
  br i1 %1200, label %1201, label %1215

1201:                                             ; preds = %1198
  %1202 = load ptr, ptr %8, align 8, !tbaa !5
  %1203 = getelementptr inbounds %struct.MImage, ptr %1202, i32 0, i32 3
  %1204 = load i32, ptr %19, align 4, !tbaa !16
  %1205 = sext i32 %1204 to i64
  %1206 = getelementptr inbounds [4 x ptr], ptr %1203, i64 0, i64 %1205
  %1207 = load ptr, ptr %1206, align 8, !tbaa !5
  %1208 = load i32, ptr %22, align 4, !tbaa !16
  %1209 = sext i32 %1208 to i64
  %1210 = getelementptr inbounds ptr, ptr %1207, i64 %1209
  %1211 = load ptr, ptr %1210, align 8, !tbaa !5
  %1212 = load i32, ptr %23, align 4, !tbaa !16
  %1213 = sext i32 %1212 to i64
  %1214 = getelementptr inbounds i8, ptr %1211, i64 %1213
  store i8 -1, ptr %1214, align 1, !tbaa !20
  br label %1231

1215:                                             ; preds = %1198
  %1216 = load i32, ptr %33, align 4, !tbaa !16
  %1217 = trunc i32 %1216 to i8
  %1218 = load ptr, ptr %8, align 8, !tbaa !5
  %1219 = getelementptr inbounds %struct.MImage, ptr %1218, i32 0, i32 3
  %1220 = load i32, ptr %19, align 4, !tbaa !16
  %1221 = sext i32 %1220 to i64
  %1222 = getelementptr inbounds [4 x ptr], ptr %1219, i64 0, i64 %1221
  %1223 = load ptr, ptr %1222, align 8, !tbaa !5
  %1224 = load i32, ptr %22, align 4, !tbaa !16
  %1225 = sext i32 %1224 to i64
  %1226 = getelementptr inbounds ptr, ptr %1223, i64 %1225
  %1227 = load ptr, ptr %1226, align 8, !tbaa !5
  %1228 = load i32, ptr %23, align 4, !tbaa !16
  %1229 = sext i32 %1228 to i64
  %1230 = getelementptr inbounds i8, ptr %1227, i64 %1229
  store i8 %1217, ptr %1230, align 1, !tbaa !20
  br label %1231

1231:                                             ; preds = %1215, %1201
  br label %1232

1232:                                             ; preds = %1231, %1184
  call void @llvm.lifetime.end.p0(i64 4, ptr %33) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %34) #3
  %1233 = load ptr, ptr %20, align 8, !tbaa !5
  %1234 = load i32, ptr %22, align 4, !tbaa !16
  %1235 = sext i32 %1234 to i64
  %1236 = getelementptr inbounds ptr, ptr %1233, i64 %1235
  %1237 = load ptr, ptr %1236, align 8, !tbaa !5
  %1238 = load i32, ptr %23, align 4, !tbaa !16
  %1239 = sext i32 %1238 to i64
  %1240 = getelementptr inbounds i8, ptr %1237, i64 %1239
  %1241 = load i8, ptr %1240, align 1, !tbaa !20
  %1242 = zext i8 %1241 to i64
  %1243 = getelementptr inbounds [256 x i32], ptr %16, i64 0, i64 %1242
  %1244 = load i32, ptr %1243, align 4, !tbaa !16
  %1245 = load ptr, ptr %21, align 8, !tbaa !5
  %1246 = load i32, ptr %22, align 4, !tbaa !16
  %1247 = sext i32 %1246 to i64
  %1248 = getelementptr inbounds ptr, ptr %1245, i64 %1247
  %1249 = load ptr, ptr %1248, align 8, !tbaa !5
  %1250 = load i32, ptr %23, align 4, !tbaa !16
  %1251 = sext i32 %1250 to i64
  %1252 = getelementptr inbounds i8, ptr %1249, i64 %1251
  %1253 = load i8, ptr %1252, align 1, !tbaa !20
  %1254 = zext i8 %1253 to i64
  %1255 = getelementptr inbounds [256 x i32], ptr %17, i64 0, i64 %1254
  %1256 = load i32, ptr %1255, align 4, !tbaa !16
  %1257 = add nsw i32 %1244, %1256
  store i32 %1257, ptr %34, align 4, !tbaa !16
  %1258 = load i32, ptr %34, align 4, !tbaa !16
  %1259 = icmp slt i32 %1258, 0
  br i1 %1259, label %1260, label %1274

1260:                                             ; preds = %1232
  %1261 = load ptr, ptr %8, align 8, !tbaa !5
  %1262 = getelementptr inbounds %struct.MImage, ptr %1261, i32 0, i32 3
  %1263 = load i32, ptr %19, align 4, !tbaa !16
  %1264 = sext i32 %1263 to i64
  %1265 = getelementptr inbounds [4 x ptr], ptr %1262, i64 0, i64 %1264
  %1266 = load ptr, ptr %1265, align 8, !tbaa !5
  %1267 = load i32, ptr %22, align 4, !tbaa !16
  %1268 = sext i32 %1267 to i64
  %1269 = getelementptr inbounds ptr, ptr %1266, i64 %1268
  %1270 = load ptr, ptr %1269, align 8, !tbaa !5
  %1271 = load i32, ptr %23, align 4, !tbaa !16
  %1272 = sext i32 %1271 to i64
  %1273 = getelementptr inbounds i8, ptr %1270, i64 %1272
  store i8 0, ptr %1273, align 1, !tbaa !20
  br label %1308

1274:                                             ; preds = %1232
  %1275 = load i32, ptr %34, align 4, !tbaa !16
  %1276 = icmp sgt i32 %1275, 255
  br i1 %1276, label %1277, label %1291

1277:                                             ; preds = %1274
  %1278 = load ptr, ptr %8, align 8, !tbaa !5
  %1279 = getelementptr inbounds %struct.MImage, ptr %1278, i32 0, i32 3
  %1280 = load i32, ptr %19, align 4, !tbaa !16
  %1281 = sext i32 %1280 to i64
  %1282 = getelementptr inbounds [4 x ptr], ptr %1279, i64 0, i64 %1281
  %1283 = load ptr, ptr %1282, align 8, !tbaa !5
  %1284 = load i32, ptr %22, align 4, !tbaa !16
  %1285 = sext i32 %1284 to i64
  %1286 = getelementptr inbounds ptr, ptr %1283, i64 %1285
  %1287 = load ptr, ptr %1286, align 8, !tbaa !5
  %1288 = load i32, ptr %23, align 4, !tbaa !16
  %1289 = sext i32 %1288 to i64
  %1290 = getelementptr inbounds i8, ptr %1287, i64 %1289
  store i8 -1, ptr %1290, align 1, !tbaa !20
  br label %1307

1291:                                             ; preds = %1274
  %1292 = load i32, ptr %34, align 4, !tbaa !16
  %1293 = trunc i32 %1292 to i8
  %1294 = load ptr, ptr %8, align 8, !tbaa !5
  %1295 = getelementptr inbounds %struct.MImage, ptr %1294, i32 0, i32 3
  %1296 = load i32, ptr %19, align 4, !tbaa !16
  %1297 = sext i32 %1296 to i64
  %1298 = getelementptr inbounds [4 x ptr], ptr %1295, i64 0, i64 %1297
  %1299 = load ptr, ptr %1298, align 8, !tbaa !5
  %1300 = load i32, ptr %22, align 4, !tbaa !16
  %1301 = sext i32 %1300 to i64
  %1302 = getelementptr inbounds ptr, ptr %1299, i64 %1301
  %1303 = load ptr, ptr %1302, align 8, !tbaa !5
  %1304 = load i32, ptr %23, align 4, !tbaa !16
  %1305 = sext i32 %1304 to i64
  %1306 = getelementptr inbounds i8, ptr %1303, i64 %1305
  store i8 %1293, ptr %1306, align 1, !tbaa !20
  br label %1307

1307:                                             ; preds = %1291, %1277
  br label %1308

1308:                                             ; preds = %1307, %1260
  call void @llvm.lifetime.end.p0(i64 4, ptr %34) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %35) #3
  %1309 = load ptr, ptr %20, align 8, !tbaa !5
  %1310 = load i32, ptr %22, align 4, !tbaa !16
  %1311 = sext i32 %1310 to i64
  %1312 = getelementptr inbounds ptr, ptr %1309, i64 %1311
  %1313 = load ptr, ptr %1312, align 8, !tbaa !5
  %1314 = load i32, ptr %23, align 4, !tbaa !16
  %1315 = sext i32 %1314 to i64
  %1316 = getelementptr inbounds i8, ptr %1313, i64 %1315
  %1317 = load i8, ptr %1316, align 1, !tbaa !20
  %1318 = zext i8 %1317 to i64
  %1319 = getelementptr inbounds [256 x i32], ptr %16, i64 0, i64 %1318
  %1320 = load i32, ptr %1319, align 4, !tbaa !16
  %1321 = load ptr, ptr %21, align 8, !tbaa !5
  %1322 = load i32, ptr %22, align 4, !tbaa !16
  %1323 = sext i32 %1322 to i64
  %1324 = getelementptr inbounds ptr, ptr %1321, i64 %1323
  %1325 = load ptr, ptr %1324, align 8, !tbaa !5
  %1326 = load i32, ptr %23, align 4, !tbaa !16
  %1327 = sext i32 %1326 to i64
  %1328 = getelementptr inbounds i8, ptr %1325, i64 %1327
  %1329 = load i8, ptr %1328, align 1, !tbaa !20
  %1330 = zext i8 %1329 to i64
  %1331 = getelementptr inbounds [256 x i32], ptr %17, i64 0, i64 %1330
  %1332 = load i32, ptr %1331, align 4, !tbaa !16
  %1333 = add nsw i32 %1320, %1332
  store i32 %1333, ptr %35, align 4, !tbaa !16
  %1334 = load i32, ptr %35, align 4, !tbaa !16
  %1335 = icmp slt i32 %1334, 0
  br i1 %1335, label %1336, label %1350

1336:                                             ; preds = %1308
  %1337 = load ptr, ptr %8, align 8, !tbaa !5
  %1338 = getelementptr inbounds %struct.MImage, ptr %1337, i32 0, i32 3
  %1339 = load i32, ptr %19, align 4, !tbaa !16
  %1340 = sext i32 %1339 to i64
  %1341 = getelementptr inbounds [4 x ptr], ptr %1338, i64 0, i64 %1340
  %1342 = load ptr, ptr %1341, align 8, !tbaa !5
  %1343 = load i32, ptr %22, align 4, !tbaa !16
  %1344 = sext i32 %1343 to i64
  %1345 = getelementptr inbounds ptr, ptr %1342, i64 %1344
  %1346 = load ptr, ptr %1345, align 8, !tbaa !5
  %1347 = load i32, ptr %23, align 4, !tbaa !16
  %1348 = sext i32 %1347 to i64
  %1349 = getelementptr inbounds i8, ptr %1346, i64 %1348
  store i8 0, ptr %1349, align 1, !tbaa !20
  br label %1384

1350:                                             ; preds = %1308
  %1351 = load i32, ptr %35, align 4, !tbaa !16
  %1352 = icmp sgt i32 %1351, 255
  br i1 %1352, label %1353, label %1367

1353:                                             ; preds = %1350
  %1354 = load ptr, ptr %8, align 8, !tbaa !5
  %1355 = getelementptr inbounds %struct.MImage, ptr %1354, i32 0, i32 3
  %1356 = load i32, ptr %19, align 4, !tbaa !16
  %1357 = sext i32 %1356 to i64
  %1358 = getelementptr inbounds [4 x ptr], ptr %1355, i64 0, i64 %1357
  %1359 = load ptr, ptr %1358, align 8, !tbaa !5
  %1360 = load i32, ptr %22, align 4, !tbaa !16
  %1361 = sext i32 %1360 to i64
  %1362 = getelementptr inbounds ptr, ptr %1359, i64 %1361
  %1363 = load ptr, ptr %1362, align 8, !tbaa !5
  %1364 = load i32, ptr %23, align 4, !tbaa !16
  %1365 = sext i32 %1364 to i64
  %1366 = getelementptr inbounds i8, ptr %1363, i64 %1365
  store i8 -1, ptr %1366, align 1, !tbaa !20
  br label %1383

1367:                                             ; preds = %1350
  %1368 = load i32, ptr %35, align 4, !tbaa !16
  %1369 = trunc i32 %1368 to i8
  %1370 = load ptr, ptr %8, align 8, !tbaa !5
  %1371 = getelementptr inbounds %struct.MImage, ptr %1370, i32 0, i32 3
  %1372 = load i32, ptr %19, align 4, !tbaa !16
  %1373 = sext i32 %1372 to i64
  %1374 = getelementptr inbounds [4 x ptr], ptr %1371, i64 0, i64 %1373
  %1375 = load ptr, ptr %1374, align 8, !tbaa !5
  %1376 = load i32, ptr %22, align 4, !tbaa !16
  %1377 = sext i32 %1376 to i64
  %1378 = getelementptr inbounds ptr, ptr %1375, i64 %1377
  %1379 = load ptr, ptr %1378, align 8, !tbaa !5
  %1380 = load i32, ptr %23, align 4, !tbaa !16
  %1381 = sext i32 %1380 to i64
  %1382 = getelementptr inbounds i8, ptr %1379, i64 %1381
  store i8 %1369, ptr %1382, align 1, !tbaa !20
  br label %1383

1383:                                             ; preds = %1367, %1353
  br label %1384

1384:                                             ; preds = %1383, %1336
  call void @llvm.lifetime.end.p0(i64 4, ptr %35) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %36) #3
  %1385 = load ptr, ptr %20, align 8, !tbaa !5
  %1386 = load i32, ptr %22, align 4, !tbaa !16
  %1387 = sext i32 %1386 to i64
  %1388 = getelementptr inbounds ptr, ptr %1385, i64 %1387
  %1389 = load ptr, ptr %1388, align 8, !tbaa !5
  %1390 = load i32, ptr %23, align 4, !tbaa !16
  %1391 = sext i32 %1390 to i64
  %1392 = getelementptr inbounds i8, ptr %1389, i64 %1391
  %1393 = load i8, ptr %1392, align 1, !tbaa !20
  %1394 = zext i8 %1393 to i64
  %1395 = getelementptr inbounds [256 x i32], ptr %16, i64 0, i64 %1394
  %1396 = load i32, ptr %1395, align 4, !tbaa !16
  %1397 = load ptr, ptr %21, align 8, !tbaa !5
  %1398 = load i32, ptr %22, align 4, !tbaa !16
  %1399 = sext i32 %1398 to i64
  %1400 = getelementptr inbounds ptr, ptr %1397, i64 %1399
  %1401 = load ptr, ptr %1400, align 8, !tbaa !5
  %1402 = load i32, ptr %23, align 4, !tbaa !16
  %1403 = sext i32 %1402 to i64
  %1404 = getelementptr inbounds i8, ptr %1401, i64 %1403
  %1405 = load i8, ptr %1404, align 1, !tbaa !20
  %1406 = zext i8 %1405 to i64
  %1407 = getelementptr inbounds [256 x i32], ptr %17, i64 0, i64 %1406
  %1408 = load i32, ptr %1407, align 4, !tbaa !16
  %1409 = add nsw i32 %1396, %1408
  store i32 %1409, ptr %36, align 4, !tbaa !16
  %1410 = load i32, ptr %36, align 4, !tbaa !16
  %1411 = icmp slt i32 %1410, 0
  br i1 %1411, label %1412, label %1426

1412:                                             ; preds = %1384
  %1413 = load ptr, ptr %8, align 8, !tbaa !5
  %1414 = getelementptr inbounds %struct.MImage, ptr %1413, i32 0, i32 3
  %1415 = load i32, ptr %19, align 4, !tbaa !16
  %1416 = sext i32 %1415 to i64
  %1417 = getelementptr inbounds [4 x ptr], ptr %1414, i64 0, i64 %1416
  %1418 = load ptr, ptr %1417, align 8, !tbaa !5
  %1419 = load i32, ptr %22, align 4, !tbaa !16
  %1420 = sext i32 %1419 to i64
  %1421 = getelementptr inbounds ptr, ptr %1418, i64 %1420
  %1422 = load ptr, ptr %1421, align 8, !tbaa !5
  %1423 = load i32, ptr %23, align 4, !tbaa !16
  %1424 = sext i32 %1423 to i64
  %1425 = getelementptr inbounds i8, ptr %1422, i64 %1424
  store i8 0, ptr %1425, align 1, !tbaa !20
  br label %1460

1426:                                             ; preds = %1384
  %1427 = load i32, ptr %36, align 4, !tbaa !16
  %1428 = icmp sgt i32 %1427, 255
  br i1 %1428, label %1429, label %1443

1429:                                             ; preds = %1426
  %1430 = load ptr, ptr %8, align 8, !tbaa !5
  %1431 = getelementptr inbounds %struct.MImage, ptr %1430, i32 0, i32 3
  %1432 = load i32, ptr %19, align 4, !tbaa !16
  %1433 = sext i32 %1432 to i64
  %1434 = getelementptr inbounds [4 x ptr], ptr %1431, i64 0, i64 %1433
  %1435 = load ptr, ptr %1434, align 8, !tbaa !5
  %1436 = load i32, ptr %22, align 4, !tbaa !16
  %1437 = sext i32 %1436 to i64
  %1438 = getelementptr inbounds ptr, ptr %1435, i64 %1437
  %1439 = load ptr, ptr %1438, align 8, !tbaa !5
  %1440 = load i32, ptr %23, align 4, !tbaa !16
  %1441 = sext i32 %1440 to i64
  %1442 = getelementptr inbounds i8, ptr %1439, i64 %1441
  store i8 -1, ptr %1442, align 1, !tbaa !20
  br label %1459

1443:                                             ; preds = %1426
  %1444 = load i32, ptr %36, align 4, !tbaa !16
  %1445 = trunc i32 %1444 to i8
  %1446 = load ptr, ptr %8, align 8, !tbaa !5
  %1447 = getelementptr inbounds %struct.MImage, ptr %1446, i32 0, i32 3
  %1448 = load i32, ptr %19, align 4, !tbaa !16
  %1449 = sext i32 %1448 to i64
  %1450 = getelementptr inbounds [4 x ptr], ptr %1447, i64 0, i64 %1449
  %1451 = load ptr, ptr %1450, align 8, !tbaa !5
  %1452 = load i32, ptr %22, align 4, !tbaa !16
  %1453 = sext i32 %1452 to i64
  %1454 = getelementptr inbounds ptr, ptr %1451, i64 %1453
  %1455 = load ptr, ptr %1454, align 8, !tbaa !5
  %1456 = load i32, ptr %23, align 4, !tbaa !16
  %1457 = sext i32 %1456 to i64
  %1458 = getelementptr inbounds i8, ptr %1455, i64 %1457
  store i8 %1445, ptr %1458, align 1, !tbaa !20
  br label %1459

1459:                                             ; preds = %1443, %1429
  br label %1460

1460:                                             ; preds = %1459, %1412
  call void @llvm.lifetime.end.p0(i64 4, ptr %36) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %37) #3
  %1461 = load ptr, ptr %20, align 8, !tbaa !5
  %1462 = load i32, ptr %22, align 4, !tbaa !16
  %1463 = sext i32 %1462 to i64
  %1464 = getelementptr inbounds ptr, ptr %1461, i64 %1463
  %1465 = load ptr, ptr %1464, align 8, !tbaa !5
  %1466 = load i32, ptr %23, align 4, !tbaa !16
  %1467 = sext i32 %1466 to i64
  %1468 = getelementptr inbounds i8, ptr %1465, i64 %1467
  %1469 = load i8, ptr %1468, align 1, !tbaa !20
  %1470 = zext i8 %1469 to i64
  %1471 = getelementptr inbounds [256 x i32], ptr %16, i64 0, i64 %1470
  %1472 = load i32, ptr %1471, align 4, !tbaa !16
  %1473 = load ptr, ptr %21, align 8, !tbaa !5
  %1474 = load i32, ptr %22, align 4, !tbaa !16
  %1475 = sext i32 %1474 to i64
  %1476 = getelementptr inbounds ptr, ptr %1473, i64 %1475
  %1477 = load ptr, ptr %1476, align 8, !tbaa !5
  %1478 = load i32, ptr %23, align 4, !tbaa !16
  %1479 = sext i32 %1478 to i64
  %1480 = getelementptr inbounds i8, ptr %1477, i64 %1479
  %1481 = load i8, ptr %1480, align 1, !tbaa !20
  %1482 = zext i8 %1481 to i64
  %1483 = getelementptr inbounds [256 x i32], ptr %17, i64 0, i64 %1482
  %1484 = load i32, ptr %1483, align 4, !tbaa !16
  %1485 = add nsw i32 %1472, %1484
  store i32 %1485, ptr %37, align 4, !tbaa !16
  %1486 = load i32, ptr %37, align 4, !tbaa !16
  %1487 = icmp slt i32 %1486, 0
  br i1 %1487, label %1488, label %1502

1488:                                             ; preds = %1460
  %1489 = load ptr, ptr %8, align 8, !tbaa !5
  %1490 = getelementptr inbounds %struct.MImage, ptr %1489, i32 0, i32 3
  %1491 = load i32, ptr %19, align 4, !tbaa !16
  %1492 = sext i32 %1491 to i64
  %1493 = getelementptr inbounds [4 x ptr], ptr %1490, i64 0, i64 %1492
  %1494 = load ptr, ptr %1493, align 8, !tbaa !5
  %1495 = load i32, ptr %22, align 4, !tbaa !16
  %1496 = sext i32 %1495 to i64
  %1497 = getelementptr inbounds ptr, ptr %1494, i64 %1496
  %1498 = load ptr, ptr %1497, align 8, !tbaa !5
  %1499 = load i32, ptr %23, align 4, !tbaa !16
  %1500 = sext i32 %1499 to i64
  %1501 = getelementptr inbounds i8, ptr %1498, i64 %1500
  store i8 0, ptr %1501, align 1, !tbaa !20
  br label %1536

1502:                                             ; preds = %1460
  %1503 = load i32, ptr %37, align 4, !tbaa !16
  %1504 = icmp sgt i32 %1503, 255
  br i1 %1504, label %1505, label %1519

1505:                                             ; preds = %1502
  %1506 = load ptr, ptr %8, align 8, !tbaa !5
  %1507 = getelementptr inbounds %struct.MImage, ptr %1506, i32 0, i32 3
  %1508 = load i32, ptr %19, align 4, !tbaa !16
  %1509 = sext i32 %1508 to i64
  %1510 = getelementptr inbounds [4 x ptr], ptr %1507, i64 0, i64 %1509
  %1511 = load ptr, ptr %1510, align 8, !tbaa !5
  %1512 = load i32, ptr %22, align 4, !tbaa !16
  %1513 = sext i32 %1512 to i64
  %1514 = getelementptr inbounds ptr, ptr %1511, i64 %1513
  %1515 = load ptr, ptr %1514, align 8, !tbaa !5
  %1516 = load i32, ptr %23, align 4, !tbaa !16
  %1517 = sext i32 %1516 to i64
  %1518 = getelementptr inbounds i8, ptr %1515, i64 %1517
  store i8 -1, ptr %1518, align 1, !tbaa !20
  br label %1535

1519:                                             ; preds = %1502
  %1520 = load i32, ptr %37, align 4, !tbaa !16
  %1521 = trunc i32 %1520 to i8
  %1522 = load ptr, ptr %8, align 8, !tbaa !5
  %1523 = getelementptr inbounds %struct.MImage, ptr %1522, i32 0, i32 3
  %1524 = load i32, ptr %19, align 4, !tbaa !16
  %1525 = sext i32 %1524 to i64
  %1526 = getelementptr inbounds [4 x ptr], ptr %1523, i64 0, i64 %1525
  %1527 = load ptr, ptr %1526, align 8, !tbaa !5
  %1528 = load i32, ptr %22, align 4, !tbaa !16
  %1529 = sext i32 %1528 to i64
  %1530 = getelementptr inbounds ptr, ptr %1527, i64 %1529
  %1531 = load ptr, ptr %1530, align 8, !tbaa !5
  %1532 = load i32, ptr %23, align 4, !tbaa !16
  %1533 = sext i32 %1532 to i64
  %1534 = getelementptr inbounds i8, ptr %1531, i64 %1533
  store i8 %1521, ptr %1534, align 1, !tbaa !20
  br label %1535

1535:                                             ; preds = %1519, %1505
  br label %1536

1536:                                             ; preds = %1535, %1488
  call void @llvm.lifetime.end.p0(i64 4, ptr %37) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %38) #3
  %1537 = load ptr, ptr %20, align 8, !tbaa !5
  %1538 = load i32, ptr %22, align 4, !tbaa !16
  %1539 = sext i32 %1538 to i64
  %1540 = getelementptr inbounds ptr, ptr %1537, i64 %1539
  %1541 = load ptr, ptr %1540, align 8, !tbaa !5
  %1542 = load i32, ptr %23, align 4, !tbaa !16
  %1543 = sext i32 %1542 to i64
  %1544 = getelementptr inbounds i8, ptr %1541, i64 %1543
  %1545 = load i8, ptr %1544, align 1, !tbaa !20
  %1546 = zext i8 %1545 to i64
  %1547 = getelementptr inbounds [256 x i32], ptr %16, i64 0, i64 %1546
  %1548 = load i32, ptr %1547, align 4, !tbaa !16
  %1549 = load ptr, ptr %21, align 8, !tbaa !5
  %1550 = load i32, ptr %22, align 4, !tbaa !16
  %1551 = sext i32 %1550 to i64
  %1552 = getelementptr inbounds ptr, ptr %1549, i64 %1551
  %1553 = load ptr, ptr %1552, align 8, !tbaa !5
  %1554 = load i32, ptr %23, align 4, !tbaa !16
  %1555 = sext i32 %1554 to i64
  %1556 = getelementptr inbounds i8, ptr %1553, i64 %1555
  %1557 = load i8, ptr %1556, align 1, !tbaa !20
  %1558 = zext i8 %1557 to i64
  %1559 = getelementptr inbounds [256 x i32], ptr %17, i64 0, i64 %1558
  %1560 = load i32, ptr %1559, align 4, !tbaa !16
  %1561 = add nsw i32 %1548, %1560
  store i32 %1561, ptr %38, align 4, !tbaa !16
  %1562 = load i32, ptr %38, align 4, !tbaa !16
  %1563 = icmp slt i32 %1562, 0
  br i1 %1563, label %1564, label %1578

1564:                                             ; preds = %1536
  %1565 = load ptr, ptr %8, align 8, !tbaa !5
  %1566 = getelementptr inbounds %struct.MImage, ptr %1565, i32 0, i32 3
  %1567 = load i32, ptr %19, align 4, !tbaa !16
  %1568 = sext i32 %1567 to i64
  %1569 = getelementptr inbounds [4 x ptr], ptr %1566, i64 0, i64 %1568
  %1570 = load ptr, ptr %1569, align 8, !tbaa !5
  %1571 = load i32, ptr %22, align 4, !tbaa !16
  %1572 = sext i32 %1571 to i64
  %1573 = getelementptr inbounds ptr, ptr %1570, i64 %1572
  %1574 = load ptr, ptr %1573, align 8, !tbaa !5
  %1575 = load i32, ptr %23, align 4, !tbaa !16
  %1576 = sext i32 %1575 to i64
  %1577 = getelementptr inbounds i8, ptr %1574, i64 %1576
  store i8 0, ptr %1577, align 1, !tbaa !20
  br label %1612

1578:                                             ; preds = %1536
  %1579 = load i32, ptr %38, align 4, !tbaa !16
  %1580 = icmp sgt i32 %1579, 255
  br i1 %1580, label %1581, label %1595

1581:                                             ; preds = %1578
  %1582 = load ptr, ptr %8, align 8, !tbaa !5
  %1583 = getelementptr inbounds %struct.MImage, ptr %1582, i32 0, i32 3
  %1584 = load i32, ptr %19, align 4, !tbaa !16
  %1585 = sext i32 %1584 to i64
  %1586 = getelementptr inbounds [4 x ptr], ptr %1583, i64 0, i64 %1585
  %1587 = load ptr, ptr %1586, align 8, !tbaa !5
  %1588 = load i32, ptr %22, align 4, !tbaa !16
  %1589 = sext i32 %1588 to i64
  %1590 = getelementptr inbounds ptr, ptr %1587, i64 %1589
  %1591 = load ptr, ptr %1590, align 8, !tbaa !5
  %1592 = load i32, ptr %23, align 4, !tbaa !16
  %1593 = sext i32 %1592 to i64
  %1594 = getelementptr inbounds i8, ptr %1591, i64 %1593
  store i8 -1, ptr %1594, align 1, !tbaa !20
  br label %1611

1595:                                             ; preds = %1578
  %1596 = load i32, ptr %38, align 4, !tbaa !16
  %1597 = trunc i32 %1596 to i8
  %1598 = load ptr, ptr %8, align 8, !tbaa !5
  %1599 = getelementptr inbounds %struct.MImage, ptr %1598, i32 0, i32 3
  %1600 = load i32, ptr %19, align 4, !tbaa !16
  %1601 = sext i32 %1600 to i64
  %1602 = getelementptr inbounds [4 x ptr], ptr %1599, i64 0, i64 %1601
  %1603 = load ptr, ptr %1602, align 8, !tbaa !5
  %1604 = load i32, ptr %22, align 4, !tbaa !16
  %1605 = sext i32 %1604 to i64
  %1606 = getelementptr inbounds ptr, ptr %1603, i64 %1605
  %1607 = load ptr, ptr %1606, align 8, !tbaa !5
  %1608 = load i32, ptr %23, align 4, !tbaa !16
  %1609 = sext i32 %1608 to i64
  %1610 = getelementptr inbounds i8, ptr %1607, i64 %1609
  store i8 %1597, ptr %1610, align 1, !tbaa !20
  br label %1611

1611:                                             ; preds = %1595, %1581
  br label %1612

1612:                                             ; preds = %1611, %1564
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %39) #3
  %1613 = load ptr, ptr %20, align 8, !tbaa !5
  %1614 = load i32, ptr %22, align 4, !tbaa !16
  %1615 = sext i32 %1614 to i64
  %1616 = getelementptr inbounds ptr, ptr %1613, i64 %1615
  %1617 = load ptr, ptr %1616, align 8, !tbaa !5
  %1618 = load i32, ptr %23, align 4, !tbaa !16
  %1619 = sext i32 %1618 to i64
  %1620 = getelementptr inbounds i8, ptr %1617, i64 %1619
  %1621 = load i8, ptr %1620, align 1, !tbaa !20
  %1622 = zext i8 %1621 to i64
  %1623 = getelementptr inbounds [256 x i32], ptr %16, i64 0, i64 %1622
  %1624 = load i32, ptr %1623, align 4, !tbaa !16
  %1625 = load ptr, ptr %21, align 8, !tbaa !5
  %1626 = load i32, ptr %22, align 4, !tbaa !16
  %1627 = sext i32 %1626 to i64
  %1628 = getelementptr inbounds ptr, ptr %1625, i64 %1627
  %1629 = load ptr, ptr %1628, align 8, !tbaa !5
  %1630 = load i32, ptr %23, align 4, !tbaa !16
  %1631 = sext i32 %1630 to i64
  %1632 = getelementptr inbounds i8, ptr %1629, i64 %1631
  %1633 = load i8, ptr %1632, align 1, !tbaa !20
  %1634 = zext i8 %1633 to i64
  %1635 = getelementptr inbounds [256 x i32], ptr %17, i64 0, i64 %1634
  %1636 = load i32, ptr %1635, align 4, !tbaa !16
  %1637 = add nsw i32 %1624, %1636
  store i32 %1637, ptr %39, align 4, !tbaa !16
  %1638 = load i32, ptr %39, align 4, !tbaa !16
  %1639 = icmp slt i32 %1638, 0
  br i1 %1639, label %1640, label %1654

1640:                                             ; preds = %1612
  %1641 = load ptr, ptr %8, align 8, !tbaa !5
  %1642 = getelementptr inbounds %struct.MImage, ptr %1641, i32 0, i32 3
  %1643 = load i32, ptr %19, align 4, !tbaa !16
  %1644 = sext i32 %1643 to i64
  %1645 = getelementptr inbounds [4 x ptr], ptr %1642, i64 0, i64 %1644
  %1646 = load ptr, ptr %1645, align 8, !tbaa !5
  %1647 = load i32, ptr %22, align 4, !tbaa !16
  %1648 = sext i32 %1647 to i64
  %1649 = getelementptr inbounds ptr, ptr %1646, i64 %1648
  %1650 = load ptr, ptr %1649, align 8, !tbaa !5
  %1651 = load i32, ptr %23, align 4, !tbaa !16
  %1652 = sext i32 %1651 to i64
  %1653 = getelementptr inbounds i8, ptr %1650, i64 %1652
  store i8 0, ptr %1653, align 1, !tbaa !20
  br label %1688

1654:                                             ; preds = %1612
  %1655 = load i32, ptr %39, align 4, !tbaa !16
  %1656 = icmp sgt i32 %1655, 255
  br i1 %1656, label %1657, label %1671

1657:                                             ; preds = %1654
  %1658 = load ptr, ptr %8, align 8, !tbaa !5
  %1659 = getelementptr inbounds %struct.MImage, ptr %1658, i32 0, i32 3
  %1660 = load i32, ptr %19, align 4, !tbaa !16
  %1661 = sext i32 %1660 to i64
  %1662 = getelementptr inbounds [4 x ptr], ptr %1659, i64 0, i64 %1661
  %1663 = load ptr, ptr %1662, align 8, !tbaa !5
  %1664 = load i32, ptr %22, align 4, !tbaa !16
  %1665 = sext i32 %1664 to i64
  %1666 = getelementptr inbounds ptr, ptr %1663, i64 %1665
  %1667 = load ptr, ptr %1666, align 8, !tbaa !5
  %1668 = load i32, ptr %23, align 4, !tbaa !16
  %1669 = sext i32 %1668 to i64
  %1670 = getelementptr inbounds i8, ptr %1667, i64 %1669
  store i8 -1, ptr %1670, align 1, !tbaa !20
  br label %1687

1671:                                             ; preds = %1654
  %1672 = load i32, ptr %39, align 4, !tbaa !16
  %1673 = trunc i32 %1672 to i8
  %1674 = load ptr, ptr %8, align 8, !tbaa !5
  %1675 = getelementptr inbounds %struct.MImage, ptr %1674, i32 0, i32 3
  %1676 = load i32, ptr %19, align 4, !tbaa !16
  %1677 = sext i32 %1676 to i64
  %1678 = getelementptr inbounds [4 x ptr], ptr %1675, i64 0, i64 %1677
  %1679 = load ptr, ptr %1678, align 8, !tbaa !5
  %1680 = load i32, ptr %22, align 4, !tbaa !16
  %1681 = sext i32 %1680 to i64
  %1682 = getelementptr inbounds ptr, ptr %1679, i64 %1681
  %1683 = load ptr, ptr %1682, align 8, !tbaa !5
  %1684 = load i32, ptr %23, align 4, !tbaa !16
  %1685 = sext i32 %1684 to i64
  %1686 = getelementptr inbounds i8, ptr %1683, i64 %1685
  store i8 %1673, ptr %1686, align 1, !tbaa !20
  br label %1687

1687:                                             ; preds = %1671, %1657
  br label %1688

1688:                                             ; preds = %1687, %1640
  call void @llvm.lifetime.end.p0(i64 4, ptr %39) #3
  br label %1689

1689:                                             ; preds = %1688
  %1690 = load i32, ptr %23, align 4, !tbaa !16
  %1691 = add nsw i32 %1690, 16
  store i32 %1691, ptr %23, align 4, !tbaa !16
  br label %465, !llvm.loop !21

1692:                                             ; preds = %465
  %1693 = load ptr, ptr %8, align 8, !tbaa !5
  %1694 = getelementptr inbounds %struct.MImage, ptr %1693, i32 0, i32 2
  %1695 = load i32, ptr %1694, align 8, !tbaa !15
  %1696 = load i32, ptr %23, align 4, !tbaa !16
  %1697 = sub nsw i32 %1695, %1696
  %1698 = icmp eq i32 %1697, 0
  br i1 %1698, label %1699, label %1700

1699:                                             ; preds = %1692
  br label %10955

1700:                                             ; preds = %1692
  %1701 = load ptr, ptr %8, align 8, !tbaa !5
  %1702 = getelementptr inbounds %struct.MImage, ptr %1701, i32 0, i32 2
  %1703 = load i32, ptr %1702, align 8, !tbaa !15
  %1704 = load i32, ptr %23, align 4, !tbaa !16
  %1705 = sub nsw i32 %1703, %1704
  %1706 = icmp eq i32 %1705, 1
  br i1 %1706, label %1707, label %1784

1707:                                             ; preds = %1700
  call void @llvm.lifetime.start.p0(i64 4, ptr %40) #3
  %1708 = load ptr, ptr %20, align 8, !tbaa !5
  %1709 = load i32, ptr %22, align 4, !tbaa !16
  %1710 = sext i32 %1709 to i64
  %1711 = getelementptr inbounds ptr, ptr %1708, i64 %1710
  %1712 = load ptr, ptr %1711, align 8, !tbaa !5
  %1713 = load i32, ptr %23, align 4, !tbaa !16
  %1714 = sext i32 %1713 to i64
  %1715 = getelementptr inbounds i8, ptr %1712, i64 %1714
  %1716 = load i8, ptr %1715, align 1, !tbaa !20
  %1717 = zext i8 %1716 to i64
  %1718 = getelementptr inbounds [256 x i32], ptr %16, i64 0, i64 %1717
  %1719 = load i32, ptr %1718, align 4, !tbaa !16
  %1720 = load ptr, ptr %21, align 8, !tbaa !5
  %1721 = load i32, ptr %22, align 4, !tbaa !16
  %1722 = sext i32 %1721 to i64
  %1723 = getelementptr inbounds ptr, ptr %1720, i64 %1722
  %1724 = load ptr, ptr %1723, align 8, !tbaa !5
  %1725 = load i32, ptr %23, align 4, !tbaa !16
  %1726 = sext i32 %1725 to i64
  %1727 = getelementptr inbounds i8, ptr %1724, i64 %1726
  %1728 = load i8, ptr %1727, align 1, !tbaa !20
  %1729 = zext i8 %1728 to i64
  %1730 = getelementptr inbounds [256 x i32], ptr %17, i64 0, i64 %1729
  %1731 = load i32, ptr %1730, align 4, !tbaa !16
  %1732 = add nsw i32 %1719, %1731
  store i32 %1732, ptr %40, align 4, !tbaa !16
  %1733 = load i32, ptr %40, align 4, !tbaa !16
  %1734 = icmp slt i32 %1733, 0
  br i1 %1734, label %1735, label %1749

1735:                                             ; preds = %1707
  %1736 = load ptr, ptr %8, align 8, !tbaa !5
  %1737 = getelementptr inbounds %struct.MImage, ptr %1736, i32 0, i32 3
  %1738 = load i32, ptr %19, align 4, !tbaa !16
  %1739 = sext i32 %1738 to i64
  %1740 = getelementptr inbounds [4 x ptr], ptr %1737, i64 0, i64 %1739
  %1741 = load ptr, ptr %1740, align 8, !tbaa !5
  %1742 = load i32, ptr %22, align 4, !tbaa !16
  %1743 = sext i32 %1742 to i64
  %1744 = getelementptr inbounds ptr, ptr %1741, i64 %1743
  %1745 = load ptr, ptr %1744, align 8, !tbaa !5
  %1746 = load i32, ptr %23, align 4, !tbaa !16
  %1747 = sext i32 %1746 to i64
  %1748 = getelementptr inbounds i8, ptr %1745, i64 %1747
  store i8 0, ptr %1748, align 1, !tbaa !20
  br label %1783

1749:                                             ; preds = %1707
  %1750 = load i32, ptr %40, align 4, !tbaa !16
  %1751 = icmp sgt i32 %1750, 255
  br i1 %1751, label %1752, label %1766

1752:                                             ; preds = %1749
  %1753 = load ptr, ptr %8, align 8, !tbaa !5
  %1754 = getelementptr inbounds %struct.MImage, ptr %1753, i32 0, i32 3
  %1755 = load i32, ptr %19, align 4, !tbaa !16
  %1756 = sext i32 %1755 to i64
  %1757 = getelementptr inbounds [4 x ptr], ptr %1754, i64 0, i64 %1756
  %1758 = load ptr, ptr %1757, align 8, !tbaa !5
  %1759 = load i32, ptr %22, align 4, !tbaa !16
  %1760 = sext i32 %1759 to i64
  %1761 = getelementptr inbounds ptr, ptr %1758, i64 %1760
  %1762 = load ptr, ptr %1761, align 8, !tbaa !5
  %1763 = load i32, ptr %23, align 4, !tbaa !16
  %1764 = sext i32 %1763 to i64
  %1765 = getelementptr inbounds i8, ptr %1762, i64 %1764
  store i8 -1, ptr %1765, align 1, !tbaa !20
  br label %1782

1766:                                             ; preds = %1749
  %1767 = load i32, ptr %40, align 4, !tbaa !16
  %1768 = trunc i32 %1767 to i8
  %1769 = load ptr, ptr %8, align 8, !tbaa !5
  %1770 = getelementptr inbounds %struct.MImage, ptr %1769, i32 0, i32 3
  %1771 = load i32, ptr %19, align 4, !tbaa !16
  %1772 = sext i32 %1771 to i64
  %1773 = getelementptr inbounds [4 x ptr], ptr %1770, i64 0, i64 %1772
  %1774 = load ptr, ptr %1773, align 8, !tbaa !5
  %1775 = load i32, ptr %22, align 4, !tbaa !16
  %1776 = sext i32 %1775 to i64
  %1777 = getelementptr inbounds ptr, ptr %1774, i64 %1776
  %1778 = load ptr, ptr %1777, align 8, !tbaa !5
  %1779 = load i32, ptr %23, align 4, !tbaa !16
  %1780 = sext i32 %1779 to i64
  %1781 = getelementptr inbounds i8, ptr %1778, i64 %1780
  store i8 %1768, ptr %1781, align 1, !tbaa !20
  br label %1782

1782:                                             ; preds = %1766, %1752
  br label %1783

1783:                                             ; preds = %1782, %1735
  call void @llvm.lifetime.end.p0(i64 4, ptr %40) #3
  br label %10954

1784:                                             ; preds = %1700
  %1785 = load ptr, ptr %8, align 8, !tbaa !5
  %1786 = getelementptr inbounds %struct.MImage, ptr %1785, i32 0, i32 2
  %1787 = load i32, ptr %1786, align 8, !tbaa !15
  %1788 = load i32, ptr %23, align 4, !tbaa !16
  %1789 = sub nsw i32 %1787, %1788
  %1790 = icmp eq i32 %1789, 2
  br i1 %1790, label %1791, label %1944

1791:                                             ; preds = %1784
  call void @llvm.lifetime.start.p0(i64 4, ptr %41) #3
  %1792 = load ptr, ptr %20, align 8, !tbaa !5
  %1793 = load i32, ptr %22, align 4, !tbaa !16
  %1794 = sext i32 %1793 to i64
  %1795 = getelementptr inbounds ptr, ptr %1792, i64 %1794
  %1796 = load ptr, ptr %1795, align 8, !tbaa !5
  %1797 = load i32, ptr %23, align 4, !tbaa !16
  %1798 = sext i32 %1797 to i64
  %1799 = getelementptr inbounds i8, ptr %1796, i64 %1798
  %1800 = load i8, ptr %1799, align 1, !tbaa !20
  %1801 = zext i8 %1800 to i64
  %1802 = getelementptr inbounds [256 x i32], ptr %16, i64 0, i64 %1801
  %1803 = load i32, ptr %1802, align 4, !tbaa !16
  %1804 = load ptr, ptr %21, align 8, !tbaa !5
  %1805 = load i32, ptr %22, align 4, !tbaa !16
  %1806 = sext i32 %1805 to i64
  %1807 = getelementptr inbounds ptr, ptr %1804, i64 %1806
  %1808 = load ptr, ptr %1807, align 8, !tbaa !5
  %1809 = load i32, ptr %23, align 4, !tbaa !16
  %1810 = sext i32 %1809 to i64
  %1811 = getelementptr inbounds i8, ptr %1808, i64 %1810
  %1812 = load i8, ptr %1811, align 1, !tbaa !20
  %1813 = zext i8 %1812 to i64
  %1814 = getelementptr inbounds [256 x i32], ptr %17, i64 0, i64 %1813
  %1815 = load i32, ptr %1814, align 4, !tbaa !16
  %1816 = add nsw i32 %1803, %1815
  store i32 %1816, ptr %41, align 4, !tbaa !16
  %1817 = load i32, ptr %41, align 4, !tbaa !16
  %1818 = icmp slt i32 %1817, 0
  br i1 %1818, label %1819, label %1833

1819:                                             ; preds = %1791
  %1820 = load ptr, ptr %8, align 8, !tbaa !5
  %1821 = getelementptr inbounds %struct.MImage, ptr %1820, i32 0, i32 3
  %1822 = load i32, ptr %19, align 4, !tbaa !16
  %1823 = sext i32 %1822 to i64
  %1824 = getelementptr inbounds [4 x ptr], ptr %1821, i64 0, i64 %1823
  %1825 = load ptr, ptr %1824, align 8, !tbaa !5
  %1826 = load i32, ptr %22, align 4, !tbaa !16
  %1827 = sext i32 %1826 to i64
  %1828 = getelementptr inbounds ptr, ptr %1825, i64 %1827
  %1829 = load ptr, ptr %1828, align 8, !tbaa !5
  %1830 = load i32, ptr %23, align 4, !tbaa !16
  %1831 = sext i32 %1830 to i64
  %1832 = getelementptr inbounds i8, ptr %1829, i64 %1831
  store i8 0, ptr %1832, align 1, !tbaa !20
  br label %1867

1833:                                             ; preds = %1791
  %1834 = load i32, ptr %41, align 4, !tbaa !16
  %1835 = icmp sgt i32 %1834, 255
  br i1 %1835, label %1836, label %1850

1836:                                             ; preds = %1833
  %1837 = load ptr, ptr %8, align 8, !tbaa !5
  %1838 = getelementptr inbounds %struct.MImage, ptr %1837, i32 0, i32 3
  %1839 = load i32, ptr %19, align 4, !tbaa !16
  %1840 = sext i32 %1839 to i64
  %1841 = getelementptr inbounds [4 x ptr], ptr %1838, i64 0, i64 %1840
  %1842 = load ptr, ptr %1841, align 8, !tbaa !5
  %1843 = load i32, ptr %22, align 4, !tbaa !16
  %1844 = sext i32 %1843 to i64
  %1845 = getelementptr inbounds ptr, ptr %1842, i64 %1844
  %1846 = load ptr, ptr %1845, align 8, !tbaa !5
  %1847 = load i32, ptr %23, align 4, !tbaa !16
  %1848 = sext i32 %1847 to i64
  %1849 = getelementptr inbounds i8, ptr %1846, i64 %1848
  store i8 -1, ptr %1849, align 1, !tbaa !20
  br label %1866

1850:                                             ; preds = %1833
  %1851 = load i32, ptr %41, align 4, !tbaa !16
  %1852 = trunc i32 %1851 to i8
  %1853 = load ptr, ptr %8, align 8, !tbaa !5
  %1854 = getelementptr inbounds %struct.MImage, ptr %1853, i32 0, i32 3
  %1855 = load i32, ptr %19, align 4, !tbaa !16
  %1856 = sext i32 %1855 to i64
  %1857 = getelementptr inbounds [4 x ptr], ptr %1854, i64 0, i64 %1856
  %1858 = load ptr, ptr %1857, align 8, !tbaa !5
  %1859 = load i32, ptr %22, align 4, !tbaa !16
  %1860 = sext i32 %1859 to i64
  %1861 = getelementptr inbounds ptr, ptr %1858, i64 %1860
  %1862 = load ptr, ptr %1861, align 8, !tbaa !5
  %1863 = load i32, ptr %23, align 4, !tbaa !16
  %1864 = sext i32 %1863 to i64
  %1865 = getelementptr inbounds i8, ptr %1862, i64 %1864
  store i8 %1852, ptr %1865, align 1, !tbaa !20
  br label %1866

1866:                                             ; preds = %1850, %1836
  br label %1867

1867:                                             ; preds = %1866, %1819
  call void @llvm.lifetime.end.p0(i64 4, ptr %41) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %42) #3
  %1868 = load ptr, ptr %20, align 8, !tbaa !5
  %1869 = load i32, ptr %22, align 4, !tbaa !16
  %1870 = sext i32 %1869 to i64
  %1871 = getelementptr inbounds ptr, ptr %1868, i64 %1870
  %1872 = load ptr, ptr %1871, align 8, !tbaa !5
  %1873 = load i32, ptr %23, align 4, !tbaa !16
  %1874 = sext i32 %1873 to i64
  %1875 = getelementptr inbounds i8, ptr %1872, i64 %1874
  %1876 = load i8, ptr %1875, align 1, !tbaa !20
  %1877 = zext i8 %1876 to i64
  %1878 = getelementptr inbounds [256 x i32], ptr %16, i64 0, i64 %1877
  %1879 = load i32, ptr %1878, align 4, !tbaa !16
  %1880 = load ptr, ptr %21, align 8, !tbaa !5
  %1881 = load i32, ptr %22, align 4, !tbaa !16
  %1882 = sext i32 %1881 to i64
  %1883 = getelementptr inbounds ptr, ptr %1880, i64 %1882
  %1884 = load ptr, ptr %1883, align 8, !tbaa !5
  %1885 = load i32, ptr %23, align 4, !tbaa !16
  %1886 = sext i32 %1885 to i64
  %1887 = getelementptr inbounds i8, ptr %1884, i64 %1886
  %1888 = load i8, ptr %1887, align 1, !tbaa !20
  %1889 = zext i8 %1888 to i64
  %1890 = getelementptr inbounds [256 x i32], ptr %17, i64 0, i64 %1889
  %1891 = load i32, ptr %1890, align 4, !tbaa !16
  %1892 = add nsw i32 %1879, %1891
  store i32 %1892, ptr %42, align 4, !tbaa !16
  %1893 = load i32, ptr %42, align 4, !tbaa !16
  %1894 = icmp slt i32 %1893, 0
  br i1 %1894, label %1895, label %1909

1895:                                             ; preds = %1867
  %1896 = load ptr, ptr %8, align 8, !tbaa !5
  %1897 = getelementptr inbounds %struct.MImage, ptr %1896, i32 0, i32 3
  %1898 = load i32, ptr %19, align 4, !tbaa !16
  %1899 = sext i32 %1898 to i64
  %1900 = getelementptr inbounds [4 x ptr], ptr %1897, i64 0, i64 %1899
  %1901 = load ptr, ptr %1900, align 8, !tbaa !5
  %1902 = load i32, ptr %22, align 4, !tbaa !16
  %1903 = sext i32 %1902 to i64
  %1904 = getelementptr inbounds ptr, ptr %1901, i64 %1903
  %1905 = load ptr, ptr %1904, align 8, !tbaa !5
  %1906 = load i32, ptr %23, align 4, !tbaa !16
  %1907 = sext i32 %1906 to i64
  %1908 = getelementptr inbounds i8, ptr %1905, i64 %1907
  store i8 0, ptr %1908, align 1, !tbaa !20
  br label %1943

1909:                                             ; preds = %1867
  %1910 = load i32, ptr %42, align 4, !tbaa !16
  %1911 = icmp sgt i32 %1910, 255
  br i1 %1911, label %1912, label %1926

1912:                                             ; preds = %1909
  %1913 = load ptr, ptr %8, align 8, !tbaa !5
  %1914 = getelementptr inbounds %struct.MImage, ptr %1913, i32 0, i32 3
  %1915 = load i32, ptr %19, align 4, !tbaa !16
  %1916 = sext i32 %1915 to i64
  %1917 = getelementptr inbounds [4 x ptr], ptr %1914, i64 0, i64 %1916
  %1918 = load ptr, ptr %1917, align 8, !tbaa !5
  %1919 = load i32, ptr %22, align 4, !tbaa !16
  %1920 = sext i32 %1919 to i64
  %1921 = getelementptr inbounds ptr, ptr %1918, i64 %1920
  %1922 = load ptr, ptr %1921, align 8, !tbaa !5
  %1923 = load i32, ptr %23, align 4, !tbaa !16
  %1924 = sext i32 %1923 to i64
  %1925 = getelementptr inbounds i8, ptr %1922, i64 %1924
  store i8 -1, ptr %1925, align 1, !tbaa !20
  br label %1942

1926:                                             ; preds = %1909
  %1927 = load i32, ptr %42, align 4, !tbaa !16
  %1928 = trunc i32 %1927 to i8
  %1929 = load ptr, ptr %8, align 8, !tbaa !5
  %1930 = getelementptr inbounds %struct.MImage, ptr %1929, i32 0, i32 3
  %1931 = load i32, ptr %19, align 4, !tbaa !16
  %1932 = sext i32 %1931 to i64
  %1933 = getelementptr inbounds [4 x ptr], ptr %1930, i64 0, i64 %1932
  %1934 = load ptr, ptr %1933, align 8, !tbaa !5
  %1935 = load i32, ptr %22, align 4, !tbaa !16
  %1936 = sext i32 %1935 to i64
  %1937 = getelementptr inbounds ptr, ptr %1934, i64 %1936
  %1938 = load ptr, ptr %1937, align 8, !tbaa !5
  %1939 = load i32, ptr %23, align 4, !tbaa !16
  %1940 = sext i32 %1939 to i64
  %1941 = getelementptr inbounds i8, ptr %1938, i64 %1940
  store i8 %1928, ptr %1941, align 1, !tbaa !20
  br label %1942

1942:                                             ; preds = %1926, %1912
  br label %1943

1943:                                             ; preds = %1942, %1895
  call void @llvm.lifetime.end.p0(i64 4, ptr %42) #3
  br label %10953

1944:                                             ; preds = %1784
  %1945 = load ptr, ptr %8, align 8, !tbaa !5
  %1946 = getelementptr inbounds %struct.MImage, ptr %1945, i32 0, i32 2
  %1947 = load i32, ptr %1946, align 8, !tbaa !15
  %1948 = load i32, ptr %23, align 4, !tbaa !16
  %1949 = sub nsw i32 %1947, %1948
  %1950 = icmp eq i32 %1949, 3
  br i1 %1950, label %1951, label %2180

1951:                                             ; preds = %1944
  call void @llvm.lifetime.start.p0(i64 4, ptr %43) #3
  %1952 = load ptr, ptr %20, align 8, !tbaa !5
  %1953 = load i32, ptr %22, align 4, !tbaa !16
  %1954 = sext i32 %1953 to i64
  %1955 = getelementptr inbounds ptr, ptr %1952, i64 %1954
  %1956 = load ptr, ptr %1955, align 8, !tbaa !5
  %1957 = load i32, ptr %23, align 4, !tbaa !16
  %1958 = sext i32 %1957 to i64
  %1959 = getelementptr inbounds i8, ptr %1956, i64 %1958
  %1960 = load i8, ptr %1959, align 1, !tbaa !20
  %1961 = zext i8 %1960 to i64
  %1962 = getelementptr inbounds [256 x i32], ptr %16, i64 0, i64 %1961
  %1963 = load i32, ptr %1962, align 4, !tbaa !16
  %1964 = load ptr, ptr %21, align 8, !tbaa !5
  %1965 = load i32, ptr %22, align 4, !tbaa !16
  %1966 = sext i32 %1965 to i64
  %1967 = getelementptr inbounds ptr, ptr %1964, i64 %1966
  %1968 = load ptr, ptr %1967, align 8, !tbaa !5
  %1969 = load i32, ptr %23, align 4, !tbaa !16
  %1970 = sext i32 %1969 to i64
  %1971 = getelementptr inbounds i8, ptr %1968, i64 %1970
  %1972 = load i8, ptr %1971, align 1, !tbaa !20
  %1973 = zext i8 %1972 to i64
  %1974 = getelementptr inbounds [256 x i32], ptr %17, i64 0, i64 %1973
  %1975 = load i32, ptr %1974, align 4, !tbaa !16
  %1976 = add nsw i32 %1963, %1975
  store i32 %1976, ptr %43, align 4, !tbaa !16
  %1977 = load i32, ptr %43, align 4, !tbaa !16
  %1978 = icmp slt i32 %1977, 0
  br i1 %1978, label %1979, label %1993

1979:                                             ; preds = %1951
  %1980 = load ptr, ptr %8, align 8, !tbaa !5
  %1981 = getelementptr inbounds %struct.MImage, ptr %1980, i32 0, i32 3
  %1982 = load i32, ptr %19, align 4, !tbaa !16
  %1983 = sext i32 %1982 to i64
  %1984 = getelementptr inbounds [4 x ptr], ptr %1981, i64 0, i64 %1983
  %1985 = load ptr, ptr %1984, align 8, !tbaa !5
  %1986 = load i32, ptr %22, align 4, !tbaa !16
  %1987 = sext i32 %1986 to i64
  %1988 = getelementptr inbounds ptr, ptr %1985, i64 %1987
  %1989 = load ptr, ptr %1988, align 8, !tbaa !5
  %1990 = load i32, ptr %23, align 4, !tbaa !16
  %1991 = sext i32 %1990 to i64
  %1992 = getelementptr inbounds i8, ptr %1989, i64 %1991
  store i8 0, ptr %1992, align 1, !tbaa !20
  br label %2027

1993:                                             ; preds = %1951
  %1994 = load i32, ptr %43, align 4, !tbaa !16
  %1995 = icmp sgt i32 %1994, 255
  br i1 %1995, label %1996, label %2010

1996:                                             ; preds = %1993
  %1997 = load ptr, ptr %8, align 8, !tbaa !5
  %1998 = getelementptr inbounds %struct.MImage, ptr %1997, i32 0, i32 3
  %1999 = load i32, ptr %19, align 4, !tbaa !16
  %2000 = sext i32 %1999 to i64
  %2001 = getelementptr inbounds [4 x ptr], ptr %1998, i64 0, i64 %2000
  %2002 = load ptr, ptr %2001, align 8, !tbaa !5
  %2003 = load i32, ptr %22, align 4, !tbaa !16
  %2004 = sext i32 %2003 to i64
  %2005 = getelementptr inbounds ptr, ptr %2002, i64 %2004
  %2006 = load ptr, ptr %2005, align 8, !tbaa !5
  %2007 = load i32, ptr %23, align 4, !tbaa !16
  %2008 = sext i32 %2007 to i64
  %2009 = getelementptr inbounds i8, ptr %2006, i64 %2008
  store i8 -1, ptr %2009, align 1, !tbaa !20
  br label %2026

2010:                                             ; preds = %1993
  %2011 = load i32, ptr %43, align 4, !tbaa !16
  %2012 = trunc i32 %2011 to i8
  %2013 = load ptr, ptr %8, align 8, !tbaa !5
  %2014 = getelementptr inbounds %struct.MImage, ptr %2013, i32 0, i32 3
  %2015 = load i32, ptr %19, align 4, !tbaa !16
  %2016 = sext i32 %2015 to i64
  %2017 = getelementptr inbounds [4 x ptr], ptr %2014, i64 0, i64 %2016
  %2018 = load ptr, ptr %2017, align 8, !tbaa !5
  %2019 = load i32, ptr %22, align 4, !tbaa !16
  %2020 = sext i32 %2019 to i64
  %2021 = getelementptr inbounds ptr, ptr %2018, i64 %2020
  %2022 = load ptr, ptr %2021, align 8, !tbaa !5
  %2023 = load i32, ptr %23, align 4, !tbaa !16
  %2024 = sext i32 %2023 to i64
  %2025 = getelementptr inbounds i8, ptr %2022, i64 %2024
  store i8 %2012, ptr %2025, align 1, !tbaa !20
  br label %2026

2026:                                             ; preds = %2010, %1996
  br label %2027

2027:                                             ; preds = %2026, %1979
  call void @llvm.lifetime.end.p0(i64 4, ptr %43) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %44) #3
  %2028 = load ptr, ptr %20, align 8, !tbaa !5
  %2029 = load i32, ptr %22, align 4, !tbaa !16
  %2030 = sext i32 %2029 to i64
  %2031 = getelementptr inbounds ptr, ptr %2028, i64 %2030
  %2032 = load ptr, ptr %2031, align 8, !tbaa !5
  %2033 = load i32, ptr %23, align 4, !tbaa !16
  %2034 = sext i32 %2033 to i64
  %2035 = getelementptr inbounds i8, ptr %2032, i64 %2034
  %2036 = load i8, ptr %2035, align 1, !tbaa !20
  %2037 = zext i8 %2036 to i64
  %2038 = getelementptr inbounds [256 x i32], ptr %16, i64 0, i64 %2037
  %2039 = load i32, ptr %2038, align 4, !tbaa !16
  %2040 = load ptr, ptr %21, align 8, !tbaa !5
  %2041 = load i32, ptr %22, align 4, !tbaa !16
  %2042 = sext i32 %2041 to i64
  %2043 = getelementptr inbounds ptr, ptr %2040, i64 %2042
  %2044 = load ptr, ptr %2043, align 8, !tbaa !5
  %2045 = load i32, ptr %23, align 4, !tbaa !16
  %2046 = sext i32 %2045 to i64
  %2047 = getelementptr inbounds i8, ptr %2044, i64 %2046
  %2048 = load i8, ptr %2047, align 1, !tbaa !20
  %2049 = zext i8 %2048 to i64
  %2050 = getelementptr inbounds [256 x i32], ptr %17, i64 0, i64 %2049
  %2051 = load i32, ptr %2050, align 4, !tbaa !16
  %2052 = add nsw i32 %2039, %2051
  store i32 %2052, ptr %44, align 4, !tbaa !16
  %2053 = load i32, ptr %44, align 4, !tbaa !16
  %2054 = icmp slt i32 %2053, 0
  br i1 %2054, label %2055, label %2069

2055:                                             ; preds = %2027
  %2056 = load ptr, ptr %8, align 8, !tbaa !5
  %2057 = getelementptr inbounds %struct.MImage, ptr %2056, i32 0, i32 3
  %2058 = load i32, ptr %19, align 4, !tbaa !16
  %2059 = sext i32 %2058 to i64
  %2060 = getelementptr inbounds [4 x ptr], ptr %2057, i64 0, i64 %2059
  %2061 = load ptr, ptr %2060, align 8, !tbaa !5
  %2062 = load i32, ptr %22, align 4, !tbaa !16
  %2063 = sext i32 %2062 to i64
  %2064 = getelementptr inbounds ptr, ptr %2061, i64 %2063
  %2065 = load ptr, ptr %2064, align 8, !tbaa !5
  %2066 = load i32, ptr %23, align 4, !tbaa !16
  %2067 = sext i32 %2066 to i64
  %2068 = getelementptr inbounds i8, ptr %2065, i64 %2067
  store i8 0, ptr %2068, align 1, !tbaa !20
  br label %2103

2069:                                             ; preds = %2027
  %2070 = load i32, ptr %44, align 4, !tbaa !16
  %2071 = icmp sgt i32 %2070, 255
  br i1 %2071, label %2072, label %2086

2072:                                             ; preds = %2069
  %2073 = load ptr, ptr %8, align 8, !tbaa !5
  %2074 = getelementptr inbounds %struct.MImage, ptr %2073, i32 0, i32 3
  %2075 = load i32, ptr %19, align 4, !tbaa !16
  %2076 = sext i32 %2075 to i64
  %2077 = getelementptr inbounds [4 x ptr], ptr %2074, i64 0, i64 %2076
  %2078 = load ptr, ptr %2077, align 8, !tbaa !5
  %2079 = load i32, ptr %22, align 4, !tbaa !16
  %2080 = sext i32 %2079 to i64
  %2081 = getelementptr inbounds ptr, ptr %2078, i64 %2080
  %2082 = load ptr, ptr %2081, align 8, !tbaa !5
  %2083 = load i32, ptr %23, align 4, !tbaa !16
  %2084 = sext i32 %2083 to i64
  %2085 = getelementptr inbounds i8, ptr %2082, i64 %2084
  store i8 -1, ptr %2085, align 1, !tbaa !20
  br label %2102

2086:                                             ; preds = %2069
  %2087 = load i32, ptr %44, align 4, !tbaa !16
  %2088 = trunc i32 %2087 to i8
  %2089 = load ptr, ptr %8, align 8, !tbaa !5
  %2090 = getelementptr inbounds %struct.MImage, ptr %2089, i32 0, i32 3
  %2091 = load i32, ptr %19, align 4, !tbaa !16
  %2092 = sext i32 %2091 to i64
  %2093 = getelementptr inbounds [4 x ptr], ptr %2090, i64 0, i64 %2092
  %2094 = load ptr, ptr %2093, align 8, !tbaa !5
  %2095 = load i32, ptr %22, align 4, !tbaa !16
  %2096 = sext i32 %2095 to i64
  %2097 = getelementptr inbounds ptr, ptr %2094, i64 %2096
  %2098 = load ptr, ptr %2097, align 8, !tbaa !5
  %2099 = load i32, ptr %23, align 4, !tbaa !16
  %2100 = sext i32 %2099 to i64
  %2101 = getelementptr inbounds i8, ptr %2098, i64 %2100
  store i8 %2088, ptr %2101, align 1, !tbaa !20
  br label %2102

2102:                                             ; preds = %2086, %2072
  br label %2103

2103:                                             ; preds = %2102, %2055
  call void @llvm.lifetime.end.p0(i64 4, ptr %44) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %45) #3
  %2104 = load ptr, ptr %20, align 8, !tbaa !5
  %2105 = load i32, ptr %22, align 4, !tbaa !16
  %2106 = sext i32 %2105 to i64
  %2107 = getelementptr inbounds ptr, ptr %2104, i64 %2106
  %2108 = load ptr, ptr %2107, align 8, !tbaa !5
  %2109 = load i32, ptr %23, align 4, !tbaa !16
  %2110 = sext i32 %2109 to i64
  %2111 = getelementptr inbounds i8, ptr %2108, i64 %2110
  %2112 = load i8, ptr %2111, align 1, !tbaa !20
  %2113 = zext i8 %2112 to i64
  %2114 = getelementptr inbounds [256 x i32], ptr %16, i64 0, i64 %2113
  %2115 = load i32, ptr %2114, align 4, !tbaa !16
  %2116 = load ptr, ptr %21, align 8, !tbaa !5
  %2117 = load i32, ptr %22, align 4, !tbaa !16
  %2118 = sext i32 %2117 to i64
  %2119 = getelementptr inbounds ptr, ptr %2116, i64 %2118
  %2120 = load ptr, ptr %2119, align 8, !tbaa !5
  %2121 = load i32, ptr %23, align 4, !tbaa !16
  %2122 = sext i32 %2121 to i64
  %2123 = getelementptr inbounds i8, ptr %2120, i64 %2122
  %2124 = load i8, ptr %2123, align 1, !tbaa !20
  %2125 = zext i8 %2124 to i64
  %2126 = getelementptr inbounds [256 x i32], ptr %17, i64 0, i64 %2125
  %2127 = load i32, ptr %2126, align 4, !tbaa !16
  %2128 = add nsw i32 %2115, %2127
  store i32 %2128, ptr %45, align 4, !tbaa !16
  %2129 = load i32, ptr %45, align 4, !tbaa !16
  %2130 = icmp slt i32 %2129, 0
  br i1 %2130, label %2131, label %2145

2131:                                             ; preds = %2103
  %2132 = load ptr, ptr %8, align 8, !tbaa !5
  %2133 = getelementptr inbounds %struct.MImage, ptr %2132, i32 0, i32 3
  %2134 = load i32, ptr %19, align 4, !tbaa !16
  %2135 = sext i32 %2134 to i64
  %2136 = getelementptr inbounds [4 x ptr], ptr %2133, i64 0, i64 %2135
  %2137 = load ptr, ptr %2136, align 8, !tbaa !5
  %2138 = load i32, ptr %22, align 4, !tbaa !16
  %2139 = sext i32 %2138 to i64
  %2140 = getelementptr inbounds ptr, ptr %2137, i64 %2139
  %2141 = load ptr, ptr %2140, align 8, !tbaa !5
  %2142 = load i32, ptr %23, align 4, !tbaa !16
  %2143 = sext i32 %2142 to i64
  %2144 = getelementptr inbounds i8, ptr %2141, i64 %2143
  store i8 0, ptr %2144, align 1, !tbaa !20
  br label %2179

2145:                                             ; preds = %2103
  %2146 = load i32, ptr %45, align 4, !tbaa !16
  %2147 = icmp sgt i32 %2146, 255
  br i1 %2147, label %2148, label %2162

2148:                                             ; preds = %2145
  %2149 = load ptr, ptr %8, align 8, !tbaa !5
  %2150 = getelementptr inbounds %struct.MImage, ptr %2149, i32 0, i32 3
  %2151 = load i32, ptr %19, align 4, !tbaa !16
  %2152 = sext i32 %2151 to i64
  %2153 = getelementptr inbounds [4 x ptr], ptr %2150, i64 0, i64 %2152
  %2154 = load ptr, ptr %2153, align 8, !tbaa !5
  %2155 = load i32, ptr %22, align 4, !tbaa !16
  %2156 = sext i32 %2155 to i64
  %2157 = getelementptr inbounds ptr, ptr %2154, i64 %2156
  %2158 = load ptr, ptr %2157, align 8, !tbaa !5
  %2159 = load i32, ptr %23, align 4, !tbaa !16
  %2160 = sext i32 %2159 to i64
  %2161 = getelementptr inbounds i8, ptr %2158, i64 %2160
  store i8 -1, ptr %2161, align 1, !tbaa !20
  br label %2178

2162:                                             ; preds = %2145
  %2163 = load i32, ptr %45, align 4, !tbaa !16
  %2164 = trunc i32 %2163 to i8
  %2165 = load ptr, ptr %8, align 8, !tbaa !5
  %2166 = getelementptr inbounds %struct.MImage, ptr %2165, i32 0, i32 3
  %2167 = load i32, ptr %19, align 4, !tbaa !16
  %2168 = sext i32 %2167 to i64
  %2169 = getelementptr inbounds [4 x ptr], ptr %2166, i64 0, i64 %2168
  %2170 = load ptr, ptr %2169, align 8, !tbaa !5
  %2171 = load i32, ptr %22, align 4, !tbaa !16
  %2172 = sext i32 %2171 to i64
  %2173 = getelementptr inbounds ptr, ptr %2170, i64 %2172
  %2174 = load ptr, ptr %2173, align 8, !tbaa !5
  %2175 = load i32, ptr %23, align 4, !tbaa !16
  %2176 = sext i32 %2175 to i64
  %2177 = getelementptr inbounds i8, ptr %2174, i64 %2176
  store i8 %2164, ptr %2177, align 1, !tbaa !20
  br label %2178

2178:                                             ; preds = %2162, %2148
  br label %2179

2179:                                             ; preds = %2178, %2131
  call void @llvm.lifetime.end.p0(i64 4, ptr %45) #3
  br label %10952

2180:                                             ; preds = %1944
  %2181 = load ptr, ptr %8, align 8, !tbaa !5
  %2182 = getelementptr inbounds %struct.MImage, ptr %2181, i32 0, i32 2
  %2183 = load i32, ptr %2182, align 8, !tbaa !15
  %2184 = load i32, ptr %23, align 4, !tbaa !16
  %2185 = sub nsw i32 %2183, %2184
  %2186 = icmp eq i32 %2185, 4
  br i1 %2186, label %2187, label %2492

2187:                                             ; preds = %2180
  call void @llvm.lifetime.start.p0(i64 4, ptr %46) #3
  %2188 = load ptr, ptr %20, align 8, !tbaa !5
  %2189 = load i32, ptr %22, align 4, !tbaa !16
  %2190 = sext i32 %2189 to i64
  %2191 = getelementptr inbounds ptr, ptr %2188, i64 %2190
  %2192 = load ptr, ptr %2191, align 8, !tbaa !5
  %2193 = load i32, ptr %23, align 4, !tbaa !16
  %2194 = sext i32 %2193 to i64
  %2195 = getelementptr inbounds i8, ptr %2192, i64 %2194
  %2196 = load i8, ptr %2195, align 1, !tbaa !20
  %2197 = zext i8 %2196 to i64
  %2198 = getelementptr inbounds [256 x i32], ptr %16, i64 0, i64 %2197
  %2199 = load i32, ptr %2198, align 4, !tbaa !16
  %2200 = load ptr, ptr %21, align 8, !tbaa !5
  %2201 = load i32, ptr %22, align 4, !tbaa !16
  %2202 = sext i32 %2201 to i64
  %2203 = getelementptr inbounds ptr, ptr %2200, i64 %2202
  %2204 = load ptr, ptr %2203, align 8, !tbaa !5
  %2205 = load i32, ptr %23, align 4, !tbaa !16
  %2206 = sext i32 %2205 to i64
  %2207 = getelementptr inbounds i8, ptr %2204, i64 %2206
  %2208 = load i8, ptr %2207, align 1, !tbaa !20
  %2209 = zext i8 %2208 to i64
  %2210 = getelementptr inbounds [256 x i32], ptr %17, i64 0, i64 %2209
  %2211 = load i32, ptr %2210, align 4, !tbaa !16
  %2212 = add nsw i32 %2199, %2211
  store i32 %2212, ptr %46, align 4, !tbaa !16
  %2213 = load i32, ptr %46, align 4, !tbaa !16
  %2214 = icmp slt i32 %2213, 0
  br i1 %2214, label %2215, label %2229

2215:                                             ; preds = %2187
  %2216 = load ptr, ptr %8, align 8, !tbaa !5
  %2217 = getelementptr inbounds %struct.MImage, ptr %2216, i32 0, i32 3
  %2218 = load i32, ptr %19, align 4, !tbaa !16
  %2219 = sext i32 %2218 to i64
  %2220 = getelementptr inbounds [4 x ptr], ptr %2217, i64 0, i64 %2219
  %2221 = load ptr, ptr %2220, align 8, !tbaa !5
  %2222 = load i32, ptr %22, align 4, !tbaa !16
  %2223 = sext i32 %2222 to i64
  %2224 = getelementptr inbounds ptr, ptr %2221, i64 %2223
  %2225 = load ptr, ptr %2224, align 8, !tbaa !5
  %2226 = load i32, ptr %23, align 4, !tbaa !16
  %2227 = sext i32 %2226 to i64
  %2228 = getelementptr inbounds i8, ptr %2225, i64 %2227
  store i8 0, ptr %2228, align 1, !tbaa !20
  br label %2263

2229:                                             ; preds = %2187
  %2230 = load i32, ptr %46, align 4, !tbaa !16
  %2231 = icmp sgt i32 %2230, 255
  br i1 %2231, label %2232, label %2246

2232:                                             ; preds = %2229
  %2233 = load ptr, ptr %8, align 8, !tbaa !5
  %2234 = getelementptr inbounds %struct.MImage, ptr %2233, i32 0, i32 3
  %2235 = load i32, ptr %19, align 4, !tbaa !16
  %2236 = sext i32 %2235 to i64
  %2237 = getelementptr inbounds [4 x ptr], ptr %2234, i64 0, i64 %2236
  %2238 = load ptr, ptr %2237, align 8, !tbaa !5
  %2239 = load i32, ptr %22, align 4, !tbaa !16
  %2240 = sext i32 %2239 to i64
  %2241 = getelementptr inbounds ptr, ptr %2238, i64 %2240
  %2242 = load ptr, ptr %2241, align 8, !tbaa !5
  %2243 = load i32, ptr %23, align 4, !tbaa !16
  %2244 = sext i32 %2243 to i64
  %2245 = getelementptr inbounds i8, ptr %2242, i64 %2244
  store i8 -1, ptr %2245, align 1, !tbaa !20
  br label %2262

2246:                                             ; preds = %2229
  %2247 = load i32, ptr %46, align 4, !tbaa !16
  %2248 = trunc i32 %2247 to i8
  %2249 = load ptr, ptr %8, align 8, !tbaa !5
  %2250 = getelementptr inbounds %struct.MImage, ptr %2249, i32 0, i32 3
  %2251 = load i32, ptr %19, align 4, !tbaa !16
  %2252 = sext i32 %2251 to i64
  %2253 = getelementptr inbounds [4 x ptr], ptr %2250, i64 0, i64 %2252
  %2254 = load ptr, ptr %2253, align 8, !tbaa !5
  %2255 = load i32, ptr %22, align 4, !tbaa !16
  %2256 = sext i32 %2255 to i64
  %2257 = getelementptr inbounds ptr, ptr %2254, i64 %2256
  %2258 = load ptr, ptr %2257, align 8, !tbaa !5
  %2259 = load i32, ptr %23, align 4, !tbaa !16
  %2260 = sext i32 %2259 to i64
  %2261 = getelementptr inbounds i8, ptr %2258, i64 %2260
  store i8 %2248, ptr %2261, align 1, !tbaa !20
  br label %2262

2262:                                             ; preds = %2246, %2232
  br label %2263

2263:                                             ; preds = %2262, %2215
  call void @llvm.lifetime.end.p0(i64 4, ptr %46) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %47) #3
  %2264 = load ptr, ptr %20, align 8, !tbaa !5
  %2265 = load i32, ptr %22, align 4, !tbaa !16
  %2266 = sext i32 %2265 to i64
  %2267 = getelementptr inbounds ptr, ptr %2264, i64 %2266
  %2268 = load ptr, ptr %2267, align 8, !tbaa !5
  %2269 = load i32, ptr %23, align 4, !tbaa !16
  %2270 = sext i32 %2269 to i64
  %2271 = getelementptr inbounds i8, ptr %2268, i64 %2270
  %2272 = load i8, ptr %2271, align 1, !tbaa !20
  %2273 = zext i8 %2272 to i64
  %2274 = getelementptr inbounds [256 x i32], ptr %16, i64 0, i64 %2273
  %2275 = load i32, ptr %2274, align 4, !tbaa !16
  %2276 = load ptr, ptr %21, align 8, !tbaa !5
  %2277 = load i32, ptr %22, align 4, !tbaa !16
  %2278 = sext i32 %2277 to i64
  %2279 = getelementptr inbounds ptr, ptr %2276, i64 %2278
  %2280 = load ptr, ptr %2279, align 8, !tbaa !5
  %2281 = load i32, ptr %23, align 4, !tbaa !16
  %2282 = sext i32 %2281 to i64
  %2283 = getelementptr inbounds i8, ptr %2280, i64 %2282
  %2284 = load i8, ptr %2283, align 1, !tbaa !20
  %2285 = zext i8 %2284 to i64
  %2286 = getelementptr inbounds [256 x i32], ptr %17, i64 0, i64 %2285
  %2287 = load i32, ptr %2286, align 4, !tbaa !16
  %2288 = add nsw i32 %2275, %2287
  store i32 %2288, ptr %47, align 4, !tbaa !16
  %2289 = load i32, ptr %47, align 4, !tbaa !16
  %2290 = icmp slt i32 %2289, 0
  br i1 %2290, label %2291, label %2305

2291:                                             ; preds = %2263
  %2292 = load ptr, ptr %8, align 8, !tbaa !5
  %2293 = getelementptr inbounds %struct.MImage, ptr %2292, i32 0, i32 3
  %2294 = load i32, ptr %19, align 4, !tbaa !16
  %2295 = sext i32 %2294 to i64
  %2296 = getelementptr inbounds [4 x ptr], ptr %2293, i64 0, i64 %2295
  %2297 = load ptr, ptr %2296, align 8, !tbaa !5
  %2298 = load i32, ptr %22, align 4, !tbaa !16
  %2299 = sext i32 %2298 to i64
  %2300 = getelementptr inbounds ptr, ptr %2297, i64 %2299
  %2301 = load ptr, ptr %2300, align 8, !tbaa !5
  %2302 = load i32, ptr %23, align 4, !tbaa !16
  %2303 = sext i32 %2302 to i64
  %2304 = getelementptr inbounds i8, ptr %2301, i64 %2303
  store i8 0, ptr %2304, align 1, !tbaa !20
  br label %2339

2305:                                             ; preds = %2263
  %2306 = load i32, ptr %47, align 4, !tbaa !16
  %2307 = icmp sgt i32 %2306, 255
  br i1 %2307, label %2308, label %2322

2308:                                             ; preds = %2305
  %2309 = load ptr, ptr %8, align 8, !tbaa !5
  %2310 = getelementptr inbounds %struct.MImage, ptr %2309, i32 0, i32 3
  %2311 = load i32, ptr %19, align 4, !tbaa !16
  %2312 = sext i32 %2311 to i64
  %2313 = getelementptr inbounds [4 x ptr], ptr %2310, i64 0, i64 %2312
  %2314 = load ptr, ptr %2313, align 8, !tbaa !5
  %2315 = load i32, ptr %22, align 4, !tbaa !16
  %2316 = sext i32 %2315 to i64
  %2317 = getelementptr inbounds ptr, ptr %2314, i64 %2316
  %2318 = load ptr, ptr %2317, align 8, !tbaa !5
  %2319 = load i32, ptr %23, align 4, !tbaa !16
  %2320 = sext i32 %2319 to i64
  %2321 = getelementptr inbounds i8, ptr %2318, i64 %2320
  store i8 -1, ptr %2321, align 1, !tbaa !20
  br label %2338

2322:                                             ; preds = %2305
  %2323 = load i32, ptr %47, align 4, !tbaa !16
  %2324 = trunc i32 %2323 to i8
  %2325 = load ptr, ptr %8, align 8, !tbaa !5
  %2326 = getelementptr inbounds %struct.MImage, ptr %2325, i32 0, i32 3
  %2327 = load i32, ptr %19, align 4, !tbaa !16
  %2328 = sext i32 %2327 to i64
  %2329 = getelementptr inbounds [4 x ptr], ptr %2326, i64 0, i64 %2328
  %2330 = load ptr, ptr %2329, align 8, !tbaa !5
  %2331 = load i32, ptr %22, align 4, !tbaa !16
  %2332 = sext i32 %2331 to i64
  %2333 = getelementptr inbounds ptr, ptr %2330, i64 %2332
  %2334 = load ptr, ptr %2333, align 8, !tbaa !5
  %2335 = load i32, ptr %23, align 4, !tbaa !16
  %2336 = sext i32 %2335 to i64
  %2337 = getelementptr inbounds i8, ptr %2334, i64 %2336
  store i8 %2324, ptr %2337, align 1, !tbaa !20
  br label %2338

2338:                                             ; preds = %2322, %2308
  br label %2339

2339:                                             ; preds = %2338, %2291
  call void @llvm.lifetime.end.p0(i64 4, ptr %47) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %48) #3
  %2340 = load ptr, ptr %20, align 8, !tbaa !5
  %2341 = load i32, ptr %22, align 4, !tbaa !16
  %2342 = sext i32 %2341 to i64
  %2343 = getelementptr inbounds ptr, ptr %2340, i64 %2342
  %2344 = load ptr, ptr %2343, align 8, !tbaa !5
  %2345 = load i32, ptr %23, align 4, !tbaa !16
  %2346 = sext i32 %2345 to i64
  %2347 = getelementptr inbounds i8, ptr %2344, i64 %2346
  %2348 = load i8, ptr %2347, align 1, !tbaa !20
  %2349 = zext i8 %2348 to i64
  %2350 = getelementptr inbounds [256 x i32], ptr %16, i64 0, i64 %2349
  %2351 = load i32, ptr %2350, align 4, !tbaa !16
  %2352 = load ptr, ptr %21, align 8, !tbaa !5
  %2353 = load i32, ptr %22, align 4, !tbaa !16
  %2354 = sext i32 %2353 to i64
  %2355 = getelementptr inbounds ptr, ptr %2352, i64 %2354
  %2356 = load ptr, ptr %2355, align 8, !tbaa !5
  %2357 = load i32, ptr %23, align 4, !tbaa !16
  %2358 = sext i32 %2357 to i64
  %2359 = getelementptr inbounds i8, ptr %2356, i64 %2358
  %2360 = load i8, ptr %2359, align 1, !tbaa !20
  %2361 = zext i8 %2360 to i64
  %2362 = getelementptr inbounds [256 x i32], ptr %17, i64 0, i64 %2361
  %2363 = load i32, ptr %2362, align 4, !tbaa !16
  %2364 = add nsw i32 %2351, %2363
  store i32 %2364, ptr %48, align 4, !tbaa !16
  %2365 = load i32, ptr %48, align 4, !tbaa !16
  %2366 = icmp slt i32 %2365, 0
  br i1 %2366, label %2367, label %2381

2367:                                             ; preds = %2339
  %2368 = load ptr, ptr %8, align 8, !tbaa !5
  %2369 = getelementptr inbounds %struct.MImage, ptr %2368, i32 0, i32 3
  %2370 = load i32, ptr %19, align 4, !tbaa !16
  %2371 = sext i32 %2370 to i64
  %2372 = getelementptr inbounds [4 x ptr], ptr %2369, i64 0, i64 %2371
  %2373 = load ptr, ptr %2372, align 8, !tbaa !5
  %2374 = load i32, ptr %22, align 4, !tbaa !16
  %2375 = sext i32 %2374 to i64
  %2376 = getelementptr inbounds ptr, ptr %2373, i64 %2375
  %2377 = load ptr, ptr %2376, align 8, !tbaa !5
  %2378 = load i32, ptr %23, align 4, !tbaa !16
  %2379 = sext i32 %2378 to i64
  %2380 = getelementptr inbounds i8, ptr %2377, i64 %2379
  store i8 0, ptr %2380, align 1, !tbaa !20
  br label %2415

2381:                                             ; preds = %2339
  %2382 = load i32, ptr %48, align 4, !tbaa !16
  %2383 = icmp sgt i32 %2382, 255
  br i1 %2383, label %2384, label %2398

2384:                                             ; preds = %2381
  %2385 = load ptr, ptr %8, align 8, !tbaa !5
  %2386 = getelementptr inbounds %struct.MImage, ptr %2385, i32 0, i32 3
  %2387 = load i32, ptr %19, align 4, !tbaa !16
  %2388 = sext i32 %2387 to i64
  %2389 = getelementptr inbounds [4 x ptr], ptr %2386, i64 0, i64 %2388
  %2390 = load ptr, ptr %2389, align 8, !tbaa !5
  %2391 = load i32, ptr %22, align 4, !tbaa !16
  %2392 = sext i32 %2391 to i64
  %2393 = getelementptr inbounds ptr, ptr %2390, i64 %2392
  %2394 = load ptr, ptr %2393, align 8, !tbaa !5
  %2395 = load i32, ptr %23, align 4, !tbaa !16
  %2396 = sext i32 %2395 to i64
  %2397 = getelementptr inbounds i8, ptr %2394, i64 %2396
  store i8 -1, ptr %2397, align 1, !tbaa !20
  br label %2414

2398:                                             ; preds = %2381
  %2399 = load i32, ptr %48, align 4, !tbaa !16
  %2400 = trunc i32 %2399 to i8
  %2401 = load ptr, ptr %8, align 8, !tbaa !5
  %2402 = getelementptr inbounds %struct.MImage, ptr %2401, i32 0, i32 3
  %2403 = load i32, ptr %19, align 4, !tbaa !16
  %2404 = sext i32 %2403 to i64
  %2405 = getelementptr inbounds [4 x ptr], ptr %2402, i64 0, i64 %2404
  %2406 = load ptr, ptr %2405, align 8, !tbaa !5
  %2407 = load i32, ptr %22, align 4, !tbaa !16
  %2408 = sext i32 %2407 to i64
  %2409 = getelementptr inbounds ptr, ptr %2406, i64 %2408
  %2410 = load ptr, ptr %2409, align 8, !tbaa !5
  %2411 = load i32, ptr %23, align 4, !tbaa !16
  %2412 = sext i32 %2411 to i64
  %2413 = getelementptr inbounds i8, ptr %2410, i64 %2412
  store i8 %2400, ptr %2413, align 1, !tbaa !20
  br label %2414

2414:                                             ; preds = %2398, %2384
  br label %2415

2415:                                             ; preds = %2414, %2367
  call void @llvm.lifetime.end.p0(i64 4, ptr %48) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %49) #3
  %2416 = load ptr, ptr %20, align 8, !tbaa !5
  %2417 = load i32, ptr %22, align 4, !tbaa !16
  %2418 = sext i32 %2417 to i64
  %2419 = getelementptr inbounds ptr, ptr %2416, i64 %2418
  %2420 = load ptr, ptr %2419, align 8, !tbaa !5
  %2421 = load i32, ptr %23, align 4, !tbaa !16
  %2422 = sext i32 %2421 to i64
  %2423 = getelementptr inbounds i8, ptr %2420, i64 %2422
  %2424 = load i8, ptr %2423, align 1, !tbaa !20
  %2425 = zext i8 %2424 to i64
  %2426 = getelementptr inbounds [256 x i32], ptr %16, i64 0, i64 %2425
  %2427 = load i32, ptr %2426, align 4, !tbaa !16
  %2428 = load ptr, ptr %21, align 8, !tbaa !5
  %2429 = load i32, ptr %22, align 4, !tbaa !16
  %2430 = sext i32 %2429 to i64
  %2431 = getelementptr inbounds ptr, ptr %2428, i64 %2430
  %2432 = load ptr, ptr %2431, align 8, !tbaa !5
  %2433 = load i32, ptr %23, align 4, !tbaa !16
  %2434 = sext i32 %2433 to i64
  %2435 = getelementptr inbounds i8, ptr %2432, i64 %2434
  %2436 = load i8, ptr %2435, align 1, !tbaa !20
  %2437 = zext i8 %2436 to i64
  %2438 = getelementptr inbounds [256 x i32], ptr %17, i64 0, i64 %2437
  %2439 = load i32, ptr %2438, align 4, !tbaa !16
  %2440 = add nsw i32 %2427, %2439
  store i32 %2440, ptr %49, align 4, !tbaa !16
  %2441 = load i32, ptr %49, align 4, !tbaa !16
  %2442 = icmp slt i32 %2441, 0
  br i1 %2442, label %2443, label %2457

2443:                                             ; preds = %2415
  %2444 = load ptr, ptr %8, align 8, !tbaa !5
  %2445 = getelementptr inbounds %struct.MImage, ptr %2444, i32 0, i32 3
  %2446 = load i32, ptr %19, align 4, !tbaa !16
  %2447 = sext i32 %2446 to i64
  %2448 = getelementptr inbounds [4 x ptr], ptr %2445, i64 0, i64 %2447
  %2449 = load ptr, ptr %2448, align 8, !tbaa !5
  %2450 = load i32, ptr %22, align 4, !tbaa !16
  %2451 = sext i32 %2450 to i64
  %2452 = getelementptr inbounds ptr, ptr %2449, i64 %2451
  %2453 = load ptr, ptr %2452, align 8, !tbaa !5
  %2454 = load i32, ptr %23, align 4, !tbaa !16
  %2455 = sext i32 %2454 to i64
  %2456 = getelementptr inbounds i8, ptr %2453, i64 %2455
  store i8 0, ptr %2456, align 1, !tbaa !20
  br label %2491

2457:                                             ; preds = %2415
  %2458 = load i32, ptr %49, align 4, !tbaa !16
  %2459 = icmp sgt i32 %2458, 255
  br i1 %2459, label %2460, label %2474

2460:                                             ; preds = %2457
  %2461 = load ptr, ptr %8, align 8, !tbaa !5
  %2462 = getelementptr inbounds %struct.MImage, ptr %2461, i32 0, i32 3
  %2463 = load i32, ptr %19, align 4, !tbaa !16
  %2464 = sext i32 %2463 to i64
  %2465 = getelementptr inbounds [4 x ptr], ptr %2462, i64 0, i64 %2464
  %2466 = load ptr, ptr %2465, align 8, !tbaa !5
  %2467 = load i32, ptr %22, align 4, !tbaa !16
  %2468 = sext i32 %2467 to i64
  %2469 = getelementptr inbounds ptr, ptr %2466, i64 %2468
  %2470 = load ptr, ptr %2469, align 8, !tbaa !5
  %2471 = load i32, ptr %23, align 4, !tbaa !16
  %2472 = sext i32 %2471 to i64
  %2473 = getelementptr inbounds i8, ptr %2470, i64 %2472
  store i8 -1, ptr %2473, align 1, !tbaa !20
  br label %2490

2474:                                             ; preds = %2457
  %2475 = load i32, ptr %49, align 4, !tbaa !16
  %2476 = trunc i32 %2475 to i8
  %2477 = load ptr, ptr %8, align 8, !tbaa !5
  %2478 = getelementptr inbounds %struct.MImage, ptr %2477, i32 0, i32 3
  %2479 = load i32, ptr %19, align 4, !tbaa !16
  %2480 = sext i32 %2479 to i64
  %2481 = getelementptr inbounds [4 x ptr], ptr %2478, i64 0, i64 %2480
  %2482 = load ptr, ptr %2481, align 8, !tbaa !5
  %2483 = load i32, ptr %22, align 4, !tbaa !16
  %2484 = sext i32 %2483 to i64
  %2485 = getelementptr inbounds ptr, ptr %2482, i64 %2484
  %2486 = load ptr, ptr %2485, align 8, !tbaa !5
  %2487 = load i32, ptr %23, align 4, !tbaa !16
  %2488 = sext i32 %2487 to i64
  %2489 = getelementptr inbounds i8, ptr %2486, i64 %2488
  store i8 %2476, ptr %2489, align 1, !tbaa !20
  br label %2490

2490:                                             ; preds = %2474, %2460
  br label %2491

2491:                                             ; preds = %2490, %2443
  call void @llvm.lifetime.end.p0(i64 4, ptr %49) #3
  br label %10951

2492:                                             ; preds = %2180
  %2493 = load ptr, ptr %8, align 8, !tbaa !5
  %2494 = getelementptr inbounds %struct.MImage, ptr %2493, i32 0, i32 2
  %2495 = load i32, ptr %2494, align 8, !tbaa !15
  %2496 = load i32, ptr %23, align 4, !tbaa !16
  %2497 = sub nsw i32 %2495, %2496
  %2498 = icmp eq i32 %2497, 5
  br i1 %2498, label %2499, label %2880

2499:                                             ; preds = %2492
  call void @llvm.lifetime.start.p0(i64 4, ptr %50) #3
  %2500 = load ptr, ptr %20, align 8, !tbaa !5
  %2501 = load i32, ptr %22, align 4, !tbaa !16
  %2502 = sext i32 %2501 to i64
  %2503 = getelementptr inbounds ptr, ptr %2500, i64 %2502
  %2504 = load ptr, ptr %2503, align 8, !tbaa !5
  %2505 = load i32, ptr %23, align 4, !tbaa !16
  %2506 = sext i32 %2505 to i64
  %2507 = getelementptr inbounds i8, ptr %2504, i64 %2506
  %2508 = load i8, ptr %2507, align 1, !tbaa !20
  %2509 = zext i8 %2508 to i64
  %2510 = getelementptr inbounds [256 x i32], ptr %16, i64 0, i64 %2509
  %2511 = load i32, ptr %2510, align 4, !tbaa !16
  %2512 = load ptr, ptr %21, align 8, !tbaa !5
  %2513 = load i32, ptr %22, align 4, !tbaa !16
  %2514 = sext i32 %2513 to i64
  %2515 = getelementptr inbounds ptr, ptr %2512, i64 %2514
  %2516 = load ptr, ptr %2515, align 8, !tbaa !5
  %2517 = load i32, ptr %23, align 4, !tbaa !16
  %2518 = sext i32 %2517 to i64
  %2519 = getelementptr inbounds i8, ptr %2516, i64 %2518
  %2520 = load i8, ptr %2519, align 1, !tbaa !20
  %2521 = zext i8 %2520 to i64
  %2522 = getelementptr inbounds [256 x i32], ptr %17, i64 0, i64 %2521
  %2523 = load i32, ptr %2522, align 4, !tbaa !16
  %2524 = add nsw i32 %2511, %2523
  store i32 %2524, ptr %50, align 4, !tbaa !16
  %2525 = load i32, ptr %50, align 4, !tbaa !16
  %2526 = icmp slt i32 %2525, 0
  br i1 %2526, label %2527, label %2541

2527:                                             ; preds = %2499
  %2528 = load ptr, ptr %8, align 8, !tbaa !5
  %2529 = getelementptr inbounds %struct.MImage, ptr %2528, i32 0, i32 3
  %2530 = load i32, ptr %19, align 4, !tbaa !16
  %2531 = sext i32 %2530 to i64
  %2532 = getelementptr inbounds [4 x ptr], ptr %2529, i64 0, i64 %2531
  %2533 = load ptr, ptr %2532, align 8, !tbaa !5
  %2534 = load i32, ptr %22, align 4, !tbaa !16
  %2535 = sext i32 %2534 to i64
  %2536 = getelementptr inbounds ptr, ptr %2533, i64 %2535
  %2537 = load ptr, ptr %2536, align 8, !tbaa !5
  %2538 = load i32, ptr %23, align 4, !tbaa !16
  %2539 = sext i32 %2538 to i64
  %2540 = getelementptr inbounds i8, ptr %2537, i64 %2539
  store i8 0, ptr %2540, align 1, !tbaa !20
  br label %2575

2541:                                             ; preds = %2499
  %2542 = load i32, ptr %50, align 4, !tbaa !16
  %2543 = icmp sgt i32 %2542, 255
  br i1 %2543, label %2544, label %2558

2544:                                             ; preds = %2541
  %2545 = load ptr, ptr %8, align 8, !tbaa !5
  %2546 = getelementptr inbounds %struct.MImage, ptr %2545, i32 0, i32 3
  %2547 = load i32, ptr %19, align 4, !tbaa !16
  %2548 = sext i32 %2547 to i64
  %2549 = getelementptr inbounds [4 x ptr], ptr %2546, i64 0, i64 %2548
  %2550 = load ptr, ptr %2549, align 8, !tbaa !5
  %2551 = load i32, ptr %22, align 4, !tbaa !16
  %2552 = sext i32 %2551 to i64
  %2553 = getelementptr inbounds ptr, ptr %2550, i64 %2552
  %2554 = load ptr, ptr %2553, align 8, !tbaa !5
  %2555 = load i32, ptr %23, align 4, !tbaa !16
  %2556 = sext i32 %2555 to i64
  %2557 = getelementptr inbounds i8, ptr %2554, i64 %2556
  store i8 -1, ptr %2557, align 1, !tbaa !20
  br label %2574

2558:                                             ; preds = %2541
  %2559 = load i32, ptr %50, align 4, !tbaa !16
  %2560 = trunc i32 %2559 to i8
  %2561 = load ptr, ptr %8, align 8, !tbaa !5
  %2562 = getelementptr inbounds %struct.MImage, ptr %2561, i32 0, i32 3
  %2563 = load i32, ptr %19, align 4, !tbaa !16
  %2564 = sext i32 %2563 to i64
  %2565 = getelementptr inbounds [4 x ptr], ptr %2562, i64 0, i64 %2564
  %2566 = load ptr, ptr %2565, align 8, !tbaa !5
  %2567 = load i32, ptr %22, align 4, !tbaa !16
  %2568 = sext i32 %2567 to i64
  %2569 = getelementptr inbounds ptr, ptr %2566, i64 %2568
  %2570 = load ptr, ptr %2569, align 8, !tbaa !5
  %2571 = load i32, ptr %23, align 4, !tbaa !16
  %2572 = sext i32 %2571 to i64
  %2573 = getelementptr inbounds i8, ptr %2570, i64 %2572
  store i8 %2560, ptr %2573, align 1, !tbaa !20
  br label %2574

2574:                                             ; preds = %2558, %2544
  br label %2575

2575:                                             ; preds = %2574, %2527
  call void @llvm.lifetime.end.p0(i64 4, ptr %50) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %51) #3
  %2576 = load ptr, ptr %20, align 8, !tbaa !5
  %2577 = load i32, ptr %22, align 4, !tbaa !16
  %2578 = sext i32 %2577 to i64
  %2579 = getelementptr inbounds ptr, ptr %2576, i64 %2578
  %2580 = load ptr, ptr %2579, align 8, !tbaa !5
  %2581 = load i32, ptr %23, align 4, !tbaa !16
  %2582 = sext i32 %2581 to i64
  %2583 = getelementptr inbounds i8, ptr %2580, i64 %2582
  %2584 = load i8, ptr %2583, align 1, !tbaa !20
  %2585 = zext i8 %2584 to i64
  %2586 = getelementptr inbounds [256 x i32], ptr %16, i64 0, i64 %2585
  %2587 = load i32, ptr %2586, align 4, !tbaa !16
  %2588 = load ptr, ptr %21, align 8, !tbaa !5
  %2589 = load i32, ptr %22, align 4, !tbaa !16
  %2590 = sext i32 %2589 to i64
  %2591 = getelementptr inbounds ptr, ptr %2588, i64 %2590
  %2592 = load ptr, ptr %2591, align 8, !tbaa !5
  %2593 = load i32, ptr %23, align 4, !tbaa !16
  %2594 = sext i32 %2593 to i64
  %2595 = getelementptr inbounds i8, ptr %2592, i64 %2594
  %2596 = load i8, ptr %2595, align 1, !tbaa !20
  %2597 = zext i8 %2596 to i64
  %2598 = getelementptr inbounds [256 x i32], ptr %17, i64 0, i64 %2597
  %2599 = load i32, ptr %2598, align 4, !tbaa !16
  %2600 = add nsw i32 %2587, %2599
  store i32 %2600, ptr %51, align 4, !tbaa !16
  %2601 = load i32, ptr %51, align 4, !tbaa !16
  %2602 = icmp slt i32 %2601, 0
  br i1 %2602, label %2603, label %2617

2603:                                             ; preds = %2575
  %2604 = load ptr, ptr %8, align 8, !tbaa !5
  %2605 = getelementptr inbounds %struct.MImage, ptr %2604, i32 0, i32 3
  %2606 = load i32, ptr %19, align 4, !tbaa !16
  %2607 = sext i32 %2606 to i64
  %2608 = getelementptr inbounds [4 x ptr], ptr %2605, i64 0, i64 %2607
  %2609 = load ptr, ptr %2608, align 8, !tbaa !5
  %2610 = load i32, ptr %22, align 4, !tbaa !16
  %2611 = sext i32 %2610 to i64
  %2612 = getelementptr inbounds ptr, ptr %2609, i64 %2611
  %2613 = load ptr, ptr %2612, align 8, !tbaa !5
  %2614 = load i32, ptr %23, align 4, !tbaa !16
  %2615 = sext i32 %2614 to i64
  %2616 = getelementptr inbounds i8, ptr %2613, i64 %2615
  store i8 0, ptr %2616, align 1, !tbaa !20
  br label %2651

2617:                                             ; preds = %2575
  %2618 = load i32, ptr %51, align 4, !tbaa !16
  %2619 = icmp sgt i32 %2618, 255
  br i1 %2619, label %2620, label %2634

2620:                                             ; preds = %2617
  %2621 = load ptr, ptr %8, align 8, !tbaa !5
  %2622 = getelementptr inbounds %struct.MImage, ptr %2621, i32 0, i32 3
  %2623 = load i32, ptr %19, align 4, !tbaa !16
  %2624 = sext i32 %2623 to i64
  %2625 = getelementptr inbounds [4 x ptr], ptr %2622, i64 0, i64 %2624
  %2626 = load ptr, ptr %2625, align 8, !tbaa !5
  %2627 = load i32, ptr %22, align 4, !tbaa !16
  %2628 = sext i32 %2627 to i64
  %2629 = getelementptr inbounds ptr, ptr %2626, i64 %2628
  %2630 = load ptr, ptr %2629, align 8, !tbaa !5
  %2631 = load i32, ptr %23, align 4, !tbaa !16
  %2632 = sext i32 %2631 to i64
  %2633 = getelementptr inbounds i8, ptr %2630, i64 %2632
  store i8 -1, ptr %2633, align 1, !tbaa !20
  br label %2650

2634:                                             ; preds = %2617
  %2635 = load i32, ptr %51, align 4, !tbaa !16
  %2636 = trunc i32 %2635 to i8
  %2637 = load ptr, ptr %8, align 8, !tbaa !5
  %2638 = getelementptr inbounds %struct.MImage, ptr %2637, i32 0, i32 3
  %2639 = load i32, ptr %19, align 4, !tbaa !16
  %2640 = sext i32 %2639 to i64
  %2641 = getelementptr inbounds [4 x ptr], ptr %2638, i64 0, i64 %2640
  %2642 = load ptr, ptr %2641, align 8, !tbaa !5
  %2643 = load i32, ptr %22, align 4, !tbaa !16
  %2644 = sext i32 %2643 to i64
  %2645 = getelementptr inbounds ptr, ptr %2642, i64 %2644
  %2646 = load ptr, ptr %2645, align 8, !tbaa !5
  %2647 = load i32, ptr %23, align 4, !tbaa !16
  %2648 = sext i32 %2647 to i64
  %2649 = getelementptr inbounds i8, ptr %2646, i64 %2648
  store i8 %2636, ptr %2649, align 1, !tbaa !20
  br label %2650

2650:                                             ; preds = %2634, %2620
  br label %2651

2651:                                             ; preds = %2650, %2603
  call void @llvm.lifetime.end.p0(i64 4, ptr %51) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %52) #3
  %2652 = load ptr, ptr %20, align 8, !tbaa !5
  %2653 = load i32, ptr %22, align 4, !tbaa !16
  %2654 = sext i32 %2653 to i64
  %2655 = getelementptr inbounds ptr, ptr %2652, i64 %2654
  %2656 = load ptr, ptr %2655, align 8, !tbaa !5
  %2657 = load i32, ptr %23, align 4, !tbaa !16
  %2658 = sext i32 %2657 to i64
  %2659 = getelementptr inbounds i8, ptr %2656, i64 %2658
  %2660 = load i8, ptr %2659, align 1, !tbaa !20
  %2661 = zext i8 %2660 to i64
  %2662 = getelementptr inbounds [256 x i32], ptr %16, i64 0, i64 %2661
  %2663 = load i32, ptr %2662, align 4, !tbaa !16
  %2664 = load ptr, ptr %21, align 8, !tbaa !5
  %2665 = load i32, ptr %22, align 4, !tbaa !16
  %2666 = sext i32 %2665 to i64
  %2667 = getelementptr inbounds ptr, ptr %2664, i64 %2666
  %2668 = load ptr, ptr %2667, align 8, !tbaa !5
  %2669 = load i32, ptr %23, align 4, !tbaa !16
  %2670 = sext i32 %2669 to i64
  %2671 = getelementptr inbounds i8, ptr %2668, i64 %2670
  %2672 = load i8, ptr %2671, align 1, !tbaa !20
  %2673 = zext i8 %2672 to i64
  %2674 = getelementptr inbounds [256 x i32], ptr %17, i64 0, i64 %2673
  %2675 = load i32, ptr %2674, align 4, !tbaa !16
  %2676 = add nsw i32 %2663, %2675
  store i32 %2676, ptr %52, align 4, !tbaa !16
  %2677 = load i32, ptr %52, align 4, !tbaa !16
  %2678 = icmp slt i32 %2677, 0
  br i1 %2678, label %2679, label %2693

2679:                                             ; preds = %2651
  %2680 = load ptr, ptr %8, align 8, !tbaa !5
  %2681 = getelementptr inbounds %struct.MImage, ptr %2680, i32 0, i32 3
  %2682 = load i32, ptr %19, align 4, !tbaa !16
  %2683 = sext i32 %2682 to i64
  %2684 = getelementptr inbounds [4 x ptr], ptr %2681, i64 0, i64 %2683
  %2685 = load ptr, ptr %2684, align 8, !tbaa !5
  %2686 = load i32, ptr %22, align 4, !tbaa !16
  %2687 = sext i32 %2686 to i64
  %2688 = getelementptr inbounds ptr, ptr %2685, i64 %2687
  %2689 = load ptr, ptr %2688, align 8, !tbaa !5
  %2690 = load i32, ptr %23, align 4, !tbaa !16
  %2691 = sext i32 %2690 to i64
  %2692 = getelementptr inbounds i8, ptr %2689, i64 %2691
  store i8 0, ptr %2692, align 1, !tbaa !20
  br label %2727

2693:                                             ; preds = %2651
  %2694 = load i32, ptr %52, align 4, !tbaa !16
  %2695 = icmp sgt i32 %2694, 255
  br i1 %2695, label %2696, label %2710

2696:                                             ; preds = %2693
  %2697 = load ptr, ptr %8, align 8, !tbaa !5
  %2698 = getelementptr inbounds %struct.MImage, ptr %2697, i32 0, i32 3
  %2699 = load i32, ptr %19, align 4, !tbaa !16
  %2700 = sext i32 %2699 to i64
  %2701 = getelementptr inbounds [4 x ptr], ptr %2698, i64 0, i64 %2700
  %2702 = load ptr, ptr %2701, align 8, !tbaa !5
  %2703 = load i32, ptr %22, align 4, !tbaa !16
  %2704 = sext i32 %2703 to i64
  %2705 = getelementptr inbounds ptr, ptr %2702, i64 %2704
  %2706 = load ptr, ptr %2705, align 8, !tbaa !5
  %2707 = load i32, ptr %23, align 4, !tbaa !16
  %2708 = sext i32 %2707 to i64
  %2709 = getelementptr inbounds i8, ptr %2706, i64 %2708
  store i8 -1, ptr %2709, align 1, !tbaa !20
  br label %2726

2710:                                             ; preds = %2693
  %2711 = load i32, ptr %52, align 4, !tbaa !16
  %2712 = trunc i32 %2711 to i8
  %2713 = load ptr, ptr %8, align 8, !tbaa !5
  %2714 = getelementptr inbounds %struct.MImage, ptr %2713, i32 0, i32 3
  %2715 = load i32, ptr %19, align 4, !tbaa !16
  %2716 = sext i32 %2715 to i64
  %2717 = getelementptr inbounds [4 x ptr], ptr %2714, i64 0, i64 %2716
  %2718 = load ptr, ptr %2717, align 8, !tbaa !5
  %2719 = load i32, ptr %22, align 4, !tbaa !16
  %2720 = sext i32 %2719 to i64
  %2721 = getelementptr inbounds ptr, ptr %2718, i64 %2720
  %2722 = load ptr, ptr %2721, align 8, !tbaa !5
  %2723 = load i32, ptr %23, align 4, !tbaa !16
  %2724 = sext i32 %2723 to i64
  %2725 = getelementptr inbounds i8, ptr %2722, i64 %2724
  store i8 %2712, ptr %2725, align 1, !tbaa !20
  br label %2726

2726:                                             ; preds = %2710, %2696
  br label %2727

2727:                                             ; preds = %2726, %2679
  call void @llvm.lifetime.end.p0(i64 4, ptr %52) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %53) #3
  %2728 = load ptr, ptr %20, align 8, !tbaa !5
  %2729 = load i32, ptr %22, align 4, !tbaa !16
  %2730 = sext i32 %2729 to i64
  %2731 = getelementptr inbounds ptr, ptr %2728, i64 %2730
  %2732 = load ptr, ptr %2731, align 8, !tbaa !5
  %2733 = load i32, ptr %23, align 4, !tbaa !16
  %2734 = sext i32 %2733 to i64
  %2735 = getelementptr inbounds i8, ptr %2732, i64 %2734
  %2736 = load i8, ptr %2735, align 1, !tbaa !20
  %2737 = zext i8 %2736 to i64
  %2738 = getelementptr inbounds [256 x i32], ptr %16, i64 0, i64 %2737
  %2739 = load i32, ptr %2738, align 4, !tbaa !16
  %2740 = load ptr, ptr %21, align 8, !tbaa !5
  %2741 = load i32, ptr %22, align 4, !tbaa !16
  %2742 = sext i32 %2741 to i64
  %2743 = getelementptr inbounds ptr, ptr %2740, i64 %2742
  %2744 = load ptr, ptr %2743, align 8, !tbaa !5
  %2745 = load i32, ptr %23, align 4, !tbaa !16
  %2746 = sext i32 %2745 to i64
  %2747 = getelementptr inbounds i8, ptr %2744, i64 %2746
  %2748 = load i8, ptr %2747, align 1, !tbaa !20
  %2749 = zext i8 %2748 to i64
  %2750 = getelementptr inbounds [256 x i32], ptr %17, i64 0, i64 %2749
  %2751 = load i32, ptr %2750, align 4, !tbaa !16
  %2752 = add nsw i32 %2739, %2751
  store i32 %2752, ptr %53, align 4, !tbaa !16
  %2753 = load i32, ptr %53, align 4, !tbaa !16
  %2754 = icmp slt i32 %2753, 0
  br i1 %2754, label %2755, label %2769

2755:                                             ; preds = %2727
  %2756 = load ptr, ptr %8, align 8, !tbaa !5
  %2757 = getelementptr inbounds %struct.MImage, ptr %2756, i32 0, i32 3
  %2758 = load i32, ptr %19, align 4, !tbaa !16
  %2759 = sext i32 %2758 to i64
  %2760 = getelementptr inbounds [4 x ptr], ptr %2757, i64 0, i64 %2759
  %2761 = load ptr, ptr %2760, align 8, !tbaa !5
  %2762 = load i32, ptr %22, align 4, !tbaa !16
  %2763 = sext i32 %2762 to i64
  %2764 = getelementptr inbounds ptr, ptr %2761, i64 %2763
  %2765 = load ptr, ptr %2764, align 8, !tbaa !5
  %2766 = load i32, ptr %23, align 4, !tbaa !16
  %2767 = sext i32 %2766 to i64
  %2768 = getelementptr inbounds i8, ptr %2765, i64 %2767
  store i8 0, ptr %2768, align 1, !tbaa !20
  br label %2803

2769:                                             ; preds = %2727
  %2770 = load i32, ptr %53, align 4, !tbaa !16
  %2771 = icmp sgt i32 %2770, 255
  br i1 %2771, label %2772, label %2786

2772:                                             ; preds = %2769
  %2773 = load ptr, ptr %8, align 8, !tbaa !5
  %2774 = getelementptr inbounds %struct.MImage, ptr %2773, i32 0, i32 3
  %2775 = load i32, ptr %19, align 4, !tbaa !16
  %2776 = sext i32 %2775 to i64
  %2777 = getelementptr inbounds [4 x ptr], ptr %2774, i64 0, i64 %2776
  %2778 = load ptr, ptr %2777, align 8, !tbaa !5
  %2779 = load i32, ptr %22, align 4, !tbaa !16
  %2780 = sext i32 %2779 to i64
  %2781 = getelementptr inbounds ptr, ptr %2778, i64 %2780
  %2782 = load ptr, ptr %2781, align 8, !tbaa !5
  %2783 = load i32, ptr %23, align 4, !tbaa !16
  %2784 = sext i32 %2783 to i64
  %2785 = getelementptr inbounds i8, ptr %2782, i64 %2784
  store i8 -1, ptr %2785, align 1, !tbaa !20
  br label %2802

2786:                                             ; preds = %2769
  %2787 = load i32, ptr %53, align 4, !tbaa !16
  %2788 = trunc i32 %2787 to i8
  %2789 = load ptr, ptr %8, align 8, !tbaa !5
  %2790 = getelementptr inbounds %struct.MImage, ptr %2789, i32 0, i32 3
  %2791 = load i32, ptr %19, align 4, !tbaa !16
  %2792 = sext i32 %2791 to i64
  %2793 = getelementptr inbounds [4 x ptr], ptr %2790, i64 0, i64 %2792
  %2794 = load ptr, ptr %2793, align 8, !tbaa !5
  %2795 = load i32, ptr %22, align 4, !tbaa !16
  %2796 = sext i32 %2795 to i64
  %2797 = getelementptr inbounds ptr, ptr %2794, i64 %2796
  %2798 = load ptr, ptr %2797, align 8, !tbaa !5
  %2799 = load i32, ptr %23, align 4, !tbaa !16
  %2800 = sext i32 %2799 to i64
  %2801 = getelementptr inbounds i8, ptr %2798, i64 %2800
  store i8 %2788, ptr %2801, align 1, !tbaa !20
  br label %2802

2802:                                             ; preds = %2786, %2772
  br label %2803

2803:                                             ; preds = %2802, %2755
  call void @llvm.lifetime.end.p0(i64 4, ptr %53) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %54) #3
  %2804 = load ptr, ptr %20, align 8, !tbaa !5
  %2805 = load i32, ptr %22, align 4, !tbaa !16
  %2806 = sext i32 %2805 to i64
  %2807 = getelementptr inbounds ptr, ptr %2804, i64 %2806
  %2808 = load ptr, ptr %2807, align 8, !tbaa !5
  %2809 = load i32, ptr %23, align 4, !tbaa !16
  %2810 = sext i32 %2809 to i64
  %2811 = getelementptr inbounds i8, ptr %2808, i64 %2810
  %2812 = load i8, ptr %2811, align 1, !tbaa !20
  %2813 = zext i8 %2812 to i64
  %2814 = getelementptr inbounds [256 x i32], ptr %16, i64 0, i64 %2813
  %2815 = load i32, ptr %2814, align 4, !tbaa !16
  %2816 = load ptr, ptr %21, align 8, !tbaa !5
  %2817 = load i32, ptr %22, align 4, !tbaa !16
  %2818 = sext i32 %2817 to i64
  %2819 = getelementptr inbounds ptr, ptr %2816, i64 %2818
  %2820 = load ptr, ptr %2819, align 8, !tbaa !5
  %2821 = load i32, ptr %23, align 4, !tbaa !16
  %2822 = sext i32 %2821 to i64
  %2823 = getelementptr inbounds i8, ptr %2820, i64 %2822
  %2824 = load i8, ptr %2823, align 1, !tbaa !20
  %2825 = zext i8 %2824 to i64
  %2826 = getelementptr inbounds [256 x i32], ptr %17, i64 0, i64 %2825
  %2827 = load i32, ptr %2826, align 4, !tbaa !16
  %2828 = add nsw i32 %2815, %2827
  store i32 %2828, ptr %54, align 4, !tbaa !16
  %2829 = load i32, ptr %54, align 4, !tbaa !16
  %2830 = icmp slt i32 %2829, 0
  br i1 %2830, label %2831, label %2845

2831:                                             ; preds = %2803
  %2832 = load ptr, ptr %8, align 8, !tbaa !5
  %2833 = getelementptr inbounds %struct.MImage, ptr %2832, i32 0, i32 3
  %2834 = load i32, ptr %19, align 4, !tbaa !16
  %2835 = sext i32 %2834 to i64
  %2836 = getelementptr inbounds [4 x ptr], ptr %2833, i64 0, i64 %2835
  %2837 = load ptr, ptr %2836, align 8, !tbaa !5
  %2838 = load i32, ptr %22, align 4, !tbaa !16
  %2839 = sext i32 %2838 to i64
  %2840 = getelementptr inbounds ptr, ptr %2837, i64 %2839
  %2841 = load ptr, ptr %2840, align 8, !tbaa !5
  %2842 = load i32, ptr %23, align 4, !tbaa !16
  %2843 = sext i32 %2842 to i64
  %2844 = getelementptr inbounds i8, ptr %2841, i64 %2843
  store i8 0, ptr %2844, align 1, !tbaa !20
  br label %2879

2845:                                             ; preds = %2803
  %2846 = load i32, ptr %54, align 4, !tbaa !16
  %2847 = icmp sgt i32 %2846, 255
  br i1 %2847, label %2848, label %2862

2848:                                             ; preds = %2845
  %2849 = load ptr, ptr %8, align 8, !tbaa !5
  %2850 = getelementptr inbounds %struct.MImage, ptr %2849, i32 0, i32 3
  %2851 = load i32, ptr %19, align 4, !tbaa !16
  %2852 = sext i32 %2851 to i64
  %2853 = getelementptr inbounds [4 x ptr], ptr %2850, i64 0, i64 %2852
  %2854 = load ptr, ptr %2853, align 8, !tbaa !5
  %2855 = load i32, ptr %22, align 4, !tbaa !16
  %2856 = sext i32 %2855 to i64
  %2857 = getelementptr inbounds ptr, ptr %2854, i64 %2856
  %2858 = load ptr, ptr %2857, align 8, !tbaa !5
  %2859 = load i32, ptr %23, align 4, !tbaa !16
  %2860 = sext i32 %2859 to i64
  %2861 = getelementptr inbounds i8, ptr %2858, i64 %2860
  store i8 -1, ptr %2861, align 1, !tbaa !20
  br label %2878

2862:                                             ; preds = %2845
  %2863 = load i32, ptr %54, align 4, !tbaa !16
  %2864 = trunc i32 %2863 to i8
  %2865 = load ptr, ptr %8, align 8, !tbaa !5
  %2866 = getelementptr inbounds %struct.MImage, ptr %2865, i32 0, i32 3
  %2867 = load i32, ptr %19, align 4, !tbaa !16
  %2868 = sext i32 %2867 to i64
  %2869 = getelementptr inbounds [4 x ptr], ptr %2866, i64 0, i64 %2868
  %2870 = load ptr, ptr %2869, align 8, !tbaa !5
  %2871 = load i32, ptr %22, align 4, !tbaa !16
  %2872 = sext i32 %2871 to i64
  %2873 = getelementptr inbounds ptr, ptr %2870, i64 %2872
  %2874 = load ptr, ptr %2873, align 8, !tbaa !5
  %2875 = load i32, ptr %23, align 4, !tbaa !16
  %2876 = sext i32 %2875 to i64
  %2877 = getelementptr inbounds i8, ptr %2874, i64 %2876
  store i8 %2864, ptr %2877, align 1, !tbaa !20
  br label %2878

2878:                                             ; preds = %2862, %2848
  br label %2879

2879:                                             ; preds = %2878, %2831
  call void @llvm.lifetime.end.p0(i64 4, ptr %54) #3
  br label %10950

2880:                                             ; preds = %2492
  %2881 = load ptr, ptr %8, align 8, !tbaa !5
  %2882 = getelementptr inbounds %struct.MImage, ptr %2881, i32 0, i32 2
  %2883 = load i32, ptr %2882, align 8, !tbaa !15
  %2884 = load i32, ptr %23, align 4, !tbaa !16
  %2885 = sub nsw i32 %2883, %2884
  %2886 = icmp eq i32 %2885, 6
  br i1 %2886, label %2887, label %3344

2887:                                             ; preds = %2880
  call void @llvm.lifetime.start.p0(i64 4, ptr %55) #3
  %2888 = load ptr, ptr %20, align 8, !tbaa !5
  %2889 = load i32, ptr %22, align 4, !tbaa !16
  %2890 = sext i32 %2889 to i64
  %2891 = getelementptr inbounds ptr, ptr %2888, i64 %2890
  %2892 = load ptr, ptr %2891, align 8, !tbaa !5
  %2893 = load i32, ptr %23, align 4, !tbaa !16
  %2894 = sext i32 %2893 to i64
  %2895 = getelementptr inbounds i8, ptr %2892, i64 %2894
  %2896 = load i8, ptr %2895, align 1, !tbaa !20
  %2897 = zext i8 %2896 to i64
  %2898 = getelementptr inbounds [256 x i32], ptr %16, i64 0, i64 %2897
  %2899 = load i32, ptr %2898, align 4, !tbaa !16
  %2900 = load ptr, ptr %21, align 8, !tbaa !5
  %2901 = load i32, ptr %22, align 4, !tbaa !16
  %2902 = sext i32 %2901 to i64
  %2903 = getelementptr inbounds ptr, ptr %2900, i64 %2902
  %2904 = load ptr, ptr %2903, align 8, !tbaa !5
  %2905 = load i32, ptr %23, align 4, !tbaa !16
  %2906 = sext i32 %2905 to i64
  %2907 = getelementptr inbounds i8, ptr %2904, i64 %2906
  %2908 = load i8, ptr %2907, align 1, !tbaa !20
  %2909 = zext i8 %2908 to i64
  %2910 = getelementptr inbounds [256 x i32], ptr %17, i64 0, i64 %2909
  %2911 = load i32, ptr %2910, align 4, !tbaa !16
  %2912 = add nsw i32 %2899, %2911
  store i32 %2912, ptr %55, align 4, !tbaa !16
  %2913 = load i32, ptr %55, align 4, !tbaa !16
  %2914 = icmp slt i32 %2913, 0
  br i1 %2914, label %2915, label %2929

2915:                                             ; preds = %2887
  %2916 = load ptr, ptr %8, align 8, !tbaa !5
  %2917 = getelementptr inbounds %struct.MImage, ptr %2916, i32 0, i32 3
  %2918 = load i32, ptr %19, align 4, !tbaa !16
  %2919 = sext i32 %2918 to i64
  %2920 = getelementptr inbounds [4 x ptr], ptr %2917, i64 0, i64 %2919
  %2921 = load ptr, ptr %2920, align 8, !tbaa !5
  %2922 = load i32, ptr %22, align 4, !tbaa !16
  %2923 = sext i32 %2922 to i64
  %2924 = getelementptr inbounds ptr, ptr %2921, i64 %2923
  %2925 = load ptr, ptr %2924, align 8, !tbaa !5
  %2926 = load i32, ptr %23, align 4, !tbaa !16
  %2927 = sext i32 %2926 to i64
  %2928 = getelementptr inbounds i8, ptr %2925, i64 %2927
  store i8 0, ptr %2928, align 1, !tbaa !20
  br label %2963

2929:                                             ; preds = %2887
  %2930 = load i32, ptr %55, align 4, !tbaa !16
  %2931 = icmp sgt i32 %2930, 255
  br i1 %2931, label %2932, label %2946

2932:                                             ; preds = %2929
  %2933 = load ptr, ptr %8, align 8, !tbaa !5
  %2934 = getelementptr inbounds %struct.MImage, ptr %2933, i32 0, i32 3
  %2935 = load i32, ptr %19, align 4, !tbaa !16
  %2936 = sext i32 %2935 to i64
  %2937 = getelementptr inbounds [4 x ptr], ptr %2934, i64 0, i64 %2936
  %2938 = load ptr, ptr %2937, align 8, !tbaa !5
  %2939 = load i32, ptr %22, align 4, !tbaa !16
  %2940 = sext i32 %2939 to i64
  %2941 = getelementptr inbounds ptr, ptr %2938, i64 %2940
  %2942 = load ptr, ptr %2941, align 8, !tbaa !5
  %2943 = load i32, ptr %23, align 4, !tbaa !16
  %2944 = sext i32 %2943 to i64
  %2945 = getelementptr inbounds i8, ptr %2942, i64 %2944
  store i8 -1, ptr %2945, align 1, !tbaa !20
  br label %2962

2946:                                             ; preds = %2929
  %2947 = load i32, ptr %55, align 4, !tbaa !16
  %2948 = trunc i32 %2947 to i8
  %2949 = load ptr, ptr %8, align 8, !tbaa !5
  %2950 = getelementptr inbounds %struct.MImage, ptr %2949, i32 0, i32 3
  %2951 = load i32, ptr %19, align 4, !tbaa !16
  %2952 = sext i32 %2951 to i64
  %2953 = getelementptr inbounds [4 x ptr], ptr %2950, i64 0, i64 %2952
  %2954 = load ptr, ptr %2953, align 8, !tbaa !5
  %2955 = load i32, ptr %22, align 4, !tbaa !16
  %2956 = sext i32 %2955 to i64
  %2957 = getelementptr inbounds ptr, ptr %2954, i64 %2956
  %2958 = load ptr, ptr %2957, align 8, !tbaa !5
  %2959 = load i32, ptr %23, align 4, !tbaa !16
  %2960 = sext i32 %2959 to i64
  %2961 = getelementptr inbounds i8, ptr %2958, i64 %2960
  store i8 %2948, ptr %2961, align 1, !tbaa !20
  br label %2962

2962:                                             ; preds = %2946, %2932
  br label %2963

2963:                                             ; preds = %2962, %2915
  call void @llvm.lifetime.end.p0(i64 4, ptr %55) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %56) #3
  %2964 = load ptr, ptr %20, align 8, !tbaa !5
  %2965 = load i32, ptr %22, align 4, !tbaa !16
  %2966 = sext i32 %2965 to i64
  %2967 = getelementptr inbounds ptr, ptr %2964, i64 %2966
  %2968 = load ptr, ptr %2967, align 8, !tbaa !5
  %2969 = load i32, ptr %23, align 4, !tbaa !16
  %2970 = sext i32 %2969 to i64
  %2971 = getelementptr inbounds i8, ptr %2968, i64 %2970
  %2972 = load i8, ptr %2971, align 1, !tbaa !20
  %2973 = zext i8 %2972 to i64
  %2974 = getelementptr inbounds [256 x i32], ptr %16, i64 0, i64 %2973
  %2975 = load i32, ptr %2974, align 4, !tbaa !16
  %2976 = load ptr, ptr %21, align 8, !tbaa !5
  %2977 = load i32, ptr %22, align 4, !tbaa !16
  %2978 = sext i32 %2977 to i64
  %2979 = getelementptr inbounds ptr, ptr %2976, i64 %2978
  %2980 = load ptr, ptr %2979, align 8, !tbaa !5
  %2981 = load i32, ptr %23, align 4, !tbaa !16
  %2982 = sext i32 %2981 to i64
  %2983 = getelementptr inbounds i8, ptr %2980, i64 %2982
  %2984 = load i8, ptr %2983, align 1, !tbaa !20
  %2985 = zext i8 %2984 to i64
  %2986 = getelementptr inbounds [256 x i32], ptr %17, i64 0, i64 %2985
  %2987 = load i32, ptr %2986, align 4, !tbaa !16
  %2988 = add nsw i32 %2975, %2987
  store i32 %2988, ptr %56, align 4, !tbaa !16
  %2989 = load i32, ptr %56, align 4, !tbaa !16
  %2990 = icmp slt i32 %2989, 0
  br i1 %2990, label %2991, label %3005

2991:                                             ; preds = %2963
  %2992 = load ptr, ptr %8, align 8, !tbaa !5
  %2993 = getelementptr inbounds %struct.MImage, ptr %2992, i32 0, i32 3
  %2994 = load i32, ptr %19, align 4, !tbaa !16
  %2995 = sext i32 %2994 to i64
  %2996 = getelementptr inbounds [4 x ptr], ptr %2993, i64 0, i64 %2995
  %2997 = load ptr, ptr %2996, align 8, !tbaa !5
  %2998 = load i32, ptr %22, align 4, !tbaa !16
  %2999 = sext i32 %2998 to i64
  %3000 = getelementptr inbounds ptr, ptr %2997, i64 %2999
  %3001 = load ptr, ptr %3000, align 8, !tbaa !5
  %3002 = load i32, ptr %23, align 4, !tbaa !16
  %3003 = sext i32 %3002 to i64
  %3004 = getelementptr inbounds i8, ptr %3001, i64 %3003
  store i8 0, ptr %3004, align 1, !tbaa !20
  br label %3039

3005:                                             ; preds = %2963
  %3006 = load i32, ptr %56, align 4, !tbaa !16
  %3007 = icmp sgt i32 %3006, 255
  br i1 %3007, label %3008, label %3022

3008:                                             ; preds = %3005
  %3009 = load ptr, ptr %8, align 8, !tbaa !5
  %3010 = getelementptr inbounds %struct.MImage, ptr %3009, i32 0, i32 3
  %3011 = load i32, ptr %19, align 4, !tbaa !16
  %3012 = sext i32 %3011 to i64
  %3013 = getelementptr inbounds [4 x ptr], ptr %3010, i64 0, i64 %3012
  %3014 = load ptr, ptr %3013, align 8, !tbaa !5
  %3015 = load i32, ptr %22, align 4, !tbaa !16
  %3016 = sext i32 %3015 to i64
  %3017 = getelementptr inbounds ptr, ptr %3014, i64 %3016
  %3018 = load ptr, ptr %3017, align 8, !tbaa !5
  %3019 = load i32, ptr %23, align 4, !tbaa !16
  %3020 = sext i32 %3019 to i64
  %3021 = getelementptr inbounds i8, ptr %3018, i64 %3020
  store i8 -1, ptr %3021, align 1, !tbaa !20
  br label %3038

3022:                                             ; preds = %3005
  %3023 = load i32, ptr %56, align 4, !tbaa !16
  %3024 = trunc i32 %3023 to i8
  %3025 = load ptr, ptr %8, align 8, !tbaa !5
  %3026 = getelementptr inbounds %struct.MImage, ptr %3025, i32 0, i32 3
  %3027 = load i32, ptr %19, align 4, !tbaa !16
  %3028 = sext i32 %3027 to i64
  %3029 = getelementptr inbounds [4 x ptr], ptr %3026, i64 0, i64 %3028
  %3030 = load ptr, ptr %3029, align 8, !tbaa !5
  %3031 = load i32, ptr %22, align 4, !tbaa !16
  %3032 = sext i32 %3031 to i64
  %3033 = getelementptr inbounds ptr, ptr %3030, i64 %3032
  %3034 = load ptr, ptr %3033, align 8, !tbaa !5
  %3035 = load i32, ptr %23, align 4, !tbaa !16
  %3036 = sext i32 %3035 to i64
  %3037 = getelementptr inbounds i8, ptr %3034, i64 %3036
  store i8 %3024, ptr %3037, align 1, !tbaa !20
  br label %3038

3038:                                             ; preds = %3022, %3008
  br label %3039

3039:                                             ; preds = %3038, %2991
  call void @llvm.lifetime.end.p0(i64 4, ptr %56) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %57) #3
  %3040 = load ptr, ptr %20, align 8, !tbaa !5
  %3041 = load i32, ptr %22, align 4, !tbaa !16
  %3042 = sext i32 %3041 to i64
  %3043 = getelementptr inbounds ptr, ptr %3040, i64 %3042
  %3044 = load ptr, ptr %3043, align 8, !tbaa !5
  %3045 = load i32, ptr %23, align 4, !tbaa !16
  %3046 = sext i32 %3045 to i64
  %3047 = getelementptr inbounds i8, ptr %3044, i64 %3046
  %3048 = load i8, ptr %3047, align 1, !tbaa !20
  %3049 = zext i8 %3048 to i64
  %3050 = getelementptr inbounds [256 x i32], ptr %16, i64 0, i64 %3049
  %3051 = load i32, ptr %3050, align 4, !tbaa !16
  %3052 = load ptr, ptr %21, align 8, !tbaa !5
  %3053 = load i32, ptr %22, align 4, !tbaa !16
  %3054 = sext i32 %3053 to i64
  %3055 = getelementptr inbounds ptr, ptr %3052, i64 %3054
  %3056 = load ptr, ptr %3055, align 8, !tbaa !5
  %3057 = load i32, ptr %23, align 4, !tbaa !16
  %3058 = sext i32 %3057 to i64
  %3059 = getelementptr inbounds i8, ptr %3056, i64 %3058
  %3060 = load i8, ptr %3059, align 1, !tbaa !20
  %3061 = zext i8 %3060 to i64
  %3062 = getelementptr inbounds [256 x i32], ptr %17, i64 0, i64 %3061
  %3063 = load i32, ptr %3062, align 4, !tbaa !16
  %3064 = add nsw i32 %3051, %3063
  store i32 %3064, ptr %57, align 4, !tbaa !16
  %3065 = load i32, ptr %57, align 4, !tbaa !16
  %3066 = icmp slt i32 %3065, 0
  br i1 %3066, label %3067, label %3081

3067:                                             ; preds = %3039
  %3068 = load ptr, ptr %8, align 8, !tbaa !5
  %3069 = getelementptr inbounds %struct.MImage, ptr %3068, i32 0, i32 3
  %3070 = load i32, ptr %19, align 4, !tbaa !16
  %3071 = sext i32 %3070 to i64
  %3072 = getelementptr inbounds [4 x ptr], ptr %3069, i64 0, i64 %3071
  %3073 = load ptr, ptr %3072, align 8, !tbaa !5
  %3074 = load i32, ptr %22, align 4, !tbaa !16
  %3075 = sext i32 %3074 to i64
  %3076 = getelementptr inbounds ptr, ptr %3073, i64 %3075
  %3077 = load ptr, ptr %3076, align 8, !tbaa !5
  %3078 = load i32, ptr %23, align 4, !tbaa !16
  %3079 = sext i32 %3078 to i64
  %3080 = getelementptr inbounds i8, ptr %3077, i64 %3079
  store i8 0, ptr %3080, align 1, !tbaa !20
  br label %3115

3081:                                             ; preds = %3039
  %3082 = load i32, ptr %57, align 4, !tbaa !16
  %3083 = icmp sgt i32 %3082, 255
  br i1 %3083, label %3084, label %3098

3084:                                             ; preds = %3081
  %3085 = load ptr, ptr %8, align 8, !tbaa !5
  %3086 = getelementptr inbounds %struct.MImage, ptr %3085, i32 0, i32 3
  %3087 = load i32, ptr %19, align 4, !tbaa !16
  %3088 = sext i32 %3087 to i64
  %3089 = getelementptr inbounds [4 x ptr], ptr %3086, i64 0, i64 %3088
  %3090 = load ptr, ptr %3089, align 8, !tbaa !5
  %3091 = load i32, ptr %22, align 4, !tbaa !16
  %3092 = sext i32 %3091 to i64
  %3093 = getelementptr inbounds ptr, ptr %3090, i64 %3092
  %3094 = load ptr, ptr %3093, align 8, !tbaa !5
  %3095 = load i32, ptr %23, align 4, !tbaa !16
  %3096 = sext i32 %3095 to i64
  %3097 = getelementptr inbounds i8, ptr %3094, i64 %3096
  store i8 -1, ptr %3097, align 1, !tbaa !20
  br label %3114

3098:                                             ; preds = %3081
  %3099 = load i32, ptr %57, align 4, !tbaa !16
  %3100 = trunc i32 %3099 to i8
  %3101 = load ptr, ptr %8, align 8, !tbaa !5
  %3102 = getelementptr inbounds %struct.MImage, ptr %3101, i32 0, i32 3
  %3103 = load i32, ptr %19, align 4, !tbaa !16
  %3104 = sext i32 %3103 to i64
  %3105 = getelementptr inbounds [4 x ptr], ptr %3102, i64 0, i64 %3104
  %3106 = load ptr, ptr %3105, align 8, !tbaa !5
  %3107 = load i32, ptr %22, align 4, !tbaa !16
  %3108 = sext i32 %3107 to i64
  %3109 = getelementptr inbounds ptr, ptr %3106, i64 %3108
  %3110 = load ptr, ptr %3109, align 8, !tbaa !5
  %3111 = load i32, ptr %23, align 4, !tbaa !16
  %3112 = sext i32 %3111 to i64
  %3113 = getelementptr inbounds i8, ptr %3110, i64 %3112
  store i8 %3100, ptr %3113, align 1, !tbaa !20
  br label %3114

3114:                                             ; preds = %3098, %3084
  br label %3115

3115:                                             ; preds = %3114, %3067
  call void @llvm.lifetime.end.p0(i64 4, ptr %57) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %58) #3
  %3116 = load ptr, ptr %20, align 8, !tbaa !5
  %3117 = load i32, ptr %22, align 4, !tbaa !16
  %3118 = sext i32 %3117 to i64
  %3119 = getelementptr inbounds ptr, ptr %3116, i64 %3118
  %3120 = load ptr, ptr %3119, align 8, !tbaa !5
  %3121 = load i32, ptr %23, align 4, !tbaa !16
  %3122 = sext i32 %3121 to i64
  %3123 = getelementptr inbounds i8, ptr %3120, i64 %3122
  %3124 = load i8, ptr %3123, align 1, !tbaa !20
  %3125 = zext i8 %3124 to i64
  %3126 = getelementptr inbounds [256 x i32], ptr %16, i64 0, i64 %3125
  %3127 = load i32, ptr %3126, align 4, !tbaa !16
  %3128 = load ptr, ptr %21, align 8, !tbaa !5
  %3129 = load i32, ptr %22, align 4, !tbaa !16
  %3130 = sext i32 %3129 to i64
  %3131 = getelementptr inbounds ptr, ptr %3128, i64 %3130
  %3132 = load ptr, ptr %3131, align 8, !tbaa !5
  %3133 = load i32, ptr %23, align 4, !tbaa !16
  %3134 = sext i32 %3133 to i64
  %3135 = getelementptr inbounds i8, ptr %3132, i64 %3134
  %3136 = load i8, ptr %3135, align 1, !tbaa !20
  %3137 = zext i8 %3136 to i64
  %3138 = getelementptr inbounds [256 x i32], ptr %17, i64 0, i64 %3137
  %3139 = load i32, ptr %3138, align 4, !tbaa !16
  %3140 = add nsw i32 %3127, %3139
  store i32 %3140, ptr %58, align 4, !tbaa !16
  %3141 = load i32, ptr %58, align 4, !tbaa !16
  %3142 = icmp slt i32 %3141, 0
  br i1 %3142, label %3143, label %3157

3143:                                             ; preds = %3115
  %3144 = load ptr, ptr %8, align 8, !tbaa !5
  %3145 = getelementptr inbounds %struct.MImage, ptr %3144, i32 0, i32 3
  %3146 = load i32, ptr %19, align 4, !tbaa !16
  %3147 = sext i32 %3146 to i64
  %3148 = getelementptr inbounds [4 x ptr], ptr %3145, i64 0, i64 %3147
  %3149 = load ptr, ptr %3148, align 8, !tbaa !5
  %3150 = load i32, ptr %22, align 4, !tbaa !16
  %3151 = sext i32 %3150 to i64
  %3152 = getelementptr inbounds ptr, ptr %3149, i64 %3151
  %3153 = load ptr, ptr %3152, align 8, !tbaa !5
  %3154 = load i32, ptr %23, align 4, !tbaa !16
  %3155 = sext i32 %3154 to i64
  %3156 = getelementptr inbounds i8, ptr %3153, i64 %3155
  store i8 0, ptr %3156, align 1, !tbaa !20
  br label %3191

3157:                                             ; preds = %3115
  %3158 = load i32, ptr %58, align 4, !tbaa !16
  %3159 = icmp sgt i32 %3158, 255
  br i1 %3159, label %3160, label %3174

3160:                                             ; preds = %3157
  %3161 = load ptr, ptr %8, align 8, !tbaa !5
  %3162 = getelementptr inbounds %struct.MImage, ptr %3161, i32 0, i32 3
  %3163 = load i32, ptr %19, align 4, !tbaa !16
  %3164 = sext i32 %3163 to i64
  %3165 = getelementptr inbounds [4 x ptr], ptr %3162, i64 0, i64 %3164
  %3166 = load ptr, ptr %3165, align 8, !tbaa !5
  %3167 = load i32, ptr %22, align 4, !tbaa !16
  %3168 = sext i32 %3167 to i64
  %3169 = getelementptr inbounds ptr, ptr %3166, i64 %3168
  %3170 = load ptr, ptr %3169, align 8, !tbaa !5
  %3171 = load i32, ptr %23, align 4, !tbaa !16
  %3172 = sext i32 %3171 to i64
  %3173 = getelementptr inbounds i8, ptr %3170, i64 %3172
  store i8 -1, ptr %3173, align 1, !tbaa !20
  br label %3190

3174:                                             ; preds = %3157
  %3175 = load i32, ptr %58, align 4, !tbaa !16
  %3176 = trunc i32 %3175 to i8
  %3177 = load ptr, ptr %8, align 8, !tbaa !5
  %3178 = getelementptr inbounds %struct.MImage, ptr %3177, i32 0, i32 3
  %3179 = load i32, ptr %19, align 4, !tbaa !16
  %3180 = sext i32 %3179 to i64
  %3181 = getelementptr inbounds [4 x ptr], ptr %3178, i64 0, i64 %3180
  %3182 = load ptr, ptr %3181, align 8, !tbaa !5
  %3183 = load i32, ptr %22, align 4, !tbaa !16
  %3184 = sext i32 %3183 to i64
  %3185 = getelementptr inbounds ptr, ptr %3182, i64 %3184
  %3186 = load ptr, ptr %3185, align 8, !tbaa !5
  %3187 = load i32, ptr %23, align 4, !tbaa !16
  %3188 = sext i32 %3187 to i64
  %3189 = getelementptr inbounds i8, ptr %3186, i64 %3188
  store i8 %3176, ptr %3189, align 1, !tbaa !20
  br label %3190

3190:                                             ; preds = %3174, %3160
  br label %3191

3191:                                             ; preds = %3190, %3143
  call void @llvm.lifetime.end.p0(i64 4, ptr %58) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %59) #3
  %3192 = load ptr, ptr %20, align 8, !tbaa !5
  %3193 = load i32, ptr %22, align 4, !tbaa !16
  %3194 = sext i32 %3193 to i64
  %3195 = getelementptr inbounds ptr, ptr %3192, i64 %3194
  %3196 = load ptr, ptr %3195, align 8, !tbaa !5
  %3197 = load i32, ptr %23, align 4, !tbaa !16
  %3198 = sext i32 %3197 to i64
  %3199 = getelementptr inbounds i8, ptr %3196, i64 %3198
  %3200 = load i8, ptr %3199, align 1, !tbaa !20
  %3201 = zext i8 %3200 to i64
  %3202 = getelementptr inbounds [256 x i32], ptr %16, i64 0, i64 %3201
  %3203 = load i32, ptr %3202, align 4, !tbaa !16
  %3204 = load ptr, ptr %21, align 8, !tbaa !5
  %3205 = load i32, ptr %22, align 4, !tbaa !16
  %3206 = sext i32 %3205 to i64
  %3207 = getelementptr inbounds ptr, ptr %3204, i64 %3206
  %3208 = load ptr, ptr %3207, align 8, !tbaa !5
  %3209 = load i32, ptr %23, align 4, !tbaa !16
  %3210 = sext i32 %3209 to i64
  %3211 = getelementptr inbounds i8, ptr %3208, i64 %3210
  %3212 = load i8, ptr %3211, align 1, !tbaa !20
  %3213 = zext i8 %3212 to i64
  %3214 = getelementptr inbounds [256 x i32], ptr %17, i64 0, i64 %3213
  %3215 = load i32, ptr %3214, align 4, !tbaa !16
  %3216 = add nsw i32 %3203, %3215
  store i32 %3216, ptr %59, align 4, !tbaa !16
  %3217 = load i32, ptr %59, align 4, !tbaa !16
  %3218 = icmp slt i32 %3217, 0
  br i1 %3218, label %3219, label %3233

3219:                                             ; preds = %3191
  %3220 = load ptr, ptr %8, align 8, !tbaa !5
  %3221 = getelementptr inbounds %struct.MImage, ptr %3220, i32 0, i32 3
  %3222 = load i32, ptr %19, align 4, !tbaa !16
  %3223 = sext i32 %3222 to i64
  %3224 = getelementptr inbounds [4 x ptr], ptr %3221, i64 0, i64 %3223
  %3225 = load ptr, ptr %3224, align 8, !tbaa !5
  %3226 = load i32, ptr %22, align 4, !tbaa !16
  %3227 = sext i32 %3226 to i64
  %3228 = getelementptr inbounds ptr, ptr %3225, i64 %3227
  %3229 = load ptr, ptr %3228, align 8, !tbaa !5
  %3230 = load i32, ptr %23, align 4, !tbaa !16
  %3231 = sext i32 %3230 to i64
  %3232 = getelementptr inbounds i8, ptr %3229, i64 %3231
  store i8 0, ptr %3232, align 1, !tbaa !20
  br label %3267

3233:                                             ; preds = %3191
  %3234 = load i32, ptr %59, align 4, !tbaa !16
  %3235 = icmp sgt i32 %3234, 255
  br i1 %3235, label %3236, label %3250

3236:                                             ; preds = %3233
  %3237 = load ptr, ptr %8, align 8, !tbaa !5
  %3238 = getelementptr inbounds %struct.MImage, ptr %3237, i32 0, i32 3
  %3239 = load i32, ptr %19, align 4, !tbaa !16
  %3240 = sext i32 %3239 to i64
  %3241 = getelementptr inbounds [4 x ptr], ptr %3238, i64 0, i64 %3240
  %3242 = load ptr, ptr %3241, align 8, !tbaa !5
  %3243 = load i32, ptr %22, align 4, !tbaa !16
  %3244 = sext i32 %3243 to i64
  %3245 = getelementptr inbounds ptr, ptr %3242, i64 %3244
  %3246 = load ptr, ptr %3245, align 8, !tbaa !5
  %3247 = load i32, ptr %23, align 4, !tbaa !16
  %3248 = sext i32 %3247 to i64
  %3249 = getelementptr inbounds i8, ptr %3246, i64 %3248
  store i8 -1, ptr %3249, align 1, !tbaa !20
  br label %3266

3250:                                             ; preds = %3233
  %3251 = load i32, ptr %59, align 4, !tbaa !16
  %3252 = trunc i32 %3251 to i8
  %3253 = load ptr, ptr %8, align 8, !tbaa !5
  %3254 = getelementptr inbounds %struct.MImage, ptr %3253, i32 0, i32 3
  %3255 = load i32, ptr %19, align 4, !tbaa !16
  %3256 = sext i32 %3255 to i64
  %3257 = getelementptr inbounds [4 x ptr], ptr %3254, i64 0, i64 %3256
  %3258 = load ptr, ptr %3257, align 8, !tbaa !5
  %3259 = load i32, ptr %22, align 4, !tbaa !16
  %3260 = sext i32 %3259 to i64
  %3261 = getelementptr inbounds ptr, ptr %3258, i64 %3260
  %3262 = load ptr, ptr %3261, align 8, !tbaa !5
  %3263 = load i32, ptr %23, align 4, !tbaa !16
  %3264 = sext i32 %3263 to i64
  %3265 = getelementptr inbounds i8, ptr %3262, i64 %3264
  store i8 %3252, ptr %3265, align 1, !tbaa !20
  br label %3266

3266:                                             ; preds = %3250, %3236
  br label %3267

3267:                                             ; preds = %3266, %3219
  call void @llvm.lifetime.end.p0(i64 4, ptr %59) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %60) #3
  %3268 = load ptr, ptr %20, align 8, !tbaa !5
  %3269 = load i32, ptr %22, align 4, !tbaa !16
  %3270 = sext i32 %3269 to i64
  %3271 = getelementptr inbounds ptr, ptr %3268, i64 %3270
  %3272 = load ptr, ptr %3271, align 8, !tbaa !5
  %3273 = load i32, ptr %23, align 4, !tbaa !16
  %3274 = sext i32 %3273 to i64
  %3275 = getelementptr inbounds i8, ptr %3272, i64 %3274
  %3276 = load i8, ptr %3275, align 1, !tbaa !20
  %3277 = zext i8 %3276 to i64
  %3278 = getelementptr inbounds [256 x i32], ptr %16, i64 0, i64 %3277
  %3279 = load i32, ptr %3278, align 4, !tbaa !16
  %3280 = load ptr, ptr %21, align 8, !tbaa !5
  %3281 = load i32, ptr %22, align 4, !tbaa !16
  %3282 = sext i32 %3281 to i64
  %3283 = getelementptr inbounds ptr, ptr %3280, i64 %3282
  %3284 = load ptr, ptr %3283, align 8, !tbaa !5
  %3285 = load i32, ptr %23, align 4, !tbaa !16
  %3286 = sext i32 %3285 to i64
  %3287 = getelementptr inbounds i8, ptr %3284, i64 %3286
  %3288 = load i8, ptr %3287, align 1, !tbaa !20
  %3289 = zext i8 %3288 to i64
  %3290 = getelementptr inbounds [256 x i32], ptr %17, i64 0, i64 %3289
  %3291 = load i32, ptr %3290, align 4, !tbaa !16
  %3292 = add nsw i32 %3279, %3291
  store i32 %3292, ptr %60, align 4, !tbaa !16
  %3293 = load i32, ptr %60, align 4, !tbaa !16
  %3294 = icmp slt i32 %3293, 0
  br i1 %3294, label %3295, label %3309

3295:                                             ; preds = %3267
  %3296 = load ptr, ptr %8, align 8, !tbaa !5
  %3297 = getelementptr inbounds %struct.MImage, ptr %3296, i32 0, i32 3
  %3298 = load i32, ptr %19, align 4, !tbaa !16
  %3299 = sext i32 %3298 to i64
  %3300 = getelementptr inbounds [4 x ptr], ptr %3297, i64 0, i64 %3299
  %3301 = load ptr, ptr %3300, align 8, !tbaa !5
  %3302 = load i32, ptr %22, align 4, !tbaa !16
  %3303 = sext i32 %3302 to i64
  %3304 = getelementptr inbounds ptr, ptr %3301, i64 %3303
  %3305 = load ptr, ptr %3304, align 8, !tbaa !5
  %3306 = load i32, ptr %23, align 4, !tbaa !16
  %3307 = sext i32 %3306 to i64
  %3308 = getelementptr inbounds i8, ptr %3305, i64 %3307
  store i8 0, ptr %3308, align 1, !tbaa !20
  br label %3343

3309:                                             ; preds = %3267
  %3310 = load i32, ptr %60, align 4, !tbaa !16
  %3311 = icmp sgt i32 %3310, 255
  br i1 %3311, label %3312, label %3326

3312:                                             ; preds = %3309
  %3313 = load ptr, ptr %8, align 8, !tbaa !5
  %3314 = getelementptr inbounds %struct.MImage, ptr %3313, i32 0, i32 3
  %3315 = load i32, ptr %19, align 4, !tbaa !16
  %3316 = sext i32 %3315 to i64
  %3317 = getelementptr inbounds [4 x ptr], ptr %3314, i64 0, i64 %3316
  %3318 = load ptr, ptr %3317, align 8, !tbaa !5
  %3319 = load i32, ptr %22, align 4, !tbaa !16
  %3320 = sext i32 %3319 to i64
  %3321 = getelementptr inbounds ptr, ptr %3318, i64 %3320
  %3322 = load ptr, ptr %3321, align 8, !tbaa !5
  %3323 = load i32, ptr %23, align 4, !tbaa !16
  %3324 = sext i32 %3323 to i64
  %3325 = getelementptr inbounds i8, ptr %3322, i64 %3324
  store i8 -1, ptr %3325, align 1, !tbaa !20
  br label %3342

3326:                                             ; preds = %3309
  %3327 = load i32, ptr %60, align 4, !tbaa !16
  %3328 = trunc i32 %3327 to i8
  %3329 = load ptr, ptr %8, align 8, !tbaa !5
  %3330 = getelementptr inbounds %struct.MImage, ptr %3329, i32 0, i32 3
  %3331 = load i32, ptr %19, align 4, !tbaa !16
  %3332 = sext i32 %3331 to i64
  %3333 = getelementptr inbounds [4 x ptr], ptr %3330, i64 0, i64 %3332
  %3334 = load ptr, ptr %3333, align 8, !tbaa !5
  %3335 = load i32, ptr %22, align 4, !tbaa !16
  %3336 = sext i32 %3335 to i64
  %3337 = getelementptr inbounds ptr, ptr %3334, i64 %3336
  %3338 = load ptr, ptr %3337, align 8, !tbaa !5
  %3339 = load i32, ptr %23, align 4, !tbaa !16
  %3340 = sext i32 %3339 to i64
  %3341 = getelementptr inbounds i8, ptr %3338, i64 %3340
  store i8 %3328, ptr %3341, align 1, !tbaa !20
  br label %3342

3342:                                             ; preds = %3326, %3312
  br label %3343

3343:                                             ; preds = %3342, %3295
  call void @llvm.lifetime.end.p0(i64 4, ptr %60) #3
  br label %10949

3344:                                             ; preds = %2880
  %3345 = load ptr, ptr %8, align 8, !tbaa !5
  %3346 = getelementptr inbounds %struct.MImage, ptr %3345, i32 0, i32 2
  %3347 = load i32, ptr %3346, align 8, !tbaa !15
  %3348 = load i32, ptr %23, align 4, !tbaa !16
  %3349 = sub nsw i32 %3347, %3348
  %3350 = icmp eq i32 %3349, 7
  br i1 %3350, label %3351, label %3884

3351:                                             ; preds = %3344
  call void @llvm.lifetime.start.p0(i64 4, ptr %61) #3
  %3352 = load ptr, ptr %20, align 8, !tbaa !5
  %3353 = load i32, ptr %22, align 4, !tbaa !16
  %3354 = sext i32 %3353 to i64
  %3355 = getelementptr inbounds ptr, ptr %3352, i64 %3354
  %3356 = load ptr, ptr %3355, align 8, !tbaa !5
  %3357 = load i32, ptr %23, align 4, !tbaa !16
  %3358 = sext i32 %3357 to i64
  %3359 = getelementptr inbounds i8, ptr %3356, i64 %3358
  %3360 = load i8, ptr %3359, align 1, !tbaa !20
  %3361 = zext i8 %3360 to i64
  %3362 = getelementptr inbounds [256 x i32], ptr %16, i64 0, i64 %3361
  %3363 = load i32, ptr %3362, align 4, !tbaa !16
  %3364 = load ptr, ptr %21, align 8, !tbaa !5
  %3365 = load i32, ptr %22, align 4, !tbaa !16
  %3366 = sext i32 %3365 to i64
  %3367 = getelementptr inbounds ptr, ptr %3364, i64 %3366
  %3368 = load ptr, ptr %3367, align 8, !tbaa !5
  %3369 = load i32, ptr %23, align 4, !tbaa !16
  %3370 = sext i32 %3369 to i64
  %3371 = getelementptr inbounds i8, ptr %3368, i64 %3370
  %3372 = load i8, ptr %3371, align 1, !tbaa !20
  %3373 = zext i8 %3372 to i64
  %3374 = getelementptr inbounds [256 x i32], ptr %17, i64 0, i64 %3373
  %3375 = load i32, ptr %3374, align 4, !tbaa !16
  %3376 = add nsw i32 %3363, %3375
  store i32 %3376, ptr %61, align 4, !tbaa !16
  %3377 = load i32, ptr %61, align 4, !tbaa !16
  %3378 = icmp slt i32 %3377, 0
  br i1 %3378, label %3379, label %3393

3379:                                             ; preds = %3351
  %3380 = load ptr, ptr %8, align 8, !tbaa !5
  %3381 = getelementptr inbounds %struct.MImage, ptr %3380, i32 0, i32 3
  %3382 = load i32, ptr %19, align 4, !tbaa !16
  %3383 = sext i32 %3382 to i64
  %3384 = getelementptr inbounds [4 x ptr], ptr %3381, i64 0, i64 %3383
  %3385 = load ptr, ptr %3384, align 8, !tbaa !5
  %3386 = load i32, ptr %22, align 4, !tbaa !16
  %3387 = sext i32 %3386 to i64
  %3388 = getelementptr inbounds ptr, ptr %3385, i64 %3387
  %3389 = load ptr, ptr %3388, align 8, !tbaa !5
  %3390 = load i32, ptr %23, align 4, !tbaa !16
  %3391 = sext i32 %3390 to i64
  %3392 = getelementptr inbounds i8, ptr %3389, i64 %3391
  store i8 0, ptr %3392, align 1, !tbaa !20
  br label %3427

3393:                                             ; preds = %3351
  %3394 = load i32, ptr %61, align 4, !tbaa !16
  %3395 = icmp sgt i32 %3394, 255
  br i1 %3395, label %3396, label %3410

3396:                                             ; preds = %3393
  %3397 = load ptr, ptr %8, align 8, !tbaa !5
  %3398 = getelementptr inbounds %struct.MImage, ptr %3397, i32 0, i32 3
  %3399 = load i32, ptr %19, align 4, !tbaa !16
  %3400 = sext i32 %3399 to i64
  %3401 = getelementptr inbounds [4 x ptr], ptr %3398, i64 0, i64 %3400
  %3402 = load ptr, ptr %3401, align 8, !tbaa !5
  %3403 = load i32, ptr %22, align 4, !tbaa !16
  %3404 = sext i32 %3403 to i64
  %3405 = getelementptr inbounds ptr, ptr %3402, i64 %3404
  %3406 = load ptr, ptr %3405, align 8, !tbaa !5
  %3407 = load i32, ptr %23, align 4, !tbaa !16
  %3408 = sext i32 %3407 to i64
  %3409 = getelementptr inbounds i8, ptr %3406, i64 %3408
  store i8 -1, ptr %3409, align 1, !tbaa !20
  br label %3426

3410:                                             ; preds = %3393
  %3411 = load i32, ptr %61, align 4, !tbaa !16
  %3412 = trunc i32 %3411 to i8
  %3413 = load ptr, ptr %8, align 8, !tbaa !5
  %3414 = getelementptr inbounds %struct.MImage, ptr %3413, i32 0, i32 3
  %3415 = load i32, ptr %19, align 4, !tbaa !16
  %3416 = sext i32 %3415 to i64
  %3417 = getelementptr inbounds [4 x ptr], ptr %3414, i64 0, i64 %3416
  %3418 = load ptr, ptr %3417, align 8, !tbaa !5
  %3419 = load i32, ptr %22, align 4, !tbaa !16
  %3420 = sext i32 %3419 to i64
  %3421 = getelementptr inbounds ptr, ptr %3418, i64 %3420
  %3422 = load ptr, ptr %3421, align 8, !tbaa !5
  %3423 = load i32, ptr %23, align 4, !tbaa !16
  %3424 = sext i32 %3423 to i64
  %3425 = getelementptr inbounds i8, ptr %3422, i64 %3424
  store i8 %3412, ptr %3425, align 1, !tbaa !20
  br label %3426

3426:                                             ; preds = %3410, %3396
  br label %3427

3427:                                             ; preds = %3426, %3379
  call void @llvm.lifetime.end.p0(i64 4, ptr %61) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %62) #3
  %3428 = load ptr, ptr %20, align 8, !tbaa !5
  %3429 = load i32, ptr %22, align 4, !tbaa !16
  %3430 = sext i32 %3429 to i64
  %3431 = getelementptr inbounds ptr, ptr %3428, i64 %3430
  %3432 = load ptr, ptr %3431, align 8, !tbaa !5
  %3433 = load i32, ptr %23, align 4, !tbaa !16
  %3434 = sext i32 %3433 to i64
  %3435 = getelementptr inbounds i8, ptr %3432, i64 %3434
  %3436 = load i8, ptr %3435, align 1, !tbaa !20
  %3437 = zext i8 %3436 to i64
  %3438 = getelementptr inbounds [256 x i32], ptr %16, i64 0, i64 %3437
  %3439 = load i32, ptr %3438, align 4, !tbaa !16
  %3440 = load ptr, ptr %21, align 8, !tbaa !5
  %3441 = load i32, ptr %22, align 4, !tbaa !16
  %3442 = sext i32 %3441 to i64
  %3443 = getelementptr inbounds ptr, ptr %3440, i64 %3442
  %3444 = load ptr, ptr %3443, align 8, !tbaa !5
  %3445 = load i32, ptr %23, align 4, !tbaa !16
  %3446 = sext i32 %3445 to i64
  %3447 = getelementptr inbounds i8, ptr %3444, i64 %3446
  %3448 = load i8, ptr %3447, align 1, !tbaa !20
  %3449 = zext i8 %3448 to i64
  %3450 = getelementptr inbounds [256 x i32], ptr %17, i64 0, i64 %3449
  %3451 = load i32, ptr %3450, align 4, !tbaa !16
  %3452 = add nsw i32 %3439, %3451
  store i32 %3452, ptr %62, align 4, !tbaa !16
  %3453 = load i32, ptr %62, align 4, !tbaa !16
  %3454 = icmp slt i32 %3453, 0
  br i1 %3454, label %3455, label %3469

3455:                                             ; preds = %3427
  %3456 = load ptr, ptr %8, align 8, !tbaa !5
  %3457 = getelementptr inbounds %struct.MImage, ptr %3456, i32 0, i32 3
  %3458 = load i32, ptr %19, align 4, !tbaa !16
  %3459 = sext i32 %3458 to i64
  %3460 = getelementptr inbounds [4 x ptr], ptr %3457, i64 0, i64 %3459
  %3461 = load ptr, ptr %3460, align 8, !tbaa !5
  %3462 = load i32, ptr %22, align 4, !tbaa !16
  %3463 = sext i32 %3462 to i64
  %3464 = getelementptr inbounds ptr, ptr %3461, i64 %3463
  %3465 = load ptr, ptr %3464, align 8, !tbaa !5
  %3466 = load i32, ptr %23, align 4, !tbaa !16
  %3467 = sext i32 %3466 to i64
  %3468 = getelementptr inbounds i8, ptr %3465, i64 %3467
  store i8 0, ptr %3468, align 1, !tbaa !20
  br label %3503

3469:                                             ; preds = %3427
  %3470 = load i32, ptr %62, align 4, !tbaa !16
  %3471 = icmp sgt i32 %3470, 255
  br i1 %3471, label %3472, label %3486

3472:                                             ; preds = %3469
  %3473 = load ptr, ptr %8, align 8, !tbaa !5
  %3474 = getelementptr inbounds %struct.MImage, ptr %3473, i32 0, i32 3
  %3475 = load i32, ptr %19, align 4, !tbaa !16
  %3476 = sext i32 %3475 to i64
  %3477 = getelementptr inbounds [4 x ptr], ptr %3474, i64 0, i64 %3476
  %3478 = load ptr, ptr %3477, align 8, !tbaa !5
  %3479 = load i32, ptr %22, align 4, !tbaa !16
  %3480 = sext i32 %3479 to i64
  %3481 = getelementptr inbounds ptr, ptr %3478, i64 %3480
  %3482 = load ptr, ptr %3481, align 8, !tbaa !5
  %3483 = load i32, ptr %23, align 4, !tbaa !16
  %3484 = sext i32 %3483 to i64
  %3485 = getelementptr inbounds i8, ptr %3482, i64 %3484
  store i8 -1, ptr %3485, align 1, !tbaa !20
  br label %3502

3486:                                             ; preds = %3469
  %3487 = load i32, ptr %62, align 4, !tbaa !16
  %3488 = trunc i32 %3487 to i8
  %3489 = load ptr, ptr %8, align 8, !tbaa !5
  %3490 = getelementptr inbounds %struct.MImage, ptr %3489, i32 0, i32 3
  %3491 = load i32, ptr %19, align 4, !tbaa !16
  %3492 = sext i32 %3491 to i64
  %3493 = getelementptr inbounds [4 x ptr], ptr %3490, i64 0, i64 %3492
  %3494 = load ptr, ptr %3493, align 8, !tbaa !5
  %3495 = load i32, ptr %22, align 4, !tbaa !16
  %3496 = sext i32 %3495 to i64
  %3497 = getelementptr inbounds ptr, ptr %3494, i64 %3496
  %3498 = load ptr, ptr %3497, align 8, !tbaa !5
  %3499 = load i32, ptr %23, align 4, !tbaa !16
  %3500 = sext i32 %3499 to i64
  %3501 = getelementptr inbounds i8, ptr %3498, i64 %3500
  store i8 %3488, ptr %3501, align 1, !tbaa !20
  br label %3502

3502:                                             ; preds = %3486, %3472
  br label %3503

3503:                                             ; preds = %3502, %3455
  call void @llvm.lifetime.end.p0(i64 4, ptr %62) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %63) #3
  %3504 = load ptr, ptr %20, align 8, !tbaa !5
  %3505 = load i32, ptr %22, align 4, !tbaa !16
  %3506 = sext i32 %3505 to i64
  %3507 = getelementptr inbounds ptr, ptr %3504, i64 %3506
  %3508 = load ptr, ptr %3507, align 8, !tbaa !5
  %3509 = load i32, ptr %23, align 4, !tbaa !16
  %3510 = sext i32 %3509 to i64
  %3511 = getelementptr inbounds i8, ptr %3508, i64 %3510
  %3512 = load i8, ptr %3511, align 1, !tbaa !20
  %3513 = zext i8 %3512 to i64
  %3514 = getelementptr inbounds [256 x i32], ptr %16, i64 0, i64 %3513
  %3515 = load i32, ptr %3514, align 4, !tbaa !16
  %3516 = load ptr, ptr %21, align 8, !tbaa !5
  %3517 = load i32, ptr %22, align 4, !tbaa !16
  %3518 = sext i32 %3517 to i64
  %3519 = getelementptr inbounds ptr, ptr %3516, i64 %3518
  %3520 = load ptr, ptr %3519, align 8, !tbaa !5
  %3521 = load i32, ptr %23, align 4, !tbaa !16
  %3522 = sext i32 %3521 to i64
  %3523 = getelementptr inbounds i8, ptr %3520, i64 %3522
  %3524 = load i8, ptr %3523, align 1, !tbaa !20
  %3525 = zext i8 %3524 to i64
  %3526 = getelementptr inbounds [256 x i32], ptr %17, i64 0, i64 %3525
  %3527 = load i32, ptr %3526, align 4, !tbaa !16
  %3528 = add nsw i32 %3515, %3527
  store i32 %3528, ptr %63, align 4, !tbaa !16
  %3529 = load i32, ptr %63, align 4, !tbaa !16
  %3530 = icmp slt i32 %3529, 0
  br i1 %3530, label %3531, label %3545

3531:                                             ; preds = %3503
  %3532 = load ptr, ptr %8, align 8, !tbaa !5
  %3533 = getelementptr inbounds %struct.MImage, ptr %3532, i32 0, i32 3
  %3534 = load i32, ptr %19, align 4, !tbaa !16
  %3535 = sext i32 %3534 to i64
  %3536 = getelementptr inbounds [4 x ptr], ptr %3533, i64 0, i64 %3535
  %3537 = load ptr, ptr %3536, align 8, !tbaa !5
  %3538 = load i32, ptr %22, align 4, !tbaa !16
  %3539 = sext i32 %3538 to i64
  %3540 = getelementptr inbounds ptr, ptr %3537, i64 %3539
  %3541 = load ptr, ptr %3540, align 8, !tbaa !5
  %3542 = load i32, ptr %23, align 4, !tbaa !16
  %3543 = sext i32 %3542 to i64
  %3544 = getelementptr inbounds i8, ptr %3541, i64 %3543
  store i8 0, ptr %3544, align 1, !tbaa !20
  br label %3579

3545:                                             ; preds = %3503
  %3546 = load i32, ptr %63, align 4, !tbaa !16
  %3547 = icmp sgt i32 %3546, 255
  br i1 %3547, label %3548, label %3562

3548:                                             ; preds = %3545
  %3549 = load ptr, ptr %8, align 8, !tbaa !5
  %3550 = getelementptr inbounds %struct.MImage, ptr %3549, i32 0, i32 3
  %3551 = load i32, ptr %19, align 4, !tbaa !16
  %3552 = sext i32 %3551 to i64
  %3553 = getelementptr inbounds [4 x ptr], ptr %3550, i64 0, i64 %3552
  %3554 = load ptr, ptr %3553, align 8, !tbaa !5
  %3555 = load i32, ptr %22, align 4, !tbaa !16
  %3556 = sext i32 %3555 to i64
  %3557 = getelementptr inbounds ptr, ptr %3554, i64 %3556
  %3558 = load ptr, ptr %3557, align 8, !tbaa !5
  %3559 = load i32, ptr %23, align 4, !tbaa !16
  %3560 = sext i32 %3559 to i64
  %3561 = getelementptr inbounds i8, ptr %3558, i64 %3560
  store i8 -1, ptr %3561, align 1, !tbaa !20
  br label %3578

3562:                                             ; preds = %3545
  %3563 = load i32, ptr %63, align 4, !tbaa !16
  %3564 = trunc i32 %3563 to i8
  %3565 = load ptr, ptr %8, align 8, !tbaa !5
  %3566 = getelementptr inbounds %struct.MImage, ptr %3565, i32 0, i32 3
  %3567 = load i32, ptr %19, align 4, !tbaa !16
  %3568 = sext i32 %3567 to i64
  %3569 = getelementptr inbounds [4 x ptr], ptr %3566, i64 0, i64 %3568
  %3570 = load ptr, ptr %3569, align 8, !tbaa !5
  %3571 = load i32, ptr %22, align 4, !tbaa !16
  %3572 = sext i32 %3571 to i64
  %3573 = getelementptr inbounds ptr, ptr %3570, i64 %3572
  %3574 = load ptr, ptr %3573, align 8, !tbaa !5
  %3575 = load i32, ptr %23, align 4, !tbaa !16
  %3576 = sext i32 %3575 to i64
  %3577 = getelementptr inbounds i8, ptr %3574, i64 %3576
  store i8 %3564, ptr %3577, align 1, !tbaa !20
  br label %3578

3578:                                             ; preds = %3562, %3548
  br label %3579

3579:                                             ; preds = %3578, %3531
  call void @llvm.lifetime.end.p0(i64 4, ptr %63) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %64) #3
  %3580 = load ptr, ptr %20, align 8, !tbaa !5
  %3581 = load i32, ptr %22, align 4, !tbaa !16
  %3582 = sext i32 %3581 to i64
  %3583 = getelementptr inbounds ptr, ptr %3580, i64 %3582
  %3584 = load ptr, ptr %3583, align 8, !tbaa !5
  %3585 = load i32, ptr %23, align 4, !tbaa !16
  %3586 = sext i32 %3585 to i64
  %3587 = getelementptr inbounds i8, ptr %3584, i64 %3586
  %3588 = load i8, ptr %3587, align 1, !tbaa !20
  %3589 = zext i8 %3588 to i64
  %3590 = getelementptr inbounds [256 x i32], ptr %16, i64 0, i64 %3589
  %3591 = load i32, ptr %3590, align 4, !tbaa !16
  %3592 = load ptr, ptr %21, align 8, !tbaa !5
  %3593 = load i32, ptr %22, align 4, !tbaa !16
  %3594 = sext i32 %3593 to i64
  %3595 = getelementptr inbounds ptr, ptr %3592, i64 %3594
  %3596 = load ptr, ptr %3595, align 8, !tbaa !5
  %3597 = load i32, ptr %23, align 4, !tbaa !16
  %3598 = sext i32 %3597 to i64
  %3599 = getelementptr inbounds i8, ptr %3596, i64 %3598
  %3600 = load i8, ptr %3599, align 1, !tbaa !20
  %3601 = zext i8 %3600 to i64
  %3602 = getelementptr inbounds [256 x i32], ptr %17, i64 0, i64 %3601
  %3603 = load i32, ptr %3602, align 4, !tbaa !16
  %3604 = add nsw i32 %3591, %3603
  store i32 %3604, ptr %64, align 4, !tbaa !16
  %3605 = load i32, ptr %64, align 4, !tbaa !16
  %3606 = icmp slt i32 %3605, 0
  br i1 %3606, label %3607, label %3621

3607:                                             ; preds = %3579
  %3608 = load ptr, ptr %8, align 8, !tbaa !5
  %3609 = getelementptr inbounds %struct.MImage, ptr %3608, i32 0, i32 3
  %3610 = load i32, ptr %19, align 4, !tbaa !16
  %3611 = sext i32 %3610 to i64
  %3612 = getelementptr inbounds [4 x ptr], ptr %3609, i64 0, i64 %3611
  %3613 = load ptr, ptr %3612, align 8, !tbaa !5
  %3614 = load i32, ptr %22, align 4, !tbaa !16
  %3615 = sext i32 %3614 to i64
  %3616 = getelementptr inbounds ptr, ptr %3613, i64 %3615
  %3617 = load ptr, ptr %3616, align 8, !tbaa !5
  %3618 = load i32, ptr %23, align 4, !tbaa !16
  %3619 = sext i32 %3618 to i64
  %3620 = getelementptr inbounds i8, ptr %3617, i64 %3619
  store i8 0, ptr %3620, align 1, !tbaa !20
  br label %3655

3621:                                             ; preds = %3579
  %3622 = load i32, ptr %64, align 4, !tbaa !16
  %3623 = icmp sgt i32 %3622, 255
  br i1 %3623, label %3624, label %3638

3624:                                             ; preds = %3621
  %3625 = load ptr, ptr %8, align 8, !tbaa !5
  %3626 = getelementptr inbounds %struct.MImage, ptr %3625, i32 0, i32 3
  %3627 = load i32, ptr %19, align 4, !tbaa !16
  %3628 = sext i32 %3627 to i64
  %3629 = getelementptr inbounds [4 x ptr], ptr %3626, i64 0, i64 %3628
  %3630 = load ptr, ptr %3629, align 8, !tbaa !5
  %3631 = load i32, ptr %22, align 4, !tbaa !16
  %3632 = sext i32 %3631 to i64
  %3633 = getelementptr inbounds ptr, ptr %3630, i64 %3632
  %3634 = load ptr, ptr %3633, align 8, !tbaa !5
  %3635 = load i32, ptr %23, align 4, !tbaa !16
  %3636 = sext i32 %3635 to i64
  %3637 = getelementptr inbounds i8, ptr %3634, i64 %3636
  store i8 -1, ptr %3637, align 1, !tbaa !20
  br label %3654

3638:                                             ; preds = %3621
  %3639 = load i32, ptr %64, align 4, !tbaa !16
  %3640 = trunc i32 %3639 to i8
  %3641 = load ptr, ptr %8, align 8, !tbaa !5
  %3642 = getelementptr inbounds %struct.MImage, ptr %3641, i32 0, i32 3
  %3643 = load i32, ptr %19, align 4, !tbaa !16
  %3644 = sext i32 %3643 to i64
  %3645 = getelementptr inbounds [4 x ptr], ptr %3642, i64 0, i64 %3644
  %3646 = load ptr, ptr %3645, align 8, !tbaa !5
  %3647 = load i32, ptr %22, align 4, !tbaa !16
  %3648 = sext i32 %3647 to i64
  %3649 = getelementptr inbounds ptr, ptr %3646, i64 %3648
  %3650 = load ptr, ptr %3649, align 8, !tbaa !5
  %3651 = load i32, ptr %23, align 4, !tbaa !16
  %3652 = sext i32 %3651 to i64
  %3653 = getelementptr inbounds i8, ptr %3650, i64 %3652
  store i8 %3640, ptr %3653, align 1, !tbaa !20
  br label %3654

3654:                                             ; preds = %3638, %3624
  br label %3655

3655:                                             ; preds = %3654, %3607
  call void @llvm.lifetime.end.p0(i64 4, ptr %64) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %65) #3
  %3656 = load ptr, ptr %20, align 8, !tbaa !5
  %3657 = load i32, ptr %22, align 4, !tbaa !16
  %3658 = sext i32 %3657 to i64
  %3659 = getelementptr inbounds ptr, ptr %3656, i64 %3658
  %3660 = load ptr, ptr %3659, align 8, !tbaa !5
  %3661 = load i32, ptr %23, align 4, !tbaa !16
  %3662 = sext i32 %3661 to i64
  %3663 = getelementptr inbounds i8, ptr %3660, i64 %3662
  %3664 = load i8, ptr %3663, align 1, !tbaa !20
  %3665 = zext i8 %3664 to i64
  %3666 = getelementptr inbounds [256 x i32], ptr %16, i64 0, i64 %3665
  %3667 = load i32, ptr %3666, align 4, !tbaa !16
  %3668 = load ptr, ptr %21, align 8, !tbaa !5
  %3669 = load i32, ptr %22, align 4, !tbaa !16
  %3670 = sext i32 %3669 to i64
  %3671 = getelementptr inbounds ptr, ptr %3668, i64 %3670
  %3672 = load ptr, ptr %3671, align 8, !tbaa !5
  %3673 = load i32, ptr %23, align 4, !tbaa !16
  %3674 = sext i32 %3673 to i64
  %3675 = getelementptr inbounds i8, ptr %3672, i64 %3674
  %3676 = load i8, ptr %3675, align 1, !tbaa !20
  %3677 = zext i8 %3676 to i64
  %3678 = getelementptr inbounds [256 x i32], ptr %17, i64 0, i64 %3677
  %3679 = load i32, ptr %3678, align 4, !tbaa !16
  %3680 = add nsw i32 %3667, %3679
  store i32 %3680, ptr %65, align 4, !tbaa !16
  %3681 = load i32, ptr %65, align 4, !tbaa !16
  %3682 = icmp slt i32 %3681, 0
  br i1 %3682, label %3683, label %3697

3683:                                             ; preds = %3655
  %3684 = load ptr, ptr %8, align 8, !tbaa !5
  %3685 = getelementptr inbounds %struct.MImage, ptr %3684, i32 0, i32 3
  %3686 = load i32, ptr %19, align 4, !tbaa !16
  %3687 = sext i32 %3686 to i64
  %3688 = getelementptr inbounds [4 x ptr], ptr %3685, i64 0, i64 %3687
  %3689 = load ptr, ptr %3688, align 8, !tbaa !5
  %3690 = load i32, ptr %22, align 4, !tbaa !16
  %3691 = sext i32 %3690 to i64
  %3692 = getelementptr inbounds ptr, ptr %3689, i64 %3691
  %3693 = load ptr, ptr %3692, align 8, !tbaa !5
  %3694 = load i32, ptr %23, align 4, !tbaa !16
  %3695 = sext i32 %3694 to i64
  %3696 = getelementptr inbounds i8, ptr %3693, i64 %3695
  store i8 0, ptr %3696, align 1, !tbaa !20
  br label %3731

3697:                                             ; preds = %3655
  %3698 = load i32, ptr %65, align 4, !tbaa !16
  %3699 = icmp sgt i32 %3698, 255
  br i1 %3699, label %3700, label %3714

3700:                                             ; preds = %3697
  %3701 = load ptr, ptr %8, align 8, !tbaa !5
  %3702 = getelementptr inbounds %struct.MImage, ptr %3701, i32 0, i32 3
  %3703 = load i32, ptr %19, align 4, !tbaa !16
  %3704 = sext i32 %3703 to i64
  %3705 = getelementptr inbounds [4 x ptr], ptr %3702, i64 0, i64 %3704
  %3706 = load ptr, ptr %3705, align 8, !tbaa !5
  %3707 = load i32, ptr %22, align 4, !tbaa !16
  %3708 = sext i32 %3707 to i64
  %3709 = getelementptr inbounds ptr, ptr %3706, i64 %3708
  %3710 = load ptr, ptr %3709, align 8, !tbaa !5
  %3711 = load i32, ptr %23, align 4, !tbaa !16
  %3712 = sext i32 %3711 to i64
  %3713 = getelementptr inbounds i8, ptr %3710, i64 %3712
  store i8 -1, ptr %3713, align 1, !tbaa !20
  br label %3730

3714:                                             ; preds = %3697
  %3715 = load i32, ptr %65, align 4, !tbaa !16
  %3716 = trunc i32 %3715 to i8
  %3717 = load ptr, ptr %8, align 8, !tbaa !5
  %3718 = getelementptr inbounds %struct.MImage, ptr %3717, i32 0, i32 3
  %3719 = load i32, ptr %19, align 4, !tbaa !16
  %3720 = sext i32 %3719 to i64
  %3721 = getelementptr inbounds [4 x ptr], ptr %3718, i64 0, i64 %3720
  %3722 = load ptr, ptr %3721, align 8, !tbaa !5
  %3723 = load i32, ptr %22, align 4, !tbaa !16
  %3724 = sext i32 %3723 to i64
  %3725 = getelementptr inbounds ptr, ptr %3722, i64 %3724
  %3726 = load ptr, ptr %3725, align 8, !tbaa !5
  %3727 = load i32, ptr %23, align 4, !tbaa !16
  %3728 = sext i32 %3727 to i64
  %3729 = getelementptr inbounds i8, ptr %3726, i64 %3728
  store i8 %3716, ptr %3729, align 1, !tbaa !20
  br label %3730

3730:                                             ; preds = %3714, %3700
  br label %3731

3731:                                             ; preds = %3730, %3683
  call void @llvm.lifetime.end.p0(i64 4, ptr %65) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %66) #3
  %3732 = load ptr, ptr %20, align 8, !tbaa !5
  %3733 = load i32, ptr %22, align 4, !tbaa !16
  %3734 = sext i32 %3733 to i64
  %3735 = getelementptr inbounds ptr, ptr %3732, i64 %3734
  %3736 = load ptr, ptr %3735, align 8, !tbaa !5
  %3737 = load i32, ptr %23, align 4, !tbaa !16
  %3738 = sext i32 %3737 to i64
  %3739 = getelementptr inbounds i8, ptr %3736, i64 %3738
  %3740 = load i8, ptr %3739, align 1, !tbaa !20
  %3741 = zext i8 %3740 to i64
  %3742 = getelementptr inbounds [256 x i32], ptr %16, i64 0, i64 %3741
  %3743 = load i32, ptr %3742, align 4, !tbaa !16
  %3744 = load ptr, ptr %21, align 8, !tbaa !5
  %3745 = load i32, ptr %22, align 4, !tbaa !16
  %3746 = sext i32 %3745 to i64
  %3747 = getelementptr inbounds ptr, ptr %3744, i64 %3746
  %3748 = load ptr, ptr %3747, align 8, !tbaa !5
  %3749 = load i32, ptr %23, align 4, !tbaa !16
  %3750 = sext i32 %3749 to i64
  %3751 = getelementptr inbounds i8, ptr %3748, i64 %3750
  %3752 = load i8, ptr %3751, align 1, !tbaa !20
  %3753 = zext i8 %3752 to i64
  %3754 = getelementptr inbounds [256 x i32], ptr %17, i64 0, i64 %3753
  %3755 = load i32, ptr %3754, align 4, !tbaa !16
  %3756 = add nsw i32 %3743, %3755
  store i32 %3756, ptr %66, align 4, !tbaa !16
  %3757 = load i32, ptr %66, align 4, !tbaa !16
  %3758 = icmp slt i32 %3757, 0
  br i1 %3758, label %3759, label %3773

3759:                                             ; preds = %3731
  %3760 = load ptr, ptr %8, align 8, !tbaa !5
  %3761 = getelementptr inbounds %struct.MImage, ptr %3760, i32 0, i32 3
  %3762 = load i32, ptr %19, align 4, !tbaa !16
  %3763 = sext i32 %3762 to i64
  %3764 = getelementptr inbounds [4 x ptr], ptr %3761, i64 0, i64 %3763
  %3765 = load ptr, ptr %3764, align 8, !tbaa !5
  %3766 = load i32, ptr %22, align 4, !tbaa !16
  %3767 = sext i32 %3766 to i64
  %3768 = getelementptr inbounds ptr, ptr %3765, i64 %3767
  %3769 = load ptr, ptr %3768, align 8, !tbaa !5
  %3770 = load i32, ptr %23, align 4, !tbaa !16
  %3771 = sext i32 %3770 to i64
  %3772 = getelementptr inbounds i8, ptr %3769, i64 %3771
  store i8 0, ptr %3772, align 1, !tbaa !20
  br label %3807

3773:                                             ; preds = %3731
  %3774 = load i32, ptr %66, align 4, !tbaa !16
  %3775 = icmp sgt i32 %3774, 255
  br i1 %3775, label %3776, label %3790

3776:                                             ; preds = %3773
  %3777 = load ptr, ptr %8, align 8, !tbaa !5
  %3778 = getelementptr inbounds %struct.MImage, ptr %3777, i32 0, i32 3
  %3779 = load i32, ptr %19, align 4, !tbaa !16
  %3780 = sext i32 %3779 to i64
  %3781 = getelementptr inbounds [4 x ptr], ptr %3778, i64 0, i64 %3780
  %3782 = load ptr, ptr %3781, align 8, !tbaa !5
  %3783 = load i32, ptr %22, align 4, !tbaa !16
  %3784 = sext i32 %3783 to i64
  %3785 = getelementptr inbounds ptr, ptr %3782, i64 %3784
  %3786 = load ptr, ptr %3785, align 8, !tbaa !5
  %3787 = load i32, ptr %23, align 4, !tbaa !16
  %3788 = sext i32 %3787 to i64
  %3789 = getelementptr inbounds i8, ptr %3786, i64 %3788
  store i8 -1, ptr %3789, align 1, !tbaa !20
  br label %3806

3790:                                             ; preds = %3773
  %3791 = load i32, ptr %66, align 4, !tbaa !16
  %3792 = trunc i32 %3791 to i8
  %3793 = load ptr, ptr %8, align 8, !tbaa !5
  %3794 = getelementptr inbounds %struct.MImage, ptr %3793, i32 0, i32 3
  %3795 = load i32, ptr %19, align 4, !tbaa !16
  %3796 = sext i32 %3795 to i64
  %3797 = getelementptr inbounds [4 x ptr], ptr %3794, i64 0, i64 %3796
  %3798 = load ptr, ptr %3797, align 8, !tbaa !5
  %3799 = load i32, ptr %22, align 4, !tbaa !16
  %3800 = sext i32 %3799 to i64
  %3801 = getelementptr inbounds ptr, ptr %3798, i64 %3800
  %3802 = load ptr, ptr %3801, align 8, !tbaa !5
  %3803 = load i32, ptr %23, align 4, !tbaa !16
  %3804 = sext i32 %3803 to i64
  %3805 = getelementptr inbounds i8, ptr %3802, i64 %3804
  store i8 %3792, ptr %3805, align 1, !tbaa !20
  br label %3806

3806:                                             ; preds = %3790, %3776
  br label %3807

3807:                                             ; preds = %3806, %3759
  call void @llvm.lifetime.end.p0(i64 4, ptr %66) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %67) #3
  %3808 = load ptr, ptr %20, align 8, !tbaa !5
  %3809 = load i32, ptr %22, align 4, !tbaa !16
  %3810 = sext i32 %3809 to i64
  %3811 = getelementptr inbounds ptr, ptr %3808, i64 %3810
  %3812 = load ptr, ptr %3811, align 8, !tbaa !5
  %3813 = load i32, ptr %23, align 4, !tbaa !16
  %3814 = sext i32 %3813 to i64
  %3815 = getelementptr inbounds i8, ptr %3812, i64 %3814
  %3816 = load i8, ptr %3815, align 1, !tbaa !20
  %3817 = zext i8 %3816 to i64
  %3818 = getelementptr inbounds [256 x i32], ptr %16, i64 0, i64 %3817
  %3819 = load i32, ptr %3818, align 4, !tbaa !16
  %3820 = load ptr, ptr %21, align 8, !tbaa !5
  %3821 = load i32, ptr %22, align 4, !tbaa !16
  %3822 = sext i32 %3821 to i64
  %3823 = getelementptr inbounds ptr, ptr %3820, i64 %3822
  %3824 = load ptr, ptr %3823, align 8, !tbaa !5
  %3825 = load i32, ptr %23, align 4, !tbaa !16
  %3826 = sext i32 %3825 to i64
  %3827 = getelementptr inbounds i8, ptr %3824, i64 %3826
  %3828 = load i8, ptr %3827, align 1, !tbaa !20
  %3829 = zext i8 %3828 to i64
  %3830 = getelementptr inbounds [256 x i32], ptr %17, i64 0, i64 %3829
  %3831 = load i32, ptr %3830, align 4, !tbaa !16
  %3832 = add nsw i32 %3819, %3831
  store i32 %3832, ptr %67, align 4, !tbaa !16
  %3833 = load i32, ptr %67, align 4, !tbaa !16
  %3834 = icmp slt i32 %3833, 0
  br i1 %3834, label %3835, label %3849

3835:                                             ; preds = %3807
  %3836 = load ptr, ptr %8, align 8, !tbaa !5
  %3837 = getelementptr inbounds %struct.MImage, ptr %3836, i32 0, i32 3
  %3838 = load i32, ptr %19, align 4, !tbaa !16
  %3839 = sext i32 %3838 to i64
  %3840 = getelementptr inbounds [4 x ptr], ptr %3837, i64 0, i64 %3839
  %3841 = load ptr, ptr %3840, align 8, !tbaa !5
  %3842 = load i32, ptr %22, align 4, !tbaa !16
  %3843 = sext i32 %3842 to i64
  %3844 = getelementptr inbounds ptr, ptr %3841, i64 %3843
  %3845 = load ptr, ptr %3844, align 8, !tbaa !5
  %3846 = load i32, ptr %23, align 4, !tbaa !16
  %3847 = sext i32 %3846 to i64
  %3848 = getelementptr inbounds i8, ptr %3845, i64 %3847
  store i8 0, ptr %3848, align 1, !tbaa !20
  br label %3883

3849:                                             ; preds = %3807
  %3850 = load i32, ptr %67, align 4, !tbaa !16
  %3851 = icmp sgt i32 %3850, 255
  br i1 %3851, label %3852, label %3866

3852:                                             ; preds = %3849
  %3853 = load ptr, ptr %8, align 8, !tbaa !5
  %3854 = getelementptr inbounds %struct.MImage, ptr %3853, i32 0, i32 3
  %3855 = load i32, ptr %19, align 4, !tbaa !16
  %3856 = sext i32 %3855 to i64
  %3857 = getelementptr inbounds [4 x ptr], ptr %3854, i64 0, i64 %3856
  %3858 = load ptr, ptr %3857, align 8, !tbaa !5
  %3859 = load i32, ptr %22, align 4, !tbaa !16
  %3860 = sext i32 %3859 to i64
  %3861 = getelementptr inbounds ptr, ptr %3858, i64 %3860
  %3862 = load ptr, ptr %3861, align 8, !tbaa !5
  %3863 = load i32, ptr %23, align 4, !tbaa !16
  %3864 = sext i32 %3863 to i64
  %3865 = getelementptr inbounds i8, ptr %3862, i64 %3864
  store i8 -1, ptr %3865, align 1, !tbaa !20
  br label %3882

3866:                                             ; preds = %3849
  %3867 = load i32, ptr %67, align 4, !tbaa !16
  %3868 = trunc i32 %3867 to i8
  %3869 = load ptr, ptr %8, align 8, !tbaa !5
  %3870 = getelementptr inbounds %struct.MImage, ptr %3869, i32 0, i32 3
  %3871 = load i32, ptr %19, align 4, !tbaa !16
  %3872 = sext i32 %3871 to i64
  %3873 = getelementptr inbounds [4 x ptr], ptr %3870, i64 0, i64 %3872
  %3874 = load ptr, ptr %3873, align 8, !tbaa !5
  %3875 = load i32, ptr %22, align 4, !tbaa !16
  %3876 = sext i32 %3875 to i64
  %3877 = getelementptr inbounds ptr, ptr %3874, i64 %3876
  %3878 = load ptr, ptr %3877, align 8, !tbaa !5
  %3879 = load i32, ptr %23, align 4, !tbaa !16
  %3880 = sext i32 %3879 to i64
  %3881 = getelementptr inbounds i8, ptr %3878, i64 %3880
  store i8 %3868, ptr %3881, align 1, !tbaa !20
  br label %3882

3882:                                             ; preds = %3866, %3852
  br label %3883

3883:                                             ; preds = %3882, %3835
  call void @llvm.lifetime.end.p0(i64 4, ptr %67) #3
  br label %10948

3884:                                             ; preds = %3344
  %3885 = load ptr, ptr %8, align 8, !tbaa !5
  %3886 = getelementptr inbounds %struct.MImage, ptr %3885, i32 0, i32 2
  %3887 = load i32, ptr %3886, align 8, !tbaa !15
  %3888 = load i32, ptr %23, align 4, !tbaa !16
  %3889 = sub nsw i32 %3887, %3888
  %3890 = icmp eq i32 %3889, 8
  br i1 %3890, label %3891, label %4500

3891:                                             ; preds = %3884
  call void @llvm.lifetime.start.p0(i64 4, ptr %68) #3
  %3892 = load ptr, ptr %20, align 8, !tbaa !5
  %3893 = load i32, ptr %22, align 4, !tbaa !16
  %3894 = sext i32 %3893 to i64
  %3895 = getelementptr inbounds ptr, ptr %3892, i64 %3894
  %3896 = load ptr, ptr %3895, align 8, !tbaa !5
  %3897 = load i32, ptr %23, align 4, !tbaa !16
  %3898 = sext i32 %3897 to i64
  %3899 = getelementptr inbounds i8, ptr %3896, i64 %3898
  %3900 = load i8, ptr %3899, align 1, !tbaa !20
  %3901 = zext i8 %3900 to i64
  %3902 = getelementptr inbounds [256 x i32], ptr %16, i64 0, i64 %3901
  %3903 = load i32, ptr %3902, align 4, !tbaa !16
  %3904 = load ptr, ptr %21, align 8, !tbaa !5
  %3905 = load i32, ptr %22, align 4, !tbaa !16
  %3906 = sext i32 %3905 to i64
  %3907 = getelementptr inbounds ptr, ptr %3904, i64 %3906
  %3908 = load ptr, ptr %3907, align 8, !tbaa !5
  %3909 = load i32, ptr %23, align 4, !tbaa !16
  %3910 = sext i32 %3909 to i64
  %3911 = getelementptr inbounds i8, ptr %3908, i64 %3910
  %3912 = load i8, ptr %3911, align 1, !tbaa !20
  %3913 = zext i8 %3912 to i64
  %3914 = getelementptr inbounds [256 x i32], ptr %17, i64 0, i64 %3913
  %3915 = load i32, ptr %3914, align 4, !tbaa !16
  %3916 = add nsw i32 %3903, %3915
  store i32 %3916, ptr %68, align 4, !tbaa !16
  %3917 = load i32, ptr %68, align 4, !tbaa !16
  %3918 = icmp slt i32 %3917, 0
  br i1 %3918, label %3919, label %3933

3919:                                             ; preds = %3891
  %3920 = load ptr, ptr %8, align 8, !tbaa !5
  %3921 = getelementptr inbounds %struct.MImage, ptr %3920, i32 0, i32 3
  %3922 = load i32, ptr %19, align 4, !tbaa !16
  %3923 = sext i32 %3922 to i64
  %3924 = getelementptr inbounds [4 x ptr], ptr %3921, i64 0, i64 %3923
  %3925 = load ptr, ptr %3924, align 8, !tbaa !5
  %3926 = load i32, ptr %22, align 4, !tbaa !16
  %3927 = sext i32 %3926 to i64
  %3928 = getelementptr inbounds ptr, ptr %3925, i64 %3927
  %3929 = load ptr, ptr %3928, align 8, !tbaa !5
  %3930 = load i32, ptr %23, align 4, !tbaa !16
  %3931 = sext i32 %3930 to i64
  %3932 = getelementptr inbounds i8, ptr %3929, i64 %3931
  store i8 0, ptr %3932, align 1, !tbaa !20
  br label %3967

3933:                                             ; preds = %3891
  %3934 = load i32, ptr %68, align 4, !tbaa !16
  %3935 = icmp sgt i32 %3934, 255
  br i1 %3935, label %3936, label %3950

3936:                                             ; preds = %3933
  %3937 = load ptr, ptr %8, align 8, !tbaa !5
  %3938 = getelementptr inbounds %struct.MImage, ptr %3937, i32 0, i32 3
  %3939 = load i32, ptr %19, align 4, !tbaa !16
  %3940 = sext i32 %3939 to i64
  %3941 = getelementptr inbounds [4 x ptr], ptr %3938, i64 0, i64 %3940
  %3942 = load ptr, ptr %3941, align 8, !tbaa !5
  %3943 = load i32, ptr %22, align 4, !tbaa !16
  %3944 = sext i32 %3943 to i64
  %3945 = getelementptr inbounds ptr, ptr %3942, i64 %3944
  %3946 = load ptr, ptr %3945, align 8, !tbaa !5
  %3947 = load i32, ptr %23, align 4, !tbaa !16
  %3948 = sext i32 %3947 to i64
  %3949 = getelementptr inbounds i8, ptr %3946, i64 %3948
  store i8 -1, ptr %3949, align 1, !tbaa !20
  br label %3966

3950:                                             ; preds = %3933
  %3951 = load i32, ptr %68, align 4, !tbaa !16
  %3952 = trunc i32 %3951 to i8
  %3953 = load ptr, ptr %8, align 8, !tbaa !5
  %3954 = getelementptr inbounds %struct.MImage, ptr %3953, i32 0, i32 3
  %3955 = load i32, ptr %19, align 4, !tbaa !16
  %3956 = sext i32 %3955 to i64
  %3957 = getelementptr inbounds [4 x ptr], ptr %3954, i64 0, i64 %3956
  %3958 = load ptr, ptr %3957, align 8, !tbaa !5
  %3959 = load i32, ptr %22, align 4, !tbaa !16
  %3960 = sext i32 %3959 to i64
  %3961 = getelementptr inbounds ptr, ptr %3958, i64 %3960
  %3962 = load ptr, ptr %3961, align 8, !tbaa !5
  %3963 = load i32, ptr %23, align 4, !tbaa !16
  %3964 = sext i32 %3963 to i64
  %3965 = getelementptr inbounds i8, ptr %3962, i64 %3964
  store i8 %3952, ptr %3965, align 1, !tbaa !20
  br label %3966

3966:                                             ; preds = %3950, %3936
  br label %3967

3967:                                             ; preds = %3966, %3919
  call void @llvm.lifetime.end.p0(i64 4, ptr %68) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %69) #3
  %3968 = load ptr, ptr %20, align 8, !tbaa !5
  %3969 = load i32, ptr %22, align 4, !tbaa !16
  %3970 = sext i32 %3969 to i64
  %3971 = getelementptr inbounds ptr, ptr %3968, i64 %3970
  %3972 = load ptr, ptr %3971, align 8, !tbaa !5
  %3973 = load i32, ptr %23, align 4, !tbaa !16
  %3974 = sext i32 %3973 to i64
  %3975 = getelementptr inbounds i8, ptr %3972, i64 %3974
  %3976 = load i8, ptr %3975, align 1, !tbaa !20
  %3977 = zext i8 %3976 to i64
  %3978 = getelementptr inbounds [256 x i32], ptr %16, i64 0, i64 %3977
  %3979 = load i32, ptr %3978, align 4, !tbaa !16
  %3980 = load ptr, ptr %21, align 8, !tbaa !5
  %3981 = load i32, ptr %22, align 4, !tbaa !16
  %3982 = sext i32 %3981 to i64
  %3983 = getelementptr inbounds ptr, ptr %3980, i64 %3982
  %3984 = load ptr, ptr %3983, align 8, !tbaa !5
  %3985 = load i32, ptr %23, align 4, !tbaa !16
  %3986 = sext i32 %3985 to i64
  %3987 = getelementptr inbounds i8, ptr %3984, i64 %3986
  %3988 = load i8, ptr %3987, align 1, !tbaa !20
  %3989 = zext i8 %3988 to i64
  %3990 = getelementptr inbounds [256 x i32], ptr %17, i64 0, i64 %3989
  %3991 = load i32, ptr %3990, align 4, !tbaa !16
  %3992 = add nsw i32 %3979, %3991
  store i32 %3992, ptr %69, align 4, !tbaa !16
  %3993 = load i32, ptr %69, align 4, !tbaa !16
  %3994 = icmp slt i32 %3993, 0
  br i1 %3994, label %3995, label %4009

3995:                                             ; preds = %3967
  %3996 = load ptr, ptr %8, align 8, !tbaa !5
  %3997 = getelementptr inbounds %struct.MImage, ptr %3996, i32 0, i32 3
  %3998 = load i32, ptr %19, align 4, !tbaa !16
  %3999 = sext i32 %3998 to i64
  %4000 = getelementptr inbounds [4 x ptr], ptr %3997, i64 0, i64 %3999
  %4001 = load ptr, ptr %4000, align 8, !tbaa !5
  %4002 = load i32, ptr %22, align 4, !tbaa !16
  %4003 = sext i32 %4002 to i64
  %4004 = getelementptr inbounds ptr, ptr %4001, i64 %4003
  %4005 = load ptr, ptr %4004, align 8, !tbaa !5
  %4006 = load i32, ptr %23, align 4, !tbaa !16
  %4007 = sext i32 %4006 to i64
  %4008 = getelementptr inbounds i8, ptr %4005, i64 %4007
  store i8 0, ptr %4008, align 1, !tbaa !20
  br label %4043

4009:                                             ; preds = %3967
  %4010 = load i32, ptr %69, align 4, !tbaa !16
  %4011 = icmp sgt i32 %4010, 255
  br i1 %4011, label %4012, label %4026

4012:                                             ; preds = %4009
  %4013 = load ptr, ptr %8, align 8, !tbaa !5
  %4014 = getelementptr inbounds %struct.MImage, ptr %4013, i32 0, i32 3
  %4015 = load i32, ptr %19, align 4, !tbaa !16
  %4016 = sext i32 %4015 to i64
  %4017 = getelementptr inbounds [4 x ptr], ptr %4014, i64 0, i64 %4016
  %4018 = load ptr, ptr %4017, align 8, !tbaa !5
  %4019 = load i32, ptr %22, align 4, !tbaa !16
  %4020 = sext i32 %4019 to i64
  %4021 = getelementptr inbounds ptr, ptr %4018, i64 %4020
  %4022 = load ptr, ptr %4021, align 8, !tbaa !5
  %4023 = load i32, ptr %23, align 4, !tbaa !16
  %4024 = sext i32 %4023 to i64
  %4025 = getelementptr inbounds i8, ptr %4022, i64 %4024
  store i8 -1, ptr %4025, align 1, !tbaa !20
  br label %4042

4026:                                             ; preds = %4009
  %4027 = load i32, ptr %69, align 4, !tbaa !16
  %4028 = trunc i32 %4027 to i8
  %4029 = load ptr, ptr %8, align 8, !tbaa !5
  %4030 = getelementptr inbounds %struct.MImage, ptr %4029, i32 0, i32 3
  %4031 = load i32, ptr %19, align 4, !tbaa !16
  %4032 = sext i32 %4031 to i64
  %4033 = getelementptr inbounds [4 x ptr], ptr %4030, i64 0, i64 %4032
  %4034 = load ptr, ptr %4033, align 8, !tbaa !5
  %4035 = load i32, ptr %22, align 4, !tbaa !16
  %4036 = sext i32 %4035 to i64
  %4037 = getelementptr inbounds ptr, ptr %4034, i64 %4036
  %4038 = load ptr, ptr %4037, align 8, !tbaa !5
  %4039 = load i32, ptr %23, align 4, !tbaa !16
  %4040 = sext i32 %4039 to i64
  %4041 = getelementptr inbounds i8, ptr %4038, i64 %4040
  store i8 %4028, ptr %4041, align 1, !tbaa !20
  br label %4042

4042:                                             ; preds = %4026, %4012
  br label %4043

4043:                                             ; preds = %4042, %3995
  call void @llvm.lifetime.end.p0(i64 4, ptr %69) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %70) #3
  %4044 = load ptr, ptr %20, align 8, !tbaa !5
  %4045 = load i32, ptr %22, align 4, !tbaa !16
  %4046 = sext i32 %4045 to i64
  %4047 = getelementptr inbounds ptr, ptr %4044, i64 %4046
  %4048 = load ptr, ptr %4047, align 8, !tbaa !5
  %4049 = load i32, ptr %23, align 4, !tbaa !16
  %4050 = sext i32 %4049 to i64
  %4051 = getelementptr inbounds i8, ptr %4048, i64 %4050
  %4052 = load i8, ptr %4051, align 1, !tbaa !20
  %4053 = zext i8 %4052 to i64
  %4054 = getelementptr inbounds [256 x i32], ptr %16, i64 0, i64 %4053
  %4055 = load i32, ptr %4054, align 4, !tbaa !16
  %4056 = load ptr, ptr %21, align 8, !tbaa !5
  %4057 = load i32, ptr %22, align 4, !tbaa !16
  %4058 = sext i32 %4057 to i64
  %4059 = getelementptr inbounds ptr, ptr %4056, i64 %4058
  %4060 = load ptr, ptr %4059, align 8, !tbaa !5
  %4061 = load i32, ptr %23, align 4, !tbaa !16
  %4062 = sext i32 %4061 to i64
  %4063 = getelementptr inbounds i8, ptr %4060, i64 %4062
  %4064 = load i8, ptr %4063, align 1, !tbaa !20
  %4065 = zext i8 %4064 to i64
  %4066 = getelementptr inbounds [256 x i32], ptr %17, i64 0, i64 %4065
  %4067 = load i32, ptr %4066, align 4, !tbaa !16
  %4068 = add nsw i32 %4055, %4067
  store i32 %4068, ptr %70, align 4, !tbaa !16
  %4069 = load i32, ptr %70, align 4, !tbaa !16
  %4070 = icmp slt i32 %4069, 0
  br i1 %4070, label %4071, label %4085

4071:                                             ; preds = %4043
  %4072 = load ptr, ptr %8, align 8, !tbaa !5
  %4073 = getelementptr inbounds %struct.MImage, ptr %4072, i32 0, i32 3
  %4074 = load i32, ptr %19, align 4, !tbaa !16
  %4075 = sext i32 %4074 to i64
  %4076 = getelementptr inbounds [4 x ptr], ptr %4073, i64 0, i64 %4075
  %4077 = load ptr, ptr %4076, align 8, !tbaa !5
  %4078 = load i32, ptr %22, align 4, !tbaa !16
  %4079 = sext i32 %4078 to i64
  %4080 = getelementptr inbounds ptr, ptr %4077, i64 %4079
  %4081 = load ptr, ptr %4080, align 8, !tbaa !5
  %4082 = load i32, ptr %23, align 4, !tbaa !16
  %4083 = sext i32 %4082 to i64
  %4084 = getelementptr inbounds i8, ptr %4081, i64 %4083
  store i8 0, ptr %4084, align 1, !tbaa !20
  br label %4119

4085:                                             ; preds = %4043
  %4086 = load i32, ptr %70, align 4, !tbaa !16
  %4087 = icmp sgt i32 %4086, 255
  br i1 %4087, label %4088, label %4102

4088:                                             ; preds = %4085
  %4089 = load ptr, ptr %8, align 8, !tbaa !5
  %4090 = getelementptr inbounds %struct.MImage, ptr %4089, i32 0, i32 3
  %4091 = load i32, ptr %19, align 4, !tbaa !16
  %4092 = sext i32 %4091 to i64
  %4093 = getelementptr inbounds [4 x ptr], ptr %4090, i64 0, i64 %4092
  %4094 = load ptr, ptr %4093, align 8, !tbaa !5
  %4095 = load i32, ptr %22, align 4, !tbaa !16
  %4096 = sext i32 %4095 to i64
  %4097 = getelementptr inbounds ptr, ptr %4094, i64 %4096
  %4098 = load ptr, ptr %4097, align 8, !tbaa !5
  %4099 = load i32, ptr %23, align 4, !tbaa !16
  %4100 = sext i32 %4099 to i64
  %4101 = getelementptr inbounds i8, ptr %4098, i64 %4100
  store i8 -1, ptr %4101, align 1, !tbaa !20
  br label %4118

4102:                                             ; preds = %4085
  %4103 = load i32, ptr %70, align 4, !tbaa !16
  %4104 = trunc i32 %4103 to i8
  %4105 = load ptr, ptr %8, align 8, !tbaa !5
  %4106 = getelementptr inbounds %struct.MImage, ptr %4105, i32 0, i32 3
  %4107 = load i32, ptr %19, align 4, !tbaa !16
  %4108 = sext i32 %4107 to i64
  %4109 = getelementptr inbounds [4 x ptr], ptr %4106, i64 0, i64 %4108
  %4110 = load ptr, ptr %4109, align 8, !tbaa !5
  %4111 = load i32, ptr %22, align 4, !tbaa !16
  %4112 = sext i32 %4111 to i64
  %4113 = getelementptr inbounds ptr, ptr %4110, i64 %4112
  %4114 = load ptr, ptr %4113, align 8, !tbaa !5
  %4115 = load i32, ptr %23, align 4, !tbaa !16
  %4116 = sext i32 %4115 to i64
  %4117 = getelementptr inbounds i8, ptr %4114, i64 %4116
  store i8 %4104, ptr %4117, align 1, !tbaa !20
  br label %4118

4118:                                             ; preds = %4102, %4088
  br label %4119

4119:                                             ; preds = %4118, %4071
  call void @llvm.lifetime.end.p0(i64 4, ptr %70) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %71) #3
  %4120 = load ptr, ptr %20, align 8, !tbaa !5
  %4121 = load i32, ptr %22, align 4, !tbaa !16
  %4122 = sext i32 %4121 to i64
  %4123 = getelementptr inbounds ptr, ptr %4120, i64 %4122
  %4124 = load ptr, ptr %4123, align 8, !tbaa !5
  %4125 = load i32, ptr %23, align 4, !tbaa !16
  %4126 = sext i32 %4125 to i64
  %4127 = getelementptr inbounds i8, ptr %4124, i64 %4126
  %4128 = load i8, ptr %4127, align 1, !tbaa !20
  %4129 = zext i8 %4128 to i64
  %4130 = getelementptr inbounds [256 x i32], ptr %16, i64 0, i64 %4129
  %4131 = load i32, ptr %4130, align 4, !tbaa !16
  %4132 = load ptr, ptr %21, align 8, !tbaa !5
  %4133 = load i32, ptr %22, align 4, !tbaa !16
  %4134 = sext i32 %4133 to i64
  %4135 = getelementptr inbounds ptr, ptr %4132, i64 %4134
  %4136 = load ptr, ptr %4135, align 8, !tbaa !5
  %4137 = load i32, ptr %23, align 4, !tbaa !16
  %4138 = sext i32 %4137 to i64
  %4139 = getelementptr inbounds i8, ptr %4136, i64 %4138
  %4140 = load i8, ptr %4139, align 1, !tbaa !20
  %4141 = zext i8 %4140 to i64
  %4142 = getelementptr inbounds [256 x i32], ptr %17, i64 0, i64 %4141
  %4143 = load i32, ptr %4142, align 4, !tbaa !16
  %4144 = add nsw i32 %4131, %4143
  store i32 %4144, ptr %71, align 4, !tbaa !16
  %4145 = load i32, ptr %71, align 4, !tbaa !16
  %4146 = icmp slt i32 %4145, 0
  br i1 %4146, label %4147, label %4161

4147:                                             ; preds = %4119
  %4148 = load ptr, ptr %8, align 8, !tbaa !5
  %4149 = getelementptr inbounds %struct.MImage, ptr %4148, i32 0, i32 3
  %4150 = load i32, ptr %19, align 4, !tbaa !16
  %4151 = sext i32 %4150 to i64
  %4152 = getelementptr inbounds [4 x ptr], ptr %4149, i64 0, i64 %4151
  %4153 = load ptr, ptr %4152, align 8, !tbaa !5
  %4154 = load i32, ptr %22, align 4, !tbaa !16
  %4155 = sext i32 %4154 to i64
  %4156 = getelementptr inbounds ptr, ptr %4153, i64 %4155
  %4157 = load ptr, ptr %4156, align 8, !tbaa !5
  %4158 = load i32, ptr %23, align 4, !tbaa !16
  %4159 = sext i32 %4158 to i64
  %4160 = getelementptr inbounds i8, ptr %4157, i64 %4159
  store i8 0, ptr %4160, align 1, !tbaa !20
  br label %4195

4161:                                             ; preds = %4119
  %4162 = load i32, ptr %71, align 4, !tbaa !16
  %4163 = icmp sgt i32 %4162, 255
  br i1 %4163, label %4164, label %4178

4164:                                             ; preds = %4161
  %4165 = load ptr, ptr %8, align 8, !tbaa !5
  %4166 = getelementptr inbounds %struct.MImage, ptr %4165, i32 0, i32 3
  %4167 = load i32, ptr %19, align 4, !tbaa !16
  %4168 = sext i32 %4167 to i64
  %4169 = getelementptr inbounds [4 x ptr], ptr %4166, i64 0, i64 %4168
  %4170 = load ptr, ptr %4169, align 8, !tbaa !5
  %4171 = load i32, ptr %22, align 4, !tbaa !16
  %4172 = sext i32 %4171 to i64
  %4173 = getelementptr inbounds ptr, ptr %4170, i64 %4172
  %4174 = load ptr, ptr %4173, align 8, !tbaa !5
  %4175 = load i32, ptr %23, align 4, !tbaa !16
  %4176 = sext i32 %4175 to i64
  %4177 = getelementptr inbounds i8, ptr %4174, i64 %4176
  store i8 -1, ptr %4177, align 1, !tbaa !20
  br label %4194

4178:                                             ; preds = %4161
  %4179 = load i32, ptr %71, align 4, !tbaa !16
  %4180 = trunc i32 %4179 to i8
  %4181 = load ptr, ptr %8, align 8, !tbaa !5
  %4182 = getelementptr inbounds %struct.MImage, ptr %4181, i32 0, i32 3
  %4183 = load i32, ptr %19, align 4, !tbaa !16
  %4184 = sext i32 %4183 to i64
  %4185 = getelementptr inbounds [4 x ptr], ptr %4182, i64 0, i64 %4184
  %4186 = load ptr, ptr %4185, align 8, !tbaa !5
  %4187 = load i32, ptr %22, align 4, !tbaa !16
  %4188 = sext i32 %4187 to i64
  %4189 = getelementptr inbounds ptr, ptr %4186, i64 %4188
  %4190 = load ptr, ptr %4189, align 8, !tbaa !5
  %4191 = load i32, ptr %23, align 4, !tbaa !16
  %4192 = sext i32 %4191 to i64
  %4193 = getelementptr inbounds i8, ptr %4190, i64 %4192
  store i8 %4180, ptr %4193, align 1, !tbaa !20
  br label %4194

4194:                                             ; preds = %4178, %4164
  br label %4195

4195:                                             ; preds = %4194, %4147
  call void @llvm.lifetime.end.p0(i64 4, ptr %71) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %72) #3
  %4196 = load ptr, ptr %20, align 8, !tbaa !5
  %4197 = load i32, ptr %22, align 4, !tbaa !16
  %4198 = sext i32 %4197 to i64
  %4199 = getelementptr inbounds ptr, ptr %4196, i64 %4198
  %4200 = load ptr, ptr %4199, align 8, !tbaa !5
  %4201 = load i32, ptr %23, align 4, !tbaa !16
  %4202 = sext i32 %4201 to i64
  %4203 = getelementptr inbounds i8, ptr %4200, i64 %4202
  %4204 = load i8, ptr %4203, align 1, !tbaa !20
  %4205 = zext i8 %4204 to i64
  %4206 = getelementptr inbounds [256 x i32], ptr %16, i64 0, i64 %4205
  %4207 = load i32, ptr %4206, align 4, !tbaa !16
  %4208 = load ptr, ptr %21, align 8, !tbaa !5
  %4209 = load i32, ptr %22, align 4, !tbaa !16
  %4210 = sext i32 %4209 to i64
  %4211 = getelementptr inbounds ptr, ptr %4208, i64 %4210
  %4212 = load ptr, ptr %4211, align 8, !tbaa !5
  %4213 = load i32, ptr %23, align 4, !tbaa !16
  %4214 = sext i32 %4213 to i64
  %4215 = getelementptr inbounds i8, ptr %4212, i64 %4214
  %4216 = load i8, ptr %4215, align 1, !tbaa !20
  %4217 = zext i8 %4216 to i64
  %4218 = getelementptr inbounds [256 x i32], ptr %17, i64 0, i64 %4217
  %4219 = load i32, ptr %4218, align 4, !tbaa !16
  %4220 = add nsw i32 %4207, %4219
  store i32 %4220, ptr %72, align 4, !tbaa !16
  %4221 = load i32, ptr %72, align 4, !tbaa !16
  %4222 = icmp slt i32 %4221, 0
  br i1 %4222, label %4223, label %4237

4223:                                             ; preds = %4195
  %4224 = load ptr, ptr %8, align 8, !tbaa !5
  %4225 = getelementptr inbounds %struct.MImage, ptr %4224, i32 0, i32 3
  %4226 = load i32, ptr %19, align 4, !tbaa !16
  %4227 = sext i32 %4226 to i64
  %4228 = getelementptr inbounds [4 x ptr], ptr %4225, i64 0, i64 %4227
  %4229 = load ptr, ptr %4228, align 8, !tbaa !5
  %4230 = load i32, ptr %22, align 4, !tbaa !16
  %4231 = sext i32 %4230 to i64
  %4232 = getelementptr inbounds ptr, ptr %4229, i64 %4231
  %4233 = load ptr, ptr %4232, align 8, !tbaa !5
  %4234 = load i32, ptr %23, align 4, !tbaa !16
  %4235 = sext i32 %4234 to i64
  %4236 = getelementptr inbounds i8, ptr %4233, i64 %4235
  store i8 0, ptr %4236, align 1, !tbaa !20
  br label %4271

4237:                                             ; preds = %4195
  %4238 = load i32, ptr %72, align 4, !tbaa !16
  %4239 = icmp sgt i32 %4238, 255
  br i1 %4239, label %4240, label %4254

4240:                                             ; preds = %4237
  %4241 = load ptr, ptr %8, align 8, !tbaa !5
  %4242 = getelementptr inbounds %struct.MImage, ptr %4241, i32 0, i32 3
  %4243 = load i32, ptr %19, align 4, !tbaa !16
  %4244 = sext i32 %4243 to i64
  %4245 = getelementptr inbounds [4 x ptr], ptr %4242, i64 0, i64 %4244
  %4246 = load ptr, ptr %4245, align 8, !tbaa !5
  %4247 = load i32, ptr %22, align 4, !tbaa !16
  %4248 = sext i32 %4247 to i64
  %4249 = getelementptr inbounds ptr, ptr %4246, i64 %4248
  %4250 = load ptr, ptr %4249, align 8, !tbaa !5
  %4251 = load i32, ptr %23, align 4, !tbaa !16
  %4252 = sext i32 %4251 to i64
  %4253 = getelementptr inbounds i8, ptr %4250, i64 %4252
  store i8 -1, ptr %4253, align 1, !tbaa !20
  br label %4270

4254:                                             ; preds = %4237
  %4255 = load i32, ptr %72, align 4, !tbaa !16
  %4256 = trunc i32 %4255 to i8
  %4257 = load ptr, ptr %8, align 8, !tbaa !5
  %4258 = getelementptr inbounds %struct.MImage, ptr %4257, i32 0, i32 3
  %4259 = load i32, ptr %19, align 4, !tbaa !16
  %4260 = sext i32 %4259 to i64
  %4261 = getelementptr inbounds [4 x ptr], ptr %4258, i64 0, i64 %4260
  %4262 = load ptr, ptr %4261, align 8, !tbaa !5
  %4263 = load i32, ptr %22, align 4, !tbaa !16
  %4264 = sext i32 %4263 to i64
  %4265 = getelementptr inbounds ptr, ptr %4262, i64 %4264
  %4266 = load ptr, ptr %4265, align 8, !tbaa !5
  %4267 = load i32, ptr %23, align 4, !tbaa !16
  %4268 = sext i32 %4267 to i64
  %4269 = getelementptr inbounds i8, ptr %4266, i64 %4268
  store i8 %4256, ptr %4269, align 1, !tbaa !20
  br label %4270

4270:                                             ; preds = %4254, %4240
  br label %4271

4271:                                             ; preds = %4270, %4223
  call void @llvm.lifetime.end.p0(i64 4, ptr %72) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %73) #3
  %4272 = load ptr, ptr %20, align 8, !tbaa !5
  %4273 = load i32, ptr %22, align 4, !tbaa !16
  %4274 = sext i32 %4273 to i64
  %4275 = getelementptr inbounds ptr, ptr %4272, i64 %4274
  %4276 = load ptr, ptr %4275, align 8, !tbaa !5
  %4277 = load i32, ptr %23, align 4, !tbaa !16
  %4278 = sext i32 %4277 to i64
  %4279 = getelementptr inbounds i8, ptr %4276, i64 %4278
  %4280 = load i8, ptr %4279, align 1, !tbaa !20
  %4281 = zext i8 %4280 to i64
  %4282 = getelementptr inbounds [256 x i32], ptr %16, i64 0, i64 %4281
  %4283 = load i32, ptr %4282, align 4, !tbaa !16
  %4284 = load ptr, ptr %21, align 8, !tbaa !5
  %4285 = load i32, ptr %22, align 4, !tbaa !16
  %4286 = sext i32 %4285 to i64
  %4287 = getelementptr inbounds ptr, ptr %4284, i64 %4286
  %4288 = load ptr, ptr %4287, align 8, !tbaa !5
  %4289 = load i32, ptr %23, align 4, !tbaa !16
  %4290 = sext i32 %4289 to i64
  %4291 = getelementptr inbounds i8, ptr %4288, i64 %4290
  %4292 = load i8, ptr %4291, align 1, !tbaa !20
  %4293 = zext i8 %4292 to i64
  %4294 = getelementptr inbounds [256 x i32], ptr %17, i64 0, i64 %4293
  %4295 = load i32, ptr %4294, align 4, !tbaa !16
  %4296 = add nsw i32 %4283, %4295
  store i32 %4296, ptr %73, align 4, !tbaa !16
  %4297 = load i32, ptr %73, align 4, !tbaa !16
  %4298 = icmp slt i32 %4297, 0
  br i1 %4298, label %4299, label %4313

4299:                                             ; preds = %4271
  %4300 = load ptr, ptr %8, align 8, !tbaa !5
  %4301 = getelementptr inbounds %struct.MImage, ptr %4300, i32 0, i32 3
  %4302 = load i32, ptr %19, align 4, !tbaa !16
  %4303 = sext i32 %4302 to i64
  %4304 = getelementptr inbounds [4 x ptr], ptr %4301, i64 0, i64 %4303
  %4305 = load ptr, ptr %4304, align 8, !tbaa !5
  %4306 = load i32, ptr %22, align 4, !tbaa !16
  %4307 = sext i32 %4306 to i64
  %4308 = getelementptr inbounds ptr, ptr %4305, i64 %4307
  %4309 = load ptr, ptr %4308, align 8, !tbaa !5
  %4310 = load i32, ptr %23, align 4, !tbaa !16
  %4311 = sext i32 %4310 to i64
  %4312 = getelementptr inbounds i8, ptr %4309, i64 %4311
  store i8 0, ptr %4312, align 1, !tbaa !20
  br label %4347

4313:                                             ; preds = %4271
  %4314 = load i32, ptr %73, align 4, !tbaa !16
  %4315 = icmp sgt i32 %4314, 255
  br i1 %4315, label %4316, label %4330

4316:                                             ; preds = %4313
  %4317 = load ptr, ptr %8, align 8, !tbaa !5
  %4318 = getelementptr inbounds %struct.MImage, ptr %4317, i32 0, i32 3
  %4319 = load i32, ptr %19, align 4, !tbaa !16
  %4320 = sext i32 %4319 to i64
  %4321 = getelementptr inbounds [4 x ptr], ptr %4318, i64 0, i64 %4320
  %4322 = load ptr, ptr %4321, align 8, !tbaa !5
  %4323 = load i32, ptr %22, align 4, !tbaa !16
  %4324 = sext i32 %4323 to i64
  %4325 = getelementptr inbounds ptr, ptr %4322, i64 %4324
  %4326 = load ptr, ptr %4325, align 8, !tbaa !5
  %4327 = load i32, ptr %23, align 4, !tbaa !16
  %4328 = sext i32 %4327 to i64
  %4329 = getelementptr inbounds i8, ptr %4326, i64 %4328
  store i8 -1, ptr %4329, align 1, !tbaa !20
  br label %4346

4330:                                             ; preds = %4313
  %4331 = load i32, ptr %73, align 4, !tbaa !16
  %4332 = trunc i32 %4331 to i8
  %4333 = load ptr, ptr %8, align 8, !tbaa !5
  %4334 = getelementptr inbounds %struct.MImage, ptr %4333, i32 0, i32 3
  %4335 = load i32, ptr %19, align 4, !tbaa !16
  %4336 = sext i32 %4335 to i64
  %4337 = getelementptr inbounds [4 x ptr], ptr %4334, i64 0, i64 %4336
  %4338 = load ptr, ptr %4337, align 8, !tbaa !5
  %4339 = load i32, ptr %22, align 4, !tbaa !16
  %4340 = sext i32 %4339 to i64
  %4341 = getelementptr inbounds ptr, ptr %4338, i64 %4340
  %4342 = load ptr, ptr %4341, align 8, !tbaa !5
  %4343 = load i32, ptr %23, align 4, !tbaa !16
  %4344 = sext i32 %4343 to i64
  %4345 = getelementptr inbounds i8, ptr %4342, i64 %4344
  store i8 %4332, ptr %4345, align 1, !tbaa !20
  br label %4346

4346:                                             ; preds = %4330, %4316
  br label %4347

4347:                                             ; preds = %4346, %4299
  call void @llvm.lifetime.end.p0(i64 4, ptr %73) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %74) #3
  %4348 = load ptr, ptr %20, align 8, !tbaa !5
  %4349 = load i32, ptr %22, align 4, !tbaa !16
  %4350 = sext i32 %4349 to i64
  %4351 = getelementptr inbounds ptr, ptr %4348, i64 %4350
  %4352 = load ptr, ptr %4351, align 8, !tbaa !5
  %4353 = load i32, ptr %23, align 4, !tbaa !16
  %4354 = sext i32 %4353 to i64
  %4355 = getelementptr inbounds i8, ptr %4352, i64 %4354
  %4356 = load i8, ptr %4355, align 1, !tbaa !20
  %4357 = zext i8 %4356 to i64
  %4358 = getelementptr inbounds [256 x i32], ptr %16, i64 0, i64 %4357
  %4359 = load i32, ptr %4358, align 4, !tbaa !16
  %4360 = load ptr, ptr %21, align 8, !tbaa !5
  %4361 = load i32, ptr %22, align 4, !tbaa !16
  %4362 = sext i32 %4361 to i64
  %4363 = getelementptr inbounds ptr, ptr %4360, i64 %4362
  %4364 = load ptr, ptr %4363, align 8, !tbaa !5
  %4365 = load i32, ptr %23, align 4, !tbaa !16
  %4366 = sext i32 %4365 to i64
  %4367 = getelementptr inbounds i8, ptr %4364, i64 %4366
  %4368 = load i8, ptr %4367, align 1, !tbaa !20
  %4369 = zext i8 %4368 to i64
  %4370 = getelementptr inbounds [256 x i32], ptr %17, i64 0, i64 %4369
  %4371 = load i32, ptr %4370, align 4, !tbaa !16
  %4372 = add nsw i32 %4359, %4371
  store i32 %4372, ptr %74, align 4, !tbaa !16
  %4373 = load i32, ptr %74, align 4, !tbaa !16
  %4374 = icmp slt i32 %4373, 0
  br i1 %4374, label %4375, label %4389

4375:                                             ; preds = %4347
  %4376 = load ptr, ptr %8, align 8, !tbaa !5
  %4377 = getelementptr inbounds %struct.MImage, ptr %4376, i32 0, i32 3
  %4378 = load i32, ptr %19, align 4, !tbaa !16
  %4379 = sext i32 %4378 to i64
  %4380 = getelementptr inbounds [4 x ptr], ptr %4377, i64 0, i64 %4379
  %4381 = load ptr, ptr %4380, align 8, !tbaa !5
  %4382 = load i32, ptr %22, align 4, !tbaa !16
  %4383 = sext i32 %4382 to i64
  %4384 = getelementptr inbounds ptr, ptr %4381, i64 %4383
  %4385 = load ptr, ptr %4384, align 8, !tbaa !5
  %4386 = load i32, ptr %23, align 4, !tbaa !16
  %4387 = sext i32 %4386 to i64
  %4388 = getelementptr inbounds i8, ptr %4385, i64 %4387
  store i8 0, ptr %4388, align 1, !tbaa !20
  br label %4423

4389:                                             ; preds = %4347
  %4390 = load i32, ptr %74, align 4, !tbaa !16
  %4391 = icmp sgt i32 %4390, 255
  br i1 %4391, label %4392, label %4406

4392:                                             ; preds = %4389
  %4393 = load ptr, ptr %8, align 8, !tbaa !5
  %4394 = getelementptr inbounds %struct.MImage, ptr %4393, i32 0, i32 3
  %4395 = load i32, ptr %19, align 4, !tbaa !16
  %4396 = sext i32 %4395 to i64
  %4397 = getelementptr inbounds [4 x ptr], ptr %4394, i64 0, i64 %4396
  %4398 = load ptr, ptr %4397, align 8, !tbaa !5
  %4399 = load i32, ptr %22, align 4, !tbaa !16
  %4400 = sext i32 %4399 to i64
  %4401 = getelementptr inbounds ptr, ptr %4398, i64 %4400
  %4402 = load ptr, ptr %4401, align 8, !tbaa !5
  %4403 = load i32, ptr %23, align 4, !tbaa !16
  %4404 = sext i32 %4403 to i64
  %4405 = getelementptr inbounds i8, ptr %4402, i64 %4404
  store i8 -1, ptr %4405, align 1, !tbaa !20
  br label %4422

4406:                                             ; preds = %4389
  %4407 = load i32, ptr %74, align 4, !tbaa !16
  %4408 = trunc i32 %4407 to i8
  %4409 = load ptr, ptr %8, align 8, !tbaa !5
  %4410 = getelementptr inbounds %struct.MImage, ptr %4409, i32 0, i32 3
  %4411 = load i32, ptr %19, align 4, !tbaa !16
  %4412 = sext i32 %4411 to i64
  %4413 = getelementptr inbounds [4 x ptr], ptr %4410, i64 0, i64 %4412
  %4414 = load ptr, ptr %4413, align 8, !tbaa !5
  %4415 = load i32, ptr %22, align 4, !tbaa !16
  %4416 = sext i32 %4415 to i64
  %4417 = getelementptr inbounds ptr, ptr %4414, i64 %4416
  %4418 = load ptr, ptr %4417, align 8, !tbaa !5
  %4419 = load i32, ptr %23, align 4, !tbaa !16
  %4420 = sext i32 %4419 to i64
  %4421 = getelementptr inbounds i8, ptr %4418, i64 %4420
  store i8 %4408, ptr %4421, align 1, !tbaa !20
  br label %4422

4422:                                             ; preds = %4406, %4392
  br label %4423

4423:                                             ; preds = %4422, %4375
  call void @llvm.lifetime.end.p0(i64 4, ptr %74) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %75) #3
  %4424 = load ptr, ptr %20, align 8, !tbaa !5
  %4425 = load i32, ptr %22, align 4, !tbaa !16
  %4426 = sext i32 %4425 to i64
  %4427 = getelementptr inbounds ptr, ptr %4424, i64 %4426
  %4428 = load ptr, ptr %4427, align 8, !tbaa !5
  %4429 = load i32, ptr %23, align 4, !tbaa !16
  %4430 = sext i32 %4429 to i64
  %4431 = getelementptr inbounds i8, ptr %4428, i64 %4430
  %4432 = load i8, ptr %4431, align 1, !tbaa !20
  %4433 = zext i8 %4432 to i64
  %4434 = getelementptr inbounds [256 x i32], ptr %16, i64 0, i64 %4433
  %4435 = load i32, ptr %4434, align 4, !tbaa !16
  %4436 = load ptr, ptr %21, align 8, !tbaa !5
  %4437 = load i32, ptr %22, align 4, !tbaa !16
  %4438 = sext i32 %4437 to i64
  %4439 = getelementptr inbounds ptr, ptr %4436, i64 %4438
  %4440 = load ptr, ptr %4439, align 8, !tbaa !5
  %4441 = load i32, ptr %23, align 4, !tbaa !16
  %4442 = sext i32 %4441 to i64
  %4443 = getelementptr inbounds i8, ptr %4440, i64 %4442
  %4444 = load i8, ptr %4443, align 1, !tbaa !20
  %4445 = zext i8 %4444 to i64
  %4446 = getelementptr inbounds [256 x i32], ptr %17, i64 0, i64 %4445
  %4447 = load i32, ptr %4446, align 4, !tbaa !16
  %4448 = add nsw i32 %4435, %4447
  store i32 %4448, ptr %75, align 4, !tbaa !16
  %4449 = load i32, ptr %75, align 4, !tbaa !16
  %4450 = icmp slt i32 %4449, 0
  br i1 %4450, label %4451, label %4465

4451:                                             ; preds = %4423
  %4452 = load ptr, ptr %8, align 8, !tbaa !5
  %4453 = getelementptr inbounds %struct.MImage, ptr %4452, i32 0, i32 3
  %4454 = load i32, ptr %19, align 4, !tbaa !16
  %4455 = sext i32 %4454 to i64
  %4456 = getelementptr inbounds [4 x ptr], ptr %4453, i64 0, i64 %4455
  %4457 = load ptr, ptr %4456, align 8, !tbaa !5
  %4458 = load i32, ptr %22, align 4, !tbaa !16
  %4459 = sext i32 %4458 to i64
  %4460 = getelementptr inbounds ptr, ptr %4457, i64 %4459
  %4461 = load ptr, ptr %4460, align 8, !tbaa !5
  %4462 = load i32, ptr %23, align 4, !tbaa !16
  %4463 = sext i32 %4462 to i64
  %4464 = getelementptr inbounds i8, ptr %4461, i64 %4463
  store i8 0, ptr %4464, align 1, !tbaa !20
  br label %4499

4465:                                             ; preds = %4423
  %4466 = load i32, ptr %75, align 4, !tbaa !16
  %4467 = icmp sgt i32 %4466, 255
  br i1 %4467, label %4468, label %4482

4468:                                             ; preds = %4465
  %4469 = load ptr, ptr %8, align 8, !tbaa !5
  %4470 = getelementptr inbounds %struct.MImage, ptr %4469, i32 0, i32 3
  %4471 = load i32, ptr %19, align 4, !tbaa !16
  %4472 = sext i32 %4471 to i64
  %4473 = getelementptr inbounds [4 x ptr], ptr %4470, i64 0, i64 %4472
  %4474 = load ptr, ptr %4473, align 8, !tbaa !5
  %4475 = load i32, ptr %22, align 4, !tbaa !16
  %4476 = sext i32 %4475 to i64
  %4477 = getelementptr inbounds ptr, ptr %4474, i64 %4476
  %4478 = load ptr, ptr %4477, align 8, !tbaa !5
  %4479 = load i32, ptr %23, align 4, !tbaa !16
  %4480 = sext i32 %4479 to i64
  %4481 = getelementptr inbounds i8, ptr %4478, i64 %4480
  store i8 -1, ptr %4481, align 1, !tbaa !20
  br label %4498

4482:                                             ; preds = %4465
  %4483 = load i32, ptr %75, align 4, !tbaa !16
  %4484 = trunc i32 %4483 to i8
  %4485 = load ptr, ptr %8, align 8, !tbaa !5
  %4486 = getelementptr inbounds %struct.MImage, ptr %4485, i32 0, i32 3
  %4487 = load i32, ptr %19, align 4, !tbaa !16
  %4488 = sext i32 %4487 to i64
  %4489 = getelementptr inbounds [4 x ptr], ptr %4486, i64 0, i64 %4488
  %4490 = load ptr, ptr %4489, align 8, !tbaa !5
  %4491 = load i32, ptr %22, align 4, !tbaa !16
  %4492 = sext i32 %4491 to i64
  %4493 = getelementptr inbounds ptr, ptr %4490, i64 %4492
  %4494 = load ptr, ptr %4493, align 8, !tbaa !5
  %4495 = load i32, ptr %23, align 4, !tbaa !16
  %4496 = sext i32 %4495 to i64
  %4497 = getelementptr inbounds i8, ptr %4494, i64 %4496
  store i8 %4484, ptr %4497, align 1, !tbaa !20
  br label %4498

4498:                                             ; preds = %4482, %4468
  br label %4499

4499:                                             ; preds = %4498, %4451
  call void @llvm.lifetime.end.p0(i64 4, ptr %75) #3
  br label %10947

4500:                                             ; preds = %3884
  %4501 = load ptr, ptr %8, align 8, !tbaa !5
  %4502 = getelementptr inbounds %struct.MImage, ptr %4501, i32 0, i32 2
  %4503 = load i32, ptr %4502, align 8, !tbaa !15
  %4504 = load i32, ptr %23, align 4, !tbaa !16
  %4505 = sub nsw i32 %4503, %4504
  %4506 = icmp eq i32 %4505, 9
  br i1 %4506, label %4507, label %5192

4507:                                             ; preds = %4500
  call void @llvm.lifetime.start.p0(i64 4, ptr %76) #3
  %4508 = load ptr, ptr %20, align 8, !tbaa !5
  %4509 = load i32, ptr %22, align 4, !tbaa !16
  %4510 = sext i32 %4509 to i64
  %4511 = getelementptr inbounds ptr, ptr %4508, i64 %4510
  %4512 = load ptr, ptr %4511, align 8, !tbaa !5
  %4513 = load i32, ptr %23, align 4, !tbaa !16
  %4514 = sext i32 %4513 to i64
  %4515 = getelementptr inbounds i8, ptr %4512, i64 %4514
  %4516 = load i8, ptr %4515, align 1, !tbaa !20
  %4517 = zext i8 %4516 to i64
  %4518 = getelementptr inbounds [256 x i32], ptr %16, i64 0, i64 %4517
  %4519 = load i32, ptr %4518, align 4, !tbaa !16
  %4520 = load ptr, ptr %21, align 8, !tbaa !5
  %4521 = load i32, ptr %22, align 4, !tbaa !16
  %4522 = sext i32 %4521 to i64
  %4523 = getelementptr inbounds ptr, ptr %4520, i64 %4522
  %4524 = load ptr, ptr %4523, align 8, !tbaa !5
  %4525 = load i32, ptr %23, align 4, !tbaa !16
  %4526 = sext i32 %4525 to i64
  %4527 = getelementptr inbounds i8, ptr %4524, i64 %4526
  %4528 = load i8, ptr %4527, align 1, !tbaa !20
  %4529 = zext i8 %4528 to i64
  %4530 = getelementptr inbounds [256 x i32], ptr %17, i64 0, i64 %4529
  %4531 = load i32, ptr %4530, align 4, !tbaa !16
  %4532 = add nsw i32 %4519, %4531
  store i32 %4532, ptr %76, align 4, !tbaa !16
  %4533 = load i32, ptr %76, align 4, !tbaa !16
  %4534 = icmp slt i32 %4533, 0
  br i1 %4534, label %4535, label %4549

4535:                                             ; preds = %4507
  %4536 = load ptr, ptr %8, align 8, !tbaa !5
  %4537 = getelementptr inbounds %struct.MImage, ptr %4536, i32 0, i32 3
  %4538 = load i32, ptr %19, align 4, !tbaa !16
  %4539 = sext i32 %4538 to i64
  %4540 = getelementptr inbounds [4 x ptr], ptr %4537, i64 0, i64 %4539
  %4541 = load ptr, ptr %4540, align 8, !tbaa !5
  %4542 = load i32, ptr %22, align 4, !tbaa !16
  %4543 = sext i32 %4542 to i64
  %4544 = getelementptr inbounds ptr, ptr %4541, i64 %4543
  %4545 = load ptr, ptr %4544, align 8, !tbaa !5
  %4546 = load i32, ptr %23, align 4, !tbaa !16
  %4547 = sext i32 %4546 to i64
  %4548 = getelementptr inbounds i8, ptr %4545, i64 %4547
  store i8 0, ptr %4548, align 1, !tbaa !20
  br label %4583

4549:                                             ; preds = %4507
  %4550 = load i32, ptr %76, align 4, !tbaa !16
  %4551 = icmp sgt i32 %4550, 255
  br i1 %4551, label %4552, label %4566

4552:                                             ; preds = %4549
  %4553 = load ptr, ptr %8, align 8, !tbaa !5
  %4554 = getelementptr inbounds %struct.MImage, ptr %4553, i32 0, i32 3
  %4555 = load i32, ptr %19, align 4, !tbaa !16
  %4556 = sext i32 %4555 to i64
  %4557 = getelementptr inbounds [4 x ptr], ptr %4554, i64 0, i64 %4556
  %4558 = load ptr, ptr %4557, align 8, !tbaa !5
  %4559 = load i32, ptr %22, align 4, !tbaa !16
  %4560 = sext i32 %4559 to i64
  %4561 = getelementptr inbounds ptr, ptr %4558, i64 %4560
  %4562 = load ptr, ptr %4561, align 8, !tbaa !5
  %4563 = load i32, ptr %23, align 4, !tbaa !16
  %4564 = sext i32 %4563 to i64
  %4565 = getelementptr inbounds i8, ptr %4562, i64 %4564
  store i8 -1, ptr %4565, align 1, !tbaa !20
  br label %4582

4566:                                             ; preds = %4549
  %4567 = load i32, ptr %76, align 4, !tbaa !16
  %4568 = trunc i32 %4567 to i8
  %4569 = load ptr, ptr %8, align 8, !tbaa !5
  %4570 = getelementptr inbounds %struct.MImage, ptr %4569, i32 0, i32 3
  %4571 = load i32, ptr %19, align 4, !tbaa !16
  %4572 = sext i32 %4571 to i64
  %4573 = getelementptr inbounds [4 x ptr], ptr %4570, i64 0, i64 %4572
  %4574 = load ptr, ptr %4573, align 8, !tbaa !5
  %4575 = load i32, ptr %22, align 4, !tbaa !16
  %4576 = sext i32 %4575 to i64
  %4577 = getelementptr inbounds ptr, ptr %4574, i64 %4576
  %4578 = load ptr, ptr %4577, align 8, !tbaa !5
  %4579 = load i32, ptr %23, align 4, !tbaa !16
  %4580 = sext i32 %4579 to i64
  %4581 = getelementptr inbounds i8, ptr %4578, i64 %4580
  store i8 %4568, ptr %4581, align 1, !tbaa !20
  br label %4582

4582:                                             ; preds = %4566, %4552
  br label %4583

4583:                                             ; preds = %4582, %4535
  call void @llvm.lifetime.end.p0(i64 4, ptr %76) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %77) #3
  %4584 = load ptr, ptr %20, align 8, !tbaa !5
  %4585 = load i32, ptr %22, align 4, !tbaa !16
  %4586 = sext i32 %4585 to i64
  %4587 = getelementptr inbounds ptr, ptr %4584, i64 %4586
  %4588 = load ptr, ptr %4587, align 8, !tbaa !5
  %4589 = load i32, ptr %23, align 4, !tbaa !16
  %4590 = sext i32 %4589 to i64
  %4591 = getelementptr inbounds i8, ptr %4588, i64 %4590
  %4592 = load i8, ptr %4591, align 1, !tbaa !20
  %4593 = zext i8 %4592 to i64
  %4594 = getelementptr inbounds [256 x i32], ptr %16, i64 0, i64 %4593
  %4595 = load i32, ptr %4594, align 4, !tbaa !16
  %4596 = load ptr, ptr %21, align 8, !tbaa !5
  %4597 = load i32, ptr %22, align 4, !tbaa !16
  %4598 = sext i32 %4597 to i64
  %4599 = getelementptr inbounds ptr, ptr %4596, i64 %4598
  %4600 = load ptr, ptr %4599, align 8, !tbaa !5
  %4601 = load i32, ptr %23, align 4, !tbaa !16
  %4602 = sext i32 %4601 to i64
  %4603 = getelementptr inbounds i8, ptr %4600, i64 %4602
  %4604 = load i8, ptr %4603, align 1, !tbaa !20
  %4605 = zext i8 %4604 to i64
  %4606 = getelementptr inbounds [256 x i32], ptr %17, i64 0, i64 %4605
  %4607 = load i32, ptr %4606, align 4, !tbaa !16
  %4608 = add nsw i32 %4595, %4607
  store i32 %4608, ptr %77, align 4, !tbaa !16
  %4609 = load i32, ptr %77, align 4, !tbaa !16
  %4610 = icmp slt i32 %4609, 0
  br i1 %4610, label %4611, label %4625

4611:                                             ; preds = %4583
  %4612 = load ptr, ptr %8, align 8, !tbaa !5
  %4613 = getelementptr inbounds %struct.MImage, ptr %4612, i32 0, i32 3
  %4614 = load i32, ptr %19, align 4, !tbaa !16
  %4615 = sext i32 %4614 to i64
  %4616 = getelementptr inbounds [4 x ptr], ptr %4613, i64 0, i64 %4615
  %4617 = load ptr, ptr %4616, align 8, !tbaa !5
  %4618 = load i32, ptr %22, align 4, !tbaa !16
  %4619 = sext i32 %4618 to i64
  %4620 = getelementptr inbounds ptr, ptr %4617, i64 %4619
  %4621 = load ptr, ptr %4620, align 8, !tbaa !5
  %4622 = load i32, ptr %23, align 4, !tbaa !16
  %4623 = sext i32 %4622 to i64
  %4624 = getelementptr inbounds i8, ptr %4621, i64 %4623
  store i8 0, ptr %4624, align 1, !tbaa !20
  br label %4659

4625:                                             ; preds = %4583
  %4626 = load i32, ptr %77, align 4, !tbaa !16
  %4627 = icmp sgt i32 %4626, 255
  br i1 %4627, label %4628, label %4642

4628:                                             ; preds = %4625
  %4629 = load ptr, ptr %8, align 8, !tbaa !5
  %4630 = getelementptr inbounds %struct.MImage, ptr %4629, i32 0, i32 3
  %4631 = load i32, ptr %19, align 4, !tbaa !16
  %4632 = sext i32 %4631 to i64
  %4633 = getelementptr inbounds [4 x ptr], ptr %4630, i64 0, i64 %4632
  %4634 = load ptr, ptr %4633, align 8, !tbaa !5
  %4635 = load i32, ptr %22, align 4, !tbaa !16
  %4636 = sext i32 %4635 to i64
  %4637 = getelementptr inbounds ptr, ptr %4634, i64 %4636
  %4638 = load ptr, ptr %4637, align 8, !tbaa !5
  %4639 = load i32, ptr %23, align 4, !tbaa !16
  %4640 = sext i32 %4639 to i64
  %4641 = getelementptr inbounds i8, ptr %4638, i64 %4640
  store i8 -1, ptr %4641, align 1, !tbaa !20
  br label %4658

4642:                                             ; preds = %4625
  %4643 = load i32, ptr %77, align 4, !tbaa !16
  %4644 = trunc i32 %4643 to i8
  %4645 = load ptr, ptr %8, align 8, !tbaa !5
  %4646 = getelementptr inbounds %struct.MImage, ptr %4645, i32 0, i32 3
  %4647 = load i32, ptr %19, align 4, !tbaa !16
  %4648 = sext i32 %4647 to i64
  %4649 = getelementptr inbounds [4 x ptr], ptr %4646, i64 0, i64 %4648
  %4650 = load ptr, ptr %4649, align 8, !tbaa !5
  %4651 = load i32, ptr %22, align 4, !tbaa !16
  %4652 = sext i32 %4651 to i64
  %4653 = getelementptr inbounds ptr, ptr %4650, i64 %4652
  %4654 = load ptr, ptr %4653, align 8, !tbaa !5
  %4655 = load i32, ptr %23, align 4, !tbaa !16
  %4656 = sext i32 %4655 to i64
  %4657 = getelementptr inbounds i8, ptr %4654, i64 %4656
  store i8 %4644, ptr %4657, align 1, !tbaa !20
  br label %4658

4658:                                             ; preds = %4642, %4628
  br label %4659

4659:                                             ; preds = %4658, %4611
  call void @llvm.lifetime.end.p0(i64 4, ptr %77) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %78) #3
  %4660 = load ptr, ptr %20, align 8, !tbaa !5
  %4661 = load i32, ptr %22, align 4, !tbaa !16
  %4662 = sext i32 %4661 to i64
  %4663 = getelementptr inbounds ptr, ptr %4660, i64 %4662
  %4664 = load ptr, ptr %4663, align 8, !tbaa !5
  %4665 = load i32, ptr %23, align 4, !tbaa !16
  %4666 = sext i32 %4665 to i64
  %4667 = getelementptr inbounds i8, ptr %4664, i64 %4666
  %4668 = load i8, ptr %4667, align 1, !tbaa !20
  %4669 = zext i8 %4668 to i64
  %4670 = getelementptr inbounds [256 x i32], ptr %16, i64 0, i64 %4669
  %4671 = load i32, ptr %4670, align 4, !tbaa !16
  %4672 = load ptr, ptr %21, align 8, !tbaa !5
  %4673 = load i32, ptr %22, align 4, !tbaa !16
  %4674 = sext i32 %4673 to i64
  %4675 = getelementptr inbounds ptr, ptr %4672, i64 %4674
  %4676 = load ptr, ptr %4675, align 8, !tbaa !5
  %4677 = load i32, ptr %23, align 4, !tbaa !16
  %4678 = sext i32 %4677 to i64
  %4679 = getelementptr inbounds i8, ptr %4676, i64 %4678
  %4680 = load i8, ptr %4679, align 1, !tbaa !20
  %4681 = zext i8 %4680 to i64
  %4682 = getelementptr inbounds [256 x i32], ptr %17, i64 0, i64 %4681
  %4683 = load i32, ptr %4682, align 4, !tbaa !16
  %4684 = add nsw i32 %4671, %4683
  store i32 %4684, ptr %78, align 4, !tbaa !16
  %4685 = load i32, ptr %78, align 4, !tbaa !16
  %4686 = icmp slt i32 %4685, 0
  br i1 %4686, label %4687, label %4701

4687:                                             ; preds = %4659
  %4688 = load ptr, ptr %8, align 8, !tbaa !5
  %4689 = getelementptr inbounds %struct.MImage, ptr %4688, i32 0, i32 3
  %4690 = load i32, ptr %19, align 4, !tbaa !16
  %4691 = sext i32 %4690 to i64
  %4692 = getelementptr inbounds [4 x ptr], ptr %4689, i64 0, i64 %4691
  %4693 = load ptr, ptr %4692, align 8, !tbaa !5
  %4694 = load i32, ptr %22, align 4, !tbaa !16
  %4695 = sext i32 %4694 to i64
  %4696 = getelementptr inbounds ptr, ptr %4693, i64 %4695
  %4697 = load ptr, ptr %4696, align 8, !tbaa !5
  %4698 = load i32, ptr %23, align 4, !tbaa !16
  %4699 = sext i32 %4698 to i64
  %4700 = getelementptr inbounds i8, ptr %4697, i64 %4699
  store i8 0, ptr %4700, align 1, !tbaa !20
  br label %4735

4701:                                             ; preds = %4659
  %4702 = load i32, ptr %78, align 4, !tbaa !16
  %4703 = icmp sgt i32 %4702, 255
  br i1 %4703, label %4704, label %4718

4704:                                             ; preds = %4701
  %4705 = load ptr, ptr %8, align 8, !tbaa !5
  %4706 = getelementptr inbounds %struct.MImage, ptr %4705, i32 0, i32 3
  %4707 = load i32, ptr %19, align 4, !tbaa !16
  %4708 = sext i32 %4707 to i64
  %4709 = getelementptr inbounds [4 x ptr], ptr %4706, i64 0, i64 %4708
  %4710 = load ptr, ptr %4709, align 8, !tbaa !5
  %4711 = load i32, ptr %22, align 4, !tbaa !16
  %4712 = sext i32 %4711 to i64
  %4713 = getelementptr inbounds ptr, ptr %4710, i64 %4712
  %4714 = load ptr, ptr %4713, align 8, !tbaa !5
  %4715 = load i32, ptr %23, align 4, !tbaa !16
  %4716 = sext i32 %4715 to i64
  %4717 = getelementptr inbounds i8, ptr %4714, i64 %4716
  store i8 -1, ptr %4717, align 1, !tbaa !20
  br label %4734

4718:                                             ; preds = %4701
  %4719 = load i32, ptr %78, align 4, !tbaa !16
  %4720 = trunc i32 %4719 to i8
  %4721 = load ptr, ptr %8, align 8, !tbaa !5
  %4722 = getelementptr inbounds %struct.MImage, ptr %4721, i32 0, i32 3
  %4723 = load i32, ptr %19, align 4, !tbaa !16
  %4724 = sext i32 %4723 to i64
  %4725 = getelementptr inbounds [4 x ptr], ptr %4722, i64 0, i64 %4724
  %4726 = load ptr, ptr %4725, align 8, !tbaa !5
  %4727 = load i32, ptr %22, align 4, !tbaa !16
  %4728 = sext i32 %4727 to i64
  %4729 = getelementptr inbounds ptr, ptr %4726, i64 %4728
  %4730 = load ptr, ptr %4729, align 8, !tbaa !5
  %4731 = load i32, ptr %23, align 4, !tbaa !16
  %4732 = sext i32 %4731 to i64
  %4733 = getelementptr inbounds i8, ptr %4730, i64 %4732
  store i8 %4720, ptr %4733, align 1, !tbaa !20
  br label %4734

4734:                                             ; preds = %4718, %4704
  br label %4735

4735:                                             ; preds = %4734, %4687
  call void @llvm.lifetime.end.p0(i64 4, ptr %78) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %79) #3
  %4736 = load ptr, ptr %20, align 8, !tbaa !5
  %4737 = load i32, ptr %22, align 4, !tbaa !16
  %4738 = sext i32 %4737 to i64
  %4739 = getelementptr inbounds ptr, ptr %4736, i64 %4738
  %4740 = load ptr, ptr %4739, align 8, !tbaa !5
  %4741 = load i32, ptr %23, align 4, !tbaa !16
  %4742 = sext i32 %4741 to i64
  %4743 = getelementptr inbounds i8, ptr %4740, i64 %4742
  %4744 = load i8, ptr %4743, align 1, !tbaa !20
  %4745 = zext i8 %4744 to i64
  %4746 = getelementptr inbounds [256 x i32], ptr %16, i64 0, i64 %4745
  %4747 = load i32, ptr %4746, align 4, !tbaa !16
  %4748 = load ptr, ptr %21, align 8, !tbaa !5
  %4749 = load i32, ptr %22, align 4, !tbaa !16
  %4750 = sext i32 %4749 to i64
  %4751 = getelementptr inbounds ptr, ptr %4748, i64 %4750
  %4752 = load ptr, ptr %4751, align 8, !tbaa !5
  %4753 = load i32, ptr %23, align 4, !tbaa !16
  %4754 = sext i32 %4753 to i64
  %4755 = getelementptr inbounds i8, ptr %4752, i64 %4754
  %4756 = load i8, ptr %4755, align 1, !tbaa !20
  %4757 = zext i8 %4756 to i64
  %4758 = getelementptr inbounds [256 x i32], ptr %17, i64 0, i64 %4757
  %4759 = load i32, ptr %4758, align 4, !tbaa !16
  %4760 = add nsw i32 %4747, %4759
  store i32 %4760, ptr %79, align 4, !tbaa !16
  %4761 = load i32, ptr %79, align 4, !tbaa !16
  %4762 = icmp slt i32 %4761, 0
  br i1 %4762, label %4763, label %4777

4763:                                             ; preds = %4735
  %4764 = load ptr, ptr %8, align 8, !tbaa !5
  %4765 = getelementptr inbounds %struct.MImage, ptr %4764, i32 0, i32 3
  %4766 = load i32, ptr %19, align 4, !tbaa !16
  %4767 = sext i32 %4766 to i64
  %4768 = getelementptr inbounds [4 x ptr], ptr %4765, i64 0, i64 %4767
  %4769 = load ptr, ptr %4768, align 8, !tbaa !5
  %4770 = load i32, ptr %22, align 4, !tbaa !16
  %4771 = sext i32 %4770 to i64
  %4772 = getelementptr inbounds ptr, ptr %4769, i64 %4771
  %4773 = load ptr, ptr %4772, align 8, !tbaa !5
  %4774 = load i32, ptr %23, align 4, !tbaa !16
  %4775 = sext i32 %4774 to i64
  %4776 = getelementptr inbounds i8, ptr %4773, i64 %4775
  store i8 0, ptr %4776, align 1, !tbaa !20
  br label %4811

4777:                                             ; preds = %4735
  %4778 = load i32, ptr %79, align 4, !tbaa !16
  %4779 = icmp sgt i32 %4778, 255
  br i1 %4779, label %4780, label %4794

4780:                                             ; preds = %4777
  %4781 = load ptr, ptr %8, align 8, !tbaa !5
  %4782 = getelementptr inbounds %struct.MImage, ptr %4781, i32 0, i32 3
  %4783 = load i32, ptr %19, align 4, !tbaa !16
  %4784 = sext i32 %4783 to i64
  %4785 = getelementptr inbounds [4 x ptr], ptr %4782, i64 0, i64 %4784
  %4786 = load ptr, ptr %4785, align 8, !tbaa !5
  %4787 = load i32, ptr %22, align 4, !tbaa !16
  %4788 = sext i32 %4787 to i64
  %4789 = getelementptr inbounds ptr, ptr %4786, i64 %4788
  %4790 = load ptr, ptr %4789, align 8, !tbaa !5
  %4791 = load i32, ptr %23, align 4, !tbaa !16
  %4792 = sext i32 %4791 to i64
  %4793 = getelementptr inbounds i8, ptr %4790, i64 %4792
  store i8 -1, ptr %4793, align 1, !tbaa !20
  br label %4810

4794:                                             ; preds = %4777
  %4795 = load i32, ptr %79, align 4, !tbaa !16
  %4796 = trunc i32 %4795 to i8
  %4797 = load ptr, ptr %8, align 8, !tbaa !5
  %4798 = getelementptr inbounds %struct.MImage, ptr %4797, i32 0, i32 3
  %4799 = load i32, ptr %19, align 4, !tbaa !16
  %4800 = sext i32 %4799 to i64
  %4801 = getelementptr inbounds [4 x ptr], ptr %4798, i64 0, i64 %4800
  %4802 = load ptr, ptr %4801, align 8, !tbaa !5
  %4803 = load i32, ptr %22, align 4, !tbaa !16
  %4804 = sext i32 %4803 to i64
  %4805 = getelementptr inbounds ptr, ptr %4802, i64 %4804
  %4806 = load ptr, ptr %4805, align 8, !tbaa !5
  %4807 = load i32, ptr %23, align 4, !tbaa !16
  %4808 = sext i32 %4807 to i64
  %4809 = getelementptr inbounds i8, ptr %4806, i64 %4808
  store i8 %4796, ptr %4809, align 1, !tbaa !20
  br label %4810

4810:                                             ; preds = %4794, %4780
  br label %4811

4811:                                             ; preds = %4810, %4763
  call void @llvm.lifetime.end.p0(i64 4, ptr %79) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %80) #3
  %4812 = load ptr, ptr %20, align 8, !tbaa !5
  %4813 = load i32, ptr %22, align 4, !tbaa !16
  %4814 = sext i32 %4813 to i64
  %4815 = getelementptr inbounds ptr, ptr %4812, i64 %4814
  %4816 = load ptr, ptr %4815, align 8, !tbaa !5
  %4817 = load i32, ptr %23, align 4, !tbaa !16
  %4818 = sext i32 %4817 to i64
  %4819 = getelementptr inbounds i8, ptr %4816, i64 %4818
  %4820 = load i8, ptr %4819, align 1, !tbaa !20
  %4821 = zext i8 %4820 to i64
  %4822 = getelementptr inbounds [256 x i32], ptr %16, i64 0, i64 %4821
  %4823 = load i32, ptr %4822, align 4, !tbaa !16
  %4824 = load ptr, ptr %21, align 8, !tbaa !5
  %4825 = load i32, ptr %22, align 4, !tbaa !16
  %4826 = sext i32 %4825 to i64
  %4827 = getelementptr inbounds ptr, ptr %4824, i64 %4826
  %4828 = load ptr, ptr %4827, align 8, !tbaa !5
  %4829 = load i32, ptr %23, align 4, !tbaa !16
  %4830 = sext i32 %4829 to i64
  %4831 = getelementptr inbounds i8, ptr %4828, i64 %4830
  %4832 = load i8, ptr %4831, align 1, !tbaa !20
  %4833 = zext i8 %4832 to i64
  %4834 = getelementptr inbounds [256 x i32], ptr %17, i64 0, i64 %4833
  %4835 = load i32, ptr %4834, align 4, !tbaa !16
  %4836 = add nsw i32 %4823, %4835
  store i32 %4836, ptr %80, align 4, !tbaa !16
  %4837 = load i32, ptr %80, align 4, !tbaa !16
  %4838 = icmp slt i32 %4837, 0
  br i1 %4838, label %4839, label %4853

4839:                                             ; preds = %4811
  %4840 = load ptr, ptr %8, align 8, !tbaa !5
  %4841 = getelementptr inbounds %struct.MImage, ptr %4840, i32 0, i32 3
  %4842 = load i32, ptr %19, align 4, !tbaa !16
  %4843 = sext i32 %4842 to i64
  %4844 = getelementptr inbounds [4 x ptr], ptr %4841, i64 0, i64 %4843
  %4845 = load ptr, ptr %4844, align 8, !tbaa !5
  %4846 = load i32, ptr %22, align 4, !tbaa !16
  %4847 = sext i32 %4846 to i64
  %4848 = getelementptr inbounds ptr, ptr %4845, i64 %4847
  %4849 = load ptr, ptr %4848, align 8, !tbaa !5
  %4850 = load i32, ptr %23, align 4, !tbaa !16
  %4851 = sext i32 %4850 to i64
  %4852 = getelementptr inbounds i8, ptr %4849, i64 %4851
  store i8 0, ptr %4852, align 1, !tbaa !20
  br label %4887

4853:                                             ; preds = %4811
  %4854 = load i32, ptr %80, align 4, !tbaa !16
  %4855 = icmp sgt i32 %4854, 255
  br i1 %4855, label %4856, label %4870

4856:                                             ; preds = %4853
  %4857 = load ptr, ptr %8, align 8, !tbaa !5
  %4858 = getelementptr inbounds %struct.MImage, ptr %4857, i32 0, i32 3
  %4859 = load i32, ptr %19, align 4, !tbaa !16
  %4860 = sext i32 %4859 to i64
  %4861 = getelementptr inbounds [4 x ptr], ptr %4858, i64 0, i64 %4860
  %4862 = load ptr, ptr %4861, align 8, !tbaa !5
  %4863 = load i32, ptr %22, align 4, !tbaa !16
  %4864 = sext i32 %4863 to i64
  %4865 = getelementptr inbounds ptr, ptr %4862, i64 %4864
  %4866 = load ptr, ptr %4865, align 8, !tbaa !5
  %4867 = load i32, ptr %23, align 4, !tbaa !16
  %4868 = sext i32 %4867 to i64
  %4869 = getelementptr inbounds i8, ptr %4866, i64 %4868
  store i8 -1, ptr %4869, align 1, !tbaa !20
  br label %4886

4870:                                             ; preds = %4853
  %4871 = load i32, ptr %80, align 4, !tbaa !16
  %4872 = trunc i32 %4871 to i8
  %4873 = load ptr, ptr %8, align 8, !tbaa !5
  %4874 = getelementptr inbounds %struct.MImage, ptr %4873, i32 0, i32 3
  %4875 = load i32, ptr %19, align 4, !tbaa !16
  %4876 = sext i32 %4875 to i64
  %4877 = getelementptr inbounds [4 x ptr], ptr %4874, i64 0, i64 %4876
  %4878 = load ptr, ptr %4877, align 8, !tbaa !5
  %4879 = load i32, ptr %22, align 4, !tbaa !16
  %4880 = sext i32 %4879 to i64
  %4881 = getelementptr inbounds ptr, ptr %4878, i64 %4880
  %4882 = load ptr, ptr %4881, align 8, !tbaa !5
  %4883 = load i32, ptr %23, align 4, !tbaa !16
  %4884 = sext i32 %4883 to i64
  %4885 = getelementptr inbounds i8, ptr %4882, i64 %4884
  store i8 %4872, ptr %4885, align 1, !tbaa !20
  br label %4886

4886:                                             ; preds = %4870, %4856
  br label %4887

4887:                                             ; preds = %4886, %4839
  call void @llvm.lifetime.end.p0(i64 4, ptr %80) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %81) #3
  %4888 = load ptr, ptr %20, align 8, !tbaa !5
  %4889 = load i32, ptr %22, align 4, !tbaa !16
  %4890 = sext i32 %4889 to i64
  %4891 = getelementptr inbounds ptr, ptr %4888, i64 %4890
  %4892 = load ptr, ptr %4891, align 8, !tbaa !5
  %4893 = load i32, ptr %23, align 4, !tbaa !16
  %4894 = sext i32 %4893 to i64
  %4895 = getelementptr inbounds i8, ptr %4892, i64 %4894
  %4896 = load i8, ptr %4895, align 1, !tbaa !20
  %4897 = zext i8 %4896 to i64
  %4898 = getelementptr inbounds [256 x i32], ptr %16, i64 0, i64 %4897
  %4899 = load i32, ptr %4898, align 4, !tbaa !16
  %4900 = load ptr, ptr %21, align 8, !tbaa !5
  %4901 = load i32, ptr %22, align 4, !tbaa !16
  %4902 = sext i32 %4901 to i64
  %4903 = getelementptr inbounds ptr, ptr %4900, i64 %4902
  %4904 = load ptr, ptr %4903, align 8, !tbaa !5
  %4905 = load i32, ptr %23, align 4, !tbaa !16
  %4906 = sext i32 %4905 to i64
  %4907 = getelementptr inbounds i8, ptr %4904, i64 %4906
  %4908 = load i8, ptr %4907, align 1, !tbaa !20
  %4909 = zext i8 %4908 to i64
  %4910 = getelementptr inbounds [256 x i32], ptr %17, i64 0, i64 %4909
  %4911 = load i32, ptr %4910, align 4, !tbaa !16
  %4912 = add nsw i32 %4899, %4911
  store i32 %4912, ptr %81, align 4, !tbaa !16
  %4913 = load i32, ptr %81, align 4, !tbaa !16
  %4914 = icmp slt i32 %4913, 0
  br i1 %4914, label %4915, label %4929

4915:                                             ; preds = %4887
  %4916 = load ptr, ptr %8, align 8, !tbaa !5
  %4917 = getelementptr inbounds %struct.MImage, ptr %4916, i32 0, i32 3
  %4918 = load i32, ptr %19, align 4, !tbaa !16
  %4919 = sext i32 %4918 to i64
  %4920 = getelementptr inbounds [4 x ptr], ptr %4917, i64 0, i64 %4919
  %4921 = load ptr, ptr %4920, align 8, !tbaa !5
  %4922 = load i32, ptr %22, align 4, !tbaa !16
  %4923 = sext i32 %4922 to i64
  %4924 = getelementptr inbounds ptr, ptr %4921, i64 %4923
  %4925 = load ptr, ptr %4924, align 8, !tbaa !5
  %4926 = load i32, ptr %23, align 4, !tbaa !16
  %4927 = sext i32 %4926 to i64
  %4928 = getelementptr inbounds i8, ptr %4925, i64 %4927
  store i8 0, ptr %4928, align 1, !tbaa !20
  br label %4963

4929:                                             ; preds = %4887
  %4930 = load i32, ptr %81, align 4, !tbaa !16
  %4931 = icmp sgt i32 %4930, 255
  br i1 %4931, label %4932, label %4946

4932:                                             ; preds = %4929
  %4933 = load ptr, ptr %8, align 8, !tbaa !5
  %4934 = getelementptr inbounds %struct.MImage, ptr %4933, i32 0, i32 3
  %4935 = load i32, ptr %19, align 4, !tbaa !16
  %4936 = sext i32 %4935 to i64
  %4937 = getelementptr inbounds [4 x ptr], ptr %4934, i64 0, i64 %4936
  %4938 = load ptr, ptr %4937, align 8, !tbaa !5
  %4939 = load i32, ptr %22, align 4, !tbaa !16
  %4940 = sext i32 %4939 to i64
  %4941 = getelementptr inbounds ptr, ptr %4938, i64 %4940
  %4942 = load ptr, ptr %4941, align 8, !tbaa !5
  %4943 = load i32, ptr %23, align 4, !tbaa !16
  %4944 = sext i32 %4943 to i64
  %4945 = getelementptr inbounds i8, ptr %4942, i64 %4944
  store i8 -1, ptr %4945, align 1, !tbaa !20
  br label %4962

4946:                                             ; preds = %4929
  %4947 = load i32, ptr %81, align 4, !tbaa !16
  %4948 = trunc i32 %4947 to i8
  %4949 = load ptr, ptr %8, align 8, !tbaa !5
  %4950 = getelementptr inbounds %struct.MImage, ptr %4949, i32 0, i32 3
  %4951 = load i32, ptr %19, align 4, !tbaa !16
  %4952 = sext i32 %4951 to i64
  %4953 = getelementptr inbounds [4 x ptr], ptr %4950, i64 0, i64 %4952
  %4954 = load ptr, ptr %4953, align 8, !tbaa !5
  %4955 = load i32, ptr %22, align 4, !tbaa !16
  %4956 = sext i32 %4955 to i64
  %4957 = getelementptr inbounds ptr, ptr %4954, i64 %4956
  %4958 = load ptr, ptr %4957, align 8, !tbaa !5
  %4959 = load i32, ptr %23, align 4, !tbaa !16
  %4960 = sext i32 %4959 to i64
  %4961 = getelementptr inbounds i8, ptr %4958, i64 %4960
  store i8 %4948, ptr %4961, align 1, !tbaa !20
  br label %4962

4962:                                             ; preds = %4946, %4932
  br label %4963

4963:                                             ; preds = %4962, %4915
  call void @llvm.lifetime.end.p0(i64 4, ptr %81) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %82) #3
  %4964 = load ptr, ptr %20, align 8, !tbaa !5
  %4965 = load i32, ptr %22, align 4, !tbaa !16
  %4966 = sext i32 %4965 to i64
  %4967 = getelementptr inbounds ptr, ptr %4964, i64 %4966
  %4968 = load ptr, ptr %4967, align 8, !tbaa !5
  %4969 = load i32, ptr %23, align 4, !tbaa !16
  %4970 = sext i32 %4969 to i64
  %4971 = getelementptr inbounds i8, ptr %4968, i64 %4970
  %4972 = load i8, ptr %4971, align 1, !tbaa !20
  %4973 = zext i8 %4972 to i64
  %4974 = getelementptr inbounds [256 x i32], ptr %16, i64 0, i64 %4973
  %4975 = load i32, ptr %4974, align 4, !tbaa !16
  %4976 = load ptr, ptr %21, align 8, !tbaa !5
  %4977 = load i32, ptr %22, align 4, !tbaa !16
  %4978 = sext i32 %4977 to i64
  %4979 = getelementptr inbounds ptr, ptr %4976, i64 %4978
  %4980 = load ptr, ptr %4979, align 8, !tbaa !5
  %4981 = load i32, ptr %23, align 4, !tbaa !16
  %4982 = sext i32 %4981 to i64
  %4983 = getelementptr inbounds i8, ptr %4980, i64 %4982
  %4984 = load i8, ptr %4983, align 1, !tbaa !20
  %4985 = zext i8 %4984 to i64
  %4986 = getelementptr inbounds [256 x i32], ptr %17, i64 0, i64 %4985
  %4987 = load i32, ptr %4986, align 4, !tbaa !16
  %4988 = add nsw i32 %4975, %4987
  store i32 %4988, ptr %82, align 4, !tbaa !16
  %4989 = load i32, ptr %82, align 4, !tbaa !16
  %4990 = icmp slt i32 %4989, 0
  br i1 %4990, label %4991, label %5005

4991:                                             ; preds = %4963
  %4992 = load ptr, ptr %8, align 8, !tbaa !5
  %4993 = getelementptr inbounds %struct.MImage, ptr %4992, i32 0, i32 3
  %4994 = load i32, ptr %19, align 4, !tbaa !16
  %4995 = sext i32 %4994 to i64
  %4996 = getelementptr inbounds [4 x ptr], ptr %4993, i64 0, i64 %4995
  %4997 = load ptr, ptr %4996, align 8, !tbaa !5
  %4998 = load i32, ptr %22, align 4, !tbaa !16
  %4999 = sext i32 %4998 to i64
  %5000 = getelementptr inbounds ptr, ptr %4997, i64 %4999
  %5001 = load ptr, ptr %5000, align 8, !tbaa !5
  %5002 = load i32, ptr %23, align 4, !tbaa !16
  %5003 = sext i32 %5002 to i64
  %5004 = getelementptr inbounds i8, ptr %5001, i64 %5003
  store i8 0, ptr %5004, align 1, !tbaa !20
  br label %5039

5005:                                             ; preds = %4963
  %5006 = load i32, ptr %82, align 4, !tbaa !16
  %5007 = icmp sgt i32 %5006, 255
  br i1 %5007, label %5008, label %5022

5008:                                             ; preds = %5005
  %5009 = load ptr, ptr %8, align 8, !tbaa !5
  %5010 = getelementptr inbounds %struct.MImage, ptr %5009, i32 0, i32 3
  %5011 = load i32, ptr %19, align 4, !tbaa !16
  %5012 = sext i32 %5011 to i64
  %5013 = getelementptr inbounds [4 x ptr], ptr %5010, i64 0, i64 %5012
  %5014 = load ptr, ptr %5013, align 8, !tbaa !5
  %5015 = load i32, ptr %22, align 4, !tbaa !16
  %5016 = sext i32 %5015 to i64
  %5017 = getelementptr inbounds ptr, ptr %5014, i64 %5016
  %5018 = load ptr, ptr %5017, align 8, !tbaa !5
  %5019 = load i32, ptr %23, align 4, !tbaa !16
  %5020 = sext i32 %5019 to i64
  %5021 = getelementptr inbounds i8, ptr %5018, i64 %5020
  store i8 -1, ptr %5021, align 1, !tbaa !20
  br label %5038

5022:                                             ; preds = %5005
  %5023 = load i32, ptr %82, align 4, !tbaa !16
  %5024 = trunc i32 %5023 to i8
  %5025 = load ptr, ptr %8, align 8, !tbaa !5
  %5026 = getelementptr inbounds %struct.MImage, ptr %5025, i32 0, i32 3
  %5027 = load i32, ptr %19, align 4, !tbaa !16
  %5028 = sext i32 %5027 to i64
  %5029 = getelementptr inbounds [4 x ptr], ptr %5026, i64 0, i64 %5028
  %5030 = load ptr, ptr %5029, align 8, !tbaa !5
  %5031 = load i32, ptr %22, align 4, !tbaa !16
  %5032 = sext i32 %5031 to i64
  %5033 = getelementptr inbounds ptr, ptr %5030, i64 %5032
  %5034 = load ptr, ptr %5033, align 8, !tbaa !5
  %5035 = load i32, ptr %23, align 4, !tbaa !16
  %5036 = sext i32 %5035 to i64
  %5037 = getelementptr inbounds i8, ptr %5034, i64 %5036
  store i8 %5024, ptr %5037, align 1, !tbaa !20
  br label %5038

5038:                                             ; preds = %5022, %5008
  br label %5039

5039:                                             ; preds = %5038, %4991
  call void @llvm.lifetime.end.p0(i64 4, ptr %82) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %83) #3
  %5040 = load ptr, ptr %20, align 8, !tbaa !5
  %5041 = load i32, ptr %22, align 4, !tbaa !16
  %5042 = sext i32 %5041 to i64
  %5043 = getelementptr inbounds ptr, ptr %5040, i64 %5042
  %5044 = load ptr, ptr %5043, align 8, !tbaa !5
  %5045 = load i32, ptr %23, align 4, !tbaa !16
  %5046 = sext i32 %5045 to i64
  %5047 = getelementptr inbounds i8, ptr %5044, i64 %5046
  %5048 = load i8, ptr %5047, align 1, !tbaa !20
  %5049 = zext i8 %5048 to i64
  %5050 = getelementptr inbounds [256 x i32], ptr %16, i64 0, i64 %5049
  %5051 = load i32, ptr %5050, align 4, !tbaa !16
  %5052 = load ptr, ptr %21, align 8, !tbaa !5
  %5053 = load i32, ptr %22, align 4, !tbaa !16
  %5054 = sext i32 %5053 to i64
  %5055 = getelementptr inbounds ptr, ptr %5052, i64 %5054
  %5056 = load ptr, ptr %5055, align 8, !tbaa !5
  %5057 = load i32, ptr %23, align 4, !tbaa !16
  %5058 = sext i32 %5057 to i64
  %5059 = getelementptr inbounds i8, ptr %5056, i64 %5058
  %5060 = load i8, ptr %5059, align 1, !tbaa !20
  %5061 = zext i8 %5060 to i64
  %5062 = getelementptr inbounds [256 x i32], ptr %17, i64 0, i64 %5061
  %5063 = load i32, ptr %5062, align 4, !tbaa !16
  %5064 = add nsw i32 %5051, %5063
  store i32 %5064, ptr %83, align 4, !tbaa !16
  %5065 = load i32, ptr %83, align 4, !tbaa !16
  %5066 = icmp slt i32 %5065, 0
  br i1 %5066, label %5067, label %5081

5067:                                             ; preds = %5039
  %5068 = load ptr, ptr %8, align 8, !tbaa !5
  %5069 = getelementptr inbounds %struct.MImage, ptr %5068, i32 0, i32 3
  %5070 = load i32, ptr %19, align 4, !tbaa !16
  %5071 = sext i32 %5070 to i64
  %5072 = getelementptr inbounds [4 x ptr], ptr %5069, i64 0, i64 %5071
  %5073 = load ptr, ptr %5072, align 8, !tbaa !5
  %5074 = load i32, ptr %22, align 4, !tbaa !16
  %5075 = sext i32 %5074 to i64
  %5076 = getelementptr inbounds ptr, ptr %5073, i64 %5075
  %5077 = load ptr, ptr %5076, align 8, !tbaa !5
  %5078 = load i32, ptr %23, align 4, !tbaa !16
  %5079 = sext i32 %5078 to i64
  %5080 = getelementptr inbounds i8, ptr %5077, i64 %5079
  store i8 0, ptr %5080, align 1, !tbaa !20
  br label %5115

5081:                                             ; preds = %5039
  %5082 = load i32, ptr %83, align 4, !tbaa !16
  %5083 = icmp sgt i32 %5082, 255
  br i1 %5083, label %5084, label %5098

5084:                                             ; preds = %5081
  %5085 = load ptr, ptr %8, align 8, !tbaa !5
  %5086 = getelementptr inbounds %struct.MImage, ptr %5085, i32 0, i32 3
  %5087 = load i32, ptr %19, align 4, !tbaa !16
  %5088 = sext i32 %5087 to i64
  %5089 = getelementptr inbounds [4 x ptr], ptr %5086, i64 0, i64 %5088
  %5090 = load ptr, ptr %5089, align 8, !tbaa !5
  %5091 = load i32, ptr %22, align 4, !tbaa !16
  %5092 = sext i32 %5091 to i64
  %5093 = getelementptr inbounds ptr, ptr %5090, i64 %5092
  %5094 = load ptr, ptr %5093, align 8, !tbaa !5
  %5095 = load i32, ptr %23, align 4, !tbaa !16
  %5096 = sext i32 %5095 to i64
  %5097 = getelementptr inbounds i8, ptr %5094, i64 %5096
  store i8 -1, ptr %5097, align 1, !tbaa !20
  br label %5114

5098:                                             ; preds = %5081
  %5099 = load i32, ptr %83, align 4, !tbaa !16
  %5100 = trunc i32 %5099 to i8
  %5101 = load ptr, ptr %8, align 8, !tbaa !5
  %5102 = getelementptr inbounds %struct.MImage, ptr %5101, i32 0, i32 3
  %5103 = load i32, ptr %19, align 4, !tbaa !16
  %5104 = sext i32 %5103 to i64
  %5105 = getelementptr inbounds [4 x ptr], ptr %5102, i64 0, i64 %5104
  %5106 = load ptr, ptr %5105, align 8, !tbaa !5
  %5107 = load i32, ptr %22, align 4, !tbaa !16
  %5108 = sext i32 %5107 to i64
  %5109 = getelementptr inbounds ptr, ptr %5106, i64 %5108
  %5110 = load ptr, ptr %5109, align 8, !tbaa !5
  %5111 = load i32, ptr %23, align 4, !tbaa !16
  %5112 = sext i32 %5111 to i64
  %5113 = getelementptr inbounds i8, ptr %5110, i64 %5112
  store i8 %5100, ptr %5113, align 1, !tbaa !20
  br label %5114

5114:                                             ; preds = %5098, %5084
  br label %5115

5115:                                             ; preds = %5114, %5067
  call void @llvm.lifetime.end.p0(i64 4, ptr %83) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %84) #3
  %5116 = load ptr, ptr %20, align 8, !tbaa !5
  %5117 = load i32, ptr %22, align 4, !tbaa !16
  %5118 = sext i32 %5117 to i64
  %5119 = getelementptr inbounds ptr, ptr %5116, i64 %5118
  %5120 = load ptr, ptr %5119, align 8, !tbaa !5
  %5121 = load i32, ptr %23, align 4, !tbaa !16
  %5122 = sext i32 %5121 to i64
  %5123 = getelementptr inbounds i8, ptr %5120, i64 %5122
  %5124 = load i8, ptr %5123, align 1, !tbaa !20
  %5125 = zext i8 %5124 to i64
  %5126 = getelementptr inbounds [256 x i32], ptr %16, i64 0, i64 %5125
  %5127 = load i32, ptr %5126, align 4, !tbaa !16
  %5128 = load ptr, ptr %21, align 8, !tbaa !5
  %5129 = load i32, ptr %22, align 4, !tbaa !16
  %5130 = sext i32 %5129 to i64
  %5131 = getelementptr inbounds ptr, ptr %5128, i64 %5130
  %5132 = load ptr, ptr %5131, align 8, !tbaa !5
  %5133 = load i32, ptr %23, align 4, !tbaa !16
  %5134 = sext i32 %5133 to i64
  %5135 = getelementptr inbounds i8, ptr %5132, i64 %5134
  %5136 = load i8, ptr %5135, align 1, !tbaa !20
  %5137 = zext i8 %5136 to i64
  %5138 = getelementptr inbounds [256 x i32], ptr %17, i64 0, i64 %5137
  %5139 = load i32, ptr %5138, align 4, !tbaa !16
  %5140 = add nsw i32 %5127, %5139
  store i32 %5140, ptr %84, align 4, !tbaa !16
  %5141 = load i32, ptr %84, align 4, !tbaa !16
  %5142 = icmp slt i32 %5141, 0
  br i1 %5142, label %5143, label %5157

5143:                                             ; preds = %5115
  %5144 = load ptr, ptr %8, align 8, !tbaa !5
  %5145 = getelementptr inbounds %struct.MImage, ptr %5144, i32 0, i32 3
  %5146 = load i32, ptr %19, align 4, !tbaa !16
  %5147 = sext i32 %5146 to i64
  %5148 = getelementptr inbounds [4 x ptr], ptr %5145, i64 0, i64 %5147
  %5149 = load ptr, ptr %5148, align 8, !tbaa !5
  %5150 = load i32, ptr %22, align 4, !tbaa !16
  %5151 = sext i32 %5150 to i64
  %5152 = getelementptr inbounds ptr, ptr %5149, i64 %5151
  %5153 = load ptr, ptr %5152, align 8, !tbaa !5
  %5154 = load i32, ptr %23, align 4, !tbaa !16
  %5155 = sext i32 %5154 to i64
  %5156 = getelementptr inbounds i8, ptr %5153, i64 %5155
  store i8 0, ptr %5156, align 1, !tbaa !20
  br label %5191

5157:                                             ; preds = %5115
  %5158 = load i32, ptr %84, align 4, !tbaa !16
  %5159 = icmp sgt i32 %5158, 255
  br i1 %5159, label %5160, label %5174

5160:                                             ; preds = %5157
  %5161 = load ptr, ptr %8, align 8, !tbaa !5
  %5162 = getelementptr inbounds %struct.MImage, ptr %5161, i32 0, i32 3
  %5163 = load i32, ptr %19, align 4, !tbaa !16
  %5164 = sext i32 %5163 to i64
  %5165 = getelementptr inbounds [4 x ptr], ptr %5162, i64 0, i64 %5164
  %5166 = load ptr, ptr %5165, align 8, !tbaa !5
  %5167 = load i32, ptr %22, align 4, !tbaa !16
  %5168 = sext i32 %5167 to i64
  %5169 = getelementptr inbounds ptr, ptr %5166, i64 %5168
  %5170 = load ptr, ptr %5169, align 8, !tbaa !5
  %5171 = load i32, ptr %23, align 4, !tbaa !16
  %5172 = sext i32 %5171 to i64
  %5173 = getelementptr inbounds i8, ptr %5170, i64 %5172
  store i8 -1, ptr %5173, align 1, !tbaa !20
  br label %5190

5174:                                             ; preds = %5157
  %5175 = load i32, ptr %84, align 4, !tbaa !16
  %5176 = trunc i32 %5175 to i8
  %5177 = load ptr, ptr %8, align 8, !tbaa !5
  %5178 = getelementptr inbounds %struct.MImage, ptr %5177, i32 0, i32 3
  %5179 = load i32, ptr %19, align 4, !tbaa !16
  %5180 = sext i32 %5179 to i64
  %5181 = getelementptr inbounds [4 x ptr], ptr %5178, i64 0, i64 %5180
  %5182 = load ptr, ptr %5181, align 8, !tbaa !5
  %5183 = load i32, ptr %22, align 4, !tbaa !16
  %5184 = sext i32 %5183 to i64
  %5185 = getelementptr inbounds ptr, ptr %5182, i64 %5184
  %5186 = load ptr, ptr %5185, align 8, !tbaa !5
  %5187 = load i32, ptr %23, align 4, !tbaa !16
  %5188 = sext i32 %5187 to i64
  %5189 = getelementptr inbounds i8, ptr %5186, i64 %5188
  store i8 %5176, ptr %5189, align 1, !tbaa !20
  br label %5190

5190:                                             ; preds = %5174, %5160
  br label %5191

5191:                                             ; preds = %5190, %5143
  call void @llvm.lifetime.end.p0(i64 4, ptr %84) #3
  br label %10946

5192:                                             ; preds = %4500
  %5193 = load ptr, ptr %8, align 8, !tbaa !5
  %5194 = getelementptr inbounds %struct.MImage, ptr %5193, i32 0, i32 2
  %5195 = load i32, ptr %5194, align 8, !tbaa !15
  %5196 = load i32, ptr %23, align 4, !tbaa !16
  %5197 = sub nsw i32 %5195, %5196
  %5198 = icmp eq i32 %5197, 10
  br i1 %5198, label %5199, label %5960

5199:                                             ; preds = %5192
  call void @llvm.lifetime.start.p0(i64 4, ptr %85) #3
  %5200 = load ptr, ptr %20, align 8, !tbaa !5
  %5201 = load i32, ptr %22, align 4, !tbaa !16
  %5202 = sext i32 %5201 to i64
  %5203 = getelementptr inbounds ptr, ptr %5200, i64 %5202
  %5204 = load ptr, ptr %5203, align 8, !tbaa !5
  %5205 = load i32, ptr %23, align 4, !tbaa !16
  %5206 = sext i32 %5205 to i64
  %5207 = getelementptr inbounds i8, ptr %5204, i64 %5206
  %5208 = load i8, ptr %5207, align 1, !tbaa !20
  %5209 = zext i8 %5208 to i64
  %5210 = getelementptr inbounds [256 x i32], ptr %16, i64 0, i64 %5209
  %5211 = load i32, ptr %5210, align 4, !tbaa !16
  %5212 = load ptr, ptr %21, align 8, !tbaa !5
  %5213 = load i32, ptr %22, align 4, !tbaa !16
  %5214 = sext i32 %5213 to i64
  %5215 = getelementptr inbounds ptr, ptr %5212, i64 %5214
  %5216 = load ptr, ptr %5215, align 8, !tbaa !5
  %5217 = load i32, ptr %23, align 4, !tbaa !16
  %5218 = sext i32 %5217 to i64
  %5219 = getelementptr inbounds i8, ptr %5216, i64 %5218
  %5220 = load i8, ptr %5219, align 1, !tbaa !20
  %5221 = zext i8 %5220 to i64
  %5222 = getelementptr inbounds [256 x i32], ptr %17, i64 0, i64 %5221
  %5223 = load i32, ptr %5222, align 4, !tbaa !16
  %5224 = add nsw i32 %5211, %5223
  store i32 %5224, ptr %85, align 4, !tbaa !16
  %5225 = load i32, ptr %85, align 4, !tbaa !16
  %5226 = icmp slt i32 %5225, 0
  br i1 %5226, label %5227, label %5241

5227:                                             ; preds = %5199
  %5228 = load ptr, ptr %8, align 8, !tbaa !5
  %5229 = getelementptr inbounds %struct.MImage, ptr %5228, i32 0, i32 3
  %5230 = load i32, ptr %19, align 4, !tbaa !16
  %5231 = sext i32 %5230 to i64
  %5232 = getelementptr inbounds [4 x ptr], ptr %5229, i64 0, i64 %5231
  %5233 = load ptr, ptr %5232, align 8, !tbaa !5
  %5234 = load i32, ptr %22, align 4, !tbaa !16
  %5235 = sext i32 %5234 to i64
  %5236 = getelementptr inbounds ptr, ptr %5233, i64 %5235
  %5237 = load ptr, ptr %5236, align 8, !tbaa !5
  %5238 = load i32, ptr %23, align 4, !tbaa !16
  %5239 = sext i32 %5238 to i64
  %5240 = getelementptr inbounds i8, ptr %5237, i64 %5239
  store i8 0, ptr %5240, align 1, !tbaa !20
  br label %5275

5241:                                             ; preds = %5199
  %5242 = load i32, ptr %85, align 4, !tbaa !16
  %5243 = icmp sgt i32 %5242, 255
  br i1 %5243, label %5244, label %5258

5244:                                             ; preds = %5241
  %5245 = load ptr, ptr %8, align 8, !tbaa !5
  %5246 = getelementptr inbounds %struct.MImage, ptr %5245, i32 0, i32 3
  %5247 = load i32, ptr %19, align 4, !tbaa !16
  %5248 = sext i32 %5247 to i64
  %5249 = getelementptr inbounds [4 x ptr], ptr %5246, i64 0, i64 %5248
  %5250 = load ptr, ptr %5249, align 8, !tbaa !5
  %5251 = load i32, ptr %22, align 4, !tbaa !16
  %5252 = sext i32 %5251 to i64
  %5253 = getelementptr inbounds ptr, ptr %5250, i64 %5252
  %5254 = load ptr, ptr %5253, align 8, !tbaa !5
  %5255 = load i32, ptr %23, align 4, !tbaa !16
  %5256 = sext i32 %5255 to i64
  %5257 = getelementptr inbounds i8, ptr %5254, i64 %5256
  store i8 -1, ptr %5257, align 1, !tbaa !20
  br label %5274

5258:                                             ; preds = %5241
  %5259 = load i32, ptr %85, align 4, !tbaa !16
  %5260 = trunc i32 %5259 to i8
  %5261 = load ptr, ptr %8, align 8, !tbaa !5
  %5262 = getelementptr inbounds %struct.MImage, ptr %5261, i32 0, i32 3
  %5263 = load i32, ptr %19, align 4, !tbaa !16
  %5264 = sext i32 %5263 to i64
  %5265 = getelementptr inbounds [4 x ptr], ptr %5262, i64 0, i64 %5264
  %5266 = load ptr, ptr %5265, align 8, !tbaa !5
  %5267 = load i32, ptr %22, align 4, !tbaa !16
  %5268 = sext i32 %5267 to i64
  %5269 = getelementptr inbounds ptr, ptr %5266, i64 %5268
  %5270 = load ptr, ptr %5269, align 8, !tbaa !5
  %5271 = load i32, ptr %23, align 4, !tbaa !16
  %5272 = sext i32 %5271 to i64
  %5273 = getelementptr inbounds i8, ptr %5270, i64 %5272
  store i8 %5260, ptr %5273, align 1, !tbaa !20
  br label %5274

5274:                                             ; preds = %5258, %5244
  br label %5275

5275:                                             ; preds = %5274, %5227
  call void @llvm.lifetime.end.p0(i64 4, ptr %85) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %86) #3
  %5276 = load ptr, ptr %20, align 8, !tbaa !5
  %5277 = load i32, ptr %22, align 4, !tbaa !16
  %5278 = sext i32 %5277 to i64
  %5279 = getelementptr inbounds ptr, ptr %5276, i64 %5278
  %5280 = load ptr, ptr %5279, align 8, !tbaa !5
  %5281 = load i32, ptr %23, align 4, !tbaa !16
  %5282 = sext i32 %5281 to i64
  %5283 = getelementptr inbounds i8, ptr %5280, i64 %5282
  %5284 = load i8, ptr %5283, align 1, !tbaa !20
  %5285 = zext i8 %5284 to i64
  %5286 = getelementptr inbounds [256 x i32], ptr %16, i64 0, i64 %5285
  %5287 = load i32, ptr %5286, align 4, !tbaa !16
  %5288 = load ptr, ptr %21, align 8, !tbaa !5
  %5289 = load i32, ptr %22, align 4, !tbaa !16
  %5290 = sext i32 %5289 to i64
  %5291 = getelementptr inbounds ptr, ptr %5288, i64 %5290
  %5292 = load ptr, ptr %5291, align 8, !tbaa !5
  %5293 = load i32, ptr %23, align 4, !tbaa !16
  %5294 = sext i32 %5293 to i64
  %5295 = getelementptr inbounds i8, ptr %5292, i64 %5294
  %5296 = load i8, ptr %5295, align 1, !tbaa !20
  %5297 = zext i8 %5296 to i64
  %5298 = getelementptr inbounds [256 x i32], ptr %17, i64 0, i64 %5297
  %5299 = load i32, ptr %5298, align 4, !tbaa !16
  %5300 = add nsw i32 %5287, %5299
  store i32 %5300, ptr %86, align 4, !tbaa !16
  %5301 = load i32, ptr %86, align 4, !tbaa !16
  %5302 = icmp slt i32 %5301, 0
  br i1 %5302, label %5303, label %5317

5303:                                             ; preds = %5275
  %5304 = load ptr, ptr %8, align 8, !tbaa !5
  %5305 = getelementptr inbounds %struct.MImage, ptr %5304, i32 0, i32 3
  %5306 = load i32, ptr %19, align 4, !tbaa !16
  %5307 = sext i32 %5306 to i64
  %5308 = getelementptr inbounds [4 x ptr], ptr %5305, i64 0, i64 %5307
  %5309 = load ptr, ptr %5308, align 8, !tbaa !5
  %5310 = load i32, ptr %22, align 4, !tbaa !16
  %5311 = sext i32 %5310 to i64
  %5312 = getelementptr inbounds ptr, ptr %5309, i64 %5311
  %5313 = load ptr, ptr %5312, align 8, !tbaa !5
  %5314 = load i32, ptr %23, align 4, !tbaa !16
  %5315 = sext i32 %5314 to i64
  %5316 = getelementptr inbounds i8, ptr %5313, i64 %5315
  store i8 0, ptr %5316, align 1, !tbaa !20
  br label %5351

5317:                                             ; preds = %5275
  %5318 = load i32, ptr %86, align 4, !tbaa !16
  %5319 = icmp sgt i32 %5318, 255
  br i1 %5319, label %5320, label %5334

5320:                                             ; preds = %5317
  %5321 = load ptr, ptr %8, align 8, !tbaa !5
  %5322 = getelementptr inbounds %struct.MImage, ptr %5321, i32 0, i32 3
  %5323 = load i32, ptr %19, align 4, !tbaa !16
  %5324 = sext i32 %5323 to i64
  %5325 = getelementptr inbounds [4 x ptr], ptr %5322, i64 0, i64 %5324
  %5326 = load ptr, ptr %5325, align 8, !tbaa !5
  %5327 = load i32, ptr %22, align 4, !tbaa !16
  %5328 = sext i32 %5327 to i64
  %5329 = getelementptr inbounds ptr, ptr %5326, i64 %5328
  %5330 = load ptr, ptr %5329, align 8, !tbaa !5
  %5331 = load i32, ptr %23, align 4, !tbaa !16
  %5332 = sext i32 %5331 to i64
  %5333 = getelementptr inbounds i8, ptr %5330, i64 %5332
  store i8 -1, ptr %5333, align 1, !tbaa !20
  br label %5350

5334:                                             ; preds = %5317
  %5335 = load i32, ptr %86, align 4, !tbaa !16
  %5336 = trunc i32 %5335 to i8
  %5337 = load ptr, ptr %8, align 8, !tbaa !5
  %5338 = getelementptr inbounds %struct.MImage, ptr %5337, i32 0, i32 3
  %5339 = load i32, ptr %19, align 4, !tbaa !16
  %5340 = sext i32 %5339 to i64
  %5341 = getelementptr inbounds [4 x ptr], ptr %5338, i64 0, i64 %5340
  %5342 = load ptr, ptr %5341, align 8, !tbaa !5
  %5343 = load i32, ptr %22, align 4, !tbaa !16
  %5344 = sext i32 %5343 to i64
  %5345 = getelementptr inbounds ptr, ptr %5342, i64 %5344
  %5346 = load ptr, ptr %5345, align 8, !tbaa !5
  %5347 = load i32, ptr %23, align 4, !tbaa !16
  %5348 = sext i32 %5347 to i64
  %5349 = getelementptr inbounds i8, ptr %5346, i64 %5348
  store i8 %5336, ptr %5349, align 1, !tbaa !20
  br label %5350

5350:                                             ; preds = %5334, %5320
  br label %5351

5351:                                             ; preds = %5350, %5303
  call void @llvm.lifetime.end.p0(i64 4, ptr %86) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %87) #3
  %5352 = load ptr, ptr %20, align 8, !tbaa !5
  %5353 = load i32, ptr %22, align 4, !tbaa !16
  %5354 = sext i32 %5353 to i64
  %5355 = getelementptr inbounds ptr, ptr %5352, i64 %5354
  %5356 = load ptr, ptr %5355, align 8, !tbaa !5
  %5357 = load i32, ptr %23, align 4, !tbaa !16
  %5358 = sext i32 %5357 to i64
  %5359 = getelementptr inbounds i8, ptr %5356, i64 %5358
  %5360 = load i8, ptr %5359, align 1, !tbaa !20
  %5361 = zext i8 %5360 to i64
  %5362 = getelementptr inbounds [256 x i32], ptr %16, i64 0, i64 %5361
  %5363 = load i32, ptr %5362, align 4, !tbaa !16
  %5364 = load ptr, ptr %21, align 8, !tbaa !5
  %5365 = load i32, ptr %22, align 4, !tbaa !16
  %5366 = sext i32 %5365 to i64
  %5367 = getelementptr inbounds ptr, ptr %5364, i64 %5366
  %5368 = load ptr, ptr %5367, align 8, !tbaa !5
  %5369 = load i32, ptr %23, align 4, !tbaa !16
  %5370 = sext i32 %5369 to i64
  %5371 = getelementptr inbounds i8, ptr %5368, i64 %5370
  %5372 = load i8, ptr %5371, align 1, !tbaa !20
  %5373 = zext i8 %5372 to i64
  %5374 = getelementptr inbounds [256 x i32], ptr %17, i64 0, i64 %5373
  %5375 = load i32, ptr %5374, align 4, !tbaa !16
  %5376 = add nsw i32 %5363, %5375
  store i32 %5376, ptr %87, align 4, !tbaa !16
  %5377 = load i32, ptr %87, align 4, !tbaa !16
  %5378 = icmp slt i32 %5377, 0
  br i1 %5378, label %5379, label %5393

5379:                                             ; preds = %5351
  %5380 = load ptr, ptr %8, align 8, !tbaa !5
  %5381 = getelementptr inbounds %struct.MImage, ptr %5380, i32 0, i32 3
  %5382 = load i32, ptr %19, align 4, !tbaa !16
  %5383 = sext i32 %5382 to i64
  %5384 = getelementptr inbounds [4 x ptr], ptr %5381, i64 0, i64 %5383
  %5385 = load ptr, ptr %5384, align 8, !tbaa !5
  %5386 = load i32, ptr %22, align 4, !tbaa !16
  %5387 = sext i32 %5386 to i64
  %5388 = getelementptr inbounds ptr, ptr %5385, i64 %5387
  %5389 = load ptr, ptr %5388, align 8, !tbaa !5
  %5390 = load i32, ptr %23, align 4, !tbaa !16
  %5391 = sext i32 %5390 to i64
  %5392 = getelementptr inbounds i8, ptr %5389, i64 %5391
  store i8 0, ptr %5392, align 1, !tbaa !20
  br label %5427

5393:                                             ; preds = %5351
  %5394 = load i32, ptr %87, align 4, !tbaa !16
  %5395 = icmp sgt i32 %5394, 255
  br i1 %5395, label %5396, label %5410

5396:                                             ; preds = %5393
  %5397 = load ptr, ptr %8, align 8, !tbaa !5
  %5398 = getelementptr inbounds %struct.MImage, ptr %5397, i32 0, i32 3
  %5399 = load i32, ptr %19, align 4, !tbaa !16
  %5400 = sext i32 %5399 to i64
  %5401 = getelementptr inbounds [4 x ptr], ptr %5398, i64 0, i64 %5400
  %5402 = load ptr, ptr %5401, align 8, !tbaa !5
  %5403 = load i32, ptr %22, align 4, !tbaa !16
  %5404 = sext i32 %5403 to i64
  %5405 = getelementptr inbounds ptr, ptr %5402, i64 %5404
  %5406 = load ptr, ptr %5405, align 8, !tbaa !5
  %5407 = load i32, ptr %23, align 4, !tbaa !16
  %5408 = sext i32 %5407 to i64
  %5409 = getelementptr inbounds i8, ptr %5406, i64 %5408
  store i8 -1, ptr %5409, align 1, !tbaa !20
  br label %5426

5410:                                             ; preds = %5393
  %5411 = load i32, ptr %87, align 4, !tbaa !16
  %5412 = trunc i32 %5411 to i8
  %5413 = load ptr, ptr %8, align 8, !tbaa !5
  %5414 = getelementptr inbounds %struct.MImage, ptr %5413, i32 0, i32 3
  %5415 = load i32, ptr %19, align 4, !tbaa !16
  %5416 = sext i32 %5415 to i64
  %5417 = getelementptr inbounds [4 x ptr], ptr %5414, i64 0, i64 %5416
  %5418 = load ptr, ptr %5417, align 8, !tbaa !5
  %5419 = load i32, ptr %22, align 4, !tbaa !16
  %5420 = sext i32 %5419 to i64
  %5421 = getelementptr inbounds ptr, ptr %5418, i64 %5420
  %5422 = load ptr, ptr %5421, align 8, !tbaa !5
  %5423 = load i32, ptr %23, align 4, !tbaa !16
  %5424 = sext i32 %5423 to i64
  %5425 = getelementptr inbounds i8, ptr %5422, i64 %5424
  store i8 %5412, ptr %5425, align 1, !tbaa !20
  br label %5426

5426:                                             ; preds = %5410, %5396
  br label %5427

5427:                                             ; preds = %5426, %5379
  call void @llvm.lifetime.end.p0(i64 4, ptr %87) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %88) #3
  %5428 = load ptr, ptr %20, align 8, !tbaa !5
  %5429 = load i32, ptr %22, align 4, !tbaa !16
  %5430 = sext i32 %5429 to i64
  %5431 = getelementptr inbounds ptr, ptr %5428, i64 %5430
  %5432 = load ptr, ptr %5431, align 8, !tbaa !5
  %5433 = load i32, ptr %23, align 4, !tbaa !16
  %5434 = sext i32 %5433 to i64
  %5435 = getelementptr inbounds i8, ptr %5432, i64 %5434
  %5436 = load i8, ptr %5435, align 1, !tbaa !20
  %5437 = zext i8 %5436 to i64
  %5438 = getelementptr inbounds [256 x i32], ptr %16, i64 0, i64 %5437
  %5439 = load i32, ptr %5438, align 4, !tbaa !16
  %5440 = load ptr, ptr %21, align 8, !tbaa !5
  %5441 = load i32, ptr %22, align 4, !tbaa !16
  %5442 = sext i32 %5441 to i64
  %5443 = getelementptr inbounds ptr, ptr %5440, i64 %5442
  %5444 = load ptr, ptr %5443, align 8, !tbaa !5
  %5445 = load i32, ptr %23, align 4, !tbaa !16
  %5446 = sext i32 %5445 to i64
  %5447 = getelementptr inbounds i8, ptr %5444, i64 %5446
  %5448 = load i8, ptr %5447, align 1, !tbaa !20
  %5449 = zext i8 %5448 to i64
  %5450 = getelementptr inbounds [256 x i32], ptr %17, i64 0, i64 %5449
  %5451 = load i32, ptr %5450, align 4, !tbaa !16
  %5452 = add nsw i32 %5439, %5451
  store i32 %5452, ptr %88, align 4, !tbaa !16
  %5453 = load i32, ptr %88, align 4, !tbaa !16
  %5454 = icmp slt i32 %5453, 0
  br i1 %5454, label %5455, label %5469

5455:                                             ; preds = %5427
  %5456 = load ptr, ptr %8, align 8, !tbaa !5
  %5457 = getelementptr inbounds %struct.MImage, ptr %5456, i32 0, i32 3
  %5458 = load i32, ptr %19, align 4, !tbaa !16
  %5459 = sext i32 %5458 to i64
  %5460 = getelementptr inbounds [4 x ptr], ptr %5457, i64 0, i64 %5459
  %5461 = load ptr, ptr %5460, align 8, !tbaa !5
  %5462 = load i32, ptr %22, align 4, !tbaa !16
  %5463 = sext i32 %5462 to i64
  %5464 = getelementptr inbounds ptr, ptr %5461, i64 %5463
  %5465 = load ptr, ptr %5464, align 8, !tbaa !5
  %5466 = load i32, ptr %23, align 4, !tbaa !16
  %5467 = sext i32 %5466 to i64
  %5468 = getelementptr inbounds i8, ptr %5465, i64 %5467
  store i8 0, ptr %5468, align 1, !tbaa !20
  br label %5503

5469:                                             ; preds = %5427
  %5470 = load i32, ptr %88, align 4, !tbaa !16
  %5471 = icmp sgt i32 %5470, 255
  br i1 %5471, label %5472, label %5486

5472:                                             ; preds = %5469
  %5473 = load ptr, ptr %8, align 8, !tbaa !5
  %5474 = getelementptr inbounds %struct.MImage, ptr %5473, i32 0, i32 3
  %5475 = load i32, ptr %19, align 4, !tbaa !16
  %5476 = sext i32 %5475 to i64
  %5477 = getelementptr inbounds [4 x ptr], ptr %5474, i64 0, i64 %5476
  %5478 = load ptr, ptr %5477, align 8, !tbaa !5
  %5479 = load i32, ptr %22, align 4, !tbaa !16
  %5480 = sext i32 %5479 to i64
  %5481 = getelementptr inbounds ptr, ptr %5478, i64 %5480
  %5482 = load ptr, ptr %5481, align 8, !tbaa !5
  %5483 = load i32, ptr %23, align 4, !tbaa !16
  %5484 = sext i32 %5483 to i64
  %5485 = getelementptr inbounds i8, ptr %5482, i64 %5484
  store i8 -1, ptr %5485, align 1, !tbaa !20
  br label %5502

5486:                                             ; preds = %5469
  %5487 = load i32, ptr %88, align 4, !tbaa !16
  %5488 = trunc i32 %5487 to i8
  %5489 = load ptr, ptr %8, align 8, !tbaa !5
  %5490 = getelementptr inbounds %struct.MImage, ptr %5489, i32 0, i32 3
  %5491 = load i32, ptr %19, align 4, !tbaa !16
  %5492 = sext i32 %5491 to i64
  %5493 = getelementptr inbounds [4 x ptr], ptr %5490, i64 0, i64 %5492
  %5494 = load ptr, ptr %5493, align 8, !tbaa !5
  %5495 = load i32, ptr %22, align 4, !tbaa !16
  %5496 = sext i32 %5495 to i64
  %5497 = getelementptr inbounds ptr, ptr %5494, i64 %5496
  %5498 = load ptr, ptr %5497, align 8, !tbaa !5
  %5499 = load i32, ptr %23, align 4, !tbaa !16
  %5500 = sext i32 %5499 to i64
  %5501 = getelementptr inbounds i8, ptr %5498, i64 %5500
  store i8 %5488, ptr %5501, align 1, !tbaa !20
  br label %5502

5502:                                             ; preds = %5486, %5472
  br label %5503

5503:                                             ; preds = %5502, %5455
  call void @llvm.lifetime.end.p0(i64 4, ptr %88) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %89) #3
  %5504 = load ptr, ptr %20, align 8, !tbaa !5
  %5505 = load i32, ptr %22, align 4, !tbaa !16
  %5506 = sext i32 %5505 to i64
  %5507 = getelementptr inbounds ptr, ptr %5504, i64 %5506
  %5508 = load ptr, ptr %5507, align 8, !tbaa !5
  %5509 = load i32, ptr %23, align 4, !tbaa !16
  %5510 = sext i32 %5509 to i64
  %5511 = getelementptr inbounds i8, ptr %5508, i64 %5510
  %5512 = load i8, ptr %5511, align 1, !tbaa !20
  %5513 = zext i8 %5512 to i64
  %5514 = getelementptr inbounds [256 x i32], ptr %16, i64 0, i64 %5513
  %5515 = load i32, ptr %5514, align 4, !tbaa !16
  %5516 = load ptr, ptr %21, align 8, !tbaa !5
  %5517 = load i32, ptr %22, align 4, !tbaa !16
  %5518 = sext i32 %5517 to i64
  %5519 = getelementptr inbounds ptr, ptr %5516, i64 %5518
  %5520 = load ptr, ptr %5519, align 8, !tbaa !5
  %5521 = load i32, ptr %23, align 4, !tbaa !16
  %5522 = sext i32 %5521 to i64
  %5523 = getelementptr inbounds i8, ptr %5520, i64 %5522
  %5524 = load i8, ptr %5523, align 1, !tbaa !20
  %5525 = zext i8 %5524 to i64
  %5526 = getelementptr inbounds [256 x i32], ptr %17, i64 0, i64 %5525
  %5527 = load i32, ptr %5526, align 4, !tbaa !16
  %5528 = add nsw i32 %5515, %5527
  store i32 %5528, ptr %89, align 4, !tbaa !16
  %5529 = load i32, ptr %89, align 4, !tbaa !16
  %5530 = icmp slt i32 %5529, 0
  br i1 %5530, label %5531, label %5545

5531:                                             ; preds = %5503
  %5532 = load ptr, ptr %8, align 8, !tbaa !5
  %5533 = getelementptr inbounds %struct.MImage, ptr %5532, i32 0, i32 3
  %5534 = load i32, ptr %19, align 4, !tbaa !16
  %5535 = sext i32 %5534 to i64
  %5536 = getelementptr inbounds [4 x ptr], ptr %5533, i64 0, i64 %5535
  %5537 = load ptr, ptr %5536, align 8, !tbaa !5
  %5538 = load i32, ptr %22, align 4, !tbaa !16
  %5539 = sext i32 %5538 to i64
  %5540 = getelementptr inbounds ptr, ptr %5537, i64 %5539
  %5541 = load ptr, ptr %5540, align 8, !tbaa !5
  %5542 = load i32, ptr %23, align 4, !tbaa !16
  %5543 = sext i32 %5542 to i64
  %5544 = getelementptr inbounds i8, ptr %5541, i64 %5543
  store i8 0, ptr %5544, align 1, !tbaa !20
  br label %5579

5545:                                             ; preds = %5503
  %5546 = load i32, ptr %89, align 4, !tbaa !16
  %5547 = icmp sgt i32 %5546, 255
  br i1 %5547, label %5548, label %5562

5548:                                             ; preds = %5545
  %5549 = load ptr, ptr %8, align 8, !tbaa !5
  %5550 = getelementptr inbounds %struct.MImage, ptr %5549, i32 0, i32 3
  %5551 = load i32, ptr %19, align 4, !tbaa !16
  %5552 = sext i32 %5551 to i64
  %5553 = getelementptr inbounds [4 x ptr], ptr %5550, i64 0, i64 %5552
  %5554 = load ptr, ptr %5553, align 8, !tbaa !5
  %5555 = load i32, ptr %22, align 4, !tbaa !16
  %5556 = sext i32 %5555 to i64
  %5557 = getelementptr inbounds ptr, ptr %5554, i64 %5556
  %5558 = load ptr, ptr %5557, align 8, !tbaa !5
  %5559 = load i32, ptr %23, align 4, !tbaa !16
  %5560 = sext i32 %5559 to i64
  %5561 = getelementptr inbounds i8, ptr %5558, i64 %5560
  store i8 -1, ptr %5561, align 1, !tbaa !20
  br label %5578

5562:                                             ; preds = %5545
  %5563 = load i32, ptr %89, align 4, !tbaa !16
  %5564 = trunc i32 %5563 to i8
  %5565 = load ptr, ptr %8, align 8, !tbaa !5
  %5566 = getelementptr inbounds %struct.MImage, ptr %5565, i32 0, i32 3
  %5567 = load i32, ptr %19, align 4, !tbaa !16
  %5568 = sext i32 %5567 to i64
  %5569 = getelementptr inbounds [4 x ptr], ptr %5566, i64 0, i64 %5568
  %5570 = load ptr, ptr %5569, align 8, !tbaa !5
  %5571 = load i32, ptr %22, align 4, !tbaa !16
  %5572 = sext i32 %5571 to i64
  %5573 = getelementptr inbounds ptr, ptr %5570, i64 %5572
  %5574 = load ptr, ptr %5573, align 8, !tbaa !5
  %5575 = load i32, ptr %23, align 4, !tbaa !16
  %5576 = sext i32 %5575 to i64
  %5577 = getelementptr inbounds i8, ptr %5574, i64 %5576
  store i8 %5564, ptr %5577, align 1, !tbaa !20
  br label %5578

5578:                                             ; preds = %5562, %5548
  br label %5579

5579:                                             ; preds = %5578, %5531
  call void @llvm.lifetime.end.p0(i64 4, ptr %89) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %90) #3
  %5580 = load ptr, ptr %20, align 8, !tbaa !5
  %5581 = load i32, ptr %22, align 4, !tbaa !16
  %5582 = sext i32 %5581 to i64
  %5583 = getelementptr inbounds ptr, ptr %5580, i64 %5582
  %5584 = load ptr, ptr %5583, align 8, !tbaa !5
  %5585 = load i32, ptr %23, align 4, !tbaa !16
  %5586 = sext i32 %5585 to i64
  %5587 = getelementptr inbounds i8, ptr %5584, i64 %5586
  %5588 = load i8, ptr %5587, align 1, !tbaa !20
  %5589 = zext i8 %5588 to i64
  %5590 = getelementptr inbounds [256 x i32], ptr %16, i64 0, i64 %5589
  %5591 = load i32, ptr %5590, align 4, !tbaa !16
  %5592 = load ptr, ptr %21, align 8, !tbaa !5
  %5593 = load i32, ptr %22, align 4, !tbaa !16
  %5594 = sext i32 %5593 to i64
  %5595 = getelementptr inbounds ptr, ptr %5592, i64 %5594
  %5596 = load ptr, ptr %5595, align 8, !tbaa !5
  %5597 = load i32, ptr %23, align 4, !tbaa !16
  %5598 = sext i32 %5597 to i64
  %5599 = getelementptr inbounds i8, ptr %5596, i64 %5598
  %5600 = load i8, ptr %5599, align 1, !tbaa !20
  %5601 = zext i8 %5600 to i64
  %5602 = getelementptr inbounds [256 x i32], ptr %17, i64 0, i64 %5601
  %5603 = load i32, ptr %5602, align 4, !tbaa !16
  %5604 = add nsw i32 %5591, %5603
  store i32 %5604, ptr %90, align 4, !tbaa !16
  %5605 = load i32, ptr %90, align 4, !tbaa !16
  %5606 = icmp slt i32 %5605, 0
  br i1 %5606, label %5607, label %5621

5607:                                             ; preds = %5579
  %5608 = load ptr, ptr %8, align 8, !tbaa !5
  %5609 = getelementptr inbounds %struct.MImage, ptr %5608, i32 0, i32 3
  %5610 = load i32, ptr %19, align 4, !tbaa !16
  %5611 = sext i32 %5610 to i64
  %5612 = getelementptr inbounds [4 x ptr], ptr %5609, i64 0, i64 %5611
  %5613 = load ptr, ptr %5612, align 8, !tbaa !5
  %5614 = load i32, ptr %22, align 4, !tbaa !16
  %5615 = sext i32 %5614 to i64
  %5616 = getelementptr inbounds ptr, ptr %5613, i64 %5615
  %5617 = load ptr, ptr %5616, align 8, !tbaa !5
  %5618 = load i32, ptr %23, align 4, !tbaa !16
  %5619 = sext i32 %5618 to i64
  %5620 = getelementptr inbounds i8, ptr %5617, i64 %5619
  store i8 0, ptr %5620, align 1, !tbaa !20
  br label %5655

5621:                                             ; preds = %5579
  %5622 = load i32, ptr %90, align 4, !tbaa !16
  %5623 = icmp sgt i32 %5622, 255
  br i1 %5623, label %5624, label %5638

5624:                                             ; preds = %5621
  %5625 = load ptr, ptr %8, align 8, !tbaa !5
  %5626 = getelementptr inbounds %struct.MImage, ptr %5625, i32 0, i32 3
  %5627 = load i32, ptr %19, align 4, !tbaa !16
  %5628 = sext i32 %5627 to i64
  %5629 = getelementptr inbounds [4 x ptr], ptr %5626, i64 0, i64 %5628
  %5630 = load ptr, ptr %5629, align 8, !tbaa !5
  %5631 = load i32, ptr %22, align 4, !tbaa !16
  %5632 = sext i32 %5631 to i64
  %5633 = getelementptr inbounds ptr, ptr %5630, i64 %5632
  %5634 = load ptr, ptr %5633, align 8, !tbaa !5
  %5635 = load i32, ptr %23, align 4, !tbaa !16
  %5636 = sext i32 %5635 to i64
  %5637 = getelementptr inbounds i8, ptr %5634, i64 %5636
  store i8 -1, ptr %5637, align 1, !tbaa !20
  br label %5654

5638:                                             ; preds = %5621
  %5639 = load i32, ptr %90, align 4, !tbaa !16
  %5640 = trunc i32 %5639 to i8
  %5641 = load ptr, ptr %8, align 8, !tbaa !5
  %5642 = getelementptr inbounds %struct.MImage, ptr %5641, i32 0, i32 3
  %5643 = load i32, ptr %19, align 4, !tbaa !16
  %5644 = sext i32 %5643 to i64
  %5645 = getelementptr inbounds [4 x ptr], ptr %5642, i64 0, i64 %5644
  %5646 = load ptr, ptr %5645, align 8, !tbaa !5
  %5647 = load i32, ptr %22, align 4, !tbaa !16
  %5648 = sext i32 %5647 to i64
  %5649 = getelementptr inbounds ptr, ptr %5646, i64 %5648
  %5650 = load ptr, ptr %5649, align 8, !tbaa !5
  %5651 = load i32, ptr %23, align 4, !tbaa !16
  %5652 = sext i32 %5651 to i64
  %5653 = getelementptr inbounds i8, ptr %5650, i64 %5652
  store i8 %5640, ptr %5653, align 1, !tbaa !20
  br label %5654

5654:                                             ; preds = %5638, %5624
  br label %5655

5655:                                             ; preds = %5654, %5607
  call void @llvm.lifetime.end.p0(i64 4, ptr %90) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %91) #3
  %5656 = load ptr, ptr %20, align 8, !tbaa !5
  %5657 = load i32, ptr %22, align 4, !tbaa !16
  %5658 = sext i32 %5657 to i64
  %5659 = getelementptr inbounds ptr, ptr %5656, i64 %5658
  %5660 = load ptr, ptr %5659, align 8, !tbaa !5
  %5661 = load i32, ptr %23, align 4, !tbaa !16
  %5662 = sext i32 %5661 to i64
  %5663 = getelementptr inbounds i8, ptr %5660, i64 %5662
  %5664 = load i8, ptr %5663, align 1, !tbaa !20
  %5665 = zext i8 %5664 to i64
  %5666 = getelementptr inbounds [256 x i32], ptr %16, i64 0, i64 %5665
  %5667 = load i32, ptr %5666, align 4, !tbaa !16
  %5668 = load ptr, ptr %21, align 8, !tbaa !5
  %5669 = load i32, ptr %22, align 4, !tbaa !16
  %5670 = sext i32 %5669 to i64
  %5671 = getelementptr inbounds ptr, ptr %5668, i64 %5670
  %5672 = load ptr, ptr %5671, align 8, !tbaa !5
  %5673 = load i32, ptr %23, align 4, !tbaa !16
  %5674 = sext i32 %5673 to i64
  %5675 = getelementptr inbounds i8, ptr %5672, i64 %5674
  %5676 = load i8, ptr %5675, align 1, !tbaa !20
  %5677 = zext i8 %5676 to i64
  %5678 = getelementptr inbounds [256 x i32], ptr %17, i64 0, i64 %5677
  %5679 = load i32, ptr %5678, align 4, !tbaa !16
  %5680 = add nsw i32 %5667, %5679
  store i32 %5680, ptr %91, align 4, !tbaa !16
  %5681 = load i32, ptr %91, align 4, !tbaa !16
  %5682 = icmp slt i32 %5681, 0
  br i1 %5682, label %5683, label %5697

5683:                                             ; preds = %5655
  %5684 = load ptr, ptr %8, align 8, !tbaa !5
  %5685 = getelementptr inbounds %struct.MImage, ptr %5684, i32 0, i32 3
  %5686 = load i32, ptr %19, align 4, !tbaa !16
  %5687 = sext i32 %5686 to i64
  %5688 = getelementptr inbounds [4 x ptr], ptr %5685, i64 0, i64 %5687
  %5689 = load ptr, ptr %5688, align 8, !tbaa !5
  %5690 = load i32, ptr %22, align 4, !tbaa !16
  %5691 = sext i32 %5690 to i64
  %5692 = getelementptr inbounds ptr, ptr %5689, i64 %5691
  %5693 = load ptr, ptr %5692, align 8, !tbaa !5
  %5694 = load i32, ptr %23, align 4, !tbaa !16
  %5695 = sext i32 %5694 to i64
  %5696 = getelementptr inbounds i8, ptr %5693, i64 %5695
  store i8 0, ptr %5696, align 1, !tbaa !20
  br label %5731

5697:                                             ; preds = %5655
  %5698 = load i32, ptr %91, align 4, !tbaa !16
  %5699 = icmp sgt i32 %5698, 255
  br i1 %5699, label %5700, label %5714

5700:                                             ; preds = %5697
  %5701 = load ptr, ptr %8, align 8, !tbaa !5
  %5702 = getelementptr inbounds %struct.MImage, ptr %5701, i32 0, i32 3
  %5703 = load i32, ptr %19, align 4, !tbaa !16
  %5704 = sext i32 %5703 to i64
  %5705 = getelementptr inbounds [4 x ptr], ptr %5702, i64 0, i64 %5704
  %5706 = load ptr, ptr %5705, align 8, !tbaa !5
  %5707 = load i32, ptr %22, align 4, !tbaa !16
  %5708 = sext i32 %5707 to i64
  %5709 = getelementptr inbounds ptr, ptr %5706, i64 %5708
  %5710 = load ptr, ptr %5709, align 8, !tbaa !5
  %5711 = load i32, ptr %23, align 4, !tbaa !16
  %5712 = sext i32 %5711 to i64
  %5713 = getelementptr inbounds i8, ptr %5710, i64 %5712
  store i8 -1, ptr %5713, align 1, !tbaa !20
  br label %5730

5714:                                             ; preds = %5697
  %5715 = load i32, ptr %91, align 4, !tbaa !16
  %5716 = trunc i32 %5715 to i8
  %5717 = load ptr, ptr %8, align 8, !tbaa !5
  %5718 = getelementptr inbounds %struct.MImage, ptr %5717, i32 0, i32 3
  %5719 = load i32, ptr %19, align 4, !tbaa !16
  %5720 = sext i32 %5719 to i64
  %5721 = getelementptr inbounds [4 x ptr], ptr %5718, i64 0, i64 %5720
  %5722 = load ptr, ptr %5721, align 8, !tbaa !5
  %5723 = load i32, ptr %22, align 4, !tbaa !16
  %5724 = sext i32 %5723 to i64
  %5725 = getelementptr inbounds ptr, ptr %5722, i64 %5724
  %5726 = load ptr, ptr %5725, align 8, !tbaa !5
  %5727 = load i32, ptr %23, align 4, !tbaa !16
  %5728 = sext i32 %5727 to i64
  %5729 = getelementptr inbounds i8, ptr %5726, i64 %5728
  store i8 %5716, ptr %5729, align 1, !tbaa !20
  br label %5730

5730:                                             ; preds = %5714, %5700
  br label %5731

5731:                                             ; preds = %5730, %5683
  call void @llvm.lifetime.end.p0(i64 4, ptr %91) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %92) #3
  %5732 = load ptr, ptr %20, align 8, !tbaa !5
  %5733 = load i32, ptr %22, align 4, !tbaa !16
  %5734 = sext i32 %5733 to i64
  %5735 = getelementptr inbounds ptr, ptr %5732, i64 %5734
  %5736 = load ptr, ptr %5735, align 8, !tbaa !5
  %5737 = load i32, ptr %23, align 4, !tbaa !16
  %5738 = sext i32 %5737 to i64
  %5739 = getelementptr inbounds i8, ptr %5736, i64 %5738
  %5740 = load i8, ptr %5739, align 1, !tbaa !20
  %5741 = zext i8 %5740 to i64
  %5742 = getelementptr inbounds [256 x i32], ptr %16, i64 0, i64 %5741
  %5743 = load i32, ptr %5742, align 4, !tbaa !16
  %5744 = load ptr, ptr %21, align 8, !tbaa !5
  %5745 = load i32, ptr %22, align 4, !tbaa !16
  %5746 = sext i32 %5745 to i64
  %5747 = getelementptr inbounds ptr, ptr %5744, i64 %5746
  %5748 = load ptr, ptr %5747, align 8, !tbaa !5
  %5749 = load i32, ptr %23, align 4, !tbaa !16
  %5750 = sext i32 %5749 to i64
  %5751 = getelementptr inbounds i8, ptr %5748, i64 %5750
  %5752 = load i8, ptr %5751, align 1, !tbaa !20
  %5753 = zext i8 %5752 to i64
  %5754 = getelementptr inbounds [256 x i32], ptr %17, i64 0, i64 %5753
  %5755 = load i32, ptr %5754, align 4, !tbaa !16
  %5756 = add nsw i32 %5743, %5755
  store i32 %5756, ptr %92, align 4, !tbaa !16
  %5757 = load i32, ptr %92, align 4, !tbaa !16
  %5758 = icmp slt i32 %5757, 0
  br i1 %5758, label %5759, label %5773

5759:                                             ; preds = %5731
  %5760 = load ptr, ptr %8, align 8, !tbaa !5
  %5761 = getelementptr inbounds %struct.MImage, ptr %5760, i32 0, i32 3
  %5762 = load i32, ptr %19, align 4, !tbaa !16
  %5763 = sext i32 %5762 to i64
  %5764 = getelementptr inbounds [4 x ptr], ptr %5761, i64 0, i64 %5763
  %5765 = load ptr, ptr %5764, align 8, !tbaa !5
  %5766 = load i32, ptr %22, align 4, !tbaa !16
  %5767 = sext i32 %5766 to i64
  %5768 = getelementptr inbounds ptr, ptr %5765, i64 %5767
  %5769 = load ptr, ptr %5768, align 8, !tbaa !5
  %5770 = load i32, ptr %23, align 4, !tbaa !16
  %5771 = sext i32 %5770 to i64
  %5772 = getelementptr inbounds i8, ptr %5769, i64 %5771
  store i8 0, ptr %5772, align 1, !tbaa !20
  br label %5807

5773:                                             ; preds = %5731
  %5774 = load i32, ptr %92, align 4, !tbaa !16
  %5775 = icmp sgt i32 %5774, 255
  br i1 %5775, label %5776, label %5790

5776:                                             ; preds = %5773
  %5777 = load ptr, ptr %8, align 8, !tbaa !5
  %5778 = getelementptr inbounds %struct.MImage, ptr %5777, i32 0, i32 3
  %5779 = load i32, ptr %19, align 4, !tbaa !16
  %5780 = sext i32 %5779 to i64
  %5781 = getelementptr inbounds [4 x ptr], ptr %5778, i64 0, i64 %5780
  %5782 = load ptr, ptr %5781, align 8, !tbaa !5
  %5783 = load i32, ptr %22, align 4, !tbaa !16
  %5784 = sext i32 %5783 to i64
  %5785 = getelementptr inbounds ptr, ptr %5782, i64 %5784
  %5786 = load ptr, ptr %5785, align 8, !tbaa !5
  %5787 = load i32, ptr %23, align 4, !tbaa !16
  %5788 = sext i32 %5787 to i64
  %5789 = getelementptr inbounds i8, ptr %5786, i64 %5788
  store i8 -1, ptr %5789, align 1, !tbaa !20
  br label %5806

5790:                                             ; preds = %5773
  %5791 = load i32, ptr %92, align 4, !tbaa !16
  %5792 = trunc i32 %5791 to i8
  %5793 = load ptr, ptr %8, align 8, !tbaa !5
  %5794 = getelementptr inbounds %struct.MImage, ptr %5793, i32 0, i32 3
  %5795 = load i32, ptr %19, align 4, !tbaa !16
  %5796 = sext i32 %5795 to i64
  %5797 = getelementptr inbounds [4 x ptr], ptr %5794, i64 0, i64 %5796
  %5798 = load ptr, ptr %5797, align 8, !tbaa !5
  %5799 = load i32, ptr %22, align 4, !tbaa !16
  %5800 = sext i32 %5799 to i64
  %5801 = getelementptr inbounds ptr, ptr %5798, i64 %5800
  %5802 = load ptr, ptr %5801, align 8, !tbaa !5
  %5803 = load i32, ptr %23, align 4, !tbaa !16
  %5804 = sext i32 %5803 to i64
  %5805 = getelementptr inbounds i8, ptr %5802, i64 %5804
  store i8 %5792, ptr %5805, align 1, !tbaa !20
  br label %5806

5806:                                             ; preds = %5790, %5776
  br label %5807

5807:                                             ; preds = %5806, %5759
  call void @llvm.lifetime.end.p0(i64 4, ptr %92) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %93) #3
  %5808 = load ptr, ptr %20, align 8, !tbaa !5
  %5809 = load i32, ptr %22, align 4, !tbaa !16
  %5810 = sext i32 %5809 to i64
  %5811 = getelementptr inbounds ptr, ptr %5808, i64 %5810
  %5812 = load ptr, ptr %5811, align 8, !tbaa !5
  %5813 = load i32, ptr %23, align 4, !tbaa !16
  %5814 = sext i32 %5813 to i64
  %5815 = getelementptr inbounds i8, ptr %5812, i64 %5814
  %5816 = load i8, ptr %5815, align 1, !tbaa !20
  %5817 = zext i8 %5816 to i64
  %5818 = getelementptr inbounds [256 x i32], ptr %16, i64 0, i64 %5817
  %5819 = load i32, ptr %5818, align 4, !tbaa !16
  %5820 = load ptr, ptr %21, align 8, !tbaa !5
  %5821 = load i32, ptr %22, align 4, !tbaa !16
  %5822 = sext i32 %5821 to i64
  %5823 = getelementptr inbounds ptr, ptr %5820, i64 %5822
  %5824 = load ptr, ptr %5823, align 8, !tbaa !5
  %5825 = load i32, ptr %23, align 4, !tbaa !16
  %5826 = sext i32 %5825 to i64
  %5827 = getelementptr inbounds i8, ptr %5824, i64 %5826
  %5828 = load i8, ptr %5827, align 1, !tbaa !20
  %5829 = zext i8 %5828 to i64
  %5830 = getelementptr inbounds [256 x i32], ptr %17, i64 0, i64 %5829
  %5831 = load i32, ptr %5830, align 4, !tbaa !16
  %5832 = add nsw i32 %5819, %5831
  store i32 %5832, ptr %93, align 4, !tbaa !16
  %5833 = load i32, ptr %93, align 4, !tbaa !16
  %5834 = icmp slt i32 %5833, 0
  br i1 %5834, label %5835, label %5849

5835:                                             ; preds = %5807
  %5836 = load ptr, ptr %8, align 8, !tbaa !5
  %5837 = getelementptr inbounds %struct.MImage, ptr %5836, i32 0, i32 3
  %5838 = load i32, ptr %19, align 4, !tbaa !16
  %5839 = sext i32 %5838 to i64
  %5840 = getelementptr inbounds [4 x ptr], ptr %5837, i64 0, i64 %5839
  %5841 = load ptr, ptr %5840, align 8, !tbaa !5
  %5842 = load i32, ptr %22, align 4, !tbaa !16
  %5843 = sext i32 %5842 to i64
  %5844 = getelementptr inbounds ptr, ptr %5841, i64 %5843
  %5845 = load ptr, ptr %5844, align 8, !tbaa !5
  %5846 = load i32, ptr %23, align 4, !tbaa !16
  %5847 = sext i32 %5846 to i64
  %5848 = getelementptr inbounds i8, ptr %5845, i64 %5847
  store i8 0, ptr %5848, align 1, !tbaa !20
  br label %5883

5849:                                             ; preds = %5807
  %5850 = load i32, ptr %93, align 4, !tbaa !16
  %5851 = icmp sgt i32 %5850, 255
  br i1 %5851, label %5852, label %5866

5852:                                             ; preds = %5849
  %5853 = load ptr, ptr %8, align 8, !tbaa !5
  %5854 = getelementptr inbounds %struct.MImage, ptr %5853, i32 0, i32 3
  %5855 = load i32, ptr %19, align 4, !tbaa !16
  %5856 = sext i32 %5855 to i64
  %5857 = getelementptr inbounds [4 x ptr], ptr %5854, i64 0, i64 %5856
  %5858 = load ptr, ptr %5857, align 8, !tbaa !5
  %5859 = load i32, ptr %22, align 4, !tbaa !16
  %5860 = sext i32 %5859 to i64
  %5861 = getelementptr inbounds ptr, ptr %5858, i64 %5860
  %5862 = load ptr, ptr %5861, align 8, !tbaa !5
  %5863 = load i32, ptr %23, align 4, !tbaa !16
  %5864 = sext i32 %5863 to i64
  %5865 = getelementptr inbounds i8, ptr %5862, i64 %5864
  store i8 -1, ptr %5865, align 1, !tbaa !20
  br label %5882

5866:                                             ; preds = %5849
  %5867 = load i32, ptr %93, align 4, !tbaa !16
  %5868 = trunc i32 %5867 to i8
  %5869 = load ptr, ptr %8, align 8, !tbaa !5
  %5870 = getelementptr inbounds %struct.MImage, ptr %5869, i32 0, i32 3
  %5871 = load i32, ptr %19, align 4, !tbaa !16
  %5872 = sext i32 %5871 to i64
  %5873 = getelementptr inbounds [4 x ptr], ptr %5870, i64 0, i64 %5872
  %5874 = load ptr, ptr %5873, align 8, !tbaa !5
  %5875 = load i32, ptr %22, align 4, !tbaa !16
  %5876 = sext i32 %5875 to i64
  %5877 = getelementptr inbounds ptr, ptr %5874, i64 %5876
  %5878 = load ptr, ptr %5877, align 8, !tbaa !5
  %5879 = load i32, ptr %23, align 4, !tbaa !16
  %5880 = sext i32 %5879 to i64
  %5881 = getelementptr inbounds i8, ptr %5878, i64 %5880
  store i8 %5868, ptr %5881, align 1, !tbaa !20
  br label %5882

5882:                                             ; preds = %5866, %5852
  br label %5883

5883:                                             ; preds = %5882, %5835
  call void @llvm.lifetime.end.p0(i64 4, ptr %93) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %94) #3
  %5884 = load ptr, ptr %20, align 8, !tbaa !5
  %5885 = load i32, ptr %22, align 4, !tbaa !16
  %5886 = sext i32 %5885 to i64
  %5887 = getelementptr inbounds ptr, ptr %5884, i64 %5886
  %5888 = load ptr, ptr %5887, align 8, !tbaa !5
  %5889 = load i32, ptr %23, align 4, !tbaa !16
  %5890 = sext i32 %5889 to i64
  %5891 = getelementptr inbounds i8, ptr %5888, i64 %5890
  %5892 = load i8, ptr %5891, align 1, !tbaa !20
  %5893 = zext i8 %5892 to i64
  %5894 = getelementptr inbounds [256 x i32], ptr %16, i64 0, i64 %5893
  %5895 = load i32, ptr %5894, align 4, !tbaa !16
  %5896 = load ptr, ptr %21, align 8, !tbaa !5
  %5897 = load i32, ptr %22, align 4, !tbaa !16
  %5898 = sext i32 %5897 to i64
  %5899 = getelementptr inbounds ptr, ptr %5896, i64 %5898
  %5900 = load ptr, ptr %5899, align 8, !tbaa !5
  %5901 = load i32, ptr %23, align 4, !tbaa !16
  %5902 = sext i32 %5901 to i64
  %5903 = getelementptr inbounds i8, ptr %5900, i64 %5902
  %5904 = load i8, ptr %5903, align 1, !tbaa !20
  %5905 = zext i8 %5904 to i64
  %5906 = getelementptr inbounds [256 x i32], ptr %17, i64 0, i64 %5905
  %5907 = load i32, ptr %5906, align 4, !tbaa !16
  %5908 = add nsw i32 %5895, %5907
  store i32 %5908, ptr %94, align 4, !tbaa !16
  %5909 = load i32, ptr %94, align 4, !tbaa !16
  %5910 = icmp slt i32 %5909, 0
  br i1 %5910, label %5911, label %5925

5911:                                             ; preds = %5883
  %5912 = load ptr, ptr %8, align 8, !tbaa !5
  %5913 = getelementptr inbounds %struct.MImage, ptr %5912, i32 0, i32 3
  %5914 = load i32, ptr %19, align 4, !tbaa !16
  %5915 = sext i32 %5914 to i64
  %5916 = getelementptr inbounds [4 x ptr], ptr %5913, i64 0, i64 %5915
  %5917 = load ptr, ptr %5916, align 8, !tbaa !5
  %5918 = load i32, ptr %22, align 4, !tbaa !16
  %5919 = sext i32 %5918 to i64
  %5920 = getelementptr inbounds ptr, ptr %5917, i64 %5919
  %5921 = load ptr, ptr %5920, align 8, !tbaa !5
  %5922 = load i32, ptr %23, align 4, !tbaa !16
  %5923 = sext i32 %5922 to i64
  %5924 = getelementptr inbounds i8, ptr %5921, i64 %5923
  store i8 0, ptr %5924, align 1, !tbaa !20
  br label %5959

5925:                                             ; preds = %5883
  %5926 = load i32, ptr %94, align 4, !tbaa !16
  %5927 = icmp sgt i32 %5926, 255
  br i1 %5927, label %5928, label %5942

5928:                                             ; preds = %5925
  %5929 = load ptr, ptr %8, align 8, !tbaa !5
  %5930 = getelementptr inbounds %struct.MImage, ptr %5929, i32 0, i32 3
  %5931 = load i32, ptr %19, align 4, !tbaa !16
  %5932 = sext i32 %5931 to i64
  %5933 = getelementptr inbounds [4 x ptr], ptr %5930, i64 0, i64 %5932
  %5934 = load ptr, ptr %5933, align 8, !tbaa !5
  %5935 = load i32, ptr %22, align 4, !tbaa !16
  %5936 = sext i32 %5935 to i64
  %5937 = getelementptr inbounds ptr, ptr %5934, i64 %5936
  %5938 = load ptr, ptr %5937, align 8, !tbaa !5
  %5939 = load i32, ptr %23, align 4, !tbaa !16
  %5940 = sext i32 %5939 to i64
  %5941 = getelementptr inbounds i8, ptr %5938, i64 %5940
  store i8 -1, ptr %5941, align 1, !tbaa !20
  br label %5958

5942:                                             ; preds = %5925
  %5943 = load i32, ptr %94, align 4, !tbaa !16
  %5944 = trunc i32 %5943 to i8
  %5945 = load ptr, ptr %8, align 8, !tbaa !5
  %5946 = getelementptr inbounds %struct.MImage, ptr %5945, i32 0, i32 3
  %5947 = load i32, ptr %19, align 4, !tbaa !16
  %5948 = sext i32 %5947 to i64
  %5949 = getelementptr inbounds [4 x ptr], ptr %5946, i64 0, i64 %5948
  %5950 = load ptr, ptr %5949, align 8, !tbaa !5
  %5951 = load i32, ptr %22, align 4, !tbaa !16
  %5952 = sext i32 %5951 to i64
  %5953 = getelementptr inbounds ptr, ptr %5950, i64 %5952
  %5954 = load ptr, ptr %5953, align 8, !tbaa !5
  %5955 = load i32, ptr %23, align 4, !tbaa !16
  %5956 = sext i32 %5955 to i64
  %5957 = getelementptr inbounds i8, ptr %5954, i64 %5956
  store i8 %5944, ptr %5957, align 1, !tbaa !20
  br label %5958

5958:                                             ; preds = %5942, %5928
  br label %5959

5959:                                             ; preds = %5958, %5911
  call void @llvm.lifetime.end.p0(i64 4, ptr %94) #3
  br label %10945

5960:                                             ; preds = %5192
  %5961 = load ptr, ptr %8, align 8, !tbaa !5
  %5962 = getelementptr inbounds %struct.MImage, ptr %5961, i32 0, i32 2
  %5963 = load i32, ptr %5962, align 8, !tbaa !15
  %5964 = load i32, ptr %23, align 4, !tbaa !16
  %5965 = sub nsw i32 %5963, %5964
  %5966 = icmp eq i32 %5965, 11
  br i1 %5966, label %5967, label %6804

5967:                                             ; preds = %5960
  call void @llvm.lifetime.start.p0(i64 4, ptr %95) #3
  %5968 = load ptr, ptr %20, align 8, !tbaa !5
  %5969 = load i32, ptr %22, align 4, !tbaa !16
  %5970 = sext i32 %5969 to i64
  %5971 = getelementptr inbounds ptr, ptr %5968, i64 %5970
  %5972 = load ptr, ptr %5971, align 8, !tbaa !5
  %5973 = load i32, ptr %23, align 4, !tbaa !16
  %5974 = sext i32 %5973 to i64
  %5975 = getelementptr inbounds i8, ptr %5972, i64 %5974
  %5976 = load i8, ptr %5975, align 1, !tbaa !20
  %5977 = zext i8 %5976 to i64
  %5978 = getelementptr inbounds [256 x i32], ptr %16, i64 0, i64 %5977
  %5979 = load i32, ptr %5978, align 4, !tbaa !16
  %5980 = load ptr, ptr %21, align 8, !tbaa !5
  %5981 = load i32, ptr %22, align 4, !tbaa !16
  %5982 = sext i32 %5981 to i64
  %5983 = getelementptr inbounds ptr, ptr %5980, i64 %5982
  %5984 = load ptr, ptr %5983, align 8, !tbaa !5
  %5985 = load i32, ptr %23, align 4, !tbaa !16
  %5986 = sext i32 %5985 to i64
  %5987 = getelementptr inbounds i8, ptr %5984, i64 %5986
  %5988 = load i8, ptr %5987, align 1, !tbaa !20
  %5989 = zext i8 %5988 to i64
  %5990 = getelementptr inbounds [256 x i32], ptr %17, i64 0, i64 %5989
  %5991 = load i32, ptr %5990, align 4, !tbaa !16
  %5992 = add nsw i32 %5979, %5991
  store i32 %5992, ptr %95, align 4, !tbaa !16
  %5993 = load i32, ptr %95, align 4, !tbaa !16
  %5994 = icmp slt i32 %5993, 0
  br i1 %5994, label %5995, label %6009

5995:                                             ; preds = %5967
  %5996 = load ptr, ptr %8, align 8, !tbaa !5
  %5997 = getelementptr inbounds %struct.MImage, ptr %5996, i32 0, i32 3
  %5998 = load i32, ptr %19, align 4, !tbaa !16
  %5999 = sext i32 %5998 to i64
  %6000 = getelementptr inbounds [4 x ptr], ptr %5997, i64 0, i64 %5999
  %6001 = load ptr, ptr %6000, align 8, !tbaa !5
  %6002 = load i32, ptr %22, align 4, !tbaa !16
  %6003 = sext i32 %6002 to i64
  %6004 = getelementptr inbounds ptr, ptr %6001, i64 %6003
  %6005 = load ptr, ptr %6004, align 8, !tbaa !5
  %6006 = load i32, ptr %23, align 4, !tbaa !16
  %6007 = sext i32 %6006 to i64
  %6008 = getelementptr inbounds i8, ptr %6005, i64 %6007
  store i8 0, ptr %6008, align 1, !tbaa !20
  br label %6043

6009:                                             ; preds = %5967
  %6010 = load i32, ptr %95, align 4, !tbaa !16
  %6011 = icmp sgt i32 %6010, 255
  br i1 %6011, label %6012, label %6026

6012:                                             ; preds = %6009
  %6013 = load ptr, ptr %8, align 8, !tbaa !5
  %6014 = getelementptr inbounds %struct.MImage, ptr %6013, i32 0, i32 3
  %6015 = load i32, ptr %19, align 4, !tbaa !16
  %6016 = sext i32 %6015 to i64
  %6017 = getelementptr inbounds [4 x ptr], ptr %6014, i64 0, i64 %6016
  %6018 = load ptr, ptr %6017, align 8, !tbaa !5
  %6019 = load i32, ptr %22, align 4, !tbaa !16
  %6020 = sext i32 %6019 to i64
  %6021 = getelementptr inbounds ptr, ptr %6018, i64 %6020
  %6022 = load ptr, ptr %6021, align 8, !tbaa !5
  %6023 = load i32, ptr %23, align 4, !tbaa !16
  %6024 = sext i32 %6023 to i64
  %6025 = getelementptr inbounds i8, ptr %6022, i64 %6024
  store i8 -1, ptr %6025, align 1, !tbaa !20
  br label %6042

6026:                                             ; preds = %6009
  %6027 = load i32, ptr %95, align 4, !tbaa !16
  %6028 = trunc i32 %6027 to i8
  %6029 = load ptr, ptr %8, align 8, !tbaa !5
  %6030 = getelementptr inbounds %struct.MImage, ptr %6029, i32 0, i32 3
  %6031 = load i32, ptr %19, align 4, !tbaa !16
  %6032 = sext i32 %6031 to i64
  %6033 = getelementptr inbounds [4 x ptr], ptr %6030, i64 0, i64 %6032
  %6034 = load ptr, ptr %6033, align 8, !tbaa !5
  %6035 = load i32, ptr %22, align 4, !tbaa !16
  %6036 = sext i32 %6035 to i64
  %6037 = getelementptr inbounds ptr, ptr %6034, i64 %6036
  %6038 = load ptr, ptr %6037, align 8, !tbaa !5
  %6039 = load i32, ptr %23, align 4, !tbaa !16
  %6040 = sext i32 %6039 to i64
  %6041 = getelementptr inbounds i8, ptr %6038, i64 %6040
  store i8 %6028, ptr %6041, align 1, !tbaa !20
  br label %6042

6042:                                             ; preds = %6026, %6012
  br label %6043

6043:                                             ; preds = %6042, %5995
  call void @llvm.lifetime.end.p0(i64 4, ptr %95) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %96) #3
  %6044 = load ptr, ptr %20, align 8, !tbaa !5
  %6045 = load i32, ptr %22, align 4, !tbaa !16
  %6046 = sext i32 %6045 to i64
  %6047 = getelementptr inbounds ptr, ptr %6044, i64 %6046
  %6048 = load ptr, ptr %6047, align 8, !tbaa !5
  %6049 = load i32, ptr %23, align 4, !tbaa !16
  %6050 = sext i32 %6049 to i64
  %6051 = getelementptr inbounds i8, ptr %6048, i64 %6050
  %6052 = load i8, ptr %6051, align 1, !tbaa !20
  %6053 = zext i8 %6052 to i64
  %6054 = getelementptr inbounds [256 x i32], ptr %16, i64 0, i64 %6053
  %6055 = load i32, ptr %6054, align 4, !tbaa !16
  %6056 = load ptr, ptr %21, align 8, !tbaa !5
  %6057 = load i32, ptr %22, align 4, !tbaa !16
  %6058 = sext i32 %6057 to i64
  %6059 = getelementptr inbounds ptr, ptr %6056, i64 %6058
  %6060 = load ptr, ptr %6059, align 8, !tbaa !5
  %6061 = load i32, ptr %23, align 4, !tbaa !16
  %6062 = sext i32 %6061 to i64
  %6063 = getelementptr inbounds i8, ptr %6060, i64 %6062
  %6064 = load i8, ptr %6063, align 1, !tbaa !20
  %6065 = zext i8 %6064 to i64
  %6066 = getelementptr inbounds [256 x i32], ptr %17, i64 0, i64 %6065
  %6067 = load i32, ptr %6066, align 4, !tbaa !16
  %6068 = add nsw i32 %6055, %6067
  store i32 %6068, ptr %96, align 4, !tbaa !16
  %6069 = load i32, ptr %96, align 4, !tbaa !16
  %6070 = icmp slt i32 %6069, 0
  br i1 %6070, label %6071, label %6085

6071:                                             ; preds = %6043
  %6072 = load ptr, ptr %8, align 8, !tbaa !5
  %6073 = getelementptr inbounds %struct.MImage, ptr %6072, i32 0, i32 3
  %6074 = load i32, ptr %19, align 4, !tbaa !16
  %6075 = sext i32 %6074 to i64
  %6076 = getelementptr inbounds [4 x ptr], ptr %6073, i64 0, i64 %6075
  %6077 = load ptr, ptr %6076, align 8, !tbaa !5
  %6078 = load i32, ptr %22, align 4, !tbaa !16
  %6079 = sext i32 %6078 to i64
  %6080 = getelementptr inbounds ptr, ptr %6077, i64 %6079
  %6081 = load ptr, ptr %6080, align 8, !tbaa !5
  %6082 = load i32, ptr %23, align 4, !tbaa !16
  %6083 = sext i32 %6082 to i64
  %6084 = getelementptr inbounds i8, ptr %6081, i64 %6083
  store i8 0, ptr %6084, align 1, !tbaa !20
  br label %6119

6085:                                             ; preds = %6043
  %6086 = load i32, ptr %96, align 4, !tbaa !16
  %6087 = icmp sgt i32 %6086, 255
  br i1 %6087, label %6088, label %6102

6088:                                             ; preds = %6085
  %6089 = load ptr, ptr %8, align 8, !tbaa !5
  %6090 = getelementptr inbounds %struct.MImage, ptr %6089, i32 0, i32 3
  %6091 = load i32, ptr %19, align 4, !tbaa !16
  %6092 = sext i32 %6091 to i64
  %6093 = getelementptr inbounds [4 x ptr], ptr %6090, i64 0, i64 %6092
  %6094 = load ptr, ptr %6093, align 8, !tbaa !5
  %6095 = load i32, ptr %22, align 4, !tbaa !16
  %6096 = sext i32 %6095 to i64
  %6097 = getelementptr inbounds ptr, ptr %6094, i64 %6096
  %6098 = load ptr, ptr %6097, align 8, !tbaa !5
  %6099 = load i32, ptr %23, align 4, !tbaa !16
  %6100 = sext i32 %6099 to i64
  %6101 = getelementptr inbounds i8, ptr %6098, i64 %6100
  store i8 -1, ptr %6101, align 1, !tbaa !20
  br label %6118

6102:                                             ; preds = %6085
  %6103 = load i32, ptr %96, align 4, !tbaa !16
  %6104 = trunc i32 %6103 to i8
  %6105 = load ptr, ptr %8, align 8, !tbaa !5
  %6106 = getelementptr inbounds %struct.MImage, ptr %6105, i32 0, i32 3
  %6107 = load i32, ptr %19, align 4, !tbaa !16
  %6108 = sext i32 %6107 to i64
  %6109 = getelementptr inbounds [4 x ptr], ptr %6106, i64 0, i64 %6108
  %6110 = load ptr, ptr %6109, align 8, !tbaa !5
  %6111 = load i32, ptr %22, align 4, !tbaa !16
  %6112 = sext i32 %6111 to i64
  %6113 = getelementptr inbounds ptr, ptr %6110, i64 %6112
  %6114 = load ptr, ptr %6113, align 8, !tbaa !5
  %6115 = load i32, ptr %23, align 4, !tbaa !16
  %6116 = sext i32 %6115 to i64
  %6117 = getelementptr inbounds i8, ptr %6114, i64 %6116
  store i8 %6104, ptr %6117, align 1, !tbaa !20
  br label %6118

6118:                                             ; preds = %6102, %6088
  br label %6119

6119:                                             ; preds = %6118, %6071
  call void @llvm.lifetime.end.p0(i64 4, ptr %96) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %97) #3
  %6120 = load ptr, ptr %20, align 8, !tbaa !5
  %6121 = load i32, ptr %22, align 4, !tbaa !16
  %6122 = sext i32 %6121 to i64
  %6123 = getelementptr inbounds ptr, ptr %6120, i64 %6122
  %6124 = load ptr, ptr %6123, align 8, !tbaa !5
  %6125 = load i32, ptr %23, align 4, !tbaa !16
  %6126 = sext i32 %6125 to i64
  %6127 = getelementptr inbounds i8, ptr %6124, i64 %6126
  %6128 = load i8, ptr %6127, align 1, !tbaa !20
  %6129 = zext i8 %6128 to i64
  %6130 = getelementptr inbounds [256 x i32], ptr %16, i64 0, i64 %6129
  %6131 = load i32, ptr %6130, align 4, !tbaa !16
  %6132 = load ptr, ptr %21, align 8, !tbaa !5
  %6133 = load i32, ptr %22, align 4, !tbaa !16
  %6134 = sext i32 %6133 to i64
  %6135 = getelementptr inbounds ptr, ptr %6132, i64 %6134
  %6136 = load ptr, ptr %6135, align 8, !tbaa !5
  %6137 = load i32, ptr %23, align 4, !tbaa !16
  %6138 = sext i32 %6137 to i64
  %6139 = getelementptr inbounds i8, ptr %6136, i64 %6138
  %6140 = load i8, ptr %6139, align 1, !tbaa !20
  %6141 = zext i8 %6140 to i64
  %6142 = getelementptr inbounds [256 x i32], ptr %17, i64 0, i64 %6141
  %6143 = load i32, ptr %6142, align 4, !tbaa !16
  %6144 = add nsw i32 %6131, %6143
  store i32 %6144, ptr %97, align 4, !tbaa !16
  %6145 = load i32, ptr %97, align 4, !tbaa !16
  %6146 = icmp slt i32 %6145, 0
  br i1 %6146, label %6147, label %6161

6147:                                             ; preds = %6119
  %6148 = load ptr, ptr %8, align 8, !tbaa !5
  %6149 = getelementptr inbounds %struct.MImage, ptr %6148, i32 0, i32 3
  %6150 = load i32, ptr %19, align 4, !tbaa !16
  %6151 = sext i32 %6150 to i64
  %6152 = getelementptr inbounds [4 x ptr], ptr %6149, i64 0, i64 %6151
  %6153 = load ptr, ptr %6152, align 8, !tbaa !5
  %6154 = load i32, ptr %22, align 4, !tbaa !16
  %6155 = sext i32 %6154 to i64
  %6156 = getelementptr inbounds ptr, ptr %6153, i64 %6155
  %6157 = load ptr, ptr %6156, align 8, !tbaa !5
  %6158 = load i32, ptr %23, align 4, !tbaa !16
  %6159 = sext i32 %6158 to i64
  %6160 = getelementptr inbounds i8, ptr %6157, i64 %6159
  store i8 0, ptr %6160, align 1, !tbaa !20
  br label %6195

6161:                                             ; preds = %6119
  %6162 = load i32, ptr %97, align 4, !tbaa !16
  %6163 = icmp sgt i32 %6162, 255
  br i1 %6163, label %6164, label %6178

6164:                                             ; preds = %6161
  %6165 = load ptr, ptr %8, align 8, !tbaa !5
  %6166 = getelementptr inbounds %struct.MImage, ptr %6165, i32 0, i32 3
  %6167 = load i32, ptr %19, align 4, !tbaa !16
  %6168 = sext i32 %6167 to i64
  %6169 = getelementptr inbounds [4 x ptr], ptr %6166, i64 0, i64 %6168
  %6170 = load ptr, ptr %6169, align 8, !tbaa !5
  %6171 = load i32, ptr %22, align 4, !tbaa !16
  %6172 = sext i32 %6171 to i64
  %6173 = getelementptr inbounds ptr, ptr %6170, i64 %6172
  %6174 = load ptr, ptr %6173, align 8, !tbaa !5
  %6175 = load i32, ptr %23, align 4, !tbaa !16
  %6176 = sext i32 %6175 to i64
  %6177 = getelementptr inbounds i8, ptr %6174, i64 %6176
  store i8 -1, ptr %6177, align 1, !tbaa !20
  br label %6194

6178:                                             ; preds = %6161
  %6179 = load i32, ptr %97, align 4, !tbaa !16
  %6180 = trunc i32 %6179 to i8
  %6181 = load ptr, ptr %8, align 8, !tbaa !5
  %6182 = getelementptr inbounds %struct.MImage, ptr %6181, i32 0, i32 3
  %6183 = load i32, ptr %19, align 4, !tbaa !16
  %6184 = sext i32 %6183 to i64
  %6185 = getelementptr inbounds [4 x ptr], ptr %6182, i64 0, i64 %6184
  %6186 = load ptr, ptr %6185, align 8, !tbaa !5
  %6187 = load i32, ptr %22, align 4, !tbaa !16
  %6188 = sext i32 %6187 to i64
  %6189 = getelementptr inbounds ptr, ptr %6186, i64 %6188
  %6190 = load ptr, ptr %6189, align 8, !tbaa !5
  %6191 = load i32, ptr %23, align 4, !tbaa !16
  %6192 = sext i32 %6191 to i64
  %6193 = getelementptr inbounds i8, ptr %6190, i64 %6192
  store i8 %6180, ptr %6193, align 1, !tbaa !20
  br label %6194

6194:                                             ; preds = %6178, %6164
  br label %6195

6195:                                             ; preds = %6194, %6147
  call void @llvm.lifetime.end.p0(i64 4, ptr %97) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %98) #3
  %6196 = load ptr, ptr %20, align 8, !tbaa !5
  %6197 = load i32, ptr %22, align 4, !tbaa !16
  %6198 = sext i32 %6197 to i64
  %6199 = getelementptr inbounds ptr, ptr %6196, i64 %6198
  %6200 = load ptr, ptr %6199, align 8, !tbaa !5
  %6201 = load i32, ptr %23, align 4, !tbaa !16
  %6202 = sext i32 %6201 to i64
  %6203 = getelementptr inbounds i8, ptr %6200, i64 %6202
  %6204 = load i8, ptr %6203, align 1, !tbaa !20
  %6205 = zext i8 %6204 to i64
  %6206 = getelementptr inbounds [256 x i32], ptr %16, i64 0, i64 %6205
  %6207 = load i32, ptr %6206, align 4, !tbaa !16
  %6208 = load ptr, ptr %21, align 8, !tbaa !5
  %6209 = load i32, ptr %22, align 4, !tbaa !16
  %6210 = sext i32 %6209 to i64
  %6211 = getelementptr inbounds ptr, ptr %6208, i64 %6210
  %6212 = load ptr, ptr %6211, align 8, !tbaa !5
  %6213 = load i32, ptr %23, align 4, !tbaa !16
  %6214 = sext i32 %6213 to i64
  %6215 = getelementptr inbounds i8, ptr %6212, i64 %6214
  %6216 = load i8, ptr %6215, align 1, !tbaa !20
  %6217 = zext i8 %6216 to i64
  %6218 = getelementptr inbounds [256 x i32], ptr %17, i64 0, i64 %6217
  %6219 = load i32, ptr %6218, align 4, !tbaa !16
  %6220 = add nsw i32 %6207, %6219
  store i32 %6220, ptr %98, align 4, !tbaa !16
  %6221 = load i32, ptr %98, align 4, !tbaa !16
  %6222 = icmp slt i32 %6221, 0
  br i1 %6222, label %6223, label %6237

6223:                                             ; preds = %6195
  %6224 = load ptr, ptr %8, align 8, !tbaa !5
  %6225 = getelementptr inbounds %struct.MImage, ptr %6224, i32 0, i32 3
  %6226 = load i32, ptr %19, align 4, !tbaa !16
  %6227 = sext i32 %6226 to i64
  %6228 = getelementptr inbounds [4 x ptr], ptr %6225, i64 0, i64 %6227
  %6229 = load ptr, ptr %6228, align 8, !tbaa !5
  %6230 = load i32, ptr %22, align 4, !tbaa !16
  %6231 = sext i32 %6230 to i64
  %6232 = getelementptr inbounds ptr, ptr %6229, i64 %6231
  %6233 = load ptr, ptr %6232, align 8, !tbaa !5
  %6234 = load i32, ptr %23, align 4, !tbaa !16
  %6235 = sext i32 %6234 to i64
  %6236 = getelementptr inbounds i8, ptr %6233, i64 %6235
  store i8 0, ptr %6236, align 1, !tbaa !20
  br label %6271

6237:                                             ; preds = %6195
  %6238 = load i32, ptr %98, align 4, !tbaa !16
  %6239 = icmp sgt i32 %6238, 255
  br i1 %6239, label %6240, label %6254

6240:                                             ; preds = %6237
  %6241 = load ptr, ptr %8, align 8, !tbaa !5
  %6242 = getelementptr inbounds %struct.MImage, ptr %6241, i32 0, i32 3
  %6243 = load i32, ptr %19, align 4, !tbaa !16
  %6244 = sext i32 %6243 to i64
  %6245 = getelementptr inbounds [4 x ptr], ptr %6242, i64 0, i64 %6244
  %6246 = load ptr, ptr %6245, align 8, !tbaa !5
  %6247 = load i32, ptr %22, align 4, !tbaa !16
  %6248 = sext i32 %6247 to i64
  %6249 = getelementptr inbounds ptr, ptr %6246, i64 %6248
  %6250 = load ptr, ptr %6249, align 8, !tbaa !5
  %6251 = load i32, ptr %23, align 4, !tbaa !16
  %6252 = sext i32 %6251 to i64
  %6253 = getelementptr inbounds i8, ptr %6250, i64 %6252
  store i8 -1, ptr %6253, align 1, !tbaa !20
  br label %6270

6254:                                             ; preds = %6237
  %6255 = load i32, ptr %98, align 4, !tbaa !16
  %6256 = trunc i32 %6255 to i8
  %6257 = load ptr, ptr %8, align 8, !tbaa !5
  %6258 = getelementptr inbounds %struct.MImage, ptr %6257, i32 0, i32 3
  %6259 = load i32, ptr %19, align 4, !tbaa !16
  %6260 = sext i32 %6259 to i64
  %6261 = getelementptr inbounds [4 x ptr], ptr %6258, i64 0, i64 %6260
  %6262 = load ptr, ptr %6261, align 8, !tbaa !5
  %6263 = load i32, ptr %22, align 4, !tbaa !16
  %6264 = sext i32 %6263 to i64
  %6265 = getelementptr inbounds ptr, ptr %6262, i64 %6264
  %6266 = load ptr, ptr %6265, align 8, !tbaa !5
  %6267 = load i32, ptr %23, align 4, !tbaa !16
  %6268 = sext i32 %6267 to i64
  %6269 = getelementptr inbounds i8, ptr %6266, i64 %6268
  store i8 %6256, ptr %6269, align 1, !tbaa !20
  br label %6270

6270:                                             ; preds = %6254, %6240
  br label %6271

6271:                                             ; preds = %6270, %6223
  call void @llvm.lifetime.end.p0(i64 4, ptr %98) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %99) #3
  %6272 = load ptr, ptr %20, align 8, !tbaa !5
  %6273 = load i32, ptr %22, align 4, !tbaa !16
  %6274 = sext i32 %6273 to i64
  %6275 = getelementptr inbounds ptr, ptr %6272, i64 %6274
  %6276 = load ptr, ptr %6275, align 8, !tbaa !5
  %6277 = load i32, ptr %23, align 4, !tbaa !16
  %6278 = sext i32 %6277 to i64
  %6279 = getelementptr inbounds i8, ptr %6276, i64 %6278
  %6280 = load i8, ptr %6279, align 1, !tbaa !20
  %6281 = zext i8 %6280 to i64
  %6282 = getelementptr inbounds [256 x i32], ptr %16, i64 0, i64 %6281
  %6283 = load i32, ptr %6282, align 4, !tbaa !16
  %6284 = load ptr, ptr %21, align 8, !tbaa !5
  %6285 = load i32, ptr %22, align 4, !tbaa !16
  %6286 = sext i32 %6285 to i64
  %6287 = getelementptr inbounds ptr, ptr %6284, i64 %6286
  %6288 = load ptr, ptr %6287, align 8, !tbaa !5
  %6289 = load i32, ptr %23, align 4, !tbaa !16
  %6290 = sext i32 %6289 to i64
  %6291 = getelementptr inbounds i8, ptr %6288, i64 %6290
  %6292 = load i8, ptr %6291, align 1, !tbaa !20
  %6293 = zext i8 %6292 to i64
  %6294 = getelementptr inbounds [256 x i32], ptr %17, i64 0, i64 %6293
  %6295 = load i32, ptr %6294, align 4, !tbaa !16
  %6296 = add nsw i32 %6283, %6295
  store i32 %6296, ptr %99, align 4, !tbaa !16
  %6297 = load i32, ptr %99, align 4, !tbaa !16
  %6298 = icmp slt i32 %6297, 0
  br i1 %6298, label %6299, label %6313

6299:                                             ; preds = %6271
  %6300 = load ptr, ptr %8, align 8, !tbaa !5
  %6301 = getelementptr inbounds %struct.MImage, ptr %6300, i32 0, i32 3
  %6302 = load i32, ptr %19, align 4, !tbaa !16
  %6303 = sext i32 %6302 to i64
  %6304 = getelementptr inbounds [4 x ptr], ptr %6301, i64 0, i64 %6303
  %6305 = load ptr, ptr %6304, align 8, !tbaa !5
  %6306 = load i32, ptr %22, align 4, !tbaa !16
  %6307 = sext i32 %6306 to i64
  %6308 = getelementptr inbounds ptr, ptr %6305, i64 %6307
  %6309 = load ptr, ptr %6308, align 8, !tbaa !5
  %6310 = load i32, ptr %23, align 4, !tbaa !16
  %6311 = sext i32 %6310 to i64
  %6312 = getelementptr inbounds i8, ptr %6309, i64 %6311
  store i8 0, ptr %6312, align 1, !tbaa !20
  br label %6347

6313:                                             ; preds = %6271
  %6314 = load i32, ptr %99, align 4, !tbaa !16
  %6315 = icmp sgt i32 %6314, 255
  br i1 %6315, label %6316, label %6330

6316:                                             ; preds = %6313
  %6317 = load ptr, ptr %8, align 8, !tbaa !5
  %6318 = getelementptr inbounds %struct.MImage, ptr %6317, i32 0, i32 3
  %6319 = load i32, ptr %19, align 4, !tbaa !16
  %6320 = sext i32 %6319 to i64
  %6321 = getelementptr inbounds [4 x ptr], ptr %6318, i64 0, i64 %6320
  %6322 = load ptr, ptr %6321, align 8, !tbaa !5
  %6323 = load i32, ptr %22, align 4, !tbaa !16
  %6324 = sext i32 %6323 to i64
  %6325 = getelementptr inbounds ptr, ptr %6322, i64 %6324
  %6326 = load ptr, ptr %6325, align 8, !tbaa !5
  %6327 = load i32, ptr %23, align 4, !tbaa !16
  %6328 = sext i32 %6327 to i64
  %6329 = getelementptr inbounds i8, ptr %6326, i64 %6328
  store i8 -1, ptr %6329, align 1, !tbaa !20
  br label %6346

6330:                                             ; preds = %6313
  %6331 = load i32, ptr %99, align 4, !tbaa !16
  %6332 = trunc i32 %6331 to i8
  %6333 = load ptr, ptr %8, align 8, !tbaa !5
  %6334 = getelementptr inbounds %struct.MImage, ptr %6333, i32 0, i32 3
  %6335 = load i32, ptr %19, align 4, !tbaa !16
  %6336 = sext i32 %6335 to i64
  %6337 = getelementptr inbounds [4 x ptr], ptr %6334, i64 0, i64 %6336
  %6338 = load ptr, ptr %6337, align 8, !tbaa !5
  %6339 = load i32, ptr %22, align 4, !tbaa !16
  %6340 = sext i32 %6339 to i64
  %6341 = getelementptr inbounds ptr, ptr %6338, i64 %6340
  %6342 = load ptr, ptr %6341, align 8, !tbaa !5
  %6343 = load i32, ptr %23, align 4, !tbaa !16
  %6344 = sext i32 %6343 to i64
  %6345 = getelementptr inbounds i8, ptr %6342, i64 %6344
  store i8 %6332, ptr %6345, align 1, !tbaa !20
  br label %6346

6346:                                             ; preds = %6330, %6316
  br label %6347

6347:                                             ; preds = %6346, %6299
  call void @llvm.lifetime.end.p0(i64 4, ptr %99) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %100) #3
  %6348 = load ptr, ptr %20, align 8, !tbaa !5
  %6349 = load i32, ptr %22, align 4, !tbaa !16
  %6350 = sext i32 %6349 to i64
  %6351 = getelementptr inbounds ptr, ptr %6348, i64 %6350
  %6352 = load ptr, ptr %6351, align 8, !tbaa !5
  %6353 = load i32, ptr %23, align 4, !tbaa !16
  %6354 = sext i32 %6353 to i64
  %6355 = getelementptr inbounds i8, ptr %6352, i64 %6354
  %6356 = load i8, ptr %6355, align 1, !tbaa !20
  %6357 = zext i8 %6356 to i64
  %6358 = getelementptr inbounds [256 x i32], ptr %16, i64 0, i64 %6357
  %6359 = load i32, ptr %6358, align 4, !tbaa !16
  %6360 = load ptr, ptr %21, align 8, !tbaa !5
  %6361 = load i32, ptr %22, align 4, !tbaa !16
  %6362 = sext i32 %6361 to i64
  %6363 = getelementptr inbounds ptr, ptr %6360, i64 %6362
  %6364 = load ptr, ptr %6363, align 8, !tbaa !5
  %6365 = load i32, ptr %23, align 4, !tbaa !16
  %6366 = sext i32 %6365 to i64
  %6367 = getelementptr inbounds i8, ptr %6364, i64 %6366
  %6368 = load i8, ptr %6367, align 1, !tbaa !20
  %6369 = zext i8 %6368 to i64
  %6370 = getelementptr inbounds [256 x i32], ptr %17, i64 0, i64 %6369
  %6371 = load i32, ptr %6370, align 4, !tbaa !16
  %6372 = add nsw i32 %6359, %6371
  store i32 %6372, ptr %100, align 4, !tbaa !16
  %6373 = load i32, ptr %100, align 4, !tbaa !16
  %6374 = icmp slt i32 %6373, 0
  br i1 %6374, label %6375, label %6389

6375:                                             ; preds = %6347
  %6376 = load ptr, ptr %8, align 8, !tbaa !5
  %6377 = getelementptr inbounds %struct.MImage, ptr %6376, i32 0, i32 3
  %6378 = load i32, ptr %19, align 4, !tbaa !16
  %6379 = sext i32 %6378 to i64
  %6380 = getelementptr inbounds [4 x ptr], ptr %6377, i64 0, i64 %6379
  %6381 = load ptr, ptr %6380, align 8, !tbaa !5
  %6382 = load i32, ptr %22, align 4, !tbaa !16
  %6383 = sext i32 %6382 to i64
  %6384 = getelementptr inbounds ptr, ptr %6381, i64 %6383
  %6385 = load ptr, ptr %6384, align 8, !tbaa !5
  %6386 = load i32, ptr %23, align 4, !tbaa !16
  %6387 = sext i32 %6386 to i64
  %6388 = getelementptr inbounds i8, ptr %6385, i64 %6387
  store i8 0, ptr %6388, align 1, !tbaa !20
  br label %6423

6389:                                             ; preds = %6347
  %6390 = load i32, ptr %100, align 4, !tbaa !16
  %6391 = icmp sgt i32 %6390, 255
  br i1 %6391, label %6392, label %6406

6392:                                             ; preds = %6389
  %6393 = load ptr, ptr %8, align 8, !tbaa !5
  %6394 = getelementptr inbounds %struct.MImage, ptr %6393, i32 0, i32 3
  %6395 = load i32, ptr %19, align 4, !tbaa !16
  %6396 = sext i32 %6395 to i64
  %6397 = getelementptr inbounds [4 x ptr], ptr %6394, i64 0, i64 %6396
  %6398 = load ptr, ptr %6397, align 8, !tbaa !5
  %6399 = load i32, ptr %22, align 4, !tbaa !16
  %6400 = sext i32 %6399 to i64
  %6401 = getelementptr inbounds ptr, ptr %6398, i64 %6400
  %6402 = load ptr, ptr %6401, align 8, !tbaa !5
  %6403 = load i32, ptr %23, align 4, !tbaa !16
  %6404 = sext i32 %6403 to i64
  %6405 = getelementptr inbounds i8, ptr %6402, i64 %6404
  store i8 -1, ptr %6405, align 1, !tbaa !20
  br label %6422

6406:                                             ; preds = %6389
  %6407 = load i32, ptr %100, align 4, !tbaa !16
  %6408 = trunc i32 %6407 to i8
  %6409 = load ptr, ptr %8, align 8, !tbaa !5
  %6410 = getelementptr inbounds %struct.MImage, ptr %6409, i32 0, i32 3
  %6411 = load i32, ptr %19, align 4, !tbaa !16
  %6412 = sext i32 %6411 to i64
  %6413 = getelementptr inbounds [4 x ptr], ptr %6410, i64 0, i64 %6412
  %6414 = load ptr, ptr %6413, align 8, !tbaa !5
  %6415 = load i32, ptr %22, align 4, !tbaa !16
  %6416 = sext i32 %6415 to i64
  %6417 = getelementptr inbounds ptr, ptr %6414, i64 %6416
  %6418 = load ptr, ptr %6417, align 8, !tbaa !5
  %6419 = load i32, ptr %23, align 4, !tbaa !16
  %6420 = sext i32 %6419 to i64
  %6421 = getelementptr inbounds i8, ptr %6418, i64 %6420
  store i8 %6408, ptr %6421, align 1, !tbaa !20
  br label %6422

6422:                                             ; preds = %6406, %6392
  br label %6423

6423:                                             ; preds = %6422, %6375
  call void @llvm.lifetime.end.p0(i64 4, ptr %100) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %101) #3
  %6424 = load ptr, ptr %20, align 8, !tbaa !5
  %6425 = load i32, ptr %22, align 4, !tbaa !16
  %6426 = sext i32 %6425 to i64
  %6427 = getelementptr inbounds ptr, ptr %6424, i64 %6426
  %6428 = load ptr, ptr %6427, align 8, !tbaa !5
  %6429 = load i32, ptr %23, align 4, !tbaa !16
  %6430 = sext i32 %6429 to i64
  %6431 = getelementptr inbounds i8, ptr %6428, i64 %6430
  %6432 = load i8, ptr %6431, align 1, !tbaa !20
  %6433 = zext i8 %6432 to i64
  %6434 = getelementptr inbounds [256 x i32], ptr %16, i64 0, i64 %6433
  %6435 = load i32, ptr %6434, align 4, !tbaa !16
  %6436 = load ptr, ptr %21, align 8, !tbaa !5
  %6437 = load i32, ptr %22, align 4, !tbaa !16
  %6438 = sext i32 %6437 to i64
  %6439 = getelementptr inbounds ptr, ptr %6436, i64 %6438
  %6440 = load ptr, ptr %6439, align 8, !tbaa !5
  %6441 = load i32, ptr %23, align 4, !tbaa !16
  %6442 = sext i32 %6441 to i64
  %6443 = getelementptr inbounds i8, ptr %6440, i64 %6442
  %6444 = load i8, ptr %6443, align 1, !tbaa !20
  %6445 = zext i8 %6444 to i64
  %6446 = getelementptr inbounds [256 x i32], ptr %17, i64 0, i64 %6445
  %6447 = load i32, ptr %6446, align 4, !tbaa !16
  %6448 = add nsw i32 %6435, %6447
  store i32 %6448, ptr %101, align 4, !tbaa !16
  %6449 = load i32, ptr %101, align 4, !tbaa !16
  %6450 = icmp slt i32 %6449, 0
  br i1 %6450, label %6451, label %6465

6451:                                             ; preds = %6423
  %6452 = load ptr, ptr %8, align 8, !tbaa !5
  %6453 = getelementptr inbounds %struct.MImage, ptr %6452, i32 0, i32 3
  %6454 = load i32, ptr %19, align 4, !tbaa !16
  %6455 = sext i32 %6454 to i64
  %6456 = getelementptr inbounds [4 x ptr], ptr %6453, i64 0, i64 %6455
  %6457 = load ptr, ptr %6456, align 8, !tbaa !5
  %6458 = load i32, ptr %22, align 4, !tbaa !16
  %6459 = sext i32 %6458 to i64
  %6460 = getelementptr inbounds ptr, ptr %6457, i64 %6459
  %6461 = load ptr, ptr %6460, align 8, !tbaa !5
  %6462 = load i32, ptr %23, align 4, !tbaa !16
  %6463 = sext i32 %6462 to i64
  %6464 = getelementptr inbounds i8, ptr %6461, i64 %6463
  store i8 0, ptr %6464, align 1, !tbaa !20
  br label %6499

6465:                                             ; preds = %6423
  %6466 = load i32, ptr %101, align 4, !tbaa !16
  %6467 = icmp sgt i32 %6466, 255
  br i1 %6467, label %6468, label %6482

6468:                                             ; preds = %6465
  %6469 = load ptr, ptr %8, align 8, !tbaa !5
  %6470 = getelementptr inbounds %struct.MImage, ptr %6469, i32 0, i32 3
  %6471 = load i32, ptr %19, align 4, !tbaa !16
  %6472 = sext i32 %6471 to i64
  %6473 = getelementptr inbounds [4 x ptr], ptr %6470, i64 0, i64 %6472
  %6474 = load ptr, ptr %6473, align 8, !tbaa !5
  %6475 = load i32, ptr %22, align 4, !tbaa !16
  %6476 = sext i32 %6475 to i64
  %6477 = getelementptr inbounds ptr, ptr %6474, i64 %6476
  %6478 = load ptr, ptr %6477, align 8, !tbaa !5
  %6479 = load i32, ptr %23, align 4, !tbaa !16
  %6480 = sext i32 %6479 to i64
  %6481 = getelementptr inbounds i8, ptr %6478, i64 %6480
  store i8 -1, ptr %6481, align 1, !tbaa !20
  br label %6498

6482:                                             ; preds = %6465
  %6483 = load i32, ptr %101, align 4, !tbaa !16
  %6484 = trunc i32 %6483 to i8
  %6485 = load ptr, ptr %8, align 8, !tbaa !5
  %6486 = getelementptr inbounds %struct.MImage, ptr %6485, i32 0, i32 3
  %6487 = load i32, ptr %19, align 4, !tbaa !16
  %6488 = sext i32 %6487 to i64
  %6489 = getelementptr inbounds [4 x ptr], ptr %6486, i64 0, i64 %6488
  %6490 = load ptr, ptr %6489, align 8, !tbaa !5
  %6491 = load i32, ptr %22, align 4, !tbaa !16
  %6492 = sext i32 %6491 to i64
  %6493 = getelementptr inbounds ptr, ptr %6490, i64 %6492
  %6494 = load ptr, ptr %6493, align 8, !tbaa !5
  %6495 = load i32, ptr %23, align 4, !tbaa !16
  %6496 = sext i32 %6495 to i64
  %6497 = getelementptr inbounds i8, ptr %6494, i64 %6496
  store i8 %6484, ptr %6497, align 1, !tbaa !20
  br label %6498

6498:                                             ; preds = %6482, %6468
  br label %6499

6499:                                             ; preds = %6498, %6451
  call void @llvm.lifetime.end.p0(i64 4, ptr %101) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %102) #3
  %6500 = load ptr, ptr %20, align 8, !tbaa !5
  %6501 = load i32, ptr %22, align 4, !tbaa !16
  %6502 = sext i32 %6501 to i64
  %6503 = getelementptr inbounds ptr, ptr %6500, i64 %6502
  %6504 = load ptr, ptr %6503, align 8, !tbaa !5
  %6505 = load i32, ptr %23, align 4, !tbaa !16
  %6506 = sext i32 %6505 to i64
  %6507 = getelementptr inbounds i8, ptr %6504, i64 %6506
  %6508 = load i8, ptr %6507, align 1, !tbaa !20
  %6509 = zext i8 %6508 to i64
  %6510 = getelementptr inbounds [256 x i32], ptr %16, i64 0, i64 %6509
  %6511 = load i32, ptr %6510, align 4, !tbaa !16
  %6512 = load ptr, ptr %21, align 8, !tbaa !5
  %6513 = load i32, ptr %22, align 4, !tbaa !16
  %6514 = sext i32 %6513 to i64
  %6515 = getelementptr inbounds ptr, ptr %6512, i64 %6514
  %6516 = load ptr, ptr %6515, align 8, !tbaa !5
  %6517 = load i32, ptr %23, align 4, !tbaa !16
  %6518 = sext i32 %6517 to i64
  %6519 = getelementptr inbounds i8, ptr %6516, i64 %6518
  %6520 = load i8, ptr %6519, align 1, !tbaa !20
  %6521 = zext i8 %6520 to i64
  %6522 = getelementptr inbounds [256 x i32], ptr %17, i64 0, i64 %6521
  %6523 = load i32, ptr %6522, align 4, !tbaa !16
  %6524 = add nsw i32 %6511, %6523
  store i32 %6524, ptr %102, align 4, !tbaa !16
  %6525 = load i32, ptr %102, align 4, !tbaa !16
  %6526 = icmp slt i32 %6525, 0
  br i1 %6526, label %6527, label %6541

6527:                                             ; preds = %6499
  %6528 = load ptr, ptr %8, align 8, !tbaa !5
  %6529 = getelementptr inbounds %struct.MImage, ptr %6528, i32 0, i32 3
  %6530 = load i32, ptr %19, align 4, !tbaa !16
  %6531 = sext i32 %6530 to i64
  %6532 = getelementptr inbounds [4 x ptr], ptr %6529, i64 0, i64 %6531
  %6533 = load ptr, ptr %6532, align 8, !tbaa !5
  %6534 = load i32, ptr %22, align 4, !tbaa !16
  %6535 = sext i32 %6534 to i64
  %6536 = getelementptr inbounds ptr, ptr %6533, i64 %6535
  %6537 = load ptr, ptr %6536, align 8, !tbaa !5
  %6538 = load i32, ptr %23, align 4, !tbaa !16
  %6539 = sext i32 %6538 to i64
  %6540 = getelementptr inbounds i8, ptr %6537, i64 %6539
  store i8 0, ptr %6540, align 1, !tbaa !20
  br label %6575

6541:                                             ; preds = %6499
  %6542 = load i32, ptr %102, align 4, !tbaa !16
  %6543 = icmp sgt i32 %6542, 255
  br i1 %6543, label %6544, label %6558

6544:                                             ; preds = %6541
  %6545 = load ptr, ptr %8, align 8, !tbaa !5
  %6546 = getelementptr inbounds %struct.MImage, ptr %6545, i32 0, i32 3
  %6547 = load i32, ptr %19, align 4, !tbaa !16
  %6548 = sext i32 %6547 to i64
  %6549 = getelementptr inbounds [4 x ptr], ptr %6546, i64 0, i64 %6548
  %6550 = load ptr, ptr %6549, align 8, !tbaa !5
  %6551 = load i32, ptr %22, align 4, !tbaa !16
  %6552 = sext i32 %6551 to i64
  %6553 = getelementptr inbounds ptr, ptr %6550, i64 %6552
  %6554 = load ptr, ptr %6553, align 8, !tbaa !5
  %6555 = load i32, ptr %23, align 4, !tbaa !16
  %6556 = sext i32 %6555 to i64
  %6557 = getelementptr inbounds i8, ptr %6554, i64 %6556
  store i8 -1, ptr %6557, align 1, !tbaa !20
  br label %6574

6558:                                             ; preds = %6541
  %6559 = load i32, ptr %102, align 4, !tbaa !16
  %6560 = trunc i32 %6559 to i8
  %6561 = load ptr, ptr %8, align 8, !tbaa !5
  %6562 = getelementptr inbounds %struct.MImage, ptr %6561, i32 0, i32 3
  %6563 = load i32, ptr %19, align 4, !tbaa !16
  %6564 = sext i32 %6563 to i64
  %6565 = getelementptr inbounds [4 x ptr], ptr %6562, i64 0, i64 %6564
  %6566 = load ptr, ptr %6565, align 8, !tbaa !5
  %6567 = load i32, ptr %22, align 4, !tbaa !16
  %6568 = sext i32 %6567 to i64
  %6569 = getelementptr inbounds ptr, ptr %6566, i64 %6568
  %6570 = load ptr, ptr %6569, align 8, !tbaa !5
  %6571 = load i32, ptr %23, align 4, !tbaa !16
  %6572 = sext i32 %6571 to i64
  %6573 = getelementptr inbounds i8, ptr %6570, i64 %6572
  store i8 %6560, ptr %6573, align 1, !tbaa !20
  br label %6574

6574:                                             ; preds = %6558, %6544
  br label %6575

6575:                                             ; preds = %6574, %6527
  call void @llvm.lifetime.end.p0(i64 4, ptr %102) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %103) #3
  %6576 = load ptr, ptr %20, align 8, !tbaa !5
  %6577 = load i32, ptr %22, align 4, !tbaa !16
  %6578 = sext i32 %6577 to i64
  %6579 = getelementptr inbounds ptr, ptr %6576, i64 %6578
  %6580 = load ptr, ptr %6579, align 8, !tbaa !5
  %6581 = load i32, ptr %23, align 4, !tbaa !16
  %6582 = sext i32 %6581 to i64
  %6583 = getelementptr inbounds i8, ptr %6580, i64 %6582
  %6584 = load i8, ptr %6583, align 1, !tbaa !20
  %6585 = zext i8 %6584 to i64
  %6586 = getelementptr inbounds [256 x i32], ptr %16, i64 0, i64 %6585
  %6587 = load i32, ptr %6586, align 4, !tbaa !16
  %6588 = load ptr, ptr %21, align 8, !tbaa !5
  %6589 = load i32, ptr %22, align 4, !tbaa !16
  %6590 = sext i32 %6589 to i64
  %6591 = getelementptr inbounds ptr, ptr %6588, i64 %6590
  %6592 = load ptr, ptr %6591, align 8, !tbaa !5
  %6593 = load i32, ptr %23, align 4, !tbaa !16
  %6594 = sext i32 %6593 to i64
  %6595 = getelementptr inbounds i8, ptr %6592, i64 %6594
  %6596 = load i8, ptr %6595, align 1, !tbaa !20
  %6597 = zext i8 %6596 to i64
  %6598 = getelementptr inbounds [256 x i32], ptr %17, i64 0, i64 %6597
  %6599 = load i32, ptr %6598, align 4, !tbaa !16
  %6600 = add nsw i32 %6587, %6599
  store i32 %6600, ptr %103, align 4, !tbaa !16
  %6601 = load i32, ptr %103, align 4, !tbaa !16
  %6602 = icmp slt i32 %6601, 0
  br i1 %6602, label %6603, label %6617

6603:                                             ; preds = %6575
  %6604 = load ptr, ptr %8, align 8, !tbaa !5
  %6605 = getelementptr inbounds %struct.MImage, ptr %6604, i32 0, i32 3
  %6606 = load i32, ptr %19, align 4, !tbaa !16
  %6607 = sext i32 %6606 to i64
  %6608 = getelementptr inbounds [4 x ptr], ptr %6605, i64 0, i64 %6607
  %6609 = load ptr, ptr %6608, align 8, !tbaa !5
  %6610 = load i32, ptr %22, align 4, !tbaa !16
  %6611 = sext i32 %6610 to i64
  %6612 = getelementptr inbounds ptr, ptr %6609, i64 %6611
  %6613 = load ptr, ptr %6612, align 8, !tbaa !5
  %6614 = load i32, ptr %23, align 4, !tbaa !16
  %6615 = sext i32 %6614 to i64
  %6616 = getelementptr inbounds i8, ptr %6613, i64 %6615
  store i8 0, ptr %6616, align 1, !tbaa !20
  br label %6651

6617:                                             ; preds = %6575
  %6618 = load i32, ptr %103, align 4, !tbaa !16
  %6619 = icmp sgt i32 %6618, 255
  br i1 %6619, label %6620, label %6634

6620:                                             ; preds = %6617
  %6621 = load ptr, ptr %8, align 8, !tbaa !5
  %6622 = getelementptr inbounds %struct.MImage, ptr %6621, i32 0, i32 3
  %6623 = load i32, ptr %19, align 4, !tbaa !16
  %6624 = sext i32 %6623 to i64
  %6625 = getelementptr inbounds [4 x ptr], ptr %6622, i64 0, i64 %6624
  %6626 = load ptr, ptr %6625, align 8, !tbaa !5
  %6627 = load i32, ptr %22, align 4, !tbaa !16
  %6628 = sext i32 %6627 to i64
  %6629 = getelementptr inbounds ptr, ptr %6626, i64 %6628
  %6630 = load ptr, ptr %6629, align 8, !tbaa !5
  %6631 = load i32, ptr %23, align 4, !tbaa !16
  %6632 = sext i32 %6631 to i64
  %6633 = getelementptr inbounds i8, ptr %6630, i64 %6632
  store i8 -1, ptr %6633, align 1, !tbaa !20
  br label %6650

6634:                                             ; preds = %6617
  %6635 = load i32, ptr %103, align 4, !tbaa !16
  %6636 = trunc i32 %6635 to i8
  %6637 = load ptr, ptr %8, align 8, !tbaa !5
  %6638 = getelementptr inbounds %struct.MImage, ptr %6637, i32 0, i32 3
  %6639 = load i32, ptr %19, align 4, !tbaa !16
  %6640 = sext i32 %6639 to i64
  %6641 = getelementptr inbounds [4 x ptr], ptr %6638, i64 0, i64 %6640
  %6642 = load ptr, ptr %6641, align 8, !tbaa !5
  %6643 = load i32, ptr %22, align 4, !tbaa !16
  %6644 = sext i32 %6643 to i64
  %6645 = getelementptr inbounds ptr, ptr %6642, i64 %6644
  %6646 = load ptr, ptr %6645, align 8, !tbaa !5
  %6647 = load i32, ptr %23, align 4, !tbaa !16
  %6648 = sext i32 %6647 to i64
  %6649 = getelementptr inbounds i8, ptr %6646, i64 %6648
  store i8 %6636, ptr %6649, align 1, !tbaa !20
  br label %6650

6650:                                             ; preds = %6634, %6620
  br label %6651

6651:                                             ; preds = %6650, %6603
  call void @llvm.lifetime.end.p0(i64 4, ptr %103) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %104) #3
  %6652 = load ptr, ptr %20, align 8, !tbaa !5
  %6653 = load i32, ptr %22, align 4, !tbaa !16
  %6654 = sext i32 %6653 to i64
  %6655 = getelementptr inbounds ptr, ptr %6652, i64 %6654
  %6656 = load ptr, ptr %6655, align 8, !tbaa !5
  %6657 = load i32, ptr %23, align 4, !tbaa !16
  %6658 = sext i32 %6657 to i64
  %6659 = getelementptr inbounds i8, ptr %6656, i64 %6658
  %6660 = load i8, ptr %6659, align 1, !tbaa !20
  %6661 = zext i8 %6660 to i64
  %6662 = getelementptr inbounds [256 x i32], ptr %16, i64 0, i64 %6661
  %6663 = load i32, ptr %6662, align 4, !tbaa !16
  %6664 = load ptr, ptr %21, align 8, !tbaa !5
  %6665 = load i32, ptr %22, align 4, !tbaa !16
  %6666 = sext i32 %6665 to i64
  %6667 = getelementptr inbounds ptr, ptr %6664, i64 %6666
  %6668 = load ptr, ptr %6667, align 8, !tbaa !5
  %6669 = load i32, ptr %23, align 4, !tbaa !16
  %6670 = sext i32 %6669 to i64
  %6671 = getelementptr inbounds i8, ptr %6668, i64 %6670
  %6672 = load i8, ptr %6671, align 1, !tbaa !20
  %6673 = zext i8 %6672 to i64
  %6674 = getelementptr inbounds [256 x i32], ptr %17, i64 0, i64 %6673
  %6675 = load i32, ptr %6674, align 4, !tbaa !16
  %6676 = add nsw i32 %6663, %6675
  store i32 %6676, ptr %104, align 4, !tbaa !16
  %6677 = load i32, ptr %104, align 4, !tbaa !16
  %6678 = icmp slt i32 %6677, 0
  br i1 %6678, label %6679, label %6693

6679:                                             ; preds = %6651
  %6680 = load ptr, ptr %8, align 8, !tbaa !5
  %6681 = getelementptr inbounds %struct.MImage, ptr %6680, i32 0, i32 3
  %6682 = load i32, ptr %19, align 4, !tbaa !16
  %6683 = sext i32 %6682 to i64
  %6684 = getelementptr inbounds [4 x ptr], ptr %6681, i64 0, i64 %6683
  %6685 = load ptr, ptr %6684, align 8, !tbaa !5
  %6686 = load i32, ptr %22, align 4, !tbaa !16
  %6687 = sext i32 %6686 to i64
  %6688 = getelementptr inbounds ptr, ptr %6685, i64 %6687
  %6689 = load ptr, ptr %6688, align 8, !tbaa !5
  %6690 = load i32, ptr %23, align 4, !tbaa !16
  %6691 = sext i32 %6690 to i64
  %6692 = getelementptr inbounds i8, ptr %6689, i64 %6691
  store i8 0, ptr %6692, align 1, !tbaa !20
  br label %6727

6693:                                             ; preds = %6651
  %6694 = load i32, ptr %104, align 4, !tbaa !16
  %6695 = icmp sgt i32 %6694, 255
  br i1 %6695, label %6696, label %6710

6696:                                             ; preds = %6693
  %6697 = load ptr, ptr %8, align 8, !tbaa !5
  %6698 = getelementptr inbounds %struct.MImage, ptr %6697, i32 0, i32 3
  %6699 = load i32, ptr %19, align 4, !tbaa !16
  %6700 = sext i32 %6699 to i64
  %6701 = getelementptr inbounds [4 x ptr], ptr %6698, i64 0, i64 %6700
  %6702 = load ptr, ptr %6701, align 8, !tbaa !5
  %6703 = load i32, ptr %22, align 4, !tbaa !16
  %6704 = sext i32 %6703 to i64
  %6705 = getelementptr inbounds ptr, ptr %6702, i64 %6704
  %6706 = load ptr, ptr %6705, align 8, !tbaa !5
  %6707 = load i32, ptr %23, align 4, !tbaa !16
  %6708 = sext i32 %6707 to i64
  %6709 = getelementptr inbounds i8, ptr %6706, i64 %6708
  store i8 -1, ptr %6709, align 1, !tbaa !20
  br label %6726

6710:                                             ; preds = %6693
  %6711 = load i32, ptr %104, align 4, !tbaa !16
  %6712 = trunc i32 %6711 to i8
  %6713 = load ptr, ptr %8, align 8, !tbaa !5
  %6714 = getelementptr inbounds %struct.MImage, ptr %6713, i32 0, i32 3
  %6715 = load i32, ptr %19, align 4, !tbaa !16
  %6716 = sext i32 %6715 to i64
  %6717 = getelementptr inbounds [4 x ptr], ptr %6714, i64 0, i64 %6716
  %6718 = load ptr, ptr %6717, align 8, !tbaa !5
  %6719 = load i32, ptr %22, align 4, !tbaa !16
  %6720 = sext i32 %6719 to i64
  %6721 = getelementptr inbounds ptr, ptr %6718, i64 %6720
  %6722 = load ptr, ptr %6721, align 8, !tbaa !5
  %6723 = load i32, ptr %23, align 4, !tbaa !16
  %6724 = sext i32 %6723 to i64
  %6725 = getelementptr inbounds i8, ptr %6722, i64 %6724
  store i8 %6712, ptr %6725, align 1, !tbaa !20
  br label %6726

6726:                                             ; preds = %6710, %6696
  br label %6727

6727:                                             ; preds = %6726, %6679
  call void @llvm.lifetime.end.p0(i64 4, ptr %104) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %105) #3
  %6728 = load ptr, ptr %20, align 8, !tbaa !5
  %6729 = load i32, ptr %22, align 4, !tbaa !16
  %6730 = sext i32 %6729 to i64
  %6731 = getelementptr inbounds ptr, ptr %6728, i64 %6730
  %6732 = load ptr, ptr %6731, align 8, !tbaa !5
  %6733 = load i32, ptr %23, align 4, !tbaa !16
  %6734 = sext i32 %6733 to i64
  %6735 = getelementptr inbounds i8, ptr %6732, i64 %6734
  %6736 = load i8, ptr %6735, align 1, !tbaa !20
  %6737 = zext i8 %6736 to i64
  %6738 = getelementptr inbounds [256 x i32], ptr %16, i64 0, i64 %6737
  %6739 = load i32, ptr %6738, align 4, !tbaa !16
  %6740 = load ptr, ptr %21, align 8, !tbaa !5
  %6741 = load i32, ptr %22, align 4, !tbaa !16
  %6742 = sext i32 %6741 to i64
  %6743 = getelementptr inbounds ptr, ptr %6740, i64 %6742
  %6744 = load ptr, ptr %6743, align 8, !tbaa !5
  %6745 = load i32, ptr %23, align 4, !tbaa !16
  %6746 = sext i32 %6745 to i64
  %6747 = getelementptr inbounds i8, ptr %6744, i64 %6746
  %6748 = load i8, ptr %6747, align 1, !tbaa !20
  %6749 = zext i8 %6748 to i64
  %6750 = getelementptr inbounds [256 x i32], ptr %17, i64 0, i64 %6749
  %6751 = load i32, ptr %6750, align 4, !tbaa !16
  %6752 = add nsw i32 %6739, %6751
  store i32 %6752, ptr %105, align 4, !tbaa !16
  %6753 = load i32, ptr %105, align 4, !tbaa !16
  %6754 = icmp slt i32 %6753, 0
  br i1 %6754, label %6755, label %6769

6755:                                             ; preds = %6727
  %6756 = load ptr, ptr %8, align 8, !tbaa !5
  %6757 = getelementptr inbounds %struct.MImage, ptr %6756, i32 0, i32 3
  %6758 = load i32, ptr %19, align 4, !tbaa !16
  %6759 = sext i32 %6758 to i64
  %6760 = getelementptr inbounds [4 x ptr], ptr %6757, i64 0, i64 %6759
  %6761 = load ptr, ptr %6760, align 8, !tbaa !5
  %6762 = load i32, ptr %22, align 4, !tbaa !16
  %6763 = sext i32 %6762 to i64
  %6764 = getelementptr inbounds ptr, ptr %6761, i64 %6763
  %6765 = load ptr, ptr %6764, align 8, !tbaa !5
  %6766 = load i32, ptr %23, align 4, !tbaa !16
  %6767 = sext i32 %6766 to i64
  %6768 = getelementptr inbounds i8, ptr %6765, i64 %6767
  store i8 0, ptr %6768, align 1, !tbaa !20
  br label %6803

6769:                                             ; preds = %6727
  %6770 = load i32, ptr %105, align 4, !tbaa !16
  %6771 = icmp sgt i32 %6770, 255
  br i1 %6771, label %6772, label %6786

6772:                                             ; preds = %6769
  %6773 = load ptr, ptr %8, align 8, !tbaa !5
  %6774 = getelementptr inbounds %struct.MImage, ptr %6773, i32 0, i32 3
  %6775 = load i32, ptr %19, align 4, !tbaa !16
  %6776 = sext i32 %6775 to i64
  %6777 = getelementptr inbounds [4 x ptr], ptr %6774, i64 0, i64 %6776
  %6778 = load ptr, ptr %6777, align 8, !tbaa !5
  %6779 = load i32, ptr %22, align 4, !tbaa !16
  %6780 = sext i32 %6779 to i64
  %6781 = getelementptr inbounds ptr, ptr %6778, i64 %6780
  %6782 = load ptr, ptr %6781, align 8, !tbaa !5
  %6783 = load i32, ptr %23, align 4, !tbaa !16
  %6784 = sext i32 %6783 to i64
  %6785 = getelementptr inbounds i8, ptr %6782, i64 %6784
  store i8 -1, ptr %6785, align 1, !tbaa !20
  br label %6802

6786:                                             ; preds = %6769
  %6787 = load i32, ptr %105, align 4, !tbaa !16
  %6788 = trunc i32 %6787 to i8
  %6789 = load ptr, ptr %8, align 8, !tbaa !5
  %6790 = getelementptr inbounds %struct.MImage, ptr %6789, i32 0, i32 3
  %6791 = load i32, ptr %19, align 4, !tbaa !16
  %6792 = sext i32 %6791 to i64
  %6793 = getelementptr inbounds [4 x ptr], ptr %6790, i64 0, i64 %6792
  %6794 = load ptr, ptr %6793, align 8, !tbaa !5
  %6795 = load i32, ptr %22, align 4, !tbaa !16
  %6796 = sext i32 %6795 to i64
  %6797 = getelementptr inbounds ptr, ptr %6794, i64 %6796
  %6798 = load ptr, ptr %6797, align 8, !tbaa !5
  %6799 = load i32, ptr %23, align 4, !tbaa !16
  %6800 = sext i32 %6799 to i64
  %6801 = getelementptr inbounds i8, ptr %6798, i64 %6800
  store i8 %6788, ptr %6801, align 1, !tbaa !20
  br label %6802

6802:                                             ; preds = %6786, %6772
  br label %6803

6803:                                             ; preds = %6802, %6755
  call void @llvm.lifetime.end.p0(i64 4, ptr %105) #3
  br label %10944

6804:                                             ; preds = %5960
  %6805 = load ptr, ptr %8, align 8, !tbaa !5
  %6806 = getelementptr inbounds %struct.MImage, ptr %6805, i32 0, i32 2
  %6807 = load i32, ptr %6806, align 8, !tbaa !15
  %6808 = load i32, ptr %23, align 4, !tbaa !16
  %6809 = sub nsw i32 %6807, %6808
  %6810 = icmp eq i32 %6809, 12
  br i1 %6810, label %6811, label %7724

6811:                                             ; preds = %6804
  call void @llvm.lifetime.start.p0(i64 4, ptr %106) #3
  %6812 = load ptr, ptr %20, align 8, !tbaa !5
  %6813 = load i32, ptr %22, align 4, !tbaa !16
  %6814 = sext i32 %6813 to i64
  %6815 = getelementptr inbounds ptr, ptr %6812, i64 %6814
  %6816 = load ptr, ptr %6815, align 8, !tbaa !5
  %6817 = load i32, ptr %23, align 4, !tbaa !16
  %6818 = sext i32 %6817 to i64
  %6819 = getelementptr inbounds i8, ptr %6816, i64 %6818
  %6820 = load i8, ptr %6819, align 1, !tbaa !20
  %6821 = zext i8 %6820 to i64
  %6822 = getelementptr inbounds [256 x i32], ptr %16, i64 0, i64 %6821
  %6823 = load i32, ptr %6822, align 4, !tbaa !16
  %6824 = load ptr, ptr %21, align 8, !tbaa !5
  %6825 = load i32, ptr %22, align 4, !tbaa !16
  %6826 = sext i32 %6825 to i64
  %6827 = getelementptr inbounds ptr, ptr %6824, i64 %6826
  %6828 = load ptr, ptr %6827, align 8, !tbaa !5
  %6829 = load i32, ptr %23, align 4, !tbaa !16
  %6830 = sext i32 %6829 to i64
  %6831 = getelementptr inbounds i8, ptr %6828, i64 %6830
  %6832 = load i8, ptr %6831, align 1, !tbaa !20
  %6833 = zext i8 %6832 to i64
  %6834 = getelementptr inbounds [256 x i32], ptr %17, i64 0, i64 %6833
  %6835 = load i32, ptr %6834, align 4, !tbaa !16
  %6836 = add nsw i32 %6823, %6835
  store i32 %6836, ptr %106, align 4, !tbaa !16
  %6837 = load i32, ptr %106, align 4, !tbaa !16
  %6838 = icmp slt i32 %6837, 0
  br i1 %6838, label %6839, label %6853

6839:                                             ; preds = %6811
  %6840 = load ptr, ptr %8, align 8, !tbaa !5
  %6841 = getelementptr inbounds %struct.MImage, ptr %6840, i32 0, i32 3
  %6842 = load i32, ptr %19, align 4, !tbaa !16
  %6843 = sext i32 %6842 to i64
  %6844 = getelementptr inbounds [4 x ptr], ptr %6841, i64 0, i64 %6843
  %6845 = load ptr, ptr %6844, align 8, !tbaa !5
  %6846 = load i32, ptr %22, align 4, !tbaa !16
  %6847 = sext i32 %6846 to i64
  %6848 = getelementptr inbounds ptr, ptr %6845, i64 %6847
  %6849 = load ptr, ptr %6848, align 8, !tbaa !5
  %6850 = load i32, ptr %23, align 4, !tbaa !16
  %6851 = sext i32 %6850 to i64
  %6852 = getelementptr inbounds i8, ptr %6849, i64 %6851
  store i8 0, ptr %6852, align 1, !tbaa !20
  br label %6887

6853:                                             ; preds = %6811
  %6854 = load i32, ptr %106, align 4, !tbaa !16
  %6855 = icmp sgt i32 %6854, 255
  br i1 %6855, label %6856, label %6870

6856:                                             ; preds = %6853
  %6857 = load ptr, ptr %8, align 8, !tbaa !5
  %6858 = getelementptr inbounds %struct.MImage, ptr %6857, i32 0, i32 3
  %6859 = load i32, ptr %19, align 4, !tbaa !16
  %6860 = sext i32 %6859 to i64
  %6861 = getelementptr inbounds [4 x ptr], ptr %6858, i64 0, i64 %6860
  %6862 = load ptr, ptr %6861, align 8, !tbaa !5
  %6863 = load i32, ptr %22, align 4, !tbaa !16
  %6864 = sext i32 %6863 to i64
  %6865 = getelementptr inbounds ptr, ptr %6862, i64 %6864
  %6866 = load ptr, ptr %6865, align 8, !tbaa !5
  %6867 = load i32, ptr %23, align 4, !tbaa !16
  %6868 = sext i32 %6867 to i64
  %6869 = getelementptr inbounds i8, ptr %6866, i64 %6868
  store i8 -1, ptr %6869, align 1, !tbaa !20
  br label %6886

6870:                                             ; preds = %6853
  %6871 = load i32, ptr %106, align 4, !tbaa !16
  %6872 = trunc i32 %6871 to i8
  %6873 = load ptr, ptr %8, align 8, !tbaa !5
  %6874 = getelementptr inbounds %struct.MImage, ptr %6873, i32 0, i32 3
  %6875 = load i32, ptr %19, align 4, !tbaa !16
  %6876 = sext i32 %6875 to i64
  %6877 = getelementptr inbounds [4 x ptr], ptr %6874, i64 0, i64 %6876
  %6878 = load ptr, ptr %6877, align 8, !tbaa !5
  %6879 = load i32, ptr %22, align 4, !tbaa !16
  %6880 = sext i32 %6879 to i64
  %6881 = getelementptr inbounds ptr, ptr %6878, i64 %6880
  %6882 = load ptr, ptr %6881, align 8, !tbaa !5
  %6883 = load i32, ptr %23, align 4, !tbaa !16
  %6884 = sext i32 %6883 to i64
  %6885 = getelementptr inbounds i8, ptr %6882, i64 %6884
  store i8 %6872, ptr %6885, align 1, !tbaa !20
  br label %6886

6886:                                             ; preds = %6870, %6856
  br label %6887

6887:                                             ; preds = %6886, %6839
  call void @llvm.lifetime.end.p0(i64 4, ptr %106) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %107) #3
  %6888 = load ptr, ptr %20, align 8, !tbaa !5
  %6889 = load i32, ptr %22, align 4, !tbaa !16
  %6890 = sext i32 %6889 to i64
  %6891 = getelementptr inbounds ptr, ptr %6888, i64 %6890
  %6892 = load ptr, ptr %6891, align 8, !tbaa !5
  %6893 = load i32, ptr %23, align 4, !tbaa !16
  %6894 = sext i32 %6893 to i64
  %6895 = getelementptr inbounds i8, ptr %6892, i64 %6894
  %6896 = load i8, ptr %6895, align 1, !tbaa !20
  %6897 = zext i8 %6896 to i64
  %6898 = getelementptr inbounds [256 x i32], ptr %16, i64 0, i64 %6897
  %6899 = load i32, ptr %6898, align 4, !tbaa !16
  %6900 = load ptr, ptr %21, align 8, !tbaa !5
  %6901 = load i32, ptr %22, align 4, !tbaa !16
  %6902 = sext i32 %6901 to i64
  %6903 = getelementptr inbounds ptr, ptr %6900, i64 %6902
  %6904 = load ptr, ptr %6903, align 8, !tbaa !5
  %6905 = load i32, ptr %23, align 4, !tbaa !16
  %6906 = sext i32 %6905 to i64
  %6907 = getelementptr inbounds i8, ptr %6904, i64 %6906
  %6908 = load i8, ptr %6907, align 1, !tbaa !20
  %6909 = zext i8 %6908 to i64
  %6910 = getelementptr inbounds [256 x i32], ptr %17, i64 0, i64 %6909
  %6911 = load i32, ptr %6910, align 4, !tbaa !16
  %6912 = add nsw i32 %6899, %6911
  store i32 %6912, ptr %107, align 4, !tbaa !16
  %6913 = load i32, ptr %107, align 4, !tbaa !16
  %6914 = icmp slt i32 %6913, 0
  br i1 %6914, label %6915, label %6929

6915:                                             ; preds = %6887
  %6916 = load ptr, ptr %8, align 8, !tbaa !5
  %6917 = getelementptr inbounds %struct.MImage, ptr %6916, i32 0, i32 3
  %6918 = load i32, ptr %19, align 4, !tbaa !16
  %6919 = sext i32 %6918 to i64
  %6920 = getelementptr inbounds [4 x ptr], ptr %6917, i64 0, i64 %6919
  %6921 = load ptr, ptr %6920, align 8, !tbaa !5
  %6922 = load i32, ptr %22, align 4, !tbaa !16
  %6923 = sext i32 %6922 to i64
  %6924 = getelementptr inbounds ptr, ptr %6921, i64 %6923
  %6925 = load ptr, ptr %6924, align 8, !tbaa !5
  %6926 = load i32, ptr %23, align 4, !tbaa !16
  %6927 = sext i32 %6926 to i64
  %6928 = getelementptr inbounds i8, ptr %6925, i64 %6927
  store i8 0, ptr %6928, align 1, !tbaa !20
  br label %6963

6929:                                             ; preds = %6887
  %6930 = load i32, ptr %107, align 4, !tbaa !16
  %6931 = icmp sgt i32 %6930, 255
  br i1 %6931, label %6932, label %6946

6932:                                             ; preds = %6929
  %6933 = load ptr, ptr %8, align 8, !tbaa !5
  %6934 = getelementptr inbounds %struct.MImage, ptr %6933, i32 0, i32 3
  %6935 = load i32, ptr %19, align 4, !tbaa !16
  %6936 = sext i32 %6935 to i64
  %6937 = getelementptr inbounds [4 x ptr], ptr %6934, i64 0, i64 %6936
  %6938 = load ptr, ptr %6937, align 8, !tbaa !5
  %6939 = load i32, ptr %22, align 4, !tbaa !16
  %6940 = sext i32 %6939 to i64
  %6941 = getelementptr inbounds ptr, ptr %6938, i64 %6940
  %6942 = load ptr, ptr %6941, align 8, !tbaa !5
  %6943 = load i32, ptr %23, align 4, !tbaa !16
  %6944 = sext i32 %6943 to i64
  %6945 = getelementptr inbounds i8, ptr %6942, i64 %6944
  store i8 -1, ptr %6945, align 1, !tbaa !20
  br label %6962

6946:                                             ; preds = %6929
  %6947 = load i32, ptr %107, align 4, !tbaa !16
  %6948 = trunc i32 %6947 to i8
  %6949 = load ptr, ptr %8, align 8, !tbaa !5
  %6950 = getelementptr inbounds %struct.MImage, ptr %6949, i32 0, i32 3
  %6951 = load i32, ptr %19, align 4, !tbaa !16
  %6952 = sext i32 %6951 to i64
  %6953 = getelementptr inbounds [4 x ptr], ptr %6950, i64 0, i64 %6952
  %6954 = load ptr, ptr %6953, align 8, !tbaa !5
  %6955 = load i32, ptr %22, align 4, !tbaa !16
  %6956 = sext i32 %6955 to i64
  %6957 = getelementptr inbounds ptr, ptr %6954, i64 %6956
  %6958 = load ptr, ptr %6957, align 8, !tbaa !5
  %6959 = load i32, ptr %23, align 4, !tbaa !16
  %6960 = sext i32 %6959 to i64
  %6961 = getelementptr inbounds i8, ptr %6958, i64 %6960
  store i8 %6948, ptr %6961, align 1, !tbaa !20
  br label %6962

6962:                                             ; preds = %6946, %6932
  br label %6963

6963:                                             ; preds = %6962, %6915
  call void @llvm.lifetime.end.p0(i64 4, ptr %107) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %108) #3
  %6964 = load ptr, ptr %20, align 8, !tbaa !5
  %6965 = load i32, ptr %22, align 4, !tbaa !16
  %6966 = sext i32 %6965 to i64
  %6967 = getelementptr inbounds ptr, ptr %6964, i64 %6966
  %6968 = load ptr, ptr %6967, align 8, !tbaa !5
  %6969 = load i32, ptr %23, align 4, !tbaa !16
  %6970 = sext i32 %6969 to i64
  %6971 = getelementptr inbounds i8, ptr %6968, i64 %6970
  %6972 = load i8, ptr %6971, align 1, !tbaa !20
  %6973 = zext i8 %6972 to i64
  %6974 = getelementptr inbounds [256 x i32], ptr %16, i64 0, i64 %6973
  %6975 = load i32, ptr %6974, align 4, !tbaa !16
  %6976 = load ptr, ptr %21, align 8, !tbaa !5
  %6977 = load i32, ptr %22, align 4, !tbaa !16
  %6978 = sext i32 %6977 to i64
  %6979 = getelementptr inbounds ptr, ptr %6976, i64 %6978
  %6980 = load ptr, ptr %6979, align 8, !tbaa !5
  %6981 = load i32, ptr %23, align 4, !tbaa !16
  %6982 = sext i32 %6981 to i64
  %6983 = getelementptr inbounds i8, ptr %6980, i64 %6982
  %6984 = load i8, ptr %6983, align 1, !tbaa !20
  %6985 = zext i8 %6984 to i64
  %6986 = getelementptr inbounds [256 x i32], ptr %17, i64 0, i64 %6985
  %6987 = load i32, ptr %6986, align 4, !tbaa !16
  %6988 = add nsw i32 %6975, %6987
  store i32 %6988, ptr %108, align 4, !tbaa !16
  %6989 = load i32, ptr %108, align 4, !tbaa !16
  %6990 = icmp slt i32 %6989, 0
  br i1 %6990, label %6991, label %7005

6991:                                             ; preds = %6963
  %6992 = load ptr, ptr %8, align 8, !tbaa !5
  %6993 = getelementptr inbounds %struct.MImage, ptr %6992, i32 0, i32 3
  %6994 = load i32, ptr %19, align 4, !tbaa !16
  %6995 = sext i32 %6994 to i64
  %6996 = getelementptr inbounds [4 x ptr], ptr %6993, i64 0, i64 %6995
  %6997 = load ptr, ptr %6996, align 8, !tbaa !5
  %6998 = load i32, ptr %22, align 4, !tbaa !16
  %6999 = sext i32 %6998 to i64
  %7000 = getelementptr inbounds ptr, ptr %6997, i64 %6999
  %7001 = load ptr, ptr %7000, align 8, !tbaa !5
  %7002 = load i32, ptr %23, align 4, !tbaa !16
  %7003 = sext i32 %7002 to i64
  %7004 = getelementptr inbounds i8, ptr %7001, i64 %7003
  store i8 0, ptr %7004, align 1, !tbaa !20
  br label %7039

7005:                                             ; preds = %6963
  %7006 = load i32, ptr %108, align 4, !tbaa !16
  %7007 = icmp sgt i32 %7006, 255
  br i1 %7007, label %7008, label %7022

7008:                                             ; preds = %7005
  %7009 = load ptr, ptr %8, align 8, !tbaa !5
  %7010 = getelementptr inbounds %struct.MImage, ptr %7009, i32 0, i32 3
  %7011 = load i32, ptr %19, align 4, !tbaa !16
  %7012 = sext i32 %7011 to i64
  %7013 = getelementptr inbounds [4 x ptr], ptr %7010, i64 0, i64 %7012
  %7014 = load ptr, ptr %7013, align 8, !tbaa !5
  %7015 = load i32, ptr %22, align 4, !tbaa !16
  %7016 = sext i32 %7015 to i64
  %7017 = getelementptr inbounds ptr, ptr %7014, i64 %7016
  %7018 = load ptr, ptr %7017, align 8, !tbaa !5
  %7019 = load i32, ptr %23, align 4, !tbaa !16
  %7020 = sext i32 %7019 to i64
  %7021 = getelementptr inbounds i8, ptr %7018, i64 %7020
  store i8 -1, ptr %7021, align 1, !tbaa !20
  br label %7038

7022:                                             ; preds = %7005
  %7023 = load i32, ptr %108, align 4, !tbaa !16
  %7024 = trunc i32 %7023 to i8
  %7025 = load ptr, ptr %8, align 8, !tbaa !5
  %7026 = getelementptr inbounds %struct.MImage, ptr %7025, i32 0, i32 3
  %7027 = load i32, ptr %19, align 4, !tbaa !16
  %7028 = sext i32 %7027 to i64
  %7029 = getelementptr inbounds [4 x ptr], ptr %7026, i64 0, i64 %7028
  %7030 = load ptr, ptr %7029, align 8, !tbaa !5
  %7031 = load i32, ptr %22, align 4, !tbaa !16
  %7032 = sext i32 %7031 to i64
  %7033 = getelementptr inbounds ptr, ptr %7030, i64 %7032
  %7034 = load ptr, ptr %7033, align 8, !tbaa !5
  %7035 = load i32, ptr %23, align 4, !tbaa !16
  %7036 = sext i32 %7035 to i64
  %7037 = getelementptr inbounds i8, ptr %7034, i64 %7036
  store i8 %7024, ptr %7037, align 1, !tbaa !20
  br label %7038

7038:                                             ; preds = %7022, %7008
  br label %7039

7039:                                             ; preds = %7038, %6991
  call void @llvm.lifetime.end.p0(i64 4, ptr %108) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %109) #3
  %7040 = load ptr, ptr %20, align 8, !tbaa !5
  %7041 = load i32, ptr %22, align 4, !tbaa !16
  %7042 = sext i32 %7041 to i64
  %7043 = getelementptr inbounds ptr, ptr %7040, i64 %7042
  %7044 = load ptr, ptr %7043, align 8, !tbaa !5
  %7045 = load i32, ptr %23, align 4, !tbaa !16
  %7046 = sext i32 %7045 to i64
  %7047 = getelementptr inbounds i8, ptr %7044, i64 %7046
  %7048 = load i8, ptr %7047, align 1, !tbaa !20
  %7049 = zext i8 %7048 to i64
  %7050 = getelementptr inbounds [256 x i32], ptr %16, i64 0, i64 %7049
  %7051 = load i32, ptr %7050, align 4, !tbaa !16
  %7052 = load ptr, ptr %21, align 8, !tbaa !5
  %7053 = load i32, ptr %22, align 4, !tbaa !16
  %7054 = sext i32 %7053 to i64
  %7055 = getelementptr inbounds ptr, ptr %7052, i64 %7054
  %7056 = load ptr, ptr %7055, align 8, !tbaa !5
  %7057 = load i32, ptr %23, align 4, !tbaa !16
  %7058 = sext i32 %7057 to i64
  %7059 = getelementptr inbounds i8, ptr %7056, i64 %7058
  %7060 = load i8, ptr %7059, align 1, !tbaa !20
  %7061 = zext i8 %7060 to i64
  %7062 = getelementptr inbounds [256 x i32], ptr %17, i64 0, i64 %7061
  %7063 = load i32, ptr %7062, align 4, !tbaa !16
  %7064 = add nsw i32 %7051, %7063
  store i32 %7064, ptr %109, align 4, !tbaa !16
  %7065 = load i32, ptr %109, align 4, !tbaa !16
  %7066 = icmp slt i32 %7065, 0
  br i1 %7066, label %7067, label %7081

7067:                                             ; preds = %7039
  %7068 = load ptr, ptr %8, align 8, !tbaa !5
  %7069 = getelementptr inbounds %struct.MImage, ptr %7068, i32 0, i32 3
  %7070 = load i32, ptr %19, align 4, !tbaa !16
  %7071 = sext i32 %7070 to i64
  %7072 = getelementptr inbounds [4 x ptr], ptr %7069, i64 0, i64 %7071
  %7073 = load ptr, ptr %7072, align 8, !tbaa !5
  %7074 = load i32, ptr %22, align 4, !tbaa !16
  %7075 = sext i32 %7074 to i64
  %7076 = getelementptr inbounds ptr, ptr %7073, i64 %7075
  %7077 = load ptr, ptr %7076, align 8, !tbaa !5
  %7078 = load i32, ptr %23, align 4, !tbaa !16
  %7079 = sext i32 %7078 to i64
  %7080 = getelementptr inbounds i8, ptr %7077, i64 %7079
  store i8 0, ptr %7080, align 1, !tbaa !20
  br label %7115

7081:                                             ; preds = %7039
  %7082 = load i32, ptr %109, align 4, !tbaa !16
  %7083 = icmp sgt i32 %7082, 255
  br i1 %7083, label %7084, label %7098

7084:                                             ; preds = %7081
  %7085 = load ptr, ptr %8, align 8, !tbaa !5
  %7086 = getelementptr inbounds %struct.MImage, ptr %7085, i32 0, i32 3
  %7087 = load i32, ptr %19, align 4, !tbaa !16
  %7088 = sext i32 %7087 to i64
  %7089 = getelementptr inbounds [4 x ptr], ptr %7086, i64 0, i64 %7088
  %7090 = load ptr, ptr %7089, align 8, !tbaa !5
  %7091 = load i32, ptr %22, align 4, !tbaa !16
  %7092 = sext i32 %7091 to i64
  %7093 = getelementptr inbounds ptr, ptr %7090, i64 %7092
  %7094 = load ptr, ptr %7093, align 8, !tbaa !5
  %7095 = load i32, ptr %23, align 4, !tbaa !16
  %7096 = sext i32 %7095 to i64
  %7097 = getelementptr inbounds i8, ptr %7094, i64 %7096
  store i8 -1, ptr %7097, align 1, !tbaa !20
  br label %7114

7098:                                             ; preds = %7081
  %7099 = load i32, ptr %109, align 4, !tbaa !16
  %7100 = trunc i32 %7099 to i8
  %7101 = load ptr, ptr %8, align 8, !tbaa !5
  %7102 = getelementptr inbounds %struct.MImage, ptr %7101, i32 0, i32 3
  %7103 = load i32, ptr %19, align 4, !tbaa !16
  %7104 = sext i32 %7103 to i64
  %7105 = getelementptr inbounds [4 x ptr], ptr %7102, i64 0, i64 %7104
  %7106 = load ptr, ptr %7105, align 8, !tbaa !5
  %7107 = load i32, ptr %22, align 4, !tbaa !16
  %7108 = sext i32 %7107 to i64
  %7109 = getelementptr inbounds ptr, ptr %7106, i64 %7108
  %7110 = load ptr, ptr %7109, align 8, !tbaa !5
  %7111 = load i32, ptr %23, align 4, !tbaa !16
  %7112 = sext i32 %7111 to i64
  %7113 = getelementptr inbounds i8, ptr %7110, i64 %7112
  store i8 %7100, ptr %7113, align 1, !tbaa !20
  br label %7114

7114:                                             ; preds = %7098, %7084
  br label %7115

7115:                                             ; preds = %7114, %7067
  call void @llvm.lifetime.end.p0(i64 4, ptr %109) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %110) #3
  %7116 = load ptr, ptr %20, align 8, !tbaa !5
  %7117 = load i32, ptr %22, align 4, !tbaa !16
  %7118 = sext i32 %7117 to i64
  %7119 = getelementptr inbounds ptr, ptr %7116, i64 %7118
  %7120 = load ptr, ptr %7119, align 8, !tbaa !5
  %7121 = load i32, ptr %23, align 4, !tbaa !16
  %7122 = sext i32 %7121 to i64
  %7123 = getelementptr inbounds i8, ptr %7120, i64 %7122
  %7124 = load i8, ptr %7123, align 1, !tbaa !20
  %7125 = zext i8 %7124 to i64
  %7126 = getelementptr inbounds [256 x i32], ptr %16, i64 0, i64 %7125
  %7127 = load i32, ptr %7126, align 4, !tbaa !16
  %7128 = load ptr, ptr %21, align 8, !tbaa !5
  %7129 = load i32, ptr %22, align 4, !tbaa !16
  %7130 = sext i32 %7129 to i64
  %7131 = getelementptr inbounds ptr, ptr %7128, i64 %7130
  %7132 = load ptr, ptr %7131, align 8, !tbaa !5
  %7133 = load i32, ptr %23, align 4, !tbaa !16
  %7134 = sext i32 %7133 to i64
  %7135 = getelementptr inbounds i8, ptr %7132, i64 %7134
  %7136 = load i8, ptr %7135, align 1, !tbaa !20
  %7137 = zext i8 %7136 to i64
  %7138 = getelementptr inbounds [256 x i32], ptr %17, i64 0, i64 %7137
  %7139 = load i32, ptr %7138, align 4, !tbaa !16
  %7140 = add nsw i32 %7127, %7139
  store i32 %7140, ptr %110, align 4, !tbaa !16
  %7141 = load i32, ptr %110, align 4, !tbaa !16
  %7142 = icmp slt i32 %7141, 0
  br i1 %7142, label %7143, label %7157

7143:                                             ; preds = %7115
  %7144 = load ptr, ptr %8, align 8, !tbaa !5
  %7145 = getelementptr inbounds %struct.MImage, ptr %7144, i32 0, i32 3
  %7146 = load i32, ptr %19, align 4, !tbaa !16
  %7147 = sext i32 %7146 to i64
  %7148 = getelementptr inbounds [4 x ptr], ptr %7145, i64 0, i64 %7147
  %7149 = load ptr, ptr %7148, align 8, !tbaa !5
  %7150 = load i32, ptr %22, align 4, !tbaa !16
  %7151 = sext i32 %7150 to i64
  %7152 = getelementptr inbounds ptr, ptr %7149, i64 %7151
  %7153 = load ptr, ptr %7152, align 8, !tbaa !5
  %7154 = load i32, ptr %23, align 4, !tbaa !16
  %7155 = sext i32 %7154 to i64
  %7156 = getelementptr inbounds i8, ptr %7153, i64 %7155
  store i8 0, ptr %7156, align 1, !tbaa !20
  br label %7191

7157:                                             ; preds = %7115
  %7158 = load i32, ptr %110, align 4, !tbaa !16
  %7159 = icmp sgt i32 %7158, 255
  br i1 %7159, label %7160, label %7174

7160:                                             ; preds = %7157
  %7161 = load ptr, ptr %8, align 8, !tbaa !5
  %7162 = getelementptr inbounds %struct.MImage, ptr %7161, i32 0, i32 3
  %7163 = load i32, ptr %19, align 4, !tbaa !16
  %7164 = sext i32 %7163 to i64
  %7165 = getelementptr inbounds [4 x ptr], ptr %7162, i64 0, i64 %7164
  %7166 = load ptr, ptr %7165, align 8, !tbaa !5
  %7167 = load i32, ptr %22, align 4, !tbaa !16
  %7168 = sext i32 %7167 to i64
  %7169 = getelementptr inbounds ptr, ptr %7166, i64 %7168
  %7170 = load ptr, ptr %7169, align 8, !tbaa !5
  %7171 = load i32, ptr %23, align 4, !tbaa !16
  %7172 = sext i32 %7171 to i64
  %7173 = getelementptr inbounds i8, ptr %7170, i64 %7172
  store i8 -1, ptr %7173, align 1, !tbaa !20
  br label %7190

7174:                                             ; preds = %7157
  %7175 = load i32, ptr %110, align 4, !tbaa !16
  %7176 = trunc i32 %7175 to i8
  %7177 = load ptr, ptr %8, align 8, !tbaa !5
  %7178 = getelementptr inbounds %struct.MImage, ptr %7177, i32 0, i32 3
  %7179 = load i32, ptr %19, align 4, !tbaa !16
  %7180 = sext i32 %7179 to i64
  %7181 = getelementptr inbounds [4 x ptr], ptr %7178, i64 0, i64 %7180
  %7182 = load ptr, ptr %7181, align 8, !tbaa !5
  %7183 = load i32, ptr %22, align 4, !tbaa !16
  %7184 = sext i32 %7183 to i64
  %7185 = getelementptr inbounds ptr, ptr %7182, i64 %7184
  %7186 = load ptr, ptr %7185, align 8, !tbaa !5
  %7187 = load i32, ptr %23, align 4, !tbaa !16
  %7188 = sext i32 %7187 to i64
  %7189 = getelementptr inbounds i8, ptr %7186, i64 %7188
  store i8 %7176, ptr %7189, align 1, !tbaa !20
  br label %7190

7190:                                             ; preds = %7174, %7160
  br label %7191

7191:                                             ; preds = %7190, %7143
  call void @llvm.lifetime.end.p0(i64 4, ptr %110) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %111) #3
  %7192 = load ptr, ptr %20, align 8, !tbaa !5
  %7193 = load i32, ptr %22, align 4, !tbaa !16
  %7194 = sext i32 %7193 to i64
  %7195 = getelementptr inbounds ptr, ptr %7192, i64 %7194
  %7196 = load ptr, ptr %7195, align 8, !tbaa !5
  %7197 = load i32, ptr %23, align 4, !tbaa !16
  %7198 = sext i32 %7197 to i64
  %7199 = getelementptr inbounds i8, ptr %7196, i64 %7198
  %7200 = load i8, ptr %7199, align 1, !tbaa !20
  %7201 = zext i8 %7200 to i64
  %7202 = getelementptr inbounds [256 x i32], ptr %16, i64 0, i64 %7201
  %7203 = load i32, ptr %7202, align 4, !tbaa !16
  %7204 = load ptr, ptr %21, align 8, !tbaa !5
  %7205 = load i32, ptr %22, align 4, !tbaa !16
  %7206 = sext i32 %7205 to i64
  %7207 = getelementptr inbounds ptr, ptr %7204, i64 %7206
  %7208 = load ptr, ptr %7207, align 8, !tbaa !5
  %7209 = load i32, ptr %23, align 4, !tbaa !16
  %7210 = sext i32 %7209 to i64
  %7211 = getelementptr inbounds i8, ptr %7208, i64 %7210
  %7212 = load i8, ptr %7211, align 1, !tbaa !20
  %7213 = zext i8 %7212 to i64
  %7214 = getelementptr inbounds [256 x i32], ptr %17, i64 0, i64 %7213
  %7215 = load i32, ptr %7214, align 4, !tbaa !16
  %7216 = add nsw i32 %7203, %7215
  store i32 %7216, ptr %111, align 4, !tbaa !16
  %7217 = load i32, ptr %111, align 4, !tbaa !16
  %7218 = icmp slt i32 %7217, 0
  br i1 %7218, label %7219, label %7233

7219:                                             ; preds = %7191
  %7220 = load ptr, ptr %8, align 8, !tbaa !5
  %7221 = getelementptr inbounds %struct.MImage, ptr %7220, i32 0, i32 3
  %7222 = load i32, ptr %19, align 4, !tbaa !16
  %7223 = sext i32 %7222 to i64
  %7224 = getelementptr inbounds [4 x ptr], ptr %7221, i64 0, i64 %7223
  %7225 = load ptr, ptr %7224, align 8, !tbaa !5
  %7226 = load i32, ptr %22, align 4, !tbaa !16
  %7227 = sext i32 %7226 to i64
  %7228 = getelementptr inbounds ptr, ptr %7225, i64 %7227
  %7229 = load ptr, ptr %7228, align 8, !tbaa !5
  %7230 = load i32, ptr %23, align 4, !tbaa !16
  %7231 = sext i32 %7230 to i64
  %7232 = getelementptr inbounds i8, ptr %7229, i64 %7231
  store i8 0, ptr %7232, align 1, !tbaa !20
  br label %7267

7233:                                             ; preds = %7191
  %7234 = load i32, ptr %111, align 4, !tbaa !16
  %7235 = icmp sgt i32 %7234, 255
  br i1 %7235, label %7236, label %7250

7236:                                             ; preds = %7233
  %7237 = load ptr, ptr %8, align 8, !tbaa !5
  %7238 = getelementptr inbounds %struct.MImage, ptr %7237, i32 0, i32 3
  %7239 = load i32, ptr %19, align 4, !tbaa !16
  %7240 = sext i32 %7239 to i64
  %7241 = getelementptr inbounds [4 x ptr], ptr %7238, i64 0, i64 %7240
  %7242 = load ptr, ptr %7241, align 8, !tbaa !5
  %7243 = load i32, ptr %22, align 4, !tbaa !16
  %7244 = sext i32 %7243 to i64
  %7245 = getelementptr inbounds ptr, ptr %7242, i64 %7244
  %7246 = load ptr, ptr %7245, align 8, !tbaa !5
  %7247 = load i32, ptr %23, align 4, !tbaa !16
  %7248 = sext i32 %7247 to i64
  %7249 = getelementptr inbounds i8, ptr %7246, i64 %7248
  store i8 -1, ptr %7249, align 1, !tbaa !20
  br label %7266

7250:                                             ; preds = %7233
  %7251 = load i32, ptr %111, align 4, !tbaa !16
  %7252 = trunc i32 %7251 to i8
  %7253 = load ptr, ptr %8, align 8, !tbaa !5
  %7254 = getelementptr inbounds %struct.MImage, ptr %7253, i32 0, i32 3
  %7255 = load i32, ptr %19, align 4, !tbaa !16
  %7256 = sext i32 %7255 to i64
  %7257 = getelementptr inbounds [4 x ptr], ptr %7254, i64 0, i64 %7256
  %7258 = load ptr, ptr %7257, align 8, !tbaa !5
  %7259 = load i32, ptr %22, align 4, !tbaa !16
  %7260 = sext i32 %7259 to i64
  %7261 = getelementptr inbounds ptr, ptr %7258, i64 %7260
  %7262 = load ptr, ptr %7261, align 8, !tbaa !5
  %7263 = load i32, ptr %23, align 4, !tbaa !16
  %7264 = sext i32 %7263 to i64
  %7265 = getelementptr inbounds i8, ptr %7262, i64 %7264
  store i8 %7252, ptr %7265, align 1, !tbaa !20
  br label %7266

7266:                                             ; preds = %7250, %7236
  br label %7267

7267:                                             ; preds = %7266, %7219
  call void @llvm.lifetime.end.p0(i64 4, ptr %111) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %112) #3
  %7268 = load ptr, ptr %20, align 8, !tbaa !5
  %7269 = load i32, ptr %22, align 4, !tbaa !16
  %7270 = sext i32 %7269 to i64
  %7271 = getelementptr inbounds ptr, ptr %7268, i64 %7270
  %7272 = load ptr, ptr %7271, align 8, !tbaa !5
  %7273 = load i32, ptr %23, align 4, !tbaa !16
  %7274 = sext i32 %7273 to i64
  %7275 = getelementptr inbounds i8, ptr %7272, i64 %7274
  %7276 = load i8, ptr %7275, align 1, !tbaa !20
  %7277 = zext i8 %7276 to i64
  %7278 = getelementptr inbounds [256 x i32], ptr %16, i64 0, i64 %7277
  %7279 = load i32, ptr %7278, align 4, !tbaa !16
  %7280 = load ptr, ptr %21, align 8, !tbaa !5
  %7281 = load i32, ptr %22, align 4, !tbaa !16
  %7282 = sext i32 %7281 to i64
  %7283 = getelementptr inbounds ptr, ptr %7280, i64 %7282
  %7284 = load ptr, ptr %7283, align 8, !tbaa !5
  %7285 = load i32, ptr %23, align 4, !tbaa !16
  %7286 = sext i32 %7285 to i64
  %7287 = getelementptr inbounds i8, ptr %7284, i64 %7286
  %7288 = load i8, ptr %7287, align 1, !tbaa !20
  %7289 = zext i8 %7288 to i64
  %7290 = getelementptr inbounds [256 x i32], ptr %17, i64 0, i64 %7289
  %7291 = load i32, ptr %7290, align 4, !tbaa !16
  %7292 = add nsw i32 %7279, %7291
  store i32 %7292, ptr %112, align 4, !tbaa !16
  %7293 = load i32, ptr %112, align 4, !tbaa !16
  %7294 = icmp slt i32 %7293, 0
  br i1 %7294, label %7295, label %7309

7295:                                             ; preds = %7267
  %7296 = load ptr, ptr %8, align 8, !tbaa !5
  %7297 = getelementptr inbounds %struct.MImage, ptr %7296, i32 0, i32 3
  %7298 = load i32, ptr %19, align 4, !tbaa !16
  %7299 = sext i32 %7298 to i64
  %7300 = getelementptr inbounds [4 x ptr], ptr %7297, i64 0, i64 %7299
  %7301 = load ptr, ptr %7300, align 8, !tbaa !5
  %7302 = load i32, ptr %22, align 4, !tbaa !16
  %7303 = sext i32 %7302 to i64
  %7304 = getelementptr inbounds ptr, ptr %7301, i64 %7303
  %7305 = load ptr, ptr %7304, align 8, !tbaa !5
  %7306 = load i32, ptr %23, align 4, !tbaa !16
  %7307 = sext i32 %7306 to i64
  %7308 = getelementptr inbounds i8, ptr %7305, i64 %7307
  store i8 0, ptr %7308, align 1, !tbaa !20
  br label %7343

7309:                                             ; preds = %7267
  %7310 = load i32, ptr %112, align 4, !tbaa !16
  %7311 = icmp sgt i32 %7310, 255
  br i1 %7311, label %7312, label %7326

7312:                                             ; preds = %7309
  %7313 = load ptr, ptr %8, align 8, !tbaa !5
  %7314 = getelementptr inbounds %struct.MImage, ptr %7313, i32 0, i32 3
  %7315 = load i32, ptr %19, align 4, !tbaa !16
  %7316 = sext i32 %7315 to i64
  %7317 = getelementptr inbounds [4 x ptr], ptr %7314, i64 0, i64 %7316
  %7318 = load ptr, ptr %7317, align 8, !tbaa !5
  %7319 = load i32, ptr %22, align 4, !tbaa !16
  %7320 = sext i32 %7319 to i64
  %7321 = getelementptr inbounds ptr, ptr %7318, i64 %7320
  %7322 = load ptr, ptr %7321, align 8, !tbaa !5
  %7323 = load i32, ptr %23, align 4, !tbaa !16
  %7324 = sext i32 %7323 to i64
  %7325 = getelementptr inbounds i8, ptr %7322, i64 %7324
  store i8 -1, ptr %7325, align 1, !tbaa !20
  br label %7342

7326:                                             ; preds = %7309
  %7327 = load i32, ptr %112, align 4, !tbaa !16
  %7328 = trunc i32 %7327 to i8
  %7329 = load ptr, ptr %8, align 8, !tbaa !5
  %7330 = getelementptr inbounds %struct.MImage, ptr %7329, i32 0, i32 3
  %7331 = load i32, ptr %19, align 4, !tbaa !16
  %7332 = sext i32 %7331 to i64
  %7333 = getelementptr inbounds [4 x ptr], ptr %7330, i64 0, i64 %7332
  %7334 = load ptr, ptr %7333, align 8, !tbaa !5
  %7335 = load i32, ptr %22, align 4, !tbaa !16
  %7336 = sext i32 %7335 to i64
  %7337 = getelementptr inbounds ptr, ptr %7334, i64 %7336
  %7338 = load ptr, ptr %7337, align 8, !tbaa !5
  %7339 = load i32, ptr %23, align 4, !tbaa !16
  %7340 = sext i32 %7339 to i64
  %7341 = getelementptr inbounds i8, ptr %7338, i64 %7340
  store i8 %7328, ptr %7341, align 1, !tbaa !20
  br label %7342

7342:                                             ; preds = %7326, %7312
  br label %7343

7343:                                             ; preds = %7342, %7295
  call void @llvm.lifetime.end.p0(i64 4, ptr %112) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %113) #3
  %7344 = load ptr, ptr %20, align 8, !tbaa !5
  %7345 = load i32, ptr %22, align 4, !tbaa !16
  %7346 = sext i32 %7345 to i64
  %7347 = getelementptr inbounds ptr, ptr %7344, i64 %7346
  %7348 = load ptr, ptr %7347, align 8, !tbaa !5
  %7349 = load i32, ptr %23, align 4, !tbaa !16
  %7350 = sext i32 %7349 to i64
  %7351 = getelementptr inbounds i8, ptr %7348, i64 %7350
  %7352 = load i8, ptr %7351, align 1, !tbaa !20
  %7353 = zext i8 %7352 to i64
  %7354 = getelementptr inbounds [256 x i32], ptr %16, i64 0, i64 %7353
  %7355 = load i32, ptr %7354, align 4, !tbaa !16
  %7356 = load ptr, ptr %21, align 8, !tbaa !5
  %7357 = load i32, ptr %22, align 4, !tbaa !16
  %7358 = sext i32 %7357 to i64
  %7359 = getelementptr inbounds ptr, ptr %7356, i64 %7358
  %7360 = load ptr, ptr %7359, align 8, !tbaa !5
  %7361 = load i32, ptr %23, align 4, !tbaa !16
  %7362 = sext i32 %7361 to i64
  %7363 = getelementptr inbounds i8, ptr %7360, i64 %7362
  %7364 = load i8, ptr %7363, align 1, !tbaa !20
  %7365 = zext i8 %7364 to i64
  %7366 = getelementptr inbounds [256 x i32], ptr %17, i64 0, i64 %7365
  %7367 = load i32, ptr %7366, align 4, !tbaa !16
  %7368 = add nsw i32 %7355, %7367
  store i32 %7368, ptr %113, align 4, !tbaa !16
  %7369 = load i32, ptr %113, align 4, !tbaa !16
  %7370 = icmp slt i32 %7369, 0
  br i1 %7370, label %7371, label %7385

7371:                                             ; preds = %7343
  %7372 = load ptr, ptr %8, align 8, !tbaa !5
  %7373 = getelementptr inbounds %struct.MImage, ptr %7372, i32 0, i32 3
  %7374 = load i32, ptr %19, align 4, !tbaa !16
  %7375 = sext i32 %7374 to i64
  %7376 = getelementptr inbounds [4 x ptr], ptr %7373, i64 0, i64 %7375
  %7377 = load ptr, ptr %7376, align 8, !tbaa !5
  %7378 = load i32, ptr %22, align 4, !tbaa !16
  %7379 = sext i32 %7378 to i64
  %7380 = getelementptr inbounds ptr, ptr %7377, i64 %7379
  %7381 = load ptr, ptr %7380, align 8, !tbaa !5
  %7382 = load i32, ptr %23, align 4, !tbaa !16
  %7383 = sext i32 %7382 to i64
  %7384 = getelementptr inbounds i8, ptr %7381, i64 %7383
  store i8 0, ptr %7384, align 1, !tbaa !20
  br label %7419

7385:                                             ; preds = %7343
  %7386 = load i32, ptr %113, align 4, !tbaa !16
  %7387 = icmp sgt i32 %7386, 255
  br i1 %7387, label %7388, label %7402

7388:                                             ; preds = %7385
  %7389 = load ptr, ptr %8, align 8, !tbaa !5
  %7390 = getelementptr inbounds %struct.MImage, ptr %7389, i32 0, i32 3
  %7391 = load i32, ptr %19, align 4, !tbaa !16
  %7392 = sext i32 %7391 to i64
  %7393 = getelementptr inbounds [4 x ptr], ptr %7390, i64 0, i64 %7392
  %7394 = load ptr, ptr %7393, align 8, !tbaa !5
  %7395 = load i32, ptr %22, align 4, !tbaa !16
  %7396 = sext i32 %7395 to i64
  %7397 = getelementptr inbounds ptr, ptr %7394, i64 %7396
  %7398 = load ptr, ptr %7397, align 8, !tbaa !5
  %7399 = load i32, ptr %23, align 4, !tbaa !16
  %7400 = sext i32 %7399 to i64
  %7401 = getelementptr inbounds i8, ptr %7398, i64 %7400
  store i8 -1, ptr %7401, align 1, !tbaa !20
  br label %7418

7402:                                             ; preds = %7385
  %7403 = load i32, ptr %113, align 4, !tbaa !16
  %7404 = trunc i32 %7403 to i8
  %7405 = load ptr, ptr %8, align 8, !tbaa !5
  %7406 = getelementptr inbounds %struct.MImage, ptr %7405, i32 0, i32 3
  %7407 = load i32, ptr %19, align 4, !tbaa !16
  %7408 = sext i32 %7407 to i64
  %7409 = getelementptr inbounds [4 x ptr], ptr %7406, i64 0, i64 %7408
  %7410 = load ptr, ptr %7409, align 8, !tbaa !5
  %7411 = load i32, ptr %22, align 4, !tbaa !16
  %7412 = sext i32 %7411 to i64
  %7413 = getelementptr inbounds ptr, ptr %7410, i64 %7412
  %7414 = load ptr, ptr %7413, align 8, !tbaa !5
  %7415 = load i32, ptr %23, align 4, !tbaa !16
  %7416 = sext i32 %7415 to i64
  %7417 = getelementptr inbounds i8, ptr %7414, i64 %7416
  store i8 %7404, ptr %7417, align 1, !tbaa !20
  br label %7418

7418:                                             ; preds = %7402, %7388
  br label %7419

7419:                                             ; preds = %7418, %7371
  call void @llvm.lifetime.end.p0(i64 4, ptr %113) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %114) #3
  %7420 = load ptr, ptr %20, align 8, !tbaa !5
  %7421 = load i32, ptr %22, align 4, !tbaa !16
  %7422 = sext i32 %7421 to i64
  %7423 = getelementptr inbounds ptr, ptr %7420, i64 %7422
  %7424 = load ptr, ptr %7423, align 8, !tbaa !5
  %7425 = load i32, ptr %23, align 4, !tbaa !16
  %7426 = sext i32 %7425 to i64
  %7427 = getelementptr inbounds i8, ptr %7424, i64 %7426
  %7428 = load i8, ptr %7427, align 1, !tbaa !20
  %7429 = zext i8 %7428 to i64
  %7430 = getelementptr inbounds [256 x i32], ptr %16, i64 0, i64 %7429
  %7431 = load i32, ptr %7430, align 4, !tbaa !16
  %7432 = load ptr, ptr %21, align 8, !tbaa !5
  %7433 = load i32, ptr %22, align 4, !tbaa !16
  %7434 = sext i32 %7433 to i64
  %7435 = getelementptr inbounds ptr, ptr %7432, i64 %7434
  %7436 = load ptr, ptr %7435, align 8, !tbaa !5
  %7437 = load i32, ptr %23, align 4, !tbaa !16
  %7438 = sext i32 %7437 to i64
  %7439 = getelementptr inbounds i8, ptr %7436, i64 %7438
  %7440 = load i8, ptr %7439, align 1, !tbaa !20
  %7441 = zext i8 %7440 to i64
  %7442 = getelementptr inbounds [256 x i32], ptr %17, i64 0, i64 %7441
  %7443 = load i32, ptr %7442, align 4, !tbaa !16
  %7444 = add nsw i32 %7431, %7443
  store i32 %7444, ptr %114, align 4, !tbaa !16
  %7445 = load i32, ptr %114, align 4, !tbaa !16
  %7446 = icmp slt i32 %7445, 0
  br i1 %7446, label %7447, label %7461

7447:                                             ; preds = %7419
  %7448 = load ptr, ptr %8, align 8, !tbaa !5
  %7449 = getelementptr inbounds %struct.MImage, ptr %7448, i32 0, i32 3
  %7450 = load i32, ptr %19, align 4, !tbaa !16
  %7451 = sext i32 %7450 to i64
  %7452 = getelementptr inbounds [4 x ptr], ptr %7449, i64 0, i64 %7451
  %7453 = load ptr, ptr %7452, align 8, !tbaa !5
  %7454 = load i32, ptr %22, align 4, !tbaa !16
  %7455 = sext i32 %7454 to i64
  %7456 = getelementptr inbounds ptr, ptr %7453, i64 %7455
  %7457 = load ptr, ptr %7456, align 8, !tbaa !5
  %7458 = load i32, ptr %23, align 4, !tbaa !16
  %7459 = sext i32 %7458 to i64
  %7460 = getelementptr inbounds i8, ptr %7457, i64 %7459
  store i8 0, ptr %7460, align 1, !tbaa !20
  br label %7495

7461:                                             ; preds = %7419
  %7462 = load i32, ptr %114, align 4, !tbaa !16
  %7463 = icmp sgt i32 %7462, 255
  br i1 %7463, label %7464, label %7478

7464:                                             ; preds = %7461
  %7465 = load ptr, ptr %8, align 8, !tbaa !5
  %7466 = getelementptr inbounds %struct.MImage, ptr %7465, i32 0, i32 3
  %7467 = load i32, ptr %19, align 4, !tbaa !16
  %7468 = sext i32 %7467 to i64
  %7469 = getelementptr inbounds [4 x ptr], ptr %7466, i64 0, i64 %7468
  %7470 = load ptr, ptr %7469, align 8, !tbaa !5
  %7471 = load i32, ptr %22, align 4, !tbaa !16
  %7472 = sext i32 %7471 to i64
  %7473 = getelementptr inbounds ptr, ptr %7470, i64 %7472
  %7474 = load ptr, ptr %7473, align 8, !tbaa !5
  %7475 = load i32, ptr %23, align 4, !tbaa !16
  %7476 = sext i32 %7475 to i64
  %7477 = getelementptr inbounds i8, ptr %7474, i64 %7476
  store i8 -1, ptr %7477, align 1, !tbaa !20
  br label %7494

7478:                                             ; preds = %7461
  %7479 = load i32, ptr %114, align 4, !tbaa !16
  %7480 = trunc i32 %7479 to i8
  %7481 = load ptr, ptr %8, align 8, !tbaa !5
  %7482 = getelementptr inbounds %struct.MImage, ptr %7481, i32 0, i32 3
  %7483 = load i32, ptr %19, align 4, !tbaa !16
  %7484 = sext i32 %7483 to i64
  %7485 = getelementptr inbounds [4 x ptr], ptr %7482, i64 0, i64 %7484
  %7486 = load ptr, ptr %7485, align 8, !tbaa !5
  %7487 = load i32, ptr %22, align 4, !tbaa !16
  %7488 = sext i32 %7487 to i64
  %7489 = getelementptr inbounds ptr, ptr %7486, i64 %7488
  %7490 = load ptr, ptr %7489, align 8, !tbaa !5
  %7491 = load i32, ptr %23, align 4, !tbaa !16
  %7492 = sext i32 %7491 to i64
  %7493 = getelementptr inbounds i8, ptr %7490, i64 %7492
  store i8 %7480, ptr %7493, align 1, !tbaa !20
  br label %7494

7494:                                             ; preds = %7478, %7464
  br label %7495

7495:                                             ; preds = %7494, %7447
  call void @llvm.lifetime.end.p0(i64 4, ptr %114) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %115) #3
  %7496 = load ptr, ptr %20, align 8, !tbaa !5
  %7497 = load i32, ptr %22, align 4, !tbaa !16
  %7498 = sext i32 %7497 to i64
  %7499 = getelementptr inbounds ptr, ptr %7496, i64 %7498
  %7500 = load ptr, ptr %7499, align 8, !tbaa !5
  %7501 = load i32, ptr %23, align 4, !tbaa !16
  %7502 = sext i32 %7501 to i64
  %7503 = getelementptr inbounds i8, ptr %7500, i64 %7502
  %7504 = load i8, ptr %7503, align 1, !tbaa !20
  %7505 = zext i8 %7504 to i64
  %7506 = getelementptr inbounds [256 x i32], ptr %16, i64 0, i64 %7505
  %7507 = load i32, ptr %7506, align 4, !tbaa !16
  %7508 = load ptr, ptr %21, align 8, !tbaa !5
  %7509 = load i32, ptr %22, align 4, !tbaa !16
  %7510 = sext i32 %7509 to i64
  %7511 = getelementptr inbounds ptr, ptr %7508, i64 %7510
  %7512 = load ptr, ptr %7511, align 8, !tbaa !5
  %7513 = load i32, ptr %23, align 4, !tbaa !16
  %7514 = sext i32 %7513 to i64
  %7515 = getelementptr inbounds i8, ptr %7512, i64 %7514
  %7516 = load i8, ptr %7515, align 1, !tbaa !20
  %7517 = zext i8 %7516 to i64
  %7518 = getelementptr inbounds [256 x i32], ptr %17, i64 0, i64 %7517
  %7519 = load i32, ptr %7518, align 4, !tbaa !16
  %7520 = add nsw i32 %7507, %7519
  store i32 %7520, ptr %115, align 4, !tbaa !16
  %7521 = load i32, ptr %115, align 4, !tbaa !16
  %7522 = icmp slt i32 %7521, 0
  br i1 %7522, label %7523, label %7537

7523:                                             ; preds = %7495
  %7524 = load ptr, ptr %8, align 8, !tbaa !5
  %7525 = getelementptr inbounds %struct.MImage, ptr %7524, i32 0, i32 3
  %7526 = load i32, ptr %19, align 4, !tbaa !16
  %7527 = sext i32 %7526 to i64
  %7528 = getelementptr inbounds [4 x ptr], ptr %7525, i64 0, i64 %7527
  %7529 = load ptr, ptr %7528, align 8, !tbaa !5
  %7530 = load i32, ptr %22, align 4, !tbaa !16
  %7531 = sext i32 %7530 to i64
  %7532 = getelementptr inbounds ptr, ptr %7529, i64 %7531
  %7533 = load ptr, ptr %7532, align 8, !tbaa !5
  %7534 = load i32, ptr %23, align 4, !tbaa !16
  %7535 = sext i32 %7534 to i64
  %7536 = getelementptr inbounds i8, ptr %7533, i64 %7535
  store i8 0, ptr %7536, align 1, !tbaa !20
  br label %7571

7537:                                             ; preds = %7495
  %7538 = load i32, ptr %115, align 4, !tbaa !16
  %7539 = icmp sgt i32 %7538, 255
  br i1 %7539, label %7540, label %7554

7540:                                             ; preds = %7537
  %7541 = load ptr, ptr %8, align 8, !tbaa !5
  %7542 = getelementptr inbounds %struct.MImage, ptr %7541, i32 0, i32 3
  %7543 = load i32, ptr %19, align 4, !tbaa !16
  %7544 = sext i32 %7543 to i64
  %7545 = getelementptr inbounds [4 x ptr], ptr %7542, i64 0, i64 %7544
  %7546 = load ptr, ptr %7545, align 8, !tbaa !5
  %7547 = load i32, ptr %22, align 4, !tbaa !16
  %7548 = sext i32 %7547 to i64
  %7549 = getelementptr inbounds ptr, ptr %7546, i64 %7548
  %7550 = load ptr, ptr %7549, align 8, !tbaa !5
  %7551 = load i32, ptr %23, align 4, !tbaa !16
  %7552 = sext i32 %7551 to i64
  %7553 = getelementptr inbounds i8, ptr %7550, i64 %7552
  store i8 -1, ptr %7553, align 1, !tbaa !20
  br label %7570

7554:                                             ; preds = %7537
  %7555 = load i32, ptr %115, align 4, !tbaa !16
  %7556 = trunc i32 %7555 to i8
  %7557 = load ptr, ptr %8, align 8, !tbaa !5
  %7558 = getelementptr inbounds %struct.MImage, ptr %7557, i32 0, i32 3
  %7559 = load i32, ptr %19, align 4, !tbaa !16
  %7560 = sext i32 %7559 to i64
  %7561 = getelementptr inbounds [4 x ptr], ptr %7558, i64 0, i64 %7560
  %7562 = load ptr, ptr %7561, align 8, !tbaa !5
  %7563 = load i32, ptr %22, align 4, !tbaa !16
  %7564 = sext i32 %7563 to i64
  %7565 = getelementptr inbounds ptr, ptr %7562, i64 %7564
  %7566 = load ptr, ptr %7565, align 8, !tbaa !5
  %7567 = load i32, ptr %23, align 4, !tbaa !16
  %7568 = sext i32 %7567 to i64
  %7569 = getelementptr inbounds i8, ptr %7566, i64 %7568
  store i8 %7556, ptr %7569, align 1, !tbaa !20
  br label %7570

7570:                                             ; preds = %7554, %7540
  br label %7571

7571:                                             ; preds = %7570, %7523
  call void @llvm.lifetime.end.p0(i64 4, ptr %115) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %116) #3
  %7572 = load ptr, ptr %20, align 8, !tbaa !5
  %7573 = load i32, ptr %22, align 4, !tbaa !16
  %7574 = sext i32 %7573 to i64
  %7575 = getelementptr inbounds ptr, ptr %7572, i64 %7574
  %7576 = load ptr, ptr %7575, align 8, !tbaa !5
  %7577 = load i32, ptr %23, align 4, !tbaa !16
  %7578 = sext i32 %7577 to i64
  %7579 = getelementptr inbounds i8, ptr %7576, i64 %7578
  %7580 = load i8, ptr %7579, align 1, !tbaa !20
  %7581 = zext i8 %7580 to i64
  %7582 = getelementptr inbounds [256 x i32], ptr %16, i64 0, i64 %7581
  %7583 = load i32, ptr %7582, align 4, !tbaa !16
  %7584 = load ptr, ptr %21, align 8, !tbaa !5
  %7585 = load i32, ptr %22, align 4, !tbaa !16
  %7586 = sext i32 %7585 to i64
  %7587 = getelementptr inbounds ptr, ptr %7584, i64 %7586
  %7588 = load ptr, ptr %7587, align 8, !tbaa !5
  %7589 = load i32, ptr %23, align 4, !tbaa !16
  %7590 = sext i32 %7589 to i64
  %7591 = getelementptr inbounds i8, ptr %7588, i64 %7590
  %7592 = load i8, ptr %7591, align 1, !tbaa !20
  %7593 = zext i8 %7592 to i64
  %7594 = getelementptr inbounds [256 x i32], ptr %17, i64 0, i64 %7593
  %7595 = load i32, ptr %7594, align 4, !tbaa !16
  %7596 = add nsw i32 %7583, %7595
  store i32 %7596, ptr %116, align 4, !tbaa !16
  %7597 = load i32, ptr %116, align 4, !tbaa !16
  %7598 = icmp slt i32 %7597, 0
  br i1 %7598, label %7599, label %7613

7599:                                             ; preds = %7571
  %7600 = load ptr, ptr %8, align 8, !tbaa !5
  %7601 = getelementptr inbounds %struct.MImage, ptr %7600, i32 0, i32 3
  %7602 = load i32, ptr %19, align 4, !tbaa !16
  %7603 = sext i32 %7602 to i64
  %7604 = getelementptr inbounds [4 x ptr], ptr %7601, i64 0, i64 %7603
  %7605 = load ptr, ptr %7604, align 8, !tbaa !5
  %7606 = load i32, ptr %22, align 4, !tbaa !16
  %7607 = sext i32 %7606 to i64
  %7608 = getelementptr inbounds ptr, ptr %7605, i64 %7607
  %7609 = load ptr, ptr %7608, align 8, !tbaa !5
  %7610 = load i32, ptr %23, align 4, !tbaa !16
  %7611 = sext i32 %7610 to i64
  %7612 = getelementptr inbounds i8, ptr %7609, i64 %7611
  store i8 0, ptr %7612, align 1, !tbaa !20
  br label %7647

7613:                                             ; preds = %7571
  %7614 = load i32, ptr %116, align 4, !tbaa !16
  %7615 = icmp sgt i32 %7614, 255
  br i1 %7615, label %7616, label %7630

7616:                                             ; preds = %7613
  %7617 = load ptr, ptr %8, align 8, !tbaa !5
  %7618 = getelementptr inbounds %struct.MImage, ptr %7617, i32 0, i32 3
  %7619 = load i32, ptr %19, align 4, !tbaa !16
  %7620 = sext i32 %7619 to i64
  %7621 = getelementptr inbounds [4 x ptr], ptr %7618, i64 0, i64 %7620
  %7622 = load ptr, ptr %7621, align 8, !tbaa !5
  %7623 = load i32, ptr %22, align 4, !tbaa !16
  %7624 = sext i32 %7623 to i64
  %7625 = getelementptr inbounds ptr, ptr %7622, i64 %7624
  %7626 = load ptr, ptr %7625, align 8, !tbaa !5
  %7627 = load i32, ptr %23, align 4, !tbaa !16
  %7628 = sext i32 %7627 to i64
  %7629 = getelementptr inbounds i8, ptr %7626, i64 %7628
  store i8 -1, ptr %7629, align 1, !tbaa !20
  br label %7646

7630:                                             ; preds = %7613
  %7631 = load i32, ptr %116, align 4, !tbaa !16
  %7632 = trunc i32 %7631 to i8
  %7633 = load ptr, ptr %8, align 8, !tbaa !5
  %7634 = getelementptr inbounds %struct.MImage, ptr %7633, i32 0, i32 3
  %7635 = load i32, ptr %19, align 4, !tbaa !16
  %7636 = sext i32 %7635 to i64
  %7637 = getelementptr inbounds [4 x ptr], ptr %7634, i64 0, i64 %7636
  %7638 = load ptr, ptr %7637, align 8, !tbaa !5
  %7639 = load i32, ptr %22, align 4, !tbaa !16
  %7640 = sext i32 %7639 to i64
  %7641 = getelementptr inbounds ptr, ptr %7638, i64 %7640
  %7642 = load ptr, ptr %7641, align 8, !tbaa !5
  %7643 = load i32, ptr %23, align 4, !tbaa !16
  %7644 = sext i32 %7643 to i64
  %7645 = getelementptr inbounds i8, ptr %7642, i64 %7644
  store i8 %7632, ptr %7645, align 1, !tbaa !20
  br label %7646

7646:                                             ; preds = %7630, %7616
  br label %7647

7647:                                             ; preds = %7646, %7599
  call void @llvm.lifetime.end.p0(i64 4, ptr %116) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %117) #3
  %7648 = load ptr, ptr %20, align 8, !tbaa !5
  %7649 = load i32, ptr %22, align 4, !tbaa !16
  %7650 = sext i32 %7649 to i64
  %7651 = getelementptr inbounds ptr, ptr %7648, i64 %7650
  %7652 = load ptr, ptr %7651, align 8, !tbaa !5
  %7653 = load i32, ptr %23, align 4, !tbaa !16
  %7654 = sext i32 %7653 to i64
  %7655 = getelementptr inbounds i8, ptr %7652, i64 %7654
  %7656 = load i8, ptr %7655, align 1, !tbaa !20
  %7657 = zext i8 %7656 to i64
  %7658 = getelementptr inbounds [256 x i32], ptr %16, i64 0, i64 %7657
  %7659 = load i32, ptr %7658, align 4, !tbaa !16
  %7660 = load ptr, ptr %21, align 8, !tbaa !5
  %7661 = load i32, ptr %22, align 4, !tbaa !16
  %7662 = sext i32 %7661 to i64
  %7663 = getelementptr inbounds ptr, ptr %7660, i64 %7662
  %7664 = load ptr, ptr %7663, align 8, !tbaa !5
  %7665 = load i32, ptr %23, align 4, !tbaa !16
  %7666 = sext i32 %7665 to i64
  %7667 = getelementptr inbounds i8, ptr %7664, i64 %7666
  %7668 = load i8, ptr %7667, align 1, !tbaa !20
  %7669 = zext i8 %7668 to i64
  %7670 = getelementptr inbounds [256 x i32], ptr %17, i64 0, i64 %7669
  %7671 = load i32, ptr %7670, align 4, !tbaa !16
  %7672 = add nsw i32 %7659, %7671
  store i32 %7672, ptr %117, align 4, !tbaa !16
  %7673 = load i32, ptr %117, align 4, !tbaa !16
  %7674 = icmp slt i32 %7673, 0
  br i1 %7674, label %7675, label %7689

7675:                                             ; preds = %7647
  %7676 = load ptr, ptr %8, align 8, !tbaa !5
  %7677 = getelementptr inbounds %struct.MImage, ptr %7676, i32 0, i32 3
  %7678 = load i32, ptr %19, align 4, !tbaa !16
  %7679 = sext i32 %7678 to i64
  %7680 = getelementptr inbounds [4 x ptr], ptr %7677, i64 0, i64 %7679
  %7681 = load ptr, ptr %7680, align 8, !tbaa !5
  %7682 = load i32, ptr %22, align 4, !tbaa !16
  %7683 = sext i32 %7682 to i64
  %7684 = getelementptr inbounds ptr, ptr %7681, i64 %7683
  %7685 = load ptr, ptr %7684, align 8, !tbaa !5
  %7686 = load i32, ptr %23, align 4, !tbaa !16
  %7687 = sext i32 %7686 to i64
  %7688 = getelementptr inbounds i8, ptr %7685, i64 %7687
  store i8 0, ptr %7688, align 1, !tbaa !20
  br label %7723

7689:                                             ; preds = %7647
  %7690 = load i32, ptr %117, align 4, !tbaa !16
  %7691 = icmp sgt i32 %7690, 255
  br i1 %7691, label %7692, label %7706

7692:                                             ; preds = %7689
  %7693 = load ptr, ptr %8, align 8, !tbaa !5
  %7694 = getelementptr inbounds %struct.MImage, ptr %7693, i32 0, i32 3
  %7695 = load i32, ptr %19, align 4, !tbaa !16
  %7696 = sext i32 %7695 to i64
  %7697 = getelementptr inbounds [4 x ptr], ptr %7694, i64 0, i64 %7696
  %7698 = load ptr, ptr %7697, align 8, !tbaa !5
  %7699 = load i32, ptr %22, align 4, !tbaa !16
  %7700 = sext i32 %7699 to i64
  %7701 = getelementptr inbounds ptr, ptr %7698, i64 %7700
  %7702 = load ptr, ptr %7701, align 8, !tbaa !5
  %7703 = load i32, ptr %23, align 4, !tbaa !16
  %7704 = sext i32 %7703 to i64
  %7705 = getelementptr inbounds i8, ptr %7702, i64 %7704
  store i8 -1, ptr %7705, align 1, !tbaa !20
  br label %7722

7706:                                             ; preds = %7689
  %7707 = load i32, ptr %117, align 4, !tbaa !16
  %7708 = trunc i32 %7707 to i8
  %7709 = load ptr, ptr %8, align 8, !tbaa !5
  %7710 = getelementptr inbounds %struct.MImage, ptr %7709, i32 0, i32 3
  %7711 = load i32, ptr %19, align 4, !tbaa !16
  %7712 = sext i32 %7711 to i64
  %7713 = getelementptr inbounds [4 x ptr], ptr %7710, i64 0, i64 %7712
  %7714 = load ptr, ptr %7713, align 8, !tbaa !5
  %7715 = load i32, ptr %22, align 4, !tbaa !16
  %7716 = sext i32 %7715 to i64
  %7717 = getelementptr inbounds ptr, ptr %7714, i64 %7716
  %7718 = load ptr, ptr %7717, align 8, !tbaa !5
  %7719 = load i32, ptr %23, align 4, !tbaa !16
  %7720 = sext i32 %7719 to i64
  %7721 = getelementptr inbounds i8, ptr %7718, i64 %7720
  store i8 %7708, ptr %7721, align 1, !tbaa !20
  br label %7722

7722:                                             ; preds = %7706, %7692
  br label %7723

7723:                                             ; preds = %7722, %7675
  call void @llvm.lifetime.end.p0(i64 4, ptr %117) #3
  br label %10943

7724:                                             ; preds = %6804
  %7725 = load ptr, ptr %8, align 8, !tbaa !5
  %7726 = getelementptr inbounds %struct.MImage, ptr %7725, i32 0, i32 2
  %7727 = load i32, ptr %7726, align 8, !tbaa !15
  %7728 = load i32, ptr %23, align 4, !tbaa !16
  %7729 = sub nsw i32 %7727, %7728
  %7730 = icmp eq i32 %7729, 13
  br i1 %7730, label %7731, label %8720

7731:                                             ; preds = %7724
  call void @llvm.lifetime.start.p0(i64 4, ptr %118) #3
  %7732 = load ptr, ptr %20, align 8, !tbaa !5
  %7733 = load i32, ptr %22, align 4, !tbaa !16
  %7734 = sext i32 %7733 to i64
  %7735 = getelementptr inbounds ptr, ptr %7732, i64 %7734
  %7736 = load ptr, ptr %7735, align 8, !tbaa !5
  %7737 = load i32, ptr %23, align 4, !tbaa !16
  %7738 = sext i32 %7737 to i64
  %7739 = getelementptr inbounds i8, ptr %7736, i64 %7738
  %7740 = load i8, ptr %7739, align 1, !tbaa !20
  %7741 = zext i8 %7740 to i64
  %7742 = getelementptr inbounds [256 x i32], ptr %16, i64 0, i64 %7741
  %7743 = load i32, ptr %7742, align 4, !tbaa !16
  %7744 = load ptr, ptr %21, align 8, !tbaa !5
  %7745 = load i32, ptr %22, align 4, !tbaa !16
  %7746 = sext i32 %7745 to i64
  %7747 = getelementptr inbounds ptr, ptr %7744, i64 %7746
  %7748 = load ptr, ptr %7747, align 8, !tbaa !5
  %7749 = load i32, ptr %23, align 4, !tbaa !16
  %7750 = sext i32 %7749 to i64
  %7751 = getelementptr inbounds i8, ptr %7748, i64 %7750
  %7752 = load i8, ptr %7751, align 1, !tbaa !20
  %7753 = zext i8 %7752 to i64
  %7754 = getelementptr inbounds [256 x i32], ptr %17, i64 0, i64 %7753
  %7755 = load i32, ptr %7754, align 4, !tbaa !16
  %7756 = add nsw i32 %7743, %7755
  store i32 %7756, ptr %118, align 4, !tbaa !16
  %7757 = load i32, ptr %118, align 4, !tbaa !16
  %7758 = icmp slt i32 %7757, 0
  br i1 %7758, label %7759, label %7773

7759:                                             ; preds = %7731
  %7760 = load ptr, ptr %8, align 8, !tbaa !5
  %7761 = getelementptr inbounds %struct.MImage, ptr %7760, i32 0, i32 3
  %7762 = load i32, ptr %19, align 4, !tbaa !16
  %7763 = sext i32 %7762 to i64
  %7764 = getelementptr inbounds [4 x ptr], ptr %7761, i64 0, i64 %7763
  %7765 = load ptr, ptr %7764, align 8, !tbaa !5
  %7766 = load i32, ptr %22, align 4, !tbaa !16
  %7767 = sext i32 %7766 to i64
  %7768 = getelementptr inbounds ptr, ptr %7765, i64 %7767
  %7769 = load ptr, ptr %7768, align 8, !tbaa !5
  %7770 = load i32, ptr %23, align 4, !tbaa !16
  %7771 = sext i32 %7770 to i64
  %7772 = getelementptr inbounds i8, ptr %7769, i64 %7771
  store i8 0, ptr %7772, align 1, !tbaa !20
  br label %7807

7773:                                             ; preds = %7731
  %7774 = load i32, ptr %118, align 4, !tbaa !16
  %7775 = icmp sgt i32 %7774, 255
  br i1 %7775, label %7776, label %7790

7776:                                             ; preds = %7773
  %7777 = load ptr, ptr %8, align 8, !tbaa !5
  %7778 = getelementptr inbounds %struct.MImage, ptr %7777, i32 0, i32 3
  %7779 = load i32, ptr %19, align 4, !tbaa !16
  %7780 = sext i32 %7779 to i64
  %7781 = getelementptr inbounds [4 x ptr], ptr %7778, i64 0, i64 %7780
  %7782 = load ptr, ptr %7781, align 8, !tbaa !5
  %7783 = load i32, ptr %22, align 4, !tbaa !16
  %7784 = sext i32 %7783 to i64
  %7785 = getelementptr inbounds ptr, ptr %7782, i64 %7784
  %7786 = load ptr, ptr %7785, align 8, !tbaa !5
  %7787 = load i32, ptr %23, align 4, !tbaa !16
  %7788 = sext i32 %7787 to i64
  %7789 = getelementptr inbounds i8, ptr %7786, i64 %7788
  store i8 -1, ptr %7789, align 1, !tbaa !20
  br label %7806

7790:                                             ; preds = %7773
  %7791 = load i32, ptr %118, align 4, !tbaa !16
  %7792 = trunc i32 %7791 to i8
  %7793 = load ptr, ptr %8, align 8, !tbaa !5
  %7794 = getelementptr inbounds %struct.MImage, ptr %7793, i32 0, i32 3
  %7795 = load i32, ptr %19, align 4, !tbaa !16
  %7796 = sext i32 %7795 to i64
  %7797 = getelementptr inbounds [4 x ptr], ptr %7794, i64 0, i64 %7796
  %7798 = load ptr, ptr %7797, align 8, !tbaa !5
  %7799 = load i32, ptr %22, align 4, !tbaa !16
  %7800 = sext i32 %7799 to i64
  %7801 = getelementptr inbounds ptr, ptr %7798, i64 %7800
  %7802 = load ptr, ptr %7801, align 8, !tbaa !5
  %7803 = load i32, ptr %23, align 4, !tbaa !16
  %7804 = sext i32 %7803 to i64
  %7805 = getelementptr inbounds i8, ptr %7802, i64 %7804
  store i8 %7792, ptr %7805, align 1, !tbaa !20
  br label %7806

7806:                                             ; preds = %7790, %7776
  br label %7807

7807:                                             ; preds = %7806, %7759
  call void @llvm.lifetime.end.p0(i64 4, ptr %118) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %119) #3
  %7808 = load ptr, ptr %20, align 8, !tbaa !5
  %7809 = load i32, ptr %22, align 4, !tbaa !16
  %7810 = sext i32 %7809 to i64
  %7811 = getelementptr inbounds ptr, ptr %7808, i64 %7810
  %7812 = load ptr, ptr %7811, align 8, !tbaa !5
  %7813 = load i32, ptr %23, align 4, !tbaa !16
  %7814 = sext i32 %7813 to i64
  %7815 = getelementptr inbounds i8, ptr %7812, i64 %7814
  %7816 = load i8, ptr %7815, align 1, !tbaa !20
  %7817 = zext i8 %7816 to i64
  %7818 = getelementptr inbounds [256 x i32], ptr %16, i64 0, i64 %7817
  %7819 = load i32, ptr %7818, align 4, !tbaa !16
  %7820 = load ptr, ptr %21, align 8, !tbaa !5
  %7821 = load i32, ptr %22, align 4, !tbaa !16
  %7822 = sext i32 %7821 to i64
  %7823 = getelementptr inbounds ptr, ptr %7820, i64 %7822
  %7824 = load ptr, ptr %7823, align 8, !tbaa !5
  %7825 = load i32, ptr %23, align 4, !tbaa !16
  %7826 = sext i32 %7825 to i64
  %7827 = getelementptr inbounds i8, ptr %7824, i64 %7826
  %7828 = load i8, ptr %7827, align 1, !tbaa !20
  %7829 = zext i8 %7828 to i64
  %7830 = getelementptr inbounds [256 x i32], ptr %17, i64 0, i64 %7829
  %7831 = load i32, ptr %7830, align 4, !tbaa !16
  %7832 = add nsw i32 %7819, %7831
  store i32 %7832, ptr %119, align 4, !tbaa !16
  %7833 = load i32, ptr %119, align 4, !tbaa !16
  %7834 = icmp slt i32 %7833, 0
  br i1 %7834, label %7835, label %7849

7835:                                             ; preds = %7807
  %7836 = load ptr, ptr %8, align 8, !tbaa !5
  %7837 = getelementptr inbounds %struct.MImage, ptr %7836, i32 0, i32 3
  %7838 = load i32, ptr %19, align 4, !tbaa !16
  %7839 = sext i32 %7838 to i64
  %7840 = getelementptr inbounds [4 x ptr], ptr %7837, i64 0, i64 %7839
  %7841 = load ptr, ptr %7840, align 8, !tbaa !5
  %7842 = load i32, ptr %22, align 4, !tbaa !16
  %7843 = sext i32 %7842 to i64
  %7844 = getelementptr inbounds ptr, ptr %7841, i64 %7843
  %7845 = load ptr, ptr %7844, align 8, !tbaa !5
  %7846 = load i32, ptr %23, align 4, !tbaa !16
  %7847 = sext i32 %7846 to i64
  %7848 = getelementptr inbounds i8, ptr %7845, i64 %7847
  store i8 0, ptr %7848, align 1, !tbaa !20
  br label %7883

7849:                                             ; preds = %7807
  %7850 = load i32, ptr %119, align 4, !tbaa !16
  %7851 = icmp sgt i32 %7850, 255
  br i1 %7851, label %7852, label %7866

7852:                                             ; preds = %7849
  %7853 = load ptr, ptr %8, align 8, !tbaa !5
  %7854 = getelementptr inbounds %struct.MImage, ptr %7853, i32 0, i32 3
  %7855 = load i32, ptr %19, align 4, !tbaa !16
  %7856 = sext i32 %7855 to i64
  %7857 = getelementptr inbounds [4 x ptr], ptr %7854, i64 0, i64 %7856
  %7858 = load ptr, ptr %7857, align 8, !tbaa !5
  %7859 = load i32, ptr %22, align 4, !tbaa !16
  %7860 = sext i32 %7859 to i64
  %7861 = getelementptr inbounds ptr, ptr %7858, i64 %7860
  %7862 = load ptr, ptr %7861, align 8, !tbaa !5
  %7863 = load i32, ptr %23, align 4, !tbaa !16
  %7864 = sext i32 %7863 to i64
  %7865 = getelementptr inbounds i8, ptr %7862, i64 %7864
  store i8 -1, ptr %7865, align 1, !tbaa !20
  br label %7882

7866:                                             ; preds = %7849
  %7867 = load i32, ptr %119, align 4, !tbaa !16
  %7868 = trunc i32 %7867 to i8
  %7869 = load ptr, ptr %8, align 8, !tbaa !5
  %7870 = getelementptr inbounds %struct.MImage, ptr %7869, i32 0, i32 3
  %7871 = load i32, ptr %19, align 4, !tbaa !16
  %7872 = sext i32 %7871 to i64
  %7873 = getelementptr inbounds [4 x ptr], ptr %7870, i64 0, i64 %7872
  %7874 = load ptr, ptr %7873, align 8, !tbaa !5
  %7875 = load i32, ptr %22, align 4, !tbaa !16
  %7876 = sext i32 %7875 to i64
  %7877 = getelementptr inbounds ptr, ptr %7874, i64 %7876
  %7878 = load ptr, ptr %7877, align 8, !tbaa !5
  %7879 = load i32, ptr %23, align 4, !tbaa !16
  %7880 = sext i32 %7879 to i64
  %7881 = getelementptr inbounds i8, ptr %7878, i64 %7880
  store i8 %7868, ptr %7881, align 1, !tbaa !20
  br label %7882

7882:                                             ; preds = %7866, %7852
  br label %7883

7883:                                             ; preds = %7882, %7835
  call void @llvm.lifetime.end.p0(i64 4, ptr %119) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %120) #3
  %7884 = load ptr, ptr %20, align 8, !tbaa !5
  %7885 = load i32, ptr %22, align 4, !tbaa !16
  %7886 = sext i32 %7885 to i64
  %7887 = getelementptr inbounds ptr, ptr %7884, i64 %7886
  %7888 = load ptr, ptr %7887, align 8, !tbaa !5
  %7889 = load i32, ptr %23, align 4, !tbaa !16
  %7890 = sext i32 %7889 to i64
  %7891 = getelementptr inbounds i8, ptr %7888, i64 %7890
  %7892 = load i8, ptr %7891, align 1, !tbaa !20
  %7893 = zext i8 %7892 to i64
  %7894 = getelementptr inbounds [256 x i32], ptr %16, i64 0, i64 %7893
  %7895 = load i32, ptr %7894, align 4, !tbaa !16
  %7896 = load ptr, ptr %21, align 8, !tbaa !5
  %7897 = load i32, ptr %22, align 4, !tbaa !16
  %7898 = sext i32 %7897 to i64
  %7899 = getelementptr inbounds ptr, ptr %7896, i64 %7898
  %7900 = load ptr, ptr %7899, align 8, !tbaa !5
  %7901 = load i32, ptr %23, align 4, !tbaa !16
  %7902 = sext i32 %7901 to i64
  %7903 = getelementptr inbounds i8, ptr %7900, i64 %7902
  %7904 = load i8, ptr %7903, align 1, !tbaa !20
  %7905 = zext i8 %7904 to i64
  %7906 = getelementptr inbounds [256 x i32], ptr %17, i64 0, i64 %7905
  %7907 = load i32, ptr %7906, align 4, !tbaa !16
  %7908 = add nsw i32 %7895, %7907
  store i32 %7908, ptr %120, align 4, !tbaa !16
  %7909 = load i32, ptr %120, align 4, !tbaa !16
  %7910 = icmp slt i32 %7909, 0
  br i1 %7910, label %7911, label %7925

7911:                                             ; preds = %7883
  %7912 = load ptr, ptr %8, align 8, !tbaa !5
  %7913 = getelementptr inbounds %struct.MImage, ptr %7912, i32 0, i32 3
  %7914 = load i32, ptr %19, align 4, !tbaa !16
  %7915 = sext i32 %7914 to i64
  %7916 = getelementptr inbounds [4 x ptr], ptr %7913, i64 0, i64 %7915
  %7917 = load ptr, ptr %7916, align 8, !tbaa !5
  %7918 = load i32, ptr %22, align 4, !tbaa !16
  %7919 = sext i32 %7918 to i64
  %7920 = getelementptr inbounds ptr, ptr %7917, i64 %7919
  %7921 = load ptr, ptr %7920, align 8, !tbaa !5
  %7922 = load i32, ptr %23, align 4, !tbaa !16
  %7923 = sext i32 %7922 to i64
  %7924 = getelementptr inbounds i8, ptr %7921, i64 %7923
  store i8 0, ptr %7924, align 1, !tbaa !20
  br label %7959

7925:                                             ; preds = %7883
  %7926 = load i32, ptr %120, align 4, !tbaa !16
  %7927 = icmp sgt i32 %7926, 255
  br i1 %7927, label %7928, label %7942

7928:                                             ; preds = %7925
  %7929 = load ptr, ptr %8, align 8, !tbaa !5
  %7930 = getelementptr inbounds %struct.MImage, ptr %7929, i32 0, i32 3
  %7931 = load i32, ptr %19, align 4, !tbaa !16
  %7932 = sext i32 %7931 to i64
  %7933 = getelementptr inbounds [4 x ptr], ptr %7930, i64 0, i64 %7932
  %7934 = load ptr, ptr %7933, align 8, !tbaa !5
  %7935 = load i32, ptr %22, align 4, !tbaa !16
  %7936 = sext i32 %7935 to i64
  %7937 = getelementptr inbounds ptr, ptr %7934, i64 %7936
  %7938 = load ptr, ptr %7937, align 8, !tbaa !5
  %7939 = load i32, ptr %23, align 4, !tbaa !16
  %7940 = sext i32 %7939 to i64
  %7941 = getelementptr inbounds i8, ptr %7938, i64 %7940
  store i8 -1, ptr %7941, align 1, !tbaa !20
  br label %7958

7942:                                             ; preds = %7925
  %7943 = load i32, ptr %120, align 4, !tbaa !16
  %7944 = trunc i32 %7943 to i8
  %7945 = load ptr, ptr %8, align 8, !tbaa !5
  %7946 = getelementptr inbounds %struct.MImage, ptr %7945, i32 0, i32 3
  %7947 = load i32, ptr %19, align 4, !tbaa !16
  %7948 = sext i32 %7947 to i64
  %7949 = getelementptr inbounds [4 x ptr], ptr %7946, i64 0, i64 %7948
  %7950 = load ptr, ptr %7949, align 8, !tbaa !5
  %7951 = load i32, ptr %22, align 4, !tbaa !16
  %7952 = sext i32 %7951 to i64
  %7953 = getelementptr inbounds ptr, ptr %7950, i64 %7952
  %7954 = load ptr, ptr %7953, align 8, !tbaa !5
  %7955 = load i32, ptr %23, align 4, !tbaa !16
  %7956 = sext i32 %7955 to i64
  %7957 = getelementptr inbounds i8, ptr %7954, i64 %7956
  store i8 %7944, ptr %7957, align 1, !tbaa !20
  br label %7958

7958:                                             ; preds = %7942, %7928
  br label %7959

7959:                                             ; preds = %7958, %7911
  call void @llvm.lifetime.end.p0(i64 4, ptr %120) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %121) #3
  %7960 = load ptr, ptr %20, align 8, !tbaa !5
  %7961 = load i32, ptr %22, align 4, !tbaa !16
  %7962 = sext i32 %7961 to i64
  %7963 = getelementptr inbounds ptr, ptr %7960, i64 %7962
  %7964 = load ptr, ptr %7963, align 8, !tbaa !5
  %7965 = load i32, ptr %23, align 4, !tbaa !16
  %7966 = sext i32 %7965 to i64
  %7967 = getelementptr inbounds i8, ptr %7964, i64 %7966
  %7968 = load i8, ptr %7967, align 1, !tbaa !20
  %7969 = zext i8 %7968 to i64
  %7970 = getelementptr inbounds [256 x i32], ptr %16, i64 0, i64 %7969
  %7971 = load i32, ptr %7970, align 4, !tbaa !16
  %7972 = load ptr, ptr %21, align 8, !tbaa !5
  %7973 = load i32, ptr %22, align 4, !tbaa !16
  %7974 = sext i32 %7973 to i64
  %7975 = getelementptr inbounds ptr, ptr %7972, i64 %7974
  %7976 = load ptr, ptr %7975, align 8, !tbaa !5
  %7977 = load i32, ptr %23, align 4, !tbaa !16
  %7978 = sext i32 %7977 to i64
  %7979 = getelementptr inbounds i8, ptr %7976, i64 %7978
  %7980 = load i8, ptr %7979, align 1, !tbaa !20
  %7981 = zext i8 %7980 to i64
  %7982 = getelementptr inbounds [256 x i32], ptr %17, i64 0, i64 %7981
  %7983 = load i32, ptr %7982, align 4, !tbaa !16
  %7984 = add nsw i32 %7971, %7983
  store i32 %7984, ptr %121, align 4, !tbaa !16
  %7985 = load i32, ptr %121, align 4, !tbaa !16
  %7986 = icmp slt i32 %7985, 0
  br i1 %7986, label %7987, label %8001

7987:                                             ; preds = %7959
  %7988 = load ptr, ptr %8, align 8, !tbaa !5
  %7989 = getelementptr inbounds %struct.MImage, ptr %7988, i32 0, i32 3
  %7990 = load i32, ptr %19, align 4, !tbaa !16
  %7991 = sext i32 %7990 to i64
  %7992 = getelementptr inbounds [4 x ptr], ptr %7989, i64 0, i64 %7991
  %7993 = load ptr, ptr %7992, align 8, !tbaa !5
  %7994 = load i32, ptr %22, align 4, !tbaa !16
  %7995 = sext i32 %7994 to i64
  %7996 = getelementptr inbounds ptr, ptr %7993, i64 %7995
  %7997 = load ptr, ptr %7996, align 8, !tbaa !5
  %7998 = load i32, ptr %23, align 4, !tbaa !16
  %7999 = sext i32 %7998 to i64
  %8000 = getelementptr inbounds i8, ptr %7997, i64 %7999
  store i8 0, ptr %8000, align 1, !tbaa !20
  br label %8035

8001:                                             ; preds = %7959
  %8002 = load i32, ptr %121, align 4, !tbaa !16
  %8003 = icmp sgt i32 %8002, 255
  br i1 %8003, label %8004, label %8018

8004:                                             ; preds = %8001
  %8005 = load ptr, ptr %8, align 8, !tbaa !5
  %8006 = getelementptr inbounds %struct.MImage, ptr %8005, i32 0, i32 3
  %8007 = load i32, ptr %19, align 4, !tbaa !16
  %8008 = sext i32 %8007 to i64
  %8009 = getelementptr inbounds [4 x ptr], ptr %8006, i64 0, i64 %8008
  %8010 = load ptr, ptr %8009, align 8, !tbaa !5
  %8011 = load i32, ptr %22, align 4, !tbaa !16
  %8012 = sext i32 %8011 to i64
  %8013 = getelementptr inbounds ptr, ptr %8010, i64 %8012
  %8014 = load ptr, ptr %8013, align 8, !tbaa !5
  %8015 = load i32, ptr %23, align 4, !tbaa !16
  %8016 = sext i32 %8015 to i64
  %8017 = getelementptr inbounds i8, ptr %8014, i64 %8016
  store i8 -1, ptr %8017, align 1, !tbaa !20
  br label %8034

8018:                                             ; preds = %8001
  %8019 = load i32, ptr %121, align 4, !tbaa !16
  %8020 = trunc i32 %8019 to i8
  %8021 = load ptr, ptr %8, align 8, !tbaa !5
  %8022 = getelementptr inbounds %struct.MImage, ptr %8021, i32 0, i32 3
  %8023 = load i32, ptr %19, align 4, !tbaa !16
  %8024 = sext i32 %8023 to i64
  %8025 = getelementptr inbounds [4 x ptr], ptr %8022, i64 0, i64 %8024
  %8026 = load ptr, ptr %8025, align 8, !tbaa !5
  %8027 = load i32, ptr %22, align 4, !tbaa !16
  %8028 = sext i32 %8027 to i64
  %8029 = getelementptr inbounds ptr, ptr %8026, i64 %8028
  %8030 = load ptr, ptr %8029, align 8, !tbaa !5
  %8031 = load i32, ptr %23, align 4, !tbaa !16
  %8032 = sext i32 %8031 to i64
  %8033 = getelementptr inbounds i8, ptr %8030, i64 %8032
  store i8 %8020, ptr %8033, align 1, !tbaa !20
  br label %8034

8034:                                             ; preds = %8018, %8004
  br label %8035

8035:                                             ; preds = %8034, %7987
  call void @llvm.lifetime.end.p0(i64 4, ptr %121) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %122) #3
  %8036 = load ptr, ptr %20, align 8, !tbaa !5
  %8037 = load i32, ptr %22, align 4, !tbaa !16
  %8038 = sext i32 %8037 to i64
  %8039 = getelementptr inbounds ptr, ptr %8036, i64 %8038
  %8040 = load ptr, ptr %8039, align 8, !tbaa !5
  %8041 = load i32, ptr %23, align 4, !tbaa !16
  %8042 = sext i32 %8041 to i64
  %8043 = getelementptr inbounds i8, ptr %8040, i64 %8042
  %8044 = load i8, ptr %8043, align 1, !tbaa !20
  %8045 = zext i8 %8044 to i64
  %8046 = getelementptr inbounds [256 x i32], ptr %16, i64 0, i64 %8045
  %8047 = load i32, ptr %8046, align 4, !tbaa !16
  %8048 = load ptr, ptr %21, align 8, !tbaa !5
  %8049 = load i32, ptr %22, align 4, !tbaa !16
  %8050 = sext i32 %8049 to i64
  %8051 = getelementptr inbounds ptr, ptr %8048, i64 %8050
  %8052 = load ptr, ptr %8051, align 8, !tbaa !5
  %8053 = load i32, ptr %23, align 4, !tbaa !16
  %8054 = sext i32 %8053 to i64
  %8055 = getelementptr inbounds i8, ptr %8052, i64 %8054
  %8056 = load i8, ptr %8055, align 1, !tbaa !20
  %8057 = zext i8 %8056 to i64
  %8058 = getelementptr inbounds [256 x i32], ptr %17, i64 0, i64 %8057
  %8059 = load i32, ptr %8058, align 4, !tbaa !16
  %8060 = add nsw i32 %8047, %8059
  store i32 %8060, ptr %122, align 4, !tbaa !16
  %8061 = load i32, ptr %122, align 4, !tbaa !16
  %8062 = icmp slt i32 %8061, 0
  br i1 %8062, label %8063, label %8077

8063:                                             ; preds = %8035
  %8064 = load ptr, ptr %8, align 8, !tbaa !5
  %8065 = getelementptr inbounds %struct.MImage, ptr %8064, i32 0, i32 3
  %8066 = load i32, ptr %19, align 4, !tbaa !16
  %8067 = sext i32 %8066 to i64
  %8068 = getelementptr inbounds [4 x ptr], ptr %8065, i64 0, i64 %8067
  %8069 = load ptr, ptr %8068, align 8, !tbaa !5
  %8070 = load i32, ptr %22, align 4, !tbaa !16
  %8071 = sext i32 %8070 to i64
  %8072 = getelementptr inbounds ptr, ptr %8069, i64 %8071
  %8073 = load ptr, ptr %8072, align 8, !tbaa !5
  %8074 = load i32, ptr %23, align 4, !tbaa !16
  %8075 = sext i32 %8074 to i64
  %8076 = getelementptr inbounds i8, ptr %8073, i64 %8075
  store i8 0, ptr %8076, align 1, !tbaa !20
  br label %8111

8077:                                             ; preds = %8035
  %8078 = load i32, ptr %122, align 4, !tbaa !16
  %8079 = icmp sgt i32 %8078, 255
  br i1 %8079, label %8080, label %8094

8080:                                             ; preds = %8077
  %8081 = load ptr, ptr %8, align 8, !tbaa !5
  %8082 = getelementptr inbounds %struct.MImage, ptr %8081, i32 0, i32 3
  %8083 = load i32, ptr %19, align 4, !tbaa !16
  %8084 = sext i32 %8083 to i64
  %8085 = getelementptr inbounds [4 x ptr], ptr %8082, i64 0, i64 %8084
  %8086 = load ptr, ptr %8085, align 8, !tbaa !5
  %8087 = load i32, ptr %22, align 4, !tbaa !16
  %8088 = sext i32 %8087 to i64
  %8089 = getelementptr inbounds ptr, ptr %8086, i64 %8088
  %8090 = load ptr, ptr %8089, align 8, !tbaa !5
  %8091 = load i32, ptr %23, align 4, !tbaa !16
  %8092 = sext i32 %8091 to i64
  %8093 = getelementptr inbounds i8, ptr %8090, i64 %8092
  store i8 -1, ptr %8093, align 1, !tbaa !20
  br label %8110

8094:                                             ; preds = %8077
  %8095 = load i32, ptr %122, align 4, !tbaa !16
  %8096 = trunc i32 %8095 to i8
  %8097 = load ptr, ptr %8, align 8, !tbaa !5
  %8098 = getelementptr inbounds %struct.MImage, ptr %8097, i32 0, i32 3
  %8099 = load i32, ptr %19, align 4, !tbaa !16
  %8100 = sext i32 %8099 to i64
  %8101 = getelementptr inbounds [4 x ptr], ptr %8098, i64 0, i64 %8100
  %8102 = load ptr, ptr %8101, align 8, !tbaa !5
  %8103 = load i32, ptr %22, align 4, !tbaa !16
  %8104 = sext i32 %8103 to i64
  %8105 = getelementptr inbounds ptr, ptr %8102, i64 %8104
  %8106 = load ptr, ptr %8105, align 8, !tbaa !5
  %8107 = load i32, ptr %23, align 4, !tbaa !16
  %8108 = sext i32 %8107 to i64
  %8109 = getelementptr inbounds i8, ptr %8106, i64 %8108
  store i8 %8096, ptr %8109, align 1, !tbaa !20
  br label %8110

8110:                                             ; preds = %8094, %8080
  br label %8111

8111:                                             ; preds = %8110, %8063
  call void @llvm.lifetime.end.p0(i64 4, ptr %122) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %123) #3
  %8112 = load ptr, ptr %20, align 8, !tbaa !5
  %8113 = load i32, ptr %22, align 4, !tbaa !16
  %8114 = sext i32 %8113 to i64
  %8115 = getelementptr inbounds ptr, ptr %8112, i64 %8114
  %8116 = load ptr, ptr %8115, align 8, !tbaa !5
  %8117 = load i32, ptr %23, align 4, !tbaa !16
  %8118 = sext i32 %8117 to i64
  %8119 = getelementptr inbounds i8, ptr %8116, i64 %8118
  %8120 = load i8, ptr %8119, align 1, !tbaa !20
  %8121 = zext i8 %8120 to i64
  %8122 = getelementptr inbounds [256 x i32], ptr %16, i64 0, i64 %8121
  %8123 = load i32, ptr %8122, align 4, !tbaa !16
  %8124 = load ptr, ptr %21, align 8, !tbaa !5
  %8125 = load i32, ptr %22, align 4, !tbaa !16
  %8126 = sext i32 %8125 to i64
  %8127 = getelementptr inbounds ptr, ptr %8124, i64 %8126
  %8128 = load ptr, ptr %8127, align 8, !tbaa !5
  %8129 = load i32, ptr %23, align 4, !tbaa !16
  %8130 = sext i32 %8129 to i64
  %8131 = getelementptr inbounds i8, ptr %8128, i64 %8130
  %8132 = load i8, ptr %8131, align 1, !tbaa !20
  %8133 = zext i8 %8132 to i64
  %8134 = getelementptr inbounds [256 x i32], ptr %17, i64 0, i64 %8133
  %8135 = load i32, ptr %8134, align 4, !tbaa !16
  %8136 = add nsw i32 %8123, %8135
  store i32 %8136, ptr %123, align 4, !tbaa !16
  %8137 = load i32, ptr %123, align 4, !tbaa !16
  %8138 = icmp slt i32 %8137, 0
  br i1 %8138, label %8139, label %8153

8139:                                             ; preds = %8111
  %8140 = load ptr, ptr %8, align 8, !tbaa !5
  %8141 = getelementptr inbounds %struct.MImage, ptr %8140, i32 0, i32 3
  %8142 = load i32, ptr %19, align 4, !tbaa !16
  %8143 = sext i32 %8142 to i64
  %8144 = getelementptr inbounds [4 x ptr], ptr %8141, i64 0, i64 %8143
  %8145 = load ptr, ptr %8144, align 8, !tbaa !5
  %8146 = load i32, ptr %22, align 4, !tbaa !16
  %8147 = sext i32 %8146 to i64
  %8148 = getelementptr inbounds ptr, ptr %8145, i64 %8147
  %8149 = load ptr, ptr %8148, align 8, !tbaa !5
  %8150 = load i32, ptr %23, align 4, !tbaa !16
  %8151 = sext i32 %8150 to i64
  %8152 = getelementptr inbounds i8, ptr %8149, i64 %8151
  store i8 0, ptr %8152, align 1, !tbaa !20
  br label %8187

8153:                                             ; preds = %8111
  %8154 = load i32, ptr %123, align 4, !tbaa !16
  %8155 = icmp sgt i32 %8154, 255
  br i1 %8155, label %8156, label %8170

8156:                                             ; preds = %8153
  %8157 = load ptr, ptr %8, align 8, !tbaa !5
  %8158 = getelementptr inbounds %struct.MImage, ptr %8157, i32 0, i32 3
  %8159 = load i32, ptr %19, align 4, !tbaa !16
  %8160 = sext i32 %8159 to i64
  %8161 = getelementptr inbounds [4 x ptr], ptr %8158, i64 0, i64 %8160
  %8162 = load ptr, ptr %8161, align 8, !tbaa !5
  %8163 = load i32, ptr %22, align 4, !tbaa !16
  %8164 = sext i32 %8163 to i64
  %8165 = getelementptr inbounds ptr, ptr %8162, i64 %8164
  %8166 = load ptr, ptr %8165, align 8, !tbaa !5
  %8167 = load i32, ptr %23, align 4, !tbaa !16
  %8168 = sext i32 %8167 to i64
  %8169 = getelementptr inbounds i8, ptr %8166, i64 %8168
  store i8 -1, ptr %8169, align 1, !tbaa !20
  br label %8186

8170:                                             ; preds = %8153
  %8171 = load i32, ptr %123, align 4, !tbaa !16
  %8172 = trunc i32 %8171 to i8
  %8173 = load ptr, ptr %8, align 8, !tbaa !5
  %8174 = getelementptr inbounds %struct.MImage, ptr %8173, i32 0, i32 3
  %8175 = load i32, ptr %19, align 4, !tbaa !16
  %8176 = sext i32 %8175 to i64
  %8177 = getelementptr inbounds [4 x ptr], ptr %8174, i64 0, i64 %8176
  %8178 = load ptr, ptr %8177, align 8, !tbaa !5
  %8179 = load i32, ptr %22, align 4, !tbaa !16
  %8180 = sext i32 %8179 to i64
  %8181 = getelementptr inbounds ptr, ptr %8178, i64 %8180
  %8182 = load ptr, ptr %8181, align 8, !tbaa !5
  %8183 = load i32, ptr %23, align 4, !tbaa !16
  %8184 = sext i32 %8183 to i64
  %8185 = getelementptr inbounds i8, ptr %8182, i64 %8184
  store i8 %8172, ptr %8185, align 1, !tbaa !20
  br label %8186

8186:                                             ; preds = %8170, %8156
  br label %8187

8187:                                             ; preds = %8186, %8139
  call void @llvm.lifetime.end.p0(i64 4, ptr %123) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %124) #3
  %8188 = load ptr, ptr %20, align 8, !tbaa !5
  %8189 = load i32, ptr %22, align 4, !tbaa !16
  %8190 = sext i32 %8189 to i64
  %8191 = getelementptr inbounds ptr, ptr %8188, i64 %8190
  %8192 = load ptr, ptr %8191, align 8, !tbaa !5
  %8193 = load i32, ptr %23, align 4, !tbaa !16
  %8194 = sext i32 %8193 to i64
  %8195 = getelementptr inbounds i8, ptr %8192, i64 %8194
  %8196 = load i8, ptr %8195, align 1, !tbaa !20
  %8197 = zext i8 %8196 to i64
  %8198 = getelementptr inbounds [256 x i32], ptr %16, i64 0, i64 %8197
  %8199 = load i32, ptr %8198, align 4, !tbaa !16
  %8200 = load ptr, ptr %21, align 8, !tbaa !5
  %8201 = load i32, ptr %22, align 4, !tbaa !16
  %8202 = sext i32 %8201 to i64
  %8203 = getelementptr inbounds ptr, ptr %8200, i64 %8202
  %8204 = load ptr, ptr %8203, align 8, !tbaa !5
  %8205 = load i32, ptr %23, align 4, !tbaa !16
  %8206 = sext i32 %8205 to i64
  %8207 = getelementptr inbounds i8, ptr %8204, i64 %8206
  %8208 = load i8, ptr %8207, align 1, !tbaa !20
  %8209 = zext i8 %8208 to i64
  %8210 = getelementptr inbounds [256 x i32], ptr %17, i64 0, i64 %8209
  %8211 = load i32, ptr %8210, align 4, !tbaa !16
  %8212 = add nsw i32 %8199, %8211
  store i32 %8212, ptr %124, align 4, !tbaa !16
  %8213 = load i32, ptr %124, align 4, !tbaa !16
  %8214 = icmp slt i32 %8213, 0
  br i1 %8214, label %8215, label %8229

8215:                                             ; preds = %8187
  %8216 = load ptr, ptr %8, align 8, !tbaa !5
  %8217 = getelementptr inbounds %struct.MImage, ptr %8216, i32 0, i32 3
  %8218 = load i32, ptr %19, align 4, !tbaa !16
  %8219 = sext i32 %8218 to i64
  %8220 = getelementptr inbounds [4 x ptr], ptr %8217, i64 0, i64 %8219
  %8221 = load ptr, ptr %8220, align 8, !tbaa !5
  %8222 = load i32, ptr %22, align 4, !tbaa !16
  %8223 = sext i32 %8222 to i64
  %8224 = getelementptr inbounds ptr, ptr %8221, i64 %8223
  %8225 = load ptr, ptr %8224, align 8, !tbaa !5
  %8226 = load i32, ptr %23, align 4, !tbaa !16
  %8227 = sext i32 %8226 to i64
  %8228 = getelementptr inbounds i8, ptr %8225, i64 %8227
  store i8 0, ptr %8228, align 1, !tbaa !20
  br label %8263

8229:                                             ; preds = %8187
  %8230 = load i32, ptr %124, align 4, !tbaa !16
  %8231 = icmp sgt i32 %8230, 255
  br i1 %8231, label %8232, label %8246

8232:                                             ; preds = %8229
  %8233 = load ptr, ptr %8, align 8, !tbaa !5
  %8234 = getelementptr inbounds %struct.MImage, ptr %8233, i32 0, i32 3
  %8235 = load i32, ptr %19, align 4, !tbaa !16
  %8236 = sext i32 %8235 to i64
  %8237 = getelementptr inbounds [4 x ptr], ptr %8234, i64 0, i64 %8236
  %8238 = load ptr, ptr %8237, align 8, !tbaa !5
  %8239 = load i32, ptr %22, align 4, !tbaa !16
  %8240 = sext i32 %8239 to i64
  %8241 = getelementptr inbounds ptr, ptr %8238, i64 %8240
  %8242 = load ptr, ptr %8241, align 8, !tbaa !5
  %8243 = load i32, ptr %23, align 4, !tbaa !16
  %8244 = sext i32 %8243 to i64
  %8245 = getelementptr inbounds i8, ptr %8242, i64 %8244
  store i8 -1, ptr %8245, align 1, !tbaa !20
  br label %8262

8246:                                             ; preds = %8229
  %8247 = load i32, ptr %124, align 4, !tbaa !16
  %8248 = trunc i32 %8247 to i8
  %8249 = load ptr, ptr %8, align 8, !tbaa !5
  %8250 = getelementptr inbounds %struct.MImage, ptr %8249, i32 0, i32 3
  %8251 = load i32, ptr %19, align 4, !tbaa !16
  %8252 = sext i32 %8251 to i64
  %8253 = getelementptr inbounds [4 x ptr], ptr %8250, i64 0, i64 %8252
  %8254 = load ptr, ptr %8253, align 8, !tbaa !5
  %8255 = load i32, ptr %22, align 4, !tbaa !16
  %8256 = sext i32 %8255 to i64
  %8257 = getelementptr inbounds ptr, ptr %8254, i64 %8256
  %8258 = load ptr, ptr %8257, align 8, !tbaa !5
  %8259 = load i32, ptr %23, align 4, !tbaa !16
  %8260 = sext i32 %8259 to i64
  %8261 = getelementptr inbounds i8, ptr %8258, i64 %8260
  store i8 %8248, ptr %8261, align 1, !tbaa !20
  br label %8262

8262:                                             ; preds = %8246, %8232
  br label %8263

8263:                                             ; preds = %8262, %8215
  call void @llvm.lifetime.end.p0(i64 4, ptr %124) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %125) #3
  %8264 = load ptr, ptr %20, align 8, !tbaa !5
  %8265 = load i32, ptr %22, align 4, !tbaa !16
  %8266 = sext i32 %8265 to i64
  %8267 = getelementptr inbounds ptr, ptr %8264, i64 %8266
  %8268 = load ptr, ptr %8267, align 8, !tbaa !5
  %8269 = load i32, ptr %23, align 4, !tbaa !16
  %8270 = sext i32 %8269 to i64
  %8271 = getelementptr inbounds i8, ptr %8268, i64 %8270
  %8272 = load i8, ptr %8271, align 1, !tbaa !20
  %8273 = zext i8 %8272 to i64
  %8274 = getelementptr inbounds [256 x i32], ptr %16, i64 0, i64 %8273
  %8275 = load i32, ptr %8274, align 4, !tbaa !16
  %8276 = load ptr, ptr %21, align 8, !tbaa !5
  %8277 = load i32, ptr %22, align 4, !tbaa !16
  %8278 = sext i32 %8277 to i64
  %8279 = getelementptr inbounds ptr, ptr %8276, i64 %8278
  %8280 = load ptr, ptr %8279, align 8, !tbaa !5
  %8281 = load i32, ptr %23, align 4, !tbaa !16
  %8282 = sext i32 %8281 to i64
  %8283 = getelementptr inbounds i8, ptr %8280, i64 %8282
  %8284 = load i8, ptr %8283, align 1, !tbaa !20
  %8285 = zext i8 %8284 to i64
  %8286 = getelementptr inbounds [256 x i32], ptr %17, i64 0, i64 %8285
  %8287 = load i32, ptr %8286, align 4, !tbaa !16
  %8288 = add nsw i32 %8275, %8287
  store i32 %8288, ptr %125, align 4, !tbaa !16
  %8289 = load i32, ptr %125, align 4, !tbaa !16
  %8290 = icmp slt i32 %8289, 0
  br i1 %8290, label %8291, label %8305

8291:                                             ; preds = %8263
  %8292 = load ptr, ptr %8, align 8, !tbaa !5
  %8293 = getelementptr inbounds %struct.MImage, ptr %8292, i32 0, i32 3
  %8294 = load i32, ptr %19, align 4, !tbaa !16
  %8295 = sext i32 %8294 to i64
  %8296 = getelementptr inbounds [4 x ptr], ptr %8293, i64 0, i64 %8295
  %8297 = load ptr, ptr %8296, align 8, !tbaa !5
  %8298 = load i32, ptr %22, align 4, !tbaa !16
  %8299 = sext i32 %8298 to i64
  %8300 = getelementptr inbounds ptr, ptr %8297, i64 %8299
  %8301 = load ptr, ptr %8300, align 8, !tbaa !5
  %8302 = load i32, ptr %23, align 4, !tbaa !16
  %8303 = sext i32 %8302 to i64
  %8304 = getelementptr inbounds i8, ptr %8301, i64 %8303
  store i8 0, ptr %8304, align 1, !tbaa !20
  br label %8339

8305:                                             ; preds = %8263
  %8306 = load i32, ptr %125, align 4, !tbaa !16
  %8307 = icmp sgt i32 %8306, 255
  br i1 %8307, label %8308, label %8322

8308:                                             ; preds = %8305
  %8309 = load ptr, ptr %8, align 8, !tbaa !5
  %8310 = getelementptr inbounds %struct.MImage, ptr %8309, i32 0, i32 3
  %8311 = load i32, ptr %19, align 4, !tbaa !16
  %8312 = sext i32 %8311 to i64
  %8313 = getelementptr inbounds [4 x ptr], ptr %8310, i64 0, i64 %8312
  %8314 = load ptr, ptr %8313, align 8, !tbaa !5
  %8315 = load i32, ptr %22, align 4, !tbaa !16
  %8316 = sext i32 %8315 to i64
  %8317 = getelementptr inbounds ptr, ptr %8314, i64 %8316
  %8318 = load ptr, ptr %8317, align 8, !tbaa !5
  %8319 = load i32, ptr %23, align 4, !tbaa !16
  %8320 = sext i32 %8319 to i64
  %8321 = getelementptr inbounds i8, ptr %8318, i64 %8320
  store i8 -1, ptr %8321, align 1, !tbaa !20
  br label %8338

8322:                                             ; preds = %8305
  %8323 = load i32, ptr %125, align 4, !tbaa !16
  %8324 = trunc i32 %8323 to i8
  %8325 = load ptr, ptr %8, align 8, !tbaa !5
  %8326 = getelementptr inbounds %struct.MImage, ptr %8325, i32 0, i32 3
  %8327 = load i32, ptr %19, align 4, !tbaa !16
  %8328 = sext i32 %8327 to i64
  %8329 = getelementptr inbounds [4 x ptr], ptr %8326, i64 0, i64 %8328
  %8330 = load ptr, ptr %8329, align 8, !tbaa !5
  %8331 = load i32, ptr %22, align 4, !tbaa !16
  %8332 = sext i32 %8331 to i64
  %8333 = getelementptr inbounds ptr, ptr %8330, i64 %8332
  %8334 = load ptr, ptr %8333, align 8, !tbaa !5
  %8335 = load i32, ptr %23, align 4, !tbaa !16
  %8336 = sext i32 %8335 to i64
  %8337 = getelementptr inbounds i8, ptr %8334, i64 %8336
  store i8 %8324, ptr %8337, align 1, !tbaa !20
  br label %8338

8338:                                             ; preds = %8322, %8308
  br label %8339

8339:                                             ; preds = %8338, %8291
  call void @llvm.lifetime.end.p0(i64 4, ptr %125) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %126) #3
  %8340 = load ptr, ptr %20, align 8, !tbaa !5
  %8341 = load i32, ptr %22, align 4, !tbaa !16
  %8342 = sext i32 %8341 to i64
  %8343 = getelementptr inbounds ptr, ptr %8340, i64 %8342
  %8344 = load ptr, ptr %8343, align 8, !tbaa !5
  %8345 = load i32, ptr %23, align 4, !tbaa !16
  %8346 = sext i32 %8345 to i64
  %8347 = getelementptr inbounds i8, ptr %8344, i64 %8346
  %8348 = load i8, ptr %8347, align 1, !tbaa !20
  %8349 = zext i8 %8348 to i64
  %8350 = getelementptr inbounds [256 x i32], ptr %16, i64 0, i64 %8349
  %8351 = load i32, ptr %8350, align 4, !tbaa !16
  %8352 = load ptr, ptr %21, align 8, !tbaa !5
  %8353 = load i32, ptr %22, align 4, !tbaa !16
  %8354 = sext i32 %8353 to i64
  %8355 = getelementptr inbounds ptr, ptr %8352, i64 %8354
  %8356 = load ptr, ptr %8355, align 8, !tbaa !5
  %8357 = load i32, ptr %23, align 4, !tbaa !16
  %8358 = sext i32 %8357 to i64
  %8359 = getelementptr inbounds i8, ptr %8356, i64 %8358
  %8360 = load i8, ptr %8359, align 1, !tbaa !20
  %8361 = zext i8 %8360 to i64
  %8362 = getelementptr inbounds [256 x i32], ptr %17, i64 0, i64 %8361
  %8363 = load i32, ptr %8362, align 4, !tbaa !16
  %8364 = add nsw i32 %8351, %8363
  store i32 %8364, ptr %126, align 4, !tbaa !16
  %8365 = load i32, ptr %126, align 4, !tbaa !16
  %8366 = icmp slt i32 %8365, 0
  br i1 %8366, label %8367, label %8381

8367:                                             ; preds = %8339
  %8368 = load ptr, ptr %8, align 8, !tbaa !5
  %8369 = getelementptr inbounds %struct.MImage, ptr %8368, i32 0, i32 3
  %8370 = load i32, ptr %19, align 4, !tbaa !16
  %8371 = sext i32 %8370 to i64
  %8372 = getelementptr inbounds [4 x ptr], ptr %8369, i64 0, i64 %8371
  %8373 = load ptr, ptr %8372, align 8, !tbaa !5
  %8374 = load i32, ptr %22, align 4, !tbaa !16
  %8375 = sext i32 %8374 to i64
  %8376 = getelementptr inbounds ptr, ptr %8373, i64 %8375
  %8377 = load ptr, ptr %8376, align 8, !tbaa !5
  %8378 = load i32, ptr %23, align 4, !tbaa !16
  %8379 = sext i32 %8378 to i64
  %8380 = getelementptr inbounds i8, ptr %8377, i64 %8379
  store i8 0, ptr %8380, align 1, !tbaa !20
  br label %8415

8381:                                             ; preds = %8339
  %8382 = load i32, ptr %126, align 4, !tbaa !16
  %8383 = icmp sgt i32 %8382, 255
  br i1 %8383, label %8384, label %8398

8384:                                             ; preds = %8381
  %8385 = load ptr, ptr %8, align 8, !tbaa !5
  %8386 = getelementptr inbounds %struct.MImage, ptr %8385, i32 0, i32 3
  %8387 = load i32, ptr %19, align 4, !tbaa !16
  %8388 = sext i32 %8387 to i64
  %8389 = getelementptr inbounds [4 x ptr], ptr %8386, i64 0, i64 %8388
  %8390 = load ptr, ptr %8389, align 8, !tbaa !5
  %8391 = load i32, ptr %22, align 4, !tbaa !16
  %8392 = sext i32 %8391 to i64
  %8393 = getelementptr inbounds ptr, ptr %8390, i64 %8392
  %8394 = load ptr, ptr %8393, align 8, !tbaa !5
  %8395 = load i32, ptr %23, align 4, !tbaa !16
  %8396 = sext i32 %8395 to i64
  %8397 = getelementptr inbounds i8, ptr %8394, i64 %8396
  store i8 -1, ptr %8397, align 1, !tbaa !20
  br label %8414

8398:                                             ; preds = %8381
  %8399 = load i32, ptr %126, align 4, !tbaa !16
  %8400 = trunc i32 %8399 to i8
  %8401 = load ptr, ptr %8, align 8, !tbaa !5
  %8402 = getelementptr inbounds %struct.MImage, ptr %8401, i32 0, i32 3
  %8403 = load i32, ptr %19, align 4, !tbaa !16
  %8404 = sext i32 %8403 to i64
  %8405 = getelementptr inbounds [4 x ptr], ptr %8402, i64 0, i64 %8404
  %8406 = load ptr, ptr %8405, align 8, !tbaa !5
  %8407 = load i32, ptr %22, align 4, !tbaa !16
  %8408 = sext i32 %8407 to i64
  %8409 = getelementptr inbounds ptr, ptr %8406, i64 %8408
  %8410 = load ptr, ptr %8409, align 8, !tbaa !5
  %8411 = load i32, ptr %23, align 4, !tbaa !16
  %8412 = sext i32 %8411 to i64
  %8413 = getelementptr inbounds i8, ptr %8410, i64 %8412
  store i8 %8400, ptr %8413, align 1, !tbaa !20
  br label %8414

8414:                                             ; preds = %8398, %8384
  br label %8415

8415:                                             ; preds = %8414, %8367
  call void @llvm.lifetime.end.p0(i64 4, ptr %126) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %127) #3
  %8416 = load ptr, ptr %20, align 8, !tbaa !5
  %8417 = load i32, ptr %22, align 4, !tbaa !16
  %8418 = sext i32 %8417 to i64
  %8419 = getelementptr inbounds ptr, ptr %8416, i64 %8418
  %8420 = load ptr, ptr %8419, align 8, !tbaa !5
  %8421 = load i32, ptr %23, align 4, !tbaa !16
  %8422 = sext i32 %8421 to i64
  %8423 = getelementptr inbounds i8, ptr %8420, i64 %8422
  %8424 = load i8, ptr %8423, align 1, !tbaa !20
  %8425 = zext i8 %8424 to i64
  %8426 = getelementptr inbounds [256 x i32], ptr %16, i64 0, i64 %8425
  %8427 = load i32, ptr %8426, align 4, !tbaa !16
  %8428 = load ptr, ptr %21, align 8, !tbaa !5
  %8429 = load i32, ptr %22, align 4, !tbaa !16
  %8430 = sext i32 %8429 to i64
  %8431 = getelementptr inbounds ptr, ptr %8428, i64 %8430
  %8432 = load ptr, ptr %8431, align 8, !tbaa !5
  %8433 = load i32, ptr %23, align 4, !tbaa !16
  %8434 = sext i32 %8433 to i64
  %8435 = getelementptr inbounds i8, ptr %8432, i64 %8434
  %8436 = load i8, ptr %8435, align 1, !tbaa !20
  %8437 = zext i8 %8436 to i64
  %8438 = getelementptr inbounds [256 x i32], ptr %17, i64 0, i64 %8437
  %8439 = load i32, ptr %8438, align 4, !tbaa !16
  %8440 = add nsw i32 %8427, %8439
  store i32 %8440, ptr %127, align 4, !tbaa !16
  %8441 = load i32, ptr %127, align 4, !tbaa !16
  %8442 = icmp slt i32 %8441, 0
  br i1 %8442, label %8443, label %8457

8443:                                             ; preds = %8415
  %8444 = load ptr, ptr %8, align 8, !tbaa !5
  %8445 = getelementptr inbounds %struct.MImage, ptr %8444, i32 0, i32 3
  %8446 = load i32, ptr %19, align 4, !tbaa !16
  %8447 = sext i32 %8446 to i64
  %8448 = getelementptr inbounds [4 x ptr], ptr %8445, i64 0, i64 %8447
  %8449 = load ptr, ptr %8448, align 8, !tbaa !5
  %8450 = load i32, ptr %22, align 4, !tbaa !16
  %8451 = sext i32 %8450 to i64
  %8452 = getelementptr inbounds ptr, ptr %8449, i64 %8451
  %8453 = load ptr, ptr %8452, align 8, !tbaa !5
  %8454 = load i32, ptr %23, align 4, !tbaa !16
  %8455 = sext i32 %8454 to i64
  %8456 = getelementptr inbounds i8, ptr %8453, i64 %8455
  store i8 0, ptr %8456, align 1, !tbaa !20
  br label %8491

8457:                                             ; preds = %8415
  %8458 = load i32, ptr %127, align 4, !tbaa !16
  %8459 = icmp sgt i32 %8458, 255
  br i1 %8459, label %8460, label %8474

8460:                                             ; preds = %8457
  %8461 = load ptr, ptr %8, align 8, !tbaa !5
  %8462 = getelementptr inbounds %struct.MImage, ptr %8461, i32 0, i32 3
  %8463 = load i32, ptr %19, align 4, !tbaa !16
  %8464 = sext i32 %8463 to i64
  %8465 = getelementptr inbounds [4 x ptr], ptr %8462, i64 0, i64 %8464
  %8466 = load ptr, ptr %8465, align 8, !tbaa !5
  %8467 = load i32, ptr %22, align 4, !tbaa !16
  %8468 = sext i32 %8467 to i64
  %8469 = getelementptr inbounds ptr, ptr %8466, i64 %8468
  %8470 = load ptr, ptr %8469, align 8, !tbaa !5
  %8471 = load i32, ptr %23, align 4, !tbaa !16
  %8472 = sext i32 %8471 to i64
  %8473 = getelementptr inbounds i8, ptr %8470, i64 %8472
  store i8 -1, ptr %8473, align 1, !tbaa !20
  br label %8490

8474:                                             ; preds = %8457
  %8475 = load i32, ptr %127, align 4, !tbaa !16
  %8476 = trunc i32 %8475 to i8
  %8477 = load ptr, ptr %8, align 8, !tbaa !5
  %8478 = getelementptr inbounds %struct.MImage, ptr %8477, i32 0, i32 3
  %8479 = load i32, ptr %19, align 4, !tbaa !16
  %8480 = sext i32 %8479 to i64
  %8481 = getelementptr inbounds [4 x ptr], ptr %8478, i64 0, i64 %8480
  %8482 = load ptr, ptr %8481, align 8, !tbaa !5
  %8483 = load i32, ptr %22, align 4, !tbaa !16
  %8484 = sext i32 %8483 to i64
  %8485 = getelementptr inbounds ptr, ptr %8482, i64 %8484
  %8486 = load ptr, ptr %8485, align 8, !tbaa !5
  %8487 = load i32, ptr %23, align 4, !tbaa !16
  %8488 = sext i32 %8487 to i64
  %8489 = getelementptr inbounds i8, ptr %8486, i64 %8488
  store i8 %8476, ptr %8489, align 1, !tbaa !20
  br label %8490

8490:                                             ; preds = %8474, %8460
  br label %8491

8491:                                             ; preds = %8490, %8443
  call void @llvm.lifetime.end.p0(i64 4, ptr %127) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %128) #3
  %8492 = load ptr, ptr %20, align 8, !tbaa !5
  %8493 = load i32, ptr %22, align 4, !tbaa !16
  %8494 = sext i32 %8493 to i64
  %8495 = getelementptr inbounds ptr, ptr %8492, i64 %8494
  %8496 = load ptr, ptr %8495, align 8, !tbaa !5
  %8497 = load i32, ptr %23, align 4, !tbaa !16
  %8498 = sext i32 %8497 to i64
  %8499 = getelementptr inbounds i8, ptr %8496, i64 %8498
  %8500 = load i8, ptr %8499, align 1, !tbaa !20
  %8501 = zext i8 %8500 to i64
  %8502 = getelementptr inbounds [256 x i32], ptr %16, i64 0, i64 %8501
  %8503 = load i32, ptr %8502, align 4, !tbaa !16
  %8504 = load ptr, ptr %21, align 8, !tbaa !5
  %8505 = load i32, ptr %22, align 4, !tbaa !16
  %8506 = sext i32 %8505 to i64
  %8507 = getelementptr inbounds ptr, ptr %8504, i64 %8506
  %8508 = load ptr, ptr %8507, align 8, !tbaa !5
  %8509 = load i32, ptr %23, align 4, !tbaa !16
  %8510 = sext i32 %8509 to i64
  %8511 = getelementptr inbounds i8, ptr %8508, i64 %8510
  %8512 = load i8, ptr %8511, align 1, !tbaa !20
  %8513 = zext i8 %8512 to i64
  %8514 = getelementptr inbounds [256 x i32], ptr %17, i64 0, i64 %8513
  %8515 = load i32, ptr %8514, align 4, !tbaa !16
  %8516 = add nsw i32 %8503, %8515
  store i32 %8516, ptr %128, align 4, !tbaa !16
  %8517 = load i32, ptr %128, align 4, !tbaa !16
  %8518 = icmp slt i32 %8517, 0
  br i1 %8518, label %8519, label %8533

8519:                                             ; preds = %8491
  %8520 = load ptr, ptr %8, align 8, !tbaa !5
  %8521 = getelementptr inbounds %struct.MImage, ptr %8520, i32 0, i32 3
  %8522 = load i32, ptr %19, align 4, !tbaa !16
  %8523 = sext i32 %8522 to i64
  %8524 = getelementptr inbounds [4 x ptr], ptr %8521, i64 0, i64 %8523
  %8525 = load ptr, ptr %8524, align 8, !tbaa !5
  %8526 = load i32, ptr %22, align 4, !tbaa !16
  %8527 = sext i32 %8526 to i64
  %8528 = getelementptr inbounds ptr, ptr %8525, i64 %8527
  %8529 = load ptr, ptr %8528, align 8, !tbaa !5
  %8530 = load i32, ptr %23, align 4, !tbaa !16
  %8531 = sext i32 %8530 to i64
  %8532 = getelementptr inbounds i8, ptr %8529, i64 %8531
  store i8 0, ptr %8532, align 1, !tbaa !20
  br label %8567

8533:                                             ; preds = %8491
  %8534 = load i32, ptr %128, align 4, !tbaa !16
  %8535 = icmp sgt i32 %8534, 255
  br i1 %8535, label %8536, label %8550

8536:                                             ; preds = %8533
  %8537 = load ptr, ptr %8, align 8, !tbaa !5
  %8538 = getelementptr inbounds %struct.MImage, ptr %8537, i32 0, i32 3
  %8539 = load i32, ptr %19, align 4, !tbaa !16
  %8540 = sext i32 %8539 to i64
  %8541 = getelementptr inbounds [4 x ptr], ptr %8538, i64 0, i64 %8540
  %8542 = load ptr, ptr %8541, align 8, !tbaa !5
  %8543 = load i32, ptr %22, align 4, !tbaa !16
  %8544 = sext i32 %8543 to i64
  %8545 = getelementptr inbounds ptr, ptr %8542, i64 %8544
  %8546 = load ptr, ptr %8545, align 8, !tbaa !5
  %8547 = load i32, ptr %23, align 4, !tbaa !16
  %8548 = sext i32 %8547 to i64
  %8549 = getelementptr inbounds i8, ptr %8546, i64 %8548
  store i8 -1, ptr %8549, align 1, !tbaa !20
  br label %8566

8550:                                             ; preds = %8533
  %8551 = load i32, ptr %128, align 4, !tbaa !16
  %8552 = trunc i32 %8551 to i8
  %8553 = load ptr, ptr %8, align 8, !tbaa !5
  %8554 = getelementptr inbounds %struct.MImage, ptr %8553, i32 0, i32 3
  %8555 = load i32, ptr %19, align 4, !tbaa !16
  %8556 = sext i32 %8555 to i64
  %8557 = getelementptr inbounds [4 x ptr], ptr %8554, i64 0, i64 %8556
  %8558 = load ptr, ptr %8557, align 8, !tbaa !5
  %8559 = load i32, ptr %22, align 4, !tbaa !16
  %8560 = sext i32 %8559 to i64
  %8561 = getelementptr inbounds ptr, ptr %8558, i64 %8560
  %8562 = load ptr, ptr %8561, align 8, !tbaa !5
  %8563 = load i32, ptr %23, align 4, !tbaa !16
  %8564 = sext i32 %8563 to i64
  %8565 = getelementptr inbounds i8, ptr %8562, i64 %8564
  store i8 %8552, ptr %8565, align 1, !tbaa !20
  br label %8566

8566:                                             ; preds = %8550, %8536
  br label %8567

8567:                                             ; preds = %8566, %8519
  call void @llvm.lifetime.end.p0(i64 4, ptr %128) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %129) #3
  %8568 = load ptr, ptr %20, align 8, !tbaa !5
  %8569 = load i32, ptr %22, align 4, !tbaa !16
  %8570 = sext i32 %8569 to i64
  %8571 = getelementptr inbounds ptr, ptr %8568, i64 %8570
  %8572 = load ptr, ptr %8571, align 8, !tbaa !5
  %8573 = load i32, ptr %23, align 4, !tbaa !16
  %8574 = sext i32 %8573 to i64
  %8575 = getelementptr inbounds i8, ptr %8572, i64 %8574
  %8576 = load i8, ptr %8575, align 1, !tbaa !20
  %8577 = zext i8 %8576 to i64
  %8578 = getelementptr inbounds [256 x i32], ptr %16, i64 0, i64 %8577
  %8579 = load i32, ptr %8578, align 4, !tbaa !16
  %8580 = load ptr, ptr %21, align 8, !tbaa !5
  %8581 = load i32, ptr %22, align 4, !tbaa !16
  %8582 = sext i32 %8581 to i64
  %8583 = getelementptr inbounds ptr, ptr %8580, i64 %8582
  %8584 = load ptr, ptr %8583, align 8, !tbaa !5
  %8585 = load i32, ptr %23, align 4, !tbaa !16
  %8586 = sext i32 %8585 to i64
  %8587 = getelementptr inbounds i8, ptr %8584, i64 %8586
  %8588 = load i8, ptr %8587, align 1, !tbaa !20
  %8589 = zext i8 %8588 to i64
  %8590 = getelementptr inbounds [256 x i32], ptr %17, i64 0, i64 %8589
  %8591 = load i32, ptr %8590, align 4, !tbaa !16
  %8592 = add nsw i32 %8579, %8591
  store i32 %8592, ptr %129, align 4, !tbaa !16
  %8593 = load i32, ptr %129, align 4, !tbaa !16
  %8594 = icmp slt i32 %8593, 0
  br i1 %8594, label %8595, label %8609

8595:                                             ; preds = %8567
  %8596 = load ptr, ptr %8, align 8, !tbaa !5
  %8597 = getelementptr inbounds %struct.MImage, ptr %8596, i32 0, i32 3
  %8598 = load i32, ptr %19, align 4, !tbaa !16
  %8599 = sext i32 %8598 to i64
  %8600 = getelementptr inbounds [4 x ptr], ptr %8597, i64 0, i64 %8599
  %8601 = load ptr, ptr %8600, align 8, !tbaa !5
  %8602 = load i32, ptr %22, align 4, !tbaa !16
  %8603 = sext i32 %8602 to i64
  %8604 = getelementptr inbounds ptr, ptr %8601, i64 %8603
  %8605 = load ptr, ptr %8604, align 8, !tbaa !5
  %8606 = load i32, ptr %23, align 4, !tbaa !16
  %8607 = sext i32 %8606 to i64
  %8608 = getelementptr inbounds i8, ptr %8605, i64 %8607
  store i8 0, ptr %8608, align 1, !tbaa !20
  br label %8643

8609:                                             ; preds = %8567
  %8610 = load i32, ptr %129, align 4, !tbaa !16
  %8611 = icmp sgt i32 %8610, 255
  br i1 %8611, label %8612, label %8626

8612:                                             ; preds = %8609
  %8613 = load ptr, ptr %8, align 8, !tbaa !5
  %8614 = getelementptr inbounds %struct.MImage, ptr %8613, i32 0, i32 3
  %8615 = load i32, ptr %19, align 4, !tbaa !16
  %8616 = sext i32 %8615 to i64
  %8617 = getelementptr inbounds [4 x ptr], ptr %8614, i64 0, i64 %8616
  %8618 = load ptr, ptr %8617, align 8, !tbaa !5
  %8619 = load i32, ptr %22, align 4, !tbaa !16
  %8620 = sext i32 %8619 to i64
  %8621 = getelementptr inbounds ptr, ptr %8618, i64 %8620
  %8622 = load ptr, ptr %8621, align 8, !tbaa !5
  %8623 = load i32, ptr %23, align 4, !tbaa !16
  %8624 = sext i32 %8623 to i64
  %8625 = getelementptr inbounds i8, ptr %8622, i64 %8624
  store i8 -1, ptr %8625, align 1, !tbaa !20
  br label %8642

8626:                                             ; preds = %8609
  %8627 = load i32, ptr %129, align 4, !tbaa !16
  %8628 = trunc i32 %8627 to i8
  %8629 = load ptr, ptr %8, align 8, !tbaa !5
  %8630 = getelementptr inbounds %struct.MImage, ptr %8629, i32 0, i32 3
  %8631 = load i32, ptr %19, align 4, !tbaa !16
  %8632 = sext i32 %8631 to i64
  %8633 = getelementptr inbounds [4 x ptr], ptr %8630, i64 0, i64 %8632
  %8634 = load ptr, ptr %8633, align 8, !tbaa !5
  %8635 = load i32, ptr %22, align 4, !tbaa !16
  %8636 = sext i32 %8635 to i64
  %8637 = getelementptr inbounds ptr, ptr %8634, i64 %8636
  %8638 = load ptr, ptr %8637, align 8, !tbaa !5
  %8639 = load i32, ptr %23, align 4, !tbaa !16
  %8640 = sext i32 %8639 to i64
  %8641 = getelementptr inbounds i8, ptr %8638, i64 %8640
  store i8 %8628, ptr %8641, align 1, !tbaa !20
  br label %8642

8642:                                             ; preds = %8626, %8612
  br label %8643

8643:                                             ; preds = %8642, %8595
  call void @llvm.lifetime.end.p0(i64 4, ptr %129) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %130) #3
  %8644 = load ptr, ptr %20, align 8, !tbaa !5
  %8645 = load i32, ptr %22, align 4, !tbaa !16
  %8646 = sext i32 %8645 to i64
  %8647 = getelementptr inbounds ptr, ptr %8644, i64 %8646
  %8648 = load ptr, ptr %8647, align 8, !tbaa !5
  %8649 = load i32, ptr %23, align 4, !tbaa !16
  %8650 = sext i32 %8649 to i64
  %8651 = getelementptr inbounds i8, ptr %8648, i64 %8650
  %8652 = load i8, ptr %8651, align 1, !tbaa !20
  %8653 = zext i8 %8652 to i64
  %8654 = getelementptr inbounds [256 x i32], ptr %16, i64 0, i64 %8653
  %8655 = load i32, ptr %8654, align 4, !tbaa !16
  %8656 = load ptr, ptr %21, align 8, !tbaa !5
  %8657 = load i32, ptr %22, align 4, !tbaa !16
  %8658 = sext i32 %8657 to i64
  %8659 = getelementptr inbounds ptr, ptr %8656, i64 %8658
  %8660 = load ptr, ptr %8659, align 8, !tbaa !5
  %8661 = load i32, ptr %23, align 4, !tbaa !16
  %8662 = sext i32 %8661 to i64
  %8663 = getelementptr inbounds i8, ptr %8660, i64 %8662
  %8664 = load i8, ptr %8663, align 1, !tbaa !20
  %8665 = zext i8 %8664 to i64
  %8666 = getelementptr inbounds [256 x i32], ptr %17, i64 0, i64 %8665
  %8667 = load i32, ptr %8666, align 4, !tbaa !16
  %8668 = add nsw i32 %8655, %8667
  store i32 %8668, ptr %130, align 4, !tbaa !16
  %8669 = load i32, ptr %130, align 4, !tbaa !16
  %8670 = icmp slt i32 %8669, 0
  br i1 %8670, label %8671, label %8685

8671:                                             ; preds = %8643
  %8672 = load ptr, ptr %8, align 8, !tbaa !5
  %8673 = getelementptr inbounds %struct.MImage, ptr %8672, i32 0, i32 3
  %8674 = load i32, ptr %19, align 4, !tbaa !16
  %8675 = sext i32 %8674 to i64
  %8676 = getelementptr inbounds [4 x ptr], ptr %8673, i64 0, i64 %8675
  %8677 = load ptr, ptr %8676, align 8, !tbaa !5
  %8678 = load i32, ptr %22, align 4, !tbaa !16
  %8679 = sext i32 %8678 to i64
  %8680 = getelementptr inbounds ptr, ptr %8677, i64 %8679
  %8681 = load ptr, ptr %8680, align 8, !tbaa !5
  %8682 = load i32, ptr %23, align 4, !tbaa !16
  %8683 = sext i32 %8682 to i64
  %8684 = getelementptr inbounds i8, ptr %8681, i64 %8683
  store i8 0, ptr %8684, align 1, !tbaa !20
  br label %8719

8685:                                             ; preds = %8643
  %8686 = load i32, ptr %130, align 4, !tbaa !16
  %8687 = icmp sgt i32 %8686, 255
  br i1 %8687, label %8688, label %8702

8688:                                             ; preds = %8685
  %8689 = load ptr, ptr %8, align 8, !tbaa !5
  %8690 = getelementptr inbounds %struct.MImage, ptr %8689, i32 0, i32 3
  %8691 = load i32, ptr %19, align 4, !tbaa !16
  %8692 = sext i32 %8691 to i64
  %8693 = getelementptr inbounds [4 x ptr], ptr %8690, i64 0, i64 %8692
  %8694 = load ptr, ptr %8693, align 8, !tbaa !5
  %8695 = load i32, ptr %22, align 4, !tbaa !16
  %8696 = sext i32 %8695 to i64
  %8697 = getelementptr inbounds ptr, ptr %8694, i64 %8696
  %8698 = load ptr, ptr %8697, align 8, !tbaa !5
  %8699 = load i32, ptr %23, align 4, !tbaa !16
  %8700 = sext i32 %8699 to i64
  %8701 = getelementptr inbounds i8, ptr %8698, i64 %8700
  store i8 -1, ptr %8701, align 1, !tbaa !20
  br label %8718

8702:                                             ; preds = %8685
  %8703 = load i32, ptr %130, align 4, !tbaa !16
  %8704 = trunc i32 %8703 to i8
  %8705 = load ptr, ptr %8, align 8, !tbaa !5
  %8706 = getelementptr inbounds %struct.MImage, ptr %8705, i32 0, i32 3
  %8707 = load i32, ptr %19, align 4, !tbaa !16
  %8708 = sext i32 %8707 to i64
  %8709 = getelementptr inbounds [4 x ptr], ptr %8706, i64 0, i64 %8708
  %8710 = load ptr, ptr %8709, align 8, !tbaa !5
  %8711 = load i32, ptr %22, align 4, !tbaa !16
  %8712 = sext i32 %8711 to i64
  %8713 = getelementptr inbounds ptr, ptr %8710, i64 %8712
  %8714 = load ptr, ptr %8713, align 8, !tbaa !5
  %8715 = load i32, ptr %23, align 4, !tbaa !16
  %8716 = sext i32 %8715 to i64
  %8717 = getelementptr inbounds i8, ptr %8714, i64 %8716
  store i8 %8704, ptr %8717, align 1, !tbaa !20
  br label %8718

8718:                                             ; preds = %8702, %8688
  br label %8719

8719:                                             ; preds = %8718, %8671
  call void @llvm.lifetime.end.p0(i64 4, ptr %130) #3
  br label %10942

8720:                                             ; preds = %7724
  %8721 = load ptr, ptr %8, align 8, !tbaa !5
  %8722 = getelementptr inbounds %struct.MImage, ptr %8721, i32 0, i32 2
  %8723 = load i32, ptr %8722, align 8, !tbaa !15
  %8724 = load i32, ptr %23, align 4, !tbaa !16
  %8725 = sub nsw i32 %8723, %8724
  %8726 = icmp eq i32 %8725, 14
  br i1 %8726, label %8727, label %9792

8727:                                             ; preds = %8720
  call void @llvm.lifetime.start.p0(i64 4, ptr %131) #3
  %8728 = load ptr, ptr %20, align 8, !tbaa !5
  %8729 = load i32, ptr %22, align 4, !tbaa !16
  %8730 = sext i32 %8729 to i64
  %8731 = getelementptr inbounds ptr, ptr %8728, i64 %8730
  %8732 = load ptr, ptr %8731, align 8, !tbaa !5
  %8733 = load i32, ptr %23, align 4, !tbaa !16
  %8734 = sext i32 %8733 to i64
  %8735 = getelementptr inbounds i8, ptr %8732, i64 %8734
  %8736 = load i8, ptr %8735, align 1, !tbaa !20
  %8737 = zext i8 %8736 to i64
  %8738 = getelementptr inbounds [256 x i32], ptr %16, i64 0, i64 %8737
  %8739 = load i32, ptr %8738, align 4, !tbaa !16
  %8740 = load ptr, ptr %21, align 8, !tbaa !5
  %8741 = load i32, ptr %22, align 4, !tbaa !16
  %8742 = sext i32 %8741 to i64
  %8743 = getelementptr inbounds ptr, ptr %8740, i64 %8742
  %8744 = load ptr, ptr %8743, align 8, !tbaa !5
  %8745 = load i32, ptr %23, align 4, !tbaa !16
  %8746 = sext i32 %8745 to i64
  %8747 = getelementptr inbounds i8, ptr %8744, i64 %8746
  %8748 = load i8, ptr %8747, align 1, !tbaa !20
  %8749 = zext i8 %8748 to i64
  %8750 = getelementptr inbounds [256 x i32], ptr %17, i64 0, i64 %8749
  %8751 = load i32, ptr %8750, align 4, !tbaa !16
  %8752 = add nsw i32 %8739, %8751
  store i32 %8752, ptr %131, align 4, !tbaa !16
  %8753 = load i32, ptr %131, align 4, !tbaa !16
  %8754 = icmp slt i32 %8753, 0
  br i1 %8754, label %8755, label %8769

8755:                                             ; preds = %8727
  %8756 = load ptr, ptr %8, align 8, !tbaa !5
  %8757 = getelementptr inbounds %struct.MImage, ptr %8756, i32 0, i32 3
  %8758 = load i32, ptr %19, align 4, !tbaa !16
  %8759 = sext i32 %8758 to i64
  %8760 = getelementptr inbounds [4 x ptr], ptr %8757, i64 0, i64 %8759
  %8761 = load ptr, ptr %8760, align 8, !tbaa !5
  %8762 = load i32, ptr %22, align 4, !tbaa !16
  %8763 = sext i32 %8762 to i64
  %8764 = getelementptr inbounds ptr, ptr %8761, i64 %8763
  %8765 = load ptr, ptr %8764, align 8, !tbaa !5
  %8766 = load i32, ptr %23, align 4, !tbaa !16
  %8767 = sext i32 %8766 to i64
  %8768 = getelementptr inbounds i8, ptr %8765, i64 %8767
  store i8 0, ptr %8768, align 1, !tbaa !20
  br label %8803

8769:                                             ; preds = %8727
  %8770 = load i32, ptr %131, align 4, !tbaa !16
  %8771 = icmp sgt i32 %8770, 255
  br i1 %8771, label %8772, label %8786

8772:                                             ; preds = %8769
  %8773 = load ptr, ptr %8, align 8, !tbaa !5
  %8774 = getelementptr inbounds %struct.MImage, ptr %8773, i32 0, i32 3
  %8775 = load i32, ptr %19, align 4, !tbaa !16
  %8776 = sext i32 %8775 to i64
  %8777 = getelementptr inbounds [4 x ptr], ptr %8774, i64 0, i64 %8776
  %8778 = load ptr, ptr %8777, align 8, !tbaa !5
  %8779 = load i32, ptr %22, align 4, !tbaa !16
  %8780 = sext i32 %8779 to i64
  %8781 = getelementptr inbounds ptr, ptr %8778, i64 %8780
  %8782 = load ptr, ptr %8781, align 8, !tbaa !5
  %8783 = load i32, ptr %23, align 4, !tbaa !16
  %8784 = sext i32 %8783 to i64
  %8785 = getelementptr inbounds i8, ptr %8782, i64 %8784
  store i8 -1, ptr %8785, align 1, !tbaa !20
  br label %8802

8786:                                             ; preds = %8769
  %8787 = load i32, ptr %131, align 4, !tbaa !16
  %8788 = trunc i32 %8787 to i8
  %8789 = load ptr, ptr %8, align 8, !tbaa !5
  %8790 = getelementptr inbounds %struct.MImage, ptr %8789, i32 0, i32 3
  %8791 = load i32, ptr %19, align 4, !tbaa !16
  %8792 = sext i32 %8791 to i64
  %8793 = getelementptr inbounds [4 x ptr], ptr %8790, i64 0, i64 %8792
  %8794 = load ptr, ptr %8793, align 8, !tbaa !5
  %8795 = load i32, ptr %22, align 4, !tbaa !16
  %8796 = sext i32 %8795 to i64
  %8797 = getelementptr inbounds ptr, ptr %8794, i64 %8796
  %8798 = load ptr, ptr %8797, align 8, !tbaa !5
  %8799 = load i32, ptr %23, align 4, !tbaa !16
  %8800 = sext i32 %8799 to i64
  %8801 = getelementptr inbounds i8, ptr %8798, i64 %8800
  store i8 %8788, ptr %8801, align 1, !tbaa !20
  br label %8802

8802:                                             ; preds = %8786, %8772
  br label %8803

8803:                                             ; preds = %8802, %8755
  call void @llvm.lifetime.end.p0(i64 4, ptr %131) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %132) #3
  %8804 = load ptr, ptr %20, align 8, !tbaa !5
  %8805 = load i32, ptr %22, align 4, !tbaa !16
  %8806 = sext i32 %8805 to i64
  %8807 = getelementptr inbounds ptr, ptr %8804, i64 %8806
  %8808 = load ptr, ptr %8807, align 8, !tbaa !5
  %8809 = load i32, ptr %23, align 4, !tbaa !16
  %8810 = sext i32 %8809 to i64
  %8811 = getelementptr inbounds i8, ptr %8808, i64 %8810
  %8812 = load i8, ptr %8811, align 1, !tbaa !20
  %8813 = zext i8 %8812 to i64
  %8814 = getelementptr inbounds [256 x i32], ptr %16, i64 0, i64 %8813
  %8815 = load i32, ptr %8814, align 4, !tbaa !16
  %8816 = load ptr, ptr %21, align 8, !tbaa !5
  %8817 = load i32, ptr %22, align 4, !tbaa !16
  %8818 = sext i32 %8817 to i64
  %8819 = getelementptr inbounds ptr, ptr %8816, i64 %8818
  %8820 = load ptr, ptr %8819, align 8, !tbaa !5
  %8821 = load i32, ptr %23, align 4, !tbaa !16
  %8822 = sext i32 %8821 to i64
  %8823 = getelementptr inbounds i8, ptr %8820, i64 %8822
  %8824 = load i8, ptr %8823, align 1, !tbaa !20
  %8825 = zext i8 %8824 to i64
  %8826 = getelementptr inbounds [256 x i32], ptr %17, i64 0, i64 %8825
  %8827 = load i32, ptr %8826, align 4, !tbaa !16
  %8828 = add nsw i32 %8815, %8827
  store i32 %8828, ptr %132, align 4, !tbaa !16
  %8829 = load i32, ptr %132, align 4, !tbaa !16
  %8830 = icmp slt i32 %8829, 0
  br i1 %8830, label %8831, label %8845

8831:                                             ; preds = %8803
  %8832 = load ptr, ptr %8, align 8, !tbaa !5
  %8833 = getelementptr inbounds %struct.MImage, ptr %8832, i32 0, i32 3
  %8834 = load i32, ptr %19, align 4, !tbaa !16
  %8835 = sext i32 %8834 to i64
  %8836 = getelementptr inbounds [4 x ptr], ptr %8833, i64 0, i64 %8835
  %8837 = load ptr, ptr %8836, align 8, !tbaa !5
  %8838 = load i32, ptr %22, align 4, !tbaa !16
  %8839 = sext i32 %8838 to i64
  %8840 = getelementptr inbounds ptr, ptr %8837, i64 %8839
  %8841 = load ptr, ptr %8840, align 8, !tbaa !5
  %8842 = load i32, ptr %23, align 4, !tbaa !16
  %8843 = sext i32 %8842 to i64
  %8844 = getelementptr inbounds i8, ptr %8841, i64 %8843
  store i8 0, ptr %8844, align 1, !tbaa !20
  br label %8879

8845:                                             ; preds = %8803
  %8846 = load i32, ptr %132, align 4, !tbaa !16
  %8847 = icmp sgt i32 %8846, 255
  br i1 %8847, label %8848, label %8862

8848:                                             ; preds = %8845
  %8849 = load ptr, ptr %8, align 8, !tbaa !5
  %8850 = getelementptr inbounds %struct.MImage, ptr %8849, i32 0, i32 3
  %8851 = load i32, ptr %19, align 4, !tbaa !16
  %8852 = sext i32 %8851 to i64
  %8853 = getelementptr inbounds [4 x ptr], ptr %8850, i64 0, i64 %8852
  %8854 = load ptr, ptr %8853, align 8, !tbaa !5
  %8855 = load i32, ptr %22, align 4, !tbaa !16
  %8856 = sext i32 %8855 to i64
  %8857 = getelementptr inbounds ptr, ptr %8854, i64 %8856
  %8858 = load ptr, ptr %8857, align 8, !tbaa !5
  %8859 = load i32, ptr %23, align 4, !tbaa !16
  %8860 = sext i32 %8859 to i64
  %8861 = getelementptr inbounds i8, ptr %8858, i64 %8860
  store i8 -1, ptr %8861, align 1, !tbaa !20
  br label %8878

8862:                                             ; preds = %8845
  %8863 = load i32, ptr %132, align 4, !tbaa !16
  %8864 = trunc i32 %8863 to i8
  %8865 = load ptr, ptr %8, align 8, !tbaa !5
  %8866 = getelementptr inbounds %struct.MImage, ptr %8865, i32 0, i32 3
  %8867 = load i32, ptr %19, align 4, !tbaa !16
  %8868 = sext i32 %8867 to i64
  %8869 = getelementptr inbounds [4 x ptr], ptr %8866, i64 0, i64 %8868
  %8870 = load ptr, ptr %8869, align 8, !tbaa !5
  %8871 = load i32, ptr %22, align 4, !tbaa !16
  %8872 = sext i32 %8871 to i64
  %8873 = getelementptr inbounds ptr, ptr %8870, i64 %8872
  %8874 = load ptr, ptr %8873, align 8, !tbaa !5
  %8875 = load i32, ptr %23, align 4, !tbaa !16
  %8876 = sext i32 %8875 to i64
  %8877 = getelementptr inbounds i8, ptr %8874, i64 %8876
  store i8 %8864, ptr %8877, align 1, !tbaa !20
  br label %8878

8878:                                             ; preds = %8862, %8848
  br label %8879

8879:                                             ; preds = %8878, %8831
  call void @llvm.lifetime.end.p0(i64 4, ptr %132) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %133) #3
  %8880 = load ptr, ptr %20, align 8, !tbaa !5
  %8881 = load i32, ptr %22, align 4, !tbaa !16
  %8882 = sext i32 %8881 to i64
  %8883 = getelementptr inbounds ptr, ptr %8880, i64 %8882
  %8884 = load ptr, ptr %8883, align 8, !tbaa !5
  %8885 = load i32, ptr %23, align 4, !tbaa !16
  %8886 = sext i32 %8885 to i64
  %8887 = getelementptr inbounds i8, ptr %8884, i64 %8886
  %8888 = load i8, ptr %8887, align 1, !tbaa !20
  %8889 = zext i8 %8888 to i64
  %8890 = getelementptr inbounds [256 x i32], ptr %16, i64 0, i64 %8889
  %8891 = load i32, ptr %8890, align 4, !tbaa !16
  %8892 = load ptr, ptr %21, align 8, !tbaa !5
  %8893 = load i32, ptr %22, align 4, !tbaa !16
  %8894 = sext i32 %8893 to i64
  %8895 = getelementptr inbounds ptr, ptr %8892, i64 %8894
  %8896 = load ptr, ptr %8895, align 8, !tbaa !5
  %8897 = load i32, ptr %23, align 4, !tbaa !16
  %8898 = sext i32 %8897 to i64
  %8899 = getelementptr inbounds i8, ptr %8896, i64 %8898
  %8900 = load i8, ptr %8899, align 1, !tbaa !20
  %8901 = zext i8 %8900 to i64
  %8902 = getelementptr inbounds [256 x i32], ptr %17, i64 0, i64 %8901
  %8903 = load i32, ptr %8902, align 4, !tbaa !16
  %8904 = add nsw i32 %8891, %8903
  store i32 %8904, ptr %133, align 4, !tbaa !16
  %8905 = load i32, ptr %133, align 4, !tbaa !16
  %8906 = icmp slt i32 %8905, 0
  br i1 %8906, label %8907, label %8921

8907:                                             ; preds = %8879
  %8908 = load ptr, ptr %8, align 8, !tbaa !5
  %8909 = getelementptr inbounds %struct.MImage, ptr %8908, i32 0, i32 3
  %8910 = load i32, ptr %19, align 4, !tbaa !16
  %8911 = sext i32 %8910 to i64
  %8912 = getelementptr inbounds [4 x ptr], ptr %8909, i64 0, i64 %8911
  %8913 = load ptr, ptr %8912, align 8, !tbaa !5
  %8914 = load i32, ptr %22, align 4, !tbaa !16
  %8915 = sext i32 %8914 to i64
  %8916 = getelementptr inbounds ptr, ptr %8913, i64 %8915
  %8917 = load ptr, ptr %8916, align 8, !tbaa !5
  %8918 = load i32, ptr %23, align 4, !tbaa !16
  %8919 = sext i32 %8918 to i64
  %8920 = getelementptr inbounds i8, ptr %8917, i64 %8919
  store i8 0, ptr %8920, align 1, !tbaa !20
  br label %8955

8921:                                             ; preds = %8879
  %8922 = load i32, ptr %133, align 4, !tbaa !16
  %8923 = icmp sgt i32 %8922, 255
  br i1 %8923, label %8924, label %8938

8924:                                             ; preds = %8921
  %8925 = load ptr, ptr %8, align 8, !tbaa !5
  %8926 = getelementptr inbounds %struct.MImage, ptr %8925, i32 0, i32 3
  %8927 = load i32, ptr %19, align 4, !tbaa !16
  %8928 = sext i32 %8927 to i64
  %8929 = getelementptr inbounds [4 x ptr], ptr %8926, i64 0, i64 %8928
  %8930 = load ptr, ptr %8929, align 8, !tbaa !5
  %8931 = load i32, ptr %22, align 4, !tbaa !16
  %8932 = sext i32 %8931 to i64
  %8933 = getelementptr inbounds ptr, ptr %8930, i64 %8932
  %8934 = load ptr, ptr %8933, align 8, !tbaa !5
  %8935 = load i32, ptr %23, align 4, !tbaa !16
  %8936 = sext i32 %8935 to i64
  %8937 = getelementptr inbounds i8, ptr %8934, i64 %8936
  store i8 -1, ptr %8937, align 1, !tbaa !20
  br label %8954

8938:                                             ; preds = %8921
  %8939 = load i32, ptr %133, align 4, !tbaa !16
  %8940 = trunc i32 %8939 to i8
  %8941 = load ptr, ptr %8, align 8, !tbaa !5
  %8942 = getelementptr inbounds %struct.MImage, ptr %8941, i32 0, i32 3
  %8943 = load i32, ptr %19, align 4, !tbaa !16
  %8944 = sext i32 %8943 to i64
  %8945 = getelementptr inbounds [4 x ptr], ptr %8942, i64 0, i64 %8944
  %8946 = load ptr, ptr %8945, align 8, !tbaa !5
  %8947 = load i32, ptr %22, align 4, !tbaa !16
  %8948 = sext i32 %8947 to i64
  %8949 = getelementptr inbounds ptr, ptr %8946, i64 %8948
  %8950 = load ptr, ptr %8949, align 8, !tbaa !5
  %8951 = load i32, ptr %23, align 4, !tbaa !16
  %8952 = sext i32 %8951 to i64
  %8953 = getelementptr inbounds i8, ptr %8950, i64 %8952
  store i8 %8940, ptr %8953, align 1, !tbaa !20
  br label %8954

8954:                                             ; preds = %8938, %8924
  br label %8955

8955:                                             ; preds = %8954, %8907
  call void @llvm.lifetime.end.p0(i64 4, ptr %133) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %134) #3
  %8956 = load ptr, ptr %20, align 8, !tbaa !5
  %8957 = load i32, ptr %22, align 4, !tbaa !16
  %8958 = sext i32 %8957 to i64
  %8959 = getelementptr inbounds ptr, ptr %8956, i64 %8958
  %8960 = load ptr, ptr %8959, align 8, !tbaa !5
  %8961 = load i32, ptr %23, align 4, !tbaa !16
  %8962 = sext i32 %8961 to i64
  %8963 = getelementptr inbounds i8, ptr %8960, i64 %8962
  %8964 = load i8, ptr %8963, align 1, !tbaa !20
  %8965 = zext i8 %8964 to i64
  %8966 = getelementptr inbounds [256 x i32], ptr %16, i64 0, i64 %8965
  %8967 = load i32, ptr %8966, align 4, !tbaa !16
  %8968 = load ptr, ptr %21, align 8, !tbaa !5
  %8969 = load i32, ptr %22, align 4, !tbaa !16
  %8970 = sext i32 %8969 to i64
  %8971 = getelementptr inbounds ptr, ptr %8968, i64 %8970
  %8972 = load ptr, ptr %8971, align 8, !tbaa !5
  %8973 = load i32, ptr %23, align 4, !tbaa !16
  %8974 = sext i32 %8973 to i64
  %8975 = getelementptr inbounds i8, ptr %8972, i64 %8974
  %8976 = load i8, ptr %8975, align 1, !tbaa !20
  %8977 = zext i8 %8976 to i64
  %8978 = getelementptr inbounds [256 x i32], ptr %17, i64 0, i64 %8977
  %8979 = load i32, ptr %8978, align 4, !tbaa !16
  %8980 = add nsw i32 %8967, %8979
  store i32 %8980, ptr %134, align 4, !tbaa !16
  %8981 = load i32, ptr %134, align 4, !tbaa !16
  %8982 = icmp slt i32 %8981, 0
  br i1 %8982, label %8983, label %8997

8983:                                             ; preds = %8955
  %8984 = load ptr, ptr %8, align 8, !tbaa !5
  %8985 = getelementptr inbounds %struct.MImage, ptr %8984, i32 0, i32 3
  %8986 = load i32, ptr %19, align 4, !tbaa !16
  %8987 = sext i32 %8986 to i64
  %8988 = getelementptr inbounds [4 x ptr], ptr %8985, i64 0, i64 %8987
  %8989 = load ptr, ptr %8988, align 8, !tbaa !5
  %8990 = load i32, ptr %22, align 4, !tbaa !16
  %8991 = sext i32 %8990 to i64
  %8992 = getelementptr inbounds ptr, ptr %8989, i64 %8991
  %8993 = load ptr, ptr %8992, align 8, !tbaa !5
  %8994 = load i32, ptr %23, align 4, !tbaa !16
  %8995 = sext i32 %8994 to i64
  %8996 = getelementptr inbounds i8, ptr %8993, i64 %8995
  store i8 0, ptr %8996, align 1, !tbaa !20
  br label %9031

8997:                                             ; preds = %8955
  %8998 = load i32, ptr %134, align 4, !tbaa !16
  %8999 = icmp sgt i32 %8998, 255
  br i1 %8999, label %9000, label %9014

9000:                                             ; preds = %8997
  %9001 = load ptr, ptr %8, align 8, !tbaa !5
  %9002 = getelementptr inbounds %struct.MImage, ptr %9001, i32 0, i32 3
  %9003 = load i32, ptr %19, align 4, !tbaa !16
  %9004 = sext i32 %9003 to i64
  %9005 = getelementptr inbounds [4 x ptr], ptr %9002, i64 0, i64 %9004
  %9006 = load ptr, ptr %9005, align 8, !tbaa !5
  %9007 = load i32, ptr %22, align 4, !tbaa !16
  %9008 = sext i32 %9007 to i64
  %9009 = getelementptr inbounds ptr, ptr %9006, i64 %9008
  %9010 = load ptr, ptr %9009, align 8, !tbaa !5
  %9011 = load i32, ptr %23, align 4, !tbaa !16
  %9012 = sext i32 %9011 to i64
  %9013 = getelementptr inbounds i8, ptr %9010, i64 %9012
  store i8 -1, ptr %9013, align 1, !tbaa !20
  br label %9030

9014:                                             ; preds = %8997
  %9015 = load i32, ptr %134, align 4, !tbaa !16
  %9016 = trunc i32 %9015 to i8
  %9017 = load ptr, ptr %8, align 8, !tbaa !5
  %9018 = getelementptr inbounds %struct.MImage, ptr %9017, i32 0, i32 3
  %9019 = load i32, ptr %19, align 4, !tbaa !16
  %9020 = sext i32 %9019 to i64
  %9021 = getelementptr inbounds [4 x ptr], ptr %9018, i64 0, i64 %9020
  %9022 = load ptr, ptr %9021, align 8, !tbaa !5
  %9023 = load i32, ptr %22, align 4, !tbaa !16
  %9024 = sext i32 %9023 to i64
  %9025 = getelementptr inbounds ptr, ptr %9022, i64 %9024
  %9026 = load ptr, ptr %9025, align 8, !tbaa !5
  %9027 = load i32, ptr %23, align 4, !tbaa !16
  %9028 = sext i32 %9027 to i64
  %9029 = getelementptr inbounds i8, ptr %9026, i64 %9028
  store i8 %9016, ptr %9029, align 1, !tbaa !20
  br label %9030

9030:                                             ; preds = %9014, %9000
  br label %9031

9031:                                             ; preds = %9030, %8983
  call void @llvm.lifetime.end.p0(i64 4, ptr %134) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %135) #3
  %9032 = load ptr, ptr %20, align 8, !tbaa !5
  %9033 = load i32, ptr %22, align 4, !tbaa !16
  %9034 = sext i32 %9033 to i64
  %9035 = getelementptr inbounds ptr, ptr %9032, i64 %9034
  %9036 = load ptr, ptr %9035, align 8, !tbaa !5
  %9037 = load i32, ptr %23, align 4, !tbaa !16
  %9038 = sext i32 %9037 to i64
  %9039 = getelementptr inbounds i8, ptr %9036, i64 %9038
  %9040 = load i8, ptr %9039, align 1, !tbaa !20
  %9041 = zext i8 %9040 to i64
  %9042 = getelementptr inbounds [256 x i32], ptr %16, i64 0, i64 %9041
  %9043 = load i32, ptr %9042, align 4, !tbaa !16
  %9044 = load ptr, ptr %21, align 8, !tbaa !5
  %9045 = load i32, ptr %22, align 4, !tbaa !16
  %9046 = sext i32 %9045 to i64
  %9047 = getelementptr inbounds ptr, ptr %9044, i64 %9046
  %9048 = load ptr, ptr %9047, align 8, !tbaa !5
  %9049 = load i32, ptr %23, align 4, !tbaa !16
  %9050 = sext i32 %9049 to i64
  %9051 = getelementptr inbounds i8, ptr %9048, i64 %9050
  %9052 = load i8, ptr %9051, align 1, !tbaa !20
  %9053 = zext i8 %9052 to i64
  %9054 = getelementptr inbounds [256 x i32], ptr %17, i64 0, i64 %9053
  %9055 = load i32, ptr %9054, align 4, !tbaa !16
  %9056 = add nsw i32 %9043, %9055
  store i32 %9056, ptr %135, align 4, !tbaa !16
  %9057 = load i32, ptr %135, align 4, !tbaa !16
  %9058 = icmp slt i32 %9057, 0
  br i1 %9058, label %9059, label %9073

9059:                                             ; preds = %9031
  %9060 = load ptr, ptr %8, align 8, !tbaa !5
  %9061 = getelementptr inbounds %struct.MImage, ptr %9060, i32 0, i32 3
  %9062 = load i32, ptr %19, align 4, !tbaa !16
  %9063 = sext i32 %9062 to i64
  %9064 = getelementptr inbounds [4 x ptr], ptr %9061, i64 0, i64 %9063
  %9065 = load ptr, ptr %9064, align 8, !tbaa !5
  %9066 = load i32, ptr %22, align 4, !tbaa !16
  %9067 = sext i32 %9066 to i64
  %9068 = getelementptr inbounds ptr, ptr %9065, i64 %9067
  %9069 = load ptr, ptr %9068, align 8, !tbaa !5
  %9070 = load i32, ptr %23, align 4, !tbaa !16
  %9071 = sext i32 %9070 to i64
  %9072 = getelementptr inbounds i8, ptr %9069, i64 %9071
  store i8 0, ptr %9072, align 1, !tbaa !20
  br label %9107

9073:                                             ; preds = %9031
  %9074 = load i32, ptr %135, align 4, !tbaa !16
  %9075 = icmp sgt i32 %9074, 255
  br i1 %9075, label %9076, label %9090

9076:                                             ; preds = %9073
  %9077 = load ptr, ptr %8, align 8, !tbaa !5
  %9078 = getelementptr inbounds %struct.MImage, ptr %9077, i32 0, i32 3
  %9079 = load i32, ptr %19, align 4, !tbaa !16
  %9080 = sext i32 %9079 to i64
  %9081 = getelementptr inbounds [4 x ptr], ptr %9078, i64 0, i64 %9080
  %9082 = load ptr, ptr %9081, align 8, !tbaa !5
  %9083 = load i32, ptr %22, align 4, !tbaa !16
  %9084 = sext i32 %9083 to i64
  %9085 = getelementptr inbounds ptr, ptr %9082, i64 %9084
  %9086 = load ptr, ptr %9085, align 8, !tbaa !5
  %9087 = load i32, ptr %23, align 4, !tbaa !16
  %9088 = sext i32 %9087 to i64
  %9089 = getelementptr inbounds i8, ptr %9086, i64 %9088
  store i8 -1, ptr %9089, align 1, !tbaa !20
  br label %9106

9090:                                             ; preds = %9073
  %9091 = load i32, ptr %135, align 4, !tbaa !16
  %9092 = trunc i32 %9091 to i8
  %9093 = load ptr, ptr %8, align 8, !tbaa !5
  %9094 = getelementptr inbounds %struct.MImage, ptr %9093, i32 0, i32 3
  %9095 = load i32, ptr %19, align 4, !tbaa !16
  %9096 = sext i32 %9095 to i64
  %9097 = getelementptr inbounds [4 x ptr], ptr %9094, i64 0, i64 %9096
  %9098 = load ptr, ptr %9097, align 8, !tbaa !5
  %9099 = load i32, ptr %22, align 4, !tbaa !16
  %9100 = sext i32 %9099 to i64
  %9101 = getelementptr inbounds ptr, ptr %9098, i64 %9100
  %9102 = load ptr, ptr %9101, align 8, !tbaa !5
  %9103 = load i32, ptr %23, align 4, !tbaa !16
  %9104 = sext i32 %9103 to i64
  %9105 = getelementptr inbounds i8, ptr %9102, i64 %9104
  store i8 %9092, ptr %9105, align 1, !tbaa !20
  br label %9106

9106:                                             ; preds = %9090, %9076
  br label %9107

9107:                                             ; preds = %9106, %9059
  call void @llvm.lifetime.end.p0(i64 4, ptr %135) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %136) #3
  %9108 = load ptr, ptr %20, align 8, !tbaa !5
  %9109 = load i32, ptr %22, align 4, !tbaa !16
  %9110 = sext i32 %9109 to i64
  %9111 = getelementptr inbounds ptr, ptr %9108, i64 %9110
  %9112 = load ptr, ptr %9111, align 8, !tbaa !5
  %9113 = load i32, ptr %23, align 4, !tbaa !16
  %9114 = sext i32 %9113 to i64
  %9115 = getelementptr inbounds i8, ptr %9112, i64 %9114
  %9116 = load i8, ptr %9115, align 1, !tbaa !20
  %9117 = zext i8 %9116 to i64
  %9118 = getelementptr inbounds [256 x i32], ptr %16, i64 0, i64 %9117
  %9119 = load i32, ptr %9118, align 4, !tbaa !16
  %9120 = load ptr, ptr %21, align 8, !tbaa !5
  %9121 = load i32, ptr %22, align 4, !tbaa !16
  %9122 = sext i32 %9121 to i64
  %9123 = getelementptr inbounds ptr, ptr %9120, i64 %9122
  %9124 = load ptr, ptr %9123, align 8, !tbaa !5
  %9125 = load i32, ptr %23, align 4, !tbaa !16
  %9126 = sext i32 %9125 to i64
  %9127 = getelementptr inbounds i8, ptr %9124, i64 %9126
  %9128 = load i8, ptr %9127, align 1, !tbaa !20
  %9129 = zext i8 %9128 to i64
  %9130 = getelementptr inbounds [256 x i32], ptr %17, i64 0, i64 %9129
  %9131 = load i32, ptr %9130, align 4, !tbaa !16
  %9132 = add nsw i32 %9119, %9131
  store i32 %9132, ptr %136, align 4, !tbaa !16
  %9133 = load i32, ptr %136, align 4, !tbaa !16
  %9134 = icmp slt i32 %9133, 0
  br i1 %9134, label %9135, label %9149

9135:                                             ; preds = %9107
  %9136 = load ptr, ptr %8, align 8, !tbaa !5
  %9137 = getelementptr inbounds %struct.MImage, ptr %9136, i32 0, i32 3
  %9138 = load i32, ptr %19, align 4, !tbaa !16
  %9139 = sext i32 %9138 to i64
  %9140 = getelementptr inbounds [4 x ptr], ptr %9137, i64 0, i64 %9139
  %9141 = load ptr, ptr %9140, align 8, !tbaa !5
  %9142 = load i32, ptr %22, align 4, !tbaa !16
  %9143 = sext i32 %9142 to i64
  %9144 = getelementptr inbounds ptr, ptr %9141, i64 %9143
  %9145 = load ptr, ptr %9144, align 8, !tbaa !5
  %9146 = load i32, ptr %23, align 4, !tbaa !16
  %9147 = sext i32 %9146 to i64
  %9148 = getelementptr inbounds i8, ptr %9145, i64 %9147
  store i8 0, ptr %9148, align 1, !tbaa !20
  br label %9183

9149:                                             ; preds = %9107
  %9150 = load i32, ptr %136, align 4, !tbaa !16
  %9151 = icmp sgt i32 %9150, 255
  br i1 %9151, label %9152, label %9166

9152:                                             ; preds = %9149
  %9153 = load ptr, ptr %8, align 8, !tbaa !5
  %9154 = getelementptr inbounds %struct.MImage, ptr %9153, i32 0, i32 3
  %9155 = load i32, ptr %19, align 4, !tbaa !16
  %9156 = sext i32 %9155 to i64
  %9157 = getelementptr inbounds [4 x ptr], ptr %9154, i64 0, i64 %9156
  %9158 = load ptr, ptr %9157, align 8, !tbaa !5
  %9159 = load i32, ptr %22, align 4, !tbaa !16
  %9160 = sext i32 %9159 to i64
  %9161 = getelementptr inbounds ptr, ptr %9158, i64 %9160
  %9162 = load ptr, ptr %9161, align 8, !tbaa !5
  %9163 = load i32, ptr %23, align 4, !tbaa !16
  %9164 = sext i32 %9163 to i64
  %9165 = getelementptr inbounds i8, ptr %9162, i64 %9164
  store i8 -1, ptr %9165, align 1, !tbaa !20
  br label %9182

9166:                                             ; preds = %9149
  %9167 = load i32, ptr %136, align 4, !tbaa !16
  %9168 = trunc i32 %9167 to i8
  %9169 = load ptr, ptr %8, align 8, !tbaa !5
  %9170 = getelementptr inbounds %struct.MImage, ptr %9169, i32 0, i32 3
  %9171 = load i32, ptr %19, align 4, !tbaa !16
  %9172 = sext i32 %9171 to i64
  %9173 = getelementptr inbounds [4 x ptr], ptr %9170, i64 0, i64 %9172
  %9174 = load ptr, ptr %9173, align 8, !tbaa !5
  %9175 = load i32, ptr %22, align 4, !tbaa !16
  %9176 = sext i32 %9175 to i64
  %9177 = getelementptr inbounds ptr, ptr %9174, i64 %9176
  %9178 = load ptr, ptr %9177, align 8, !tbaa !5
  %9179 = load i32, ptr %23, align 4, !tbaa !16
  %9180 = sext i32 %9179 to i64
  %9181 = getelementptr inbounds i8, ptr %9178, i64 %9180
  store i8 %9168, ptr %9181, align 1, !tbaa !20
  br label %9182

9182:                                             ; preds = %9166, %9152
  br label %9183

9183:                                             ; preds = %9182, %9135
  call void @llvm.lifetime.end.p0(i64 4, ptr %136) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %137) #3
  %9184 = load ptr, ptr %20, align 8, !tbaa !5
  %9185 = load i32, ptr %22, align 4, !tbaa !16
  %9186 = sext i32 %9185 to i64
  %9187 = getelementptr inbounds ptr, ptr %9184, i64 %9186
  %9188 = load ptr, ptr %9187, align 8, !tbaa !5
  %9189 = load i32, ptr %23, align 4, !tbaa !16
  %9190 = sext i32 %9189 to i64
  %9191 = getelementptr inbounds i8, ptr %9188, i64 %9190
  %9192 = load i8, ptr %9191, align 1, !tbaa !20
  %9193 = zext i8 %9192 to i64
  %9194 = getelementptr inbounds [256 x i32], ptr %16, i64 0, i64 %9193
  %9195 = load i32, ptr %9194, align 4, !tbaa !16
  %9196 = load ptr, ptr %21, align 8, !tbaa !5
  %9197 = load i32, ptr %22, align 4, !tbaa !16
  %9198 = sext i32 %9197 to i64
  %9199 = getelementptr inbounds ptr, ptr %9196, i64 %9198
  %9200 = load ptr, ptr %9199, align 8, !tbaa !5
  %9201 = load i32, ptr %23, align 4, !tbaa !16
  %9202 = sext i32 %9201 to i64
  %9203 = getelementptr inbounds i8, ptr %9200, i64 %9202
  %9204 = load i8, ptr %9203, align 1, !tbaa !20
  %9205 = zext i8 %9204 to i64
  %9206 = getelementptr inbounds [256 x i32], ptr %17, i64 0, i64 %9205
  %9207 = load i32, ptr %9206, align 4, !tbaa !16
  %9208 = add nsw i32 %9195, %9207
  store i32 %9208, ptr %137, align 4, !tbaa !16
  %9209 = load i32, ptr %137, align 4, !tbaa !16
  %9210 = icmp slt i32 %9209, 0
  br i1 %9210, label %9211, label %9225

9211:                                             ; preds = %9183
  %9212 = load ptr, ptr %8, align 8, !tbaa !5
  %9213 = getelementptr inbounds %struct.MImage, ptr %9212, i32 0, i32 3
  %9214 = load i32, ptr %19, align 4, !tbaa !16
  %9215 = sext i32 %9214 to i64
  %9216 = getelementptr inbounds [4 x ptr], ptr %9213, i64 0, i64 %9215
  %9217 = load ptr, ptr %9216, align 8, !tbaa !5
  %9218 = load i32, ptr %22, align 4, !tbaa !16
  %9219 = sext i32 %9218 to i64
  %9220 = getelementptr inbounds ptr, ptr %9217, i64 %9219
  %9221 = load ptr, ptr %9220, align 8, !tbaa !5
  %9222 = load i32, ptr %23, align 4, !tbaa !16
  %9223 = sext i32 %9222 to i64
  %9224 = getelementptr inbounds i8, ptr %9221, i64 %9223
  store i8 0, ptr %9224, align 1, !tbaa !20
  br label %9259

9225:                                             ; preds = %9183
  %9226 = load i32, ptr %137, align 4, !tbaa !16
  %9227 = icmp sgt i32 %9226, 255
  br i1 %9227, label %9228, label %9242

9228:                                             ; preds = %9225
  %9229 = load ptr, ptr %8, align 8, !tbaa !5
  %9230 = getelementptr inbounds %struct.MImage, ptr %9229, i32 0, i32 3
  %9231 = load i32, ptr %19, align 4, !tbaa !16
  %9232 = sext i32 %9231 to i64
  %9233 = getelementptr inbounds [4 x ptr], ptr %9230, i64 0, i64 %9232
  %9234 = load ptr, ptr %9233, align 8, !tbaa !5
  %9235 = load i32, ptr %22, align 4, !tbaa !16
  %9236 = sext i32 %9235 to i64
  %9237 = getelementptr inbounds ptr, ptr %9234, i64 %9236
  %9238 = load ptr, ptr %9237, align 8, !tbaa !5
  %9239 = load i32, ptr %23, align 4, !tbaa !16
  %9240 = sext i32 %9239 to i64
  %9241 = getelementptr inbounds i8, ptr %9238, i64 %9240
  store i8 -1, ptr %9241, align 1, !tbaa !20
  br label %9258

9242:                                             ; preds = %9225
  %9243 = load i32, ptr %137, align 4, !tbaa !16
  %9244 = trunc i32 %9243 to i8
  %9245 = load ptr, ptr %8, align 8, !tbaa !5
  %9246 = getelementptr inbounds %struct.MImage, ptr %9245, i32 0, i32 3
  %9247 = load i32, ptr %19, align 4, !tbaa !16
  %9248 = sext i32 %9247 to i64
  %9249 = getelementptr inbounds [4 x ptr], ptr %9246, i64 0, i64 %9248
  %9250 = load ptr, ptr %9249, align 8, !tbaa !5
  %9251 = load i32, ptr %22, align 4, !tbaa !16
  %9252 = sext i32 %9251 to i64
  %9253 = getelementptr inbounds ptr, ptr %9250, i64 %9252
  %9254 = load ptr, ptr %9253, align 8, !tbaa !5
  %9255 = load i32, ptr %23, align 4, !tbaa !16
  %9256 = sext i32 %9255 to i64
  %9257 = getelementptr inbounds i8, ptr %9254, i64 %9256
  store i8 %9244, ptr %9257, align 1, !tbaa !20
  br label %9258

9258:                                             ; preds = %9242, %9228
  br label %9259

9259:                                             ; preds = %9258, %9211
  call void @llvm.lifetime.end.p0(i64 4, ptr %137) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %138) #3
  %9260 = load ptr, ptr %20, align 8, !tbaa !5
  %9261 = load i32, ptr %22, align 4, !tbaa !16
  %9262 = sext i32 %9261 to i64
  %9263 = getelementptr inbounds ptr, ptr %9260, i64 %9262
  %9264 = load ptr, ptr %9263, align 8, !tbaa !5
  %9265 = load i32, ptr %23, align 4, !tbaa !16
  %9266 = sext i32 %9265 to i64
  %9267 = getelementptr inbounds i8, ptr %9264, i64 %9266
  %9268 = load i8, ptr %9267, align 1, !tbaa !20
  %9269 = zext i8 %9268 to i64
  %9270 = getelementptr inbounds [256 x i32], ptr %16, i64 0, i64 %9269
  %9271 = load i32, ptr %9270, align 4, !tbaa !16
  %9272 = load ptr, ptr %21, align 8, !tbaa !5
  %9273 = load i32, ptr %22, align 4, !tbaa !16
  %9274 = sext i32 %9273 to i64
  %9275 = getelementptr inbounds ptr, ptr %9272, i64 %9274
  %9276 = load ptr, ptr %9275, align 8, !tbaa !5
  %9277 = load i32, ptr %23, align 4, !tbaa !16
  %9278 = sext i32 %9277 to i64
  %9279 = getelementptr inbounds i8, ptr %9276, i64 %9278
  %9280 = load i8, ptr %9279, align 1, !tbaa !20
  %9281 = zext i8 %9280 to i64
  %9282 = getelementptr inbounds [256 x i32], ptr %17, i64 0, i64 %9281
  %9283 = load i32, ptr %9282, align 4, !tbaa !16
  %9284 = add nsw i32 %9271, %9283
  store i32 %9284, ptr %138, align 4, !tbaa !16
  %9285 = load i32, ptr %138, align 4, !tbaa !16
  %9286 = icmp slt i32 %9285, 0
  br i1 %9286, label %9287, label %9301

9287:                                             ; preds = %9259
  %9288 = load ptr, ptr %8, align 8, !tbaa !5
  %9289 = getelementptr inbounds %struct.MImage, ptr %9288, i32 0, i32 3
  %9290 = load i32, ptr %19, align 4, !tbaa !16
  %9291 = sext i32 %9290 to i64
  %9292 = getelementptr inbounds [4 x ptr], ptr %9289, i64 0, i64 %9291
  %9293 = load ptr, ptr %9292, align 8, !tbaa !5
  %9294 = load i32, ptr %22, align 4, !tbaa !16
  %9295 = sext i32 %9294 to i64
  %9296 = getelementptr inbounds ptr, ptr %9293, i64 %9295
  %9297 = load ptr, ptr %9296, align 8, !tbaa !5
  %9298 = load i32, ptr %23, align 4, !tbaa !16
  %9299 = sext i32 %9298 to i64
  %9300 = getelementptr inbounds i8, ptr %9297, i64 %9299
  store i8 0, ptr %9300, align 1, !tbaa !20
  br label %9335

9301:                                             ; preds = %9259
  %9302 = load i32, ptr %138, align 4, !tbaa !16
  %9303 = icmp sgt i32 %9302, 255
  br i1 %9303, label %9304, label %9318

9304:                                             ; preds = %9301
  %9305 = load ptr, ptr %8, align 8, !tbaa !5
  %9306 = getelementptr inbounds %struct.MImage, ptr %9305, i32 0, i32 3
  %9307 = load i32, ptr %19, align 4, !tbaa !16
  %9308 = sext i32 %9307 to i64
  %9309 = getelementptr inbounds [4 x ptr], ptr %9306, i64 0, i64 %9308
  %9310 = load ptr, ptr %9309, align 8, !tbaa !5
  %9311 = load i32, ptr %22, align 4, !tbaa !16
  %9312 = sext i32 %9311 to i64
  %9313 = getelementptr inbounds ptr, ptr %9310, i64 %9312
  %9314 = load ptr, ptr %9313, align 8, !tbaa !5
  %9315 = load i32, ptr %23, align 4, !tbaa !16
  %9316 = sext i32 %9315 to i64
  %9317 = getelementptr inbounds i8, ptr %9314, i64 %9316
  store i8 -1, ptr %9317, align 1, !tbaa !20
  br label %9334

9318:                                             ; preds = %9301
  %9319 = load i32, ptr %138, align 4, !tbaa !16
  %9320 = trunc i32 %9319 to i8
  %9321 = load ptr, ptr %8, align 8, !tbaa !5
  %9322 = getelementptr inbounds %struct.MImage, ptr %9321, i32 0, i32 3
  %9323 = load i32, ptr %19, align 4, !tbaa !16
  %9324 = sext i32 %9323 to i64
  %9325 = getelementptr inbounds [4 x ptr], ptr %9322, i64 0, i64 %9324
  %9326 = load ptr, ptr %9325, align 8, !tbaa !5
  %9327 = load i32, ptr %22, align 4, !tbaa !16
  %9328 = sext i32 %9327 to i64
  %9329 = getelementptr inbounds ptr, ptr %9326, i64 %9328
  %9330 = load ptr, ptr %9329, align 8, !tbaa !5
  %9331 = load i32, ptr %23, align 4, !tbaa !16
  %9332 = sext i32 %9331 to i64
  %9333 = getelementptr inbounds i8, ptr %9330, i64 %9332
  store i8 %9320, ptr %9333, align 1, !tbaa !20
  br label %9334

9334:                                             ; preds = %9318, %9304
  br label %9335

9335:                                             ; preds = %9334, %9287
  call void @llvm.lifetime.end.p0(i64 4, ptr %138) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %139) #3
  %9336 = load ptr, ptr %20, align 8, !tbaa !5
  %9337 = load i32, ptr %22, align 4, !tbaa !16
  %9338 = sext i32 %9337 to i64
  %9339 = getelementptr inbounds ptr, ptr %9336, i64 %9338
  %9340 = load ptr, ptr %9339, align 8, !tbaa !5
  %9341 = load i32, ptr %23, align 4, !tbaa !16
  %9342 = sext i32 %9341 to i64
  %9343 = getelementptr inbounds i8, ptr %9340, i64 %9342
  %9344 = load i8, ptr %9343, align 1, !tbaa !20
  %9345 = zext i8 %9344 to i64
  %9346 = getelementptr inbounds [256 x i32], ptr %16, i64 0, i64 %9345
  %9347 = load i32, ptr %9346, align 4, !tbaa !16
  %9348 = load ptr, ptr %21, align 8, !tbaa !5
  %9349 = load i32, ptr %22, align 4, !tbaa !16
  %9350 = sext i32 %9349 to i64
  %9351 = getelementptr inbounds ptr, ptr %9348, i64 %9350
  %9352 = load ptr, ptr %9351, align 8, !tbaa !5
  %9353 = load i32, ptr %23, align 4, !tbaa !16
  %9354 = sext i32 %9353 to i64
  %9355 = getelementptr inbounds i8, ptr %9352, i64 %9354
  %9356 = load i8, ptr %9355, align 1, !tbaa !20
  %9357 = zext i8 %9356 to i64
  %9358 = getelementptr inbounds [256 x i32], ptr %17, i64 0, i64 %9357
  %9359 = load i32, ptr %9358, align 4, !tbaa !16
  %9360 = add nsw i32 %9347, %9359
  store i32 %9360, ptr %139, align 4, !tbaa !16
  %9361 = load i32, ptr %139, align 4, !tbaa !16
  %9362 = icmp slt i32 %9361, 0
  br i1 %9362, label %9363, label %9377

9363:                                             ; preds = %9335
  %9364 = load ptr, ptr %8, align 8, !tbaa !5
  %9365 = getelementptr inbounds %struct.MImage, ptr %9364, i32 0, i32 3
  %9366 = load i32, ptr %19, align 4, !tbaa !16
  %9367 = sext i32 %9366 to i64
  %9368 = getelementptr inbounds [4 x ptr], ptr %9365, i64 0, i64 %9367
  %9369 = load ptr, ptr %9368, align 8, !tbaa !5
  %9370 = load i32, ptr %22, align 4, !tbaa !16
  %9371 = sext i32 %9370 to i64
  %9372 = getelementptr inbounds ptr, ptr %9369, i64 %9371
  %9373 = load ptr, ptr %9372, align 8, !tbaa !5
  %9374 = load i32, ptr %23, align 4, !tbaa !16
  %9375 = sext i32 %9374 to i64
  %9376 = getelementptr inbounds i8, ptr %9373, i64 %9375
  store i8 0, ptr %9376, align 1, !tbaa !20
  br label %9411

9377:                                             ; preds = %9335
  %9378 = load i32, ptr %139, align 4, !tbaa !16
  %9379 = icmp sgt i32 %9378, 255
  br i1 %9379, label %9380, label %9394

9380:                                             ; preds = %9377
  %9381 = load ptr, ptr %8, align 8, !tbaa !5
  %9382 = getelementptr inbounds %struct.MImage, ptr %9381, i32 0, i32 3
  %9383 = load i32, ptr %19, align 4, !tbaa !16
  %9384 = sext i32 %9383 to i64
  %9385 = getelementptr inbounds [4 x ptr], ptr %9382, i64 0, i64 %9384
  %9386 = load ptr, ptr %9385, align 8, !tbaa !5
  %9387 = load i32, ptr %22, align 4, !tbaa !16
  %9388 = sext i32 %9387 to i64
  %9389 = getelementptr inbounds ptr, ptr %9386, i64 %9388
  %9390 = load ptr, ptr %9389, align 8, !tbaa !5
  %9391 = load i32, ptr %23, align 4, !tbaa !16
  %9392 = sext i32 %9391 to i64
  %9393 = getelementptr inbounds i8, ptr %9390, i64 %9392
  store i8 -1, ptr %9393, align 1, !tbaa !20
  br label %9410

9394:                                             ; preds = %9377
  %9395 = load i32, ptr %139, align 4, !tbaa !16
  %9396 = trunc i32 %9395 to i8
  %9397 = load ptr, ptr %8, align 8, !tbaa !5
  %9398 = getelementptr inbounds %struct.MImage, ptr %9397, i32 0, i32 3
  %9399 = load i32, ptr %19, align 4, !tbaa !16
  %9400 = sext i32 %9399 to i64
  %9401 = getelementptr inbounds [4 x ptr], ptr %9398, i64 0, i64 %9400
  %9402 = load ptr, ptr %9401, align 8, !tbaa !5
  %9403 = load i32, ptr %22, align 4, !tbaa !16
  %9404 = sext i32 %9403 to i64
  %9405 = getelementptr inbounds ptr, ptr %9402, i64 %9404
  %9406 = load ptr, ptr %9405, align 8, !tbaa !5
  %9407 = load i32, ptr %23, align 4, !tbaa !16
  %9408 = sext i32 %9407 to i64
  %9409 = getelementptr inbounds i8, ptr %9406, i64 %9408
  store i8 %9396, ptr %9409, align 1, !tbaa !20
  br label %9410

9410:                                             ; preds = %9394, %9380
  br label %9411

9411:                                             ; preds = %9410, %9363
  call void @llvm.lifetime.end.p0(i64 4, ptr %139) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %140) #3
  %9412 = load ptr, ptr %20, align 8, !tbaa !5
  %9413 = load i32, ptr %22, align 4, !tbaa !16
  %9414 = sext i32 %9413 to i64
  %9415 = getelementptr inbounds ptr, ptr %9412, i64 %9414
  %9416 = load ptr, ptr %9415, align 8, !tbaa !5
  %9417 = load i32, ptr %23, align 4, !tbaa !16
  %9418 = sext i32 %9417 to i64
  %9419 = getelementptr inbounds i8, ptr %9416, i64 %9418
  %9420 = load i8, ptr %9419, align 1, !tbaa !20
  %9421 = zext i8 %9420 to i64
  %9422 = getelementptr inbounds [256 x i32], ptr %16, i64 0, i64 %9421
  %9423 = load i32, ptr %9422, align 4, !tbaa !16
  %9424 = load ptr, ptr %21, align 8, !tbaa !5
  %9425 = load i32, ptr %22, align 4, !tbaa !16
  %9426 = sext i32 %9425 to i64
  %9427 = getelementptr inbounds ptr, ptr %9424, i64 %9426
  %9428 = load ptr, ptr %9427, align 8, !tbaa !5
  %9429 = load i32, ptr %23, align 4, !tbaa !16
  %9430 = sext i32 %9429 to i64
  %9431 = getelementptr inbounds i8, ptr %9428, i64 %9430
  %9432 = load i8, ptr %9431, align 1, !tbaa !20
  %9433 = zext i8 %9432 to i64
  %9434 = getelementptr inbounds [256 x i32], ptr %17, i64 0, i64 %9433
  %9435 = load i32, ptr %9434, align 4, !tbaa !16
  %9436 = add nsw i32 %9423, %9435
  store i32 %9436, ptr %140, align 4, !tbaa !16
  %9437 = load i32, ptr %140, align 4, !tbaa !16
  %9438 = icmp slt i32 %9437, 0
  br i1 %9438, label %9439, label %9453

9439:                                             ; preds = %9411
  %9440 = load ptr, ptr %8, align 8, !tbaa !5
  %9441 = getelementptr inbounds %struct.MImage, ptr %9440, i32 0, i32 3
  %9442 = load i32, ptr %19, align 4, !tbaa !16
  %9443 = sext i32 %9442 to i64
  %9444 = getelementptr inbounds [4 x ptr], ptr %9441, i64 0, i64 %9443
  %9445 = load ptr, ptr %9444, align 8, !tbaa !5
  %9446 = load i32, ptr %22, align 4, !tbaa !16
  %9447 = sext i32 %9446 to i64
  %9448 = getelementptr inbounds ptr, ptr %9445, i64 %9447
  %9449 = load ptr, ptr %9448, align 8, !tbaa !5
  %9450 = load i32, ptr %23, align 4, !tbaa !16
  %9451 = sext i32 %9450 to i64
  %9452 = getelementptr inbounds i8, ptr %9449, i64 %9451
  store i8 0, ptr %9452, align 1, !tbaa !20
  br label %9487

9453:                                             ; preds = %9411
  %9454 = load i32, ptr %140, align 4, !tbaa !16
  %9455 = icmp sgt i32 %9454, 255
  br i1 %9455, label %9456, label %9470

9456:                                             ; preds = %9453
  %9457 = load ptr, ptr %8, align 8, !tbaa !5
  %9458 = getelementptr inbounds %struct.MImage, ptr %9457, i32 0, i32 3
  %9459 = load i32, ptr %19, align 4, !tbaa !16
  %9460 = sext i32 %9459 to i64
  %9461 = getelementptr inbounds [4 x ptr], ptr %9458, i64 0, i64 %9460
  %9462 = load ptr, ptr %9461, align 8, !tbaa !5
  %9463 = load i32, ptr %22, align 4, !tbaa !16
  %9464 = sext i32 %9463 to i64
  %9465 = getelementptr inbounds ptr, ptr %9462, i64 %9464
  %9466 = load ptr, ptr %9465, align 8, !tbaa !5
  %9467 = load i32, ptr %23, align 4, !tbaa !16
  %9468 = sext i32 %9467 to i64
  %9469 = getelementptr inbounds i8, ptr %9466, i64 %9468
  store i8 -1, ptr %9469, align 1, !tbaa !20
  br label %9486

9470:                                             ; preds = %9453
  %9471 = load i32, ptr %140, align 4, !tbaa !16
  %9472 = trunc i32 %9471 to i8
  %9473 = load ptr, ptr %8, align 8, !tbaa !5
  %9474 = getelementptr inbounds %struct.MImage, ptr %9473, i32 0, i32 3
  %9475 = load i32, ptr %19, align 4, !tbaa !16
  %9476 = sext i32 %9475 to i64
  %9477 = getelementptr inbounds [4 x ptr], ptr %9474, i64 0, i64 %9476
  %9478 = load ptr, ptr %9477, align 8, !tbaa !5
  %9479 = load i32, ptr %22, align 4, !tbaa !16
  %9480 = sext i32 %9479 to i64
  %9481 = getelementptr inbounds ptr, ptr %9478, i64 %9480
  %9482 = load ptr, ptr %9481, align 8, !tbaa !5
  %9483 = load i32, ptr %23, align 4, !tbaa !16
  %9484 = sext i32 %9483 to i64
  %9485 = getelementptr inbounds i8, ptr %9482, i64 %9484
  store i8 %9472, ptr %9485, align 1, !tbaa !20
  br label %9486

9486:                                             ; preds = %9470, %9456
  br label %9487

9487:                                             ; preds = %9486, %9439
  call void @llvm.lifetime.end.p0(i64 4, ptr %140) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %141) #3
  %9488 = load ptr, ptr %20, align 8, !tbaa !5
  %9489 = load i32, ptr %22, align 4, !tbaa !16
  %9490 = sext i32 %9489 to i64
  %9491 = getelementptr inbounds ptr, ptr %9488, i64 %9490
  %9492 = load ptr, ptr %9491, align 8, !tbaa !5
  %9493 = load i32, ptr %23, align 4, !tbaa !16
  %9494 = sext i32 %9493 to i64
  %9495 = getelementptr inbounds i8, ptr %9492, i64 %9494
  %9496 = load i8, ptr %9495, align 1, !tbaa !20
  %9497 = zext i8 %9496 to i64
  %9498 = getelementptr inbounds [256 x i32], ptr %16, i64 0, i64 %9497
  %9499 = load i32, ptr %9498, align 4, !tbaa !16
  %9500 = load ptr, ptr %21, align 8, !tbaa !5
  %9501 = load i32, ptr %22, align 4, !tbaa !16
  %9502 = sext i32 %9501 to i64
  %9503 = getelementptr inbounds ptr, ptr %9500, i64 %9502
  %9504 = load ptr, ptr %9503, align 8, !tbaa !5
  %9505 = load i32, ptr %23, align 4, !tbaa !16
  %9506 = sext i32 %9505 to i64
  %9507 = getelementptr inbounds i8, ptr %9504, i64 %9506
  %9508 = load i8, ptr %9507, align 1, !tbaa !20
  %9509 = zext i8 %9508 to i64
  %9510 = getelementptr inbounds [256 x i32], ptr %17, i64 0, i64 %9509
  %9511 = load i32, ptr %9510, align 4, !tbaa !16
  %9512 = add nsw i32 %9499, %9511
  store i32 %9512, ptr %141, align 4, !tbaa !16
  %9513 = load i32, ptr %141, align 4, !tbaa !16
  %9514 = icmp slt i32 %9513, 0
  br i1 %9514, label %9515, label %9529

9515:                                             ; preds = %9487
  %9516 = load ptr, ptr %8, align 8, !tbaa !5
  %9517 = getelementptr inbounds %struct.MImage, ptr %9516, i32 0, i32 3
  %9518 = load i32, ptr %19, align 4, !tbaa !16
  %9519 = sext i32 %9518 to i64
  %9520 = getelementptr inbounds [4 x ptr], ptr %9517, i64 0, i64 %9519
  %9521 = load ptr, ptr %9520, align 8, !tbaa !5
  %9522 = load i32, ptr %22, align 4, !tbaa !16
  %9523 = sext i32 %9522 to i64
  %9524 = getelementptr inbounds ptr, ptr %9521, i64 %9523
  %9525 = load ptr, ptr %9524, align 8, !tbaa !5
  %9526 = load i32, ptr %23, align 4, !tbaa !16
  %9527 = sext i32 %9526 to i64
  %9528 = getelementptr inbounds i8, ptr %9525, i64 %9527
  store i8 0, ptr %9528, align 1, !tbaa !20
  br label %9563

9529:                                             ; preds = %9487
  %9530 = load i32, ptr %141, align 4, !tbaa !16
  %9531 = icmp sgt i32 %9530, 255
  br i1 %9531, label %9532, label %9546

9532:                                             ; preds = %9529
  %9533 = load ptr, ptr %8, align 8, !tbaa !5
  %9534 = getelementptr inbounds %struct.MImage, ptr %9533, i32 0, i32 3
  %9535 = load i32, ptr %19, align 4, !tbaa !16
  %9536 = sext i32 %9535 to i64
  %9537 = getelementptr inbounds [4 x ptr], ptr %9534, i64 0, i64 %9536
  %9538 = load ptr, ptr %9537, align 8, !tbaa !5
  %9539 = load i32, ptr %22, align 4, !tbaa !16
  %9540 = sext i32 %9539 to i64
  %9541 = getelementptr inbounds ptr, ptr %9538, i64 %9540
  %9542 = load ptr, ptr %9541, align 8, !tbaa !5
  %9543 = load i32, ptr %23, align 4, !tbaa !16
  %9544 = sext i32 %9543 to i64
  %9545 = getelementptr inbounds i8, ptr %9542, i64 %9544
  store i8 -1, ptr %9545, align 1, !tbaa !20
  br label %9562

9546:                                             ; preds = %9529
  %9547 = load i32, ptr %141, align 4, !tbaa !16
  %9548 = trunc i32 %9547 to i8
  %9549 = load ptr, ptr %8, align 8, !tbaa !5
  %9550 = getelementptr inbounds %struct.MImage, ptr %9549, i32 0, i32 3
  %9551 = load i32, ptr %19, align 4, !tbaa !16
  %9552 = sext i32 %9551 to i64
  %9553 = getelementptr inbounds [4 x ptr], ptr %9550, i64 0, i64 %9552
  %9554 = load ptr, ptr %9553, align 8, !tbaa !5
  %9555 = load i32, ptr %22, align 4, !tbaa !16
  %9556 = sext i32 %9555 to i64
  %9557 = getelementptr inbounds ptr, ptr %9554, i64 %9556
  %9558 = load ptr, ptr %9557, align 8, !tbaa !5
  %9559 = load i32, ptr %23, align 4, !tbaa !16
  %9560 = sext i32 %9559 to i64
  %9561 = getelementptr inbounds i8, ptr %9558, i64 %9560
  store i8 %9548, ptr %9561, align 1, !tbaa !20
  br label %9562

9562:                                             ; preds = %9546, %9532
  br label %9563

9563:                                             ; preds = %9562, %9515
  call void @llvm.lifetime.end.p0(i64 4, ptr %141) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %142) #3
  %9564 = load ptr, ptr %20, align 8, !tbaa !5
  %9565 = load i32, ptr %22, align 4, !tbaa !16
  %9566 = sext i32 %9565 to i64
  %9567 = getelementptr inbounds ptr, ptr %9564, i64 %9566
  %9568 = load ptr, ptr %9567, align 8, !tbaa !5
  %9569 = load i32, ptr %23, align 4, !tbaa !16
  %9570 = sext i32 %9569 to i64
  %9571 = getelementptr inbounds i8, ptr %9568, i64 %9570
  %9572 = load i8, ptr %9571, align 1, !tbaa !20
  %9573 = zext i8 %9572 to i64
  %9574 = getelementptr inbounds [256 x i32], ptr %16, i64 0, i64 %9573
  %9575 = load i32, ptr %9574, align 4, !tbaa !16
  %9576 = load ptr, ptr %21, align 8, !tbaa !5
  %9577 = load i32, ptr %22, align 4, !tbaa !16
  %9578 = sext i32 %9577 to i64
  %9579 = getelementptr inbounds ptr, ptr %9576, i64 %9578
  %9580 = load ptr, ptr %9579, align 8, !tbaa !5
  %9581 = load i32, ptr %23, align 4, !tbaa !16
  %9582 = sext i32 %9581 to i64
  %9583 = getelementptr inbounds i8, ptr %9580, i64 %9582
  %9584 = load i8, ptr %9583, align 1, !tbaa !20
  %9585 = zext i8 %9584 to i64
  %9586 = getelementptr inbounds [256 x i32], ptr %17, i64 0, i64 %9585
  %9587 = load i32, ptr %9586, align 4, !tbaa !16
  %9588 = add nsw i32 %9575, %9587
  store i32 %9588, ptr %142, align 4, !tbaa !16
  %9589 = load i32, ptr %142, align 4, !tbaa !16
  %9590 = icmp slt i32 %9589, 0
  br i1 %9590, label %9591, label %9605

9591:                                             ; preds = %9563
  %9592 = load ptr, ptr %8, align 8, !tbaa !5
  %9593 = getelementptr inbounds %struct.MImage, ptr %9592, i32 0, i32 3
  %9594 = load i32, ptr %19, align 4, !tbaa !16
  %9595 = sext i32 %9594 to i64
  %9596 = getelementptr inbounds [4 x ptr], ptr %9593, i64 0, i64 %9595
  %9597 = load ptr, ptr %9596, align 8, !tbaa !5
  %9598 = load i32, ptr %22, align 4, !tbaa !16
  %9599 = sext i32 %9598 to i64
  %9600 = getelementptr inbounds ptr, ptr %9597, i64 %9599
  %9601 = load ptr, ptr %9600, align 8, !tbaa !5
  %9602 = load i32, ptr %23, align 4, !tbaa !16
  %9603 = sext i32 %9602 to i64
  %9604 = getelementptr inbounds i8, ptr %9601, i64 %9603
  store i8 0, ptr %9604, align 1, !tbaa !20
  br label %9639

9605:                                             ; preds = %9563
  %9606 = load i32, ptr %142, align 4, !tbaa !16
  %9607 = icmp sgt i32 %9606, 255
  br i1 %9607, label %9608, label %9622

9608:                                             ; preds = %9605
  %9609 = load ptr, ptr %8, align 8, !tbaa !5
  %9610 = getelementptr inbounds %struct.MImage, ptr %9609, i32 0, i32 3
  %9611 = load i32, ptr %19, align 4, !tbaa !16
  %9612 = sext i32 %9611 to i64
  %9613 = getelementptr inbounds [4 x ptr], ptr %9610, i64 0, i64 %9612
  %9614 = load ptr, ptr %9613, align 8, !tbaa !5
  %9615 = load i32, ptr %22, align 4, !tbaa !16
  %9616 = sext i32 %9615 to i64
  %9617 = getelementptr inbounds ptr, ptr %9614, i64 %9616
  %9618 = load ptr, ptr %9617, align 8, !tbaa !5
  %9619 = load i32, ptr %23, align 4, !tbaa !16
  %9620 = sext i32 %9619 to i64
  %9621 = getelementptr inbounds i8, ptr %9618, i64 %9620
  store i8 -1, ptr %9621, align 1, !tbaa !20
  br label %9638

9622:                                             ; preds = %9605
  %9623 = load i32, ptr %142, align 4, !tbaa !16
  %9624 = trunc i32 %9623 to i8
  %9625 = load ptr, ptr %8, align 8, !tbaa !5
  %9626 = getelementptr inbounds %struct.MImage, ptr %9625, i32 0, i32 3
  %9627 = load i32, ptr %19, align 4, !tbaa !16
  %9628 = sext i32 %9627 to i64
  %9629 = getelementptr inbounds [4 x ptr], ptr %9626, i64 0, i64 %9628
  %9630 = load ptr, ptr %9629, align 8, !tbaa !5
  %9631 = load i32, ptr %22, align 4, !tbaa !16
  %9632 = sext i32 %9631 to i64
  %9633 = getelementptr inbounds ptr, ptr %9630, i64 %9632
  %9634 = load ptr, ptr %9633, align 8, !tbaa !5
  %9635 = load i32, ptr %23, align 4, !tbaa !16
  %9636 = sext i32 %9635 to i64
  %9637 = getelementptr inbounds i8, ptr %9634, i64 %9636
  store i8 %9624, ptr %9637, align 1, !tbaa !20
  br label %9638

9638:                                             ; preds = %9622, %9608
  br label %9639

9639:                                             ; preds = %9638, %9591
  call void @llvm.lifetime.end.p0(i64 4, ptr %142) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %143) #3
  %9640 = load ptr, ptr %20, align 8, !tbaa !5
  %9641 = load i32, ptr %22, align 4, !tbaa !16
  %9642 = sext i32 %9641 to i64
  %9643 = getelementptr inbounds ptr, ptr %9640, i64 %9642
  %9644 = load ptr, ptr %9643, align 8, !tbaa !5
  %9645 = load i32, ptr %23, align 4, !tbaa !16
  %9646 = sext i32 %9645 to i64
  %9647 = getelementptr inbounds i8, ptr %9644, i64 %9646
  %9648 = load i8, ptr %9647, align 1, !tbaa !20
  %9649 = zext i8 %9648 to i64
  %9650 = getelementptr inbounds [256 x i32], ptr %16, i64 0, i64 %9649
  %9651 = load i32, ptr %9650, align 4, !tbaa !16
  %9652 = load ptr, ptr %21, align 8, !tbaa !5
  %9653 = load i32, ptr %22, align 4, !tbaa !16
  %9654 = sext i32 %9653 to i64
  %9655 = getelementptr inbounds ptr, ptr %9652, i64 %9654
  %9656 = load ptr, ptr %9655, align 8, !tbaa !5
  %9657 = load i32, ptr %23, align 4, !tbaa !16
  %9658 = sext i32 %9657 to i64
  %9659 = getelementptr inbounds i8, ptr %9656, i64 %9658
  %9660 = load i8, ptr %9659, align 1, !tbaa !20
  %9661 = zext i8 %9660 to i64
  %9662 = getelementptr inbounds [256 x i32], ptr %17, i64 0, i64 %9661
  %9663 = load i32, ptr %9662, align 4, !tbaa !16
  %9664 = add nsw i32 %9651, %9663
  store i32 %9664, ptr %143, align 4, !tbaa !16
  %9665 = load i32, ptr %143, align 4, !tbaa !16
  %9666 = icmp slt i32 %9665, 0
  br i1 %9666, label %9667, label %9681

9667:                                             ; preds = %9639
  %9668 = load ptr, ptr %8, align 8, !tbaa !5
  %9669 = getelementptr inbounds %struct.MImage, ptr %9668, i32 0, i32 3
  %9670 = load i32, ptr %19, align 4, !tbaa !16
  %9671 = sext i32 %9670 to i64
  %9672 = getelementptr inbounds [4 x ptr], ptr %9669, i64 0, i64 %9671
  %9673 = load ptr, ptr %9672, align 8, !tbaa !5
  %9674 = load i32, ptr %22, align 4, !tbaa !16
  %9675 = sext i32 %9674 to i64
  %9676 = getelementptr inbounds ptr, ptr %9673, i64 %9675
  %9677 = load ptr, ptr %9676, align 8, !tbaa !5
  %9678 = load i32, ptr %23, align 4, !tbaa !16
  %9679 = sext i32 %9678 to i64
  %9680 = getelementptr inbounds i8, ptr %9677, i64 %9679
  store i8 0, ptr %9680, align 1, !tbaa !20
  br label %9715

9681:                                             ; preds = %9639
  %9682 = load i32, ptr %143, align 4, !tbaa !16
  %9683 = icmp sgt i32 %9682, 255
  br i1 %9683, label %9684, label %9698

9684:                                             ; preds = %9681
  %9685 = load ptr, ptr %8, align 8, !tbaa !5
  %9686 = getelementptr inbounds %struct.MImage, ptr %9685, i32 0, i32 3
  %9687 = load i32, ptr %19, align 4, !tbaa !16
  %9688 = sext i32 %9687 to i64
  %9689 = getelementptr inbounds [4 x ptr], ptr %9686, i64 0, i64 %9688
  %9690 = load ptr, ptr %9689, align 8, !tbaa !5
  %9691 = load i32, ptr %22, align 4, !tbaa !16
  %9692 = sext i32 %9691 to i64
  %9693 = getelementptr inbounds ptr, ptr %9690, i64 %9692
  %9694 = load ptr, ptr %9693, align 8, !tbaa !5
  %9695 = load i32, ptr %23, align 4, !tbaa !16
  %9696 = sext i32 %9695 to i64
  %9697 = getelementptr inbounds i8, ptr %9694, i64 %9696
  store i8 -1, ptr %9697, align 1, !tbaa !20
  br label %9714

9698:                                             ; preds = %9681
  %9699 = load i32, ptr %143, align 4, !tbaa !16
  %9700 = trunc i32 %9699 to i8
  %9701 = load ptr, ptr %8, align 8, !tbaa !5
  %9702 = getelementptr inbounds %struct.MImage, ptr %9701, i32 0, i32 3
  %9703 = load i32, ptr %19, align 4, !tbaa !16
  %9704 = sext i32 %9703 to i64
  %9705 = getelementptr inbounds [4 x ptr], ptr %9702, i64 0, i64 %9704
  %9706 = load ptr, ptr %9705, align 8, !tbaa !5
  %9707 = load i32, ptr %22, align 4, !tbaa !16
  %9708 = sext i32 %9707 to i64
  %9709 = getelementptr inbounds ptr, ptr %9706, i64 %9708
  %9710 = load ptr, ptr %9709, align 8, !tbaa !5
  %9711 = load i32, ptr %23, align 4, !tbaa !16
  %9712 = sext i32 %9711 to i64
  %9713 = getelementptr inbounds i8, ptr %9710, i64 %9712
  store i8 %9700, ptr %9713, align 1, !tbaa !20
  br label %9714

9714:                                             ; preds = %9698, %9684
  br label %9715

9715:                                             ; preds = %9714, %9667
  call void @llvm.lifetime.end.p0(i64 4, ptr %143) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %144) #3
  %9716 = load ptr, ptr %20, align 8, !tbaa !5
  %9717 = load i32, ptr %22, align 4, !tbaa !16
  %9718 = sext i32 %9717 to i64
  %9719 = getelementptr inbounds ptr, ptr %9716, i64 %9718
  %9720 = load ptr, ptr %9719, align 8, !tbaa !5
  %9721 = load i32, ptr %23, align 4, !tbaa !16
  %9722 = sext i32 %9721 to i64
  %9723 = getelementptr inbounds i8, ptr %9720, i64 %9722
  %9724 = load i8, ptr %9723, align 1, !tbaa !20
  %9725 = zext i8 %9724 to i64
  %9726 = getelementptr inbounds [256 x i32], ptr %16, i64 0, i64 %9725
  %9727 = load i32, ptr %9726, align 4, !tbaa !16
  %9728 = load ptr, ptr %21, align 8, !tbaa !5
  %9729 = load i32, ptr %22, align 4, !tbaa !16
  %9730 = sext i32 %9729 to i64
  %9731 = getelementptr inbounds ptr, ptr %9728, i64 %9730
  %9732 = load ptr, ptr %9731, align 8, !tbaa !5
  %9733 = load i32, ptr %23, align 4, !tbaa !16
  %9734 = sext i32 %9733 to i64
  %9735 = getelementptr inbounds i8, ptr %9732, i64 %9734
  %9736 = load i8, ptr %9735, align 1, !tbaa !20
  %9737 = zext i8 %9736 to i64
  %9738 = getelementptr inbounds [256 x i32], ptr %17, i64 0, i64 %9737
  %9739 = load i32, ptr %9738, align 4, !tbaa !16
  %9740 = add nsw i32 %9727, %9739
  store i32 %9740, ptr %144, align 4, !tbaa !16
  %9741 = load i32, ptr %144, align 4, !tbaa !16
  %9742 = icmp slt i32 %9741, 0
  br i1 %9742, label %9743, label %9757

9743:                                             ; preds = %9715
  %9744 = load ptr, ptr %8, align 8, !tbaa !5
  %9745 = getelementptr inbounds %struct.MImage, ptr %9744, i32 0, i32 3
  %9746 = load i32, ptr %19, align 4, !tbaa !16
  %9747 = sext i32 %9746 to i64
  %9748 = getelementptr inbounds [4 x ptr], ptr %9745, i64 0, i64 %9747
  %9749 = load ptr, ptr %9748, align 8, !tbaa !5
  %9750 = load i32, ptr %22, align 4, !tbaa !16
  %9751 = sext i32 %9750 to i64
  %9752 = getelementptr inbounds ptr, ptr %9749, i64 %9751
  %9753 = load ptr, ptr %9752, align 8, !tbaa !5
  %9754 = load i32, ptr %23, align 4, !tbaa !16
  %9755 = sext i32 %9754 to i64
  %9756 = getelementptr inbounds i8, ptr %9753, i64 %9755
  store i8 0, ptr %9756, align 1, !tbaa !20
  br label %9791

9757:                                             ; preds = %9715
  %9758 = load i32, ptr %144, align 4, !tbaa !16
  %9759 = icmp sgt i32 %9758, 255
  br i1 %9759, label %9760, label %9774

9760:                                             ; preds = %9757
  %9761 = load ptr, ptr %8, align 8, !tbaa !5
  %9762 = getelementptr inbounds %struct.MImage, ptr %9761, i32 0, i32 3
  %9763 = load i32, ptr %19, align 4, !tbaa !16
  %9764 = sext i32 %9763 to i64
  %9765 = getelementptr inbounds [4 x ptr], ptr %9762, i64 0, i64 %9764
  %9766 = load ptr, ptr %9765, align 8, !tbaa !5
  %9767 = load i32, ptr %22, align 4, !tbaa !16
  %9768 = sext i32 %9767 to i64
  %9769 = getelementptr inbounds ptr, ptr %9766, i64 %9768
  %9770 = load ptr, ptr %9769, align 8, !tbaa !5
  %9771 = load i32, ptr %23, align 4, !tbaa !16
  %9772 = sext i32 %9771 to i64
  %9773 = getelementptr inbounds i8, ptr %9770, i64 %9772
  store i8 -1, ptr %9773, align 1, !tbaa !20
  br label %9790

9774:                                             ; preds = %9757
  %9775 = load i32, ptr %144, align 4, !tbaa !16
  %9776 = trunc i32 %9775 to i8
  %9777 = load ptr, ptr %8, align 8, !tbaa !5
  %9778 = getelementptr inbounds %struct.MImage, ptr %9777, i32 0, i32 3
  %9779 = load i32, ptr %19, align 4, !tbaa !16
  %9780 = sext i32 %9779 to i64
  %9781 = getelementptr inbounds [4 x ptr], ptr %9778, i64 0, i64 %9780
  %9782 = load ptr, ptr %9781, align 8, !tbaa !5
  %9783 = load i32, ptr %22, align 4, !tbaa !16
  %9784 = sext i32 %9783 to i64
  %9785 = getelementptr inbounds ptr, ptr %9782, i64 %9784
  %9786 = load ptr, ptr %9785, align 8, !tbaa !5
  %9787 = load i32, ptr %23, align 4, !tbaa !16
  %9788 = sext i32 %9787 to i64
  %9789 = getelementptr inbounds i8, ptr %9786, i64 %9788
  store i8 %9776, ptr %9789, align 1, !tbaa !20
  br label %9790

9790:                                             ; preds = %9774, %9760
  br label %9791

9791:                                             ; preds = %9790, %9743
  call void @llvm.lifetime.end.p0(i64 4, ptr %144) #3
  br label %10941

9792:                                             ; preds = %8720
  %9793 = load ptr, ptr %8, align 8, !tbaa !5
  %9794 = getelementptr inbounds %struct.MImage, ptr %9793, i32 0, i32 2
  %9795 = load i32, ptr %9794, align 8, !tbaa !15
  %9796 = load i32, ptr %23, align 4, !tbaa !16
  %9797 = sub nsw i32 %9795, %9796
  %9798 = icmp eq i32 %9797, 15
  br i1 %9798, label %9799, label %10940

9799:                                             ; preds = %9792
  call void @llvm.lifetime.start.p0(i64 4, ptr %145) #3
  %9800 = load ptr, ptr %20, align 8, !tbaa !5
  %9801 = load i32, ptr %22, align 4, !tbaa !16
  %9802 = sext i32 %9801 to i64
  %9803 = getelementptr inbounds ptr, ptr %9800, i64 %9802
  %9804 = load ptr, ptr %9803, align 8, !tbaa !5
  %9805 = load i32, ptr %23, align 4, !tbaa !16
  %9806 = sext i32 %9805 to i64
  %9807 = getelementptr inbounds i8, ptr %9804, i64 %9806
  %9808 = load i8, ptr %9807, align 1, !tbaa !20
  %9809 = zext i8 %9808 to i64
  %9810 = getelementptr inbounds [256 x i32], ptr %16, i64 0, i64 %9809
  %9811 = load i32, ptr %9810, align 4, !tbaa !16
  %9812 = load ptr, ptr %21, align 8, !tbaa !5
  %9813 = load i32, ptr %22, align 4, !tbaa !16
  %9814 = sext i32 %9813 to i64
  %9815 = getelementptr inbounds ptr, ptr %9812, i64 %9814
  %9816 = load ptr, ptr %9815, align 8, !tbaa !5
  %9817 = load i32, ptr %23, align 4, !tbaa !16
  %9818 = sext i32 %9817 to i64
  %9819 = getelementptr inbounds i8, ptr %9816, i64 %9818
  %9820 = load i8, ptr %9819, align 1, !tbaa !20
  %9821 = zext i8 %9820 to i64
  %9822 = getelementptr inbounds [256 x i32], ptr %17, i64 0, i64 %9821
  %9823 = load i32, ptr %9822, align 4, !tbaa !16
  %9824 = add nsw i32 %9811, %9823
  store i32 %9824, ptr %145, align 4, !tbaa !16
  %9825 = load i32, ptr %145, align 4, !tbaa !16
  %9826 = icmp slt i32 %9825, 0
  br i1 %9826, label %9827, label %9841

9827:                                             ; preds = %9799
  %9828 = load ptr, ptr %8, align 8, !tbaa !5
  %9829 = getelementptr inbounds %struct.MImage, ptr %9828, i32 0, i32 3
  %9830 = load i32, ptr %19, align 4, !tbaa !16
  %9831 = sext i32 %9830 to i64
  %9832 = getelementptr inbounds [4 x ptr], ptr %9829, i64 0, i64 %9831
  %9833 = load ptr, ptr %9832, align 8, !tbaa !5
  %9834 = load i32, ptr %22, align 4, !tbaa !16
  %9835 = sext i32 %9834 to i64
  %9836 = getelementptr inbounds ptr, ptr %9833, i64 %9835
  %9837 = load ptr, ptr %9836, align 8, !tbaa !5
  %9838 = load i32, ptr %23, align 4, !tbaa !16
  %9839 = sext i32 %9838 to i64
  %9840 = getelementptr inbounds i8, ptr %9837, i64 %9839
  store i8 0, ptr %9840, align 1, !tbaa !20
  br label %9875

9841:                                             ; preds = %9799
  %9842 = load i32, ptr %145, align 4, !tbaa !16
  %9843 = icmp sgt i32 %9842, 255
  br i1 %9843, label %9844, label %9858

9844:                                             ; preds = %9841
  %9845 = load ptr, ptr %8, align 8, !tbaa !5
  %9846 = getelementptr inbounds %struct.MImage, ptr %9845, i32 0, i32 3
  %9847 = load i32, ptr %19, align 4, !tbaa !16
  %9848 = sext i32 %9847 to i64
  %9849 = getelementptr inbounds [4 x ptr], ptr %9846, i64 0, i64 %9848
  %9850 = load ptr, ptr %9849, align 8, !tbaa !5
  %9851 = load i32, ptr %22, align 4, !tbaa !16
  %9852 = sext i32 %9851 to i64
  %9853 = getelementptr inbounds ptr, ptr %9850, i64 %9852
  %9854 = load ptr, ptr %9853, align 8, !tbaa !5
  %9855 = load i32, ptr %23, align 4, !tbaa !16
  %9856 = sext i32 %9855 to i64
  %9857 = getelementptr inbounds i8, ptr %9854, i64 %9856
  store i8 -1, ptr %9857, align 1, !tbaa !20
  br label %9874

9858:                                             ; preds = %9841
  %9859 = load i32, ptr %145, align 4, !tbaa !16
  %9860 = trunc i32 %9859 to i8
  %9861 = load ptr, ptr %8, align 8, !tbaa !5
  %9862 = getelementptr inbounds %struct.MImage, ptr %9861, i32 0, i32 3
  %9863 = load i32, ptr %19, align 4, !tbaa !16
  %9864 = sext i32 %9863 to i64
  %9865 = getelementptr inbounds [4 x ptr], ptr %9862, i64 0, i64 %9864
  %9866 = load ptr, ptr %9865, align 8, !tbaa !5
  %9867 = load i32, ptr %22, align 4, !tbaa !16
  %9868 = sext i32 %9867 to i64
  %9869 = getelementptr inbounds ptr, ptr %9866, i64 %9868
  %9870 = load ptr, ptr %9869, align 8, !tbaa !5
  %9871 = load i32, ptr %23, align 4, !tbaa !16
  %9872 = sext i32 %9871 to i64
  %9873 = getelementptr inbounds i8, ptr %9870, i64 %9872
  store i8 %9860, ptr %9873, align 1, !tbaa !20
  br label %9874

9874:                                             ; preds = %9858, %9844
  br label %9875

9875:                                             ; preds = %9874, %9827
  call void @llvm.lifetime.end.p0(i64 4, ptr %145) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %146) #3
  %9876 = load ptr, ptr %20, align 8, !tbaa !5
  %9877 = load i32, ptr %22, align 4, !tbaa !16
  %9878 = sext i32 %9877 to i64
  %9879 = getelementptr inbounds ptr, ptr %9876, i64 %9878
  %9880 = load ptr, ptr %9879, align 8, !tbaa !5
  %9881 = load i32, ptr %23, align 4, !tbaa !16
  %9882 = sext i32 %9881 to i64
  %9883 = getelementptr inbounds i8, ptr %9880, i64 %9882
  %9884 = load i8, ptr %9883, align 1, !tbaa !20
  %9885 = zext i8 %9884 to i64
  %9886 = getelementptr inbounds [256 x i32], ptr %16, i64 0, i64 %9885
  %9887 = load i32, ptr %9886, align 4, !tbaa !16
  %9888 = load ptr, ptr %21, align 8, !tbaa !5
  %9889 = load i32, ptr %22, align 4, !tbaa !16
  %9890 = sext i32 %9889 to i64
  %9891 = getelementptr inbounds ptr, ptr %9888, i64 %9890
  %9892 = load ptr, ptr %9891, align 8, !tbaa !5
  %9893 = load i32, ptr %23, align 4, !tbaa !16
  %9894 = sext i32 %9893 to i64
  %9895 = getelementptr inbounds i8, ptr %9892, i64 %9894
  %9896 = load i8, ptr %9895, align 1, !tbaa !20
  %9897 = zext i8 %9896 to i64
  %9898 = getelementptr inbounds [256 x i32], ptr %17, i64 0, i64 %9897
  %9899 = load i32, ptr %9898, align 4, !tbaa !16
  %9900 = add nsw i32 %9887, %9899
  store i32 %9900, ptr %146, align 4, !tbaa !16
  %9901 = load i32, ptr %146, align 4, !tbaa !16
  %9902 = icmp slt i32 %9901, 0
  br i1 %9902, label %9903, label %9917

9903:                                             ; preds = %9875
  %9904 = load ptr, ptr %8, align 8, !tbaa !5
  %9905 = getelementptr inbounds %struct.MImage, ptr %9904, i32 0, i32 3
  %9906 = load i32, ptr %19, align 4, !tbaa !16
  %9907 = sext i32 %9906 to i64
  %9908 = getelementptr inbounds [4 x ptr], ptr %9905, i64 0, i64 %9907
  %9909 = load ptr, ptr %9908, align 8, !tbaa !5
  %9910 = load i32, ptr %22, align 4, !tbaa !16
  %9911 = sext i32 %9910 to i64
  %9912 = getelementptr inbounds ptr, ptr %9909, i64 %9911
  %9913 = load ptr, ptr %9912, align 8, !tbaa !5
  %9914 = load i32, ptr %23, align 4, !tbaa !16
  %9915 = sext i32 %9914 to i64
  %9916 = getelementptr inbounds i8, ptr %9913, i64 %9915
  store i8 0, ptr %9916, align 1, !tbaa !20
  br label %9951

9917:                                             ; preds = %9875
  %9918 = load i32, ptr %146, align 4, !tbaa !16
  %9919 = icmp sgt i32 %9918, 255
  br i1 %9919, label %9920, label %9934

9920:                                             ; preds = %9917
  %9921 = load ptr, ptr %8, align 8, !tbaa !5
  %9922 = getelementptr inbounds %struct.MImage, ptr %9921, i32 0, i32 3
  %9923 = load i32, ptr %19, align 4, !tbaa !16
  %9924 = sext i32 %9923 to i64
  %9925 = getelementptr inbounds [4 x ptr], ptr %9922, i64 0, i64 %9924
  %9926 = load ptr, ptr %9925, align 8, !tbaa !5
  %9927 = load i32, ptr %22, align 4, !tbaa !16
  %9928 = sext i32 %9927 to i64
  %9929 = getelementptr inbounds ptr, ptr %9926, i64 %9928
  %9930 = load ptr, ptr %9929, align 8, !tbaa !5
  %9931 = load i32, ptr %23, align 4, !tbaa !16
  %9932 = sext i32 %9931 to i64
  %9933 = getelementptr inbounds i8, ptr %9930, i64 %9932
  store i8 -1, ptr %9933, align 1, !tbaa !20
  br label %9950

9934:                                             ; preds = %9917
  %9935 = load i32, ptr %146, align 4, !tbaa !16
  %9936 = trunc i32 %9935 to i8
  %9937 = load ptr, ptr %8, align 8, !tbaa !5
  %9938 = getelementptr inbounds %struct.MImage, ptr %9937, i32 0, i32 3
  %9939 = load i32, ptr %19, align 4, !tbaa !16
  %9940 = sext i32 %9939 to i64
  %9941 = getelementptr inbounds [4 x ptr], ptr %9938, i64 0, i64 %9940
  %9942 = load ptr, ptr %9941, align 8, !tbaa !5
  %9943 = load i32, ptr %22, align 4, !tbaa !16
  %9944 = sext i32 %9943 to i64
  %9945 = getelementptr inbounds ptr, ptr %9942, i64 %9944
  %9946 = load ptr, ptr %9945, align 8, !tbaa !5
  %9947 = load i32, ptr %23, align 4, !tbaa !16
  %9948 = sext i32 %9947 to i64
  %9949 = getelementptr inbounds i8, ptr %9946, i64 %9948
  store i8 %9936, ptr %9949, align 1, !tbaa !20
  br label %9950

9950:                                             ; preds = %9934, %9920
  br label %9951

9951:                                             ; preds = %9950, %9903
  call void @llvm.lifetime.end.p0(i64 4, ptr %146) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %147) #3
  %9952 = load ptr, ptr %20, align 8, !tbaa !5
  %9953 = load i32, ptr %22, align 4, !tbaa !16
  %9954 = sext i32 %9953 to i64
  %9955 = getelementptr inbounds ptr, ptr %9952, i64 %9954
  %9956 = load ptr, ptr %9955, align 8, !tbaa !5
  %9957 = load i32, ptr %23, align 4, !tbaa !16
  %9958 = sext i32 %9957 to i64
  %9959 = getelementptr inbounds i8, ptr %9956, i64 %9958
  %9960 = load i8, ptr %9959, align 1, !tbaa !20
  %9961 = zext i8 %9960 to i64
  %9962 = getelementptr inbounds [256 x i32], ptr %16, i64 0, i64 %9961
  %9963 = load i32, ptr %9962, align 4, !tbaa !16
  %9964 = load ptr, ptr %21, align 8, !tbaa !5
  %9965 = load i32, ptr %22, align 4, !tbaa !16
  %9966 = sext i32 %9965 to i64
  %9967 = getelementptr inbounds ptr, ptr %9964, i64 %9966
  %9968 = load ptr, ptr %9967, align 8, !tbaa !5
  %9969 = load i32, ptr %23, align 4, !tbaa !16
  %9970 = sext i32 %9969 to i64
  %9971 = getelementptr inbounds i8, ptr %9968, i64 %9970
  %9972 = load i8, ptr %9971, align 1, !tbaa !20
  %9973 = zext i8 %9972 to i64
  %9974 = getelementptr inbounds [256 x i32], ptr %17, i64 0, i64 %9973
  %9975 = load i32, ptr %9974, align 4, !tbaa !16
  %9976 = add nsw i32 %9963, %9975
  store i32 %9976, ptr %147, align 4, !tbaa !16
  %9977 = load i32, ptr %147, align 4, !tbaa !16
  %9978 = icmp slt i32 %9977, 0
  br i1 %9978, label %9979, label %9993

9979:                                             ; preds = %9951
  %9980 = load ptr, ptr %8, align 8, !tbaa !5
  %9981 = getelementptr inbounds %struct.MImage, ptr %9980, i32 0, i32 3
  %9982 = load i32, ptr %19, align 4, !tbaa !16
  %9983 = sext i32 %9982 to i64
  %9984 = getelementptr inbounds [4 x ptr], ptr %9981, i64 0, i64 %9983
  %9985 = load ptr, ptr %9984, align 8, !tbaa !5
  %9986 = load i32, ptr %22, align 4, !tbaa !16
  %9987 = sext i32 %9986 to i64
  %9988 = getelementptr inbounds ptr, ptr %9985, i64 %9987
  %9989 = load ptr, ptr %9988, align 8, !tbaa !5
  %9990 = load i32, ptr %23, align 4, !tbaa !16
  %9991 = sext i32 %9990 to i64
  %9992 = getelementptr inbounds i8, ptr %9989, i64 %9991
  store i8 0, ptr %9992, align 1, !tbaa !20
  br label %10027

9993:                                             ; preds = %9951
  %9994 = load i32, ptr %147, align 4, !tbaa !16
  %9995 = icmp sgt i32 %9994, 255
  br i1 %9995, label %9996, label %10010

9996:                                             ; preds = %9993
  %9997 = load ptr, ptr %8, align 8, !tbaa !5
  %9998 = getelementptr inbounds %struct.MImage, ptr %9997, i32 0, i32 3
  %9999 = load i32, ptr %19, align 4, !tbaa !16
  %10000 = sext i32 %9999 to i64
  %10001 = getelementptr inbounds [4 x ptr], ptr %9998, i64 0, i64 %10000
  %10002 = load ptr, ptr %10001, align 8, !tbaa !5
  %10003 = load i32, ptr %22, align 4, !tbaa !16
  %10004 = sext i32 %10003 to i64
  %10005 = getelementptr inbounds ptr, ptr %10002, i64 %10004
  %10006 = load ptr, ptr %10005, align 8, !tbaa !5
  %10007 = load i32, ptr %23, align 4, !tbaa !16
  %10008 = sext i32 %10007 to i64
  %10009 = getelementptr inbounds i8, ptr %10006, i64 %10008
  store i8 -1, ptr %10009, align 1, !tbaa !20
  br label %10026

10010:                                            ; preds = %9993
  %10011 = load i32, ptr %147, align 4, !tbaa !16
  %10012 = trunc i32 %10011 to i8
  %10013 = load ptr, ptr %8, align 8, !tbaa !5
  %10014 = getelementptr inbounds %struct.MImage, ptr %10013, i32 0, i32 3
  %10015 = load i32, ptr %19, align 4, !tbaa !16
  %10016 = sext i32 %10015 to i64
  %10017 = getelementptr inbounds [4 x ptr], ptr %10014, i64 0, i64 %10016
  %10018 = load ptr, ptr %10017, align 8, !tbaa !5
  %10019 = load i32, ptr %22, align 4, !tbaa !16
  %10020 = sext i32 %10019 to i64
  %10021 = getelementptr inbounds ptr, ptr %10018, i64 %10020
  %10022 = load ptr, ptr %10021, align 8, !tbaa !5
  %10023 = load i32, ptr %23, align 4, !tbaa !16
  %10024 = sext i32 %10023 to i64
  %10025 = getelementptr inbounds i8, ptr %10022, i64 %10024
  store i8 %10012, ptr %10025, align 1, !tbaa !20
  br label %10026

10026:                                            ; preds = %10010, %9996
  br label %10027

10027:                                            ; preds = %10026, %9979
  call void @llvm.lifetime.end.p0(i64 4, ptr %147) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %148) #3
  %10028 = load ptr, ptr %20, align 8, !tbaa !5
  %10029 = load i32, ptr %22, align 4, !tbaa !16
  %10030 = sext i32 %10029 to i64
  %10031 = getelementptr inbounds ptr, ptr %10028, i64 %10030
  %10032 = load ptr, ptr %10031, align 8, !tbaa !5
  %10033 = load i32, ptr %23, align 4, !tbaa !16
  %10034 = sext i32 %10033 to i64
  %10035 = getelementptr inbounds i8, ptr %10032, i64 %10034
  %10036 = load i8, ptr %10035, align 1, !tbaa !20
  %10037 = zext i8 %10036 to i64
  %10038 = getelementptr inbounds [256 x i32], ptr %16, i64 0, i64 %10037
  %10039 = load i32, ptr %10038, align 4, !tbaa !16
  %10040 = load ptr, ptr %21, align 8, !tbaa !5
  %10041 = load i32, ptr %22, align 4, !tbaa !16
  %10042 = sext i32 %10041 to i64
  %10043 = getelementptr inbounds ptr, ptr %10040, i64 %10042
  %10044 = load ptr, ptr %10043, align 8, !tbaa !5
  %10045 = load i32, ptr %23, align 4, !tbaa !16
  %10046 = sext i32 %10045 to i64
  %10047 = getelementptr inbounds i8, ptr %10044, i64 %10046
  %10048 = load i8, ptr %10047, align 1, !tbaa !20
  %10049 = zext i8 %10048 to i64
  %10050 = getelementptr inbounds [256 x i32], ptr %17, i64 0, i64 %10049
  %10051 = load i32, ptr %10050, align 4, !tbaa !16
  %10052 = add nsw i32 %10039, %10051
  store i32 %10052, ptr %148, align 4, !tbaa !16
  %10053 = load i32, ptr %148, align 4, !tbaa !16
  %10054 = icmp slt i32 %10053, 0
  br i1 %10054, label %10055, label %10069

10055:                                            ; preds = %10027
  %10056 = load ptr, ptr %8, align 8, !tbaa !5
  %10057 = getelementptr inbounds %struct.MImage, ptr %10056, i32 0, i32 3
  %10058 = load i32, ptr %19, align 4, !tbaa !16
  %10059 = sext i32 %10058 to i64
  %10060 = getelementptr inbounds [4 x ptr], ptr %10057, i64 0, i64 %10059
  %10061 = load ptr, ptr %10060, align 8, !tbaa !5
  %10062 = load i32, ptr %22, align 4, !tbaa !16
  %10063 = sext i32 %10062 to i64
  %10064 = getelementptr inbounds ptr, ptr %10061, i64 %10063
  %10065 = load ptr, ptr %10064, align 8, !tbaa !5
  %10066 = load i32, ptr %23, align 4, !tbaa !16
  %10067 = sext i32 %10066 to i64
  %10068 = getelementptr inbounds i8, ptr %10065, i64 %10067
  store i8 0, ptr %10068, align 1, !tbaa !20
  br label %10103

10069:                                            ; preds = %10027
  %10070 = load i32, ptr %148, align 4, !tbaa !16
  %10071 = icmp sgt i32 %10070, 255
  br i1 %10071, label %10072, label %10086

10072:                                            ; preds = %10069
  %10073 = load ptr, ptr %8, align 8, !tbaa !5
  %10074 = getelementptr inbounds %struct.MImage, ptr %10073, i32 0, i32 3
  %10075 = load i32, ptr %19, align 4, !tbaa !16
  %10076 = sext i32 %10075 to i64
  %10077 = getelementptr inbounds [4 x ptr], ptr %10074, i64 0, i64 %10076
  %10078 = load ptr, ptr %10077, align 8, !tbaa !5
  %10079 = load i32, ptr %22, align 4, !tbaa !16
  %10080 = sext i32 %10079 to i64
  %10081 = getelementptr inbounds ptr, ptr %10078, i64 %10080
  %10082 = load ptr, ptr %10081, align 8, !tbaa !5
  %10083 = load i32, ptr %23, align 4, !tbaa !16
  %10084 = sext i32 %10083 to i64
  %10085 = getelementptr inbounds i8, ptr %10082, i64 %10084
  store i8 -1, ptr %10085, align 1, !tbaa !20
  br label %10102

10086:                                            ; preds = %10069
  %10087 = load i32, ptr %148, align 4, !tbaa !16
  %10088 = trunc i32 %10087 to i8
  %10089 = load ptr, ptr %8, align 8, !tbaa !5
  %10090 = getelementptr inbounds %struct.MImage, ptr %10089, i32 0, i32 3
  %10091 = load i32, ptr %19, align 4, !tbaa !16
  %10092 = sext i32 %10091 to i64
  %10093 = getelementptr inbounds [4 x ptr], ptr %10090, i64 0, i64 %10092
  %10094 = load ptr, ptr %10093, align 8, !tbaa !5
  %10095 = load i32, ptr %22, align 4, !tbaa !16
  %10096 = sext i32 %10095 to i64
  %10097 = getelementptr inbounds ptr, ptr %10094, i64 %10096
  %10098 = load ptr, ptr %10097, align 8, !tbaa !5
  %10099 = load i32, ptr %23, align 4, !tbaa !16
  %10100 = sext i32 %10099 to i64
  %10101 = getelementptr inbounds i8, ptr %10098, i64 %10100
  store i8 %10088, ptr %10101, align 1, !tbaa !20
  br label %10102

10102:                                            ; preds = %10086, %10072
  br label %10103

10103:                                            ; preds = %10102, %10055
  call void @llvm.lifetime.end.p0(i64 4, ptr %148) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %149) #3
  %10104 = load ptr, ptr %20, align 8, !tbaa !5
  %10105 = load i32, ptr %22, align 4, !tbaa !16
  %10106 = sext i32 %10105 to i64
  %10107 = getelementptr inbounds ptr, ptr %10104, i64 %10106
  %10108 = load ptr, ptr %10107, align 8, !tbaa !5
  %10109 = load i32, ptr %23, align 4, !tbaa !16
  %10110 = sext i32 %10109 to i64
  %10111 = getelementptr inbounds i8, ptr %10108, i64 %10110
  %10112 = load i8, ptr %10111, align 1, !tbaa !20
  %10113 = zext i8 %10112 to i64
  %10114 = getelementptr inbounds [256 x i32], ptr %16, i64 0, i64 %10113
  %10115 = load i32, ptr %10114, align 4, !tbaa !16
  %10116 = load ptr, ptr %21, align 8, !tbaa !5
  %10117 = load i32, ptr %22, align 4, !tbaa !16
  %10118 = sext i32 %10117 to i64
  %10119 = getelementptr inbounds ptr, ptr %10116, i64 %10118
  %10120 = load ptr, ptr %10119, align 8, !tbaa !5
  %10121 = load i32, ptr %23, align 4, !tbaa !16
  %10122 = sext i32 %10121 to i64
  %10123 = getelementptr inbounds i8, ptr %10120, i64 %10122
  %10124 = load i8, ptr %10123, align 1, !tbaa !20
  %10125 = zext i8 %10124 to i64
  %10126 = getelementptr inbounds [256 x i32], ptr %17, i64 0, i64 %10125
  %10127 = load i32, ptr %10126, align 4, !tbaa !16
  %10128 = add nsw i32 %10115, %10127
  store i32 %10128, ptr %149, align 4, !tbaa !16
  %10129 = load i32, ptr %149, align 4, !tbaa !16
  %10130 = icmp slt i32 %10129, 0
  br i1 %10130, label %10131, label %10145

10131:                                            ; preds = %10103
  %10132 = load ptr, ptr %8, align 8, !tbaa !5
  %10133 = getelementptr inbounds %struct.MImage, ptr %10132, i32 0, i32 3
  %10134 = load i32, ptr %19, align 4, !tbaa !16
  %10135 = sext i32 %10134 to i64
  %10136 = getelementptr inbounds [4 x ptr], ptr %10133, i64 0, i64 %10135
  %10137 = load ptr, ptr %10136, align 8, !tbaa !5
  %10138 = load i32, ptr %22, align 4, !tbaa !16
  %10139 = sext i32 %10138 to i64
  %10140 = getelementptr inbounds ptr, ptr %10137, i64 %10139
  %10141 = load ptr, ptr %10140, align 8, !tbaa !5
  %10142 = load i32, ptr %23, align 4, !tbaa !16
  %10143 = sext i32 %10142 to i64
  %10144 = getelementptr inbounds i8, ptr %10141, i64 %10143
  store i8 0, ptr %10144, align 1, !tbaa !20
  br label %10179

10145:                                            ; preds = %10103
  %10146 = load i32, ptr %149, align 4, !tbaa !16
  %10147 = icmp sgt i32 %10146, 255
  br i1 %10147, label %10148, label %10162

10148:                                            ; preds = %10145
  %10149 = load ptr, ptr %8, align 8, !tbaa !5
  %10150 = getelementptr inbounds %struct.MImage, ptr %10149, i32 0, i32 3
  %10151 = load i32, ptr %19, align 4, !tbaa !16
  %10152 = sext i32 %10151 to i64
  %10153 = getelementptr inbounds [4 x ptr], ptr %10150, i64 0, i64 %10152
  %10154 = load ptr, ptr %10153, align 8, !tbaa !5
  %10155 = load i32, ptr %22, align 4, !tbaa !16
  %10156 = sext i32 %10155 to i64
  %10157 = getelementptr inbounds ptr, ptr %10154, i64 %10156
  %10158 = load ptr, ptr %10157, align 8, !tbaa !5
  %10159 = load i32, ptr %23, align 4, !tbaa !16
  %10160 = sext i32 %10159 to i64
  %10161 = getelementptr inbounds i8, ptr %10158, i64 %10160
  store i8 -1, ptr %10161, align 1, !tbaa !20
  br label %10178

10162:                                            ; preds = %10145
  %10163 = load i32, ptr %149, align 4, !tbaa !16
  %10164 = trunc i32 %10163 to i8
  %10165 = load ptr, ptr %8, align 8, !tbaa !5
  %10166 = getelementptr inbounds %struct.MImage, ptr %10165, i32 0, i32 3
  %10167 = load i32, ptr %19, align 4, !tbaa !16
  %10168 = sext i32 %10167 to i64
  %10169 = getelementptr inbounds [4 x ptr], ptr %10166, i64 0, i64 %10168
  %10170 = load ptr, ptr %10169, align 8, !tbaa !5
  %10171 = load i32, ptr %22, align 4, !tbaa !16
  %10172 = sext i32 %10171 to i64
  %10173 = getelementptr inbounds ptr, ptr %10170, i64 %10172
  %10174 = load ptr, ptr %10173, align 8, !tbaa !5
  %10175 = load i32, ptr %23, align 4, !tbaa !16
  %10176 = sext i32 %10175 to i64
  %10177 = getelementptr inbounds i8, ptr %10174, i64 %10176
  store i8 %10164, ptr %10177, align 1, !tbaa !20
  br label %10178

10178:                                            ; preds = %10162, %10148
  br label %10179

10179:                                            ; preds = %10178, %10131
  call void @llvm.lifetime.end.p0(i64 4, ptr %149) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %150) #3
  %10180 = load ptr, ptr %20, align 8, !tbaa !5
  %10181 = load i32, ptr %22, align 4, !tbaa !16
  %10182 = sext i32 %10181 to i64
  %10183 = getelementptr inbounds ptr, ptr %10180, i64 %10182
  %10184 = load ptr, ptr %10183, align 8, !tbaa !5
  %10185 = load i32, ptr %23, align 4, !tbaa !16
  %10186 = sext i32 %10185 to i64
  %10187 = getelementptr inbounds i8, ptr %10184, i64 %10186
  %10188 = load i8, ptr %10187, align 1, !tbaa !20
  %10189 = zext i8 %10188 to i64
  %10190 = getelementptr inbounds [256 x i32], ptr %16, i64 0, i64 %10189
  %10191 = load i32, ptr %10190, align 4, !tbaa !16
  %10192 = load ptr, ptr %21, align 8, !tbaa !5
  %10193 = load i32, ptr %22, align 4, !tbaa !16
  %10194 = sext i32 %10193 to i64
  %10195 = getelementptr inbounds ptr, ptr %10192, i64 %10194
  %10196 = load ptr, ptr %10195, align 8, !tbaa !5
  %10197 = load i32, ptr %23, align 4, !tbaa !16
  %10198 = sext i32 %10197 to i64
  %10199 = getelementptr inbounds i8, ptr %10196, i64 %10198
  %10200 = load i8, ptr %10199, align 1, !tbaa !20
  %10201 = zext i8 %10200 to i64
  %10202 = getelementptr inbounds [256 x i32], ptr %17, i64 0, i64 %10201
  %10203 = load i32, ptr %10202, align 4, !tbaa !16
  %10204 = add nsw i32 %10191, %10203
  store i32 %10204, ptr %150, align 4, !tbaa !16
  %10205 = load i32, ptr %150, align 4, !tbaa !16
  %10206 = icmp slt i32 %10205, 0
  br i1 %10206, label %10207, label %10221

10207:                                            ; preds = %10179
  %10208 = load ptr, ptr %8, align 8, !tbaa !5
  %10209 = getelementptr inbounds %struct.MImage, ptr %10208, i32 0, i32 3
  %10210 = load i32, ptr %19, align 4, !tbaa !16
  %10211 = sext i32 %10210 to i64
  %10212 = getelementptr inbounds [4 x ptr], ptr %10209, i64 0, i64 %10211
  %10213 = load ptr, ptr %10212, align 8, !tbaa !5
  %10214 = load i32, ptr %22, align 4, !tbaa !16
  %10215 = sext i32 %10214 to i64
  %10216 = getelementptr inbounds ptr, ptr %10213, i64 %10215
  %10217 = load ptr, ptr %10216, align 8, !tbaa !5
  %10218 = load i32, ptr %23, align 4, !tbaa !16
  %10219 = sext i32 %10218 to i64
  %10220 = getelementptr inbounds i8, ptr %10217, i64 %10219
  store i8 0, ptr %10220, align 1, !tbaa !20
  br label %10255

10221:                                            ; preds = %10179
  %10222 = load i32, ptr %150, align 4, !tbaa !16
  %10223 = icmp sgt i32 %10222, 255
  br i1 %10223, label %10224, label %10238

10224:                                            ; preds = %10221
  %10225 = load ptr, ptr %8, align 8, !tbaa !5
  %10226 = getelementptr inbounds %struct.MImage, ptr %10225, i32 0, i32 3
  %10227 = load i32, ptr %19, align 4, !tbaa !16
  %10228 = sext i32 %10227 to i64
  %10229 = getelementptr inbounds [4 x ptr], ptr %10226, i64 0, i64 %10228
  %10230 = load ptr, ptr %10229, align 8, !tbaa !5
  %10231 = load i32, ptr %22, align 4, !tbaa !16
  %10232 = sext i32 %10231 to i64
  %10233 = getelementptr inbounds ptr, ptr %10230, i64 %10232
  %10234 = load ptr, ptr %10233, align 8, !tbaa !5
  %10235 = load i32, ptr %23, align 4, !tbaa !16
  %10236 = sext i32 %10235 to i64
  %10237 = getelementptr inbounds i8, ptr %10234, i64 %10236
  store i8 -1, ptr %10237, align 1, !tbaa !20
  br label %10254

10238:                                            ; preds = %10221
  %10239 = load i32, ptr %150, align 4, !tbaa !16
  %10240 = trunc i32 %10239 to i8
  %10241 = load ptr, ptr %8, align 8, !tbaa !5
  %10242 = getelementptr inbounds %struct.MImage, ptr %10241, i32 0, i32 3
  %10243 = load i32, ptr %19, align 4, !tbaa !16
  %10244 = sext i32 %10243 to i64
  %10245 = getelementptr inbounds [4 x ptr], ptr %10242, i64 0, i64 %10244
  %10246 = load ptr, ptr %10245, align 8, !tbaa !5
  %10247 = load i32, ptr %22, align 4, !tbaa !16
  %10248 = sext i32 %10247 to i64
  %10249 = getelementptr inbounds ptr, ptr %10246, i64 %10248
  %10250 = load ptr, ptr %10249, align 8, !tbaa !5
  %10251 = load i32, ptr %23, align 4, !tbaa !16
  %10252 = sext i32 %10251 to i64
  %10253 = getelementptr inbounds i8, ptr %10250, i64 %10252
  store i8 %10240, ptr %10253, align 1, !tbaa !20
  br label %10254

10254:                                            ; preds = %10238, %10224
  br label %10255

10255:                                            ; preds = %10254, %10207
  call void @llvm.lifetime.end.p0(i64 4, ptr %150) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %151) #3
  %10256 = load ptr, ptr %20, align 8, !tbaa !5
  %10257 = load i32, ptr %22, align 4, !tbaa !16
  %10258 = sext i32 %10257 to i64
  %10259 = getelementptr inbounds ptr, ptr %10256, i64 %10258
  %10260 = load ptr, ptr %10259, align 8, !tbaa !5
  %10261 = load i32, ptr %23, align 4, !tbaa !16
  %10262 = sext i32 %10261 to i64
  %10263 = getelementptr inbounds i8, ptr %10260, i64 %10262
  %10264 = load i8, ptr %10263, align 1, !tbaa !20
  %10265 = zext i8 %10264 to i64
  %10266 = getelementptr inbounds [256 x i32], ptr %16, i64 0, i64 %10265
  %10267 = load i32, ptr %10266, align 4, !tbaa !16
  %10268 = load ptr, ptr %21, align 8, !tbaa !5
  %10269 = load i32, ptr %22, align 4, !tbaa !16
  %10270 = sext i32 %10269 to i64
  %10271 = getelementptr inbounds ptr, ptr %10268, i64 %10270
  %10272 = load ptr, ptr %10271, align 8, !tbaa !5
  %10273 = load i32, ptr %23, align 4, !tbaa !16
  %10274 = sext i32 %10273 to i64
  %10275 = getelementptr inbounds i8, ptr %10272, i64 %10274
  %10276 = load i8, ptr %10275, align 1, !tbaa !20
  %10277 = zext i8 %10276 to i64
  %10278 = getelementptr inbounds [256 x i32], ptr %17, i64 0, i64 %10277
  %10279 = load i32, ptr %10278, align 4, !tbaa !16
  %10280 = add nsw i32 %10267, %10279
  store i32 %10280, ptr %151, align 4, !tbaa !16
  %10281 = load i32, ptr %151, align 4, !tbaa !16
  %10282 = icmp slt i32 %10281, 0
  br i1 %10282, label %10283, label %10297

10283:                                            ; preds = %10255
  %10284 = load ptr, ptr %8, align 8, !tbaa !5
  %10285 = getelementptr inbounds %struct.MImage, ptr %10284, i32 0, i32 3
  %10286 = load i32, ptr %19, align 4, !tbaa !16
  %10287 = sext i32 %10286 to i64
  %10288 = getelementptr inbounds [4 x ptr], ptr %10285, i64 0, i64 %10287
  %10289 = load ptr, ptr %10288, align 8, !tbaa !5
  %10290 = load i32, ptr %22, align 4, !tbaa !16
  %10291 = sext i32 %10290 to i64
  %10292 = getelementptr inbounds ptr, ptr %10289, i64 %10291
  %10293 = load ptr, ptr %10292, align 8, !tbaa !5
  %10294 = load i32, ptr %23, align 4, !tbaa !16
  %10295 = sext i32 %10294 to i64
  %10296 = getelementptr inbounds i8, ptr %10293, i64 %10295
  store i8 0, ptr %10296, align 1, !tbaa !20
  br label %10331

10297:                                            ; preds = %10255
  %10298 = load i32, ptr %151, align 4, !tbaa !16
  %10299 = icmp sgt i32 %10298, 255
  br i1 %10299, label %10300, label %10314

10300:                                            ; preds = %10297
  %10301 = load ptr, ptr %8, align 8, !tbaa !5
  %10302 = getelementptr inbounds %struct.MImage, ptr %10301, i32 0, i32 3
  %10303 = load i32, ptr %19, align 4, !tbaa !16
  %10304 = sext i32 %10303 to i64
  %10305 = getelementptr inbounds [4 x ptr], ptr %10302, i64 0, i64 %10304
  %10306 = load ptr, ptr %10305, align 8, !tbaa !5
  %10307 = load i32, ptr %22, align 4, !tbaa !16
  %10308 = sext i32 %10307 to i64
  %10309 = getelementptr inbounds ptr, ptr %10306, i64 %10308
  %10310 = load ptr, ptr %10309, align 8, !tbaa !5
  %10311 = load i32, ptr %23, align 4, !tbaa !16
  %10312 = sext i32 %10311 to i64
  %10313 = getelementptr inbounds i8, ptr %10310, i64 %10312
  store i8 -1, ptr %10313, align 1, !tbaa !20
  br label %10330

10314:                                            ; preds = %10297
  %10315 = load i32, ptr %151, align 4, !tbaa !16
  %10316 = trunc i32 %10315 to i8
  %10317 = load ptr, ptr %8, align 8, !tbaa !5
  %10318 = getelementptr inbounds %struct.MImage, ptr %10317, i32 0, i32 3
  %10319 = load i32, ptr %19, align 4, !tbaa !16
  %10320 = sext i32 %10319 to i64
  %10321 = getelementptr inbounds [4 x ptr], ptr %10318, i64 0, i64 %10320
  %10322 = load ptr, ptr %10321, align 8, !tbaa !5
  %10323 = load i32, ptr %22, align 4, !tbaa !16
  %10324 = sext i32 %10323 to i64
  %10325 = getelementptr inbounds ptr, ptr %10322, i64 %10324
  %10326 = load ptr, ptr %10325, align 8, !tbaa !5
  %10327 = load i32, ptr %23, align 4, !tbaa !16
  %10328 = sext i32 %10327 to i64
  %10329 = getelementptr inbounds i8, ptr %10326, i64 %10328
  store i8 %10316, ptr %10329, align 1, !tbaa !20
  br label %10330

10330:                                            ; preds = %10314, %10300
  br label %10331

10331:                                            ; preds = %10330, %10283
  call void @llvm.lifetime.end.p0(i64 4, ptr %151) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %152) #3
  %10332 = load ptr, ptr %20, align 8, !tbaa !5
  %10333 = load i32, ptr %22, align 4, !tbaa !16
  %10334 = sext i32 %10333 to i64
  %10335 = getelementptr inbounds ptr, ptr %10332, i64 %10334
  %10336 = load ptr, ptr %10335, align 8, !tbaa !5
  %10337 = load i32, ptr %23, align 4, !tbaa !16
  %10338 = sext i32 %10337 to i64
  %10339 = getelementptr inbounds i8, ptr %10336, i64 %10338
  %10340 = load i8, ptr %10339, align 1, !tbaa !20
  %10341 = zext i8 %10340 to i64
  %10342 = getelementptr inbounds [256 x i32], ptr %16, i64 0, i64 %10341
  %10343 = load i32, ptr %10342, align 4, !tbaa !16
  %10344 = load ptr, ptr %21, align 8, !tbaa !5
  %10345 = load i32, ptr %22, align 4, !tbaa !16
  %10346 = sext i32 %10345 to i64
  %10347 = getelementptr inbounds ptr, ptr %10344, i64 %10346
  %10348 = load ptr, ptr %10347, align 8, !tbaa !5
  %10349 = load i32, ptr %23, align 4, !tbaa !16
  %10350 = sext i32 %10349 to i64
  %10351 = getelementptr inbounds i8, ptr %10348, i64 %10350
  %10352 = load i8, ptr %10351, align 1, !tbaa !20
  %10353 = zext i8 %10352 to i64
  %10354 = getelementptr inbounds [256 x i32], ptr %17, i64 0, i64 %10353
  %10355 = load i32, ptr %10354, align 4, !tbaa !16
  %10356 = add nsw i32 %10343, %10355
  store i32 %10356, ptr %152, align 4, !tbaa !16
  %10357 = load i32, ptr %152, align 4, !tbaa !16
  %10358 = icmp slt i32 %10357, 0
  br i1 %10358, label %10359, label %10373

10359:                                            ; preds = %10331
  %10360 = load ptr, ptr %8, align 8, !tbaa !5
  %10361 = getelementptr inbounds %struct.MImage, ptr %10360, i32 0, i32 3
  %10362 = load i32, ptr %19, align 4, !tbaa !16
  %10363 = sext i32 %10362 to i64
  %10364 = getelementptr inbounds [4 x ptr], ptr %10361, i64 0, i64 %10363
  %10365 = load ptr, ptr %10364, align 8, !tbaa !5
  %10366 = load i32, ptr %22, align 4, !tbaa !16
  %10367 = sext i32 %10366 to i64
  %10368 = getelementptr inbounds ptr, ptr %10365, i64 %10367
  %10369 = load ptr, ptr %10368, align 8, !tbaa !5
  %10370 = load i32, ptr %23, align 4, !tbaa !16
  %10371 = sext i32 %10370 to i64
  %10372 = getelementptr inbounds i8, ptr %10369, i64 %10371
  store i8 0, ptr %10372, align 1, !tbaa !20
  br label %10407

10373:                                            ; preds = %10331
  %10374 = load i32, ptr %152, align 4, !tbaa !16
  %10375 = icmp sgt i32 %10374, 255
  br i1 %10375, label %10376, label %10390

10376:                                            ; preds = %10373
  %10377 = load ptr, ptr %8, align 8, !tbaa !5
  %10378 = getelementptr inbounds %struct.MImage, ptr %10377, i32 0, i32 3
  %10379 = load i32, ptr %19, align 4, !tbaa !16
  %10380 = sext i32 %10379 to i64
  %10381 = getelementptr inbounds [4 x ptr], ptr %10378, i64 0, i64 %10380
  %10382 = load ptr, ptr %10381, align 8, !tbaa !5
  %10383 = load i32, ptr %22, align 4, !tbaa !16
  %10384 = sext i32 %10383 to i64
  %10385 = getelementptr inbounds ptr, ptr %10382, i64 %10384
  %10386 = load ptr, ptr %10385, align 8, !tbaa !5
  %10387 = load i32, ptr %23, align 4, !tbaa !16
  %10388 = sext i32 %10387 to i64
  %10389 = getelementptr inbounds i8, ptr %10386, i64 %10388
  store i8 -1, ptr %10389, align 1, !tbaa !20
  br label %10406

10390:                                            ; preds = %10373
  %10391 = load i32, ptr %152, align 4, !tbaa !16
  %10392 = trunc i32 %10391 to i8
  %10393 = load ptr, ptr %8, align 8, !tbaa !5
  %10394 = getelementptr inbounds %struct.MImage, ptr %10393, i32 0, i32 3
  %10395 = load i32, ptr %19, align 4, !tbaa !16
  %10396 = sext i32 %10395 to i64
  %10397 = getelementptr inbounds [4 x ptr], ptr %10394, i64 0, i64 %10396
  %10398 = load ptr, ptr %10397, align 8, !tbaa !5
  %10399 = load i32, ptr %22, align 4, !tbaa !16
  %10400 = sext i32 %10399 to i64
  %10401 = getelementptr inbounds ptr, ptr %10398, i64 %10400
  %10402 = load ptr, ptr %10401, align 8, !tbaa !5
  %10403 = load i32, ptr %23, align 4, !tbaa !16
  %10404 = sext i32 %10403 to i64
  %10405 = getelementptr inbounds i8, ptr %10402, i64 %10404
  store i8 %10392, ptr %10405, align 1, !tbaa !20
  br label %10406

10406:                                            ; preds = %10390, %10376
  br label %10407

10407:                                            ; preds = %10406, %10359
  call void @llvm.lifetime.end.p0(i64 4, ptr %152) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %153) #3
  %10408 = load ptr, ptr %20, align 8, !tbaa !5
  %10409 = load i32, ptr %22, align 4, !tbaa !16
  %10410 = sext i32 %10409 to i64
  %10411 = getelementptr inbounds ptr, ptr %10408, i64 %10410
  %10412 = load ptr, ptr %10411, align 8, !tbaa !5
  %10413 = load i32, ptr %23, align 4, !tbaa !16
  %10414 = sext i32 %10413 to i64
  %10415 = getelementptr inbounds i8, ptr %10412, i64 %10414
  %10416 = load i8, ptr %10415, align 1, !tbaa !20
  %10417 = zext i8 %10416 to i64
  %10418 = getelementptr inbounds [256 x i32], ptr %16, i64 0, i64 %10417
  %10419 = load i32, ptr %10418, align 4, !tbaa !16
  %10420 = load ptr, ptr %21, align 8, !tbaa !5
  %10421 = load i32, ptr %22, align 4, !tbaa !16
  %10422 = sext i32 %10421 to i64
  %10423 = getelementptr inbounds ptr, ptr %10420, i64 %10422
  %10424 = load ptr, ptr %10423, align 8, !tbaa !5
  %10425 = load i32, ptr %23, align 4, !tbaa !16
  %10426 = sext i32 %10425 to i64
  %10427 = getelementptr inbounds i8, ptr %10424, i64 %10426
  %10428 = load i8, ptr %10427, align 1, !tbaa !20
  %10429 = zext i8 %10428 to i64
  %10430 = getelementptr inbounds [256 x i32], ptr %17, i64 0, i64 %10429
  %10431 = load i32, ptr %10430, align 4, !tbaa !16
  %10432 = add nsw i32 %10419, %10431
  store i32 %10432, ptr %153, align 4, !tbaa !16
  %10433 = load i32, ptr %153, align 4, !tbaa !16
  %10434 = icmp slt i32 %10433, 0
  br i1 %10434, label %10435, label %10449

10435:                                            ; preds = %10407
  %10436 = load ptr, ptr %8, align 8, !tbaa !5
  %10437 = getelementptr inbounds %struct.MImage, ptr %10436, i32 0, i32 3
  %10438 = load i32, ptr %19, align 4, !tbaa !16
  %10439 = sext i32 %10438 to i64
  %10440 = getelementptr inbounds [4 x ptr], ptr %10437, i64 0, i64 %10439
  %10441 = load ptr, ptr %10440, align 8, !tbaa !5
  %10442 = load i32, ptr %22, align 4, !tbaa !16
  %10443 = sext i32 %10442 to i64
  %10444 = getelementptr inbounds ptr, ptr %10441, i64 %10443
  %10445 = load ptr, ptr %10444, align 8, !tbaa !5
  %10446 = load i32, ptr %23, align 4, !tbaa !16
  %10447 = sext i32 %10446 to i64
  %10448 = getelementptr inbounds i8, ptr %10445, i64 %10447
  store i8 0, ptr %10448, align 1, !tbaa !20
  br label %10483

10449:                                            ; preds = %10407
  %10450 = load i32, ptr %153, align 4, !tbaa !16
  %10451 = icmp sgt i32 %10450, 255
  br i1 %10451, label %10452, label %10466

10452:                                            ; preds = %10449
  %10453 = load ptr, ptr %8, align 8, !tbaa !5
  %10454 = getelementptr inbounds %struct.MImage, ptr %10453, i32 0, i32 3
  %10455 = load i32, ptr %19, align 4, !tbaa !16
  %10456 = sext i32 %10455 to i64
  %10457 = getelementptr inbounds [4 x ptr], ptr %10454, i64 0, i64 %10456
  %10458 = load ptr, ptr %10457, align 8, !tbaa !5
  %10459 = load i32, ptr %22, align 4, !tbaa !16
  %10460 = sext i32 %10459 to i64
  %10461 = getelementptr inbounds ptr, ptr %10458, i64 %10460
  %10462 = load ptr, ptr %10461, align 8, !tbaa !5
  %10463 = load i32, ptr %23, align 4, !tbaa !16
  %10464 = sext i32 %10463 to i64
  %10465 = getelementptr inbounds i8, ptr %10462, i64 %10464
  store i8 -1, ptr %10465, align 1, !tbaa !20
  br label %10482

10466:                                            ; preds = %10449
  %10467 = load i32, ptr %153, align 4, !tbaa !16
  %10468 = trunc i32 %10467 to i8
  %10469 = load ptr, ptr %8, align 8, !tbaa !5
  %10470 = getelementptr inbounds %struct.MImage, ptr %10469, i32 0, i32 3
  %10471 = load i32, ptr %19, align 4, !tbaa !16
  %10472 = sext i32 %10471 to i64
  %10473 = getelementptr inbounds [4 x ptr], ptr %10470, i64 0, i64 %10472
  %10474 = load ptr, ptr %10473, align 8, !tbaa !5
  %10475 = load i32, ptr %22, align 4, !tbaa !16
  %10476 = sext i32 %10475 to i64
  %10477 = getelementptr inbounds ptr, ptr %10474, i64 %10476
  %10478 = load ptr, ptr %10477, align 8, !tbaa !5
  %10479 = load i32, ptr %23, align 4, !tbaa !16
  %10480 = sext i32 %10479 to i64
  %10481 = getelementptr inbounds i8, ptr %10478, i64 %10480
  store i8 %10468, ptr %10481, align 1, !tbaa !20
  br label %10482

10482:                                            ; preds = %10466, %10452
  br label %10483

10483:                                            ; preds = %10482, %10435
  call void @llvm.lifetime.end.p0(i64 4, ptr %153) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %154) #3
  %10484 = load ptr, ptr %20, align 8, !tbaa !5
  %10485 = load i32, ptr %22, align 4, !tbaa !16
  %10486 = sext i32 %10485 to i64
  %10487 = getelementptr inbounds ptr, ptr %10484, i64 %10486
  %10488 = load ptr, ptr %10487, align 8, !tbaa !5
  %10489 = load i32, ptr %23, align 4, !tbaa !16
  %10490 = sext i32 %10489 to i64
  %10491 = getelementptr inbounds i8, ptr %10488, i64 %10490
  %10492 = load i8, ptr %10491, align 1, !tbaa !20
  %10493 = zext i8 %10492 to i64
  %10494 = getelementptr inbounds [256 x i32], ptr %16, i64 0, i64 %10493
  %10495 = load i32, ptr %10494, align 4, !tbaa !16
  %10496 = load ptr, ptr %21, align 8, !tbaa !5
  %10497 = load i32, ptr %22, align 4, !tbaa !16
  %10498 = sext i32 %10497 to i64
  %10499 = getelementptr inbounds ptr, ptr %10496, i64 %10498
  %10500 = load ptr, ptr %10499, align 8, !tbaa !5
  %10501 = load i32, ptr %23, align 4, !tbaa !16
  %10502 = sext i32 %10501 to i64
  %10503 = getelementptr inbounds i8, ptr %10500, i64 %10502
  %10504 = load i8, ptr %10503, align 1, !tbaa !20
  %10505 = zext i8 %10504 to i64
  %10506 = getelementptr inbounds [256 x i32], ptr %17, i64 0, i64 %10505
  %10507 = load i32, ptr %10506, align 4, !tbaa !16
  %10508 = add nsw i32 %10495, %10507
  store i32 %10508, ptr %154, align 4, !tbaa !16
  %10509 = load i32, ptr %154, align 4, !tbaa !16
  %10510 = icmp slt i32 %10509, 0
  br i1 %10510, label %10511, label %10525

10511:                                            ; preds = %10483
  %10512 = load ptr, ptr %8, align 8, !tbaa !5
  %10513 = getelementptr inbounds %struct.MImage, ptr %10512, i32 0, i32 3
  %10514 = load i32, ptr %19, align 4, !tbaa !16
  %10515 = sext i32 %10514 to i64
  %10516 = getelementptr inbounds [4 x ptr], ptr %10513, i64 0, i64 %10515
  %10517 = load ptr, ptr %10516, align 8, !tbaa !5
  %10518 = load i32, ptr %22, align 4, !tbaa !16
  %10519 = sext i32 %10518 to i64
  %10520 = getelementptr inbounds ptr, ptr %10517, i64 %10519
  %10521 = load ptr, ptr %10520, align 8, !tbaa !5
  %10522 = load i32, ptr %23, align 4, !tbaa !16
  %10523 = sext i32 %10522 to i64
  %10524 = getelementptr inbounds i8, ptr %10521, i64 %10523
  store i8 0, ptr %10524, align 1, !tbaa !20
  br label %10559

10525:                                            ; preds = %10483
  %10526 = load i32, ptr %154, align 4, !tbaa !16
  %10527 = icmp sgt i32 %10526, 255
  br i1 %10527, label %10528, label %10542

10528:                                            ; preds = %10525
  %10529 = load ptr, ptr %8, align 8, !tbaa !5
  %10530 = getelementptr inbounds %struct.MImage, ptr %10529, i32 0, i32 3
  %10531 = load i32, ptr %19, align 4, !tbaa !16
  %10532 = sext i32 %10531 to i64
  %10533 = getelementptr inbounds [4 x ptr], ptr %10530, i64 0, i64 %10532
  %10534 = load ptr, ptr %10533, align 8, !tbaa !5
  %10535 = load i32, ptr %22, align 4, !tbaa !16
  %10536 = sext i32 %10535 to i64
  %10537 = getelementptr inbounds ptr, ptr %10534, i64 %10536
  %10538 = load ptr, ptr %10537, align 8, !tbaa !5
  %10539 = load i32, ptr %23, align 4, !tbaa !16
  %10540 = sext i32 %10539 to i64
  %10541 = getelementptr inbounds i8, ptr %10538, i64 %10540
  store i8 -1, ptr %10541, align 1, !tbaa !20
  br label %10558

10542:                                            ; preds = %10525
  %10543 = load i32, ptr %154, align 4, !tbaa !16
  %10544 = trunc i32 %10543 to i8
  %10545 = load ptr, ptr %8, align 8, !tbaa !5
  %10546 = getelementptr inbounds %struct.MImage, ptr %10545, i32 0, i32 3
  %10547 = load i32, ptr %19, align 4, !tbaa !16
  %10548 = sext i32 %10547 to i64
  %10549 = getelementptr inbounds [4 x ptr], ptr %10546, i64 0, i64 %10548
  %10550 = load ptr, ptr %10549, align 8, !tbaa !5
  %10551 = load i32, ptr %22, align 4, !tbaa !16
  %10552 = sext i32 %10551 to i64
  %10553 = getelementptr inbounds ptr, ptr %10550, i64 %10552
  %10554 = load ptr, ptr %10553, align 8, !tbaa !5
  %10555 = load i32, ptr %23, align 4, !tbaa !16
  %10556 = sext i32 %10555 to i64
  %10557 = getelementptr inbounds i8, ptr %10554, i64 %10556
  store i8 %10544, ptr %10557, align 1, !tbaa !20
  br label %10558

10558:                                            ; preds = %10542, %10528
  br label %10559

10559:                                            ; preds = %10558, %10511
  call void @llvm.lifetime.end.p0(i64 4, ptr %154) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %155) #3
  %10560 = load ptr, ptr %20, align 8, !tbaa !5
  %10561 = load i32, ptr %22, align 4, !tbaa !16
  %10562 = sext i32 %10561 to i64
  %10563 = getelementptr inbounds ptr, ptr %10560, i64 %10562
  %10564 = load ptr, ptr %10563, align 8, !tbaa !5
  %10565 = load i32, ptr %23, align 4, !tbaa !16
  %10566 = sext i32 %10565 to i64
  %10567 = getelementptr inbounds i8, ptr %10564, i64 %10566
  %10568 = load i8, ptr %10567, align 1, !tbaa !20
  %10569 = zext i8 %10568 to i64
  %10570 = getelementptr inbounds [256 x i32], ptr %16, i64 0, i64 %10569
  %10571 = load i32, ptr %10570, align 4, !tbaa !16
  %10572 = load ptr, ptr %21, align 8, !tbaa !5
  %10573 = load i32, ptr %22, align 4, !tbaa !16
  %10574 = sext i32 %10573 to i64
  %10575 = getelementptr inbounds ptr, ptr %10572, i64 %10574
  %10576 = load ptr, ptr %10575, align 8, !tbaa !5
  %10577 = load i32, ptr %23, align 4, !tbaa !16
  %10578 = sext i32 %10577 to i64
  %10579 = getelementptr inbounds i8, ptr %10576, i64 %10578
  %10580 = load i8, ptr %10579, align 1, !tbaa !20
  %10581 = zext i8 %10580 to i64
  %10582 = getelementptr inbounds [256 x i32], ptr %17, i64 0, i64 %10581
  %10583 = load i32, ptr %10582, align 4, !tbaa !16
  %10584 = add nsw i32 %10571, %10583
  store i32 %10584, ptr %155, align 4, !tbaa !16
  %10585 = load i32, ptr %155, align 4, !tbaa !16
  %10586 = icmp slt i32 %10585, 0
  br i1 %10586, label %10587, label %10601

10587:                                            ; preds = %10559
  %10588 = load ptr, ptr %8, align 8, !tbaa !5
  %10589 = getelementptr inbounds %struct.MImage, ptr %10588, i32 0, i32 3
  %10590 = load i32, ptr %19, align 4, !tbaa !16
  %10591 = sext i32 %10590 to i64
  %10592 = getelementptr inbounds [4 x ptr], ptr %10589, i64 0, i64 %10591
  %10593 = load ptr, ptr %10592, align 8, !tbaa !5
  %10594 = load i32, ptr %22, align 4, !tbaa !16
  %10595 = sext i32 %10594 to i64
  %10596 = getelementptr inbounds ptr, ptr %10593, i64 %10595
  %10597 = load ptr, ptr %10596, align 8, !tbaa !5
  %10598 = load i32, ptr %23, align 4, !tbaa !16
  %10599 = sext i32 %10598 to i64
  %10600 = getelementptr inbounds i8, ptr %10597, i64 %10599
  store i8 0, ptr %10600, align 1, !tbaa !20
  br label %10635

10601:                                            ; preds = %10559
  %10602 = load i32, ptr %155, align 4, !tbaa !16
  %10603 = icmp sgt i32 %10602, 255
  br i1 %10603, label %10604, label %10618

10604:                                            ; preds = %10601
  %10605 = load ptr, ptr %8, align 8, !tbaa !5
  %10606 = getelementptr inbounds %struct.MImage, ptr %10605, i32 0, i32 3
  %10607 = load i32, ptr %19, align 4, !tbaa !16
  %10608 = sext i32 %10607 to i64
  %10609 = getelementptr inbounds [4 x ptr], ptr %10606, i64 0, i64 %10608
  %10610 = load ptr, ptr %10609, align 8, !tbaa !5
  %10611 = load i32, ptr %22, align 4, !tbaa !16
  %10612 = sext i32 %10611 to i64
  %10613 = getelementptr inbounds ptr, ptr %10610, i64 %10612
  %10614 = load ptr, ptr %10613, align 8, !tbaa !5
  %10615 = load i32, ptr %23, align 4, !tbaa !16
  %10616 = sext i32 %10615 to i64
  %10617 = getelementptr inbounds i8, ptr %10614, i64 %10616
  store i8 -1, ptr %10617, align 1, !tbaa !20
  br label %10634

10618:                                            ; preds = %10601
  %10619 = load i32, ptr %155, align 4, !tbaa !16
  %10620 = trunc i32 %10619 to i8
  %10621 = load ptr, ptr %8, align 8, !tbaa !5
  %10622 = getelementptr inbounds %struct.MImage, ptr %10621, i32 0, i32 3
  %10623 = load i32, ptr %19, align 4, !tbaa !16
  %10624 = sext i32 %10623 to i64
  %10625 = getelementptr inbounds [4 x ptr], ptr %10622, i64 0, i64 %10624
  %10626 = load ptr, ptr %10625, align 8, !tbaa !5
  %10627 = load i32, ptr %22, align 4, !tbaa !16
  %10628 = sext i32 %10627 to i64
  %10629 = getelementptr inbounds ptr, ptr %10626, i64 %10628
  %10630 = load ptr, ptr %10629, align 8, !tbaa !5
  %10631 = load i32, ptr %23, align 4, !tbaa !16
  %10632 = sext i32 %10631 to i64
  %10633 = getelementptr inbounds i8, ptr %10630, i64 %10632
  store i8 %10620, ptr %10633, align 1, !tbaa !20
  br label %10634

10634:                                            ; preds = %10618, %10604
  br label %10635

10635:                                            ; preds = %10634, %10587
  call void @llvm.lifetime.end.p0(i64 4, ptr %155) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %156) #3
  %10636 = load ptr, ptr %20, align 8, !tbaa !5
  %10637 = load i32, ptr %22, align 4, !tbaa !16
  %10638 = sext i32 %10637 to i64
  %10639 = getelementptr inbounds ptr, ptr %10636, i64 %10638
  %10640 = load ptr, ptr %10639, align 8, !tbaa !5
  %10641 = load i32, ptr %23, align 4, !tbaa !16
  %10642 = sext i32 %10641 to i64
  %10643 = getelementptr inbounds i8, ptr %10640, i64 %10642
  %10644 = load i8, ptr %10643, align 1, !tbaa !20
  %10645 = zext i8 %10644 to i64
  %10646 = getelementptr inbounds [256 x i32], ptr %16, i64 0, i64 %10645
  %10647 = load i32, ptr %10646, align 4, !tbaa !16
  %10648 = load ptr, ptr %21, align 8, !tbaa !5
  %10649 = load i32, ptr %22, align 4, !tbaa !16
  %10650 = sext i32 %10649 to i64
  %10651 = getelementptr inbounds ptr, ptr %10648, i64 %10650
  %10652 = load ptr, ptr %10651, align 8, !tbaa !5
  %10653 = load i32, ptr %23, align 4, !tbaa !16
  %10654 = sext i32 %10653 to i64
  %10655 = getelementptr inbounds i8, ptr %10652, i64 %10654
  %10656 = load i8, ptr %10655, align 1, !tbaa !20
  %10657 = zext i8 %10656 to i64
  %10658 = getelementptr inbounds [256 x i32], ptr %17, i64 0, i64 %10657
  %10659 = load i32, ptr %10658, align 4, !tbaa !16
  %10660 = add nsw i32 %10647, %10659
  store i32 %10660, ptr %156, align 4, !tbaa !16
  %10661 = load i32, ptr %156, align 4, !tbaa !16
  %10662 = icmp slt i32 %10661, 0
  br i1 %10662, label %10663, label %10677

10663:                                            ; preds = %10635
  %10664 = load ptr, ptr %8, align 8, !tbaa !5
  %10665 = getelementptr inbounds %struct.MImage, ptr %10664, i32 0, i32 3
  %10666 = load i32, ptr %19, align 4, !tbaa !16
  %10667 = sext i32 %10666 to i64
  %10668 = getelementptr inbounds [4 x ptr], ptr %10665, i64 0, i64 %10667
  %10669 = load ptr, ptr %10668, align 8, !tbaa !5
  %10670 = load i32, ptr %22, align 4, !tbaa !16
  %10671 = sext i32 %10670 to i64
  %10672 = getelementptr inbounds ptr, ptr %10669, i64 %10671
  %10673 = load ptr, ptr %10672, align 8, !tbaa !5
  %10674 = load i32, ptr %23, align 4, !tbaa !16
  %10675 = sext i32 %10674 to i64
  %10676 = getelementptr inbounds i8, ptr %10673, i64 %10675
  store i8 0, ptr %10676, align 1, !tbaa !20
  br label %10711

10677:                                            ; preds = %10635
  %10678 = load i32, ptr %156, align 4, !tbaa !16
  %10679 = icmp sgt i32 %10678, 255
  br i1 %10679, label %10680, label %10694

10680:                                            ; preds = %10677
  %10681 = load ptr, ptr %8, align 8, !tbaa !5
  %10682 = getelementptr inbounds %struct.MImage, ptr %10681, i32 0, i32 3
  %10683 = load i32, ptr %19, align 4, !tbaa !16
  %10684 = sext i32 %10683 to i64
  %10685 = getelementptr inbounds [4 x ptr], ptr %10682, i64 0, i64 %10684
  %10686 = load ptr, ptr %10685, align 8, !tbaa !5
  %10687 = load i32, ptr %22, align 4, !tbaa !16
  %10688 = sext i32 %10687 to i64
  %10689 = getelementptr inbounds ptr, ptr %10686, i64 %10688
  %10690 = load ptr, ptr %10689, align 8, !tbaa !5
  %10691 = load i32, ptr %23, align 4, !tbaa !16
  %10692 = sext i32 %10691 to i64
  %10693 = getelementptr inbounds i8, ptr %10690, i64 %10692
  store i8 -1, ptr %10693, align 1, !tbaa !20
  br label %10710

10694:                                            ; preds = %10677
  %10695 = load i32, ptr %156, align 4, !tbaa !16
  %10696 = trunc i32 %10695 to i8
  %10697 = load ptr, ptr %8, align 8, !tbaa !5
  %10698 = getelementptr inbounds %struct.MImage, ptr %10697, i32 0, i32 3
  %10699 = load i32, ptr %19, align 4, !tbaa !16
  %10700 = sext i32 %10699 to i64
  %10701 = getelementptr inbounds [4 x ptr], ptr %10698, i64 0, i64 %10700
  %10702 = load ptr, ptr %10701, align 8, !tbaa !5
  %10703 = load i32, ptr %22, align 4, !tbaa !16
  %10704 = sext i32 %10703 to i64
  %10705 = getelementptr inbounds ptr, ptr %10702, i64 %10704
  %10706 = load ptr, ptr %10705, align 8, !tbaa !5
  %10707 = load i32, ptr %23, align 4, !tbaa !16
  %10708 = sext i32 %10707 to i64
  %10709 = getelementptr inbounds i8, ptr %10706, i64 %10708
  store i8 %10696, ptr %10709, align 1, !tbaa !20
  br label %10710

10710:                                            ; preds = %10694, %10680
  br label %10711

10711:                                            ; preds = %10710, %10663
  call void @llvm.lifetime.end.p0(i64 4, ptr %156) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %157) #3
  %10712 = load ptr, ptr %20, align 8, !tbaa !5
  %10713 = load i32, ptr %22, align 4, !tbaa !16
  %10714 = sext i32 %10713 to i64
  %10715 = getelementptr inbounds ptr, ptr %10712, i64 %10714
  %10716 = load ptr, ptr %10715, align 8, !tbaa !5
  %10717 = load i32, ptr %23, align 4, !tbaa !16
  %10718 = sext i32 %10717 to i64
  %10719 = getelementptr inbounds i8, ptr %10716, i64 %10718
  %10720 = load i8, ptr %10719, align 1, !tbaa !20
  %10721 = zext i8 %10720 to i64
  %10722 = getelementptr inbounds [256 x i32], ptr %16, i64 0, i64 %10721
  %10723 = load i32, ptr %10722, align 4, !tbaa !16
  %10724 = load ptr, ptr %21, align 8, !tbaa !5
  %10725 = load i32, ptr %22, align 4, !tbaa !16
  %10726 = sext i32 %10725 to i64
  %10727 = getelementptr inbounds ptr, ptr %10724, i64 %10726
  %10728 = load ptr, ptr %10727, align 8, !tbaa !5
  %10729 = load i32, ptr %23, align 4, !tbaa !16
  %10730 = sext i32 %10729 to i64
  %10731 = getelementptr inbounds i8, ptr %10728, i64 %10730
  %10732 = load i8, ptr %10731, align 1, !tbaa !20
  %10733 = zext i8 %10732 to i64
  %10734 = getelementptr inbounds [256 x i32], ptr %17, i64 0, i64 %10733
  %10735 = load i32, ptr %10734, align 4, !tbaa !16
  %10736 = add nsw i32 %10723, %10735
  store i32 %10736, ptr %157, align 4, !tbaa !16
  %10737 = load i32, ptr %157, align 4, !tbaa !16
  %10738 = icmp slt i32 %10737, 0
  br i1 %10738, label %10739, label %10753

10739:                                            ; preds = %10711
  %10740 = load ptr, ptr %8, align 8, !tbaa !5
  %10741 = getelementptr inbounds %struct.MImage, ptr %10740, i32 0, i32 3
  %10742 = load i32, ptr %19, align 4, !tbaa !16
  %10743 = sext i32 %10742 to i64
  %10744 = getelementptr inbounds [4 x ptr], ptr %10741, i64 0, i64 %10743
  %10745 = load ptr, ptr %10744, align 8, !tbaa !5
  %10746 = load i32, ptr %22, align 4, !tbaa !16
  %10747 = sext i32 %10746 to i64
  %10748 = getelementptr inbounds ptr, ptr %10745, i64 %10747
  %10749 = load ptr, ptr %10748, align 8, !tbaa !5
  %10750 = load i32, ptr %23, align 4, !tbaa !16
  %10751 = sext i32 %10750 to i64
  %10752 = getelementptr inbounds i8, ptr %10749, i64 %10751
  store i8 0, ptr %10752, align 1, !tbaa !20
  br label %10787

10753:                                            ; preds = %10711
  %10754 = load i32, ptr %157, align 4, !tbaa !16
  %10755 = icmp sgt i32 %10754, 255
  br i1 %10755, label %10756, label %10770

10756:                                            ; preds = %10753
  %10757 = load ptr, ptr %8, align 8, !tbaa !5
  %10758 = getelementptr inbounds %struct.MImage, ptr %10757, i32 0, i32 3
  %10759 = load i32, ptr %19, align 4, !tbaa !16
  %10760 = sext i32 %10759 to i64
  %10761 = getelementptr inbounds [4 x ptr], ptr %10758, i64 0, i64 %10760
  %10762 = load ptr, ptr %10761, align 8, !tbaa !5
  %10763 = load i32, ptr %22, align 4, !tbaa !16
  %10764 = sext i32 %10763 to i64
  %10765 = getelementptr inbounds ptr, ptr %10762, i64 %10764
  %10766 = load ptr, ptr %10765, align 8, !tbaa !5
  %10767 = load i32, ptr %23, align 4, !tbaa !16
  %10768 = sext i32 %10767 to i64
  %10769 = getelementptr inbounds i8, ptr %10766, i64 %10768
  store i8 -1, ptr %10769, align 1, !tbaa !20
  br label %10786

10770:                                            ; preds = %10753
  %10771 = load i32, ptr %157, align 4, !tbaa !16
  %10772 = trunc i32 %10771 to i8
  %10773 = load ptr, ptr %8, align 8, !tbaa !5
  %10774 = getelementptr inbounds %struct.MImage, ptr %10773, i32 0, i32 3
  %10775 = load i32, ptr %19, align 4, !tbaa !16
  %10776 = sext i32 %10775 to i64
  %10777 = getelementptr inbounds [4 x ptr], ptr %10774, i64 0, i64 %10776
  %10778 = load ptr, ptr %10777, align 8, !tbaa !5
  %10779 = load i32, ptr %22, align 4, !tbaa !16
  %10780 = sext i32 %10779 to i64
  %10781 = getelementptr inbounds ptr, ptr %10778, i64 %10780
  %10782 = load ptr, ptr %10781, align 8, !tbaa !5
  %10783 = load i32, ptr %23, align 4, !tbaa !16
  %10784 = sext i32 %10783 to i64
  %10785 = getelementptr inbounds i8, ptr %10782, i64 %10784
  store i8 %10772, ptr %10785, align 1, !tbaa !20
  br label %10786

10786:                                            ; preds = %10770, %10756
  br label %10787

10787:                                            ; preds = %10786, %10739
  call void @llvm.lifetime.end.p0(i64 4, ptr %157) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %158) #3
  %10788 = load ptr, ptr %20, align 8, !tbaa !5
  %10789 = load i32, ptr %22, align 4, !tbaa !16
  %10790 = sext i32 %10789 to i64
  %10791 = getelementptr inbounds ptr, ptr %10788, i64 %10790
  %10792 = load ptr, ptr %10791, align 8, !tbaa !5
  %10793 = load i32, ptr %23, align 4, !tbaa !16
  %10794 = sext i32 %10793 to i64
  %10795 = getelementptr inbounds i8, ptr %10792, i64 %10794
  %10796 = load i8, ptr %10795, align 1, !tbaa !20
  %10797 = zext i8 %10796 to i64
  %10798 = getelementptr inbounds [256 x i32], ptr %16, i64 0, i64 %10797
  %10799 = load i32, ptr %10798, align 4, !tbaa !16
  %10800 = load ptr, ptr %21, align 8, !tbaa !5
  %10801 = load i32, ptr %22, align 4, !tbaa !16
  %10802 = sext i32 %10801 to i64
  %10803 = getelementptr inbounds ptr, ptr %10800, i64 %10802
  %10804 = load ptr, ptr %10803, align 8, !tbaa !5
  %10805 = load i32, ptr %23, align 4, !tbaa !16
  %10806 = sext i32 %10805 to i64
  %10807 = getelementptr inbounds i8, ptr %10804, i64 %10806
  %10808 = load i8, ptr %10807, align 1, !tbaa !20
  %10809 = zext i8 %10808 to i64
  %10810 = getelementptr inbounds [256 x i32], ptr %17, i64 0, i64 %10809
  %10811 = load i32, ptr %10810, align 4, !tbaa !16
  %10812 = add nsw i32 %10799, %10811
  store i32 %10812, ptr %158, align 4, !tbaa !16
  %10813 = load i32, ptr %158, align 4, !tbaa !16
  %10814 = icmp slt i32 %10813, 0
  br i1 %10814, label %10815, label %10829

10815:                                            ; preds = %10787
  %10816 = load ptr, ptr %8, align 8, !tbaa !5
  %10817 = getelementptr inbounds %struct.MImage, ptr %10816, i32 0, i32 3
  %10818 = load i32, ptr %19, align 4, !tbaa !16
  %10819 = sext i32 %10818 to i64
  %10820 = getelementptr inbounds [4 x ptr], ptr %10817, i64 0, i64 %10819
  %10821 = load ptr, ptr %10820, align 8, !tbaa !5
  %10822 = load i32, ptr %22, align 4, !tbaa !16
  %10823 = sext i32 %10822 to i64
  %10824 = getelementptr inbounds ptr, ptr %10821, i64 %10823
  %10825 = load ptr, ptr %10824, align 8, !tbaa !5
  %10826 = load i32, ptr %23, align 4, !tbaa !16
  %10827 = sext i32 %10826 to i64
  %10828 = getelementptr inbounds i8, ptr %10825, i64 %10827
  store i8 0, ptr %10828, align 1, !tbaa !20
  br label %10863

10829:                                            ; preds = %10787
  %10830 = load i32, ptr %158, align 4, !tbaa !16
  %10831 = icmp sgt i32 %10830, 255
  br i1 %10831, label %10832, label %10846

10832:                                            ; preds = %10829
  %10833 = load ptr, ptr %8, align 8, !tbaa !5
  %10834 = getelementptr inbounds %struct.MImage, ptr %10833, i32 0, i32 3
  %10835 = load i32, ptr %19, align 4, !tbaa !16
  %10836 = sext i32 %10835 to i64
  %10837 = getelementptr inbounds [4 x ptr], ptr %10834, i64 0, i64 %10836
  %10838 = load ptr, ptr %10837, align 8, !tbaa !5
  %10839 = load i32, ptr %22, align 4, !tbaa !16
  %10840 = sext i32 %10839 to i64
  %10841 = getelementptr inbounds ptr, ptr %10838, i64 %10840
  %10842 = load ptr, ptr %10841, align 8, !tbaa !5
  %10843 = load i32, ptr %23, align 4, !tbaa !16
  %10844 = sext i32 %10843 to i64
  %10845 = getelementptr inbounds i8, ptr %10842, i64 %10844
  store i8 -1, ptr %10845, align 1, !tbaa !20
  br label %10862

10846:                                            ; preds = %10829
  %10847 = load i32, ptr %158, align 4, !tbaa !16
  %10848 = trunc i32 %10847 to i8
  %10849 = load ptr, ptr %8, align 8, !tbaa !5
  %10850 = getelementptr inbounds %struct.MImage, ptr %10849, i32 0, i32 3
  %10851 = load i32, ptr %19, align 4, !tbaa !16
  %10852 = sext i32 %10851 to i64
  %10853 = getelementptr inbounds [4 x ptr], ptr %10850, i64 0, i64 %10852
  %10854 = load ptr, ptr %10853, align 8, !tbaa !5
  %10855 = load i32, ptr %22, align 4, !tbaa !16
  %10856 = sext i32 %10855 to i64
  %10857 = getelementptr inbounds ptr, ptr %10854, i64 %10856
  %10858 = load ptr, ptr %10857, align 8, !tbaa !5
  %10859 = load i32, ptr %23, align 4, !tbaa !16
  %10860 = sext i32 %10859 to i64
  %10861 = getelementptr inbounds i8, ptr %10858, i64 %10860
  store i8 %10848, ptr %10861, align 1, !tbaa !20
  br label %10862

10862:                                            ; preds = %10846, %10832
  br label %10863

10863:                                            ; preds = %10862, %10815
  call void @llvm.lifetime.end.p0(i64 4, ptr %158) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %159) #3
  %10864 = load ptr, ptr %20, align 8, !tbaa !5
  %10865 = load i32, ptr %22, align 4, !tbaa !16
  %10866 = sext i32 %10865 to i64
  %10867 = getelementptr inbounds ptr, ptr %10864, i64 %10866
  %10868 = load ptr, ptr %10867, align 8, !tbaa !5
  %10869 = load i32, ptr %23, align 4, !tbaa !16
  %10870 = sext i32 %10869 to i64
  %10871 = getelementptr inbounds i8, ptr %10868, i64 %10870
  %10872 = load i8, ptr %10871, align 1, !tbaa !20
  %10873 = zext i8 %10872 to i64
  %10874 = getelementptr inbounds [256 x i32], ptr %16, i64 0, i64 %10873
  %10875 = load i32, ptr %10874, align 4, !tbaa !16
  %10876 = load ptr, ptr %21, align 8, !tbaa !5
  %10877 = load i32, ptr %22, align 4, !tbaa !16
  %10878 = sext i32 %10877 to i64
  %10879 = getelementptr inbounds ptr, ptr %10876, i64 %10878
  %10880 = load ptr, ptr %10879, align 8, !tbaa !5
  %10881 = load i32, ptr %23, align 4, !tbaa !16
  %10882 = sext i32 %10881 to i64
  %10883 = getelementptr inbounds i8, ptr %10880, i64 %10882
  %10884 = load i8, ptr %10883, align 1, !tbaa !20
  %10885 = zext i8 %10884 to i64
  %10886 = getelementptr inbounds [256 x i32], ptr %17, i64 0, i64 %10885
  %10887 = load i32, ptr %10886, align 4, !tbaa !16
  %10888 = add nsw i32 %10875, %10887
  store i32 %10888, ptr %159, align 4, !tbaa !16
  %10889 = load i32, ptr %159, align 4, !tbaa !16
  %10890 = icmp slt i32 %10889, 0
  br i1 %10890, label %10891, label %10905

10891:                                            ; preds = %10863
  %10892 = load ptr, ptr %8, align 8, !tbaa !5
  %10893 = getelementptr inbounds %struct.MImage, ptr %10892, i32 0, i32 3
  %10894 = load i32, ptr %19, align 4, !tbaa !16
  %10895 = sext i32 %10894 to i64
  %10896 = getelementptr inbounds [4 x ptr], ptr %10893, i64 0, i64 %10895
  %10897 = load ptr, ptr %10896, align 8, !tbaa !5
  %10898 = load i32, ptr %22, align 4, !tbaa !16
  %10899 = sext i32 %10898 to i64
  %10900 = getelementptr inbounds ptr, ptr %10897, i64 %10899
  %10901 = load ptr, ptr %10900, align 8, !tbaa !5
  %10902 = load i32, ptr %23, align 4, !tbaa !16
  %10903 = sext i32 %10902 to i64
  %10904 = getelementptr inbounds i8, ptr %10901, i64 %10903
  store i8 0, ptr %10904, align 1, !tbaa !20
  br label %10939

10905:                                            ; preds = %10863
  %10906 = load i32, ptr %159, align 4, !tbaa !16
  %10907 = icmp sgt i32 %10906, 255
  br i1 %10907, label %10908, label %10922

10908:                                            ; preds = %10905
  %10909 = load ptr, ptr %8, align 8, !tbaa !5
  %10910 = getelementptr inbounds %struct.MImage, ptr %10909, i32 0, i32 3
  %10911 = load i32, ptr %19, align 4, !tbaa !16
  %10912 = sext i32 %10911 to i64
  %10913 = getelementptr inbounds [4 x ptr], ptr %10910, i64 0, i64 %10912
  %10914 = load ptr, ptr %10913, align 8, !tbaa !5
  %10915 = load i32, ptr %22, align 4, !tbaa !16
  %10916 = sext i32 %10915 to i64
  %10917 = getelementptr inbounds ptr, ptr %10914, i64 %10916
  %10918 = load ptr, ptr %10917, align 8, !tbaa !5
  %10919 = load i32, ptr %23, align 4, !tbaa !16
  %10920 = sext i32 %10919 to i64
  %10921 = getelementptr inbounds i8, ptr %10918, i64 %10920
  store i8 -1, ptr %10921, align 1, !tbaa !20
  br label %10938

10922:                                            ; preds = %10905
  %10923 = load i32, ptr %159, align 4, !tbaa !16
  %10924 = trunc i32 %10923 to i8
  %10925 = load ptr, ptr %8, align 8, !tbaa !5
  %10926 = getelementptr inbounds %struct.MImage, ptr %10925, i32 0, i32 3
  %10927 = load i32, ptr %19, align 4, !tbaa !16
  %10928 = sext i32 %10927 to i64
  %10929 = getelementptr inbounds [4 x ptr], ptr %10926, i64 0, i64 %10928
  %10930 = load ptr, ptr %10929, align 8, !tbaa !5
  %10931 = load i32, ptr %22, align 4, !tbaa !16
  %10932 = sext i32 %10931 to i64
  %10933 = getelementptr inbounds ptr, ptr %10930, i64 %10932
  %10934 = load ptr, ptr %10933, align 8, !tbaa !5
  %10935 = load i32, ptr %23, align 4, !tbaa !16
  %10936 = sext i32 %10935 to i64
  %10937 = getelementptr inbounds i8, ptr %10934, i64 %10936
  store i8 %10924, ptr %10937, align 1, !tbaa !20
  br label %10938

10938:                                            ; preds = %10922, %10908
  br label %10939

10939:                                            ; preds = %10938, %10891
  call void @llvm.lifetime.end.p0(i64 4, ptr %159) #3
  br label %10940

10940:                                            ; preds = %10939, %9792
  br label %10941

10941:                                            ; preds = %10940, %9791
  br label %10942

10942:                                            ; preds = %10941, %8719
  br label %10943

10943:                                            ; preds = %10942, %7723
  br label %10944

10944:                                            ; preds = %10943, %6803
  br label %10945

10945:                                            ; preds = %10944, %5959
  br label %10946

10946:                                            ; preds = %10945, %5191
  br label %10947

10947:                                            ; preds = %10946, %4499
  br label %10948

10948:                                            ; preds = %10947, %3883
  br label %10949

10949:                                            ; preds = %10948, %3343
  br label %10950

10950:                                            ; preds = %10949, %2879
  br label %10951

10951:                                            ; preds = %10950, %2491
  br label %10952

10952:                                            ; preds = %10951, %2179
  br label %10953

10953:                                            ; preds = %10952, %1943
  br label %10954

10954:                                            ; preds = %10953, %1783
  br label %10955

10955:                                            ; preds = %10954, %1699
  call void @llvm.lifetime.end.p0(i64 4, ptr %23) #3
  br label %10956

10956:                                            ; preds = %10955
  br label %10957

10957:                                            ; preds = %10956
  br label %10958

10958:                                            ; preds = %10957
  %10959 = load i32, ptr %22, align 4, !tbaa !16
  %10960 = add nsw i32 %10959, 1
  store i32 %10960, ptr %22, align 4, !tbaa !16
  br label %457, !llvm.loop !22

10961:                                            ; preds = %457
  call void @llvm.lifetime.end.p0(i64 4, ptr %22) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %21) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %20) #3
  br label %10962

10962:                                            ; preds = %10961
  %10963 = load i32, ptr %19, align 4, !tbaa !16
  %10964 = add nsw i32 %10963, 1
  store i32 %10964, ptr %19, align 4, !tbaa !16
  br label %424, !llvm.loop !23

10965:                                            ; preds = %430
  call void @llvm.lifetime.end.p0(i64 1024, ptr %17) #3
  call void @llvm.lifetime.end.p0(i64 1024, ptr %16) #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 = !{!10, !10, i64 0}
!10 = !{!"float", !7, i64 0}
!11 = !{!12, !13, i64 0}
!12 = !{!"MImage", !13, i64 0, !13, i64 4, !13, i64 8, !7, i64 16, !6, i64 48}
!13 = !{!"int", !7, i64 0}
!14 = !{!12, !13, i64 4}
!15 = !{!12, !13, i64 8}
!16 = !{!13, !13, i64 0}
!17 = !{!12, !6, i64 48}
!18 = distinct !{!18, !19}
!19 = !{!"llvm.loop.mustprogress"}
!20 = !{!7, !7, i64 0}
!21 = distinct !{!21, !19}
!22 = distinct !{!22, !19}
!23 = distinct !{!23, !19}


; 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 = external hidden unnamed_addr constant [78 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [14 x i8], align 1
@__FUNCTION__.mImageDataWeightAdd = external hidden unnamed_addr constant [20 x i8], align 1

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

declare void @m_Exception(i32 noundef, i32 noundef, ptr noundef, i32 noundef, ptr noundef, ptr noundef, ...) local_unnamed_addr #1

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

; Function Attrs: nounwind uwtable
declare dso_local void @ImageRedefine(ptr noundef, i32 noundef, i32 noundef, i32 noundef, ptr noundef) local_unnamed_addr #2

; Function Attrs: nounwind uwtable
define dso_local void @mImageDataWeightAdd(ptr noundef %0, ptr noundef %1, ptr noundef %2, float noundef %3, float noundef %4) local_unnamed_addr #2 {
  %6 = alloca [256 x i32], align 16
  %7 = alloca [256 x i32], align 16
  %8 = getelementptr i8, ptr %0, i64 16
  %9 = icmp eq ptr %8, inttoptr (i64 -1 to ptr)
  br i1 %9, label %.thread, label %switch.early.test

switch.early.test:                                ; preds = %5
  %magicptr = ptrtoint ptr %0 to i64
  switch i64 %magicptr, label %10 [
    i64 -1, label %.thread
    i64 0, label %.thread
  ]

10:                                               ; preds = %switch.early.test
  %11 = load i32, ptr %0, align 8, !tbaa !5
  %12 = icmp slt i32 %11, 1
  br i1 %12, label %.thread, label %13

13:                                               ; preds = %10
  %14 = getelementptr inbounds i8, ptr %0, i64 4
  %15 = load i32, ptr %14, align 4, !tbaa !11
  %16 = icmp slt i32 %15, 1
  br i1 %16, label %.thread, label %17

17:                                               ; preds = %13
  %18 = getelementptr inbounds i8, ptr %0, i64 8
  %19 = load i32, ptr %18, align 8, !tbaa !12
  %20 = icmp slt i32 %19, 1
  br i1 %20, label %.thread, label %21

21:                                               ; preds = %17
  %magicptr3139 = ptrtoint ptr %1 to i64
  switch i64 %magicptr3139, label %22 [
    i64 -1, label %.thread
    i64 0, label %.thread
  ]

22:                                               ; preds = %21
  %23 = getelementptr inbounds i8, ptr %1, i64 16
  %24 = icmp eq ptr %23, inttoptr (i64 -1 to ptr)
  br i1 %24, label %.thread, label %25

25:                                               ; preds = %22
  %26 = load i32, ptr %1, align 8, !tbaa !5
  %27 = icmp slt i32 %26, 1
  br i1 %27, label %.thread, label %28

28:                                               ; preds = %25
  %29 = getelementptr inbounds i8, ptr %1, i64 4
  %30 = load i32, ptr %29, align 4, !tbaa !11
  %31 = icmp slt i32 %30, 1
  br i1 %31, label %.thread, label %32

32:                                               ; preds = %28
  %33 = getelementptr inbounds i8, ptr %1, i64 8
  %34 = load i32, ptr %33, align 8, !tbaa !12
  %35 = icmp slt i32 %34, 1
  br i1 %35, label %.thread, label %36

.thread:                                          ; preds = %22, %25, %28, %21, %21, %5, %switch.early.test, %switch.early.test, %10, %13, %17, %32
  tail call void (i32, i32, ptr, i32, ptr, ptr, ...) @m_Exception(i32 noundef 1, i32 noundef -1, ptr noundef nonnull @.str, i32 noundef 550, ptr noundef nonnull @__FUNCTION__.mImageDataWeightAdd, ptr noundef nonnull @.str.2) #4
  %.phi.trans.insert = getelementptr inbounds i8, ptr %0, i64 4
  %.pre = load i32, ptr %.phi.trans.insert, align 4, !tbaa !11
  %.phi.trans.insert3167 = getelementptr inbounds i8, ptr %1, i64 4
  %.pre3168 = load i32, ptr %.phi.trans.insert3167, align 4, !tbaa !11
  br label %36

36:                                               ; preds = %.thread, %32
  %37 = phi i32 [ %.pre3168, %.thread ], [ %30, %32 ]
  %38 = phi i32 [ %.pre, %.thread ], [ %15, %32 ]
  %39 = getelementptr inbounds i8, ptr %0, i64 4
  %.not = icmp eq i32 %38, %37
  br i1 %.not, label %40, label %.thread3143

40:                                               ; preds = %36
  %41 = getelementptr inbounds i8, ptr %0, i64 8
  %42 = load i32, ptr %41, align 8, !tbaa !12
  %43 = getelementptr inbounds i8, ptr %1, i64 8
  %44 = load i32, ptr %43, align 8, !tbaa !12
  %.not3144 = icmp eq i32 %42, %44
  br i1 %.not3144, label %45, label %.thread3143

.thread3143:                                      ; preds = %36, %40
  tail call void (i32, i32, ptr, i32, ptr, ptr, ...) @m_Exception(i32 noundef 1, i32 noundef -1, ptr noundef nonnull @.str, i32 noundef 551, ptr noundef nonnull @__FUNCTION__.mImageDataWeightAdd, ptr noundef nonnull @.str.2) #4
  br label %45

45:                                               ; preds = %.thread3143, %40
  %46 = load i32, ptr %1, align 8, !tbaa !5
  %47 = load i32, ptr %0, align 8, !tbaa !5
  %.not3137 = icmp ne i32 %46, %47
  %48 = icmp ne i32 %46, 1
  %spec.select = and i1 %48, %.not3137
  br i1 %spec.select, label %49, label %50

49:                                               ; preds = %45
  tail call void (i32, i32, ptr, i32, ptr, ptr, ...) @m_Exception(i32 noundef 1, i32 noundef -1, ptr noundef nonnull @.str, i32 noundef 552, ptr noundef nonnull @__FUNCTION__.mImageDataWeightAdd, ptr noundef nonnull @.str.2) #4
  br label %50

50:                                               ; preds = %49, %45
  %magicptr3140 = ptrtoint ptr %2 to i64
  switch i64 %magicptr3140, label %51 [
    i64 -1, label %57
    i64 0, label %57
  ]

51:                                               ; preds = %50
  %52 = load i32, ptr %0, align 8, !tbaa !5
  %53 = load i32, ptr %39, align 4, !tbaa !11
  %54 = getelementptr inbounds i8, ptr %0, i64 8
  %55 = load i32, ptr %54, align 8, !tbaa !12
  %56 = getelementptr inbounds i8, ptr %2, i64 16
  tail call void @ImageRedefine(ptr noundef %2, i32 noundef %52, i32 noundef %53, i32 noundef %55, ptr noundef nonnull %56)
  br label %57

57:                                               ; preds = %50, %50, %51
  %.0 = phi ptr [ %2, %51 ], [ %0, %50 ], [ %0, %50 ]
  %58 = getelementptr inbounds i8, ptr %0, i64 48
  %59 = load ptr, ptr %58, align 8, !tbaa !13
  %magicptr3141 = ptrtoint ptr %59 to i64
  switch i64 %magicptr3141, label %.sink.split [
    i64 0, label %60
    i64 -1, label %60
  ]

60:                                               ; preds = %57, %57
  %61 = getelementptr inbounds i8, ptr %1, i64 48
  %62 = load ptr, ptr %61, align 8, !tbaa !13
  %magicptr3142 = ptrtoint ptr %62 to i64
  switch i64 %magicptr3142, label %.sink.split [
    i64 0, label %vector.ph
    i64 -1, label %vector.ph
  ]

.sink.split:                                      ; preds = %60, %57
  %.sink = phi ptr [ %59, %57 ], [ %62, %60 ]
  %63 = getelementptr inbounds i8, ptr %.0, i64 48
  store ptr %.sink, ptr %63, align 8, !tbaa !13
  br label %vector.ph

vector.ph:                                        ; preds = %.sink.split, %60, %60
  call void @llvm.lifetime.start.p0(i64 1024, ptr nonnull %6) #4
  call void @llvm.lifetime.start.p0(i64 1024, ptr nonnull %7) #4
  %broadcast.splatinsert = insertelement <4 x float> poison, float %3, i64 0
  %broadcast.splat = shufflevector <4 x float> %broadcast.splatinsert, <4 x float> poison, <4 x i32> zeroinitializer
  %broadcast.splatinsert4059 = insertelement <4 x float> poison, float %4, i64 0
  %broadcast.splat4060 = shufflevector <4 x float> %broadcast.splatinsert4059, <4 x float> poison, <4 x i32> zeroinitializer
  br label %vector.body

vector.body:                                      ; preds = %vector.body, %vector.ph
  %index = phi i64 [ 0, %vector.ph ], [ %index.next.1, %vector.body ]
  %vec.ind = phi <4 x i32> [ <i32 0, i32 1, i32 2, i32 3>, %vector.ph ], [ %vec.ind.next.1, %vector.body ]
  %64 = uitofp <4 x i32> %vec.ind to <4 x float>
  %65 = fmul <4 x float> %broadcast.splat, %64
  %66 = fptosi <4 x float> %65 to <4 x i32>
  %67 = getelementptr inbounds [256 x i32], ptr %6, i64 0, i64 %index
  store <4 x i32> %66, ptr %67, align 16, !tbaa !14
  %68 = fmul <4 x float> %broadcast.splat4060, %64
  %69 = fptosi <4 x float> %68 to <4 x i32>
  %70 = getelementptr inbounds [256 x i32], ptr %7, i64 0, i64 %index
  store <4 x i32> %69, ptr %70, align 16, !tbaa !14
  %index.next = or disjoint i64 %index, 4
  %vec.ind.next = add <4 x i32> %vec.ind, <i32 4, i32 4, i32 4, i32 4>
  %71 = uitofp <4 x i32> %vec.ind.next to <4 x float>
  %72 = fmul <4 x float> %broadcast.splat, %71
  %73 = fptosi <4 x float> %72 to <4 x i32>
  %74 = getelementptr inbounds [256 x i32], ptr %6, i64 0, i64 %index.next
  store <4 x i32> %73, ptr %74, align 16, !tbaa !14
  %75 = fmul <4 x float> %broadcast.splat4060, %71
  %76 = fptosi <4 x float> %75 to <4 x i32>
  %77 = getelementptr inbounds [256 x i32], ptr %7, i64 0, i64 %index.next
  store <4 x i32> %76, ptr %77, align 16, !tbaa !14
  %index.next.1 = add nuw nsw i64 %index, 8
  %vec.ind.next.1 = add <4 x i32> %vec.ind, <i32 8, i32 8, i32 8, i32 8>
  %78 = icmp eq i64 %index.next.1, 256
  br i1 %78, label %.preheader3145, label %vector.body, !llvm.loop !15

.preheader3145:                                   ; preds = %vector.body
  %79 = load i32, ptr %.0, align 8, !tbaa !5
  %80 = icmp sgt i32 %79, 0
  br i1 %80, label %.lr.ph3152, label %._crit_edge3153

.lr.ph3152:                                       ; preds = %.preheader3145
  %81 = getelementptr inbounds i8, ptr %1, i64 16
  %82 = getelementptr inbounds i8, ptr %.0, i64 4
  %83 = getelementptr inbounds i8, ptr %.0, i64 8
  %84 = getelementptr inbounds i8, ptr %.0, i64 16
  %85 = load i32, ptr %82, align 4, !tbaa !11
  %86 = icmp sgt i32 %85, 0
  br i1 %86, label %.lr.ph3152.split, label %._crit_edge3153

._crit_edge3153:                                  ; preds = %._crit_edge3150, %.lr.ph3152, %.preheader3145
  call void @llvm.lifetime.end.p0(i64 1024, ptr nonnull %7) #4
  call void @llvm.lifetime.end.p0(i64 1024, ptr nonnull %6) #4
  ret void

.lr.ph3152.split:                                 ; preds = %.lr.ph3152, %._crit_edge3150
  %87 = phi i32 [ %2581, %._crit_edge3150 ], [ %79, %.lr.ph3152 ]
  %88 = phi i32 [ %2582, %._crit_edge3150 ], [ %85, %.lr.ph3152 ]
  %indvars.iv3164 = phi i64 [ %indvars.iv.next3165, %._crit_edge3150 ], [ 0, %.lr.ph3152 ]
  %89 = getelementptr inbounds [4 x ptr], ptr %8, i64 0, i64 %indvars.iv3164
  %90 = load ptr, ptr %89, align 8, !tbaa !19
  %91 = load i32, ptr %1, align 8, !tbaa !5
  %92 = sext i32 %91 to i64
  %.not3138 = icmp slt i64 %indvars.iv3164, %92
  %93 = getelementptr inbounds [4 x ptr], ptr %81, i64 0, i64 %indvars.iv3164
  %.in = select i1 %.not3138, ptr %93, ptr %81
  %94 = load ptr, ptr %.in, align 8, !tbaa !19
  %95 = icmp sgt i32 %88, 0
  br i1 %95, label %.preheader.lr.ph, label %._crit_edge3150

.preheader.lr.ph:                                 ; preds = %.lr.ph3152.split
  %96 = getelementptr inbounds [4 x ptr], ptr %84, i64 0, i64 %indvars.iv3164
  br label %.preheader

.preheader:                                       ; preds = %.preheader.lr.ph, %2577
  %indvars.iv3161 = phi i64 [ 0, %.preheader.lr.ph ], [ %indvars.iv.next3162, %2577 ]
  %97 = load i32, ptr %83, align 8, !tbaa !12
  %98 = icmp sgt i32 %97, 15
  br i1 %98, label %.lr.ph, label %._crit_edge

.lr.ph:                                           ; preds = %.preheader
  %99 = getelementptr inbounds ptr, ptr %90, i64 %indvars.iv3161
  %100 = getelementptr inbounds ptr, ptr %94, i64 %indvars.iv3161
  br label %101

101:                                              ; preds = %.lr.ph, %101
  %indvars.iv3158 = phi i64 [ 0, %.lr.ph ], [ %indvars.iv.next3159, %101 ]
  %102 = load ptr, ptr %99, align 8, !tbaa !19
  %103 = getelementptr inbounds i8, ptr %102, i64 %indvars.iv3158
  %104 = load i8, ptr %103, align 1, !tbaa !20
  %105 = zext i8 %104 to i64
  %106 = getelementptr inbounds [256 x i32], ptr %6, i64 0, i64 %105
  %107 = load i32, ptr %106, align 4, !tbaa !14
  %108 = load ptr, ptr %100, align 8, !tbaa !19
  %109 = getelementptr inbounds i8, ptr %108, i64 %indvars.iv3158
  %110 = load i8, ptr %109, align 1, !tbaa !20
  %111 = zext i8 %110 to i64
  %112 = getelementptr inbounds [256 x i32], ptr %7, i64 0, i64 %111
  %113 = load i32, ptr %112, align 4, !tbaa !14
  %114 = add nsw i32 %113, %107
  %115 = icmp slt i32 %114, 0
  %spec.select37853921 = tail call i32 @llvm.umin.i32(i32 %114, i32 255)
  %spec.select3785 = trunc nuw i32 %spec.select37853921 to i8
  %.sink3173 = select i1 %115, i8 0, i8 %spec.select3785
  %116 = load ptr, ptr %96, align 8, !tbaa !19
  %117 = getelementptr inbounds ptr, ptr %116, i64 %indvars.iv3161
  %118 = load ptr, ptr %117, align 8, !tbaa !19
  %119 = getelementptr inbounds i8, ptr %118, i64 %indvars.iv3158
  store i8 %.sink3173, ptr %119, align 1, !tbaa !20
  %120 = load ptr, ptr %99, align 8, !tbaa !19
  %121 = getelementptr inbounds i8, ptr %120, i64 %indvars.iv3158
  %122 = load i8, ptr %121, align 1, !tbaa !20
  %123 = zext i8 %122 to i64
  %124 = getelementptr inbounds [256 x i32], ptr %6, i64 0, i64 %123
  %125 = load i32, ptr %124, align 4, !tbaa !14
  %126 = load ptr, ptr %100, align 8, !tbaa !19
  %127 = getelementptr inbounds i8, ptr %126, i64 %indvars.iv3158
  %128 = load i8, ptr %127, align 1, !tbaa !20
  %129 = zext i8 %128 to i64
  %130 = getelementptr inbounds [256 x i32], ptr %7, i64 0, i64 %129
  %131 = load i32, ptr %130, align 4, !tbaa !14
  %132 = add nsw i32 %131, %125
  %133 = icmp slt i32 %132, 0
  %spec.select37863922 = tail call i32 @llvm.umin.i32(i32 %132, i32 255)
  %spec.select3786 = trunc nuw i32 %spec.select37863922 to i8
  %.sink3178 = select i1 %133, i8 0, i8 %spec.select3786
  %134 = load ptr, ptr %96, align 8, !tbaa !19
  %135 = getelementptr inbounds ptr, ptr %134, i64 %indvars.iv3161
  %136 = load ptr, ptr %135, align 8, !tbaa !19
  %137 = getelementptr inbounds i8, ptr %136, i64 %indvars.iv3158
  store i8 %.sink3178, ptr %137, align 1, !tbaa !20
  %138 = load ptr, ptr %99, align 8, !tbaa !19
  %139 = getelementptr inbounds i8, ptr %138, i64 %indvars.iv3158
  %140 = load i8, ptr %139, align 1, !tbaa !20
  %141 = zext i8 %140 to i64
  %142 = getelementptr inbounds [256 x i32], ptr %6, i64 0, i64 %141
  %143 = load i32, ptr %142, align 4, !tbaa !14
  %144 = load ptr, ptr %100, align 8, !tbaa !19
  %145 = getelementptr inbounds i8, ptr %144, i64 %indvars.iv3158
  %146 = load i8, ptr %145, align 1, !tbaa !20
  %147 = zext i8 %146 to i64
  %148 = getelementptr inbounds [256 x i32], ptr %7, i64 0, i64 %147
  %149 = load i32, ptr %148, align 4, !tbaa !14
  %150 = add nsw i32 %149, %143
  %151 = icmp slt i32 %150, 0
  %spec.select37873923 = tail call i32 @llvm.umin.i32(i32 %150, i32 255)
  %spec.select3787 = trunc nuw i32 %spec.select37873923 to i8
  %.sink3183 = select i1 %151, i8 0, i8 %spec.select3787
  %152 = load ptr, ptr %96, align 8, !tbaa !19
  %153 = getelementptr inbounds ptr, ptr %152, i64 %indvars.iv3161
  %154 = load ptr, ptr %153, align 8, !tbaa !19
  %155 = getelementptr inbounds i8, ptr %154, i64 %indvars.iv3158
  store i8 %.sink3183, ptr %155, align 1, !tbaa !20
  %156 = load ptr, ptr %99, align 8, !tbaa !19
  %157 = getelementptr inbounds i8, ptr %156, i64 %indvars.iv3158
  %158 = load i8, ptr %157, align 1, !tbaa !20
  %159 = zext i8 %158 to i64
  %160 = getelementptr inbounds [256 x i32], ptr %6, i64 0, i64 %159
  %161 = load i32, ptr %160, align 4, !tbaa !14
  %162 = load ptr, ptr %100, align 8, !tbaa !19
  %163 = getelementptr inbounds i8, ptr %162, i64 %indvars.iv3158
  %164 = load i8, ptr %163, align 1, !tbaa !20
  %165 = zext i8 %164 to i64
  %166 = getelementptr inbounds [256 x i32], ptr %7, i64 0, i64 %165
  %167 = load i32, ptr %166, align 4, !tbaa !14
  %168 = add nsw i32 %167, %161
  %169 = icmp slt i32 %168, 0
  %spec.select37883924 = tail call i32 @llvm.umin.i32(i32 %168, i32 255)
  %spec.select3788 = trunc nuw i32 %spec.select37883924 to i8
  %.sink3188 = select i1 %169, i8 0, i8 %spec.select3788
  %170 = load ptr, ptr %96, align 8, !tbaa !19
  %171 = getelementptr inbounds ptr, ptr %170, i64 %indvars.iv3161
  %172 = load ptr, ptr %171, align 8, !tbaa !19
  %173 = getelementptr inbounds i8, ptr %172, i64 %indvars.iv3158
  store i8 %.sink3188, ptr %173, align 1, !tbaa !20
  %174 = load ptr, ptr %99, align 8, !tbaa !19
  %175 = getelementptr inbounds i8, ptr %174, i64 %indvars.iv3158
  %176 = load i8, ptr %175, align 1, !tbaa !20
  %177 = zext i8 %176 to i64
  %178 = getelementptr inbounds [256 x i32], ptr %6, i64 0, i64 %177
  %179 = load i32, ptr %178, align 4, !tbaa !14
  %180 = load ptr, ptr %100, align 8, !tbaa !19
  %181 = getelementptr inbounds i8, ptr %180, i64 %indvars.iv3158
  %182 = load i8, ptr %181, align 1, !tbaa !20
  %183 = zext i8 %182 to i64
  %184 = getelementptr inbounds [256 x i32], ptr %7, i64 0, i64 %183
  %185 = load i32, ptr %184, align 4, !tbaa !14
  %186 = add nsw i32 %185, %179
  %187 = icmp slt i32 %186, 0
  %spec.select37893925 = tail call i32 @llvm.umin.i32(i32 %186, i32 255)
  %spec.select3789 = trunc nuw i32 %spec.select37893925 to i8
  %.sink3193 = select i1 %187, i8 0, i8 %spec.select3789
  %188 = load ptr, ptr %96, align 8, !tbaa !19
  %189 = getelementptr inbounds ptr, ptr %188, i64 %indvars.iv3161
  %190 = load ptr, ptr %189, align 8, !tbaa !19
  %191 = getelementptr inbounds i8, ptr %190, i64 %indvars.iv3158
  store i8 %.sink3193, ptr %191, align 1, !tbaa !20
  %192 = load ptr, ptr %99, align 8, !tbaa !19
  %193 = getelementptr inbounds i8, ptr %192, i64 %indvars.iv3158
  %194 = load i8, ptr %193, align 1, !tbaa !20
  %195 = zext i8 %194 to i64
  %196 = getelementptr inbounds [256 x i32], ptr %6, i64 0, i64 %195
  %197 = load i32, ptr %196, align 4, !tbaa !14
  %198 = load ptr, ptr %100, align 8, !tbaa !19
  %199 = getelementptr inbounds i8, ptr %198, i64 %indvars.iv3158
  %200 = load i8, ptr %199, align 1, !tbaa !20
  %201 = zext i8 %200 to i64
  %202 = getelementptr inbounds [256 x i32], ptr %7, i64 0, i64 %201
  %203 = load i32, ptr %202, align 4, !tbaa !14
  %204 = add nsw i32 %203, %197
  %205 = icmp slt i32 %204, 0
  %spec.select37903926 = tail call i32 @llvm.umin.i32(i32 %204, i32 255)
  %spec.select3790 = trunc nuw i32 %spec.select37903926 to i8
  %.sink3198 = select i1 %205, i8 0, i8 %spec.select3790
  %206 = load ptr, ptr %96, align 8, !tbaa !19
  %207 = getelementptr inbounds ptr, ptr %206, i64 %indvars.iv3161
  %208 = load ptr, ptr %207, align 8, !tbaa !19
  %209 = getelementptr inbounds i8, ptr %208, i64 %indvars.iv3158
  store i8 %.sink3198, ptr %209, align 1, !tbaa !20
  %210 = load ptr, ptr %99, align 8, !tbaa !19
  %211 = getelementptr inbounds i8, ptr %210, i64 %indvars.iv3158
  %212 = load i8, ptr %211, align 1, !tbaa !20
  %213 = zext i8 %212 to i64
  %214 = getelementptr inbounds [256 x i32], ptr %6, i64 0, i64 %213
  %215 = load i32, ptr %214, align 4, !tbaa !14
  %216 = load ptr, ptr %100, align 8, !tbaa !19
  %217 = getelementptr inbounds i8, ptr %216, i64 %indvars.iv3158
  %218 = load i8, ptr %217, align 1, !tbaa !20
  %219 = zext i8 %218 to i64
  %220 = getelementptr inbounds [256 x i32], ptr %7, i64 0, i64 %219
  %221 = load i32, ptr %220, align 4, !tbaa !14
  %222 = add nsw i32 %221, %215
  %223 = icmp slt i32 %222, 0
  %spec.select37913927 = tail call i32 @llvm.umin.i32(i32 %222, i32 255)
  %spec.select3791 = trunc nuw i32 %spec.select37913927 to i8
  %.sink3203 = select i1 %223, i8 0, i8 %spec.select3791
  %224 = load ptr, ptr %96, align 8, !tbaa !19
  %225 = getelementptr inbounds ptr, ptr %224, i64 %indvars.iv3161
  %226 = load ptr, ptr %225, align 8, !tbaa !19
  %227 = getelementptr inbounds i8, ptr %226, i64 %indvars.iv3158
  store i8 %.sink3203, ptr %227, align 1, !tbaa !20
  %228 = load ptr, ptr %99, align 8, !tbaa !19
  %229 = getelementptr inbounds i8, ptr %228, i64 %indvars.iv3158
  %230 = load i8, ptr %229, align 1, !tbaa !20
  %231 = zext i8 %230 to i64
  %232 = getelementptr inbounds [256 x i32], ptr %6, i64 0, i64 %231
  %233 = load i32, ptr %232, align 4, !tbaa !14
  %234 = load ptr, ptr %100, align 8, !tbaa !19
  %235 = getelementptr inbounds i8, ptr %234, i64 %indvars.iv3158
  %236 = load i8, ptr %235, align 1, !tbaa !20
  %237 = zext i8 %236 to i64
  %238 = getelementptr inbounds [256 x i32], ptr %7, i64 0, i64 %237
  %239 = load i32, ptr %238, align 4, !tbaa !14
  %240 = add nsw i32 %239, %233
  %241 = icmp slt i32 %240, 0
  %spec.select37923928 = tail call i32 @llvm.umin.i32(i32 %240, i32 255)
  %spec.select3792 = trunc nuw i32 %spec.select37923928 to i8
  %.sink3208 = select i1 %241, i8 0, i8 %spec.select3792
  %242 = load ptr, ptr %96, align 8, !tbaa !19
  %243 = getelementptr inbounds ptr, ptr %242, i64 %indvars.iv3161
  %244 = load ptr, ptr %243, align 8, !tbaa !19
  %245 = getelementptr inbounds i8, ptr %244, i64 %indvars.iv3158
  store i8 %.sink3208, ptr %245, align 1, !tbaa !20
  %246 = load ptr, ptr %99, align 8, !tbaa !19
  %247 = getelementptr inbounds i8, ptr %246, i64 %indvars.iv3158
  %248 = load i8, ptr %247, align 1, !tbaa !20
  %249 = zext i8 %248 to i64
  %250 = getelementptr inbounds [256 x i32], ptr %6, i64 0, i64 %249
  %251 = load i32, ptr %250, align 4, !tbaa !14
  %252 = load ptr, ptr %100, align 8, !tbaa !19
  %253 = getelementptr inbounds i8, ptr %252, i64 %indvars.iv3158
  %254 = load i8, ptr %253, align 1, !tbaa !20
  %255 = zext i8 %254 to i64
  %256 = getelementptr inbounds [256 x i32], ptr %7, i64 0, i64 %255
  %257 = load i32, ptr %256, align 4, !tbaa !14
  %258 = add nsw i32 %257, %251
  %259 = icmp slt i32 %258, 0
  %spec.select37933929 = tail call i32 @llvm.umin.i32(i32 %258, i32 255)
  %spec.select3793 = trunc nuw i32 %spec.select37933929 to i8
  %.sink3213 = select i1 %259, i8 0, i8 %spec.select3793
  %260 = load ptr, ptr %96, align 8, !tbaa !19
  %261 = getelementptr inbounds ptr, ptr %260, i64 %indvars.iv3161
  %262 = load ptr, ptr %261, align 8, !tbaa !19
  %263 = getelementptr inbounds i8, ptr %262, i64 %indvars.iv3158
  store i8 %.sink3213, ptr %263, align 1, !tbaa !20
  %264 = load ptr, ptr %99, align 8, !tbaa !19
  %265 = getelementptr inbounds i8, ptr %264, i64 %indvars.iv3158
  %266 = load i8, ptr %265, align 1, !tbaa !20
  %267 = zext i8 %266 to i64
  %268 = getelementptr inbounds [256 x i32], ptr %6, i64 0, i64 %267
  %269 = load i32, ptr %268, align 4, !tbaa !14
  %270 = load ptr, ptr %100, align 8, !tbaa !19
  %271 = getelementptr inbounds i8, ptr %270, i64 %indvars.iv3158
  %272 = load i8, ptr %271, align 1, !tbaa !20
  %273 = zext i8 %272 to i64
  %274 = getelementptr inbounds [256 x i32], ptr %7, i64 0, i64 %273
  %275 = load i32, ptr %274, align 4, !tbaa !14
  %276 = add nsw i32 %275, %269
  %277 = icmp slt i32 %276, 0
  %spec.select37943930 = tail call i32 @llvm.umin.i32(i32 %276, i32 255)
  %spec.select3794 = trunc nuw i32 %spec.select37943930 to i8
  %.sink3218 = select i1 %277, i8 0, i8 %spec.select3794
  %278 = load ptr, ptr %96, align 8, !tbaa !19
  %279 = getelementptr inbounds ptr, ptr %278, i64 %indvars.iv3161
  %280 = load ptr, ptr %279, align 8, !tbaa !19
  %281 = getelementptr inbounds i8, ptr %280, i64 %indvars.iv3158
  store i8 %.sink3218, ptr %281, align 1, !tbaa !20
  %282 = load ptr, ptr %99, align 8, !tbaa !19
  %283 = getelementptr inbounds i8, ptr %282, i64 %indvars.iv3158
  %284 = load i8, ptr %283, align 1, !tbaa !20
  %285 = zext i8 %284 to i64
  %286 = getelementptr inbounds [256 x i32], ptr %6, i64 0, i64 %285
  %287 = load i32, ptr %286, align 4, !tbaa !14
  %288 = load ptr, ptr %100, align 8, !tbaa !19
  %289 = getelementptr inbounds i8, ptr %288, i64 %indvars.iv3158
  %290 = load i8, ptr %289, align 1, !tbaa !20
  %291 = zext i8 %290 to i64
  %292 = getelementptr inbounds [256 x i32], ptr %7, i64 0, i64 %291
  %293 = load i32, ptr %292, align 4, !tbaa !14
  %294 = add nsw i32 %293, %287
  %295 = icmp slt i32 %294, 0
  %spec.select37953931 = tail call i32 @llvm.umin.i32(i32 %294, i32 255)
  %spec.select3795 = trunc nuw i32 %spec.select37953931 to i8
  %.sink3223 = select i1 %295, i8 0, i8 %spec.select3795
  %296 = load ptr, ptr %96, align 8, !tbaa !19
  %297 = getelementptr inbounds ptr, ptr %296, i64 %indvars.iv3161
  %298 = load ptr, ptr %297, align 8, !tbaa !19
  %299 = getelementptr inbounds i8, ptr %298, i64 %indvars.iv3158
  store i8 %.sink3223, ptr %299, align 1, !tbaa !20
  %300 = load ptr, ptr %99, align 8, !tbaa !19
  %301 = getelementptr inbounds i8, ptr %300, i64 %indvars.iv3158
  %302 = load i8, ptr %301, align 1, !tbaa !20
  %303 = zext i8 %302 to i64
  %304 = getelementptr inbounds [256 x i32], ptr %6, i64 0, i64 %303
  %305 = load i32, ptr %304, align 4, !tbaa !14
  %306 = load ptr, ptr %100, align 8, !tbaa !19
  %307 = getelementptr inbounds i8, ptr %306, i64 %indvars.iv3158
  %308 = load i8, ptr %307, align 1, !tbaa !20
  %309 = zext i8 %308 to i64
  %310 = getelementptr inbounds [256 x i32], ptr %7, i64 0, i64 %309
  %311 = load i32, ptr %310, align 4, !tbaa !14
  %312 = add nsw i32 %311, %305
  %313 = icmp slt i32 %312, 0
  %spec.select37963932 = tail call i32 @llvm.umin.i32(i32 %312, i32 255)
  %spec.select3796 = trunc nuw i32 %spec.select37963932 to i8
  %.sink3228 = select i1 %313, i8 0, i8 %spec.select3796
  %314 = load ptr, ptr %96, align 8, !tbaa !19
  %315 = getelementptr inbounds ptr, ptr %314, i64 %indvars.iv3161
  %316 = load ptr, ptr %315, align 8, !tbaa !19
  %317 = getelementptr inbounds i8, ptr %316, i64 %indvars.iv3158
  store i8 %.sink3228, ptr %317, align 1, !tbaa !20
  %318 = load ptr, ptr %99, align 8, !tbaa !19
  %319 = getelementptr inbounds i8, ptr %318, i64 %indvars.iv3158
  %320 = load i8, ptr %319, align 1, !tbaa !20
  %321 = zext i8 %320 to i64
  %322 = getelementptr inbounds [256 x i32], ptr %6, i64 0, i64 %321
  %323 = load i32, ptr %322, align 4, !tbaa !14
  %324 = load ptr, ptr %100, align 8, !tbaa !19
  %325 = getelementptr inbounds i8, ptr %324, i64 %indvars.iv3158
  %326 = load i8, ptr %325, align 1, !tbaa !20
  %327 = zext i8 %326 to i64
  %328 = getelementptr inbounds [256 x i32], ptr %7, i64 0, i64 %327
  %329 = load i32, ptr %328, align 4, !tbaa !14
  %330 = add nsw i32 %329, %323
  %331 = icmp slt i32 %330, 0
  %spec.select37973933 = tail call i32 @llvm.umin.i32(i32 %330, i32 255)
  %spec.select3797 = trunc nuw i32 %spec.select37973933 to i8
  %.sink3233 = select i1 %331, i8 0, i8 %spec.select3797
  %332 = load ptr, ptr %96, align 8, !tbaa !19
  %333 = getelementptr inbounds ptr, ptr %332, i64 %indvars.iv3161
  %334 = load ptr, ptr %333, align 8, !tbaa !19
  %335 = getelementptr inbounds i8, ptr %334, i64 %indvars.iv3158
  store i8 %.sink3233, ptr %335, align 1, !tbaa !20
  %336 = load ptr, ptr %99, align 8, !tbaa !19
  %337 = getelementptr inbounds i8, ptr %336, i64 %indvars.iv3158
  %338 = load i8, ptr %337, align 1, !tbaa !20
  %339 = zext i8 %338 to i64
  %340 = getelementptr inbounds [256 x i32], ptr %6, i64 0, i64 %339
  %341 = load i32, ptr %340, align 4, !tbaa !14
  %342 = load ptr, ptr %100, align 8, !tbaa !19
  %343 = getelementptr inbounds i8, ptr %342, i64 %indvars.iv3158
  %344 = load i8, ptr %343, align 1, !tbaa !20
  %345 = zext i8 %344 to i64
  %346 = getelementptr inbounds [256 x i32], ptr %7, i64 0, i64 %345
  %347 = load i32, ptr %346, align 4, !tbaa !14
  %348 = add nsw i32 %347, %341
  %349 = icmp slt i32 %348, 0
  %spec.select37983934 = tail call i32 @llvm.umin.i32(i32 %348, i32 255)
  %spec.select3798 = trunc nuw i32 %spec.select37983934 to i8
  %.sink3238 = select i1 %349, i8 0, i8 %spec.select3798
  %350 = load ptr, ptr %96, align 8, !tbaa !19
  %351 = getelementptr inbounds ptr, ptr %350, i64 %indvars.iv3161
  %352 = load ptr, ptr %351, align 8, !tbaa !19
  %353 = getelementptr inbounds i8, ptr %352, i64 %indvars.iv3158
  store i8 %.sink3238, ptr %353, align 1, !tbaa !20
  %354 = load ptr, ptr %99, align 8, !tbaa !19
  %355 = getelementptr inbounds i8, ptr %354, i64 %indvars.iv3158
  %356 = load i8, ptr %355, align 1, !tbaa !20
  %357 = zext i8 %356 to i64
  %358 = getelementptr inbounds [256 x i32], ptr %6, i64 0, i64 %357
  %359 = load i32, ptr %358, align 4, !tbaa !14
  %360 = load ptr, ptr %100, align 8, !tbaa !19
  %361 = getelementptr inbounds i8, ptr %360, i64 %indvars.iv3158
  %362 = load i8, ptr %361, align 1, !tbaa !20
  %363 = zext i8 %362 to i64
  %364 = getelementptr inbounds [256 x i32], ptr %7, i64 0, i64 %363
  %365 = load i32, ptr %364, align 4, !tbaa !14
  %366 = add nsw i32 %365, %359
  %367 = icmp slt i32 %366, 0
  %spec.select37993935 = tail call i32 @llvm.umin.i32(i32 %366, i32 255)
  %spec.select3799 = trunc nuw i32 %spec.select37993935 to i8
  %.sink3243 = select i1 %367, i8 0, i8 %spec.select3799
  %368 = load ptr, ptr %96, align 8, !tbaa !19
  %369 = getelementptr inbounds ptr, ptr %368, i64 %indvars.iv3161
  %370 = load ptr, ptr %369, align 8, !tbaa !19
  %371 = getelementptr inbounds i8, ptr %370, i64 %indvars.iv3158
  store i8 %.sink3243, ptr %371, align 1, !tbaa !20
  %372 = load ptr, ptr %99, align 8, !tbaa !19
  %373 = getelementptr inbounds i8, ptr %372, i64 %indvars.iv3158
  %374 = load i8, ptr %373, align 1, !tbaa !20
  %375 = zext i8 %374 to i64
  %376 = getelementptr inbounds [256 x i32], ptr %6, i64 0, i64 %375
  %377 = load i32, ptr %376, align 4, !tbaa !14
  %378 = load ptr, ptr %100, align 8, !tbaa !19
  %379 = getelementptr inbounds i8, ptr %378, i64 %indvars.iv3158
  %380 = load i8, ptr %379, align 1, !tbaa !20
  %381 = zext i8 %380 to i64
  %382 = getelementptr inbounds [256 x i32], ptr %7, i64 0, i64 %381
  %383 = load i32, ptr %382, align 4, !tbaa !14
  %384 = add nsw i32 %383, %377
  %385 = icmp slt i32 %384, 0
  %spec.select38003936 = tail call i32 @llvm.umin.i32(i32 %384, i32 255)
  %spec.select3800 = trunc nuw i32 %spec.select38003936 to i8
  %.sink3248 = select i1 %385, i8 0, i8 %spec.select3800
  %386 = load ptr, ptr %96, align 8, !tbaa !19
  %387 = getelementptr inbounds ptr, ptr %386, i64 %indvars.iv3161
  %388 = load ptr, ptr %387, align 8, !tbaa !19
  %389 = getelementptr inbounds i8, ptr %388, i64 %indvars.iv3158
  store i8 %.sink3248, ptr %389, align 1, !tbaa !20
  %indvars.iv.next3159 = add nuw nsw i64 %indvars.iv3158, 16
  %390 = load i32, ptr %83, align 8, !tbaa !12
  %391 = add nsw i32 %390, -15
  %392 = sext i32 %391 to i64
  %393 = icmp slt i64 %indvars.iv.next3159, %392
  br i1 %393, label %101, label %._crit_edge.loopexit, !llvm.loop !21

._crit_edge.loopexit:                             ; preds = %101
  %394 = trunc nuw nsw i64 %indvars.iv.next3159 to i32
  br label %._crit_edge

._crit_edge:                                      ; preds = %._crit_edge.loopexit, %.preheader
  %.02993.lcssa = phi i32 [ 0, %.preheader ], [ %394, %._crit_edge.loopexit ]
  %.lcssa = phi i32 [ %97, %.preheader ], [ %390, %._crit_edge.loopexit ]
  %395 = icmp eq i32 %.lcssa, %.02993.lcssa
  br i1 %395, label %2577, label %396

396:                                              ; preds = %._crit_edge
  %397 = sub nsw i32 %.lcssa, %.02993.lcssa
  switch i32 %397, label %2577 [
    i32 1, label %398
    i32 2, label %417
    i32 3, label %454
    i32 4, label %509
    i32 5, label %582
    i32 6, label %673
    i32 7, label %782
    i32 8, label %909
    i32 9, label %1054
    i32 10, label %1217
    i32 11, label %1398
    i32 12, label %1597
    i32 13, label %1814
    i32 14, label %2049
    i32 15, label %2302
  ]

398:                                              ; preds = %396
  %399 = getelementptr inbounds ptr, ptr %90, i64 %indvars.iv3161
  %400 = load ptr, ptr %399, align 8, !tbaa !19
  %401 = zext nneg i32 %.02993.lcssa to i64
  %402 = getelementptr inbounds i8, ptr %400, i64 %401
  %403 = load i8, ptr %402, align 1, !tbaa !20
  %404 = zext i8 %403 to i64
  %405 = getelementptr inbounds [256 x i32], ptr %6, i64 0, i64 %404
  %406 = load i32, ptr %405, align 4, !tbaa !14
  %407 = getelementptr inbounds ptr, ptr %94, i64 %indvars.iv3161
  %408 = load ptr, ptr %407, align 8, !tbaa !19
  %409 = getelementptr inbounds i8, ptr %408, i64 %401
  %410 = load i8, ptr %409, align 1, !tbaa !20
  %411 = zext i8 %410 to i64
  %412 = getelementptr inbounds [256 x i32], ptr %7, i64 0, i64 %411
  %413 = load i32, ptr %412, align 4, !tbaa !14
  %414 = add nsw i32 %413, %406
  %415 = icmp slt i32 %414, 0
  br i1 %415, label %.sink.split3778, label %416

416:                                              ; preds = %398
  %spec.select38014056 = tail call i32 @llvm.umin.i32(i32 %414, i32 255)
  %spec.select3801 = trunc nuw i32 %spec.select38014056 to i8
  br label %.sink.split3778

417:                                              ; preds = %396
  %418 = getelementptr inbounds ptr, ptr %90, i64 %indvars.iv3161
  %419 = load ptr, ptr %418, align 8, !tbaa !19
  %420 = zext nneg i32 %.02993.lcssa to i64
  %421 = getelementptr inbounds i8, ptr %419, i64 %420
  %422 = load i8, ptr %421, align 1, !tbaa !20
  %423 = zext i8 %422 to i64
  %424 = getelementptr inbounds [256 x i32], ptr %6, i64 0, i64 %423
  %425 = load i32, ptr %424, align 4, !tbaa !14
  %426 = getelementptr inbounds ptr, ptr %94, i64 %indvars.iv3161
  %427 = load ptr, ptr %426, align 8, !tbaa !19
  %428 = getelementptr inbounds i8, ptr %427, i64 %420
  %429 = load i8, ptr %428, align 1, !tbaa !20
  %430 = zext i8 %429 to i64
  %431 = getelementptr inbounds [256 x i32], ptr %7, i64 0, i64 %430
  %432 = load i32, ptr %431, align 4, !tbaa !14
  %433 = add nsw i32 %432, %425
  %434 = icmp slt i32 %433, 0
  %spec.select38024054 = tail call i32 @llvm.umin.i32(i32 %433, i32 255)
  %spec.select3802 = trunc nuw i32 %spec.select38024054 to i8
  %.sink3253 = select i1 %434, i8 0, i8 %spec.select3802
  %435 = load ptr, ptr %96, align 8, !tbaa !19
  %436 = getelementptr inbounds ptr, ptr %435, i64 %indvars.iv3161
  %437 = load ptr, ptr %436, align 8, !tbaa !19
  %438 = getelementptr inbounds i8, ptr %437, i64 %420
  store i8 %.sink3253, ptr %438, align 1, !tbaa !20
  %439 = load ptr, ptr %418, align 8, !tbaa !19
  %440 = getelementptr inbounds i8, ptr %439, i64 %420
  %441 = load i8, ptr %440, align 1, !tbaa !20
  %442 = zext i8 %441 to i64
  %443 = getelementptr inbounds [256 x i32], ptr %6, i64 0, i64 %442
  %444 = load i32, ptr %443, align 4, !tbaa !14
  %445 = load ptr, ptr %426, align 8, !tbaa !19
  %446 = getelementptr inbounds i8, ptr %445, i64 %420
  %447 = load i8, ptr %446, align 1, !tbaa !20
  %448 = zext i8 %447 to i64
  %449 = getelementptr inbounds [256 x i32], ptr %7, i64 0, i64 %448
  %450 = load i32, ptr %449, align 4, !tbaa !14
  %451 = add nsw i32 %450, %444
  %452 = icmp slt i32 %451, 0
  br i1 %452, label %.sink.split3778, label %453

453:                                              ; preds = %417
  %spec.select38034055 = tail call i32 @llvm.umin.i32(i32 %451, i32 255)
  %spec.select3803 = trunc nuw i32 %spec.select38034055 to i8
  br label %.sink.split3778

454:                                              ; preds = %396
  %455 = getelementptr inbounds ptr, ptr %90, i64 %indvars.iv3161
  %456 = load ptr, ptr %455, align 8, !tbaa !19
  %457 = zext nneg i32 %.02993.lcssa to i64
  %458 = getelementptr inbounds i8, ptr %456, i64 %457
  %459 = load i8, ptr %458, align 1, !tbaa !20
  %460 = zext i8 %459 to i64
  %461 = getelementptr inbounds [256 x i32], ptr %6, i64 0, i64 %460
  %462 = load i32, ptr %461, align 4, !tbaa !14
  %463 = getelementptr inbounds ptr, ptr %94, i64 %indvars.iv3161
  %464 = load ptr, ptr %463, align 8, !tbaa !19
  %465 = getelementptr inbounds i8, ptr %464, i64 %457
  %466 = load i8, ptr %465, align 1, !tbaa !20
  %467 = zext i8 %466 to i64
  %468 = getelementptr inbounds [256 x i32], ptr %7, i64 0, i64 %467
  %469 = load i32, ptr %468, align 4, !tbaa !14
  %470 = add nsw i32 %469, %462
  %471 = icmp slt i32 %470, 0
  %spec.select38044051 = tail call i32 @llvm.umin.i32(i32 %470, i32 255)
  %spec.select3804 = trunc nuw i32 %spec.select38044051 to i8
  %.sink3258 = select i1 %471, i8 0, i8 %spec.select3804
  %472 = load ptr, ptr %96, align 8, !tbaa !19
  %473 = getelementptr inbounds ptr, ptr %472, i64 %indvars.iv3161
  %474 = load ptr, ptr %473, align 8, !tbaa !19
  %475 = getelementptr inbounds i8, ptr %474, i64 %457
  store i8 %.sink3258, ptr %475, align 1, !tbaa !20
  %476 = load ptr, ptr %455, align 8, !tbaa !19
  %477 = getelementptr inbounds i8, ptr %476, i64 %457
  %478 = load i8, ptr %477, align 1, !tbaa !20
  %479 = zext i8 %478 to i64
  %480 = getelementptr inbounds [256 x i32], ptr %6, i64 0, i64 %479
  %481 = load i32, ptr %480, align 4, !tbaa !14
  %482 = load ptr, ptr %463, align 8, !tbaa !19
  %483 = getelementptr inbounds i8, ptr %482, i64 %457
  %484 = load i8, ptr %483, align 1, !tbaa !20
  %485 = zext i8 %484 to i64
  %486 = getelementptr inbounds [256 x i32], ptr %7, i64 0, i64 %485
  %487 = load i32, ptr %486, align 4, !tbaa !14
  %488 = add nsw i32 %487, %481
  %489 = icmp slt i32 %488, 0
  %spec.select38054052 = tail call i32 @llvm.umin.i32(i32 %488, i32 255)
  %spec.select3805 = trunc nuw i32 %spec.select38054052 to i8
  %.sink3263 = select i1 %489, i8 0, i8 %spec.select3805
  %490 = load ptr, ptr %96, align 8, !tbaa !19
  %491 = getelementptr inbounds ptr, ptr %490, i64 %indvars.iv3161
  %492 = load ptr, ptr %491, align 8, !tbaa !19
  %493 = getelementptr inbounds i8, ptr %492, i64 %457
  store i8 %.sink3263, ptr %493, align 1, !tbaa !20
  %494 = load ptr, ptr %455, align 8, !tbaa !19
  %495 = getelementptr inbounds i8, ptr %494, i64 %457
  %496 = load i8, ptr %495, align 1, !tbaa !20
  %497 = zext i8 %496 to i64
  %498 = getelementptr inbounds [256 x i32], ptr %6, i64 0, i64 %497
  %499 = load i32, ptr %498, align 4, !tbaa !14
  %500 = load ptr, ptr %463, align 8, !tbaa !19
  %501 = getelementptr inbounds i8, ptr %500, i64 %457
  %502 = load i8, ptr %501, align 1, !tbaa !20
  %503 = zext i8 %502 to i64
  %504 = getelementptr inbounds [256 x i32], ptr %7, i64 0, i64 %503
  %505 = load i32, ptr %504, align 4, !tbaa !14
  %506 = add nsw i32 %505, %499
  %507 = icmp slt i32 %506, 0
  br i1 %507, label %.sink.split3778, label %508

508:                                              ; preds = %454
  %spec.select38064053 = tail call i32 @llvm.umin.i32(i32 %506, i32 255)
  %spec.select3806 = trunc nuw i32 %spec.select38064053 to i8
  br label %.sink.split3778

509:                                              ; preds = %396
  %510 = getelementptr inbounds ptr, ptr %90, i64 %indvars.iv3161
  %511 = load ptr, ptr %510, align 8, !tbaa !19
  %512 = zext nneg i32 %.02993.lcssa to i64
  %513 = getelementptr inbounds i8, ptr %511, i64 %512
  %514 = load i8, ptr %513, align 1, !tbaa !20
  %515 = zext i8 %514 to i64
  %516 = getelementptr inbounds [256 x i32], ptr %6, i64 0, i64 %515
  %517 = load i32, ptr %516, align 4, !tbaa !14
  %518 = getelementptr inbounds ptr, ptr %94, i64 %indvars.iv3161
  %519 = load ptr, ptr %518, align 8, !tbaa !19
  %520 = getelementptr inbounds i8, ptr %519, i64 %512
  %521 = load i8, ptr %520, align 1, !tbaa !20
  %522 = zext i8 %521 to i64
  %523 = getelementptr inbounds [256 x i32], ptr %7, i64 0, i64 %522
  %524 = load i32, ptr %523, align 4, !tbaa !14
  %525 = add nsw i32 %524, %517
  %526 = icmp slt i32 %525, 0
  %spec.select38074047 = tail call i32 @llvm.umin.i32(i32 %525, i32 255)
  %spec.select3807 = trunc nuw i32 %spec.select38074047 to i8
  %.sink3268 = select i1 %526, i8 0, i8 %spec.select3807
  %527 = load ptr, ptr %96, align 8, !tbaa !19
  %528 = getelementptr inbounds ptr, ptr %527, i64 %indvars.iv3161
  %529 = load ptr, ptr %528, align 8, !tbaa !19
  %530 = getelementptr inbounds i8, ptr %529, i64 %512
  store i8 %.sink3268, ptr %530, align 1, !tbaa !20
  %531 = load ptr, ptr %510, align 8, !tbaa !19
  %532 = getelementptr inbounds i8, ptr %531, i64 %512
  %533 = load i8, ptr %532, align 1, !tbaa !20
  %534 = zext i8 %533 to i64
  %535 = getelementptr inbounds [256 x i32], ptr %6, i64 0, i64 %534
  %536 = load i32, ptr %535, align 4, !tbaa !14
  %537 = load ptr, ptr %518, align 8, !tbaa !19
  %538 = getelementptr inbounds i8, ptr %537, i64 %512
  %539 = load i8, ptr %538, align 1, !tbaa !20
  %540 = zext i8 %539 to i64
  %541 = getelementptr inbounds [256 x i32], ptr %7, i64 0, i64 %540
  %542 = load i32, ptr %541, align 4, !tbaa !14
  %543 = add nsw i32 %542, %536
  %544 = icmp slt i32 %543, 0
  %spec.select38084048 = tail call i32 @llvm.umin.i32(i32 %543, i32 255)
  %spec.select3808 = trunc nuw i32 %spec.select38084048 to i8
  %.sink3273 = select i1 %544, i8 0, i8 %spec.select3808
  %545 = load ptr, ptr %96, align 8, !tbaa !19
  %546 = getelementptr inbounds ptr, ptr %545, i64 %indvars.iv3161
  %547 = load ptr, ptr %546, align 8, !tbaa !19
  %548 = getelementptr inbounds i8, ptr %547, i64 %512
  store i8 %.sink3273, ptr %548, align 1, !tbaa !20
  %549 = load ptr, ptr %510, align 8, !tbaa !19
  %550 = getelementptr inbounds i8, ptr %549, i64 %512
  %551 = load i8, ptr %550, align 1, !tbaa !20
  %552 = zext i8 %551 to i64
  %553 = getelementptr inbounds [256 x i32], ptr %6, i64 0, i64 %552
  %554 = load i32, ptr %553, align 4, !tbaa !14
  %555 = load ptr, ptr %518, align 8, !tbaa !19
  %556 = getelementptr inbounds i8, ptr %555, i64 %512
  %557 = load i8, ptr %556, align 1, !tbaa !20
  %558 = zext i8 %557 to i64
  %559 = getelementptr inbounds [256 x i32], ptr %7, i64 0, i64 %558
  %560 = load i32, ptr %559, align 4, !tbaa !14
  %561 = add nsw i32 %560, %554
  %562 = icmp slt i32 %561, 0
  %spec.select38094049 = tail call i32 @llvm.umin.i32(i32 %561, i32 255)
  %spec.select3809 = trunc nuw i32 %spec.select38094049 to i8
  %.sink3278 = select i1 %562, i8 0, i8 %spec.select3809
  %563 = load ptr, ptr %96, align 8, !tbaa !19
  %564 = getelementptr inbounds ptr, ptr %563, i64 %indvars.iv3161
  %565 = load ptr, ptr %564, align 8, !tbaa !19
  %566 = getelementptr inbounds i8, ptr %565, i64 %512
  store i8 %.sink3278, ptr %566, align 1, !tbaa !20
  %567 = load ptr, ptr %510, align 8, !tbaa !19
  %568 = getelementptr inbounds i8, ptr %567, i64 %512
  %569 = load i8, ptr %568, align 1, !tbaa !20
  %570 = zext i8 %569 to i64
  %571 = getelementptr inbounds [256 x i32], ptr %6, i64 0, i64 %570
  %572 = load i32, ptr %571, align 4, !tbaa !14
  %573 = load ptr, ptr %518, align 8, !tbaa !19
  %574 = getelementptr inbounds i8, ptr %573, i64 %512
  %575 = load i8, ptr %574, align 1, !tbaa !20
  %576 = zext i8 %575 to i64
  %577 = getelementptr inbounds [256 x i32], ptr %7, i64 0, i64 %576
  %578 = load i32, ptr %577, align 4, !tbaa !14
  %579 = add nsw i32 %578, %572
  %580 = icmp slt i32 %579, 0
  br i1 %580, label %.sink.split3778, label %581

581:                                              ; preds = %509
  %spec.select38104050 = tail call i32 @llvm.umin.i32(i32 %579, i32 255)
  %spec.select3810 = trunc nuw i32 %spec.select38104050 to i8
  br label %.sink.split3778

582:                                              ; preds = %396
  %583 = getelementptr inbounds ptr, ptr %90, i64 %indvars.iv3161
  %584 = load ptr, ptr %583, align 8, !tbaa !19
  %585 = zext nneg i32 %.02993.lcssa to i64
  %586 = getelementptr inbounds i8, ptr %584, i64 %585
  %587 = load i8, ptr %586, align 1, !tbaa !20
  %588 = zext i8 %587 to i64
  %589 = getelementptr inbounds [256 x i32], ptr %6, i64 0, i64 %588
  %590 = load i32, ptr %589, align 4, !tbaa !14
  %591 = getelementptr inbounds ptr, ptr %94, i64 %indvars.iv3161
  %592 = load ptr, ptr %591, align 8, !tbaa !19
  %593 = getelementptr inbounds i8, ptr %592, i64 %585
  %594 = load i8, ptr %593, align 1, !tbaa !20
  %595 = zext i8 %594 to i64
  %596 = getelementptr inbounds [256 x i32], ptr %7, i64 0, i64 %595
  %597 = load i32, ptr %596, align 4, !tbaa !14
  %598 = add nsw i32 %597, %590
  %599 = icmp slt i32 %598, 0
  %spec.select38114042 = tail call i32 @llvm.umin.i32(i32 %598, i32 255)
  %spec.select3811 = trunc nuw i32 %spec.select38114042 to i8
  %.sink3283 = select i1 %599, i8 0, i8 %spec.select3811
  %600 = load ptr, ptr %96, align 8, !tbaa !19
  %601 = getelementptr inbounds ptr, ptr %600, i64 %indvars.iv3161
  %602 = load ptr, ptr %601, align 8, !tbaa !19
  %603 = getelementptr inbounds i8, ptr %602, i64 %585
  store i8 %.sink3283, ptr %603, align 1, !tbaa !20
  %604 = load ptr, ptr %583, align 8, !tbaa !19
  %605 = getelementptr inbounds i8, ptr %604, i64 %585
  %606 = load i8, ptr %605, align 1, !tbaa !20
  %607 = zext i8 %606 to i64
  %608 = getelementptr inbounds [256 x i32], ptr %6, i64 0, i64 %607
  %609 = load i32, ptr %608, align 4, !tbaa !14
  %610 = load ptr, ptr %591, align 8, !tbaa !19
  %611 = getelementptr inbounds i8, ptr %610, i64 %585
  %612 = load i8, ptr %611, align 1, !tbaa !20
  %613 = zext i8 %612 to i64
  %614 = getelementptr inbounds [256 x i32], ptr %7, i64 0, i64 %613
  %615 = load i32, ptr %614, align 4, !tbaa !14
  %616 = add nsw i32 %615, %609
  %617 = icmp slt i32 %616, 0
  %spec.select38124043 = tail call i32 @llvm.umin.i32(i32 %616, i32 255)
  %spec.select3812 = trunc nuw i32 %spec.select38124043 to i8
  %.sink3288 = select i1 %617, i8 0, i8 %spec.select3812
  %618 = load ptr, ptr %96, align 8, !tbaa !19
  %619 = getelementptr inbounds ptr, ptr %618, i64 %indvars.iv3161
  %620 = load ptr, ptr %619, align 8, !tbaa !19
  %621 = getelementptr inbounds i8, ptr %620, i64 %585
  store i8 %.sink3288, ptr %621, align 1, !tbaa !20
  %622 = load ptr, ptr %583, align 8, !tbaa !19
  %623 = getelementptr inbounds i8, ptr %622, i64 %585
  %624 = load i8, ptr %623, align 1, !tbaa !20
  %625 = zext i8 %624 to i64
  %626 = getelementptr inbounds [256 x i32], ptr %6, i64 0, i64 %625
  %627 = load i32, ptr %626, align 4, !tbaa !14
  %628 = load ptr, ptr %591, align 8, !tbaa !19
  %629 = getelementptr inbounds i8, ptr %628, i64 %585
  %630 = load i8, ptr %629, align 1, !tbaa !20
  %631 = zext i8 %630 to i64
  %632 = getelementptr inbounds [256 x i32], ptr %7, i64 0, i64 %631
  %633 = load i32, ptr %632, align 4, !tbaa !14
  %634 = add nsw i32 %633, %627
  %635 = icmp slt i32 %634, 0
  %spec.select38134044 = tail call i32 @llvm.umin.i32(i32 %634, i32 255)
  %spec.select3813 = trunc nuw i32 %spec.select38134044 to i8
  %.sink3293 = select i1 %635, i8 0, i8 %spec.select3813
  %636 = load ptr, ptr %96, align 8, !tbaa !19
  %637 = getelementptr inbounds ptr, ptr %636, i64 %indvars.iv3161
  %638 = load ptr, ptr %637, align 8, !tbaa !19
  %639 = getelementptr inbounds i8, ptr %638, i64 %585
  store i8 %.sink3293, ptr %639, align 1, !tbaa !20
  %640 = load ptr, ptr %583, align 8, !tbaa !19
  %641 = getelementptr inbounds i8, ptr %640, i64 %585
  %642 = load i8, ptr %641, align 1, !tbaa !20
  %643 = zext i8 %642 to i64
  %644 = getelementptr inbounds [256 x i32], ptr %6, i64 0, i64 %643
  %645 = load i32, ptr %644, align 4, !tbaa !14
  %646 = load ptr, ptr %591, align 8, !tbaa !19
  %647 = getelementptr inbounds i8, ptr %646, i64 %585
  %648 = load i8, ptr %647, align 1, !tbaa !20
  %649 = zext i8 %648 to i64
  %650 = getelementptr inbounds [256 x i32], ptr %7, i64 0, i64 %649
  %651 = load i32, ptr %650, align 4, !tbaa !14
  %652 = add nsw i32 %651, %645
  %653 = icmp slt i32 %652, 0
  %spec.select38144045 = tail call i32 @llvm.umin.i32(i32 %652, i32 255)
  %spec.select3814 = trunc nuw i32 %spec.select38144045 to i8
  %.sink3298 = select i1 %653, i8 0, i8 %spec.select3814
  %654 = load ptr, ptr %96, align 8, !tbaa !19
  %655 = getelementptr inbounds ptr, ptr %654, i64 %indvars.iv3161
  %656 = load ptr, ptr %655, align 8, !tbaa !19
  %657 = getelementptr inbounds i8, ptr %656, i64 %585
  store i8 %.sink3298, ptr %657, align 1, !tbaa !20
  %658 = load ptr, ptr %583, align 8, !tbaa !19
  %659 = getelementptr inbounds i8, ptr %658, i64 %585
  %660 = load i8, ptr %659, align 1, !tbaa !20
  %661 = zext i8 %660 to i64
  %662 = getelementptr inbounds [256 x i32], ptr %6, i64 0, i64 %661
  %663 = load i32, ptr %662, align 4, !tbaa !14
  %664 = load ptr, ptr %591, align 8, !tbaa !19
  %665 = getelementptr inbounds i8, ptr %664, i64 %585
  %666 = load i8, ptr %665, align 1, !tbaa !20
  %667 = zext i8 %666 to i64
  %668 = getelementptr inbounds [256 x i32], ptr %7, i64 0, i64 %667
  %669 = load i32, ptr %668, align 4, !tbaa !14
  %670 = add nsw i32 %669, %663
  %671 = icmp slt i32 %670, 0
  br i1 %671, label %.sink.split3778, label %672

672:                                              ; preds = %582
  %spec.select38154046 = tail call i32 @llvm.umin.i32(i32 %670, i32 255)
  %spec.select3815 = trunc nuw i32 %spec.select38154046 to i8
  br label %.sink.split3778

673:                                              ; preds = %396
  %674 = getelementptr inbounds ptr, ptr %90, i64 %indvars.iv3161
  %675 = load ptr, ptr %674, align 8, !tbaa !19
  %676 = zext nneg i32 %.02993.lcssa to i64
  %677 = getelementptr inbounds i8, ptr %675, i64 %676
  %678 = load i8, ptr %677, align 1, !tbaa !20
  %679 = zext i8 %678 to i64
  %680 = getelementptr inbounds [256 x i32], ptr %6, i64 0, i64 %679
  %681 = load i32, ptr %680, align 4, !tbaa !14
  %682 = getelementptr inbounds ptr, ptr %94, i64 %indvars.iv3161
  %683 = load ptr, ptr %682, align 8, !tbaa !19
  %684 = getelementptr inbounds i8, ptr %683, i64 %676
  %685 = load i8, ptr %684, align 1, !tbaa !20
  %686 = zext i8 %685 to i64
  %687 = getelementptr inbounds [256 x i32], ptr %7, i64 0, i64 %686
  %688 = load i32, ptr %687, align 4, !tbaa !14
  %689 = add nsw i32 %688, %681
  %690 = icmp slt i32 %689, 0
  %spec.select38164036 = tail call i32 @llvm.umin.i32(i32 %689, i32 255)
  %spec.select3816 = trunc nuw i32 %spec.select38164036 to i8
  %.sink3303 = select i1 %690, i8 0, i8 %spec.select3816
  %691 = load ptr, ptr %96, align 8, !tbaa !19
  %692 = getelementptr inbounds ptr, ptr %691, i64 %indvars.iv3161
  %693 = load ptr, ptr %692, align 8, !tbaa !19
  %694 = getelementptr inbounds i8, ptr %693, i64 %676
  store i8 %.sink3303, ptr %694, align 1, !tbaa !20
  %695 = load ptr, ptr %674, align 8, !tbaa !19
  %696 = getelementptr inbounds i8, ptr %695, i64 %676
  %697 = load i8, ptr %696, align 1, !tbaa !20
  %698 = zext i8 %697 to i64
  %699 = getelementptr inbounds [256 x i32], ptr %6, i64 0, i64 %698
  %700 = load i32, ptr %699, align 4, !tbaa !14
  %701 = load ptr, ptr %682, align 8, !tbaa !19
  %702 = getelementptr inbounds i8, ptr %701, i64 %676
  %703 = load i8, ptr %702, align 1, !tbaa !20
  %704 = zext i8 %703 to i64
  %705 = getelementptr inbounds [256 x i32], ptr %7, i64 0, i64 %704
  %706 = load i32, ptr %705, align 4, !tbaa !14
  %707 = add nsw i32 %706, %700
  %708 = icmp slt i32 %707, 0
  %spec.select38174037 = tail call i32 @llvm.umin.i32(i32 %707, i32 255)
  %spec.select3817 = trunc nuw i32 %spec.select38174037 to i8
  %.sink3308 = select i1 %708, i8 0, i8 %spec.select3817
  %709 = load ptr, ptr %96, align 8, !tbaa !19
  %710 = getelementptr inbounds ptr, ptr %709, i64 %indvars.iv3161
  %711 = load ptr, ptr %710, align 8, !tbaa !19
  %712 = getelementptr inbounds i8, ptr %711, i64 %676
  store i8 %.sink3308, ptr %712, align 1, !tbaa !20
  %713 = load ptr, ptr %674, align 8, !tbaa !19
  %714 = getelementptr inbounds i8, ptr %713, i64 %676
  %715 = load i8, ptr %714, align 1, !tbaa !20
  %716 = zext i8 %715 to i64
  %717 = getelementptr inbounds [256 x i32], ptr %6, i64 0, i64 %716
  %718 = load i32, ptr %717, align 4, !tbaa !14
  %719 = load ptr, ptr %682, align 8, !tbaa !19
  %720 = getelementptr inbounds i8, ptr %719, i64 %676
  %721 = load i8, ptr %720, align 1, !tbaa !20
  %722 = zext i8 %721 to i64
  %723 = getelementptr inbounds [256 x i32], ptr %7, i64 0, i64 %722
  %724 = load i32, ptr %723, align 4, !tbaa !14
  %725 = add nsw i32 %724, %718
  %726 = icmp slt i32 %725, 0
  %spec.select38184038 = tail call i32 @llvm.umin.i32(i32 %725, i32 255)
  %spec.select3818 = trunc nuw i32 %spec.select38184038 to i8
  %.sink3313 = select i1 %726, i8 0, i8 %spec.select3818
  %727 = load ptr, ptr %96, align 8, !tbaa !19
  %728 = getelementptr inbounds ptr, ptr %727, i64 %indvars.iv3161
  %729 = load ptr, ptr %728, align 8, !tbaa !19
  %730 = getelementptr inbounds i8, ptr %729, i64 %676
  store i8 %.sink3313, ptr %730, align 1, !tbaa !20
  %731 = load ptr, ptr %674, align 8, !tbaa !19
  %732 = getelementptr inbounds i8, ptr %731, i64 %676
  %733 = load i8, ptr %732, align 1, !tbaa !20
  %734 = zext i8 %733 to i64
  %735 = getelementptr inbounds [256 x i32], ptr %6, i64 0, i64 %734
  %736 = load i32, ptr %735, align 4, !tbaa !14
  %737 = load ptr, ptr %682, align 8, !tbaa !19
  %738 = getelementptr inbounds i8, ptr %737, i64 %676
  %739 = load i8, ptr %738, align 1, !tbaa !20
  %740 = zext i8 %739 to i64
  %741 = getelementptr inbounds [256 x i32], ptr %7, i64 0, i64 %740
  %742 = load i32, ptr %741, align 4, !tbaa !14
  %743 = add nsw i32 %742, %736
  %744 = icmp slt i32 %743, 0
  %spec.select38194039 = tail call i32 @llvm.umin.i32(i32 %743, i32 255)
  %spec.select3819 = trunc nuw i32 %spec.select38194039 to i8
  %.sink3318 = select i1 %744, i8 0, i8 %spec.select3819
  %745 = load ptr, ptr %96, align 8, !tbaa !19
  %746 = getelementptr inbounds ptr, ptr %745, i64 %indvars.iv3161
  %747 = load ptr, ptr %746, align 8, !tbaa !19
  %748 = getelementptr inbounds i8, ptr %747, i64 %676
  store i8 %.sink3318, ptr %748, align 1, !tbaa !20
  %749 = load ptr, ptr %674, align 8, !tbaa !19
  %750 = getelementptr inbounds i8, ptr %749, i64 %676
  %751 = load i8, ptr %750, align 1, !tbaa !20
  %752 = zext i8 %751 to i64
  %753 = getelementptr inbounds [256 x i32], ptr %6, i64 0, i64 %752
  %754 = load i32, ptr %753, align 4, !tbaa !14
  %755 = load ptr, ptr %682, align 8, !tbaa !19
  %756 = getelementptr inbounds i8, ptr %755, i64 %676
  %757 = load i8, ptr %756, align 1, !tbaa !20
  %758 = zext i8 %757 to i64
  %759 = getelementptr inbounds [256 x i32], ptr %7, i64 0, i64 %758
  %760 = load i32, ptr %759, align 4, !tbaa !14
  %761 = add nsw i32 %760, %754
  %762 = icmp slt i32 %761, 0
  %spec.select38204040 = tail call i32 @llvm.umin.i32(i32 %761, i32 255)
  %spec.select3820 = trunc nuw i32 %spec.select38204040 to i8
  %.sink3323 = select i1 %762, i8 0, i8 %spec.select3820
  %763 = load ptr, ptr %96, align 8, !tbaa !19
  %764 = getelementptr inbounds ptr, ptr %763, i64 %indvars.iv3161
  %765 = load ptr, ptr %764, align 8, !tbaa !19
  %766 = getelementptr inbounds i8, ptr %765, i64 %676
  store i8 %.sink3323, ptr %766, align 1, !tbaa !20
  %767 = load ptr, ptr %674, align 8, !tbaa !19
  %768 = getelementptr inbounds i8, ptr %767, i64 %676
  %769 = load i8, ptr %768, align 1, !tbaa !20
  %770 = zext i8 %769 to i64
  %771 = getelementptr inbounds [256 x i32], ptr %6, i64 0, i64 %770
  %772 = load i32, ptr %771, align 4, !tbaa !14
  %773 = load ptr, ptr %682, align 8, !tbaa !19
  %774 = getelementptr inbounds i8, ptr %773, i64 %676
  %775 = load i8, ptr %774, align 1, !tbaa !20
  %776 = zext i8 %775 to i64
  %777 = getelementptr inbounds [256 x i32], ptr %7, i64 0, i64 %776
  %778 = load i32, ptr %777, align 4, !tbaa !14
  %779 = add nsw i32 %778, %772
  %780 = icmp slt i32 %779, 0
  br i1 %780, label %.sink.split3778, label %781

781:                                              ; preds = %673
  %spec.select38214041 = tail call i32 @llvm.umin.i32(i32 %779, i32 255)
  %spec.select3821 = trunc nuw i32 %spec.select38214041 to i8
  br label %.sink.split3778

782:                                              ; preds = %396
  %783 = getelementptr inbounds ptr, ptr %90, i64 %indvars.iv3161
  %784 = load ptr, ptr %783, align 8, !tbaa !19
  %785 = zext nneg i32 %.02993.lcssa to i64
  %786 = getelementptr inbounds i8, ptr %784, i64 %785
  %787 = load i8, ptr %786, align 1, !tbaa !20
  %788 = zext i8 %787 to i64
  %789 = getelementptr inbounds [256 x i32], ptr %6, i64 0, i64 %788
  %790 = load i32, ptr %789, align 4, !tbaa !14
  %791 = getelementptr inbounds ptr, ptr %94, i64 %indvars.iv3161
  %792 = load ptr, ptr %791, align 8, !tbaa !19
  %793 = getelementptr inbounds i8, ptr %792, i64 %785
  %794 = load i8, ptr %793, align 1, !tbaa !20
  %795 = zext i8 %794 to i64
  %796 = getelementptr inbounds [256 x i32], ptr %7, i64 0, i64 %795
  %797 = load i32, ptr %796, align 4, !tbaa !14
  %798 = add nsw i32 %797, %790
  %799 = icmp slt i32 %798, 0
  %spec.select38224029 = tail call i32 @llvm.umin.i32(i32 %798, i32 255)
  %spec.select3822 = trunc nuw i32 %spec.select38224029 to i8
  %.sink3328 = select i1 %799, i8 0, i8 %spec.select3822
  %800 = load ptr, ptr %96, align 8, !tbaa !19
  %801 = getelementptr inbounds ptr, ptr %800, i64 %indvars.iv3161
  %802 = load ptr, ptr %801, align 8, !tbaa !19
  %803 = getelementptr inbounds i8, ptr %802, i64 %785
  store i8 %.sink3328, ptr %803, align 1, !tbaa !20
  %804 = load ptr, ptr %783, align 8, !tbaa !19
  %805 = getelementptr inbounds i8, ptr %804, i64 %785
  %806 = load i8, ptr %805, align 1, !tbaa !20
  %807 = zext i8 %806 to i64
  %808 = getelementptr inbounds [256 x i32], ptr %6, i64 0, i64 %807
  %809 = load i32, ptr %808, align 4, !tbaa !14
  %810 = load ptr, ptr %791, align 8, !tbaa !19
  %811 = getelementptr inbounds i8, ptr %810, i64 %785
  %812 = load i8, ptr %811, align 1, !tbaa !20
  %813 = zext i8 %812 to i64
  %814 = getelementptr inbounds [256 x i32], ptr %7, i64 0, i64 %813
  %815 = load i32, ptr %814, align 4, !tbaa !14
  %816 = add nsw i32 %815, %809
  %817 = icmp slt i32 %816, 0
  %spec.select38234030 = tail call i32 @llvm.umin.i32(i32 %816, i32 255)
  %spec.select3823 = trunc nuw i32 %spec.select38234030 to i8
  %.sink3333 = select i1 %817, i8 0, i8 %spec.select3823
  %818 = load ptr, ptr %96, align 8, !tbaa !19
  %819 = getelementptr inbounds ptr, ptr %818, i64 %indvars.iv3161
  %820 = load ptr, ptr %819, align 8, !tbaa !19
  %821 = getelementptr inbounds i8, ptr %820, i64 %785
  store i8 %.sink3333, ptr %821, align 1, !tbaa !20
  %822 = load ptr, ptr %783, align 8, !tbaa !19
  %823 = getelementptr inbounds i8, ptr %822, i64 %785
  %824 = load i8, ptr %823, align 1, !tbaa !20
  %825 = zext i8 %824 to i64
  %826 = getelementptr inbounds [256 x i32], ptr %6, i64 0, i64 %825
  %827 = load i32, ptr %826, align 4, !tbaa !14
  %828 = load ptr, ptr %791, align 8, !tbaa !19
  %829 = getelementptr inbounds i8, ptr %828, i64 %785
  %830 = load i8, ptr %829, align 1, !tbaa !20
  %831 = zext i8 %830 to i64
  %832 = getelementptr inbounds [256 x i32], ptr %7, i64 0, i64 %831
  %833 = load i32, ptr %832, align 4, !tbaa !14
  %834 = add nsw i32 %833, %827
  %835 = icmp slt i32 %834, 0
  %spec.select38244031 = tail call i32 @llvm.umin.i32(i32 %834, i32 255)
  %spec.select3824 = trunc nuw i32 %spec.select38244031 to i8
  %.sink3338 = select i1 %835, i8 0, i8 %spec.select3824
  %836 = load ptr, ptr %96, align 8, !tbaa !19
  %837 = getelementptr inbounds ptr, ptr %836, i64 %indvars.iv3161
  %838 = load ptr, ptr %837, align 8, !tbaa !19
  %839 = getelementptr inbounds i8, ptr %838, i64 %785
  store i8 %.sink3338, ptr %839, align 1, !tbaa !20
  %840 = load ptr, ptr %783, align 8, !tbaa !19
  %841 = getelementptr inbounds i8, ptr %840, i64 %785
  %842 = load i8, ptr %841, align 1, !tbaa !20
  %843 = zext i8 %842 to i64
  %844 = getelementptr inbounds [256 x i32], ptr %6, i64 0, i64 %843
  %845 = load i32, ptr %844, align 4, !tbaa !14
  %846 = load ptr, ptr %791, align 8, !tbaa !19
  %847 = getelementptr inbounds i8, ptr %846, i64 %785
  %848 = load i8, ptr %847, align 1, !tbaa !20
  %849 = zext i8 %848 to i64
  %850 = getelementptr inbounds [256 x i32], ptr %7, i64 0, i64 %849
  %851 = load i32, ptr %850, align 4, !tbaa !14
  %852 = add nsw i32 %851, %845
  %853 = icmp slt i32 %852, 0
  %spec.select38254032 = tail call i32 @llvm.umin.i32(i32 %852, i32 255)
  %spec.select3825 = trunc nuw i32 %spec.select38254032 to i8
  %.sink3343 = select i1 %853, i8 0, i8 %spec.select3825
  %854 = load ptr, ptr %96, align 8, !tbaa !19
  %855 = getelementptr inbounds ptr, ptr %854, i64 %indvars.iv3161
  %856 = load ptr, ptr %855, align 8, !tbaa !19
  %857 = getelementptr inbounds i8, ptr %856, i64 %785
  store i8 %.sink3343, ptr %857, align 1, !tbaa !20
  %858 = load ptr, ptr %783, align 8, !tbaa !19
  %859 = getelementptr inbounds i8, ptr %858, i64 %785
  %860 = load i8, ptr %859, align 1, !tbaa !20
  %861 = zext i8 %860 to i64
  %862 = getelementptr inbounds [256 x i32], ptr %6, i64 0, i64 %861
  %863 = load i32, ptr %862, align 4, !tbaa !14
  %864 = load ptr, ptr %791, align 8, !tbaa !19
  %865 = getelementptr inbounds i8, ptr %864, i64 %785
  %866 = load i8, ptr %865, align 1, !tbaa !20
  %867 = zext i8 %866 to i64
  %868 = getelementptr inbounds [256 x i32], ptr %7, i64 0, i64 %867
  %869 = load i32, ptr %868, align 4, !tbaa !14
  %870 = add nsw i32 %869, %863
  %871 = icmp slt i32 %870, 0
  %spec.select38264033 = tail call i32 @llvm.umin.i32(i32 %870, i32 255)
  %spec.select3826 = trunc nuw i32 %spec.select38264033 to i8
  %.sink3348 = select i1 %871, i8 0, i8 %spec.select3826
  %872 = load ptr, ptr %96, align 8, !tbaa !19
  %873 = getelementptr inbounds ptr, ptr %872, i64 %indvars.iv3161
  %874 = load ptr, ptr %873, align 8, !tbaa !19
  %875 = getelementptr inbounds i8, ptr %874, i64 %785
  store i8 %.sink3348, ptr %875, align 1, !tbaa !20
  %876 = load ptr, ptr %783, align 8, !tbaa !19
  %877 = getelementptr inbounds i8, ptr %876, i64 %785
  %878 = load i8, ptr %877, align 1, !tbaa !20
  %879 = zext i8 %878 to i64
  %880 = getelementptr inbounds [256 x i32], ptr %6, i64 0, i64 %879
  %881 = load i32, ptr %880, align 4, !tbaa !14
  %882 = load ptr, ptr %791, align 8, !tbaa !19
  %883 = getelementptr inbounds i8, ptr %882, i64 %785
  %884 = load i8, ptr %883, align 1, !tbaa !20
  %885 = zext i8 %884 to i64
  %886 = getelementptr inbounds [256 x i32], ptr %7, i64 0, i64 %885
  %887 = load i32, ptr %886, align 4, !tbaa !14
  %888 = add nsw i32 %887, %881
  %889 = icmp slt i32 %888, 0
  %spec.select38274034 = tail call i32 @llvm.umin.i32(i32 %888, i32 255)
  %spec.select3827 = trunc nuw i32 %spec.select38274034 to i8
  %.sink3353 = select i1 %889, i8 0, i8 %spec.select3827
  %890 = load ptr, ptr %96, align 8, !tbaa !19
  %891 = getelementptr inbounds ptr, ptr %890, i64 %indvars.iv3161
  %892 = load ptr, ptr %891, align 8, !tbaa !19
  %893 = getelementptr inbounds i8, ptr %892, i64 %785
  store i8 %.sink3353, ptr %893, align 1, !tbaa !20
  %894 = load ptr, ptr %783, align 8, !tbaa !19
  %895 = getelementptr inbounds i8, ptr %894, i64 %785
  %896 = load i8, ptr %895, align 1, !tbaa !20
  %897 = zext i8 %896 to i64
  %898 = getelementptr inbounds [256 x i32], ptr %6, i64 0, i64 %897
  %899 = load i32, ptr %898, align 4, !tbaa !14
  %900 = load ptr, ptr %791, align 8, !tbaa !19
  %901 = getelementptr inbounds i8, ptr %900, i64 %785
  %902 = load i8, ptr %901, align 1, !tbaa !20
  %903 = zext i8 %902 to i64
  %904 = getelementptr inbounds [256 x i32], ptr %7, i64 0, i64 %903
  %905 = load i32, ptr %904, align 4, !tbaa !14
  %906 = add nsw i32 %905, %899
  %907 = icmp slt i32 %906, 0
  br i1 %907, label %.sink.split3778, label %908

908:                                              ; preds = %782
  %spec.select38284035 = tail call i32 @llvm.umin.i32(i32 %906, i32 255)
  %spec.select3828 = trunc nuw i32 %spec.select38284035 to i8
  br label %.sink.split3778

909:                                              ; preds = %396
  %910 = getelementptr inbounds ptr, ptr %90, i64 %indvars.iv3161
  %911 = load ptr, ptr %910, align 8, !tbaa !19
  %912 = zext nneg i32 %.02993.lcssa to i64
  %913 = getelementptr inbounds i8, ptr %911, i64 %912
  %914 = load i8, ptr %913, align 1, !tbaa !20
  %915 = zext i8 %914 to i64
  %916 = getelementptr inbounds [256 x i32], ptr %6, i64 0, i64 %915
  %917 = load i32, ptr %916, align 4, !tbaa !14
  %918 = getelementptr inbounds ptr, ptr %94, i64 %indvars.iv3161
  %919 = load ptr, ptr %918, align 8, !tbaa !19
  %920 = getelementptr inbounds i8, ptr %919, i64 %912
  %921 = load i8, ptr %920, align 1, !tbaa !20
  %922 = zext i8 %921 to i64
  %923 = getelementptr inbounds [256 x i32], ptr %7, i64 0, i64 %922
  %924 = load i32, ptr %923, align 4, !tbaa !14
  %925 = add nsw i32 %924, %917
  %926 = icmp slt i32 %925, 0
  %spec.select38294021 = tail call i32 @llvm.umin.i32(i32 %925, i32 255)
  %spec.select3829 = trunc nuw i32 %spec.select38294021 to i8
  %.sink3358 = select i1 %926, i8 0, i8 %spec.select3829
  %927 = load ptr, ptr %96, align 8, !tbaa !19
  %928 = getelementptr inbounds ptr, ptr %927, i64 %indvars.iv3161
  %929 = load ptr, ptr %928, align 8, !tbaa !19
  %930 = getelementptr inbounds i8, ptr %929, i64 %912
  store i8 %.sink3358, ptr %930, align 1, !tbaa !20
  %931 = load ptr, ptr %910, align 8, !tbaa !19
  %932 = getelementptr inbounds i8, ptr %931, i64 %912
  %933 = load i8, ptr %932, align 1, !tbaa !20
  %934 = zext i8 %933 to i64
  %935 = getelementptr inbounds [256 x i32], ptr %6, i64 0, i64 %934
  %936 = load i32, ptr %935, align 4, !tbaa !14
  %937 = load ptr, ptr %918, align 8, !tbaa !19
  %938 = getelementptr inbounds i8, ptr %937, i64 %912
  %939 = load i8, ptr %938, align 1, !tbaa !20
  %940 = zext i8 %939 to i64
  %941 = getelementptr inbounds [256 x i32], ptr %7, i64 0, i64 %940
  %942 = load i32, ptr %941, align 4, !tbaa !14
  %943 = add nsw i32 %942, %936
  %944 = icmp slt i32 %943, 0
  %spec.select38304022 = tail call i32 @llvm.umin.i32(i32 %943, i32 255)
  %spec.select3830 = trunc nuw i32 %spec.select38304022 to i8
  %.sink3363 = select i1 %944, i8 0, i8 %spec.select3830
  %945 = load ptr, ptr %96, align 8, !tbaa !19
  %946 = getelementptr inbounds ptr, ptr %945, i64 %indvars.iv3161
  %947 = load ptr, ptr %946, align 8, !tbaa !19
  %948 = getelementptr inbounds i8, ptr %947, i64 %912
  store i8 %.sink3363, ptr %948, align 1, !tbaa !20
  %949 = load ptr, ptr %910, align 8, !tbaa !19
  %950 = getelementptr inbounds i8, ptr %949, i64 %912
  %951 = load i8, ptr %950, align 1, !tbaa !20
  %952 = zext i8 %951 to i64
  %953 = getelementptr inbounds [256 x i32], ptr %6, i64 0, i64 %952
  %954 = load i32, ptr %953, align 4, !tbaa !14
  %955 = load ptr, ptr %918, align 8, !tbaa !19
  %956 = getelementptr inbounds i8, ptr %955, i64 %912
  %957 = load i8, ptr %956, align 1, !tbaa !20
  %958 = zext i8 %957 to i64
  %959 = getelementptr inbounds [256 x i32], ptr %7, i64 0, i64 %958
  %960 = load i32, ptr %959, align 4, !tbaa !14
  %961 = add nsw i32 %960, %954
  %962 = icmp slt i32 %961, 0
  %spec.select38314023 = tail call i32 @llvm.umin.i32(i32 %961, i32 255)
  %spec.select3831 = trunc nuw i32 %spec.select38314023 to i8
  %.sink3368 = select i1 %962, i8 0, i8 %spec.select3831
  %963 = load ptr, ptr %96, align 8, !tbaa !19
  %964 = getelementptr inbounds ptr, ptr %963, i64 %indvars.iv3161
  %965 = load ptr, ptr %964, align 8, !tbaa !19
  %966 = getelementptr inbounds i8, ptr %965, i64 %912
  store i8 %.sink3368, ptr %966, align 1, !tbaa !20
  %967 = load ptr, ptr %910, align 8, !tbaa !19
  %968 = getelementptr inbounds i8, ptr %967, i64 %912
  %969 = load i8, ptr %968, align 1, !tbaa !20
  %970 = zext i8 %969 to i64
  %971 = getelementptr inbounds [256 x i32], ptr %6, i64 0, i64 %970
  %972 = load i32, ptr %971, align 4, !tbaa !14
  %973 = load ptr, ptr %918, align 8, !tbaa !19
  %974 = getelementptr inbounds i8, ptr %973, i64 %912
  %975 = load i8, ptr %974, align 1, !tbaa !20
  %976 = zext i8 %975 to i64
  %977 = getelementptr inbounds [256 x i32], ptr %7, i64 0, i64 %976
  %978 = load i32, ptr %977, align 4, !tbaa !14
  %979 = add nsw i32 %978, %972
  %980 = icmp slt i32 %979, 0
  %spec.select38324024 = tail call i32 @llvm.umin.i32(i32 %979, i32 255)
  %spec.select3832 = trunc nuw i32 %spec.select38324024 to i8
  %.sink3373 = select i1 %980, i8 0, i8 %spec.select3832
  %981 = load ptr, ptr %96, align 8, !tbaa !19
  %982 = getelementptr inbounds ptr, ptr %981, i64 %indvars.iv3161
  %983 = load ptr, ptr %982, align 8, !tbaa !19
  %984 = getelementptr inbounds i8, ptr %983, i64 %912
  store i8 %.sink3373, ptr %984, align 1, !tbaa !20
  %985 = load ptr, ptr %910, align 8, !tbaa !19
  %986 = getelementptr inbounds i8, ptr %985, i64 %912
  %987 = load i8, ptr %986, align 1, !tbaa !20
  %988 = zext i8 %987 to i64
  %989 = getelementptr inbounds [256 x i32], ptr %6, i64 0, i64 %988
  %990 = load i32, ptr %989, align 4, !tbaa !14
  %991 = load ptr, ptr %918, align 8, !tbaa !19
  %992 = getelementptr inbounds i8, ptr %991, i64 %912
  %993 = load i8, ptr %992, align 1, !tbaa !20
  %994 = zext i8 %993 to i64
  %995 = getelementptr inbounds [256 x i32], ptr %7, i64 0, i64 %994
  %996 = load i32, ptr %995, align 4, !tbaa !14
  %997 = add nsw i32 %996, %990
  %998 = icmp slt i32 %997, 0
  %spec.select38334025 = tail call i32 @llvm.umin.i32(i32 %997, i32 255)
  %spec.select3833 = trunc nuw i32 %spec.select38334025 to i8
  %.sink3378 = select i1 %998, i8 0, i8 %spec.select3833
  %999 = load ptr, ptr %96, align 8, !tbaa !19
  %1000 = getelementptr inbounds ptr, ptr %999, i64 %indvars.iv3161
  %1001 = load ptr, ptr %1000, align 8, !tbaa !19
  %1002 = getelementptr inbounds i8, ptr %1001, i64 %912
  store i8 %.sink3378, ptr %1002, align 1, !tbaa !20
  %1003 = load ptr, ptr %910, align 8, !tbaa !19
  %1004 = getelementptr inbounds i8, ptr %1003, i64 %912
  %1005 = load i8, ptr %1004, align 1, !tbaa !20
  %1006 = zext i8 %1005 to i64
  %1007 = getelementptr inbounds [256 x i32], ptr %6, i64 0, i64 %1006
  %1008 = load i32, ptr %1007, align 4, !tbaa !14
  %1009 = load ptr, ptr %918, align 8, !tbaa !19
  %1010 = getelementptr inbounds i8, ptr %1009, i64 %912
  %1011 = load i8, ptr %1010, align 1, !tbaa !20
  %1012 = zext i8 %1011 to i64
  %1013 = getelementptr inbounds [256 x i32], ptr %7, i64 0, i64 %1012
  %1014 = load i32, ptr %1013, align 4, !tbaa !14
  %1015 = add nsw i32 %1014, %1008
  %1016 = icmp slt i32 %1015, 0
  %spec.select38344026 = tail call i32 @llvm.umin.i32(i32 %1015, i32 255)
  %spec.select3834 = trunc nuw i32 %spec.select38344026 to i8
  %.sink3383 = select i1 %1016, i8 0, i8 %spec.select3834
  %1017 = load ptr, ptr %96, align 8, !tbaa !19
  %1018 = getelementptr inbounds ptr, ptr %1017, i64 %indvars.iv3161
  %1019 = load ptr, ptr %1018, align 8, !tbaa !19
  %1020 = getelementptr inbounds i8, ptr %1019, i64 %912
  store i8 %.sink3383, ptr %1020, align 1, !tbaa !20
  %1021 = load ptr, ptr %910, align 8, !tbaa !19
  %1022 = getelementptr inbounds i8, ptr %1021, i64 %912
  %1023 = load i8, ptr %1022, align 1, !tbaa !20
  %1024 = zext i8 %1023 to i64
  %1025 = getelementptr inbounds [256 x i32], ptr %6, i64 0, i64 %1024
  %1026 = load i32, ptr %1025, align 4, !tbaa !14
  %1027 = load ptr, ptr %918, align 8, !tbaa !19
  %1028 = getelementptr inbounds i8, ptr %1027, i64 %912
  %1029 = load i8, ptr %1028, align 1, !tbaa !20
  %1030 = zext i8 %1029 to i64
  %1031 = getelementptr inbounds [256 x i32], ptr %7, i64 0, i64 %1030
  %1032 = load i32, ptr %1031, align 4, !tbaa !14
  %1033 = add nsw i32 %1032, %1026
  %1034 = icmp slt i32 %1033, 0
  %spec.select38354027 = tail call i32 @llvm.umin.i32(i32 %1033, i32 255)
  %spec.select3835 = trunc nuw i32 %spec.select38354027 to i8
  %.sink3388 = select i1 %1034, i8 0, i8 %spec.select3835
  %1035 = load ptr, ptr %96, align 8, !tbaa !19
  %1036 = getelementptr inbounds ptr, ptr %1035, i64 %indvars.iv3161
  %1037 = load ptr, ptr %1036, align 8, !tbaa !19
  %1038 = getelementptr inbounds i8, ptr %1037, i64 %912
  store i8 %.sink3388, ptr %1038, align 1, !tbaa !20
  %1039 = load ptr, ptr %910, align 8, !tbaa !19
  %1040 = getelementptr inbounds i8, ptr %1039, i64 %912
  %1041 = load i8, ptr %1040, align 1, !tbaa !20
  %1042 = zext i8 %1041 to i64
  %1043 = getelementptr inbounds [256 x i32], ptr %6, i64 0, i64 %1042
  %1044 = load i32, ptr %1043, align 4, !tbaa !14
  %1045 = load ptr, ptr %918, align 8, !tbaa !19
  %1046 = getelementptr inbounds i8, ptr %1045, i64 %912
  %1047 = load i8, ptr %1046, align 1, !tbaa !20
  %1048 = zext i8 %1047 to i64
  %1049 = getelementptr inbounds [256 x i32], ptr %7, i64 0, i64 %1048
  %1050 = load i32, ptr %1049, align 4, !tbaa !14
  %1051 = add nsw i32 %1050, %1044
  %1052 = icmp slt i32 %1051, 0
  br i1 %1052, label %.sink.split3778, label %1053

1053:                                             ; preds = %909
  %spec.select38364028 = tail call i32 @llvm.umin.i32(i32 %1051, i32 255)
  %spec.select3836 = trunc nuw i32 %spec.select38364028 to i8
  br label %.sink.split3778

1054:                                             ; preds = %396
  %1055 = getelementptr inbounds ptr, ptr %90, i64 %indvars.iv3161
  %1056 = load ptr, ptr %1055, align 8, !tbaa !19
  %1057 = zext nneg i32 %.02993.lcssa to i64
  %1058 = getelementptr inbounds i8, ptr %1056, i64 %1057
  %1059 = load i8, ptr %1058, align 1, !tbaa !20
  %1060 = zext i8 %1059 to i64
  %1061 = getelementptr inbounds [256 x i32], ptr %6, i64 0, i64 %1060
  %1062 = load i32, ptr %1061, align 4, !tbaa !14
  %1063 = getelementptr inbounds ptr, ptr %94, i64 %indvars.iv3161
  %1064 = load ptr, ptr %1063, align 8, !tbaa !19
  %1065 = getelementptr inbounds i8, ptr %1064, i64 %1057
  %1066 = load i8, ptr %1065, align 1, !tbaa !20
  %1067 = zext i8 %1066 to i64
  %1068 = getelementptr inbounds [256 x i32], ptr %7, i64 0, i64 %1067
  %1069 = load i32, ptr %1068, align 4, !tbaa !14
  %1070 = add nsw i32 %1069, %1062
  %1071 = icmp slt i32 %1070, 0
  %spec.select38374012 = tail call i32 @llvm.umin.i32(i32 %1070, i32 255)
  %spec.select3837 = trunc nuw i32 %spec.select38374012 to i8
  %.sink3393 = select i1 %1071, i8 0, i8 %spec.select3837
  %1072 = load ptr, ptr %96, align 8, !tbaa !19
  %1073 = getelementptr inbounds ptr, ptr %1072, i64 %indvars.iv3161
  %1074 = load ptr, ptr %1073, align 8, !tbaa !19
  %1075 = getelementptr inbounds i8, ptr %1074, i64 %1057
  store i8 %.sink3393, ptr %1075, align 1, !tbaa !20
  %1076 = load ptr, ptr %1055, align 8, !tbaa !19
  %1077 = getelementptr inbounds i8, ptr %1076, i64 %1057
  %1078 = load i8, ptr %1077, align 1, !tbaa !20
  %1079 = zext i8 %1078 to i64
  %1080 = getelementptr inbounds [256 x i32], ptr %6, i64 0, i64 %1079
  %1081 = load i32, ptr %1080, align 4, !tbaa !14
  %1082 = load ptr, ptr %1063, align 8, !tbaa !19
  %1083 = getelementptr inbounds i8, ptr %1082, i64 %1057
  %1084 = load i8, ptr %1083, align 1, !tbaa !20
  %1085 = zext i8 %1084 to i64
  %1086 = getelementptr inbounds [256 x i32], ptr %7, i64 0, i64 %1085
  %1087 = load i32, ptr %1086, align 4, !tbaa !14
  %1088 = add nsw i32 %1087, %1081
  %1089 = icmp slt i32 %1088, 0
  %spec.select38384013 = tail call i32 @llvm.umin.i32(i32 %1088, i32 255)
  %spec.select3838 = trunc nuw i32 %spec.select38384013 to i8
  %.sink3398 = select i1 %1089, i8 0, i8 %spec.select3838
  %1090 = load ptr, ptr %96, align 8, !tbaa !19
  %1091 = getelementptr inbounds ptr, ptr %1090, i64 %indvars.iv3161
  %1092 = load ptr, ptr %1091, align 8, !tbaa !19
  %1093 = getelementptr inbounds i8, ptr %1092, i64 %1057
  store i8 %.sink3398, ptr %1093, align 1, !tbaa !20
  %1094 = load ptr, ptr %1055, align 8, !tbaa !19
  %1095 = getelementptr inbounds i8, ptr %1094, i64 %1057
  %1096 = load i8, ptr %1095, align 1, !tbaa !20
  %1097 = zext i8 %1096 to i64
  %1098 = getelementptr inbounds [256 x i32], ptr %6, i64 0, i64 %1097
  %1099 = load i32, ptr %1098, align 4, !tbaa !14
  %1100 = load ptr, ptr %1063, align 8, !tbaa !19
  %1101 = getelementptr inbounds i8, ptr %1100, i64 %1057
  %1102 = load i8, ptr %1101, align 1, !tbaa !20
  %1103 = zext i8 %1102 to i64
  %1104 = getelementptr inbounds [256 x i32], ptr %7, i64 0, i64 %1103
  %1105 = load i32, ptr %1104, align 4, !tbaa !14
  %1106 = add nsw i32 %1105, %1099
  %1107 = icmp slt i32 %1106, 0
  %spec.select38394014 = tail call i32 @llvm.umin.i32(i32 %1106, i32 255)
  %spec.select3839 = trunc nuw i32 %spec.select38394014 to i8
  %.sink3403 = select i1 %1107, i8 0, i8 %spec.select3839
  %1108 = load ptr, ptr %96, align 8, !tbaa !19
  %1109 = getelementptr inbounds ptr, ptr %1108, i64 %indvars.iv3161
  %1110 = load ptr, ptr %1109, align 8, !tbaa !19
  %1111 = getelementptr inbounds i8, ptr %1110, i64 %1057
  store i8 %.sink3403, ptr %1111, align 1, !tbaa !20
  %1112 = load ptr, ptr %1055, align 8, !tbaa !19
  %1113 = getelementptr inbounds i8, ptr %1112, i64 %1057
  %1114 = load i8, ptr %1113, align 1, !tbaa !20
  %1115 = zext i8 %1114 to i64
  %1116 = getelementptr inbounds [256 x i32], ptr %6, i64 0, i64 %1115
  %1117 = load i32, ptr %1116, align 4, !tbaa !14
  %1118 = load ptr, ptr %1063, align 8, !tbaa !19
  %1119 = getelementptr inbounds i8, ptr %1118, i64 %1057
  %1120 = load i8, ptr %1119, align 1, !tbaa !20
  %1121 = zext i8 %1120 to i64
  %1122 = getelementptr inbounds [256 x i32], ptr %7, i64 0, i64 %1121
  %1123 = load i32, ptr %1122, align 4, !tbaa !14
  %1124 = add nsw i32 %1123, %1117
  %1125 = icmp slt i32 %1124, 0
  %spec.select38404015 = tail call i32 @llvm.umin.i32(i32 %1124, i32 255)
  %spec.select3840 = trunc nuw i32 %spec.select38404015 to i8
  %.sink3408 = select i1 %1125, i8 0, i8 %spec.select3840
  %1126 = load ptr, ptr %96, align 8, !tbaa !19
  %1127 = getelementptr inbounds ptr, ptr %1126, i64 %indvars.iv3161
  %1128 = load ptr, ptr %1127, align 8, !tbaa !19
  %1129 = getelementptr inbounds i8, ptr %1128, i64 %1057
  store i8 %.sink3408, ptr %1129, align 1, !tbaa !20
  %1130 = load ptr, ptr %1055, align 8, !tbaa !19
  %1131 = getelementptr inbounds i8, ptr %1130, i64 %1057
  %1132 = load i8, ptr %1131, align 1, !tbaa !20
  %1133 = zext i8 %1132 to i64
  %1134 = getelementptr inbounds [256 x i32], ptr %6, i64 0, i64 %1133
  %1135 = load i32, ptr %1134, align 4, !tbaa !14
  %1136 = load ptr, ptr %1063, align 8, !tbaa !19
  %1137 = getelementptr inbounds i8, ptr %1136, i64 %1057
  %1138 = load i8, ptr %1137, align 1, !tbaa !20
  %1139 = zext i8 %1138 to i64
  %1140 = getelementptr inbounds [256 x i32], ptr %7, i64 0, i64 %1139
  %1141 = load i32, ptr %1140, align 4, !tbaa !14
  %1142 = add nsw i32 %1141, %1135
  %1143 = icmp slt i32 %1142, 0
  %spec.select38414016 = tail call i32 @llvm.umin.i32(i32 %1142, i32 255)
  %spec.select3841 = trunc nuw i32 %spec.select38414016 to i8
  %.sink3413 = select i1 %1143, i8 0, i8 %spec.select3841
  %1144 = load ptr, ptr %96, align 8, !tbaa !19
  %1145 = getelementptr inbounds ptr, ptr %1144, i64 %indvars.iv3161
  %1146 = load ptr, ptr %1145, align 8, !tbaa !19
  %1147 = getelementptr inbounds i8, ptr %1146, i64 %1057
  store i8 %.sink3413, ptr %1147, align 1, !tbaa !20
  %1148 = load ptr, ptr %1055, align 8, !tbaa !19
  %1149 = getelementptr inbounds i8, ptr %1148, i64 %1057
  %1150 = load i8, ptr %1149, align 1, !tbaa !20
  %1151 = zext i8 %1150 to i64
  %1152 = getelementptr inbounds [256 x i32], ptr %6, i64 0, i64 %1151
  %1153 = load i32, ptr %1152, align 4, !tbaa !14
  %1154 = load ptr, ptr %1063, align 8, !tbaa !19
  %1155 = getelementptr inbounds i8, ptr %1154, i64 %1057
  %1156 = load i8, ptr %1155, align 1, !tbaa !20
  %1157 = zext i8 %1156 to i64
  %1158 = getelementptr inbounds [256 x i32], ptr %7, i64 0, i64 %1157
  %1159 = load i32, ptr %1158, align 4, !tbaa !14
  %1160 = add nsw i32 %1159, %1153
  %1161 = icmp slt i32 %1160, 0
  %spec.select38424017 = tail call i32 @llvm.umin.i32(i32 %1160, i32 255)
  %spec.select3842 = trunc nuw i32 %spec.select38424017 to i8
  %.sink3418 = select i1 %1161, i8 0, i8 %spec.select3842
  %1162 = load ptr, ptr %96, align 8, !tbaa !19
  %1163 = getelementptr inbounds ptr, ptr %1162, i64 %indvars.iv3161
  %1164 = load ptr, ptr %1163, align 8, !tbaa !19
  %1165 = getelementptr inbounds i8, ptr %1164, i64 %1057
  store i8 %.sink3418, ptr %1165, align 1, !tbaa !20
  %1166 = load ptr, ptr %1055, align 8, !tbaa !19
  %1167 = getelementptr inbounds i8, ptr %1166, i64 %1057
  %1168 = load i8, ptr %1167, align 1, !tbaa !20
  %1169 = zext i8 %1168 to i64
  %1170 = getelementptr inbounds [256 x i32], ptr %6, i64 0, i64 %1169
  %1171 = load i32, ptr %1170, align 4, !tbaa !14
  %1172 = load ptr, ptr %1063, align 8, !tbaa !19
  %1173 = getelementptr inbounds i8, ptr %1172, i64 %1057
  %1174 = load i8, ptr %1173, align 1, !tbaa !20
  %1175 = zext i8 %1174 to i64
  %1176 = getelementptr inbounds [256 x i32], ptr %7, i64 0, i64 %1175
  %1177 = load i32, ptr %1176, align 4, !tbaa !14
  %1178 = add nsw i32 %1177, %1171
  %1179 = icmp slt i32 %1178, 0
  %spec.select38434018 = tail call i32 @llvm.umin.i32(i32 %1178, i32 255)
  %spec.select3843 = trunc nuw i32 %spec.select38434018 to i8
  %.sink3423 = select i1 %1179, i8 0, i8 %spec.select3843
  %1180 = load ptr, ptr %96, align 8, !tbaa !19
  %1181 = getelementptr inbounds ptr, ptr %1180, i64 %indvars.iv3161
  %1182 = load ptr, ptr %1181, align 8, !tbaa !19
  %1183 = getelementptr inbounds i8, ptr %1182, i64 %1057
  store i8 %.sink3423, ptr %1183, align 1, !tbaa !20
  %1184 = load ptr, ptr %1055, align 8, !tbaa !19
  %1185 = getelementptr inbounds i8, ptr %1184, i64 %1057
  %1186 = load i8, ptr %1185, align 1, !tbaa !20
  %1187 = zext i8 %1186 to i64
  %1188 = getelementptr inbounds [256 x i32], ptr %6, i64 0, i64 %1187
  %1189 = load i32, ptr %1188, align 4, !tbaa !14
  %1190 = load ptr, ptr %1063, align 8, !tbaa !19
  %1191 = getelementptr inbounds i8, ptr %1190, i64 %1057
  %1192 = load i8, ptr %1191, align 1, !tbaa !20
  %1193 = zext i8 %1192 to i64
  %1194 = getelementptr inbounds [256 x i32], ptr %7, i64 0, i64 %1193
  %1195 = load i32, ptr %1194, align 4, !tbaa !14
  %1196 = add nsw i32 %1195, %1189
  %1197 = icmp slt i32 %1196, 0
  %spec.select38444019 = tail call i32 @llvm.umin.i32(i32 %1196, i32 255)
  %spec.select3844 = trunc nuw i32 %spec.select38444019 to i8
  %.sink3428 = select i1 %1197, i8 0, i8 %spec.select3844
  %1198 = load ptr, ptr %96, align 8, !tbaa !19
  %1199 = getelementptr inbounds ptr, ptr %1198, i64 %indvars.iv3161
  %1200 = load ptr, ptr %1199, align 8, !tbaa !19
  %1201 = getelementptr inbounds i8, ptr %1200, i64 %1057
  store i8 %.sink3428, ptr %1201, align 1, !tbaa !20
  %1202 = load ptr, ptr %1055, align 8, !tbaa !19
  %1203 = getelementptr inbounds i8, ptr %1202, i64 %1057
  %1204 = load i8, ptr %1203, align 1, !tbaa !20
  %1205 = zext i8 %1204 to i64
  %1206 = getelementptr inbounds [256 x i32], ptr %6, i64 0, i64 %1205
  %1207 = load i32, ptr %1206, align 4, !tbaa !14
  %1208 = load ptr, ptr %1063, align 8, !tbaa !19
  %1209 = getelementptr inbounds i8, ptr %1208, i64 %1057
  %1210 = load i8, ptr %1209, align 1, !tbaa !20
  %1211 = zext i8 %1210 to i64
  %1212 = getelementptr inbounds [256 x i32], ptr %7, i64 0, i64 %1211
  %1213 = load i32, ptr %1212, align 4, !tbaa !14
  %1214 = add nsw i32 %1213, %1207
  %1215 = icmp slt i32 %1214, 0
  br i1 %1215, label %.sink.split3778, label %1216

1216:                                             ; preds = %1054
  %spec.select38454020 = tail call i32 @llvm.umin.i32(i32 %1214, i32 255)
  %spec.select3845 = trunc nuw i32 %spec.select38454020 to i8
  br label %.sink.split3778

1217:                                             ; preds = %396
  %1218 = getelementptr inbounds ptr, ptr %90, i64 %indvars.iv3161
  %1219 = load ptr, ptr %1218, align 8, !tbaa !19
  %1220 = zext nneg i32 %.02993.lcssa to i64
  %1221 = getelementptr inbounds i8, ptr %1219, i64 %1220
  %1222 = load i8, ptr %1221, align 1, !tbaa !20
  %1223 = zext i8 %1222 to i64
  %1224 = getelementptr inbounds [256 x i32], ptr %6, i64 0, i64 %1223
  %1225 = load i32, ptr %1224, align 4, !tbaa !14
  %1226 = getelementptr inbounds ptr, ptr %94, i64 %indvars.iv3161
  %1227 = load ptr, ptr %1226, align 8, !tbaa !19
  %1228 = getelementptr inbounds i8, ptr %1227, i64 %1220
  %1229 = load i8, ptr %1228, align 1, !tbaa !20
  %1230 = zext i8 %1229 to i64
  %1231 = getelementptr inbounds [256 x i32], ptr %7, i64 0, i64 %1230
  %1232 = load i32, ptr %1231, align 4, !tbaa !14
  %1233 = add nsw i32 %1232, %1225
  %1234 = icmp slt i32 %1233, 0
  %spec.select38464002 = tail call i32 @llvm.umin.i32(i32 %1233, i32 255)
  %spec.select3846 = trunc nuw i32 %spec.select38464002 to i8
  %.sink3433 = select i1 %1234, i8 0, i8 %spec.select3846
  %1235 = load ptr, ptr %96, align 8, !tbaa !19
  %1236 = getelementptr inbounds ptr, ptr %1235, i64 %indvars.iv3161
  %1237 = load ptr, ptr %1236, align 8, !tbaa !19
  %1238 = getelementptr inbounds i8, ptr %1237, i64 %1220
  store i8 %.sink3433, ptr %1238, align 1, !tbaa !20
  %1239 = load ptr, ptr %1218, align 8, !tbaa !19
  %1240 = getelementptr inbounds i8, ptr %1239, i64 %1220
  %1241 = load i8, ptr %1240, align 1, !tbaa !20
  %1242 = zext i8 %1241 to i64
  %1243 = getelementptr inbounds [256 x i32], ptr %6, i64 0, i64 %1242
  %1244 = load i32, ptr %1243, align 4, !tbaa !14
  %1245 = load ptr, ptr %1226, align 8, !tbaa !19
  %1246 = getelementptr inbounds i8, ptr %1245, i64 %1220
  %1247 = load i8, ptr %1246, align 1, !tbaa !20
  %1248 = zext i8 %1247 to i64
  %1249 = getelementptr inbounds [256 x i32], ptr %7, i64 0, i64 %1248
  %1250 = load i32, ptr %1249, align 4, !tbaa !14
  %1251 = add nsw i32 %1250, %1244
  %1252 = icmp slt i32 %1251, 0
  %spec.select38474003 = tail call i32 @llvm.umin.i32(i32 %1251, i32 255)
  %spec.select3847 = trunc nuw i32 %spec.select38474003 to i8
  %.sink3438 = select i1 %1252, i8 0, i8 %spec.select3847
  %1253 = load ptr, ptr %96, align 8, !tbaa !19
  %1254 = getelementptr inbounds ptr, ptr %1253, i64 %indvars.iv3161
  %1255 = load ptr, ptr %1254, align 8, !tbaa !19
  %1256 = getelementptr inbounds i8, ptr %1255, i64 %1220
  store i8 %.sink3438, ptr %1256, align 1, !tbaa !20
  %1257 = load ptr, ptr %1218, align 8, !tbaa !19
  %1258 = getelementptr inbounds i8, ptr %1257, i64 %1220
  %1259 = load i8, ptr %1258, align 1, !tbaa !20
  %1260 = zext i8 %1259 to i64
  %1261 = getelementptr inbounds [256 x i32], ptr %6, i64 0, i64 %1260
  %1262 = load i32, ptr %1261, align 4, !tbaa !14
  %1263 = load ptr, ptr %1226, align 8, !tbaa !19
  %1264 = getelementptr inbounds i8, ptr %1263, i64 %1220
  %1265 = load i8, ptr %1264, align 1, !tbaa !20
  %1266 = zext i8 %1265 to i64
  %1267 = getelementptr inbounds [256 x i32], ptr %7, i64 0, i64 %1266
  %1268 = load i32, ptr %1267, align 4, !tbaa !14
  %1269 = add nsw i32 %1268, %1262
  %1270 = icmp slt i32 %1269, 0
  %spec.select38484004 = tail call i32 @llvm.umin.i32(i32 %1269, i32 255)
  %spec.select3848 = trunc nuw i32 %spec.select38484004 to i8
  %.sink3443 = select i1 %1270, i8 0, i8 %spec.select3848
  %1271 = load ptr, ptr %96, align 8, !tbaa !19
  %1272 = getelementptr inbounds ptr, ptr %1271, i64 %indvars.iv3161
  %1273 = load ptr, ptr %1272, align 8, !tbaa !19
  %1274 = getelementptr inbounds i8, ptr %1273, i64 %1220
  store i8 %.sink3443, ptr %1274, align 1, !tbaa !20
  %1275 = load ptr, ptr %1218, align 8, !tbaa !19
  %1276 = getelementptr inbounds i8, ptr %1275, i64 %1220
  %1277 = load i8, ptr %1276, align 1, !tbaa !20
  %1278 = zext i8 %1277 to i64
  %1279 = getelementptr inbounds [256 x i32], ptr %6, i64 0, i64 %1278
  %1280 = load i32, ptr %1279, align 4, !tbaa !14
  %1281 = load ptr, ptr %1226, align 8, !tbaa !19
  %1282 = getelementptr inbounds i8, ptr %1281, i64 %1220
  %1283 = load i8, ptr %1282, align 1, !tbaa !20
  %1284 = zext i8 %1283 to i64
  %1285 = getelementptr inbounds [256 x i32], ptr %7, i64 0, i64 %1284
  %1286 = load i32, ptr %1285, align 4, !tbaa !14
  %1287 = add nsw i32 %1286, %1280
  %1288 = icmp slt i32 %1287, 0
  %spec.select38494005 = tail call i32 @llvm.umin.i32(i32 %1287, i32 255)
  %spec.select3849 = trunc nuw i32 %spec.select38494005 to i8
  %.sink3448 = select i1 %1288, i8 0, i8 %spec.select3849
  %1289 = load ptr, ptr %96, align 8, !tbaa !19
  %1290 = getelementptr inbounds ptr, ptr %1289, i64 %indvars.iv3161
  %1291 = load ptr, ptr %1290, align 8, !tbaa !19
  %1292 = getelementptr inbounds i8, ptr %1291, i64 %1220
  store i8 %.sink3448, ptr %1292, align 1, !tbaa !20
  %1293 = load ptr, ptr %1218, align 8, !tbaa !19
  %1294 = getelementptr inbounds i8, ptr %1293, i64 %1220
  %1295 = load i8, ptr %1294, align 1, !tbaa !20
  %1296 = zext i8 %1295 to i64
  %1297 = getelementptr inbounds [256 x i32], ptr %6, i64 0, i64 %1296
  %1298 = load i32, ptr %1297, align 4, !tbaa !14
  %1299 = load ptr, ptr %1226, align 8, !tbaa !19
  %1300 = getelementptr inbounds i8, ptr %1299, i64 %1220
  %1301 = load i8, ptr %1300, align 1, !tbaa !20
  %1302 = zext i8 %1301 to i64
  %1303 = getelementptr inbounds [256 x i32], ptr %7, i64 0, i64 %1302
  %1304 = load i32, ptr %1303, align 4, !tbaa !14
  %1305 = add nsw i32 %1304, %1298
  %1306 = icmp slt i32 %1305, 0
  %spec.select38504006 = tail call i32 @llvm.umin.i32(i32 %1305, i32 255)
  %spec.select3850 = trunc nuw i32 %spec.select38504006 to i8
  %.sink3453 = select i1 %1306, i8 0, i8 %spec.select3850
  %1307 = load ptr, ptr %96, align 8, !tbaa !19
  %1308 = getelementptr inbounds ptr, ptr %1307, i64 %indvars.iv3161
  %1309 = load ptr, ptr %1308, align 8, !tbaa !19
  %1310 = getelementptr inbounds i8, ptr %1309, i64 %1220
  store i8 %.sink3453, ptr %1310, align 1, !tbaa !20
  %1311 = load ptr, ptr %1218, align 8, !tbaa !19
  %1312 = getelementptr inbounds i8, ptr %1311, i64 %1220
  %1313 = load i8, ptr %1312, align 1, !tbaa !20
  %1314 = zext i8 %1313 to i64
  %1315 = getelementptr inbounds [256 x i32], ptr %6, i64 0, i64 %1314
  %1316 = load i32, ptr %1315, align 4, !tbaa !14
  %1317 = load ptr, ptr %1226, align 8, !tbaa !19
  %1318 = getelementptr inbounds i8, ptr %1317, i64 %1220
  %1319 = load i8, ptr %1318, align 1, !tbaa !20
  %1320 = zext i8 %1319 to i64
  %1321 = getelementptr inbounds [256 x i32], ptr %7, i64 0, i64 %1320
  %1322 = load i32, ptr %1321, align 4, !tbaa !14
  %1323 = add nsw i32 %1322, %1316
  %1324 = icmp slt i32 %1323, 0
  %spec.select38514007 = tail call i32 @llvm.umin.i32(i32 %1323, i32 255)
  %spec.select3851 = trunc nuw i32 %spec.select38514007 to i8
  %.sink3458 = select i1 %1324, i8 0, i8 %spec.select3851
  %1325 = load ptr, ptr %96, align 8, !tbaa !19
  %1326 = getelementptr inbounds ptr, ptr %1325, i64 %indvars.iv3161
  %1327 = load ptr, ptr %1326, align 8, !tbaa !19
  %1328 = getelementptr inbounds i8, ptr %1327, i64 %1220
  store i8 %.sink3458, ptr %1328, align 1, !tbaa !20
  %1329 = load ptr, ptr %1218, align 8, !tbaa !19
  %1330 = getelementptr inbounds i8, ptr %1329, i64 %1220
  %1331 = load i8, ptr %1330, align 1, !tbaa !20
  %1332 = zext i8 %1331 to i64
  %1333 = getelementptr inbounds [256 x i32], ptr %6, i64 0, i64 %1332
  %1334 = load i32, ptr %1333, align 4, !tbaa !14
  %1335 = load ptr, ptr %1226, align 8, !tbaa !19
  %1336 = getelementptr inbounds i8, ptr %1335, i64 %1220
  %1337 = load i8, ptr %1336, align 1, !tbaa !20
  %1338 = zext i8 %1337 to i64
  %1339 = getelementptr inbounds [256 x i32], ptr %7, i64 0, i64 %1338
  %1340 = load i32, ptr %1339, align 4, !tbaa !14
  %1341 = add nsw i32 %1340, %1334
  %1342 = icmp slt i32 %1341, 0
  %spec.select38524008 = tail call i32 @llvm.umin.i32(i32 %1341, i32 255)
  %spec.select3852 = trunc nuw i32 %spec.select38524008 to i8
  %.sink3463 = select i1 %1342, i8 0, i8 %spec.select3852
  %1343 = load ptr, ptr %96, align 8, !tbaa !19
  %1344 = getelementptr inbounds ptr, ptr %1343, i64 %indvars.iv3161
  %1345 = load ptr, ptr %1344, align 8, !tbaa !19
  %1346 = getelementptr inbounds i8, ptr %1345, i64 %1220
  store i8 %.sink3463, ptr %1346, align 1, !tbaa !20
  %1347 = load ptr, ptr %1218, align 8, !tbaa !19
  %1348 = getelementptr inbounds i8, ptr %1347, i64 %1220
  %1349 = load i8, ptr %1348, align 1, !tbaa !20
  %1350 = zext i8 %1349 to i64
  %1351 = getelementptr inbounds [256 x i32], ptr %6, i64 0, i64 %1350
  %1352 = load i32, ptr %1351, align 4, !tbaa !14
  %1353 = load ptr, ptr %1226, align 8, !tbaa !19
  %1354 = getelementptr inbounds i8, ptr %1353, i64 %1220
  %1355 = load i8, ptr %1354, align 1, !tbaa !20
  %1356 = zext i8 %1355 to i64
  %1357 = getelementptr inbounds [256 x i32], ptr %7, i64 0, i64 %1356
  %1358 = load i32, ptr %1357, align 4, !tbaa !14
  %1359 = add nsw i32 %1358, %1352
  %1360 = icmp slt i32 %1359, 0
  %spec.select38534009 = tail call i32 @llvm.umin.i32(i32 %1359, i32 255)
  %spec.select3853 = trunc nuw i32 %spec.select38534009 to i8
  %.sink3468 = select i1 %1360, i8 0, i8 %spec.select3853
  %1361 = load ptr, ptr %96, align 8, !tbaa !19
  %1362 = getelementptr inbounds ptr, ptr %1361, i64 %indvars.iv3161
  %1363 = load ptr, ptr %1362, align 8, !tbaa !19
  %1364 = getelementptr inbounds i8, ptr %1363, i64 %1220
  store i8 %.sink3468, ptr %1364, align 1, !tbaa !20
  %1365 = load ptr, ptr %1218, align 8, !tbaa !19
  %1366 = getelementptr inbounds i8, ptr %1365, i64 %1220
  %1367 = load i8, ptr %1366, align 1, !tbaa !20
  %1368 = zext i8 %1367 to i64
  %1369 = getelementptr inbounds [256 x i32], ptr %6, i64 0, i64 %1368
  %1370 = load i32, ptr %1369, align 4, !tbaa !14
  %1371 = load ptr, ptr %1226, align 8, !tbaa !19
  %1372 = getelementptr inbounds i8, ptr %1371, i64 %1220
  %1373 = load i8, ptr %1372, align 1, !tbaa !20
  %1374 = zext i8 %1373 to i64
  %1375 = getelementptr inbounds [256 x i32], ptr %7, i64 0, i64 %1374
  %1376 = load i32, ptr %1375, align 4, !tbaa !14
  %1377 = add nsw i32 %1376, %1370
  %1378 = icmp slt i32 %1377, 0
  %spec.select38544010 = tail call i32 @llvm.umin.i32(i32 %1377, i32 255)
  %spec.select3854 = trunc nuw i32 %spec.select38544010 to i8
  %.sink3473 = select i1 %1378, i8 0, i8 %spec.select3854
  %1379 = load ptr, ptr %96, align 8, !tbaa !19
  %1380 = getelementptr inbounds ptr, ptr %1379, i64 %indvars.iv3161
  %1381 = load ptr, ptr %1380, align 8, !tbaa !19
  %1382 = getelementptr inbounds i8, ptr %1381, i64 %1220
  store i8 %.sink3473, ptr %1382, align 1, !tbaa !20
  %1383 = load ptr, ptr %1218, align 8, !tbaa !19
  %1384 = getelementptr inbounds i8, ptr %1383, i64 %1220
  %1385 = load i8, ptr %1384, align 1, !tbaa !20
  %1386 = zext i8 %1385 to i64
  %1387 = getelementptr inbounds [256 x i32], ptr %6, i64 0, i64 %1386
  %1388 = load i32, ptr %1387, align 4, !tbaa !14
  %1389 = load ptr, ptr %1226, align 8, !tbaa !19
  %1390 = getelementptr inbounds i8, ptr %1389, i64 %1220
  %1391 = load i8, ptr %1390, align 1, !tbaa !20
  %1392 = zext i8 %1391 to i64
  %1393 = getelementptr inbounds [256 x i32], ptr %7, i64 0, i64 %1392
  %1394 = load i32, ptr %1393, align 4, !tbaa !14
  %1395 = add nsw i32 %1394, %1388
  %1396 = icmp slt i32 %1395, 0
  br i1 %1396, label %.sink.split3778, label %1397

1397:                                             ; preds = %1217
  %spec.select38554011 = tail call i32 @llvm.umin.i32(i32 %1395, i32 255)
  %spec.select3855 = trunc nuw i32 %spec.select38554011 to i8
  br label %.sink.split3778

1398:                                             ; preds = %396
  %1399 = getelementptr inbounds ptr, ptr %90, i64 %indvars.iv3161
  %1400 = load ptr, ptr %1399, align 8, !tbaa !19
  %1401 = zext nneg i32 %.02993.lcssa to i64
  %1402 = getelementptr inbounds i8, ptr %1400, i64 %1401
  %1403 = load i8, ptr %1402, align 1, !tbaa !20
  %1404 = zext i8 %1403 to i64
  %1405 = getelementptr inbounds [256 x i32], ptr %6, i64 0, i64 %1404
  %1406 = load i32, ptr %1405, align 4, !tbaa !14
  %1407 = getelementptr inbounds ptr, ptr %94, i64 %indvars.iv3161
  %1408 = load ptr, ptr %1407, align 8, !tbaa !19
  %1409 = getelementptr inbounds i8, ptr %1408, i64 %1401
  %1410 = load i8, ptr %1409, align 1, !tbaa !20
  %1411 = zext i8 %1410 to i64
  %1412 = getelementptr inbounds [256 x i32], ptr %7, i64 0, i64 %1411
  %1413 = load i32, ptr %1412, align 4, !tbaa !14
  %1414 = add nsw i32 %1413, %1406
  %1415 = icmp slt i32 %1414, 0
  %spec.select38563991 = tail call i32 @llvm.umin.i32(i32 %1414, i32 255)
  %spec.select3856 = trunc nuw i32 %spec.select38563991 to i8
  %.sink3478 = select i1 %1415, i8 0, i8 %spec.select3856
  %1416 = load ptr, ptr %96, align 8, !tbaa !19
  %1417 = getelementptr inbounds ptr, ptr %1416, i64 %indvars.iv3161
  %1418 = load ptr, ptr %1417, align 8, !tbaa !19
  %1419 = getelementptr inbounds i8, ptr %1418, i64 %1401
  store i8 %.sink3478, ptr %1419, align 1, !tbaa !20
  %1420 = load ptr, ptr %1399, align 8, !tbaa !19
  %1421 = getelementptr inbounds i8, ptr %1420, i64 %1401
  %1422 = load i8, ptr %1421, align 1, !tbaa !20
  %1423 = zext i8 %1422 to i64
  %1424 = getelementptr inbounds [256 x i32], ptr %6, i64 0, i64 %1423
  %1425 = load i32, ptr %1424, align 4, !tbaa !14
  %1426 = load ptr, ptr %1407, align 8, !tbaa !19
  %1427 = getelementptr inbounds i8, ptr %1426, i64 %1401
  %1428 = load i8, ptr %1427, align 1, !tbaa !20
  %1429 = zext i8 %1428 to i64
  %1430 = getelementptr inbounds [256 x i32], ptr %7, i64 0, i64 %1429
  %1431 = load i32, ptr %1430, align 4, !tbaa !14
  %1432 = add nsw i32 %1431, %1425
  %1433 = icmp slt i32 %1432, 0
  %spec.select38573992 = tail call i32 @llvm.umin.i32(i32 %1432, i32 255)
  %spec.select3857 = trunc nuw i32 %spec.select38573992 to i8
  %.sink3483 = select i1 %1433, i8 0, i8 %spec.select3857
  %1434 = load ptr, ptr %96, align 8, !tbaa !19
  %1435 = getelementptr inbounds ptr, ptr %1434, i64 %indvars.iv3161
  %1436 = load ptr, ptr %1435, align 8, !tbaa !19
  %1437 = getelementptr inbounds i8, ptr %1436, i64 %1401
  store i8 %.sink3483, ptr %1437, align 1, !tbaa !20
  %1438 = load ptr, ptr %1399, align 8, !tbaa !19
  %1439 = getelementptr inbounds i8, ptr %1438, i64 %1401
  %1440 = load i8, ptr %1439, align 1, !tbaa !20
  %1441 = zext i8 %1440 to i64
  %1442 = getelementptr inbounds [256 x i32], ptr %6, i64 0, i64 %1441
  %1443 = load i32, ptr %1442, align 4, !tbaa !14
  %1444 = load ptr, ptr %1407, align 8, !tbaa !19
  %1445 = getelementptr inbounds i8, ptr %1444, i64 %1401
  %1446 = load i8, ptr %1445, align 1, !tbaa !20
  %1447 = zext i8 %1446 to i64
  %1448 = getelementptr inbounds [256 x i32], ptr %7, i64 0, i64 %1447
  %1449 = load i32, ptr %1448, align 4, !tbaa !14
  %1450 = add nsw i32 %1449, %1443
  %1451 = icmp slt i32 %1450, 0
  %spec.select38583993 = tail call i32 @llvm.umin.i32(i32 %1450, i32 255)
  %spec.select3858 = trunc nuw i32 %spec.select38583993 to i8
  %.sink3488 = select i1 %1451, i8 0, i8 %spec.select3858
  %1452 = load ptr, ptr %96, align 8, !tbaa !19
  %1453 = getelementptr inbounds ptr, ptr %1452, i64 %indvars.iv3161
  %1454 = load ptr, ptr %1453, align 8, !tbaa !19
  %1455 = getelementptr inbounds i8, ptr %1454, i64 %1401
  store i8 %.sink3488, ptr %1455, align 1, !tbaa !20
  %1456 = load ptr, ptr %1399, align 8, !tbaa !19
  %1457 = getelementptr inbounds i8, ptr %1456, i64 %1401
  %1458 = load i8, ptr %1457, align 1, !tbaa !20
  %1459 = zext i8 %1458 to i64
  %1460 = getelementptr inbounds [256 x i32], ptr %6, i64 0, i64 %1459
  %1461 = load i32, ptr %1460, align 4, !tbaa !14
  %1462 = load ptr, ptr %1407, align 8, !tbaa !19
  %1463 = getelementptr inbounds i8, ptr %1462, i64 %1401
  %1464 = load i8, ptr %1463, align 1, !tbaa !20
  %1465 = zext i8 %1464 to i64
  %1466 = getelementptr inbounds [256 x i32], ptr %7, i64 0, i64 %1465
  %1467 = load i32, ptr %1466, align 4, !tbaa !14
  %1468 = add nsw i32 %1467, %1461
  %1469 = icmp slt i32 %1468, 0
  %spec.select38593994 = tail call i32 @llvm.umin.i32(i32 %1468, i32 255)
  %spec.select3859 = trunc nuw i32 %spec.select38593994 to i8
  %.sink3493 = select i1 %1469, i8 0, i8 %spec.select3859
  %1470 = load ptr, ptr %96, align 8, !tbaa !19
  %1471 = getelementptr inbounds ptr, ptr %1470, i64 %indvars.iv3161
  %1472 = load ptr, ptr %1471, align 8, !tbaa !19
  %1473 = getelementptr inbounds i8, ptr %1472, i64 %1401
  store i8 %.sink3493, ptr %1473, align 1, !tbaa !20
  %1474 = load ptr, ptr %1399, align 8, !tbaa !19
  %1475 = getelementptr inbounds i8, ptr %1474, i64 %1401
  %1476 = load i8, ptr %1475, align 1, !tbaa !20
  %1477 = zext i8 %1476 to i64
  %1478 = getelementptr inbounds [256 x i32], ptr %6, i64 0, i64 %1477
  %1479 = load i32, ptr %1478, align 4, !tbaa !14
  %1480 = load ptr, ptr %1407, align 8, !tbaa !19
  %1481 = getelementptr inbounds i8, ptr %1480, i64 %1401
  %1482 = load i8, ptr %1481, align 1, !tbaa !20
  %1483 = zext i8 %1482 to i64
  %1484 = getelementptr inbounds [256 x i32], ptr %7, i64 0, i64 %1483
  %1485 = load i32, ptr %1484, align 4, !tbaa !14
  %1486 = add nsw i32 %1485, %1479
  %1487 = icmp slt i32 %1486, 0
  %spec.select38603995 = tail call i32 @llvm.umin.i32(i32 %1486, i32 255)
  %spec.select3860 = trunc nuw i32 %spec.select38603995 to i8
  %.sink3498 = select i1 %1487, i8 0, i8 %spec.select3860
  %1488 = load ptr, ptr %96, align 8, !tbaa !19
  %1489 = getelementptr inbounds ptr, ptr %1488, i64 %indvars.iv3161
  %1490 = load ptr, ptr %1489, align 8, !tbaa !19
  %1491 = getelementptr inbounds i8, ptr %1490, i64 %1401
  store i8 %.sink3498, ptr %1491, align 1, !tbaa !20
  %1492 = load ptr, ptr %1399, align 8, !tbaa !19
  %1493 = getelementptr inbounds i8, ptr %1492, i64 %1401
  %1494 = load i8, ptr %1493, align 1, !tbaa !20
  %1495 = zext i8 %1494 to i64
  %1496 = getelementptr inbounds [256 x i32], ptr %6, i64 0, i64 %1495
  %1497 = load i32, ptr %1496, align 4, !tbaa !14
  %1498 = load ptr, ptr %1407, align 8, !tbaa !19
  %1499 = getelementptr inbounds i8, ptr %1498, i64 %1401
  %1500 = load i8, ptr %1499, align 1, !tbaa !20
  %1501 = zext i8 %1500 to i64
  %1502 = getelementptr inbounds [256 x i32], ptr %7, i64 0, i64 %1501
  %1503 = load i32, ptr %1502, align 4, !tbaa !14
  %1504 = add nsw i32 %1503, %1497
  %1505 = icmp slt i32 %1504, 0
  %spec.select38613996 = tail call i32 @llvm.umin.i32(i32 %1504, i32 255)
  %spec.select3861 = trunc nuw i32 %spec.select38613996 to i8
  %.sink3503 = select i1 %1505, i8 0, i8 %spec.select3861
  %1506 = load ptr, ptr %96, align 8, !tbaa !19
  %1507 = getelementptr inbounds ptr, ptr %1506, i64 %indvars.iv3161
  %1508 = load ptr, ptr %1507, align 8, !tbaa !19
  %1509 = getelementptr inbounds i8, ptr %1508, i64 %1401
  store i8 %.sink3503, ptr %1509, align 1, !tbaa !20
  %1510 = load ptr, ptr %1399, align 8, !tbaa !19
  %1511 = getelementptr inbounds i8, ptr %1510, i64 %1401
  %1512 = load i8, ptr %1511, align 1, !tbaa !20
  %1513 = zext i8 %1512 to i64
  %1514 = getelementptr inbounds [256 x i32], ptr %6, i64 0, i64 %1513
  %1515 = load i32, ptr %1514, align 4, !tbaa !14
  %1516 = load ptr, ptr %1407, align 8, !tbaa !19
  %1517 = getelementptr inbounds i8, ptr %1516, i64 %1401
  %1518 = load i8, ptr %1517, align 1, !tbaa !20
  %1519 = zext i8 %1518 to i64
  %1520 = getelementptr inbounds [256 x i32], ptr %7, i64 0, i64 %1519
  %1521 = load i32, ptr %1520, align 4, !tbaa !14
  %1522 = add nsw i32 %1521, %1515
  %1523 = icmp slt i32 %1522, 0
  %spec.select38623997 = tail call i32 @llvm.umin.i32(i32 %1522, i32 255)
  %spec.select3862 = trunc nuw i32 %spec.select38623997 to i8
  %.sink3508 = select i1 %1523, i8 0, i8 %spec.select3862
  %1524 = load ptr, ptr %96, align 8, !tbaa !19
  %1525 = getelementptr inbounds ptr, ptr %1524, i64 %indvars.iv3161
  %1526 = load ptr, ptr %1525, align 8, !tbaa !19
  %1527 = getelementptr inbounds i8, ptr %1526, i64 %1401
  store i8 %.sink3508, ptr %1527, align 1, !tbaa !20
  %1528 = load ptr, ptr %1399, align 8, !tbaa !19
  %1529 = getelementptr inbounds i8, ptr %1528, i64 %1401
  %1530 = load i8, ptr %1529, align 1, !tbaa !20
  %1531 = zext i8 %1530 to i64
  %1532 = getelementptr inbounds [256 x i32], ptr %6, i64 0, i64 %1531
  %1533 = load i32, ptr %1532, align 4, !tbaa !14
  %1534 = load ptr, ptr %1407, align 8, !tbaa !19
  %1535 = getelementptr inbounds i8, ptr %1534, i64 %1401
  %1536 = load i8, ptr %1535, align 1, !tbaa !20
  %1537 = zext i8 %1536 to i64
  %1538 = getelementptr inbounds [256 x i32], ptr %7, i64 0, i64 %1537
  %1539 = load i32, ptr %1538, align 4, !tbaa !14
  %1540 = add nsw i32 %1539, %1533
  %1541 = icmp slt i32 %1540, 0
  %spec.select38633998 = tail call i32 @llvm.umin.i32(i32 %1540, i32 255)
  %spec.select3863 = trunc nuw i32 %spec.select38633998 to i8
  %.sink3513 = select i1 %1541, i8 0, i8 %spec.select3863
  %1542 = load ptr, ptr %96, align 8, !tbaa !19
  %1543 = getelementptr inbounds ptr, ptr %1542, i64 %indvars.iv3161
  %1544 = load ptr, ptr %1543, align 8, !tbaa !19
  %1545 = getelementptr inbounds i8, ptr %1544, i64 %1401
  store i8 %.sink3513, ptr %1545, align 1, !tbaa !20
  %1546 = load ptr, ptr %1399, align 8, !tbaa !19
  %1547 = getelementptr inbounds i8, ptr %1546, i64 %1401
  %1548 = load i8, ptr %1547, align 1, !tbaa !20
  %1549 = zext i8 %1548 to i64
  %1550 = getelementptr inbounds [256 x i32], ptr %6, i64 0, i64 %1549
  %1551 = load i32, ptr %1550, align 4, !tbaa !14
  %1552 = load ptr, ptr %1407, align 8, !tbaa !19
  %1553 = getelementptr inbounds i8, ptr %1552, i64 %1401
  %1554 = load i8, ptr %1553, align 1, !tbaa !20
  %1555 = zext i8 %1554 to i64
  %1556 = getelementptr inbounds [256 x i32], ptr %7, i64 0, i64 %1555
  %1557 = load i32, ptr %1556, align 4, !tbaa !14
  %1558 = add nsw i32 %1557, %1551
  %1559 = icmp slt i32 %1558, 0
  %spec.select38643999 = tail call i32 @llvm.umin.i32(i32 %1558, i32 255)
  %spec.select3864 = trunc nuw i32 %spec.select38643999 to i8
  %.sink3518 = select i1 %1559, i8 0, i8 %spec.select3864
  %1560 = load ptr, ptr %96, align 8, !tbaa !19
  %1561 = getelementptr inbounds ptr, ptr %1560, i64 %indvars.iv3161
  %1562 = load ptr, ptr %1561, align 8, !tbaa !19
  %1563 = getelementptr inbounds i8, ptr %1562, i64 %1401
  store i8 %.sink3518, ptr %1563, align 1, !tbaa !20
  %1564 = load ptr, ptr %1399, align 8, !tbaa !19
  %1565 = getelementptr inbounds i8, ptr %1564, i64 %1401
  %1566 = load i8, ptr %1565, align 1, !tbaa !20
  %1567 = zext i8 %1566 to i64
  %1568 = getelementptr inbounds [256 x i32], ptr %6, i64 0, i64 %1567
  %1569 = load i32, ptr %1568, align 4, !tbaa !14
  %1570 = load ptr, ptr %1407, align 8, !tbaa !19
  %1571 = getelementptr inbounds i8, ptr %1570, i64 %1401
  %1572 = load i8, ptr %1571, align 1, !tbaa !20
  %1573 = zext i8 %1572 to i64
  %1574 = getelementptr inbounds [256 x i32], ptr %7, i64 0, i64 %1573
  %1575 = load i32, ptr %1574, align 4, !tbaa !14
  %1576 = add nsw i32 %1575, %1569
  %1577 = icmp slt i32 %1576, 0
  %spec.select38654000 = tail call i32 @llvm.umin.i32(i32 %1576, i32 255)
  %spec.select3865 = trunc nuw i32 %spec.select38654000 to i8
  %.sink3523 = select i1 %1577, i8 0, i8 %spec.select3865
  %1578 = load ptr, ptr %96, align 8, !tbaa !19
  %1579 = getelementptr inbounds ptr, ptr %1578, i64 %indvars.iv3161
  %1580 = load ptr, ptr %1579, align 8, !tbaa !19
  %1581 = getelementptr inbounds i8, ptr %1580, i64 %1401
  store i8 %.sink3523, ptr %1581, align 1, !tbaa !20
  %1582 = load ptr, ptr %1399, align 8, !tbaa !19
  %1583 = getelementptr inbounds i8, ptr %1582, i64 %1401
  %1584 = load i8, ptr %1583, align 1, !tbaa !20
  %1585 = zext i8 %1584 to i64
  %1586 = getelementptr inbounds [256 x i32], ptr %6, i64 0, i64 %1585
  %1587 = load i32, ptr %1586, align 4, !tbaa !14
  %1588 = load ptr, ptr %1407, align 8, !tbaa !19
  %1589 = getelementptr inbounds i8, ptr %1588, i64 %1401
  %1590 = load i8, ptr %1589, align 1, !tbaa !20
  %1591 = zext i8 %1590 to i64
  %1592 = getelementptr inbounds [256 x i32], ptr %7, i64 0, i64 %1591
  %1593 = load i32, ptr %1592, align 4, !tbaa !14
  %1594 = add nsw i32 %1593, %1587
  %1595 = icmp slt i32 %1594, 0
  br i1 %1595, label %.sink.split3778, label %1596

1596:                                             ; preds = %1398
  %spec.select38664001 = tail call i32 @llvm.umin.i32(i32 %1594, i32 255)
  %spec.select3866 = trunc nuw i32 %spec.select38664001 to i8
  br label %.sink.split3778

1597:                                             ; preds = %396
  %1598 = getelementptr inbounds ptr, ptr %90, i64 %indvars.iv3161
  %1599 = load ptr, ptr %1598, align 8, !tbaa !19
  %1600 = zext nneg i32 %.02993.lcssa to i64
  %1601 = getelementptr inbounds i8, ptr %1599, i64 %1600
  %1602 = load i8, ptr %1601, align 1, !tbaa !20
  %1603 = zext i8 %1602 to i64
  %1604 = getelementptr inbounds [256 x i32], ptr %6, i64 0, i64 %1603
  %1605 = load i32, ptr %1604, align 4, !tbaa !14
  %1606 = getelementptr inbounds ptr, ptr %94, i64 %indvars.iv3161
  %1607 = load ptr, ptr %1606, align 8, !tbaa !19
  %1608 = getelementptr inbounds i8, ptr %1607, i64 %1600
  %1609 = load i8, ptr %1608, align 1, !tbaa !20
  %1610 = zext i8 %1609 to i64
  %1611 = getelementptr inbounds [256 x i32], ptr %7, i64 0, i64 %1610
  %1612 = load i32, ptr %1611, align 4, !tbaa !14
  %1613 = add nsw i32 %1612, %1605
  %1614 = icmp slt i32 %1613, 0
  %spec.select38673979 = tail call i32 @llvm.umin.i32(i32 %1613, i32 255)
  %spec.select3867 = trunc nuw i32 %spec.select38673979 to i8
  %.sink3528 = select i1 %1614, i8 0, i8 %spec.select3867
  %1615 = load ptr, ptr %96, align 8, !tbaa !19
  %1616 = getelementptr inbounds ptr, ptr %1615, i64 %indvars.iv3161
  %1617 = load ptr, ptr %1616, align 8, !tbaa !19
  %1618 = getelementptr inbounds i8, ptr %1617, i64 %1600
  store i8 %.sink3528, ptr %1618, align 1, !tbaa !20
  %1619 = load ptr, ptr %1598, align 8, !tbaa !19
  %1620 = getelementptr inbounds i8, ptr %1619, i64 %1600
  %1621 = load i8, ptr %1620, align 1, !tbaa !20
  %1622 = zext i8 %1621 to i64
  %1623 = getelementptr inbounds [256 x i32], ptr %6, i64 0, i64 %1622
  %1624 = load i32, ptr %1623, align 4, !tbaa !14
  %1625 = load ptr, ptr %1606, align 8, !tbaa !19
  %1626 = getelementptr inbounds i8, ptr %1625, i64 %1600
  %1627 = load i8, ptr %1626, align 1, !tbaa !20
  %1628 = zext i8 %1627 to i64
  %1629 = getelementptr inbounds [256 x i32], ptr %7, i64 0, i64 %1628
  %1630 = load i32, ptr %1629, align 4, !tbaa !14
  %1631 = add nsw i32 %1630, %1624
  %1632 = icmp slt i32 %1631, 0
  %spec.select38683980 = tail call i32 @llvm.umin.i32(i32 %1631, i32 255)
  %spec.select3868 = trunc nuw i32 %spec.select38683980 to i8
  %.sink3533 = select i1 %1632, i8 0, i8 %spec.select3868
  %1633 = load ptr, ptr %96, align 8, !tbaa !19
  %1634 = getelementptr inbounds ptr, ptr %1633, i64 %indvars.iv3161
  %1635 = load ptr, ptr %1634, align 8, !tbaa !19
  %1636 = getelementptr inbounds i8, ptr %1635, i64 %1600
  store i8 %.sink3533, ptr %1636, align 1, !tbaa !20
  %1637 = load ptr, ptr %1598, align 8, !tbaa !19
  %1638 = getelementptr inbounds i8, ptr %1637, i64 %1600
  %1639 = load i8, ptr %1638, align 1, !tbaa !20
  %1640 = zext i8 %1639 to i64
  %1641 = getelementptr inbounds [256 x i32], ptr %6, i64 0, i64 %1640
  %1642 = load i32, ptr %1641, align 4, !tbaa !14
  %1643 = load ptr, ptr %1606, align 8, !tbaa !19
  %1644 = getelementptr inbounds i8, ptr %1643, i64 %1600
  %1645 = load i8, ptr %1644, align 1, !tbaa !20
  %1646 = zext i8 %1645 to i64
  %1647 = getelementptr inbounds [256 x i32], ptr %7, i64 0, i64 %1646
  %1648 = load i32, ptr %1647, align 4, !tbaa !14
  %1649 = add nsw i32 %1648, %1642
  %1650 = icmp slt i32 %1649, 0
  %spec.select38693981 = tail call i32 @llvm.umin.i32(i32 %1649, i32 255)
  %spec.select3869 = trunc nuw i32 %spec.select38693981 to i8
  %.sink3538 = select i1 %1650, i8 0, i8 %spec.select3869
  %1651 = load ptr, ptr %96, align 8, !tbaa !19
  %1652 = getelementptr inbounds ptr, ptr %1651, i64 %indvars.iv3161
  %1653 = load ptr, ptr %1652, align 8, !tbaa !19
  %1654 = getelementptr inbounds i8, ptr %1653, i64 %1600
  store i8 %.sink3538, ptr %1654, align 1, !tbaa !20
  %1655 = load ptr, ptr %1598, align 8, !tbaa !19
  %1656 = getelementptr inbounds i8, ptr %1655, i64 %1600
  %1657 = load i8, ptr %1656, align 1, !tbaa !20
  %1658 = zext i8 %1657 to i64
  %1659 = getelementptr inbounds [256 x i32], ptr %6, i64 0, i64 %1658
  %1660 = load i32, ptr %1659, align 4, !tbaa !14
  %1661 = load ptr, ptr %1606, align 8, !tbaa !19
  %1662 = getelementptr inbounds i8, ptr %1661, i64 %1600
  %1663 = load i8, ptr %1662, align 1, !tbaa !20
  %1664 = zext i8 %1663 to i64
  %1665 = getelementptr inbounds [256 x i32], ptr %7, i64 0, i64 %1664
  %1666 = load i32, ptr %1665, align 4, !tbaa !14
  %1667 = add nsw i32 %1666, %1660
  %1668 = icmp slt i32 %1667, 0
  %spec.select38703982 = tail call i32 @llvm.umin.i32(i32 %1667, i32 255)
  %spec.select3870 = trunc nuw i32 %spec.select38703982 to i8
  %.sink3543 = select i1 %1668, i8 0, i8 %spec.select3870
  %1669 = load ptr, ptr %96, align 8, !tbaa !19
  %1670 = getelementptr inbounds ptr, ptr %1669, i64 %indvars.iv3161
  %1671 = load ptr, ptr %1670, align 8, !tbaa !19
  %1672 = getelementptr inbounds i8, ptr %1671, i64 %1600
  store i8 %.sink3543, ptr %1672, align 1, !tbaa !20
  %1673 = load ptr, ptr %1598, align 8, !tbaa !19
  %1674 = getelementptr inbounds i8, ptr %1673, i64 %1600
  %1675 = load i8, ptr %1674, align 1, !tbaa !20
  %1676 = zext i8 %1675 to i64
  %1677 = getelementptr inbounds [256 x i32], ptr %6, i64 0, i64 %1676
  %1678 = load i32, ptr %1677, align 4, !tbaa !14
  %1679 = load ptr, ptr %1606, align 8, !tbaa !19
  %1680 = getelementptr inbounds i8, ptr %1679, i64 %1600
  %1681 = load i8, ptr %1680, align 1, !tbaa !20
  %1682 = zext i8 %1681 to i64
  %1683 = getelementptr inbounds [256 x i32], ptr %7, i64 0, i64 %1682
  %1684 = load i32, ptr %1683, align 4, !tbaa !14
  %1685 = add nsw i32 %1684, %1678
  %1686 = icmp slt i32 %1685, 0
  %spec.select38713983 = tail call i32 @llvm.umin.i32(i32 %1685, i32 255)
  %spec.select3871 = trunc nuw i32 %spec.select38713983 to i8
  %.sink3548 = select i1 %1686, i8 0, i8 %spec.select3871
  %1687 = load ptr, ptr %96, align 8, !tbaa !19
  %1688 = getelementptr inbounds ptr, ptr %1687, i64 %indvars.iv3161
  %1689 = load ptr, ptr %1688, align 8, !tbaa !19
  %1690 = getelementptr inbounds i8, ptr %1689, i64 %1600
  store i8 %.sink3548, ptr %1690, align 1, !tbaa !20
  %1691 = load ptr, ptr %1598, align 8, !tbaa !19
  %1692 = getelementptr inbounds i8, ptr %1691, i64 %1600
  %1693 = load i8, ptr %1692, align 1, !tbaa !20
  %1694 = zext i8 %1693 to i64
  %1695 = getelementptr inbounds [256 x i32], ptr %6, i64 0, i64 %1694
  %1696 = load i32, ptr %1695, align 4, !tbaa !14
  %1697 = load ptr, ptr %1606, align 8, !tbaa !19
  %1698 = getelementptr inbounds i8, ptr %1697, i64 %1600
  %1699 = load i8, ptr %1698, align 1, !tbaa !20
  %1700 = zext i8 %1699 to i64
  %1701 = getelementptr inbounds [256 x i32], ptr %7, i64 0, i64 %1700
  %1702 = load i32, ptr %1701, align 4, !tbaa !14
  %1703 = add nsw i32 %1702, %1696
  %1704 = icmp slt i32 %1703, 0
  %spec.select38723984 = tail call i32 @llvm.umin.i32(i32 %1703, i32 255)
  %spec.select3872 = trunc nuw i32 %spec.select38723984 to i8
  %.sink3553 = select i1 %1704, i8 0, i8 %spec.select3872
  %1705 = load ptr, ptr %96, align 8, !tbaa !19
  %1706 = getelementptr inbounds ptr, ptr %1705, i64 %indvars.iv3161
  %1707 = load ptr, ptr %1706, align 8, !tbaa !19
  %1708 = getelementptr inbounds i8, ptr %1707, i64 %1600
  store i8 %.sink3553, ptr %1708, align 1, !tbaa !20
  %1709 = load ptr, ptr %1598, align 8, !tbaa !19
  %1710 = getelementptr inbounds i8, ptr %1709, i64 %1600
  %1711 = load i8, ptr %1710, align 1, !tbaa !20
  %1712 = zext i8 %1711 to i64
  %1713 = getelementptr inbounds [256 x i32], ptr %6, i64 0, i64 %1712
  %1714 = load i32, ptr %1713, align 4, !tbaa !14
  %1715 = load ptr, ptr %1606, align 8, !tbaa !19
  %1716 = getelementptr inbounds i8, ptr %1715, i64 %1600
  %1717 = load i8, ptr %1716, align 1, !tbaa !20
  %1718 = zext i8 %1717 to i64
  %1719 = getelementptr inbounds [256 x i32], ptr %7, i64 0, i64 %1718
  %1720 = load i32, ptr %1719, align 4, !tbaa !14
  %1721 = add nsw i32 %1720, %1714
  %1722 = icmp slt i32 %1721, 0
  %spec.select38733985 = tail call i32 @llvm.umin.i32(i32 %1721, i32 255)
  %spec.select3873 = trunc nuw i32 %spec.select38733985 to i8
  %.sink3558 = select i1 %1722, i8 0, i8 %spec.select3873
  %1723 = load ptr, ptr %96, align 8, !tbaa !19
  %1724 = getelementptr inbounds ptr, ptr %1723, i64 %indvars.iv3161
  %1725 = load ptr, ptr %1724, align 8, !tbaa !19
  %1726 = getelementptr inbounds i8, ptr %1725, i64 %1600
  store i8 %.sink3558, ptr %1726, align 1, !tbaa !20
  %1727 = load ptr, ptr %1598, align 8, !tbaa !19
  %1728 = getelementptr inbounds i8, ptr %1727, i64 %1600
  %1729 = load i8, ptr %1728, align 1, !tbaa !20
  %1730 = zext i8 %1729 to i64
  %1731 = getelementptr inbounds [256 x i32], ptr %6, i64 0, i64 %1730
  %1732 = load i32, ptr %1731, align 4, !tbaa !14
  %1733 = load ptr, ptr %1606, align 8, !tbaa !19
  %1734 = getelementptr inbounds i8, ptr %1733, i64 %1600
  %1735 = load i8, ptr %1734, align 1, !tbaa !20
  %1736 = zext i8 %1735 to i64
  %1737 = getelementptr inbounds [256 x i32], ptr %7, i64 0, i64 %1736
  %1738 = load i32, ptr %1737, align 4, !tbaa !14
  %1739 = add nsw i32 %1738, %1732
  %1740 = icmp slt i32 %1739, 0
  %spec.select38743986 = tail call i32 @llvm.umin.i32(i32 %1739, i32 255)
  %spec.select3874 = trunc nuw i32 %spec.select38743986 to i8
  %.sink3563 = select i1 %1740, i8 0, i8 %spec.select3874
  %1741 = load ptr, ptr %96, align 8, !tbaa !19
  %1742 = getelementptr inbounds ptr, ptr %1741, i64 %indvars.iv3161
  %1743 = load ptr, ptr %1742, align 8, !tbaa !19
  %1744 = getelementptr inbounds i8, ptr %1743, i64 %1600
  store i8 %.sink3563, ptr %1744, align 1, !tbaa !20
  %1745 = load ptr, ptr %1598, align 8, !tbaa !19
  %1746 = getelementptr inbounds i8, ptr %1745, i64 %1600
  %1747 = load i8, ptr %1746, align 1, !tbaa !20
  %1748 = zext i8 %1747 to i64
  %1749 = getelementptr inbounds [256 x i32], ptr %6, i64 0, i64 %1748
  %1750 = load i32, ptr %1749, align 4, !tbaa !14
  %1751 = load ptr, ptr %1606, align 8, !tbaa !19
  %1752 = getelementptr inbounds i8, ptr %1751, i64 %1600
  %1753 = load i8, ptr %1752, align 1, !tbaa !20
  %1754 = zext i8 %1753 to i64
  %1755 = getelementptr inbounds [256 x i32], ptr %7, i64 0, i64 %1754
  %1756 = load i32, ptr %1755, align 4, !tbaa !14
  %1757 = add nsw i32 %1756, %1750
  %1758 = icmp slt i32 %1757, 0
  %spec.select38753987 = tail call i32 @llvm.umin.i32(i32 %1757, i32 255)
  %spec.select3875 = trunc nuw i32 %spec.select38753987 to i8
  %.sink3568 = select i1 %1758, i8 0, i8 %spec.select3875
  %1759 = load ptr, ptr %96, align 8, !tbaa !19
  %1760 = getelementptr inbounds ptr, ptr %1759, i64 %indvars.iv3161
  %1761 = load ptr, ptr %1760, align 8, !tbaa !19
  %1762 = getelementptr inbounds i8, ptr %1761, i64 %1600
  store i8 %.sink3568, ptr %1762, align 1, !tbaa !20
  %1763 = load ptr, ptr %1598, align 8, !tbaa !19
  %1764 = getelementptr inbounds i8, ptr %1763, i64 %1600
  %1765 = load i8, ptr %1764, align 1, !tbaa !20
  %1766 = zext i8 %1765 to i64
  %1767 = getelementptr inbounds [256 x i32], ptr %6, i64 0, i64 %1766
  %1768 = load i32, ptr %1767, align 4, !tbaa !14
  %1769 = load ptr, ptr %1606, align 8, !tbaa !19
  %1770 = getelementptr inbounds i8, ptr %1769, i64 %1600
  %1771 = load i8, ptr %1770, align 1, !tbaa !20
  %1772 = zext i8 %1771 to i64
  %1773 = getelementptr inbounds [256 x i32], ptr %7, i64 0, i64 %1772
  %1774 = load i32, ptr %1773, align 4, !tbaa !14
  %1775 = add nsw i32 %1774, %1768
  %1776 = icmp slt i32 %1775, 0
  %spec.select38763988 = tail call i32 @llvm.umin.i32(i32 %1775, i32 255)
  %spec.select3876 = trunc nuw i32 %spec.select38763988 to i8
  %.sink3573 = select i1 %1776, i8 0, i8 %spec.select3876
  %1777 = load ptr, ptr %96, align 8, !tbaa !19
  %1778 = getelementptr inbounds ptr, ptr %1777, i64 %indvars.iv3161
  %1779 = load ptr, ptr %1778, align 8, !tbaa !19
  %1780 = getelementptr inbounds i8, ptr %1779, i64 %1600
  store i8 %.sink3573, ptr %1780, align 1, !tbaa !20
  %1781 = load ptr, ptr %1598, align 8, !tbaa !19
  %1782 = getelementptr inbounds i8, ptr %1781, i64 %1600
  %1783 = load i8, ptr %1782, align 1, !tbaa !20
  %1784 = zext i8 %1783 to i64
  %1785 = getelementptr inbounds [256 x i32], ptr %6, i64 0, i64 %1784
  %1786 = load i32, ptr %1785, align 4, !tbaa !14
  %1787 = load ptr, ptr %1606, align 8, !tbaa !19
  %1788 = getelementptr inbounds i8, ptr %1787, i64 %1600
  %1789 = load i8, ptr %1788, align 1, !tbaa !20
  %1790 = zext i8 %1789 to i64
  %1791 = getelementptr inbounds [256 x i32], ptr %7, i64 0, i64 %1790
  %1792 = load i32, ptr %1791, align 4, !tbaa !14
  %1793 = add nsw i32 %1792, %1786
  %1794 = icmp slt i32 %1793, 0
  %spec.select38773989 = tail call i32 @llvm.umin.i32(i32 %1793, i32 255)
  %spec.select3877 = trunc nuw i32 %spec.select38773989 to i8
  %.sink3578 = select i1 %1794, i8 0, i8 %spec.select3877
  %1795 = load ptr, ptr %96, align 8, !tbaa !19
  %1796 = getelementptr inbounds ptr, ptr %1795, i64 %indvars.iv3161
  %1797 = load ptr, ptr %1796, align 8, !tbaa !19
  %1798 = getelementptr inbounds i8, ptr %1797, i64 %1600
  store i8 %.sink3578, ptr %1798, align 1, !tbaa !20
  %1799 = load ptr, ptr %1598, align 8, !tbaa !19
  %1800 = getelementptr inbounds i8, ptr %1799, i64 %1600
  %1801 = load i8, ptr %1800, align 1, !tbaa !20
  %1802 = zext i8 %1801 to i64
  %1803 = getelementptr inbounds [256 x i32], ptr %6, i64 0, i64 %1802
  %1804 = load i32, ptr %1803, align 4, !tbaa !14
  %1805 = load ptr, ptr %1606, align 8, !tbaa !19
  %1806 = getelementptr inbounds i8, ptr %1805, i64 %1600
  %1807 = load i8, ptr %1806, align 1, !tbaa !20
  %1808 = zext i8 %1807 to i64
  %1809 = getelementptr inbounds [256 x i32], ptr %7, i64 0, i64 %1808
  %1810 = load i32, ptr %1809, align 4, !tbaa !14
  %1811 = add nsw i32 %1810, %1804
  %1812 = icmp slt i32 %1811, 0
  br i1 %1812, label %.sink.split3778, label %1813

1813:                                             ; preds = %1597
  %spec.select38783990 = tail call i32 @llvm.umin.i32(i32 %1811, i32 255)
  %spec.select3878 = trunc nuw i32 %spec.select38783990 to i8
  br label %.sink.split3778

1814:                                             ; preds = %396
  %1815 = getelementptr inbounds ptr, ptr %90, i64 %indvars.iv3161
  %1816 = load ptr, ptr %1815, align 8, !tbaa !19
  %1817 = zext nneg i32 %.02993.lcssa to i64
  %1818 = getelementptr inbounds i8, ptr %1816, i64 %1817
  %1819 = load i8, ptr %1818, align 1, !tbaa !20
  %1820 = zext i8 %1819 to i64
  %1821 = getelementptr inbounds [256 x i32], ptr %6, i64 0, i64 %1820
  %1822 = load i32, ptr %1821, align 4, !tbaa !14
  %1823 = getelementptr inbounds ptr, ptr %94, i64 %indvars.iv3161
  %1824 = load ptr, ptr %1823, align 8, !tbaa !19
  %1825 = getelementptr inbounds i8, ptr %1824, i64 %1817
  %1826 = load i8, ptr %1825, align 1, !tbaa !20
  %1827 = zext i8 %1826 to i64
  %1828 = getelementptr inbounds [256 x i32], ptr %7, i64 0, i64 %1827
  %1829 = load i32, ptr %1828, align 4, !tbaa !14
  %1830 = add nsw i32 %1829, %1822
  %1831 = icmp slt i32 %1830, 0
  %spec.select38793966 = tail call i32 @llvm.umin.i32(i32 %1830, i32 255)
  %spec.select3879 = trunc nuw i32 %spec.select38793966 to i8
  %.sink3583 = select i1 %1831, i8 0, i8 %spec.select3879
  %1832 = load ptr, ptr %96, align 8, !tbaa !19
  %1833 = getelementptr inbounds ptr, ptr %1832, i64 %indvars.iv3161
  %1834 = load ptr, ptr %1833, align 8, !tbaa !19
  %1835 = getelementptr inbounds i8, ptr %1834, i64 %1817
  store i8 %.sink3583, ptr %1835, align 1, !tbaa !20
  %1836 = load ptr, ptr %1815, align 8, !tbaa !19
  %1837 = getelementptr inbounds i8, ptr %1836, i64 %1817
  %1838 = load i8, ptr %1837, align 1, !tbaa !20
  %1839 = zext i8 %1838 to i64
  %1840 = getelementptr inbounds [256 x i32], ptr %6, i64 0, i64 %1839
  %1841 = load i32, ptr %1840, align 4, !tbaa !14
  %1842 = load ptr, ptr %1823, align 8, !tbaa !19
  %1843 = getelementptr inbounds i8, ptr %1842, i64 %1817
  %1844 = load i8, ptr %1843, align 1, !tbaa !20
  %1845 = zext i8 %1844 to i64
  %1846 = getelementptr inbounds [256 x i32], ptr %7, i64 0, i64 %1845
  %1847 = load i32, ptr %1846, align 4, !tbaa !14
  %1848 = add nsw i32 %1847, %1841
  %1849 = icmp slt i32 %1848, 0
  %spec.select38803967 = tail call i32 @llvm.umin.i32(i32 %1848, i32 255)
  %spec.select3880 = trunc nuw i32 %spec.select38803967 to i8
  %.sink3588 = select i1 %1849, i8 0, i8 %spec.select3880
  %1850 = load ptr, ptr %96, align 8, !tbaa !19
  %1851 = getelementptr inbounds ptr, ptr %1850, i64 %indvars.iv3161
  %1852 = load ptr, ptr %1851, align 8, !tbaa !19
  %1853 = getelementptr inbounds i8, ptr %1852, i64 %1817
  store i8 %.sink3588, ptr %1853, align 1, !tbaa !20
  %1854 = load ptr, ptr %1815, align 8, !tbaa !19
  %1855 = getelementptr inbounds i8, ptr %1854, i64 %1817
  %1856 = load i8, ptr %1855, align 1, !tbaa !20
  %1857 = zext i8 %1856 to i64
  %1858 = getelementptr inbounds [256 x i32], ptr %6, i64 0, i64 %1857
  %1859 = load i32, ptr %1858, align 4, !tbaa !14
  %1860 = load ptr, ptr %1823, align 8, !tbaa !19
  %1861 = getelementptr inbounds i8, ptr %1860, i64 %1817
  %1862 = load i8, ptr %1861, align 1, !tbaa !20
  %1863 = zext i8 %1862 to i64
  %1864 = getelementptr inbounds [256 x i32], ptr %7, i64 0, i64 %1863
  %1865 = load i32, ptr %1864, align 4, !tbaa !14
  %1866 = add nsw i32 %1865, %1859
  %1867 = icmp slt i32 %1866, 0
  %spec.select38813968 = tail call i32 @llvm.umin.i32(i32 %1866, i32 255)
  %spec.select3881 = trunc nuw i32 %spec.select38813968 to i8
  %.sink3593 = select i1 %1867, i8 0, i8 %spec.select3881
  %1868 = load ptr, ptr %96, align 8, !tbaa !19
  %1869 = getelementptr inbounds ptr, ptr %1868, i64 %indvars.iv3161
  %1870 = load ptr, ptr %1869, align 8, !tbaa !19
  %1871 = getelementptr inbounds i8, ptr %1870, i64 %1817
  store i8 %.sink3593, ptr %1871, align 1, !tbaa !20
  %1872 = load ptr, ptr %1815, align 8, !tbaa !19
  %1873 = getelementptr inbounds i8, ptr %1872, i64 %1817
  %1874 = load i8, ptr %1873, align 1, !tbaa !20
  %1875 = zext i8 %1874 to i64
  %1876 = getelementptr inbounds [256 x i32], ptr %6, i64 0, i64 %1875
  %1877 = load i32, ptr %1876, align 4, !tbaa !14
  %1878 = load ptr, ptr %1823, align 8, !tbaa !19
  %1879 = getelementptr inbounds i8, ptr %1878, i64 %1817
  %1880 = load i8, ptr %1879, align 1, !tbaa !20
  %1881 = zext i8 %1880 to i64
  %1882 = getelementptr inbounds [256 x i32], ptr %7, i64 0, i64 %1881
  %1883 = load i32, ptr %1882, align 4, !tbaa !14
  %1884 = add nsw i32 %1883, %1877
  %1885 = icmp slt i32 %1884, 0
  %spec.select38823969 = tail call i32 @llvm.umin.i32(i32 %1884, i32 255)
  %spec.select3882 = trunc nuw i32 %spec.select38823969 to i8
  %.sink3598 = select i1 %1885, i8 0, i8 %spec.select3882
  %1886 = load ptr, ptr %96, align 8, !tbaa !19
  %1887 = getelementptr inbounds ptr, ptr %1886, i64 %indvars.iv3161
  %1888 = load ptr, ptr %1887, align 8, !tbaa !19
  %1889 = getelementptr inbounds i8, ptr %1888, i64 %1817
  store i8 %.sink3598, ptr %1889, align 1, !tbaa !20
  %1890 = load ptr, ptr %1815, align 8, !tbaa !19
  %1891 = getelementptr inbounds i8, ptr %1890, i64 %1817
  %1892 = load i8, ptr %1891, align 1, !tbaa !20
  %1893 = zext i8 %1892 to i64
  %1894 = getelementptr inbounds [256 x i32], ptr %6, i64 0, i64 %1893
  %1895 = load i32, ptr %1894, align 4, !tbaa !14
  %1896 = load ptr, ptr %1823, align 8, !tbaa !19
  %1897 = getelementptr inbounds i8, ptr %1896, i64 %1817
  %1898 = load i8, ptr %1897, align 1, !tbaa !20
  %1899 = zext i8 %1898 to i64
  %1900 = getelementptr inbounds [256 x i32], ptr %7, i64 0, i64 %1899
  %1901 = load i32, ptr %1900, align 4, !tbaa !14
  %1902 = add nsw i32 %1901, %1895
  %1903 = icmp slt i32 %1902, 0
  %spec.select38833970 = tail call i32 @llvm.umin.i32(i32 %1902, i32 255)
  %spec.select3883 = trunc nuw i32 %spec.select38833970 to i8
  %.sink3603 = select i1 %1903, i8 0, i8 %spec.select3883
  %1904 = load ptr, ptr %96, align 8, !tbaa !19
  %1905 = getelementptr inbounds ptr, ptr %1904, i64 %indvars.iv3161
  %1906 = load ptr, ptr %1905, align 8, !tbaa !19
  %1907 = getelementptr inbounds i8, ptr %1906, i64 %1817
  store i8 %.sink3603, ptr %1907, align 1, !tbaa !20
  %1908 = load ptr, ptr %1815, align 8, !tbaa !19
  %1909 = getelementptr inbounds i8, ptr %1908, i64 %1817
  %1910 = load i8, ptr %1909, align 1, !tbaa !20
  %1911 = zext i8 %1910 to i64
  %1912 = getelementptr inbounds [256 x i32], ptr %6, i64 0, i64 %1911
  %1913 = load i32, ptr %1912, align 4, !tbaa !14
  %1914 = load ptr, ptr %1823, align 8, !tbaa !19
  %1915 = getelementptr inbounds i8, ptr %1914, i64 %1817
  %1916 = load i8, ptr %1915, align 1, !tbaa !20
  %1917 = zext i8 %1916 to i64
  %1918 = getelementptr inbounds [256 x i32], ptr %7, i64 0, i64 %1917
  %1919 = load i32, ptr %1918, align 4, !tbaa !14
  %1920 = add nsw i32 %1919, %1913
  %1921 = icmp slt i32 %1920, 0
  %spec.select38843971 = tail call i32 @llvm.umin.i32(i32 %1920, i32 255)
  %spec.select3884 = trunc nuw i32 %spec.select38843971 to i8
  %.sink3608 = select i1 %1921, i8 0, i8 %spec.select3884
  %1922 = load ptr, ptr %96, align 8, !tbaa !19
  %1923 = getelementptr inbounds ptr, ptr %1922, i64 %indvars.iv3161
  %1924 = load ptr, ptr %1923, align 8, !tbaa !19
  %1925 = getelementptr inbounds i8, ptr %1924, i64 %1817
  store i8 %.sink3608, ptr %1925, align 1, !tbaa !20
  %1926 = load ptr, ptr %1815, align 8, !tbaa !19
  %1927 = getelementptr inbounds i8, ptr %1926, i64 %1817
  %1928 = load i8, ptr %1927, align 1, !tbaa !20
  %1929 = zext i8 %1928 to i64
  %1930 = getelementptr inbounds [256 x i32], ptr %6, i64 0, i64 %1929
  %1931 = load i32, ptr %1930, align 4, !tbaa !14
  %1932 = load ptr, ptr %1823, align 8, !tbaa !19
  %1933 = getelementptr inbounds i8, ptr %1932, i64 %1817
  %1934 = load i8, ptr %1933, align 1, !tbaa !20
  %1935 = zext i8 %1934 to i64
  %1936 = getelementptr inbounds [256 x i32], ptr %7, i64 0, i64 %1935
  %1937 = load i32, ptr %1936, align 4, !tbaa !14
  %1938 = add nsw i32 %1937, %1931
  %1939 = icmp slt i32 %1938, 0
  %spec.select38853972 = tail call i32 @llvm.umin.i32(i32 %1938, i32 255)
  %spec.select3885 = trunc nuw i32 %spec.select38853972 to i8
  %.sink3613 = select i1 %1939, i8 0, i8 %spec.select3885
  %1940 = load ptr, ptr %96, align 8, !tbaa !19
  %1941 = getelementptr inbounds ptr, ptr %1940, i64 %indvars.iv3161
  %1942 = load ptr, ptr %1941, align 8, !tbaa !19
  %1943 = getelementptr inbounds i8, ptr %1942, i64 %1817
  store i8 %.sink3613, ptr %1943, align 1, !tbaa !20
  %1944 = load ptr, ptr %1815, align 8, !tbaa !19
  %1945 = getelementptr inbounds i8, ptr %1944, i64 %1817
  %1946 = load i8, ptr %1945, align 1, !tbaa !20
  %1947 = zext i8 %1946 to i64
  %1948 = getelementptr inbounds [256 x i32], ptr %6, i64 0, i64 %1947
  %1949 = load i32, ptr %1948, align 4, !tbaa !14
  %1950 = load ptr, ptr %1823, align 8, !tbaa !19
  %1951 = getelementptr inbounds i8, ptr %1950, i64 %1817
  %1952 = load i8, ptr %1951, align 1, !tbaa !20
  %1953 = zext i8 %1952 to i64
  %1954 = getelementptr inbounds [256 x i32], ptr %7, i64 0, i64 %1953
  %1955 = load i32, ptr %1954, align 4, !tbaa !14
  %1956 = add nsw i32 %1955, %1949
  %1957 = icmp slt i32 %1956, 0
  %spec.select38863973 = tail call i32 @llvm.umin.i32(i32 %1956, i32 255)
  %spec.select3886 = trunc nuw i32 %spec.select38863973 to i8
  %.sink3618 = select i1 %1957, i8 0, i8 %spec.select3886
  %1958 = load ptr, ptr %96, align 8, !tbaa !19
  %1959 = getelementptr inbounds ptr, ptr %1958, i64 %indvars.iv3161
  %1960 = load ptr, ptr %1959, align 8, !tbaa !19
  %1961 = getelementptr inbounds i8, ptr %1960, i64 %1817
  store i8 %.sink3618, ptr %1961, align 1, !tbaa !20
  %1962 = load ptr, ptr %1815, align 8, !tbaa !19
  %1963 = getelementptr inbounds i8, ptr %1962, i64 %1817
  %1964 = load i8, ptr %1963, align 1, !tbaa !20
  %1965 = zext i8 %1964 to i64
  %1966 = getelementptr inbounds [256 x i32], ptr %6, i64 0, i64 %1965
  %1967 = load i32, ptr %1966, align 4, !tbaa !14
  %1968 = load ptr, ptr %1823, align 8, !tbaa !19
  %1969 = getelementptr inbounds i8, ptr %1968, i64 %1817
  %1970 = load i8, ptr %1969, align 1, !tbaa !20
  %1971 = zext i8 %1970 to i64
  %1972 = getelementptr inbounds [256 x i32], ptr %7, i64 0, i64 %1971
  %1973 = load i32, ptr %1972, align 4, !tbaa !14
  %1974 = add nsw i32 %1973, %1967
  %1975 = icmp slt i32 %1974, 0
  %spec.select38873974 = tail call i32 @llvm.umin.i32(i32 %1974, i32 255)
  %spec.select3887 = trunc nuw i32 %spec.select38873974 to i8
  %.sink3623 = select i1 %1975, i8 0, i8 %spec.select3887
  %1976 = load ptr, ptr %96, align 8, !tbaa !19
  %1977 = getelementptr inbounds ptr, ptr %1976, i64 %indvars.iv3161
  %1978 = load ptr, ptr %1977, align 8, !tbaa !19
  %1979 = getelementptr inbounds i8, ptr %1978, i64 %1817
  store i8 %.sink3623, ptr %1979, align 1, !tbaa !20
  %1980 = load ptr, ptr %1815, align 8, !tbaa !19
  %1981 = getelementptr inbounds i8, ptr %1980, i64 %1817
  %1982 = load i8, ptr %1981, align 1, !tbaa !20
  %1983 = zext i8 %1982 to i64
  %1984 = getelementptr inbounds [256 x i32], ptr %6, i64 0, i64 %1983
  %1985 = load i32, ptr %1984, align 4, !tbaa !14
  %1986 = load ptr, ptr %1823, align 8, !tbaa !19
  %1987 = getelementptr inbounds i8, ptr %1986, i64 %1817
  %1988 = load i8, ptr %1987, align 1, !tbaa !20
  %1989 = zext i8 %1988 to i64
  %1990 = getelementptr inbounds [256 x i32], ptr %7, i64 0, i64 %1989
  %1991 = load i32, ptr %1990, align 4, !tbaa !14
  %1992 = add nsw i32 %1991, %1985
  %1993 = icmp slt i32 %1992, 0
  %spec.select38883975 = tail call i32 @llvm.umin.i32(i32 %1992, i32 255)
  %spec.select3888 = trunc nuw i32 %spec.select38883975 to i8
  %.sink3628 = select i1 %1993, i8 0, i8 %spec.select3888
  %1994 = load ptr, ptr %96, align 8, !tbaa !19
  %1995 = getelementptr inbounds ptr, ptr %1994, i64 %indvars.iv3161
  %1996 = load ptr, ptr %1995, align 8, !tbaa !19
  %1997 = getelementptr inbounds i8, ptr %1996, i64 %1817
  store i8 %.sink3628, ptr %1997, align 1, !tbaa !20
  %1998 = load ptr, ptr %1815, align 8, !tbaa !19
  %1999 = getelementptr inbounds i8, ptr %1998, i64 %1817
  %2000 = load i8, ptr %1999, align 1, !tbaa !20
  %2001 = zext i8 %2000 to i64
  %2002 = getelementptr inbounds [256 x i32], ptr %6, i64 0, i64 %2001
  %2003 = load i32, ptr %2002, align 4, !tbaa !14
  %2004 = load ptr, ptr %1823, align 8, !tbaa !19
  %2005 = getelementptr inbounds i8, ptr %2004, i64 %1817
  %2006 = load i8, ptr %2005, align 1, !tbaa !20
  %2007 = zext i8 %2006 to i64
  %2008 = getelementptr inbounds [256 x i32], ptr %7, i64 0, i64 %2007
  %2009 = load i32, ptr %2008, align 4, !tbaa !14
  %2010 = add nsw i32 %2009, %2003
  %2011 = icmp slt i32 %2010, 0
  %spec.select38893976 = tail call i32 @llvm.umin.i32(i32 %2010, i32 255)
  %spec.select3889 = trunc nuw i32 %spec.select38893976 to i8
  %.sink3633 = select i1 %2011, i8 0, i8 %spec.select3889
  %2012 = load ptr, ptr %96, align 8, !tbaa !19
  %2013 = getelementptr inbounds ptr, ptr %2012, i64 %indvars.iv3161
  %2014 = load ptr, ptr %2013, align 8, !tbaa !19
  %2015 = getelementptr inbounds i8, ptr %2014, i64 %1817
  store i8 %.sink3633, ptr %2015, align 1, !tbaa !20
  %2016 = load ptr, ptr %1815, align 8, !tbaa !19
  %2017 = getelementptr inbounds i8, ptr %2016, i64 %1817
  %2018 = load i8, ptr %2017, align 1, !tbaa !20
  %2019 = zext i8 %2018 to i64
  %2020 = getelementptr inbounds [256 x i32], ptr %6, i64 0, i64 %2019
  %2021 = load i32, ptr %2020, align 4, !tbaa !14
  %2022 = load ptr, ptr %1823, align 8, !tbaa !19
  %2023 = getelementptr inbounds i8, ptr %2022, i64 %1817
  %2024 = load i8, ptr %2023, align 1, !tbaa !20
  %2025 = zext i8 %2024 to i64
  %2026 = getelementptr inbounds [256 x i32], ptr %7, i64 0, i64 %2025
  %2027 = load i32, ptr %2026, align 4, !tbaa !14
  %2028 = add nsw i32 %2027, %2021
  %2029 = icmp slt i32 %2028, 0
  %spec.select38903977 = tail call i32 @llvm.umin.i32(i32 %2028, i32 255)
  %spec.select3890 = trunc nuw i32 %spec.select38903977 to i8
  %.sink3638 = select i1 %2029, i8 0, i8 %spec.select3890
  %2030 = load ptr, ptr %96, align 8, !tbaa !19
  %2031 = getelementptr inbounds ptr, ptr %2030, i64 %indvars.iv3161
  %2032 = load ptr, ptr %2031, align 8, !tbaa !19
  %2033 = getelementptr inbounds i8, ptr %2032, i64 %1817
  store i8 %.sink3638, ptr %2033, align 1, !tbaa !20
  %2034 = load ptr, ptr %1815, align 8, !tbaa !19
  %2035 = getelementptr inbounds i8, ptr %2034, i64 %1817
  %2036 = load i8, ptr %2035, align 1, !tbaa !20
  %2037 = zext i8 %2036 to i64
  %2038 = getelementptr inbounds [256 x i32], ptr %6, i64 0, i64 %2037
  %2039 = load i32, ptr %2038, align 4, !tbaa !14
  %2040 = load ptr, ptr %1823, align 8, !tbaa !19
  %2041 = getelementptr inbounds i8, ptr %2040, i64 %1817
  %2042 = load i8, ptr %2041, align 1, !tbaa !20
  %2043 = zext i8 %2042 to i64
  %2044 = getelementptr inbounds [256 x i32], ptr %7, i64 0, i64 %2043
  %2045 = load i32, ptr %2044, align 4, !tbaa !14
  %2046 = add nsw i32 %2045, %2039
  %2047 = icmp slt i32 %2046, 0
  br i1 %2047, label %.sink.split3778, label %2048

2048:                                             ; preds = %1814
  %spec.select38913978 = tail call i32 @llvm.umin.i32(i32 %2046, i32 255)
  %spec.select3891 = trunc nuw i32 %spec.select38913978 to i8
  br label %.sink.split3778

2049:                                             ; preds = %396
  %2050 = getelementptr inbounds ptr, ptr %90, i64 %indvars.iv3161
  %2051 = load ptr, ptr %2050, align 8, !tbaa !19
  %2052 = zext nneg i32 %.02993.lcssa to i64
  %2053 = getelementptr inbounds i8, ptr %2051, i64 %2052
  %2054 = load i8, ptr %2053, align 1, !tbaa !20
  %2055 = zext i8 %2054 to i64
  %2056 = getelementptr inbounds [256 x i32], ptr %6, i64 0, i64 %2055
  %2057 = load i32, ptr %2056, align 4, !tbaa !14
  %2058 = getelementptr inbounds ptr, ptr %94, i64 %indvars.iv3161
  %2059 = load ptr, ptr %2058, align 8, !tbaa !19
  %2060 = getelementptr inbounds i8, ptr %2059, i64 %2052
  %2061 = load i8, ptr %2060, align 1, !tbaa !20
  %2062 = zext i8 %2061 to i64
  %2063 = getelementptr inbounds [256 x i32], ptr %7, i64 0, i64 %2062
  %2064 = load i32, ptr %2063, align 4, !tbaa !14
  %2065 = add nsw i32 %2064, %2057
  %2066 = icmp slt i32 %2065, 0
  %spec.select38923952 = tail call i32 @llvm.umin.i32(i32 %2065, i32 255)
  %spec.select3892 = trunc nuw i32 %spec.select38923952 to i8
  %.sink3643 = select i1 %2066, i8 0, i8 %spec.select3892
  %2067 = load ptr, ptr %96, align 8, !tbaa !19
  %2068 = getelementptr inbounds ptr, ptr %2067, i64 %indvars.iv3161
  %2069 = load ptr, ptr %2068, align 8, !tbaa !19
  %2070 = getelementptr inbounds i8, ptr %2069, i64 %2052
  store i8 %.sink3643, ptr %2070, align 1, !tbaa !20
  %2071 = load ptr, ptr %2050, align 8, !tbaa !19
  %2072 = getelementptr inbounds i8, ptr %2071, i64 %2052
  %2073 = load i8, ptr %2072, align 1, !tbaa !20
  %2074 = zext i8 %2073 to i64
  %2075 = getelementptr inbounds [256 x i32], ptr %6, i64 0, i64 %2074
  %2076 = load i32, ptr %2075, align 4, !tbaa !14
  %2077 = load ptr, ptr %2058, align 8, !tbaa !19
  %2078 = getelementptr inbounds i8, ptr %2077, i64 %2052
  %2079 = load i8, ptr %2078, align 1, !tbaa !20
  %2080 = zext i8 %2079 to i64
  %2081 = getelementptr inbounds [256 x i32], ptr %7, i64 0, i64 %2080
  %2082 = load i32, ptr %2081, align 4, !tbaa !14
  %2083 = add nsw i32 %2082, %2076
  %2084 = icmp slt i32 %2083, 0
  %spec.select38933953 = tail call i32 @llvm.umin.i32(i32 %2083, i32 255)
  %spec.select3893 = trunc nuw i32 %spec.select38933953 to i8
  %.sink3648 = select i1 %2084, i8 0, i8 %spec.select3893
  %2085 = load ptr, ptr %96, align 8, !tbaa !19
  %2086 = getelementptr inbounds ptr, ptr %2085, i64 %indvars.iv3161
  %2087 = load ptr, ptr %2086, align 8, !tbaa !19
  %2088 = getelementptr inbounds i8, ptr %2087, i64 %2052
  store i8 %.sink3648, ptr %2088, align 1, !tbaa !20
  %2089 = load ptr, ptr %2050, align 8, !tbaa !19
  %2090 = getelementptr inbounds i8, ptr %2089, i64 %2052
  %2091 = load i8, ptr %2090, align 1, !tbaa !20
  %2092 = zext i8 %2091 to i64
  %2093 = getelementptr inbounds [256 x i32], ptr %6, i64 0, i64 %2092
  %2094 = load i32, ptr %2093, align 4, !tbaa !14
  %2095 = load ptr, ptr %2058, align 8, !tbaa !19
  %2096 = getelementptr inbounds i8, ptr %2095, i64 %2052
  %2097 = load i8, ptr %2096, align 1, !tbaa !20
  %2098 = zext i8 %2097 to i64
  %2099 = getelementptr inbounds [256 x i32], ptr %7, i64 0, i64 %2098
  %2100 = load i32, ptr %2099, align 4, !tbaa !14
  %2101 = add nsw i32 %2100, %2094
  %2102 = icmp slt i32 %2101, 0
  %spec.select38943954 = tail call i32 @llvm.umin.i32(i32 %2101, i32 255)
  %spec.select3894 = trunc nuw i32 %spec.select38943954 to i8
  %.sink3653 = select i1 %2102, i8 0, i8 %spec.select3894
  %2103 = load ptr, ptr %96, align 8, !tbaa !19
  %2104 = getelementptr inbounds ptr, ptr %2103, i64 %indvars.iv3161
  %2105 = load ptr, ptr %2104, align 8, !tbaa !19
  %2106 = getelementptr inbounds i8, ptr %2105, i64 %2052
  store i8 %.sink3653, ptr %2106, align 1, !tbaa !20
  %2107 = load ptr, ptr %2050, align 8, !tbaa !19
  %2108 = getelementptr inbounds i8, ptr %2107, i64 %2052
  %2109 = load i8, ptr %2108, align 1, !tbaa !20
  %2110 = zext i8 %2109 to i64
  %2111 = getelementptr inbounds [256 x i32], ptr %6, i64 0, i64 %2110
  %2112 = load i32, ptr %2111, align 4, !tbaa !14
  %2113 = load ptr, ptr %2058, align 8, !tbaa !19
  %2114 = getelementptr inbounds i8, ptr %2113, i64 %2052
  %2115 = load i8, ptr %2114, align 1, !tbaa !20
  %2116 = zext i8 %2115 to i64
  %2117 = getelementptr inbounds [256 x i32], ptr %7, i64 0, i64 %2116
  %2118 = load i32, ptr %2117, align 4, !tbaa !14
  %2119 = add nsw i32 %2118, %2112
  %2120 = icmp slt i32 %2119, 0
  %spec.select38953955 = tail call i32 @llvm.umin.i32(i32 %2119, i32 255)
  %spec.select3895 = trunc nuw i32 %spec.select38953955 to i8
  %.sink3658 = select i1 %2120, i8 0, i8 %spec.select3895
  %2121 = load ptr, ptr %96, align 8, !tbaa !19
  %2122 = getelementptr inbounds ptr, ptr %2121, i64 %indvars.iv3161
  %2123 = load ptr, ptr %2122, align 8, !tbaa !19
  %2124 = getelementptr inbounds i8, ptr %2123, i64 %2052
  store i8 %.sink3658, ptr %2124, align 1, !tbaa !20
  %2125 = load ptr, ptr %2050, align 8, !tbaa !19
  %2126 = getelementptr inbounds i8, ptr %2125, i64 %2052
  %2127 = load i8, ptr %2126, align 1, !tbaa !20
  %2128 = zext i8 %2127 to i64
  %2129 = getelementptr inbounds [256 x i32], ptr %6, i64 0, i64 %2128
  %2130 = load i32, ptr %2129, align 4, !tbaa !14
  %2131 = load ptr, ptr %2058, align 8, !tbaa !19
  %2132 = getelementptr inbounds i8, ptr %2131, i64 %2052
  %2133 = load i8, ptr %2132, align 1, !tbaa !20
  %2134 = zext i8 %2133 to i64
  %2135 = getelementptr inbounds [256 x i32], ptr %7, i64 0, i64 %2134
  %2136 = load i32, ptr %2135, align 4, !tbaa !14
  %2137 = add nsw i32 %2136, %2130
  %2138 = icmp slt i32 %2137, 0
  %spec.select38963956 = tail call i32 @llvm.umin.i32(i32 %2137, i32 255)
  %spec.select3896 = trunc nuw i32 %spec.select38963956 to i8
  %.sink3663 = select i1 %2138, i8 0, i8 %spec.select3896
  %2139 = load ptr, ptr %96, align 8, !tbaa !19
  %2140 = getelementptr inbounds ptr, ptr %2139, i64 %indvars.iv3161
  %2141 = load ptr, ptr %2140, align 8, !tbaa !19
  %2142 = getelementptr inbounds i8, ptr %2141, i64 %2052
  store i8 %.sink3663, ptr %2142, align 1, !tbaa !20
  %2143 = load ptr, ptr %2050, align 8, !tbaa !19
  %2144 = getelementptr inbounds i8, ptr %2143, i64 %2052
  %2145 = load i8, ptr %2144, align 1, !tbaa !20
  %2146 = zext i8 %2145 to i64
  %2147 = getelementptr inbounds [256 x i32], ptr %6, i64 0, i64 %2146
  %2148 = load i32, ptr %2147, align 4, !tbaa !14
  %2149 = load ptr, ptr %2058, align 8, !tbaa !19
  %2150 = getelementptr inbounds i8, ptr %2149, i64 %2052
  %2151 = load i8, ptr %2150, align 1, !tbaa !20
  %2152 = zext i8 %2151 to i64
  %2153 = getelementptr inbounds [256 x i32], ptr %7, i64 0, i64 %2152
  %2154 = load i32, ptr %2153, align 4, !tbaa !14
  %2155 = add nsw i32 %2154, %2148
  %2156 = icmp slt i32 %2155, 0
  %spec.select38973957 = tail call i32 @llvm.umin.i32(i32 %2155, i32 255)
  %spec.select3897 = trunc nuw i32 %spec.select38973957 to i8
  %.sink3668 = select i1 %2156, i8 0, i8 %spec.select3897
  %2157 = load ptr, ptr %96, align 8, !tbaa !19
  %2158 = getelementptr inbounds ptr, ptr %2157, i64 %indvars.iv3161
  %2159 = load ptr, ptr %2158, align 8, !tbaa !19
  %2160 = getelementptr inbounds i8, ptr %2159, i64 %2052
  store i8 %.sink3668, ptr %2160, align 1, !tbaa !20
  %2161 = load ptr, ptr %2050, align 8, !tbaa !19
  %2162 = getelementptr inbounds i8, ptr %2161, i64 %2052
  %2163 = load i8, ptr %2162, align 1, !tbaa !20
  %2164 = zext i8 %2163 to i64
  %2165 = getelementptr inbounds [256 x i32], ptr %6, i64 0, i64 %2164
  %2166 = load i32, ptr %2165, align 4, !tbaa !14
  %2167 = load ptr, ptr %2058, align 8, !tbaa !19
  %2168 = getelementptr inbounds i8, ptr %2167, i64 %2052
  %2169 = load i8, ptr %2168, align 1, !tbaa !20
  %2170 = zext i8 %2169 to i64
  %2171 = getelementptr inbounds [256 x i32], ptr %7, i64 0, i64 %2170
  %2172 = load i32, ptr %2171, align 4, !tbaa !14
  %2173 = add nsw i32 %2172, %2166
  %2174 = icmp slt i32 %2173, 0
  %spec.select38983958 = tail call i32 @llvm.umin.i32(i32 %2173, i32 255)
  %spec.select3898 = trunc nuw i32 %spec.select38983958 to i8
  %.sink3673 = select i1 %2174, i8 0, i8 %spec.select3898
  %2175 = load ptr, ptr %96, align 8, !tbaa !19
  %2176 = getelementptr inbounds ptr, ptr %2175, i64 %indvars.iv3161
  %2177 = load ptr, ptr %2176, align 8, !tbaa !19
  %2178 = getelementptr inbounds i8, ptr %2177, i64 %2052
  store i8 %.sink3673, ptr %2178, align 1, !tbaa !20
  %2179 = load ptr, ptr %2050, align 8, !tbaa !19
  %2180 = getelementptr inbounds i8, ptr %2179, i64 %2052
  %2181 = load i8, ptr %2180, align 1, !tbaa !20
  %2182 = zext i8 %2181 to i64
  %2183 = getelementptr inbounds [256 x i32], ptr %6, i64 0, i64 %2182
  %2184 = load i32, ptr %2183, align 4, !tbaa !14
  %2185 = load ptr, ptr %2058, align 8, !tbaa !19
  %2186 = getelementptr inbounds i8, ptr %2185, i64 %2052
  %2187 = load i8, ptr %2186, align 1, !tbaa !20
  %2188 = zext i8 %2187 to i64
  %2189 = getelementptr inbounds [256 x i32], ptr %7, i64 0, i64 %2188
  %2190 = load i32, ptr %2189, align 4, !tbaa !14
  %2191 = add nsw i32 %2190, %2184
  %2192 = icmp slt i32 %2191, 0
  %spec.select38993959 = tail call i32 @llvm.umin.i32(i32 %2191, i32 255)
  %spec.select3899 = trunc nuw i32 %spec.select38993959 to i8
  %.sink3678 = select i1 %2192, i8 0, i8 %spec.select3899
  %2193 = load ptr, ptr %96, align 8, !tbaa !19
  %2194 = getelementptr inbounds ptr, ptr %2193, i64 %indvars.iv3161
  %2195 = load ptr, ptr %2194, align 8, !tbaa !19
  %2196 = getelementptr inbounds i8, ptr %2195, i64 %2052
  store i8 %.sink3678, ptr %2196, align 1, !tbaa !20
  %2197 = load ptr, ptr %2050, align 8, !tbaa !19
  %2198 = getelementptr inbounds i8, ptr %2197, i64 %2052
  %2199 = load i8, ptr %2198, align 1, !tbaa !20
  %2200 = zext i8 %2199 to i64
  %2201 = getelementptr inbounds [256 x i32], ptr %6, i64 0, i64 %2200
  %2202 = load i32, ptr %2201, align 4, !tbaa !14
  %2203 = load ptr, ptr %2058, align 8, !tbaa !19
  %2204 = getelementptr inbounds i8, ptr %2203, i64 %2052
  %2205 = load i8, ptr %2204, align 1, !tbaa !20
  %2206 = zext i8 %2205 to i64
  %2207 = getelementptr inbounds [256 x i32], ptr %7, i64 0, i64 %2206
  %2208 = load i32, ptr %2207, align 4, !tbaa !14
  %2209 = add nsw i32 %2208, %2202
  %2210 = icmp slt i32 %2209, 0
  %spec.select39003960 = tail call i32 @llvm.umin.i32(i32 %2209, i32 255)
  %spec.select3900 = trunc nuw i32 %spec.select39003960 to i8
  %.sink3683 = select i1 %2210, i8 0, i8 %spec.select3900
  %2211 = load ptr, ptr %96, align 8, !tbaa !19
  %2212 = getelementptr inbounds ptr, ptr %2211, i64 %indvars.iv3161
  %2213 = load ptr, ptr %2212, align 8, !tbaa !19
  %2214 = getelementptr inbounds i8, ptr %2213, i64 %2052
  store i8 %.sink3683, ptr %2214, align 1, !tbaa !20
  %2215 = load ptr, ptr %2050, align 8, !tbaa !19
  %2216 = getelementptr inbounds i8, ptr %2215, i64 %2052
  %2217 = load i8, ptr %2216, align 1, !tbaa !20
  %2218 = zext i8 %2217 to i64
  %2219 = getelementptr inbounds [256 x i32], ptr %6, i64 0, i64 %2218
  %2220 = load i32, ptr %2219, align 4, !tbaa !14
  %2221 = load ptr, ptr %2058, align 8, !tbaa !19
  %2222 = getelementptr inbounds i8, ptr %2221, i64 %2052
  %2223 = load i8, ptr %2222, align 1, !tbaa !20
  %2224 = zext i8 %2223 to i64
  %2225 = getelementptr inbounds [256 x i32], ptr %7, i64 0, i64 %2224
  %2226 = load i32, ptr %2225, align 4, !tbaa !14
  %2227 = add nsw i32 %2226, %2220
  %2228 = icmp slt i32 %2227, 0
  %spec.select39013961 = tail call i32 @llvm.umin.i32(i32 %2227, i32 255)
  %spec.select3901 = trunc nuw i32 %spec.select39013961 to i8
  %.sink3688 = select i1 %2228, i8 0, i8 %spec.select3901
  %2229 = load ptr, ptr %96, align 8, !tbaa !19
  %2230 = getelementptr inbounds ptr, ptr %2229, i64 %indvars.iv3161
  %2231 = load ptr, ptr %2230, align 8, !tbaa !19
  %2232 = getelementptr inbounds i8, ptr %2231, i64 %2052
  store i8 %.sink3688, ptr %2232, align 1, !tbaa !20
  %2233 = load ptr, ptr %2050, align 8, !tbaa !19
  %2234 = getelementptr inbounds i8, ptr %2233, i64 %2052
  %2235 = load i8, ptr %2234, align 1, !tbaa !20
  %2236 = zext i8 %2235 to i64
  %2237 = getelementptr inbounds [256 x i32], ptr %6, i64 0, i64 %2236
  %2238 = load i32, ptr %2237, align 4, !tbaa !14
  %2239 = load ptr, ptr %2058, align 8, !tbaa !19
  %2240 = getelementptr inbounds i8, ptr %2239, i64 %2052
  %2241 = load i8, ptr %2240, align 1, !tbaa !20
  %2242 = zext i8 %2241 to i64
  %2243 = getelementptr inbounds [256 x i32], ptr %7, i64 0, i64 %2242
  %2244 = load i32, ptr %2243, align 4, !tbaa !14
  %2245 = add nsw i32 %2244, %2238
  %2246 = icmp slt i32 %2245, 0
  %spec.select39023962 = tail call i32 @llvm.umin.i32(i32 %2245, i32 255)
  %spec.select3902 = trunc nuw i32 %spec.select39023962 to i8
  %.sink3693 = select i1 %2246, i8 0, i8 %spec.select3902
  %2247 = load ptr, ptr %96, align 8, !tbaa !19
  %2248 = getelementptr inbounds ptr, ptr %2247, i64 %indvars.iv3161
  %2249 = load ptr, ptr %2248, align 8, !tbaa !19
  %2250 = getelementptr inbounds i8, ptr %2249, i64 %2052
  store i8 %.sink3693, ptr %2250, align 1, !tbaa !20
  %2251 = load ptr, ptr %2050, align 8, !tbaa !19
  %2252 = getelementptr inbounds i8, ptr %2251, i64 %2052
  %2253 = load i8, ptr %2252, align 1, !tbaa !20
  %2254 = zext i8 %2253 to i64
  %2255 = getelementptr inbounds [256 x i32], ptr %6, i64 0, i64 %2254
  %2256 = load i32, ptr %2255, align 4, !tbaa !14
  %2257 = load ptr, ptr %2058, align 8, !tbaa !19
  %2258 = getelementptr inbounds i8, ptr %2257, i64 %2052
  %2259 = load i8, ptr %2258, align 1, !tbaa !20
  %2260 = zext i8 %2259 to i64
  %2261 = getelementptr inbounds [256 x i32], ptr %7, i64 0, i64 %2260
  %2262 = load i32, ptr %2261, align 4, !tbaa !14
  %2263 = add nsw i32 %2262, %2256
  %2264 = icmp slt i32 %2263, 0
  %spec.select39033963 = tail call i32 @llvm.umin.i32(i32 %2263, i32 255)
  %spec.select3903 = trunc nuw i32 %spec.select39033963 to i8
  %.sink3698 = select i1 %2264, i8 0, i8 %spec.select3903
  %2265 = load ptr, ptr %96, align 8, !tbaa !19
  %2266 = getelementptr inbounds ptr, ptr %2265, i64 %indvars.iv3161
  %2267 = load ptr, ptr %2266, align 8, !tbaa !19
  %2268 = getelementptr inbounds i8, ptr %2267, i64 %2052
  store i8 %.sink3698, ptr %2268, align 1, !tbaa !20
  %2269 = load ptr, ptr %2050, align 8, !tbaa !19
  %2270 = getelementptr inbounds i8, ptr %2269, i64 %2052
  %2271 = load i8, ptr %2270, align 1, !tbaa !20
  %2272 = zext i8 %2271 to i64
  %2273 = getelementptr inbounds [256 x i32], ptr %6, i64 0, i64 %2272
  %2274 = load i32, ptr %2273, align 4, !tbaa !14
  %2275 = load ptr, ptr %2058, align 8, !tbaa !19
  %2276 = getelementptr inbounds i8, ptr %2275, i64 %2052
  %2277 = load i8, ptr %2276, align 1, !tbaa !20
  %2278 = zext i8 %2277 to i64
  %2279 = getelementptr inbounds [256 x i32], ptr %7, i64 0, i64 %2278
  %2280 = load i32, ptr %2279, align 4, !tbaa !14
  %2281 = add nsw i32 %2280, %2274
  %2282 = icmp slt i32 %2281, 0
  %spec.select39043964 = tail call i32 @llvm.umin.i32(i32 %2281, i32 255)
  %spec.select3904 = trunc nuw i32 %spec.select39043964 to i8
  %.sink3703 = select i1 %2282, i8 0, i8 %spec.select3904
  %2283 = load ptr, ptr %96, align 8, !tbaa !19
  %2284 = getelementptr inbounds ptr, ptr %2283, i64 %indvars.iv3161
  %2285 = load ptr, ptr %2284, align 8, !tbaa !19
  %2286 = getelementptr inbounds i8, ptr %2285, i64 %2052
  store i8 %.sink3703, ptr %2286, align 1, !tbaa !20
  %2287 = load ptr, ptr %2050, align 8, !tbaa !19
  %2288 = getelementptr inbounds i8, ptr %2287, i64 %2052
  %2289 = load i8, ptr %2288, align 1, !tbaa !20
  %2290 = zext i8 %2289 to i64
  %2291 = getelementptr inbounds [256 x i32], ptr %6, i64 0, i64 %2290
  %2292 = load i32, ptr %2291, align 4, !tbaa !14
  %2293 = load ptr, ptr %2058, align 8, !tbaa !19
  %2294 = getelementptr inbounds i8, ptr %2293, i64 %2052
  %2295 = load i8, ptr %2294, align 1, !tbaa !20
  %2296 = zext i8 %2295 to i64
  %2297 = getelementptr inbounds [256 x i32], ptr %7, i64 0, i64 %2296
  %2298 = load i32, ptr %2297, align 4, !tbaa !14
  %2299 = add nsw i32 %2298, %2292
  %2300 = icmp slt i32 %2299, 0
  br i1 %2300, label %.sink.split3778, label %2301

2301:                                             ; preds = %2049
  %spec.select39053965 = tail call i32 @llvm.umin.i32(i32 %2299, i32 255)
  %spec.select3905 = trunc nuw i32 %spec.select39053965 to i8
  br label %.sink.split3778

2302:                                             ; preds = %396
  %2303 = getelementptr inbounds ptr, ptr %90, i64 %indvars.iv3161
  %2304 = load ptr, ptr %2303, align 8, !tbaa !19
  %2305 = zext nneg i32 %.02993.lcssa to i64
  %2306 = getelementptr inbounds i8, ptr %2304, i64 %2305
  %2307 = load i8, ptr %2306, align 1, !tbaa !20
  %2308 = zext i8 %2307 to i64
  %2309 = getelementptr inbounds [256 x i32], ptr %6, i64 0, i64 %2308
  %2310 = load i32, ptr %2309, align 4, !tbaa !14
  %2311 = getelementptr inbounds ptr, ptr %94, i64 %indvars.iv3161
  %2312 = load ptr, ptr %2311, align 8, !tbaa !19
  %2313 = getelementptr inbounds i8, ptr %2312, i64 %2305
  %2314 = load i8, ptr %2313, align 1, !tbaa !20
  %2315 = zext i8 %2314 to i64
  %2316 = getelementptr inbounds [256 x i32], ptr %7, i64 0, i64 %2315
  %2317 = load i32, ptr %2316, align 4, !tbaa !14
  %2318 = add nsw i32 %2317, %2310
  %2319 = icmp slt i32 %2318, 0
  %spec.select39063937 = tail call i32 @llvm.umin.i32(i32 %2318, i32 255)
  %spec.select3906 = trunc nuw i32 %spec.select39063937 to i8
  %.sink3708 = select i1 %2319, i8 0, i8 %spec.select3906
  %2320 = load ptr, ptr %96, align 8, !tbaa !19
  %2321 = getelementptr inbounds ptr, ptr %2320, i64 %indvars.iv3161
  %2322 = load ptr, ptr %2321, align 8, !tbaa !19
  %2323 = getelementptr inbounds i8, ptr %2322, i64 %2305
  store i8 %.sink3708, ptr %2323, align 1, !tbaa !20
  %2324 = load ptr, ptr %2303, align 8, !tbaa !19
  %2325 = getelementptr inbounds i8, ptr %2324, i64 %2305
  %2326 = load i8, ptr %2325, align 1, !tbaa !20
  %2327 = zext i8 %2326 to i64
  %2328 = getelementptr inbounds [256 x i32], ptr %6, i64 0, i64 %2327
  %2329 = load i32, ptr %2328, align 4, !tbaa !14
  %2330 = load ptr, ptr %2311, align 8, !tbaa !19
  %2331 = getelementptr inbounds i8, ptr %2330, i64 %2305
  %2332 = load i8, ptr %2331, align 1, !tbaa !20
  %2333 = zext i8 %2332 to i64
  %2334 = getelementptr inbounds [256 x i32], ptr %7, i64 0, i64 %2333
  %2335 = load i32, ptr %2334, align 4, !tbaa !14
  %2336 = add nsw i32 %2335, %2329
  %2337 = icmp slt i32 %2336, 0
  %spec.select39073938 = tail call i32 @llvm.umin.i32(i32 %2336, i32 255)
  %spec.select3907 = trunc nuw i32 %spec.select39073938 to i8
  %.sink3713 = select i1 %2337, i8 0, i8 %spec.select3907
  %2338 = load ptr, ptr %96, align 8, !tbaa !19
  %2339 = getelementptr inbounds ptr, ptr %2338, i64 %indvars.iv3161
  %2340 = load ptr, ptr %2339, align 8, !tbaa !19
  %2341 = getelementptr inbounds i8, ptr %2340, i64 %2305
  store i8 %.sink3713, ptr %2341, align 1, !tbaa !20
  %2342 = load ptr, ptr %2303, align 8, !tbaa !19
  %2343 = getelementptr inbounds i8, ptr %2342, i64 %2305
  %2344 = load i8, ptr %2343, align 1, !tbaa !20
  %2345 = zext i8 %2344 to i64
  %2346 = getelementptr inbounds [256 x i32], ptr %6, i64 0, i64 %2345
  %2347 = load i32, ptr %2346, align 4, !tbaa !14
  %2348 = load ptr, ptr %2311, align 8, !tbaa !19
  %2349 = getelementptr inbounds i8, ptr %2348, i64 %2305
  %2350 = load i8, ptr %2349, align 1, !tbaa !20
  %2351 = zext i8 %2350 to i64
  %2352 = getelementptr inbounds [256 x i32], ptr %7, i64 0, i64 %2351
  %2353 = load i32, ptr %2352, align 4, !tbaa !14
  %2354 = add nsw i32 %2353, %2347
  %2355 = icmp slt i32 %2354, 0
  %spec.select39083939 = tail call i32 @llvm.umin.i32(i32 %2354, i32 255)
  %spec.select3908 = trunc nuw i32 %spec.select39083939 to i8
  %.sink3718 = select i1 %2355, i8 0, i8 %spec.select3908
  %2356 = load ptr, ptr %96, align 8, !tbaa !19
  %2357 = getelementptr inbounds ptr, ptr %2356, i64 %indvars.iv3161
  %2358 = load ptr, ptr %2357, align 8, !tbaa !19
  %2359 = getelementptr inbounds i8, ptr %2358, i64 %2305
  store i8 %.sink3718, ptr %2359, align 1, !tbaa !20
  %2360 = load ptr, ptr %2303, align 8, !tbaa !19
  %2361 = getelementptr inbounds i8, ptr %2360, i64 %2305
  %2362 = load i8, ptr %2361, align 1, !tbaa !20
  %2363 = zext i8 %2362 to i64
  %2364 = getelementptr inbounds [256 x i32], ptr %6, i64 0, i64 %2363
  %2365 = load i32, ptr %2364, align 4, !tbaa !14
  %2366 = load ptr, ptr %2311, align 8, !tbaa !19
  %2367 = getelementptr inbounds i8, ptr %2366, i64 %2305
  %2368 = load i8, ptr %2367, align 1, !tbaa !20
  %2369 = zext i8 %2368 to i64
  %2370 = getelementptr inbounds [256 x i32], ptr %7, i64 0, i64 %2369
  %2371 = load i32, ptr %2370, align 4, !tbaa !14
  %2372 = add nsw i32 %2371, %2365
  %2373 = icmp slt i32 %2372, 0
  %spec.select39093940 = tail call i32 @llvm.umin.i32(i32 %2372, i32 255)
  %spec.select3909 = trunc nuw i32 %spec.select39093940 to i8
  %.sink3723 = select i1 %2373, i8 0, i8 %spec.select3909
  %2374 = load ptr, ptr %96, align 8, !tbaa !19
  %2375 = getelementptr inbounds ptr, ptr %2374, i64 %indvars.iv3161
  %2376 = load ptr, ptr %2375, align 8, !tbaa !19
  %2377 = getelementptr inbounds i8, ptr %2376, i64 %2305
  store i8 %.sink3723, ptr %2377, align 1, !tbaa !20
  %2378 = load ptr, ptr %2303, align 8, !tbaa !19
  %2379 = getelementptr inbounds i8, ptr %2378, i64 %2305
  %2380 = load i8, ptr %2379, align 1, !tbaa !20
  %2381 = zext i8 %2380 to i64
  %2382 = getelementptr inbounds [256 x i32], ptr %6, i64 0, i64 %2381
  %2383 = load i32, ptr %2382, align 4, !tbaa !14
  %2384 = load ptr, ptr %2311, align 8, !tbaa !19
  %2385 = getelementptr inbounds i8, ptr %2384, i64 %2305
  %2386 = load i8, ptr %2385, align 1, !tbaa !20
  %2387 = zext i8 %2386 to i64
  %2388 = getelementptr inbounds [256 x i32], ptr %7, i64 0, i64 %2387
  %2389 = load i32, ptr %2388, align 4, !tbaa !14
  %2390 = add nsw i32 %2389, %2383
  %2391 = icmp slt i32 %2390, 0
  %spec.select39103941 = tail call i32 @llvm.umin.i32(i32 %2390, i32 255)
  %spec.select3910 = trunc nuw i32 %spec.select39103941 to i8
  %.sink3728 = select i1 %2391, i8 0, i8 %spec.select3910
  %2392 = load ptr, ptr %96, align 8, !tbaa !19
  %2393 = getelementptr inbounds ptr, ptr %2392, i64 %indvars.iv3161
  %2394 = load ptr, ptr %2393, align 8, !tbaa !19
  %2395 = getelementptr inbounds i8, ptr %2394, i64 %2305
  store i8 %.sink3728, ptr %2395, align 1, !tbaa !20
  %2396 = load ptr, ptr %2303, align 8, !tbaa !19
  %2397 = getelementptr inbounds i8, ptr %2396, i64 %2305
  %2398 = load i8, ptr %2397, align 1, !tbaa !20
  %2399 = zext i8 %2398 to i64
  %2400 = getelementptr inbounds [256 x i32], ptr %6, i64 0, i64 %2399
  %2401 = load i32, ptr %2400, align 4, !tbaa !14
  %2402 = load ptr, ptr %2311, align 8, !tbaa !19
  %2403 = getelementptr inbounds i8, ptr %2402, i64 %2305
  %2404 = load i8, ptr %2403, align 1, !tbaa !20
  %2405 = zext i8 %2404 to i64
  %2406 = getelementptr inbounds [256 x i32], ptr %7, i64 0, i64 %2405
  %2407 = load i32, ptr %2406, align 4, !tbaa !14
  %2408 = add nsw i32 %2407, %2401
  %2409 = icmp slt i32 %2408, 0
  %spec.select39113942 = tail call i32 @llvm.umin.i32(i32 %2408, i32 255)
  %spec.select3911 = trunc nuw i32 %spec.select39113942 to i8
  %.sink3733 = select i1 %2409, i8 0, i8 %spec.select3911
  %2410 = load ptr, ptr %96, align 8, !tbaa !19
  %2411 = getelementptr inbounds ptr, ptr %2410, i64 %indvars.iv3161
  %2412 = load ptr, ptr %2411, align 8, !tbaa !19
  %2413 = getelementptr inbounds i8, ptr %2412, i64 %2305
  store i8 %.sink3733, ptr %2413, align 1, !tbaa !20
  %2414 = load ptr, ptr %2303, align 8, !tbaa !19
  %2415 = getelementptr inbounds i8, ptr %2414, i64 %2305
  %2416 = load i8, ptr %2415, align 1, !tbaa !20
  %2417 = zext i8 %2416 to i64
  %2418 = getelementptr inbounds [256 x i32], ptr %6, i64 0, i64 %2417
  %2419 = load i32, ptr %2418, align 4, !tbaa !14
  %2420 = load ptr, ptr %2311, align 8, !tbaa !19
  %2421 = getelementptr inbounds i8, ptr %2420, i64 %2305
  %2422 = load i8, ptr %2421, align 1, !tbaa !20
  %2423 = zext i8 %2422 to i64
  %2424 = getelementptr inbounds [256 x i32], ptr %7, i64 0, i64 %2423
  %2425 = load i32, ptr %2424, align 4, !tbaa !14
  %2426 = add nsw i32 %2425, %2419
  %2427 = icmp slt i32 %2426, 0
  %spec.select39123943 = tail call i32 @llvm.umin.i32(i32 %2426, i32 255)
  %spec.select3912 = trunc nuw i32 %spec.select39123943 to i8
  %.sink3738 = select i1 %2427, i8 0, i8 %spec.select3912
  %2428 = load ptr, ptr %96, align 8, !tbaa !19
  %2429 = getelementptr inbounds ptr, ptr %2428, i64 %indvars.iv3161
  %2430 = load ptr, ptr %2429, align 8, !tbaa !19
  %2431 = getelementptr inbounds i8, ptr %2430, i64 %2305
  store i8 %.sink3738, ptr %2431, align 1, !tbaa !20
  %2432 = load ptr, ptr %2303, align 8, !tbaa !19
  %2433 = getelementptr inbounds i8, ptr %2432, i64 %2305
  %2434 = load i8, ptr %2433, align 1, !tbaa !20
  %2435 = zext i8 %2434 to i64
  %2436 = getelementptr inbounds [256 x i32], ptr %6, i64 0, i64 %2435
  %2437 = load i32, ptr %2436, align 4, !tbaa !14
  %2438 = load ptr, ptr %2311, align 8, !tbaa !19
  %2439 = getelementptr inbounds i8, ptr %2438, i64 %2305
  %2440 = load i8, ptr %2439, align 1, !tbaa !20
  %2441 = zext i8 %2440 to i64
  %2442 = getelementptr inbounds [256 x i32], ptr %7, i64 0, i64 %2441
  %2443 = load i32, ptr %2442, align 4, !tbaa !14
  %2444 = add nsw i32 %2443, %2437
  %2445 = icmp slt i32 %2444, 0
  %spec.select39133944 = tail call i32 @llvm.umin.i32(i32 %2444, i32 255)
  %spec.select3913 = trunc nuw i32 %spec.select39133944 to i8
  %.sink3743 = select i1 %2445, i8 0, i8 %spec.select3913
  %2446 = load ptr, ptr %96, align 8, !tbaa !19
  %2447 = getelementptr inbounds ptr, ptr %2446, i64 %indvars.iv3161
  %2448 = load ptr, ptr %2447, align 8, !tbaa !19
  %2449 = getelementptr inbounds i8, ptr %2448, i64 %2305
  store i8 %.sink3743, ptr %2449, align 1, !tbaa !20
  %2450 = load ptr, ptr %2303, align 8, !tbaa !19
  %2451 = getelementptr inbounds i8, ptr %2450, i64 %2305
  %2452 = load i8, ptr %2451, align 1, !tbaa !20
  %2453 = zext i8 %2452 to i64
  %2454 = getelementptr inbounds [256 x i32], ptr %6, i64 0, i64 %2453
  %2455 = load i32, ptr %2454, align 4, !tbaa !14
  %2456 = load ptr, ptr %2311, align 8, !tbaa !19
  %2457 = getelementptr inbounds i8, ptr %2456, i64 %2305
  %2458 = load i8, ptr %2457, align 1, !tbaa !20
  %2459 = zext i8 %2458 to i64
  %2460 = getelementptr inbounds [256 x i32], ptr %7, i64 0, i64 %2459
  %2461 = load i32, ptr %2460, align 4, !tbaa !14
  %2462 = add nsw i32 %2461, %2455
  %2463 = icmp slt i32 %2462, 0
  %spec.select39143945 = tail call i32 @llvm.umin.i32(i32 %2462, i32 255)
  %spec.select3914 = trunc nuw i32 %spec.select39143945 to i8
  %.sink3748 = select i1 %2463, i8 0, i8 %spec.select3914
  %2464 = load ptr, ptr %96, align 8, !tbaa !19
  %2465 = getelementptr inbounds ptr, ptr %2464, i64 %indvars.iv3161
  %2466 = load ptr, ptr %2465, align 8, !tbaa !19
  %2467 = getelementptr inbounds i8, ptr %2466, i64 %2305
  store i8 %.sink3748, ptr %2467, align 1, !tbaa !20
  %2468 = load ptr, ptr %2303, align 8, !tbaa !19
  %2469 = getelementptr inbounds i8, ptr %2468, i64 %2305
  %2470 = load i8, ptr %2469, align 1, !tbaa !20
  %2471 = zext i8 %2470 to i64
  %2472 = getelementptr inbounds [256 x i32], ptr %6, i64 0, i64 %2471
  %2473 = load i32, ptr %2472, align 4, !tbaa !14
  %2474 = load ptr, ptr %2311, align 8, !tbaa !19
  %2475 = getelementptr inbounds i8, ptr %2474, i64 %2305
  %2476 = load i8, ptr %2475, align 1, !tbaa !20
  %2477 = zext i8 %2476 to i64
  %2478 = getelementptr inbounds [256 x i32], ptr %7, i64 0, i64 %2477
  %2479 = load i32, ptr %2478, align 4, !tbaa !14
  %2480 = add nsw i32 %2479, %2473
  %2481 = icmp slt i32 %2480, 0
  %spec.select39153946 = tail call i32 @llvm.umin.i32(i32 %2480, i32 255)
  %spec.select3915 = trunc nuw i32 %spec.select39153946 to i8
  %.sink3753 = select i1 %2481, i8 0, i8 %spec.select3915
  %2482 = load ptr, ptr %96, align 8, !tbaa !19
  %2483 = getelementptr inbounds ptr, ptr %2482, i64 %indvars.iv3161
  %2484 = load ptr, ptr %2483, align 8, !tbaa !19
  %2485 = getelementptr inbounds i8, ptr %2484, i64 %2305
  store i8 %.sink3753, ptr %2485, align 1, !tbaa !20
  %2486 = load ptr, ptr %2303, align 8, !tbaa !19
  %2487 = getelementptr inbounds i8, ptr %2486, i64 %2305
  %2488 = load i8, ptr %2487, align 1, !tbaa !20
  %2489 = zext i8 %2488 to i64
  %2490 = getelementptr inbounds [256 x i32], ptr %6, i64 0, i64 %2489
  %2491 = load i32, ptr %2490, align 4, !tbaa !14
  %2492 = load ptr, ptr %2311, align 8, !tbaa !19
  %2493 = getelementptr inbounds i8, ptr %2492, i64 %2305
  %2494 = load i8, ptr %2493, align 1, !tbaa !20
  %2495 = zext i8 %2494 to i64
  %2496 = getelementptr inbounds [256 x i32], ptr %7, i64 0, i64 %2495
  %2497 = load i32, ptr %2496, align 4, !tbaa !14
  %2498 = add nsw i32 %2497, %2491
  %2499 = icmp slt i32 %2498, 0
  %spec.select39163947 = tail call i32 @llvm.umin.i32(i32 %2498, i32 255)
  %spec.select3916 = trunc nuw i32 %spec.select39163947 to i8
  %.sink3758 = select i1 %2499, i8 0, i8 %spec.select3916
  %2500 = load ptr, ptr %96, align 8, !tbaa !19
  %2501 = getelementptr inbounds ptr, ptr %2500, i64 %indvars.iv3161
  %2502 = load ptr, ptr %2501, align 8, !tbaa !19
  %2503 = getelementptr inbounds i8, ptr %2502, i64 %2305
  store i8 %.sink3758, ptr %2503, align 1, !tbaa !20
  %2504 = load ptr, ptr %2303, align 8, !tbaa !19
  %2505 = getelementptr inbounds i8, ptr %2504, i64 %2305
  %2506 = load i8, ptr %2505, align 1, !tbaa !20
  %2507 = zext i8 %2506 to i64
  %2508 = getelementptr inbounds [256 x i32], ptr %6, i64 0, i64 %2507
  %2509 = load i32, ptr %2508, align 4, !tbaa !14
  %2510 = load ptr, ptr %2311, align 8, !tbaa !19
  %2511 = getelementptr inbounds i8, ptr %2510, i64 %2305
  %2512 = load i8, ptr %2511, align 1, !tbaa !20
  %2513 = zext i8 %2512 to i64
  %2514 = getelementptr inbounds [256 x i32], ptr %7, i64 0, i64 %2513
  %2515 = load i32, ptr %2514, align 4, !tbaa !14
  %2516 = add nsw i32 %2515, %2509
  %2517 = icmp slt i32 %2516, 0
  %spec.select39173948 = tail call i32 @llvm.umin.i32(i32 %2516, i32 255)
  %spec.select3917 = trunc nuw i32 %spec.select39173948 to i8
  %.sink3763 = select i1 %2517, i8 0, i8 %spec.select3917
  %2518 = load ptr, ptr %96, align 8, !tbaa !19
  %2519 = getelementptr inbounds ptr, ptr %2518, i64 %indvars.iv3161
  %2520 = load ptr, ptr %2519, align 8, !tbaa !19
  %2521 = getelementptr inbounds i8, ptr %2520, i64 %2305
  store i8 %.sink3763, ptr %2521, align 1, !tbaa !20
  %2522 = load ptr, ptr %2303, align 8, !tbaa !19
  %2523 = getelementptr inbounds i8, ptr %2522, i64 %2305
  %2524 = load i8, ptr %2523, align 1, !tbaa !20
  %2525 = zext i8 %2524 to i64
  %2526 = getelementptr inbounds [256 x i32], ptr %6, i64 0, i64 %2525
  %2527 = load i32, ptr %2526, align 4, !tbaa !14
  %2528 = load ptr, ptr %2311, align 8, !tbaa !19
  %2529 = getelementptr inbounds i8, ptr %2528, i64 %2305
  %2530 = load i8, ptr %2529, align 1, !tbaa !20
  %2531 = zext i8 %2530 to i64
  %2532 = getelementptr inbounds [256 x i32], ptr %7, i64 0, i64 %2531
  %2533 = load i32, ptr %2532, align 4, !tbaa !14
  %2534 = add nsw i32 %2533, %2527
  %2535 = icmp slt i32 %2534, 0
  %spec.select39183949 = tail call i32 @llvm.umin.i32(i32 %2534, i32 255)
  %spec.select3918 = trunc nuw i32 %spec.select39183949 to i8
  %.sink3768 = select i1 %2535, i8 0, i8 %spec.select3918
  %2536 = load ptr, ptr %96, align 8, !tbaa !19
  %2537 = getelementptr inbounds ptr, ptr %2536, i64 %indvars.iv3161
  %2538 = load ptr, ptr %2537, align 8, !tbaa !19
  %2539 = getelementptr inbounds i8, ptr %2538, i64 %2305
  store i8 %.sink3768, ptr %2539, align 1, !tbaa !20
  %2540 = load ptr, ptr %2303, align 8, !tbaa !19
  %2541 = getelementptr inbounds i8, ptr %2540, i64 %2305
  %2542 = load i8, ptr %2541, align 1, !tbaa !20
  %2543 = zext i8 %2542 to i64
  %2544 = getelementptr inbounds [256 x i32], ptr %6, i64 0, i64 %2543
  %2545 = load i32, ptr %2544, align 4, !tbaa !14
  %2546 = load ptr, ptr %2311, align 8, !tbaa !19
  %2547 = getelementptr inbounds i8, ptr %2546, i64 %2305
  %2548 = load i8, ptr %2547, align 1, !tbaa !20
  %2549 = zext i8 %2548 to i64
  %2550 = getelementptr inbounds [256 x i32], ptr %7, i64 0, i64 %2549
  %2551 = load i32, ptr %2550, align 4, !tbaa !14
  %2552 = add nsw i32 %2551, %2545
  %2553 = icmp slt i32 %2552, 0
  %spec.select39193950 = tail call i32 @llvm.umin.i32(i32 %2552, i32 255)
  %spec.select3919 = trunc nuw i32 %spec.select39193950 to i8
  %.sink3773 = select i1 %2553, i8 0, i8 %spec.select3919
  %2554 = load ptr, ptr %96, align 8, !tbaa !19
  %2555 = getelementptr inbounds ptr, ptr %2554, i64 %indvars.iv3161
  %2556 = load ptr, ptr %2555, align 8, !tbaa !19
  %2557 = getelementptr inbounds i8, ptr %2556, i64 %2305
  store i8 %.sink3773, ptr %2557, align 1, !tbaa !20
  %2558 = load ptr, ptr %2303, align 8, !tbaa !19
  %2559 = getelementptr inbounds i8, ptr %2558, i64 %2305
  %2560 = load i8, ptr %2559, align 1, !tbaa !20
  %2561 = zext i8 %2560 to i64
  %2562 = getelementptr inbounds [256 x i32], ptr %6, i64 0, i64 %2561
  %2563 = load i32, ptr %2562, align 4, !tbaa !14
  %2564 = load ptr, ptr %2311, align 8, !tbaa !19
  %2565 = getelementptr inbounds i8, ptr %2564, i64 %2305
  %2566 = load i8, ptr %2565, align 1, !tbaa !20
  %2567 = zext i8 %2566 to i64
  %2568 = getelementptr inbounds [256 x i32], ptr %7, i64 0, i64 %2567
  %2569 = load i32, ptr %2568, align 4, !tbaa !14
  %2570 = add nsw i32 %2569, %2563
  %2571 = icmp slt i32 %2570, 0
  br i1 %2571, label %.sink.split3778, label %2572

2572:                                             ; preds = %2302
  %spec.select39203951 = tail call i32 @llvm.umin.i32(i32 %2570, i32 255)
  %spec.select3920 = trunc nuw i32 %spec.select39203951 to i8
  br label %.sink.split3778

.sink.split3778:                                  ; preds = %2572, %2301, %2048, %1813, %1596, %1397, %1216, %1053, %908, %781, %672, %581, %508, %453, %416, %2302, %2049, %1814, %1597, %1398, %1217, %1054, %909, %782, %673, %582, %509, %454, %417, %398
  %.sink3782 = phi i64 [ %401, %398 ], [ %420, %417 ], [ %457, %454 ], [ %512, %509 ], [ %585, %582 ], [ %676, %673 ], [ %785, %782 ], [ %912, %909 ], [ %1057, %1054 ], [ %1220, %1217 ], [ %1401, %1398 ], [ %1600, %1597 ], [ %1817, %1814 ], [ %2052, %2049 ], [ %2305, %2302 ], [ %401, %416 ], [ %420, %453 ], [ %457, %508 ], [ %512, %581 ], [ %585, %672 ], [ %676, %781 ], [ %785, %908 ], [ %912, %1053 ], [ %1057, %1216 ], [ %1220, %1397 ], [ %1401, %1596 ], [ %1600, %1813 ], [ %1817, %2048 ], [ %2052, %2301 ], [ %2305, %2572 ]
  %.sink3779 = phi i8 [ 0, %398 ], [ 0, %417 ], [ 0, %454 ], [ 0, %509 ], [ 0, %582 ], [ 0, %673 ], [ 0, %782 ], [ 0, %909 ], [ 0, %1054 ], [ 0, %1217 ], [ 0, %1398 ], [ 0, %1597 ], [ 0, %1814 ], [ 0, %2049 ], [ 0, %2302 ], [ %spec.select3801, %416 ], [ %spec.select3803, %453 ], [ %spec.select3806, %508 ], [ %spec.select3810, %581 ], [ %spec.select3815, %672 ], [ %spec.select3821, %781 ], [ %spec.select3828, %908 ], [ %spec.select3836, %1053 ], [ %spec.select3845, %1216 ], [ %spec.select3855, %1397 ], [ %spec.select3866, %1596 ], [ %spec.select3878, %1813 ], [ %spec.select3891, %2048 ], [ %spec.select3905, %2301 ], [ %spec.select3920, %2572 ]
  %2573 = load ptr, ptr %96, align 8, !tbaa !19
  %2574 = getelementptr inbounds ptr, ptr %2573, i64 %indvars.iv3161
  %2575 = load ptr, ptr %2574, align 8, !tbaa !19
  %2576 = getelementptr inbounds i8, ptr %2575, i64 %.sink3782
  store i8 %.sink3779, ptr %2576, align 1, !tbaa !20
  br label %2577

2577:                                             ; preds = %.sink.split3778, %396, %._crit_edge
  %indvars.iv.next3162 = add nuw nsw i64 %indvars.iv3161, 1
  %2578 = load i32, ptr %82, align 4, !tbaa !11
  %2579 = sext i32 %2578 to i64
  %2580 = icmp slt i64 %indvars.iv.next3162, %2579
  br i1 %2580, label %.preheader, label %._crit_edge3150.loopexit, !llvm.loop !22

._crit_edge3150.loopexit:                         ; preds = %2577
  %.pre3169 = load i32, ptr %.0, align 8, !tbaa !5
  br label %._crit_edge3150

._crit_edge3150:                                  ; preds = %._crit_edge3150.loopexit, %.lr.ph3152.split
  %2581 = phi i32 [ %.pre3169, %._crit_edge3150.loopexit ], [ %87, %.lr.ph3152.split ]
  %2582 = phi i32 [ %2578, %._crit_edge3150.loopexit ], [ %88, %.lr.ph3152.split ]
  %indvars.iv.next3165 = add nuw nsw i64 %indvars.iv3164, 1
  %2583 = sext i32 %2581 to i64
  %2584 = icmp slt i64 %indvars.iv.next3165, %2583
  br i1 %2584, label %.lr.ph3152.split, label %._crit_edge3153, !llvm.loop !23
}

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare i32 @llvm.umin.i32(i32, i32) #3

attributes #0 = { mustprogress 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 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #4 = { 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 = !{!"MImage", !7, i64 0, !7, i64 4, !7, i64 8, !8, i64 16, !10, i64 48}
!7 = !{!"int", !8, i64 0}
!8 = !{!"omnipotent char", !9, i64 0}
!9 = !{!"Simple C/C++ TBAA"}
!10 = !{!"any pointer", !8, i64 0}
!11 = !{!6, !7, i64 4}
!12 = !{!6, !7, i64 8}
!13 = !{!6, !10, i64 48}
!14 = !{!7, !7, i64 0}
!15 = distinct !{!15, !16, !17, !18}
!16 = !{!"llvm.loop.mustprogress"}
!17 = !{!"llvm.loop.isvectorized", i32 1}
!18 = !{!"llvm.loop.unroll.runtime.disable"}
!19 = !{!10, !10, i64 0}
!20 = !{!8, !8, i64 0}
!21 = distinct !{!21, !16}
!22 = distinct !{!22, !16}
!23 = distinct !{!23, !16, !24}
!24 = !{!"llvm.loop.unswitch.partial.disable"}


; Effective O3 passes: BDCEPass,CorrelatedValuePropagationPass,EarlyCSEPass,GVNPass,GlobalOptPass,IPSCCPPass,IndVarSimplifyPass,InferAlignmentPass,InferFunctionAttrsPass,InstCombinePass,InstSimplifyPass,JumpThreadingPass,LCSSAPass,LICMPass,LoopInstSimplifyPass,LoopLoadEliminationPass,LoopRotatePass,LoopSimplifyCFGPass,LoopSimplifyPass,LoopUnrollPass,LoopVectorizePass,ReassociatePass,SROAPass,SimpleLoopUnswitchPass,SimplifyCFGPass,TailCallElimPass