; 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 }
%struct.MArray = type { i32, i16, %union.anon }
%union.anon = type { 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__.mImageDataAdd = external hidden unnamed_addr constant [14 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 @mImageDataAdd(ptr noundef %0, ptr noundef %1, ptr noundef %2) #2 {
  %4 = alloca ptr, align 8
  %5 = alloca ptr, align 8
  %6 = alloca ptr, align 8
  %7 = alloca i32, align 4
  %8 = alloca i32, align 4
  %9 = alloca i32, align 4
  %10 = alloca i32, align 4
  %11 = alloca i32, align 4
  %12 = alloca i32, align 4
  %13 = alloca ptr, align 8
  %14 = alloca ptr, align 8
  %15 = alloca i32, align 4
  %16 = alloca i32, align 4
  store ptr %0, ptr %4, align 8, !tbaa !5
  store ptr %1, ptr %5, align 8, !tbaa !5
  store ptr %2, ptr %6, align 8, !tbaa !5
  br label %17

17:                                               ; preds = %3
  call void @llvm.lifetime.start.p0(i64 4, ptr %7) #3
  %18 = load ptr, ptr %4, align 8, !tbaa !5
  %19 = icmp eq ptr %18, null
  br i1 %19, label %24, label %20

20:                                               ; preds = %17
  %21 = load ptr, ptr %4, align 8, !tbaa !5
  %22 = ptrtoint ptr %21 to i64
  %23 = icmp eq i64 %22, -1
  br i1 %23, label %24, label %25

24:                                               ; preds = %20, %17
  br i1 true, label %91, label %51

25:                                               ; preds = %20
  %26 = load ptr, ptr %4, align 8, !tbaa !5
  %27 = getelementptr inbounds %struct.MImage, ptr %26, i32 0, i32 3
  %28 = getelementptr inbounds [4 x ptr], ptr %27, i64 0, i64 0
  %29 = icmp eq ptr %28, null
  br i1 %29, label %91, label %30

30:                                               ; preds = %25
  %31 = load ptr, ptr %4, align 8, !tbaa !5
  %32 = getelementptr inbounds %struct.MImage, ptr %31, i32 0, i32 3
  %33 = getelementptr inbounds [4 x ptr], ptr %32, i64 0, i64 0
  %34 = ptrtoint ptr %33 to i64
  %35 = icmp eq i64 %34, -1
  br i1 %35, label %91, label %36

36:                                               ; preds = %30
  %37 = load ptr, ptr %4, align 8, !tbaa !5
  %38 = getelementptr inbounds %struct.MImage, ptr %37, i32 0, i32 0
  %39 = load i32, ptr %38, align 8, !tbaa !9
  %40 = icmp sle i32 %39, 0
  br i1 %40, label %91, label %41

41:                                               ; preds = %36
  %42 = load ptr, ptr %4, align 8, !tbaa !5
  %43 = getelementptr inbounds %struct.MImage, ptr %42, i32 0, i32 1
  %44 = load i32, ptr %43, align 4, !tbaa !12
  %45 = icmp sle i32 %44, 0
  br i1 %45, label %91, label %46

46:                                               ; preds = %41
  %47 = load ptr, ptr %4, align 8, !tbaa !5
  %48 = getelementptr inbounds %struct.MImage, ptr %47, i32 0, i32 2
  %49 = load i32, ptr %48, align 8, !tbaa !13
  %50 = icmp sle i32 %49, 0
  br i1 %50, label %91, label %51

51:                                               ; preds = %46, %24
  %52 = load ptr, ptr %5, align 8, !tbaa !5
  %53 = icmp eq ptr %52, null
  br i1 %53, label %58, label %54

54:                                               ; preds = %51
  %55 = load ptr, ptr %5, align 8, !tbaa !5
  %56 = ptrtoint ptr %55 to i64
  %57 = icmp eq i64 %56, -1
  br i1 %57, label %58, label %59

58:                                               ; preds = %54, %51
  br label %88

59:                                               ; preds = %54
  %60 = load ptr, ptr %5, align 8, !tbaa !5
  %61 = getelementptr inbounds %struct.MImage, ptr %60, i32 0, i32 3
  %62 = getelementptr inbounds [4 x ptr], ptr %61, i64 0, i64 0
  %63 = icmp eq ptr %62, null
  br i1 %63, label %85, label %64

64:                                               ; preds = %59
  %65 = load ptr, ptr %5, align 8, !tbaa !5
  %66 = getelementptr inbounds %struct.MImage, ptr %65, i32 0, i32 3
  %67 = getelementptr inbounds [4 x ptr], ptr %66, i64 0, i64 0
  %68 = ptrtoint ptr %67 to i64
  %69 = icmp eq i64 %68, -1
  br i1 %69, label %85, label %70

70:                                               ; preds = %64
  %71 = load ptr, ptr %5, align 8, !tbaa !5
  %72 = getelementptr inbounds %struct.MImage, ptr %71, i32 0, i32 0
  %73 = load i32, ptr %72, align 8, !tbaa !9
  %74 = icmp sle i32 %73, 0
  br i1 %74, label %85, label %75

75:                                               ; preds = %70
  %76 = load ptr, ptr %5, align 8, !tbaa !5
  %77 = getelementptr inbounds %struct.MImage, ptr %76, i32 0, i32 1
  %78 = load i32, ptr %77, align 4, !tbaa !12
  %79 = icmp sle i32 %78, 0
  br i1 %79, label %85, label %80

80:                                               ; preds = %75
  %81 = load ptr, ptr %5, align 8, !tbaa !5
  %82 = getelementptr inbounds %struct.MImage, ptr %81, i32 0, i32 2
  %83 = load i32, ptr %82, align 8, !tbaa !13
  %84 = icmp sle i32 %83, 0
  br label %85

85:                                               ; preds = %80, %75, %70, %64, %59
  %86 = phi i1 [ true, %75 ], [ true, %70 ], [ true, %64 ], [ true, %59 ], [ %84, %80 ]
  %87 = zext i1 %86 to i32
  br label %88

88:                                               ; preds = %85, %58
  %89 = phi i32 [ 1, %58 ], [ %87, %85 ]
  %90 = icmp ne i32 %89, 0
  br label %91

91:                                               ; preds = %88, %46, %41, %36, %30, %25, %24
  %92 = phi i1 [ true, %46 ], [ true, %41 ], [ true, %36 ], [ true, %30 ], [ true, %25 ], [ true, %24 ], [ %90, %88 ]
  %93 = zext i1 %92 to i32
  store i32 %93, ptr %7, align 4, !tbaa !14
  %94 = load i32, ptr %7, align 4, !tbaa !14
  %95 = icmp ne i32 %94, 0
  br i1 %95, label %96, label %98

96:                                               ; preds = %91
  %97 = load i32, ptr %7, align 4, !tbaa !14
  call void (i32, i32, ptr, i32, ptr, ptr, ...) @m_Exception(i32 noundef %97, i32 noundef -1, ptr noundef @.str, i32 noundef 523, ptr noundef @__FUNCTION__.mImageDataAdd, ptr noundef @.str.2)
  br label %98

98:                                               ; preds = %96, %91
  call void @llvm.lifetime.end.p0(i64 4, ptr %7) #3
  br label %99

99:                                               ; preds = %98
  br label %100

100:                                              ; preds = %99
  call void @llvm.lifetime.start.p0(i64 4, ptr %8) #3
  %101 = load ptr, ptr %4, align 8, !tbaa !5
  %102 = getelementptr inbounds %struct.MImage, ptr %101, i32 0, i32 1
  %103 = load i32, ptr %102, align 4, !tbaa !12
  %104 = load ptr, ptr %5, align 8, !tbaa !5
  %105 = getelementptr inbounds %struct.MImage, ptr %104, i32 0, i32 1
  %106 = load i32, ptr %105, align 4, !tbaa !12
  %107 = icmp ne i32 %103, %106
  br i1 %107, label %116, label %108

108:                                              ; preds = %100
  %109 = load ptr, ptr %4, align 8, !tbaa !5
  %110 = getelementptr inbounds %struct.MImage, ptr %109, i32 0, i32 2
  %111 = load i32, ptr %110, align 8, !tbaa !13
  %112 = load ptr, ptr %5, align 8, !tbaa !5
  %113 = getelementptr inbounds %struct.MImage, ptr %112, i32 0, i32 2
  %114 = load i32, ptr %113, align 8, !tbaa !13
  %115 = icmp ne i32 %111, %114
  br label %116

116:                                              ; preds = %108, %100
  %117 = phi i1 [ true, %100 ], [ %115, %108 ]
  %118 = zext i1 %117 to i32
  store i32 %118, ptr %8, align 4, !tbaa !14
  %119 = load i32, ptr %8, align 4, !tbaa !14
  %120 = icmp ne i32 %119, 0
  br i1 %120, label %121, label %123

121:                                              ; preds = %116
  %122 = load i32, ptr %8, align 4, !tbaa !14
  call void (i32, i32, ptr, i32, ptr, ptr, ...) @m_Exception(i32 noundef %122, i32 noundef -1, ptr noundef @.str, i32 noundef 524, ptr noundef @__FUNCTION__.mImageDataAdd, ptr noundef @.str.2)
  br label %123

123:                                              ; preds = %121, %116
  call void @llvm.lifetime.end.p0(i64 4, ptr %8) #3
  br label %124

124:                                              ; preds = %123
  br label %125

125:                                              ; preds = %124
  call void @llvm.lifetime.start.p0(i64 4, ptr %9) #3
  %126 = load ptr, ptr %5, align 8, !tbaa !5
  %127 = getelementptr inbounds %struct.MImage, ptr %126, i32 0, i32 0
  %128 = load i32, ptr %127, align 8, !tbaa !9
  %129 = load ptr, ptr %4, align 8, !tbaa !5
  %130 = getelementptr inbounds %struct.MImage, ptr %129, i32 0, i32 0
  %131 = load i32, ptr %130, align 8, !tbaa !9
  %132 = icmp ne i32 %128, %131
  br i1 %132, label %133, label %138

133:                                              ; preds = %125
  %134 = load ptr, ptr %5, align 8, !tbaa !5
  %135 = getelementptr inbounds %struct.MImage, ptr %134, i32 0, i32 0
  %136 = load i32, ptr %135, align 8, !tbaa !9
  %137 = icmp ne i32 %136, 1
  br label %138

138:                                              ; preds = %133, %125
  %139 = phi i1 [ false, %125 ], [ %137, %133 ]
  %140 = zext i1 %139 to i32
  store i32 %140, ptr %9, align 4, !tbaa !14
  %141 = load i32, ptr %9, align 4, !tbaa !14
  %142 = icmp ne i32 %141, 0
  br i1 %142, label %143, label %145

143:                                              ; preds = %138
  %144 = load i32, ptr %9, align 4, !tbaa !14
  call void (i32, i32, ptr, i32, ptr, ptr, ...) @m_Exception(i32 noundef %144, i32 noundef -1, ptr noundef @.str, i32 noundef 525, ptr noundef @__FUNCTION__.mImageDataAdd, ptr noundef @.str.2)
  br label %145

145:                                              ; preds = %143, %138
  call void @llvm.lifetime.end.p0(i64 4, ptr %9) #3
  br label %146

146:                                              ; preds = %145
  %147 = load ptr, ptr %6, align 8, !tbaa !5
  %148 = icmp eq ptr %147, null
  br i1 %148, label %153, label %149

149:                                              ; preds = %146
  %150 = load ptr, ptr %6, align 8, !tbaa !5
  %151 = ptrtoint ptr %150 to i64
  %152 = icmp eq i64 %151, -1
  br i1 %152, label %153, label %155

153:                                              ; preds = %149, %146
  %154 = load ptr, ptr %4, align 8, !tbaa !5
  store ptr %154, ptr %6, align 8, !tbaa !5
  br label %220

155:                                              ; preds = %149
  br label %156

156:                                              ; preds = %155
  call void @llvm.lifetime.start.p0(i64 4, ptr %10) #3
  store i32 4, ptr %10, align 4, !tbaa !14
  %157 = load i32, ptr %10, align 4, !tbaa !14
  %158 = icmp eq i32 %157, 2
  br i1 %158, label %159, label %171

159:                                              ; preds = %156
  %160 = load ptr, ptr %6, align 8, !tbaa !5
  %161 = load ptr, ptr %4, align 8, !tbaa !5
  %162 = getelementptr inbounds %struct.MImage, ptr %161, i32 0, i32 0
  %163 = load i32, ptr %162, align 8, !tbaa !9
  %164 = add nsw i32 %163, 0
  %165 = load ptr, ptr %4, align 8, !tbaa !5
  %166 = getelementptr inbounds %struct.MImage, ptr %165, i32 0, i32 1
  %167 = load i32, ptr %166, align 4, !tbaa !12
  %168 = load ptr, ptr %6, align 8, !tbaa !5
  %169 = getelementptr inbounds %struct.MImage, ptr %168, i32 0, i32 3
  %170 = getelementptr inbounds [4 x ptr], ptr %169, i64 0, i64 0
  call void @ImageRedefine(ptr noundef %160, i32 noundef -1, i32 noundef %164, i32 noundef %167, ptr noundef %170)
  br label %218

171:                                              ; preds = %156
  %172 = load i32, ptr %10, align 4, !tbaa !14
  %173 = icmp eq i32 %172, 3
  br i1 %173, label %174, label %189

174:                                              ; preds = %171
  %175 = load ptr, ptr %6, align 8, !tbaa !5
  %176 = load ptr, ptr %4, align 8, !tbaa !5
  %177 = getelementptr inbounds %struct.MImage, ptr %176, i32 0, i32 0
  %178 = load i32, ptr %177, align 8, !tbaa !9
  %179 = add nsw i32 %178, 0
  %180 = load ptr, ptr %4, align 8, !tbaa !5
  %181 = getelementptr inbounds %struct.MImage, ptr %180, i32 0, i32 1
  %182 = load i32, ptr %181, align 4, !tbaa !12
  %183 = load ptr, ptr %4, align 8, !tbaa !5
  %184 = getelementptr inbounds %struct.MImage, ptr %183, i32 0, i32 2
  %185 = load i32, ptr %184, align 8, !tbaa !13
  %186 = load ptr, ptr %6, align 8, !tbaa !5
  %187 = getelementptr inbounds %struct.MImage, ptr %186, i32 0, i32 3
  %188 = getelementptr inbounds [4 x ptr], ptr %187, i64 0, i64 0
  call void @ImageRedefine(ptr noundef %175, i32 noundef %179, i32 noundef %182, i32 noundef %185, ptr noundef %188)
  br label %217

189:                                              ; preds = %171
  %190 = load i32, ptr %10, align 4, !tbaa !14
  %191 = icmp eq i32 %190, 4
  br i1 %191, label %192, label %207

192:                                              ; preds = %189
  %193 = load ptr, ptr %6, align 8, !tbaa !5
  %194 = load ptr, ptr %4, align 8, !tbaa !5
  %195 = getelementptr inbounds %struct.MImage, ptr %194, i32 0, i32 0
  %196 = load i32, ptr %195, align 8, !tbaa !9
  %197 = add nsw i32 %196, 0
  %198 = load ptr, ptr %4, align 8, !tbaa !5
  %199 = getelementptr inbounds %struct.MImage, ptr %198, i32 0, i32 1
  %200 = load i32, ptr %199, align 4, !tbaa !12
  %201 = load ptr, ptr %4, align 8, !tbaa !5
  %202 = getelementptr inbounds %struct.MImage, ptr %201, i32 0, i32 2
  %203 = load i32, ptr %202, align 8, !tbaa !13
  %204 = load ptr, ptr %6, align 8, !tbaa !5
  %205 = getelementptr inbounds %struct.MImage, ptr %204, i32 0, i32 3
  %206 = getelementptr inbounds [4 x ptr], ptr %205, i64 0, i64 0
  call void @ImageRedefine(ptr noundef %193, i32 noundef %197, i32 noundef %200, i32 noundef %203, ptr noundef %206)
  br label %216

207:                                              ; preds = %189
  br label %208

208:                                              ; preds = %207
  call void @llvm.lifetime.start.p0(i64 4, ptr %11) #3
  store i32 1, ptr %11, align 4, !tbaa !14
  %209 = load i32, ptr %11, align 4, !tbaa !14
  %210 = icmp ne i32 %209, 0
  br i1 %210, label %211, label %213

211:                                              ; preds = %208
  %212 = load i32, ptr %11, align 4, !tbaa !14
  call void (i32, i32, ptr, i32, ptr, ptr, ...) @m_Exception(i32 noundef %212, i32 noundef -1, ptr noundef @.str, i32 noundef 528, ptr noundef @__FUNCTION__.mImageDataAdd, ptr noundef @.str.12)
  br label %213

213:                                              ; preds = %211, %208
  call void @llvm.lifetime.end.p0(i64 4, ptr %11) #3
  br label %214

214:                                              ; preds = %213
  br label %215

215:                                              ; preds = %214
  br label %216

216:                                              ; preds = %215, %192
  br label %217

217:                                              ; preds = %216, %174
  br label %218

218:                                              ; preds = %217, %159
  call void @llvm.lifetime.end.p0(i64 4, ptr %10) #3
  br label %219

219:                                              ; preds = %218
  br label %220

220:                                              ; preds = %219, %153
  %221 = load ptr, ptr %4, align 8, !tbaa !5
  %222 = getelementptr inbounds %struct.MImage, ptr %221, i32 0, i32 4
  %223 = load ptr, ptr %222, align 8, !tbaa !15
  %224 = icmp eq ptr %223, null
  br i1 %224, label %237, label %225

225:                                              ; preds = %220
  %226 = load ptr, ptr %4, align 8, !tbaa !5
  %227 = getelementptr inbounds %struct.MImage, ptr %226, i32 0, i32 4
  %228 = load ptr, ptr %227, align 8, !tbaa !15
  %229 = ptrtoint ptr %228 to i64
  %230 = icmp eq i64 %229, -1
  br i1 %230, label %237, label %231

231:                                              ; preds = %225
  %232 = load ptr, ptr %4, align 8, !tbaa !5
  %233 = getelementptr inbounds %struct.MImage, ptr %232, i32 0, i32 4
  %234 = load ptr, ptr %233, align 8, !tbaa !15
  %235 = load ptr, ptr %6, align 8, !tbaa !5
  %236 = getelementptr inbounds %struct.MImage, ptr %235, i32 0, i32 4
  store ptr %234, ptr %236, align 8, !tbaa !15
  br label %255

237:                                              ; preds = %225, %220
  %238 = load ptr, ptr %5, align 8, !tbaa !5
  %239 = getelementptr inbounds %struct.MImage, ptr %238, i32 0, i32 4
  %240 = load ptr, ptr %239, align 8, !tbaa !15
  %241 = icmp eq ptr %240, null
  br i1 %241, label %254, label %242

242:                                              ; preds = %237
  %243 = load ptr, ptr %5, align 8, !tbaa !5
  %244 = getelementptr inbounds %struct.MImage, ptr %243, i32 0, i32 4
  %245 = load ptr, ptr %244, align 8, !tbaa !15
  %246 = ptrtoint ptr %245 to i64
  %247 = icmp eq i64 %246, -1
  br i1 %247, label %254, label %248

248:                                              ; preds = %242
  %249 = load ptr, ptr %5, align 8, !tbaa !5
  %250 = getelementptr inbounds %struct.MImage, ptr %249, i32 0, i32 4
  %251 = load ptr, ptr %250, align 8, !tbaa !15
  %252 = load ptr, ptr %6, align 8, !tbaa !5
  %253 = getelementptr inbounds %struct.MImage, ptr %252, i32 0, i32 4
  store ptr %251, ptr %253, align 8, !tbaa !15
  br label %254

254:                                              ; preds = %248, %242, %237
  br label %255

255:                                              ; preds = %254, %231
  call void @llvm.lifetime.start.p0(i64 4, ptr %12) #3
  store i32 0, ptr %12, align 4, !tbaa !14
  br label %256

256:                                              ; preds = %9466, %255
  %257 = load i32, ptr %12, align 4, !tbaa !14
  %258 = load ptr, ptr %6, align 8, !tbaa !5
  %259 = getelementptr inbounds %struct.MImage, ptr %258, i32 0, i32 0
  %260 = load i32, ptr %259, align 8, !tbaa !9
  %261 = icmp slt i32 %257, %260
  br i1 %261, label %263, label %262

262:                                              ; preds = %256
  call void @llvm.lifetime.end.p0(i64 4, ptr %12) #3
  br label %9469

263:                                              ; preds = %256
  call void @llvm.lifetime.start.p0(i64 8, ptr %13) #3
  %264 = load ptr, ptr %4, align 8, !tbaa !5
  %265 = getelementptr inbounds %struct.MImage, ptr %264, i32 0, i32 3
  %266 = load i32, ptr %12, align 4, !tbaa !14
  %267 = sext i32 %266 to i64
  %268 = getelementptr inbounds [4 x ptr], ptr %265, i64 0, i64 %267
  %269 = load ptr, ptr %268, align 8, !tbaa !5
  store ptr %269, ptr %13, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %14) #3
  %270 = load i32, ptr %12, align 4, !tbaa !14
  %271 = load ptr, ptr %5, align 8, !tbaa !5
  %272 = getelementptr inbounds %struct.MImage, ptr %271, i32 0, i32 0
  %273 = load i32, ptr %272, align 8, !tbaa !9
  %274 = icmp sge i32 %270, %273
  br i1 %274, label %275, label %280

275:                                              ; preds = %263
  %276 = load ptr, ptr %5, align 8, !tbaa !5
  %277 = getelementptr inbounds %struct.MImage, ptr %276, i32 0, i32 3
  %278 = getelementptr inbounds [4 x ptr], ptr %277, i64 0, i64 0
  %279 = load ptr, ptr %278, align 8, !tbaa !5
  br label %287

280:                                              ; preds = %263
  %281 = load ptr, ptr %5, align 8, !tbaa !5
  %282 = getelementptr inbounds %struct.MImage, ptr %281, i32 0, i32 3
  %283 = load i32, ptr %12, align 4, !tbaa !14
  %284 = sext i32 %283 to i64
  %285 = getelementptr inbounds [4 x ptr], ptr %282, i64 0, i64 %284
  %286 = load ptr, ptr %285, align 8, !tbaa !5
  br label %287

287:                                              ; preds = %280, %275
  %288 = phi ptr [ %279, %275 ], [ %286, %280 ]
  store ptr %288, ptr %14, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %15) #3
  %289 = load ptr, ptr %6, align 8, !tbaa !5
  %290 = getelementptr inbounds %struct.MImage, ptr %289, i32 0, i32 4
  %291 = load ptr, ptr %290, align 8, !tbaa !15
  %292 = icmp eq ptr %291, null
  br i1 %292, label %293, label %294

293:                                              ; preds = %287
  br label %303

294:                                              ; preds = %287
  %295 = load ptr, ptr %6, align 8, !tbaa !5
  %296 = getelementptr inbounds %struct.MImage, ptr %295, i32 0, i32 4
  %297 = load ptr, ptr %296, align 8, !tbaa !15
  %298 = getelementptr inbounds %struct.MArray, ptr %297, i32 0, i32 2
  %299 = load ptr, ptr %298, align 8, !tbaa !16
  %300 = getelementptr inbounds i16, ptr %299, i64 2
  %301 = load i16, ptr %300, align 2, !tbaa !17
  %302 = sext i16 %301 to i32
  br label %303

303:                                              ; preds = %294, %293
  %304 = phi i32 [ 0, %293 ], [ %302, %294 ]
  store i32 %304, ptr %15, align 4, !tbaa !14
  br label %305

305:                                              ; preds = %9462, %303
  %306 = load i32, ptr %15, align 4, !tbaa !14
  %307 = load ptr, ptr %6, align 8, !tbaa !5
  %308 = getelementptr inbounds %struct.MImage, ptr %307, i32 0, i32 4
  %309 = load ptr, ptr %308, align 8, !tbaa !15
  %310 = icmp eq ptr %309, null
  br i1 %310, label %311, label %315

311:                                              ; preds = %305
  %312 = load ptr, ptr %6, align 8, !tbaa !5
  %313 = getelementptr inbounds %struct.MImage, ptr %312, i32 0, i32 1
  %314 = load i32, ptr %313, align 4, !tbaa !12
  br label %324

315:                                              ; preds = %305
  %316 = load ptr, ptr %6, align 8, !tbaa !5
  %317 = getelementptr inbounds %struct.MImage, ptr %316, i32 0, i32 4
  %318 = load ptr, ptr %317, align 8, !tbaa !15
  %319 = getelementptr inbounds %struct.MArray, ptr %318, i32 0, i32 2
  %320 = load ptr, ptr %319, align 8, !tbaa !16
  %321 = getelementptr inbounds i16, ptr %320, i64 3
  %322 = load i16, ptr %321, align 2, !tbaa !17
  %323 = sext i16 %322 to i32
  br label %324

324:                                              ; preds = %315, %311
  %325 = phi i32 [ %314, %311 ], [ %323, %315 ]
  %326 = icmp slt i32 %306, %325
  br i1 %326, label %327, label %9465

327:                                              ; preds = %324
  br label %328

328:                                              ; preds = %327
  call void @llvm.lifetime.start.p0(i64 4, ptr %16) #3
  store i32 0, ptr %16, align 4, !tbaa !14
  store i32 0, ptr %16, align 4, !tbaa !14
  br label %329

329:                                              ; preds = %1393, %328
  %330 = load i32, ptr %16, align 4, !tbaa !14
  %331 = load ptr, ptr %6, align 8, !tbaa !5
  %332 = getelementptr inbounds %struct.MImage, ptr %331, i32 0, i32 2
  %333 = load i32, ptr %332, align 8, !tbaa !13
  %334 = sub nsw i32 %333, 15
  %335 = icmp slt i32 %330, %334
  br i1 %335, label %336, label %1396

336:                                              ; preds = %329
  %337 = load ptr, ptr %13, align 8, !tbaa !5
  %338 = load i32, ptr %15, align 4, !tbaa !14
  %339 = sext i32 %338 to i64
  %340 = getelementptr inbounds ptr, ptr %337, i64 %339
  %341 = load ptr, ptr %340, align 8, !tbaa !5
  %342 = load i32, ptr %16, align 4, !tbaa !14
  %343 = add nsw i32 %342, 0
  %344 = sext i32 %343 to i64
  %345 = getelementptr inbounds i8, ptr %341, i64 %344
  %346 = load i8, ptr %345, align 1, !tbaa !16
  %347 = zext i8 %346 to i32
  %348 = load ptr, ptr %14, align 8, !tbaa !5
  %349 = load i32, ptr %15, align 4, !tbaa !14
  %350 = sext i32 %349 to i64
  %351 = getelementptr inbounds ptr, ptr %348, i64 %350
  %352 = load ptr, ptr %351, align 8, !tbaa !5
  %353 = load i32, ptr %16, align 4, !tbaa !14
  %354 = add nsw i32 %353, 0
  %355 = sext i32 %354 to i64
  %356 = getelementptr inbounds i8, ptr %352, i64 %355
  %357 = load i8, ptr %356, align 1, !tbaa !16
  %358 = zext i8 %357 to i32
  %359 = sub nsw i32 %347, %358
  %360 = icmp slt i32 %359, 255
  br i1 %360, label %361, label %385

361:                                              ; preds = %336
  %362 = load ptr, ptr %13, align 8, !tbaa !5
  %363 = load i32, ptr %15, align 4, !tbaa !14
  %364 = sext i32 %363 to i64
  %365 = getelementptr inbounds ptr, ptr %362, i64 %364
  %366 = load ptr, ptr %365, align 8, !tbaa !5
  %367 = load i32, ptr %16, align 4, !tbaa !14
  %368 = add nsw i32 %367, 0
  %369 = sext i32 %368 to i64
  %370 = getelementptr inbounds i8, ptr %366, i64 %369
  %371 = load i8, ptr %370, align 1, !tbaa !16
  %372 = zext i8 %371 to i32
  %373 = load ptr, ptr %14, align 8, !tbaa !5
  %374 = load i32, ptr %15, align 4, !tbaa !14
  %375 = sext i32 %374 to i64
  %376 = getelementptr inbounds ptr, ptr %373, i64 %375
  %377 = load ptr, ptr %376, align 8, !tbaa !5
  %378 = load i32, ptr %16, align 4, !tbaa !14
  %379 = add nsw i32 %378, 0
  %380 = sext i32 %379 to i64
  %381 = getelementptr inbounds i8, ptr %377, i64 %380
  %382 = load i8, ptr %381, align 1, !tbaa !16
  %383 = zext i8 %382 to i32
  %384 = sub nsw i32 %372, %383
  br label %386

385:                                              ; preds = %336
  br label %386

386:                                              ; preds = %385, %361
  %387 = phi i32 [ %384, %361 ], [ 255, %385 ]
  %388 = trunc i32 %387 to i8
  %389 = load ptr, ptr %6, align 8, !tbaa !5
  %390 = getelementptr inbounds %struct.MImage, ptr %389, i32 0, i32 3
  %391 = load i32, ptr %12, align 4, !tbaa !14
  %392 = sext i32 %391 to i64
  %393 = getelementptr inbounds [4 x ptr], ptr %390, i64 0, i64 %392
  %394 = load ptr, ptr %393, align 8, !tbaa !5
  %395 = load i32, ptr %15, align 4, !tbaa !14
  %396 = sext i32 %395 to i64
  %397 = getelementptr inbounds ptr, ptr %394, i64 %396
  %398 = load ptr, ptr %397, align 8, !tbaa !5
  %399 = load i32, ptr %16, align 4, !tbaa !14
  %400 = add nsw i32 %399, 0
  %401 = sext i32 %400 to i64
  %402 = getelementptr inbounds i8, ptr %398, i64 %401
  store i8 %388, ptr %402, align 1, !tbaa !16
  %403 = load ptr, ptr %13, align 8, !tbaa !5
  %404 = load i32, ptr %15, align 4, !tbaa !14
  %405 = sext i32 %404 to i64
  %406 = getelementptr inbounds ptr, ptr %403, i64 %405
  %407 = load ptr, ptr %406, align 8, !tbaa !5
  %408 = load i32, ptr %16, align 4, !tbaa !14
  %409 = add nsw i32 %408, 1
  %410 = sext i32 %409 to i64
  %411 = getelementptr inbounds i8, ptr %407, i64 %410
  %412 = load i8, ptr %411, align 1, !tbaa !16
  %413 = zext i8 %412 to i32
  %414 = load ptr, ptr %14, align 8, !tbaa !5
  %415 = load i32, ptr %15, align 4, !tbaa !14
  %416 = sext i32 %415 to i64
  %417 = getelementptr inbounds ptr, ptr %414, i64 %416
  %418 = load ptr, ptr %417, align 8, !tbaa !5
  %419 = load i32, ptr %16, align 4, !tbaa !14
  %420 = add nsw i32 %419, 1
  %421 = sext i32 %420 to i64
  %422 = getelementptr inbounds i8, ptr %418, i64 %421
  %423 = load i8, ptr %422, align 1, !tbaa !16
  %424 = zext i8 %423 to i32
  %425 = sub nsw i32 %413, %424
  %426 = icmp slt i32 %425, 255
  br i1 %426, label %427, label %451

427:                                              ; preds = %386
  %428 = load ptr, ptr %13, align 8, !tbaa !5
  %429 = load i32, ptr %15, align 4, !tbaa !14
  %430 = sext i32 %429 to i64
  %431 = getelementptr inbounds ptr, ptr %428, i64 %430
  %432 = load ptr, ptr %431, align 8, !tbaa !5
  %433 = load i32, ptr %16, align 4, !tbaa !14
  %434 = add nsw i32 %433, 1
  %435 = sext i32 %434 to i64
  %436 = getelementptr inbounds i8, ptr %432, i64 %435
  %437 = load i8, ptr %436, align 1, !tbaa !16
  %438 = zext i8 %437 to i32
  %439 = load ptr, ptr %14, align 8, !tbaa !5
  %440 = load i32, ptr %15, align 4, !tbaa !14
  %441 = sext i32 %440 to i64
  %442 = getelementptr inbounds ptr, ptr %439, i64 %441
  %443 = load ptr, ptr %442, align 8, !tbaa !5
  %444 = load i32, ptr %16, align 4, !tbaa !14
  %445 = add nsw i32 %444, 1
  %446 = sext i32 %445 to i64
  %447 = getelementptr inbounds i8, ptr %443, i64 %446
  %448 = load i8, ptr %447, align 1, !tbaa !16
  %449 = zext i8 %448 to i32
  %450 = sub nsw i32 %438, %449
  br label %452

451:                                              ; preds = %386
  br label %452

452:                                              ; preds = %451, %427
  %453 = phi i32 [ %450, %427 ], [ 255, %451 ]
  %454 = trunc i32 %453 to i8
  %455 = load ptr, ptr %6, align 8, !tbaa !5
  %456 = getelementptr inbounds %struct.MImage, ptr %455, i32 0, i32 3
  %457 = load i32, ptr %12, align 4, !tbaa !14
  %458 = sext i32 %457 to i64
  %459 = getelementptr inbounds [4 x ptr], ptr %456, i64 0, i64 %458
  %460 = load ptr, ptr %459, align 8, !tbaa !5
  %461 = load i32, ptr %15, align 4, !tbaa !14
  %462 = sext i32 %461 to i64
  %463 = getelementptr inbounds ptr, ptr %460, i64 %462
  %464 = load ptr, ptr %463, align 8, !tbaa !5
  %465 = load i32, ptr %16, align 4, !tbaa !14
  %466 = add nsw i32 %465, 1
  %467 = sext i32 %466 to i64
  %468 = getelementptr inbounds i8, ptr %464, i64 %467
  store i8 %454, ptr %468, align 1, !tbaa !16
  %469 = load ptr, ptr %13, align 8, !tbaa !5
  %470 = load i32, ptr %15, align 4, !tbaa !14
  %471 = sext i32 %470 to i64
  %472 = getelementptr inbounds ptr, ptr %469, i64 %471
  %473 = load ptr, ptr %472, align 8, !tbaa !5
  %474 = load i32, ptr %16, align 4, !tbaa !14
  %475 = add nsw i32 %474, 2
  %476 = sext i32 %475 to i64
  %477 = getelementptr inbounds i8, ptr %473, i64 %476
  %478 = load i8, ptr %477, align 1, !tbaa !16
  %479 = zext i8 %478 to i32
  %480 = load ptr, ptr %14, align 8, !tbaa !5
  %481 = load i32, ptr %15, align 4, !tbaa !14
  %482 = sext i32 %481 to i64
  %483 = getelementptr inbounds ptr, ptr %480, i64 %482
  %484 = load ptr, ptr %483, align 8, !tbaa !5
  %485 = load i32, ptr %16, align 4, !tbaa !14
  %486 = add nsw i32 %485, 2
  %487 = sext i32 %486 to i64
  %488 = getelementptr inbounds i8, ptr %484, i64 %487
  %489 = load i8, ptr %488, align 1, !tbaa !16
  %490 = zext i8 %489 to i32
  %491 = sub nsw i32 %479, %490
  %492 = icmp slt i32 %491, 255
  br i1 %492, label %493, label %517

493:                                              ; preds = %452
  %494 = load ptr, ptr %13, align 8, !tbaa !5
  %495 = load i32, ptr %15, align 4, !tbaa !14
  %496 = sext i32 %495 to i64
  %497 = getelementptr inbounds ptr, ptr %494, i64 %496
  %498 = load ptr, ptr %497, align 8, !tbaa !5
  %499 = load i32, ptr %16, align 4, !tbaa !14
  %500 = add nsw i32 %499, 2
  %501 = sext i32 %500 to i64
  %502 = getelementptr inbounds i8, ptr %498, i64 %501
  %503 = load i8, ptr %502, align 1, !tbaa !16
  %504 = zext i8 %503 to i32
  %505 = load ptr, ptr %14, align 8, !tbaa !5
  %506 = load i32, ptr %15, align 4, !tbaa !14
  %507 = sext i32 %506 to i64
  %508 = getelementptr inbounds ptr, ptr %505, i64 %507
  %509 = load ptr, ptr %508, align 8, !tbaa !5
  %510 = load i32, ptr %16, align 4, !tbaa !14
  %511 = add nsw i32 %510, 2
  %512 = sext i32 %511 to i64
  %513 = getelementptr inbounds i8, ptr %509, i64 %512
  %514 = load i8, ptr %513, align 1, !tbaa !16
  %515 = zext i8 %514 to i32
  %516 = sub nsw i32 %504, %515
  br label %518

517:                                              ; preds = %452
  br label %518

518:                                              ; preds = %517, %493
  %519 = phi i32 [ %516, %493 ], [ 255, %517 ]
  %520 = trunc i32 %519 to i8
  %521 = load ptr, ptr %6, align 8, !tbaa !5
  %522 = getelementptr inbounds %struct.MImage, ptr %521, i32 0, i32 3
  %523 = load i32, ptr %12, align 4, !tbaa !14
  %524 = sext i32 %523 to i64
  %525 = getelementptr inbounds [4 x ptr], ptr %522, i64 0, i64 %524
  %526 = load ptr, ptr %525, align 8, !tbaa !5
  %527 = load i32, ptr %15, align 4, !tbaa !14
  %528 = sext i32 %527 to i64
  %529 = getelementptr inbounds ptr, ptr %526, i64 %528
  %530 = load ptr, ptr %529, align 8, !tbaa !5
  %531 = load i32, ptr %16, align 4, !tbaa !14
  %532 = add nsw i32 %531, 2
  %533 = sext i32 %532 to i64
  %534 = getelementptr inbounds i8, ptr %530, i64 %533
  store i8 %520, ptr %534, align 1, !tbaa !16
  %535 = load ptr, ptr %13, align 8, !tbaa !5
  %536 = load i32, ptr %15, align 4, !tbaa !14
  %537 = sext i32 %536 to i64
  %538 = getelementptr inbounds ptr, ptr %535, i64 %537
  %539 = load ptr, ptr %538, align 8, !tbaa !5
  %540 = load i32, ptr %16, align 4, !tbaa !14
  %541 = add nsw i32 %540, 3
  %542 = sext i32 %541 to i64
  %543 = getelementptr inbounds i8, ptr %539, i64 %542
  %544 = load i8, ptr %543, align 1, !tbaa !16
  %545 = zext i8 %544 to i32
  %546 = load ptr, ptr %14, align 8, !tbaa !5
  %547 = load i32, ptr %15, align 4, !tbaa !14
  %548 = sext i32 %547 to i64
  %549 = getelementptr inbounds ptr, ptr %546, i64 %548
  %550 = load ptr, ptr %549, align 8, !tbaa !5
  %551 = load i32, ptr %16, align 4, !tbaa !14
  %552 = add nsw i32 %551, 3
  %553 = sext i32 %552 to i64
  %554 = getelementptr inbounds i8, ptr %550, i64 %553
  %555 = load i8, ptr %554, align 1, !tbaa !16
  %556 = zext i8 %555 to i32
  %557 = sub nsw i32 %545, %556
  %558 = icmp slt i32 %557, 255
  br i1 %558, label %559, label %583

559:                                              ; preds = %518
  %560 = load ptr, ptr %13, align 8, !tbaa !5
  %561 = load i32, ptr %15, align 4, !tbaa !14
  %562 = sext i32 %561 to i64
  %563 = getelementptr inbounds ptr, ptr %560, i64 %562
  %564 = load ptr, ptr %563, align 8, !tbaa !5
  %565 = load i32, ptr %16, align 4, !tbaa !14
  %566 = add nsw i32 %565, 3
  %567 = sext i32 %566 to i64
  %568 = getelementptr inbounds i8, ptr %564, i64 %567
  %569 = load i8, ptr %568, align 1, !tbaa !16
  %570 = zext i8 %569 to i32
  %571 = load ptr, ptr %14, align 8, !tbaa !5
  %572 = load i32, ptr %15, align 4, !tbaa !14
  %573 = sext i32 %572 to i64
  %574 = getelementptr inbounds ptr, ptr %571, i64 %573
  %575 = load ptr, ptr %574, align 8, !tbaa !5
  %576 = load i32, ptr %16, align 4, !tbaa !14
  %577 = add nsw i32 %576, 3
  %578 = sext i32 %577 to i64
  %579 = getelementptr inbounds i8, ptr %575, i64 %578
  %580 = load i8, ptr %579, align 1, !tbaa !16
  %581 = zext i8 %580 to i32
  %582 = sub nsw i32 %570, %581
  br label %584

583:                                              ; preds = %518
  br label %584

584:                                              ; preds = %583, %559
  %585 = phi i32 [ %582, %559 ], [ 255, %583 ]
  %586 = trunc i32 %585 to i8
  %587 = load ptr, ptr %6, align 8, !tbaa !5
  %588 = getelementptr inbounds %struct.MImage, ptr %587, i32 0, i32 3
  %589 = load i32, ptr %12, align 4, !tbaa !14
  %590 = sext i32 %589 to i64
  %591 = getelementptr inbounds [4 x ptr], ptr %588, i64 0, i64 %590
  %592 = load ptr, ptr %591, align 8, !tbaa !5
  %593 = load i32, ptr %15, align 4, !tbaa !14
  %594 = sext i32 %593 to i64
  %595 = getelementptr inbounds ptr, ptr %592, i64 %594
  %596 = load ptr, ptr %595, align 8, !tbaa !5
  %597 = load i32, ptr %16, align 4, !tbaa !14
  %598 = add nsw i32 %597, 3
  %599 = sext i32 %598 to i64
  %600 = getelementptr inbounds i8, ptr %596, i64 %599
  store i8 %586, ptr %600, align 1, !tbaa !16
  %601 = load ptr, ptr %13, align 8, !tbaa !5
  %602 = load i32, ptr %15, align 4, !tbaa !14
  %603 = sext i32 %602 to i64
  %604 = getelementptr inbounds ptr, ptr %601, i64 %603
  %605 = load ptr, ptr %604, align 8, !tbaa !5
  %606 = load i32, ptr %16, align 4, !tbaa !14
  %607 = add nsw i32 %606, 4
  %608 = sext i32 %607 to i64
  %609 = getelementptr inbounds i8, ptr %605, i64 %608
  %610 = load i8, ptr %609, align 1, !tbaa !16
  %611 = zext i8 %610 to i32
  %612 = load ptr, ptr %14, align 8, !tbaa !5
  %613 = load i32, ptr %15, align 4, !tbaa !14
  %614 = sext i32 %613 to i64
  %615 = getelementptr inbounds ptr, ptr %612, i64 %614
  %616 = load ptr, ptr %615, align 8, !tbaa !5
  %617 = load i32, ptr %16, align 4, !tbaa !14
  %618 = add nsw i32 %617, 4
  %619 = sext i32 %618 to i64
  %620 = getelementptr inbounds i8, ptr %616, i64 %619
  %621 = load i8, ptr %620, align 1, !tbaa !16
  %622 = zext i8 %621 to i32
  %623 = sub nsw i32 %611, %622
  %624 = icmp slt i32 %623, 255
  br i1 %624, label %625, label %649

625:                                              ; preds = %584
  %626 = load ptr, ptr %13, align 8, !tbaa !5
  %627 = load i32, ptr %15, align 4, !tbaa !14
  %628 = sext i32 %627 to i64
  %629 = getelementptr inbounds ptr, ptr %626, i64 %628
  %630 = load ptr, ptr %629, align 8, !tbaa !5
  %631 = load i32, ptr %16, align 4, !tbaa !14
  %632 = add nsw i32 %631, 4
  %633 = sext i32 %632 to i64
  %634 = getelementptr inbounds i8, ptr %630, i64 %633
  %635 = load i8, ptr %634, align 1, !tbaa !16
  %636 = zext i8 %635 to i32
  %637 = load ptr, ptr %14, align 8, !tbaa !5
  %638 = load i32, ptr %15, align 4, !tbaa !14
  %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 %16, align 4, !tbaa !14
  %643 = add nsw i32 %642, 4
  %644 = sext i32 %643 to i64
  %645 = getelementptr inbounds i8, ptr %641, i64 %644
  %646 = load i8, ptr %645, align 1, !tbaa !16
  %647 = zext i8 %646 to i32
  %648 = sub nsw i32 %636, %647
  br label %650

649:                                              ; preds = %584
  br label %650

650:                                              ; preds = %649, %625
  %651 = phi i32 [ %648, %625 ], [ 255, %649 ]
  %652 = trunc i32 %651 to i8
  %653 = load ptr, ptr %6, align 8, !tbaa !5
  %654 = getelementptr inbounds %struct.MImage, ptr %653, i32 0, i32 3
  %655 = load i32, ptr %12, align 4, !tbaa !14
  %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 %15, align 4, !tbaa !14
  %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 %16, align 4, !tbaa !14
  %664 = add nsw i32 %663, 4
  %665 = sext i32 %664 to i64
  %666 = getelementptr inbounds i8, ptr %662, i64 %665
  store i8 %652, ptr %666, align 1, !tbaa !16
  %667 = load ptr, ptr %13, align 8, !tbaa !5
  %668 = load i32, ptr %15, align 4, !tbaa !14
  %669 = sext i32 %668 to i64
  %670 = getelementptr inbounds ptr, ptr %667, i64 %669
  %671 = load ptr, ptr %670, align 8, !tbaa !5
  %672 = load i32, ptr %16, align 4, !tbaa !14
  %673 = add nsw i32 %672, 5
  %674 = sext i32 %673 to i64
  %675 = getelementptr inbounds i8, ptr %671, i64 %674
  %676 = load i8, ptr %675, align 1, !tbaa !16
  %677 = zext i8 %676 to i32
  %678 = load ptr, ptr %14, align 8, !tbaa !5
  %679 = load i32, ptr %15, align 4, !tbaa !14
  %680 = sext i32 %679 to i64
  %681 = getelementptr inbounds ptr, ptr %678, i64 %680
  %682 = load ptr, ptr %681, align 8, !tbaa !5
  %683 = load i32, ptr %16, align 4, !tbaa !14
  %684 = add nsw i32 %683, 5
  %685 = sext i32 %684 to i64
  %686 = getelementptr inbounds i8, ptr %682, i64 %685
  %687 = load i8, ptr %686, align 1, !tbaa !16
  %688 = zext i8 %687 to i32
  %689 = sub nsw i32 %677, %688
  %690 = icmp slt i32 %689, 255
  br i1 %690, label %691, label %715

691:                                              ; preds = %650
  %692 = load ptr, ptr %13, align 8, !tbaa !5
  %693 = load i32, ptr %15, align 4, !tbaa !14
  %694 = sext i32 %693 to i64
  %695 = getelementptr inbounds ptr, ptr %692, i64 %694
  %696 = load ptr, ptr %695, align 8, !tbaa !5
  %697 = load i32, ptr %16, align 4, !tbaa !14
  %698 = add nsw i32 %697, 5
  %699 = sext i32 %698 to i64
  %700 = getelementptr inbounds i8, ptr %696, i64 %699
  %701 = load i8, ptr %700, align 1, !tbaa !16
  %702 = zext i8 %701 to i32
  %703 = load ptr, ptr %14, align 8, !tbaa !5
  %704 = load i32, ptr %15, align 4, !tbaa !14
  %705 = sext i32 %704 to i64
  %706 = getelementptr inbounds ptr, ptr %703, i64 %705
  %707 = load ptr, ptr %706, align 8, !tbaa !5
  %708 = load i32, ptr %16, align 4, !tbaa !14
  %709 = add nsw i32 %708, 5
  %710 = sext i32 %709 to i64
  %711 = getelementptr inbounds i8, ptr %707, i64 %710
  %712 = load i8, ptr %711, align 1, !tbaa !16
  %713 = zext i8 %712 to i32
  %714 = sub nsw i32 %702, %713
  br label %716

715:                                              ; preds = %650
  br label %716

716:                                              ; preds = %715, %691
  %717 = phi i32 [ %714, %691 ], [ 255, %715 ]
  %718 = trunc i32 %717 to i8
  %719 = load ptr, ptr %6, align 8, !tbaa !5
  %720 = getelementptr inbounds %struct.MImage, ptr %719, i32 0, i32 3
  %721 = load i32, ptr %12, align 4, !tbaa !14
  %722 = sext i32 %721 to i64
  %723 = getelementptr inbounds [4 x ptr], ptr %720, i64 0, i64 %722
  %724 = load ptr, ptr %723, align 8, !tbaa !5
  %725 = load i32, ptr %15, align 4, !tbaa !14
  %726 = sext i32 %725 to i64
  %727 = getelementptr inbounds ptr, ptr %724, i64 %726
  %728 = load ptr, ptr %727, align 8, !tbaa !5
  %729 = load i32, ptr %16, align 4, !tbaa !14
  %730 = add nsw i32 %729, 5
  %731 = sext i32 %730 to i64
  %732 = getelementptr inbounds i8, ptr %728, i64 %731
  store i8 %718, ptr %732, align 1, !tbaa !16
  %733 = load ptr, ptr %13, align 8, !tbaa !5
  %734 = load i32, ptr %15, align 4, !tbaa !14
  %735 = sext i32 %734 to i64
  %736 = getelementptr inbounds ptr, ptr %733, i64 %735
  %737 = load ptr, ptr %736, align 8, !tbaa !5
  %738 = load i32, ptr %16, align 4, !tbaa !14
  %739 = add nsw i32 %738, 6
  %740 = sext i32 %739 to i64
  %741 = getelementptr inbounds i8, ptr %737, i64 %740
  %742 = load i8, ptr %741, align 1, !tbaa !16
  %743 = zext i8 %742 to i32
  %744 = load ptr, ptr %14, align 8, !tbaa !5
  %745 = load i32, ptr %15, align 4, !tbaa !14
  %746 = sext i32 %745 to i64
  %747 = getelementptr inbounds ptr, ptr %744, i64 %746
  %748 = load ptr, ptr %747, align 8, !tbaa !5
  %749 = load i32, ptr %16, align 4, !tbaa !14
  %750 = add nsw i32 %749, 6
  %751 = sext i32 %750 to i64
  %752 = getelementptr inbounds i8, ptr %748, i64 %751
  %753 = load i8, ptr %752, align 1, !tbaa !16
  %754 = zext i8 %753 to i32
  %755 = sub nsw i32 %743, %754
  %756 = icmp slt i32 %755, 255
  br i1 %756, label %757, label %781

757:                                              ; preds = %716
  %758 = load ptr, ptr %13, align 8, !tbaa !5
  %759 = load i32, ptr %15, align 4, !tbaa !14
  %760 = sext i32 %759 to i64
  %761 = getelementptr inbounds ptr, ptr %758, i64 %760
  %762 = load ptr, ptr %761, align 8, !tbaa !5
  %763 = load i32, ptr %16, align 4, !tbaa !14
  %764 = add nsw i32 %763, 6
  %765 = sext i32 %764 to i64
  %766 = getelementptr inbounds i8, ptr %762, i64 %765
  %767 = load i8, ptr %766, align 1, !tbaa !16
  %768 = zext i8 %767 to i32
  %769 = load ptr, ptr %14, align 8, !tbaa !5
  %770 = load i32, ptr %15, align 4, !tbaa !14
  %771 = sext i32 %770 to i64
  %772 = getelementptr inbounds ptr, ptr %769, i64 %771
  %773 = load ptr, ptr %772, align 8, !tbaa !5
  %774 = load i32, ptr %16, align 4, !tbaa !14
  %775 = add nsw i32 %774, 6
  %776 = sext i32 %775 to i64
  %777 = getelementptr inbounds i8, ptr %773, i64 %776
  %778 = load i8, ptr %777, align 1, !tbaa !16
  %779 = zext i8 %778 to i32
  %780 = sub nsw i32 %768, %779
  br label %782

781:                                              ; preds = %716
  br label %782

782:                                              ; preds = %781, %757
  %783 = phi i32 [ %780, %757 ], [ 255, %781 ]
  %784 = trunc i32 %783 to i8
  %785 = load ptr, ptr %6, align 8, !tbaa !5
  %786 = getelementptr inbounds %struct.MImage, ptr %785, i32 0, i32 3
  %787 = load i32, ptr %12, align 4, !tbaa !14
  %788 = sext i32 %787 to i64
  %789 = getelementptr inbounds [4 x ptr], ptr %786, i64 0, i64 %788
  %790 = load ptr, ptr %789, align 8, !tbaa !5
  %791 = load i32, ptr %15, align 4, !tbaa !14
  %792 = sext i32 %791 to i64
  %793 = getelementptr inbounds ptr, ptr %790, i64 %792
  %794 = load ptr, ptr %793, align 8, !tbaa !5
  %795 = load i32, ptr %16, align 4, !tbaa !14
  %796 = add nsw i32 %795, 6
  %797 = sext i32 %796 to i64
  %798 = getelementptr inbounds i8, ptr %794, i64 %797
  store i8 %784, ptr %798, align 1, !tbaa !16
  %799 = load ptr, ptr %13, align 8, !tbaa !5
  %800 = load i32, ptr %15, align 4, !tbaa !14
  %801 = sext i32 %800 to i64
  %802 = getelementptr inbounds ptr, ptr %799, i64 %801
  %803 = load ptr, ptr %802, align 8, !tbaa !5
  %804 = load i32, ptr %16, align 4, !tbaa !14
  %805 = add nsw i32 %804, 7
  %806 = sext i32 %805 to i64
  %807 = getelementptr inbounds i8, ptr %803, i64 %806
  %808 = load i8, ptr %807, align 1, !tbaa !16
  %809 = zext i8 %808 to i32
  %810 = load ptr, ptr %14, align 8, !tbaa !5
  %811 = load i32, ptr %15, align 4, !tbaa !14
  %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 %16, align 4, !tbaa !14
  %816 = add nsw i32 %815, 7
  %817 = sext i32 %816 to i64
  %818 = getelementptr inbounds i8, ptr %814, i64 %817
  %819 = load i8, ptr %818, align 1, !tbaa !16
  %820 = zext i8 %819 to i32
  %821 = sub nsw i32 %809, %820
  %822 = icmp slt i32 %821, 255
  br i1 %822, label %823, label %847

823:                                              ; preds = %782
  %824 = load ptr, ptr %13, align 8, !tbaa !5
  %825 = load i32, ptr %15, align 4, !tbaa !14
  %826 = sext i32 %825 to i64
  %827 = getelementptr inbounds ptr, ptr %824, i64 %826
  %828 = load ptr, ptr %827, align 8, !tbaa !5
  %829 = load i32, ptr %16, align 4, !tbaa !14
  %830 = add nsw i32 %829, 7
  %831 = sext i32 %830 to i64
  %832 = getelementptr inbounds i8, ptr %828, i64 %831
  %833 = load i8, ptr %832, align 1, !tbaa !16
  %834 = zext i8 %833 to i32
  %835 = load ptr, ptr %14, align 8, !tbaa !5
  %836 = load i32, ptr %15, align 4, !tbaa !14
  %837 = sext i32 %836 to i64
  %838 = getelementptr inbounds ptr, ptr %835, i64 %837
  %839 = load ptr, ptr %838, align 8, !tbaa !5
  %840 = load i32, ptr %16, align 4, !tbaa !14
  %841 = add nsw i32 %840, 7
  %842 = sext i32 %841 to i64
  %843 = getelementptr inbounds i8, ptr %839, i64 %842
  %844 = load i8, ptr %843, align 1, !tbaa !16
  %845 = zext i8 %844 to i32
  %846 = sub nsw i32 %834, %845
  br label %848

847:                                              ; preds = %782
  br label %848

848:                                              ; preds = %847, %823
  %849 = phi i32 [ %846, %823 ], [ 255, %847 ]
  %850 = trunc i32 %849 to i8
  %851 = load ptr, ptr %6, align 8, !tbaa !5
  %852 = getelementptr inbounds %struct.MImage, ptr %851, i32 0, i32 3
  %853 = load i32, ptr %12, align 4, !tbaa !14
  %854 = sext i32 %853 to i64
  %855 = getelementptr inbounds [4 x ptr], ptr %852, i64 0, i64 %854
  %856 = load ptr, ptr %855, align 8, !tbaa !5
  %857 = load i32, ptr %15, align 4, !tbaa !14
  %858 = sext i32 %857 to i64
  %859 = getelementptr inbounds ptr, ptr %856, i64 %858
  %860 = load ptr, ptr %859, align 8, !tbaa !5
  %861 = load i32, ptr %16, align 4, !tbaa !14
  %862 = add nsw i32 %861, 7
  %863 = sext i32 %862 to i64
  %864 = getelementptr inbounds i8, ptr %860, i64 %863
  store i8 %850, ptr %864, align 1, !tbaa !16
  %865 = load ptr, ptr %13, align 8, !tbaa !5
  %866 = load i32, ptr %15, align 4, !tbaa !14
  %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 %16, align 4, !tbaa !14
  %871 = add nsw i32 %870, 8
  %872 = sext i32 %871 to i64
  %873 = getelementptr inbounds i8, ptr %869, i64 %872
  %874 = load i8, ptr %873, align 1, !tbaa !16
  %875 = zext i8 %874 to i32
  %876 = load ptr, ptr %14, align 8, !tbaa !5
  %877 = load i32, ptr %15, align 4, !tbaa !14
  %878 = sext i32 %877 to i64
  %879 = getelementptr inbounds ptr, ptr %876, i64 %878
  %880 = load ptr, ptr %879, align 8, !tbaa !5
  %881 = load i32, ptr %16, align 4, !tbaa !14
  %882 = add nsw i32 %881, 8
  %883 = sext i32 %882 to i64
  %884 = getelementptr inbounds i8, ptr %880, i64 %883
  %885 = load i8, ptr %884, align 1, !tbaa !16
  %886 = zext i8 %885 to i32
  %887 = sub nsw i32 %875, %886
  %888 = icmp slt i32 %887, 255
  br i1 %888, label %889, label %913

889:                                              ; preds = %848
  %890 = load ptr, ptr %13, align 8, !tbaa !5
  %891 = load i32, ptr %15, align 4, !tbaa !14
  %892 = sext i32 %891 to i64
  %893 = getelementptr inbounds ptr, ptr %890, i64 %892
  %894 = load ptr, ptr %893, align 8, !tbaa !5
  %895 = load i32, ptr %16, align 4, !tbaa !14
  %896 = add nsw i32 %895, 8
  %897 = sext i32 %896 to i64
  %898 = getelementptr inbounds i8, ptr %894, i64 %897
  %899 = load i8, ptr %898, align 1, !tbaa !16
  %900 = zext i8 %899 to i32
  %901 = load ptr, ptr %14, align 8, !tbaa !5
  %902 = load i32, ptr %15, align 4, !tbaa !14
  %903 = sext i32 %902 to i64
  %904 = getelementptr inbounds ptr, ptr %901, i64 %903
  %905 = load ptr, ptr %904, align 8, !tbaa !5
  %906 = load i32, ptr %16, align 4, !tbaa !14
  %907 = add nsw i32 %906, 8
  %908 = sext i32 %907 to i64
  %909 = getelementptr inbounds i8, ptr %905, i64 %908
  %910 = load i8, ptr %909, align 1, !tbaa !16
  %911 = zext i8 %910 to i32
  %912 = sub nsw i32 %900, %911
  br label %914

913:                                              ; preds = %848
  br label %914

914:                                              ; preds = %913, %889
  %915 = phi i32 [ %912, %889 ], [ 255, %913 ]
  %916 = trunc i32 %915 to i8
  %917 = load ptr, ptr %6, align 8, !tbaa !5
  %918 = getelementptr inbounds %struct.MImage, ptr %917, i32 0, i32 3
  %919 = load i32, ptr %12, align 4, !tbaa !14
  %920 = sext i32 %919 to i64
  %921 = getelementptr inbounds [4 x ptr], ptr %918, i64 0, i64 %920
  %922 = load ptr, ptr %921, align 8, !tbaa !5
  %923 = load i32, ptr %15, align 4, !tbaa !14
  %924 = sext i32 %923 to i64
  %925 = getelementptr inbounds ptr, ptr %922, i64 %924
  %926 = load ptr, ptr %925, align 8, !tbaa !5
  %927 = load i32, ptr %16, align 4, !tbaa !14
  %928 = add nsw i32 %927, 8
  %929 = sext i32 %928 to i64
  %930 = getelementptr inbounds i8, ptr %926, i64 %929
  store i8 %916, ptr %930, align 1, !tbaa !16
  %931 = load ptr, ptr %13, align 8, !tbaa !5
  %932 = load i32, ptr %15, align 4, !tbaa !14
  %933 = sext i32 %932 to i64
  %934 = getelementptr inbounds ptr, ptr %931, i64 %933
  %935 = load ptr, ptr %934, align 8, !tbaa !5
  %936 = load i32, ptr %16, align 4, !tbaa !14
  %937 = add nsw i32 %936, 9
  %938 = sext i32 %937 to i64
  %939 = getelementptr inbounds i8, ptr %935, i64 %938
  %940 = load i8, ptr %939, align 1, !tbaa !16
  %941 = zext i8 %940 to i32
  %942 = load ptr, ptr %14, align 8, !tbaa !5
  %943 = load i32, ptr %15, align 4, !tbaa !14
  %944 = sext i32 %943 to i64
  %945 = getelementptr inbounds ptr, ptr %942, i64 %944
  %946 = load ptr, ptr %945, align 8, !tbaa !5
  %947 = load i32, ptr %16, align 4, !tbaa !14
  %948 = add nsw i32 %947, 9
  %949 = sext i32 %948 to i64
  %950 = getelementptr inbounds i8, ptr %946, i64 %949
  %951 = load i8, ptr %950, align 1, !tbaa !16
  %952 = zext i8 %951 to i32
  %953 = sub nsw i32 %941, %952
  %954 = icmp slt i32 %953, 255
  br i1 %954, label %955, label %979

955:                                              ; preds = %914
  %956 = load ptr, ptr %13, align 8, !tbaa !5
  %957 = load i32, ptr %15, align 4, !tbaa !14
  %958 = sext i32 %957 to i64
  %959 = getelementptr inbounds ptr, ptr %956, i64 %958
  %960 = load ptr, ptr %959, align 8, !tbaa !5
  %961 = load i32, ptr %16, align 4, !tbaa !14
  %962 = add nsw i32 %961, 9
  %963 = sext i32 %962 to i64
  %964 = getelementptr inbounds i8, ptr %960, i64 %963
  %965 = load i8, ptr %964, align 1, !tbaa !16
  %966 = zext i8 %965 to i32
  %967 = load ptr, ptr %14, align 8, !tbaa !5
  %968 = load i32, ptr %15, align 4, !tbaa !14
  %969 = sext i32 %968 to i64
  %970 = getelementptr inbounds ptr, ptr %967, i64 %969
  %971 = load ptr, ptr %970, align 8, !tbaa !5
  %972 = load i32, ptr %16, align 4, !tbaa !14
  %973 = add nsw i32 %972, 9
  %974 = sext i32 %973 to i64
  %975 = getelementptr inbounds i8, ptr %971, i64 %974
  %976 = load i8, ptr %975, align 1, !tbaa !16
  %977 = zext i8 %976 to i32
  %978 = sub nsw i32 %966, %977
  br label %980

979:                                              ; preds = %914
  br label %980

980:                                              ; preds = %979, %955
  %981 = phi i32 [ %978, %955 ], [ 255, %979 ]
  %982 = trunc i32 %981 to i8
  %983 = load ptr, ptr %6, align 8, !tbaa !5
  %984 = getelementptr inbounds %struct.MImage, ptr %983, i32 0, i32 3
  %985 = load i32, ptr %12, align 4, !tbaa !14
  %986 = sext i32 %985 to i64
  %987 = getelementptr inbounds [4 x ptr], ptr %984, i64 0, i64 %986
  %988 = load ptr, ptr %987, align 8, !tbaa !5
  %989 = load i32, ptr %15, align 4, !tbaa !14
  %990 = sext i32 %989 to i64
  %991 = getelementptr inbounds ptr, ptr %988, i64 %990
  %992 = load ptr, ptr %991, align 8, !tbaa !5
  %993 = load i32, ptr %16, align 4, !tbaa !14
  %994 = add nsw i32 %993, 9
  %995 = sext i32 %994 to i64
  %996 = getelementptr inbounds i8, ptr %992, i64 %995
  store i8 %982, ptr %996, align 1, !tbaa !16
  %997 = load ptr, ptr %13, align 8, !tbaa !5
  %998 = load i32, ptr %15, align 4, !tbaa !14
  %999 = sext i32 %998 to i64
  %1000 = getelementptr inbounds ptr, ptr %997, i64 %999
  %1001 = load ptr, ptr %1000, align 8, !tbaa !5
  %1002 = load i32, ptr %16, align 4, !tbaa !14
  %1003 = add nsw i32 %1002, 10
  %1004 = sext i32 %1003 to i64
  %1005 = getelementptr inbounds i8, ptr %1001, i64 %1004
  %1006 = load i8, ptr %1005, align 1, !tbaa !16
  %1007 = zext i8 %1006 to i32
  %1008 = load ptr, ptr %14, align 8, !tbaa !5
  %1009 = load i32, ptr %15, align 4, !tbaa !14
  %1010 = sext i32 %1009 to i64
  %1011 = getelementptr inbounds ptr, ptr %1008, i64 %1010
  %1012 = load ptr, ptr %1011, align 8, !tbaa !5
  %1013 = load i32, ptr %16, align 4, !tbaa !14
  %1014 = add nsw i32 %1013, 10
  %1015 = sext i32 %1014 to i64
  %1016 = getelementptr inbounds i8, ptr %1012, i64 %1015
  %1017 = load i8, ptr %1016, align 1, !tbaa !16
  %1018 = zext i8 %1017 to i32
  %1019 = sub nsw i32 %1007, %1018
  %1020 = icmp slt i32 %1019, 255
  br i1 %1020, label %1021, label %1045

1021:                                             ; preds = %980
  %1022 = load ptr, ptr %13, align 8, !tbaa !5
  %1023 = load i32, ptr %15, align 4, !tbaa !14
  %1024 = sext i32 %1023 to i64
  %1025 = getelementptr inbounds ptr, ptr %1022, i64 %1024
  %1026 = load ptr, ptr %1025, align 8, !tbaa !5
  %1027 = load i32, ptr %16, align 4, !tbaa !14
  %1028 = add nsw i32 %1027, 10
  %1029 = sext i32 %1028 to i64
  %1030 = getelementptr inbounds i8, ptr %1026, i64 %1029
  %1031 = load i8, ptr %1030, align 1, !tbaa !16
  %1032 = zext i8 %1031 to i32
  %1033 = load ptr, ptr %14, align 8, !tbaa !5
  %1034 = load i32, ptr %15, align 4, !tbaa !14
  %1035 = sext i32 %1034 to i64
  %1036 = getelementptr inbounds ptr, ptr %1033, i64 %1035
  %1037 = load ptr, ptr %1036, align 8, !tbaa !5
  %1038 = load i32, ptr %16, align 4, !tbaa !14
  %1039 = add nsw i32 %1038, 10
  %1040 = sext i32 %1039 to i64
  %1041 = getelementptr inbounds i8, ptr %1037, i64 %1040
  %1042 = load i8, ptr %1041, align 1, !tbaa !16
  %1043 = zext i8 %1042 to i32
  %1044 = sub nsw i32 %1032, %1043
  br label %1046

1045:                                             ; preds = %980
  br label %1046

1046:                                             ; preds = %1045, %1021
  %1047 = phi i32 [ %1044, %1021 ], [ 255, %1045 ]
  %1048 = trunc i32 %1047 to i8
  %1049 = load ptr, ptr %6, align 8, !tbaa !5
  %1050 = getelementptr inbounds %struct.MImage, ptr %1049, i32 0, i32 3
  %1051 = load i32, ptr %12, align 4, !tbaa !14
  %1052 = sext i32 %1051 to i64
  %1053 = getelementptr inbounds [4 x ptr], ptr %1050, i64 0, i64 %1052
  %1054 = load ptr, ptr %1053, align 8, !tbaa !5
  %1055 = load i32, ptr %15, align 4, !tbaa !14
  %1056 = sext i32 %1055 to i64
  %1057 = getelementptr inbounds ptr, ptr %1054, i64 %1056
  %1058 = load ptr, ptr %1057, align 8, !tbaa !5
  %1059 = load i32, ptr %16, align 4, !tbaa !14
  %1060 = add nsw i32 %1059, 10
  %1061 = sext i32 %1060 to i64
  %1062 = getelementptr inbounds i8, ptr %1058, i64 %1061
  store i8 %1048, ptr %1062, align 1, !tbaa !16
  %1063 = load ptr, ptr %13, align 8, !tbaa !5
  %1064 = load i32, ptr %15, align 4, !tbaa !14
  %1065 = sext i32 %1064 to i64
  %1066 = getelementptr inbounds ptr, ptr %1063, i64 %1065
  %1067 = load ptr, ptr %1066, align 8, !tbaa !5
  %1068 = load i32, ptr %16, align 4, !tbaa !14
  %1069 = add nsw i32 %1068, 11
  %1070 = sext i32 %1069 to i64
  %1071 = getelementptr inbounds i8, ptr %1067, i64 %1070
  %1072 = load i8, ptr %1071, align 1, !tbaa !16
  %1073 = zext i8 %1072 to i32
  %1074 = load ptr, ptr %14, align 8, !tbaa !5
  %1075 = load i32, ptr %15, align 4, !tbaa !14
  %1076 = sext i32 %1075 to i64
  %1077 = getelementptr inbounds ptr, ptr %1074, i64 %1076
  %1078 = load ptr, ptr %1077, align 8, !tbaa !5
  %1079 = load i32, ptr %16, align 4, !tbaa !14
  %1080 = add nsw i32 %1079, 11
  %1081 = sext i32 %1080 to i64
  %1082 = getelementptr inbounds i8, ptr %1078, i64 %1081
  %1083 = load i8, ptr %1082, align 1, !tbaa !16
  %1084 = zext i8 %1083 to i32
  %1085 = sub nsw i32 %1073, %1084
  %1086 = icmp slt i32 %1085, 255
  br i1 %1086, label %1087, label %1111

1087:                                             ; preds = %1046
  %1088 = load ptr, ptr %13, align 8, !tbaa !5
  %1089 = load i32, ptr %15, align 4, !tbaa !14
  %1090 = sext i32 %1089 to i64
  %1091 = getelementptr inbounds ptr, ptr %1088, i64 %1090
  %1092 = load ptr, ptr %1091, align 8, !tbaa !5
  %1093 = load i32, ptr %16, align 4, !tbaa !14
  %1094 = add nsw i32 %1093, 11
  %1095 = sext i32 %1094 to i64
  %1096 = getelementptr inbounds i8, ptr %1092, i64 %1095
  %1097 = load i8, ptr %1096, align 1, !tbaa !16
  %1098 = zext i8 %1097 to i32
  %1099 = load ptr, ptr %14, align 8, !tbaa !5
  %1100 = load i32, ptr %15, align 4, !tbaa !14
  %1101 = sext i32 %1100 to i64
  %1102 = getelementptr inbounds ptr, ptr %1099, i64 %1101
  %1103 = load ptr, ptr %1102, align 8, !tbaa !5
  %1104 = load i32, ptr %16, align 4, !tbaa !14
  %1105 = add nsw i32 %1104, 11
  %1106 = sext i32 %1105 to i64
  %1107 = getelementptr inbounds i8, ptr %1103, i64 %1106
  %1108 = load i8, ptr %1107, align 1, !tbaa !16
  %1109 = zext i8 %1108 to i32
  %1110 = sub nsw i32 %1098, %1109
  br label %1112

1111:                                             ; preds = %1046
  br label %1112

1112:                                             ; preds = %1111, %1087
  %1113 = phi i32 [ %1110, %1087 ], [ 255, %1111 ]
  %1114 = trunc i32 %1113 to i8
  %1115 = load ptr, ptr %6, align 8, !tbaa !5
  %1116 = getelementptr inbounds %struct.MImage, ptr %1115, i32 0, i32 3
  %1117 = load i32, ptr %12, align 4, !tbaa !14
  %1118 = sext i32 %1117 to i64
  %1119 = getelementptr inbounds [4 x ptr], ptr %1116, i64 0, i64 %1118
  %1120 = load ptr, ptr %1119, align 8, !tbaa !5
  %1121 = load i32, ptr %15, align 4, !tbaa !14
  %1122 = sext i32 %1121 to i64
  %1123 = getelementptr inbounds ptr, ptr %1120, i64 %1122
  %1124 = load ptr, ptr %1123, align 8, !tbaa !5
  %1125 = load i32, ptr %16, align 4, !tbaa !14
  %1126 = add nsw i32 %1125, 11
  %1127 = sext i32 %1126 to i64
  %1128 = getelementptr inbounds i8, ptr %1124, i64 %1127
  store i8 %1114, ptr %1128, align 1, !tbaa !16
  %1129 = load ptr, ptr %13, align 8, !tbaa !5
  %1130 = load i32, ptr %15, align 4, !tbaa !14
  %1131 = sext i32 %1130 to i64
  %1132 = getelementptr inbounds ptr, ptr %1129, i64 %1131
  %1133 = load ptr, ptr %1132, align 8, !tbaa !5
  %1134 = load i32, ptr %16, align 4, !tbaa !14
  %1135 = add nsw i32 %1134, 12
  %1136 = sext i32 %1135 to i64
  %1137 = getelementptr inbounds i8, ptr %1133, i64 %1136
  %1138 = load i8, ptr %1137, align 1, !tbaa !16
  %1139 = zext i8 %1138 to i32
  %1140 = load ptr, ptr %14, align 8, !tbaa !5
  %1141 = load i32, ptr %15, align 4, !tbaa !14
  %1142 = sext i32 %1141 to i64
  %1143 = getelementptr inbounds ptr, ptr %1140, i64 %1142
  %1144 = load ptr, ptr %1143, align 8, !tbaa !5
  %1145 = load i32, ptr %16, align 4, !tbaa !14
  %1146 = add nsw i32 %1145, 12
  %1147 = sext i32 %1146 to i64
  %1148 = getelementptr inbounds i8, ptr %1144, i64 %1147
  %1149 = load i8, ptr %1148, align 1, !tbaa !16
  %1150 = zext i8 %1149 to i32
  %1151 = sub nsw i32 %1139, %1150
  %1152 = icmp slt i32 %1151, 255
  br i1 %1152, label %1153, label %1177

1153:                                             ; preds = %1112
  %1154 = load ptr, ptr %13, align 8, !tbaa !5
  %1155 = load i32, ptr %15, align 4, !tbaa !14
  %1156 = sext i32 %1155 to i64
  %1157 = getelementptr inbounds ptr, ptr %1154, i64 %1156
  %1158 = load ptr, ptr %1157, align 8, !tbaa !5
  %1159 = load i32, ptr %16, align 4, !tbaa !14
  %1160 = add nsw i32 %1159, 12
  %1161 = sext i32 %1160 to i64
  %1162 = getelementptr inbounds i8, ptr %1158, i64 %1161
  %1163 = load i8, ptr %1162, align 1, !tbaa !16
  %1164 = zext i8 %1163 to i32
  %1165 = load ptr, ptr %14, align 8, !tbaa !5
  %1166 = load i32, ptr %15, align 4, !tbaa !14
  %1167 = sext i32 %1166 to i64
  %1168 = getelementptr inbounds ptr, ptr %1165, i64 %1167
  %1169 = load ptr, ptr %1168, align 8, !tbaa !5
  %1170 = load i32, ptr %16, align 4, !tbaa !14
  %1171 = add nsw i32 %1170, 12
  %1172 = sext i32 %1171 to i64
  %1173 = getelementptr inbounds i8, ptr %1169, i64 %1172
  %1174 = load i8, ptr %1173, align 1, !tbaa !16
  %1175 = zext i8 %1174 to i32
  %1176 = sub nsw i32 %1164, %1175
  br label %1178

1177:                                             ; preds = %1112
  br label %1178

1178:                                             ; preds = %1177, %1153
  %1179 = phi i32 [ %1176, %1153 ], [ 255, %1177 ]
  %1180 = trunc i32 %1179 to i8
  %1181 = load ptr, ptr %6, align 8, !tbaa !5
  %1182 = getelementptr inbounds %struct.MImage, ptr %1181, i32 0, i32 3
  %1183 = load i32, ptr %12, align 4, !tbaa !14
  %1184 = sext i32 %1183 to i64
  %1185 = getelementptr inbounds [4 x ptr], ptr %1182, i64 0, i64 %1184
  %1186 = load ptr, ptr %1185, align 8, !tbaa !5
  %1187 = load i32, ptr %15, align 4, !tbaa !14
  %1188 = sext i32 %1187 to i64
  %1189 = getelementptr inbounds ptr, ptr %1186, i64 %1188
  %1190 = load ptr, ptr %1189, align 8, !tbaa !5
  %1191 = load i32, ptr %16, align 4, !tbaa !14
  %1192 = add nsw i32 %1191, 12
  %1193 = sext i32 %1192 to i64
  %1194 = getelementptr inbounds i8, ptr %1190, i64 %1193
  store i8 %1180, ptr %1194, align 1, !tbaa !16
  %1195 = load ptr, ptr %13, align 8, !tbaa !5
  %1196 = load i32, ptr %15, align 4, !tbaa !14
  %1197 = sext i32 %1196 to i64
  %1198 = getelementptr inbounds ptr, ptr %1195, i64 %1197
  %1199 = load ptr, ptr %1198, align 8, !tbaa !5
  %1200 = load i32, ptr %16, align 4, !tbaa !14
  %1201 = add nsw i32 %1200, 13
  %1202 = sext i32 %1201 to i64
  %1203 = getelementptr inbounds i8, ptr %1199, i64 %1202
  %1204 = load i8, ptr %1203, align 1, !tbaa !16
  %1205 = zext i8 %1204 to i32
  %1206 = load ptr, ptr %14, align 8, !tbaa !5
  %1207 = load i32, ptr %15, align 4, !tbaa !14
  %1208 = sext i32 %1207 to i64
  %1209 = getelementptr inbounds ptr, ptr %1206, i64 %1208
  %1210 = load ptr, ptr %1209, align 8, !tbaa !5
  %1211 = load i32, ptr %16, align 4, !tbaa !14
  %1212 = add nsw i32 %1211, 13
  %1213 = sext i32 %1212 to i64
  %1214 = getelementptr inbounds i8, ptr %1210, i64 %1213
  %1215 = load i8, ptr %1214, align 1, !tbaa !16
  %1216 = zext i8 %1215 to i32
  %1217 = sub nsw i32 %1205, %1216
  %1218 = icmp slt i32 %1217, 255
  br i1 %1218, label %1219, label %1243

1219:                                             ; preds = %1178
  %1220 = load ptr, ptr %13, align 8, !tbaa !5
  %1221 = load i32, ptr %15, align 4, !tbaa !14
  %1222 = sext i32 %1221 to i64
  %1223 = getelementptr inbounds ptr, ptr %1220, i64 %1222
  %1224 = load ptr, ptr %1223, align 8, !tbaa !5
  %1225 = load i32, ptr %16, align 4, !tbaa !14
  %1226 = add nsw i32 %1225, 13
  %1227 = sext i32 %1226 to i64
  %1228 = getelementptr inbounds i8, ptr %1224, i64 %1227
  %1229 = load i8, ptr %1228, align 1, !tbaa !16
  %1230 = zext i8 %1229 to i32
  %1231 = load ptr, ptr %14, align 8, !tbaa !5
  %1232 = load i32, ptr %15, align 4, !tbaa !14
  %1233 = sext i32 %1232 to i64
  %1234 = getelementptr inbounds ptr, ptr %1231, i64 %1233
  %1235 = load ptr, ptr %1234, align 8, !tbaa !5
  %1236 = load i32, ptr %16, align 4, !tbaa !14
  %1237 = add nsw i32 %1236, 13
  %1238 = sext i32 %1237 to i64
  %1239 = getelementptr inbounds i8, ptr %1235, i64 %1238
  %1240 = load i8, ptr %1239, align 1, !tbaa !16
  %1241 = zext i8 %1240 to i32
  %1242 = sub nsw i32 %1230, %1241
  br label %1244

1243:                                             ; preds = %1178
  br label %1244

1244:                                             ; preds = %1243, %1219
  %1245 = phi i32 [ %1242, %1219 ], [ 255, %1243 ]
  %1246 = trunc i32 %1245 to i8
  %1247 = load ptr, ptr %6, align 8, !tbaa !5
  %1248 = getelementptr inbounds %struct.MImage, ptr %1247, i32 0, i32 3
  %1249 = load i32, ptr %12, align 4, !tbaa !14
  %1250 = sext i32 %1249 to i64
  %1251 = getelementptr inbounds [4 x ptr], ptr %1248, i64 0, i64 %1250
  %1252 = load ptr, ptr %1251, align 8, !tbaa !5
  %1253 = load i32, ptr %15, align 4, !tbaa !14
  %1254 = sext i32 %1253 to i64
  %1255 = getelementptr inbounds ptr, ptr %1252, i64 %1254
  %1256 = load ptr, ptr %1255, align 8, !tbaa !5
  %1257 = load i32, ptr %16, align 4, !tbaa !14
  %1258 = add nsw i32 %1257, 13
  %1259 = sext i32 %1258 to i64
  %1260 = getelementptr inbounds i8, ptr %1256, i64 %1259
  store i8 %1246, ptr %1260, align 1, !tbaa !16
  %1261 = load ptr, ptr %13, align 8, !tbaa !5
  %1262 = load i32, ptr %15, align 4, !tbaa !14
  %1263 = sext i32 %1262 to i64
  %1264 = getelementptr inbounds ptr, ptr %1261, i64 %1263
  %1265 = load ptr, ptr %1264, align 8, !tbaa !5
  %1266 = load i32, ptr %16, align 4, !tbaa !14
  %1267 = add nsw i32 %1266, 14
  %1268 = sext i32 %1267 to i64
  %1269 = getelementptr inbounds i8, ptr %1265, i64 %1268
  %1270 = load i8, ptr %1269, align 1, !tbaa !16
  %1271 = zext i8 %1270 to i32
  %1272 = load ptr, ptr %14, align 8, !tbaa !5
  %1273 = load i32, ptr %15, align 4, !tbaa !14
  %1274 = sext i32 %1273 to i64
  %1275 = getelementptr inbounds ptr, ptr %1272, i64 %1274
  %1276 = load ptr, ptr %1275, align 8, !tbaa !5
  %1277 = load i32, ptr %16, align 4, !tbaa !14
  %1278 = add nsw i32 %1277, 14
  %1279 = sext i32 %1278 to i64
  %1280 = getelementptr inbounds i8, ptr %1276, i64 %1279
  %1281 = load i8, ptr %1280, align 1, !tbaa !16
  %1282 = zext i8 %1281 to i32
  %1283 = sub nsw i32 %1271, %1282
  %1284 = icmp slt i32 %1283, 255
  br i1 %1284, label %1285, label %1309

1285:                                             ; preds = %1244
  %1286 = load ptr, ptr %13, align 8, !tbaa !5
  %1287 = load i32, ptr %15, align 4, !tbaa !14
  %1288 = sext i32 %1287 to i64
  %1289 = getelementptr inbounds ptr, ptr %1286, i64 %1288
  %1290 = load ptr, ptr %1289, align 8, !tbaa !5
  %1291 = load i32, ptr %16, align 4, !tbaa !14
  %1292 = add nsw i32 %1291, 14
  %1293 = sext i32 %1292 to i64
  %1294 = getelementptr inbounds i8, ptr %1290, i64 %1293
  %1295 = load i8, ptr %1294, align 1, !tbaa !16
  %1296 = zext i8 %1295 to i32
  %1297 = load ptr, ptr %14, align 8, !tbaa !5
  %1298 = load i32, ptr %15, align 4, !tbaa !14
  %1299 = sext i32 %1298 to i64
  %1300 = getelementptr inbounds ptr, ptr %1297, i64 %1299
  %1301 = load ptr, ptr %1300, align 8, !tbaa !5
  %1302 = load i32, ptr %16, align 4, !tbaa !14
  %1303 = add nsw i32 %1302, 14
  %1304 = sext i32 %1303 to i64
  %1305 = getelementptr inbounds i8, ptr %1301, i64 %1304
  %1306 = load i8, ptr %1305, align 1, !tbaa !16
  %1307 = zext i8 %1306 to i32
  %1308 = sub nsw i32 %1296, %1307
  br label %1310

1309:                                             ; preds = %1244
  br label %1310

1310:                                             ; preds = %1309, %1285
  %1311 = phi i32 [ %1308, %1285 ], [ 255, %1309 ]
  %1312 = trunc i32 %1311 to i8
  %1313 = load ptr, ptr %6, align 8, !tbaa !5
  %1314 = getelementptr inbounds %struct.MImage, ptr %1313, i32 0, i32 3
  %1315 = load i32, ptr %12, align 4, !tbaa !14
  %1316 = sext i32 %1315 to i64
  %1317 = getelementptr inbounds [4 x ptr], ptr %1314, i64 0, i64 %1316
  %1318 = load ptr, ptr %1317, align 8, !tbaa !5
  %1319 = load i32, ptr %15, align 4, !tbaa !14
  %1320 = sext i32 %1319 to i64
  %1321 = getelementptr inbounds ptr, ptr %1318, i64 %1320
  %1322 = load ptr, ptr %1321, align 8, !tbaa !5
  %1323 = load i32, ptr %16, align 4, !tbaa !14
  %1324 = add nsw i32 %1323, 14
  %1325 = sext i32 %1324 to i64
  %1326 = getelementptr inbounds i8, ptr %1322, i64 %1325
  store i8 %1312, ptr %1326, align 1, !tbaa !16
  %1327 = load ptr, ptr %13, align 8, !tbaa !5
  %1328 = load i32, ptr %15, align 4, !tbaa !14
  %1329 = sext i32 %1328 to i64
  %1330 = getelementptr inbounds ptr, ptr %1327, i64 %1329
  %1331 = load ptr, ptr %1330, align 8, !tbaa !5
  %1332 = load i32, ptr %16, align 4, !tbaa !14
  %1333 = add nsw i32 %1332, 15
  %1334 = sext i32 %1333 to i64
  %1335 = getelementptr inbounds i8, ptr %1331, i64 %1334
  %1336 = load i8, ptr %1335, align 1, !tbaa !16
  %1337 = zext i8 %1336 to i32
  %1338 = load ptr, ptr %14, align 8, !tbaa !5
  %1339 = load i32, ptr %15, align 4, !tbaa !14
  %1340 = sext i32 %1339 to i64
  %1341 = getelementptr inbounds ptr, ptr %1338, i64 %1340
  %1342 = load ptr, ptr %1341, align 8, !tbaa !5
  %1343 = load i32, ptr %16, align 4, !tbaa !14
  %1344 = add nsw i32 %1343, 15
  %1345 = sext i32 %1344 to i64
  %1346 = getelementptr inbounds i8, ptr %1342, i64 %1345
  %1347 = load i8, ptr %1346, align 1, !tbaa !16
  %1348 = zext i8 %1347 to i32
  %1349 = sub nsw i32 %1337, %1348
  %1350 = icmp slt i32 %1349, 255
  br i1 %1350, label %1351, label %1375

1351:                                             ; preds = %1310
  %1352 = load ptr, ptr %13, align 8, !tbaa !5
  %1353 = load i32, ptr %15, align 4, !tbaa !14
  %1354 = sext i32 %1353 to i64
  %1355 = getelementptr inbounds ptr, ptr %1352, i64 %1354
  %1356 = load ptr, ptr %1355, align 8, !tbaa !5
  %1357 = load i32, ptr %16, align 4, !tbaa !14
  %1358 = add nsw i32 %1357, 15
  %1359 = sext i32 %1358 to i64
  %1360 = getelementptr inbounds i8, ptr %1356, i64 %1359
  %1361 = load i8, ptr %1360, align 1, !tbaa !16
  %1362 = zext i8 %1361 to i32
  %1363 = load ptr, ptr %14, align 8, !tbaa !5
  %1364 = load i32, ptr %15, align 4, !tbaa !14
  %1365 = sext i32 %1364 to i64
  %1366 = getelementptr inbounds ptr, ptr %1363, i64 %1365
  %1367 = load ptr, ptr %1366, align 8, !tbaa !5
  %1368 = load i32, ptr %16, align 4, !tbaa !14
  %1369 = add nsw i32 %1368, 15
  %1370 = sext i32 %1369 to i64
  %1371 = getelementptr inbounds i8, ptr %1367, i64 %1370
  %1372 = load i8, ptr %1371, align 1, !tbaa !16
  %1373 = zext i8 %1372 to i32
  %1374 = sub nsw i32 %1362, %1373
  br label %1376

1375:                                             ; preds = %1310
  br label %1376

1376:                                             ; preds = %1375, %1351
  %1377 = phi i32 [ %1374, %1351 ], [ 255, %1375 ]
  %1378 = trunc i32 %1377 to i8
  %1379 = load ptr, ptr %6, align 8, !tbaa !5
  %1380 = getelementptr inbounds %struct.MImage, ptr %1379, i32 0, i32 3
  %1381 = load i32, ptr %12, align 4, !tbaa !14
  %1382 = sext i32 %1381 to i64
  %1383 = getelementptr inbounds [4 x ptr], ptr %1380, i64 0, i64 %1382
  %1384 = load ptr, ptr %1383, align 8, !tbaa !5
  %1385 = load i32, ptr %15, align 4, !tbaa !14
  %1386 = sext i32 %1385 to i64
  %1387 = getelementptr inbounds ptr, ptr %1384, i64 %1386
  %1388 = load ptr, ptr %1387, align 8, !tbaa !5
  %1389 = load i32, ptr %16, align 4, !tbaa !14
  %1390 = add nsw i32 %1389, 15
  %1391 = sext i32 %1390 to i64
  %1392 = getelementptr inbounds i8, ptr %1388, i64 %1391
  store i8 %1378, ptr %1392, align 1, !tbaa !16
  br label %1393

1393:                                             ; preds = %1376
  %1394 = load i32, ptr %16, align 4, !tbaa !14
  %1395 = add nsw i32 %1394, 16
  store i32 %1395, ptr %16, align 4, !tbaa !14
  br label %329, !llvm.loop !19

1396:                                             ; preds = %329
  %1397 = load ptr, ptr %6, align 8, !tbaa !5
  %1398 = getelementptr inbounds %struct.MImage, ptr %1397, i32 0, i32 2
  %1399 = load i32, ptr %1398, align 8, !tbaa !13
  %1400 = load i32, ptr %16, align 4, !tbaa !14
  %1401 = sub nsw i32 %1399, %1400
  %1402 = icmp eq i32 %1401, 0
  br i1 %1402, label %1403, label %1404

1403:                                             ; preds = %1396
  br label %9459

1404:                                             ; preds = %1396
  %1405 = load ptr, ptr %6, align 8, !tbaa !5
  %1406 = getelementptr inbounds %struct.MImage, ptr %1405, i32 0, i32 2
  %1407 = load i32, ptr %1406, align 8, !tbaa !13
  %1408 = load i32, ptr %16, align 4, !tbaa !14
  %1409 = sub nsw i32 %1407, %1408
  %1410 = icmp eq i32 %1409, 1
  br i1 %1410, label %1411, label %1478

1411:                                             ; preds = %1404
  %1412 = load ptr, ptr %13, align 8, !tbaa !5
  %1413 = load i32, ptr %15, align 4, !tbaa !14
  %1414 = sext i32 %1413 to i64
  %1415 = getelementptr inbounds ptr, ptr %1412, i64 %1414
  %1416 = load ptr, ptr %1415, align 8, !tbaa !5
  %1417 = load i32, ptr %16, align 4, !tbaa !14
  %1418 = add nsw i32 %1417, 0
  %1419 = sext i32 %1418 to i64
  %1420 = getelementptr inbounds i8, ptr %1416, i64 %1419
  %1421 = load i8, ptr %1420, align 1, !tbaa !16
  %1422 = zext i8 %1421 to i32
  %1423 = load ptr, ptr %14, align 8, !tbaa !5
  %1424 = load i32, ptr %15, align 4, !tbaa !14
  %1425 = sext i32 %1424 to i64
  %1426 = getelementptr inbounds ptr, ptr %1423, i64 %1425
  %1427 = load ptr, ptr %1426, align 8, !tbaa !5
  %1428 = load i32, ptr %16, align 4, !tbaa !14
  %1429 = add nsw i32 %1428, 0
  %1430 = sext i32 %1429 to i64
  %1431 = getelementptr inbounds i8, ptr %1427, i64 %1430
  %1432 = load i8, ptr %1431, align 1, !tbaa !16
  %1433 = zext i8 %1432 to i32
  %1434 = sub nsw i32 %1422, %1433
  %1435 = icmp slt i32 %1434, 255
  br i1 %1435, label %1436, label %1460

1436:                                             ; preds = %1411
  %1437 = load ptr, ptr %13, align 8, !tbaa !5
  %1438 = load i32, ptr %15, align 4, !tbaa !14
  %1439 = sext i32 %1438 to i64
  %1440 = getelementptr inbounds ptr, ptr %1437, i64 %1439
  %1441 = load ptr, ptr %1440, align 8, !tbaa !5
  %1442 = load i32, ptr %16, align 4, !tbaa !14
  %1443 = add nsw i32 %1442, 0
  %1444 = sext i32 %1443 to i64
  %1445 = getelementptr inbounds i8, ptr %1441, i64 %1444
  %1446 = load i8, ptr %1445, align 1, !tbaa !16
  %1447 = zext i8 %1446 to i32
  %1448 = load ptr, ptr %14, align 8, !tbaa !5
  %1449 = load i32, ptr %15, align 4, !tbaa !14
  %1450 = sext i32 %1449 to i64
  %1451 = getelementptr inbounds ptr, ptr %1448, i64 %1450
  %1452 = load ptr, ptr %1451, align 8, !tbaa !5
  %1453 = load i32, ptr %16, align 4, !tbaa !14
  %1454 = add nsw i32 %1453, 0
  %1455 = sext i32 %1454 to i64
  %1456 = getelementptr inbounds i8, ptr %1452, i64 %1455
  %1457 = load i8, ptr %1456, align 1, !tbaa !16
  %1458 = zext i8 %1457 to i32
  %1459 = sub nsw i32 %1447, %1458
  br label %1461

1460:                                             ; preds = %1411
  br label %1461

1461:                                             ; preds = %1460, %1436
  %1462 = phi i32 [ %1459, %1436 ], [ 255, %1460 ]
  %1463 = trunc i32 %1462 to i8
  %1464 = load ptr, ptr %6, align 8, !tbaa !5
  %1465 = getelementptr inbounds %struct.MImage, ptr %1464, i32 0, i32 3
  %1466 = load i32, ptr %12, align 4, !tbaa !14
  %1467 = sext i32 %1466 to i64
  %1468 = getelementptr inbounds [4 x ptr], ptr %1465, i64 0, i64 %1467
  %1469 = load ptr, ptr %1468, align 8, !tbaa !5
  %1470 = load i32, ptr %15, align 4, !tbaa !14
  %1471 = sext i32 %1470 to i64
  %1472 = getelementptr inbounds ptr, ptr %1469, i64 %1471
  %1473 = load ptr, ptr %1472, align 8, !tbaa !5
  %1474 = load i32, ptr %16, align 4, !tbaa !14
  %1475 = add nsw i32 %1474, 0
  %1476 = sext i32 %1475 to i64
  %1477 = getelementptr inbounds i8, ptr %1473, i64 %1476
  store i8 %1463, ptr %1477, align 1, !tbaa !16
  br label %9458

1478:                                             ; preds = %1404
  %1479 = load ptr, ptr %6, align 8, !tbaa !5
  %1480 = getelementptr inbounds %struct.MImage, ptr %1479, i32 0, i32 2
  %1481 = load i32, ptr %1480, align 8, !tbaa !13
  %1482 = load i32, ptr %16, align 4, !tbaa !14
  %1483 = sub nsw i32 %1481, %1482
  %1484 = icmp eq i32 %1483, 2
  br i1 %1484, label %1485, label %1618

1485:                                             ; preds = %1478
  %1486 = load ptr, ptr %13, align 8, !tbaa !5
  %1487 = load i32, ptr %15, align 4, !tbaa !14
  %1488 = sext i32 %1487 to i64
  %1489 = getelementptr inbounds ptr, ptr %1486, i64 %1488
  %1490 = load ptr, ptr %1489, align 8, !tbaa !5
  %1491 = load i32, ptr %16, align 4, !tbaa !14
  %1492 = add nsw i32 %1491, 0
  %1493 = sext i32 %1492 to i64
  %1494 = getelementptr inbounds i8, ptr %1490, i64 %1493
  %1495 = load i8, ptr %1494, align 1, !tbaa !16
  %1496 = zext i8 %1495 to i32
  %1497 = load ptr, ptr %14, align 8, !tbaa !5
  %1498 = load i32, ptr %15, align 4, !tbaa !14
  %1499 = sext i32 %1498 to i64
  %1500 = getelementptr inbounds ptr, ptr %1497, i64 %1499
  %1501 = load ptr, ptr %1500, align 8, !tbaa !5
  %1502 = load i32, ptr %16, align 4, !tbaa !14
  %1503 = add nsw i32 %1502, 0
  %1504 = sext i32 %1503 to i64
  %1505 = getelementptr inbounds i8, ptr %1501, i64 %1504
  %1506 = load i8, ptr %1505, align 1, !tbaa !16
  %1507 = zext i8 %1506 to i32
  %1508 = sub nsw i32 %1496, %1507
  %1509 = icmp slt i32 %1508, 255
  br i1 %1509, label %1510, label %1534

1510:                                             ; preds = %1485
  %1511 = load ptr, ptr %13, align 8, !tbaa !5
  %1512 = load i32, ptr %15, align 4, !tbaa !14
  %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 %16, align 4, !tbaa !14
  %1517 = add nsw i32 %1516, 0
  %1518 = sext i32 %1517 to i64
  %1519 = getelementptr inbounds i8, ptr %1515, i64 %1518
  %1520 = load i8, ptr %1519, align 1, !tbaa !16
  %1521 = zext i8 %1520 to i32
  %1522 = load ptr, ptr %14, align 8, !tbaa !5
  %1523 = load i32, ptr %15, align 4, !tbaa !14
  %1524 = sext i32 %1523 to i64
  %1525 = getelementptr inbounds ptr, ptr %1522, i64 %1524
  %1526 = load ptr, ptr %1525, align 8, !tbaa !5
  %1527 = load i32, ptr %16, align 4, !tbaa !14
  %1528 = add nsw i32 %1527, 0
  %1529 = sext i32 %1528 to i64
  %1530 = getelementptr inbounds i8, ptr %1526, i64 %1529
  %1531 = load i8, ptr %1530, align 1, !tbaa !16
  %1532 = zext i8 %1531 to i32
  %1533 = sub nsw i32 %1521, %1532
  br label %1535

1534:                                             ; preds = %1485
  br label %1535

1535:                                             ; preds = %1534, %1510
  %1536 = phi i32 [ %1533, %1510 ], [ 255, %1534 ]
  %1537 = trunc i32 %1536 to i8
  %1538 = load ptr, ptr %6, align 8, !tbaa !5
  %1539 = getelementptr inbounds %struct.MImage, ptr %1538, i32 0, i32 3
  %1540 = load i32, ptr %12, align 4, !tbaa !14
  %1541 = sext i32 %1540 to i64
  %1542 = getelementptr inbounds [4 x ptr], ptr %1539, i64 0, i64 %1541
  %1543 = load ptr, ptr %1542, align 8, !tbaa !5
  %1544 = load i32, ptr %15, align 4, !tbaa !14
  %1545 = sext i32 %1544 to i64
  %1546 = getelementptr inbounds ptr, ptr %1543, i64 %1545
  %1547 = load ptr, ptr %1546, align 8, !tbaa !5
  %1548 = load i32, ptr %16, align 4, !tbaa !14
  %1549 = add nsw i32 %1548, 0
  %1550 = sext i32 %1549 to i64
  %1551 = getelementptr inbounds i8, ptr %1547, i64 %1550
  store i8 %1537, ptr %1551, align 1, !tbaa !16
  %1552 = load ptr, ptr %13, align 8, !tbaa !5
  %1553 = load i32, ptr %15, align 4, !tbaa !14
  %1554 = sext i32 %1553 to i64
  %1555 = getelementptr inbounds ptr, ptr %1552, i64 %1554
  %1556 = load ptr, ptr %1555, align 8, !tbaa !5
  %1557 = load i32, ptr %16, align 4, !tbaa !14
  %1558 = add nsw i32 %1557, 1
  %1559 = sext i32 %1558 to i64
  %1560 = getelementptr inbounds i8, ptr %1556, i64 %1559
  %1561 = load i8, ptr %1560, align 1, !tbaa !16
  %1562 = zext i8 %1561 to i32
  %1563 = load ptr, ptr %14, align 8, !tbaa !5
  %1564 = load i32, ptr %15, align 4, !tbaa !14
  %1565 = sext i32 %1564 to i64
  %1566 = getelementptr inbounds ptr, ptr %1563, i64 %1565
  %1567 = load ptr, ptr %1566, align 8, !tbaa !5
  %1568 = load i32, ptr %16, align 4, !tbaa !14
  %1569 = add nsw i32 %1568, 1
  %1570 = sext i32 %1569 to i64
  %1571 = getelementptr inbounds i8, ptr %1567, i64 %1570
  %1572 = load i8, ptr %1571, align 1, !tbaa !16
  %1573 = zext i8 %1572 to i32
  %1574 = sub nsw i32 %1562, %1573
  %1575 = icmp slt i32 %1574, 255
  br i1 %1575, label %1576, label %1600

1576:                                             ; preds = %1535
  %1577 = load ptr, ptr %13, align 8, !tbaa !5
  %1578 = load i32, ptr %15, align 4, !tbaa !14
  %1579 = sext i32 %1578 to i64
  %1580 = getelementptr inbounds ptr, ptr %1577, i64 %1579
  %1581 = load ptr, ptr %1580, align 8, !tbaa !5
  %1582 = load i32, ptr %16, align 4, !tbaa !14
  %1583 = add nsw i32 %1582, 1
  %1584 = sext i32 %1583 to i64
  %1585 = getelementptr inbounds i8, ptr %1581, i64 %1584
  %1586 = load i8, ptr %1585, align 1, !tbaa !16
  %1587 = zext i8 %1586 to i32
  %1588 = load ptr, ptr %14, align 8, !tbaa !5
  %1589 = load i32, ptr %15, align 4, !tbaa !14
  %1590 = sext i32 %1589 to i64
  %1591 = getelementptr inbounds ptr, ptr %1588, i64 %1590
  %1592 = load ptr, ptr %1591, align 8, !tbaa !5
  %1593 = load i32, ptr %16, align 4, !tbaa !14
  %1594 = add nsw i32 %1593, 1
  %1595 = sext i32 %1594 to i64
  %1596 = getelementptr inbounds i8, ptr %1592, i64 %1595
  %1597 = load i8, ptr %1596, align 1, !tbaa !16
  %1598 = zext i8 %1597 to i32
  %1599 = sub nsw i32 %1587, %1598
  br label %1601

1600:                                             ; preds = %1535
  br label %1601

1601:                                             ; preds = %1600, %1576
  %1602 = phi i32 [ %1599, %1576 ], [ 255, %1600 ]
  %1603 = trunc i32 %1602 to i8
  %1604 = load ptr, ptr %6, align 8, !tbaa !5
  %1605 = getelementptr inbounds %struct.MImage, ptr %1604, i32 0, i32 3
  %1606 = load i32, ptr %12, align 4, !tbaa !14
  %1607 = sext i32 %1606 to i64
  %1608 = getelementptr inbounds [4 x ptr], ptr %1605, i64 0, i64 %1607
  %1609 = load ptr, ptr %1608, align 8, !tbaa !5
  %1610 = load i32, ptr %15, align 4, !tbaa !14
  %1611 = sext i32 %1610 to i64
  %1612 = getelementptr inbounds ptr, ptr %1609, i64 %1611
  %1613 = load ptr, ptr %1612, align 8, !tbaa !5
  %1614 = load i32, ptr %16, align 4, !tbaa !14
  %1615 = add nsw i32 %1614, 1
  %1616 = sext i32 %1615 to i64
  %1617 = getelementptr inbounds i8, ptr %1613, i64 %1616
  store i8 %1603, ptr %1617, align 1, !tbaa !16
  br label %9457

1618:                                             ; preds = %1478
  %1619 = load ptr, ptr %6, align 8, !tbaa !5
  %1620 = getelementptr inbounds %struct.MImage, ptr %1619, i32 0, i32 2
  %1621 = load i32, ptr %1620, align 8, !tbaa !13
  %1622 = load i32, ptr %16, align 4, !tbaa !14
  %1623 = sub nsw i32 %1621, %1622
  %1624 = icmp eq i32 %1623, 3
  br i1 %1624, label %1625, label %1824

1625:                                             ; preds = %1618
  %1626 = load ptr, ptr %13, align 8, !tbaa !5
  %1627 = load i32, ptr %15, align 4, !tbaa !14
  %1628 = sext i32 %1627 to i64
  %1629 = getelementptr inbounds ptr, ptr %1626, i64 %1628
  %1630 = load ptr, ptr %1629, align 8, !tbaa !5
  %1631 = load i32, ptr %16, align 4, !tbaa !14
  %1632 = add nsw i32 %1631, 0
  %1633 = sext i32 %1632 to i64
  %1634 = getelementptr inbounds i8, ptr %1630, i64 %1633
  %1635 = load i8, ptr %1634, align 1, !tbaa !16
  %1636 = zext i8 %1635 to i32
  %1637 = load ptr, ptr %14, align 8, !tbaa !5
  %1638 = load i32, ptr %15, align 4, !tbaa !14
  %1639 = sext i32 %1638 to i64
  %1640 = getelementptr inbounds ptr, ptr %1637, i64 %1639
  %1641 = load ptr, ptr %1640, align 8, !tbaa !5
  %1642 = load i32, ptr %16, align 4, !tbaa !14
  %1643 = add nsw i32 %1642, 0
  %1644 = sext i32 %1643 to i64
  %1645 = getelementptr inbounds i8, ptr %1641, i64 %1644
  %1646 = load i8, ptr %1645, align 1, !tbaa !16
  %1647 = zext i8 %1646 to i32
  %1648 = sub nsw i32 %1636, %1647
  %1649 = icmp slt i32 %1648, 255
  br i1 %1649, label %1650, label %1674

1650:                                             ; preds = %1625
  %1651 = load ptr, ptr %13, align 8, !tbaa !5
  %1652 = load i32, ptr %15, align 4, !tbaa !14
  %1653 = sext i32 %1652 to i64
  %1654 = getelementptr inbounds ptr, ptr %1651, i64 %1653
  %1655 = load ptr, ptr %1654, align 8, !tbaa !5
  %1656 = load i32, ptr %16, align 4, !tbaa !14
  %1657 = add nsw i32 %1656, 0
  %1658 = sext i32 %1657 to i64
  %1659 = getelementptr inbounds i8, ptr %1655, i64 %1658
  %1660 = load i8, ptr %1659, align 1, !tbaa !16
  %1661 = zext i8 %1660 to i32
  %1662 = load ptr, ptr %14, align 8, !tbaa !5
  %1663 = load i32, ptr %15, align 4, !tbaa !14
  %1664 = sext i32 %1663 to i64
  %1665 = getelementptr inbounds ptr, ptr %1662, i64 %1664
  %1666 = load ptr, ptr %1665, align 8, !tbaa !5
  %1667 = load i32, ptr %16, align 4, !tbaa !14
  %1668 = add nsw i32 %1667, 0
  %1669 = sext i32 %1668 to i64
  %1670 = getelementptr inbounds i8, ptr %1666, i64 %1669
  %1671 = load i8, ptr %1670, align 1, !tbaa !16
  %1672 = zext i8 %1671 to i32
  %1673 = sub nsw i32 %1661, %1672
  br label %1675

1674:                                             ; preds = %1625
  br label %1675

1675:                                             ; preds = %1674, %1650
  %1676 = phi i32 [ %1673, %1650 ], [ 255, %1674 ]
  %1677 = trunc i32 %1676 to i8
  %1678 = load ptr, ptr %6, align 8, !tbaa !5
  %1679 = getelementptr inbounds %struct.MImage, ptr %1678, i32 0, i32 3
  %1680 = load i32, ptr %12, align 4, !tbaa !14
  %1681 = sext i32 %1680 to i64
  %1682 = getelementptr inbounds [4 x ptr], ptr %1679, i64 0, i64 %1681
  %1683 = load ptr, ptr %1682, align 8, !tbaa !5
  %1684 = load i32, ptr %15, align 4, !tbaa !14
  %1685 = sext i32 %1684 to i64
  %1686 = getelementptr inbounds ptr, ptr %1683, i64 %1685
  %1687 = load ptr, ptr %1686, align 8, !tbaa !5
  %1688 = load i32, ptr %16, align 4, !tbaa !14
  %1689 = add nsw i32 %1688, 0
  %1690 = sext i32 %1689 to i64
  %1691 = getelementptr inbounds i8, ptr %1687, i64 %1690
  store i8 %1677, ptr %1691, align 1, !tbaa !16
  %1692 = load ptr, ptr %13, align 8, !tbaa !5
  %1693 = load i32, ptr %15, align 4, !tbaa !14
  %1694 = sext i32 %1693 to i64
  %1695 = getelementptr inbounds ptr, ptr %1692, i64 %1694
  %1696 = load ptr, ptr %1695, align 8, !tbaa !5
  %1697 = load i32, ptr %16, align 4, !tbaa !14
  %1698 = add nsw i32 %1697, 1
  %1699 = sext i32 %1698 to i64
  %1700 = getelementptr inbounds i8, ptr %1696, i64 %1699
  %1701 = load i8, ptr %1700, align 1, !tbaa !16
  %1702 = zext i8 %1701 to i32
  %1703 = load ptr, ptr %14, align 8, !tbaa !5
  %1704 = load i32, ptr %15, align 4, !tbaa !14
  %1705 = sext i32 %1704 to i64
  %1706 = getelementptr inbounds ptr, ptr %1703, i64 %1705
  %1707 = load ptr, ptr %1706, align 8, !tbaa !5
  %1708 = load i32, ptr %16, align 4, !tbaa !14
  %1709 = add nsw i32 %1708, 1
  %1710 = sext i32 %1709 to i64
  %1711 = getelementptr inbounds i8, ptr %1707, i64 %1710
  %1712 = load i8, ptr %1711, align 1, !tbaa !16
  %1713 = zext i8 %1712 to i32
  %1714 = sub nsw i32 %1702, %1713
  %1715 = icmp slt i32 %1714, 255
  br i1 %1715, label %1716, label %1740

1716:                                             ; preds = %1675
  %1717 = load ptr, ptr %13, align 8, !tbaa !5
  %1718 = load i32, ptr %15, align 4, !tbaa !14
  %1719 = sext i32 %1718 to i64
  %1720 = getelementptr inbounds ptr, ptr %1717, i64 %1719
  %1721 = load ptr, ptr %1720, align 8, !tbaa !5
  %1722 = load i32, ptr %16, align 4, !tbaa !14
  %1723 = add nsw i32 %1722, 1
  %1724 = sext i32 %1723 to i64
  %1725 = getelementptr inbounds i8, ptr %1721, i64 %1724
  %1726 = load i8, ptr %1725, align 1, !tbaa !16
  %1727 = zext i8 %1726 to i32
  %1728 = load ptr, ptr %14, align 8, !tbaa !5
  %1729 = load i32, ptr %15, align 4, !tbaa !14
  %1730 = sext i32 %1729 to i64
  %1731 = getelementptr inbounds ptr, ptr %1728, i64 %1730
  %1732 = load ptr, ptr %1731, align 8, !tbaa !5
  %1733 = load i32, ptr %16, align 4, !tbaa !14
  %1734 = add nsw i32 %1733, 1
  %1735 = sext i32 %1734 to i64
  %1736 = getelementptr inbounds i8, ptr %1732, i64 %1735
  %1737 = load i8, ptr %1736, align 1, !tbaa !16
  %1738 = zext i8 %1737 to i32
  %1739 = sub nsw i32 %1727, %1738
  br label %1741

1740:                                             ; preds = %1675
  br label %1741

1741:                                             ; preds = %1740, %1716
  %1742 = phi i32 [ %1739, %1716 ], [ 255, %1740 ]
  %1743 = trunc i32 %1742 to i8
  %1744 = load ptr, ptr %6, align 8, !tbaa !5
  %1745 = getelementptr inbounds %struct.MImage, ptr %1744, i32 0, i32 3
  %1746 = load i32, ptr %12, align 4, !tbaa !14
  %1747 = sext i32 %1746 to i64
  %1748 = getelementptr inbounds [4 x ptr], ptr %1745, i64 0, i64 %1747
  %1749 = load ptr, ptr %1748, align 8, !tbaa !5
  %1750 = load i32, ptr %15, align 4, !tbaa !14
  %1751 = sext i32 %1750 to i64
  %1752 = getelementptr inbounds ptr, ptr %1749, i64 %1751
  %1753 = load ptr, ptr %1752, align 8, !tbaa !5
  %1754 = load i32, ptr %16, align 4, !tbaa !14
  %1755 = add nsw i32 %1754, 1
  %1756 = sext i32 %1755 to i64
  %1757 = getelementptr inbounds i8, ptr %1753, i64 %1756
  store i8 %1743, ptr %1757, align 1, !tbaa !16
  %1758 = load ptr, ptr %13, align 8, !tbaa !5
  %1759 = load i32, ptr %15, align 4, !tbaa !14
  %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 %16, align 4, !tbaa !14
  %1764 = add nsw i32 %1763, 2
  %1765 = sext i32 %1764 to i64
  %1766 = getelementptr inbounds i8, ptr %1762, i64 %1765
  %1767 = load i8, ptr %1766, align 1, !tbaa !16
  %1768 = zext i8 %1767 to i32
  %1769 = load ptr, ptr %14, align 8, !tbaa !5
  %1770 = load i32, ptr %15, align 4, !tbaa !14
  %1771 = sext i32 %1770 to i64
  %1772 = getelementptr inbounds ptr, ptr %1769, i64 %1771
  %1773 = load ptr, ptr %1772, align 8, !tbaa !5
  %1774 = load i32, ptr %16, align 4, !tbaa !14
  %1775 = add nsw i32 %1774, 2
  %1776 = sext i32 %1775 to i64
  %1777 = getelementptr inbounds i8, ptr %1773, i64 %1776
  %1778 = load i8, ptr %1777, align 1, !tbaa !16
  %1779 = zext i8 %1778 to i32
  %1780 = sub nsw i32 %1768, %1779
  %1781 = icmp slt i32 %1780, 255
  br i1 %1781, label %1782, label %1806

1782:                                             ; preds = %1741
  %1783 = load ptr, ptr %13, align 8, !tbaa !5
  %1784 = load i32, ptr %15, align 4, !tbaa !14
  %1785 = sext i32 %1784 to i64
  %1786 = getelementptr inbounds ptr, ptr %1783, i64 %1785
  %1787 = load ptr, ptr %1786, align 8, !tbaa !5
  %1788 = load i32, ptr %16, align 4, !tbaa !14
  %1789 = add nsw i32 %1788, 2
  %1790 = sext i32 %1789 to i64
  %1791 = getelementptr inbounds i8, ptr %1787, i64 %1790
  %1792 = load i8, ptr %1791, align 1, !tbaa !16
  %1793 = zext i8 %1792 to i32
  %1794 = load ptr, ptr %14, align 8, !tbaa !5
  %1795 = load i32, ptr %15, align 4, !tbaa !14
  %1796 = sext i32 %1795 to i64
  %1797 = getelementptr inbounds ptr, ptr %1794, i64 %1796
  %1798 = load ptr, ptr %1797, align 8, !tbaa !5
  %1799 = load i32, ptr %16, align 4, !tbaa !14
  %1800 = add nsw i32 %1799, 2
  %1801 = sext i32 %1800 to i64
  %1802 = getelementptr inbounds i8, ptr %1798, i64 %1801
  %1803 = load i8, ptr %1802, align 1, !tbaa !16
  %1804 = zext i8 %1803 to i32
  %1805 = sub nsw i32 %1793, %1804
  br label %1807

1806:                                             ; preds = %1741
  br label %1807

1807:                                             ; preds = %1806, %1782
  %1808 = phi i32 [ %1805, %1782 ], [ 255, %1806 ]
  %1809 = trunc i32 %1808 to i8
  %1810 = load ptr, ptr %6, align 8, !tbaa !5
  %1811 = getelementptr inbounds %struct.MImage, ptr %1810, i32 0, i32 3
  %1812 = load i32, ptr %12, align 4, !tbaa !14
  %1813 = sext i32 %1812 to i64
  %1814 = getelementptr inbounds [4 x ptr], ptr %1811, i64 0, i64 %1813
  %1815 = load ptr, ptr %1814, align 8, !tbaa !5
  %1816 = load i32, ptr %15, align 4, !tbaa !14
  %1817 = sext i32 %1816 to i64
  %1818 = getelementptr inbounds ptr, ptr %1815, i64 %1817
  %1819 = load ptr, ptr %1818, align 8, !tbaa !5
  %1820 = load i32, ptr %16, align 4, !tbaa !14
  %1821 = add nsw i32 %1820, 2
  %1822 = sext i32 %1821 to i64
  %1823 = getelementptr inbounds i8, ptr %1819, i64 %1822
  store i8 %1809, ptr %1823, align 1, !tbaa !16
  br label %9456

1824:                                             ; preds = %1618
  %1825 = load ptr, ptr %6, align 8, !tbaa !5
  %1826 = getelementptr inbounds %struct.MImage, ptr %1825, i32 0, i32 2
  %1827 = load i32, ptr %1826, align 8, !tbaa !13
  %1828 = load i32, ptr %16, align 4, !tbaa !14
  %1829 = sub nsw i32 %1827, %1828
  %1830 = icmp eq i32 %1829, 4
  br i1 %1830, label %1831, label %2096

1831:                                             ; preds = %1824
  %1832 = load ptr, ptr %13, align 8, !tbaa !5
  %1833 = load i32, ptr %15, align 4, !tbaa !14
  %1834 = sext i32 %1833 to i64
  %1835 = getelementptr inbounds ptr, ptr %1832, i64 %1834
  %1836 = load ptr, ptr %1835, align 8, !tbaa !5
  %1837 = load i32, ptr %16, align 4, !tbaa !14
  %1838 = add nsw i32 %1837, 0
  %1839 = sext i32 %1838 to i64
  %1840 = getelementptr inbounds i8, ptr %1836, i64 %1839
  %1841 = load i8, ptr %1840, align 1, !tbaa !16
  %1842 = zext i8 %1841 to i32
  %1843 = load ptr, ptr %14, align 8, !tbaa !5
  %1844 = load i32, ptr %15, align 4, !tbaa !14
  %1845 = sext i32 %1844 to i64
  %1846 = getelementptr inbounds ptr, ptr %1843, i64 %1845
  %1847 = load ptr, ptr %1846, align 8, !tbaa !5
  %1848 = load i32, ptr %16, align 4, !tbaa !14
  %1849 = add nsw i32 %1848, 0
  %1850 = sext i32 %1849 to i64
  %1851 = getelementptr inbounds i8, ptr %1847, i64 %1850
  %1852 = load i8, ptr %1851, align 1, !tbaa !16
  %1853 = zext i8 %1852 to i32
  %1854 = sub nsw i32 %1842, %1853
  %1855 = icmp slt i32 %1854, 255
  br i1 %1855, label %1856, label %1880

1856:                                             ; preds = %1831
  %1857 = load ptr, ptr %13, align 8, !tbaa !5
  %1858 = load i32, ptr %15, align 4, !tbaa !14
  %1859 = sext i32 %1858 to i64
  %1860 = getelementptr inbounds ptr, ptr %1857, i64 %1859
  %1861 = load ptr, ptr %1860, align 8, !tbaa !5
  %1862 = load i32, ptr %16, align 4, !tbaa !14
  %1863 = add nsw i32 %1862, 0
  %1864 = sext i32 %1863 to i64
  %1865 = getelementptr inbounds i8, ptr %1861, i64 %1864
  %1866 = load i8, ptr %1865, align 1, !tbaa !16
  %1867 = zext i8 %1866 to i32
  %1868 = load ptr, ptr %14, align 8, !tbaa !5
  %1869 = load i32, ptr %15, align 4, !tbaa !14
  %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 %16, align 4, !tbaa !14
  %1874 = add nsw i32 %1873, 0
  %1875 = sext i32 %1874 to i64
  %1876 = getelementptr inbounds i8, ptr %1872, i64 %1875
  %1877 = load i8, ptr %1876, align 1, !tbaa !16
  %1878 = zext i8 %1877 to i32
  %1879 = sub nsw i32 %1867, %1878
  br label %1881

1880:                                             ; preds = %1831
  br label %1881

1881:                                             ; preds = %1880, %1856
  %1882 = phi i32 [ %1879, %1856 ], [ 255, %1880 ]
  %1883 = trunc i32 %1882 to i8
  %1884 = load ptr, ptr %6, align 8, !tbaa !5
  %1885 = getelementptr inbounds %struct.MImage, ptr %1884, i32 0, i32 3
  %1886 = load i32, ptr %12, align 4, !tbaa !14
  %1887 = sext i32 %1886 to i64
  %1888 = getelementptr inbounds [4 x ptr], ptr %1885, i64 0, i64 %1887
  %1889 = load ptr, ptr %1888, align 8, !tbaa !5
  %1890 = load i32, ptr %15, align 4, !tbaa !14
  %1891 = sext i32 %1890 to i64
  %1892 = getelementptr inbounds ptr, ptr %1889, i64 %1891
  %1893 = load ptr, ptr %1892, align 8, !tbaa !5
  %1894 = load i32, ptr %16, align 4, !tbaa !14
  %1895 = add nsw i32 %1894, 0
  %1896 = sext i32 %1895 to i64
  %1897 = getelementptr inbounds i8, ptr %1893, i64 %1896
  store i8 %1883, ptr %1897, align 1, !tbaa !16
  %1898 = load ptr, ptr %13, align 8, !tbaa !5
  %1899 = load i32, ptr %15, align 4, !tbaa !14
  %1900 = sext i32 %1899 to i64
  %1901 = getelementptr inbounds ptr, ptr %1898, i64 %1900
  %1902 = load ptr, ptr %1901, align 8, !tbaa !5
  %1903 = load i32, ptr %16, align 4, !tbaa !14
  %1904 = add nsw i32 %1903, 1
  %1905 = sext i32 %1904 to i64
  %1906 = getelementptr inbounds i8, ptr %1902, i64 %1905
  %1907 = load i8, ptr %1906, align 1, !tbaa !16
  %1908 = zext i8 %1907 to i32
  %1909 = load ptr, ptr %14, align 8, !tbaa !5
  %1910 = load i32, ptr %15, align 4, !tbaa !14
  %1911 = sext i32 %1910 to i64
  %1912 = getelementptr inbounds ptr, ptr %1909, i64 %1911
  %1913 = load ptr, ptr %1912, align 8, !tbaa !5
  %1914 = load i32, ptr %16, align 4, !tbaa !14
  %1915 = add nsw i32 %1914, 1
  %1916 = sext i32 %1915 to i64
  %1917 = getelementptr inbounds i8, ptr %1913, i64 %1916
  %1918 = load i8, ptr %1917, align 1, !tbaa !16
  %1919 = zext i8 %1918 to i32
  %1920 = sub nsw i32 %1908, %1919
  %1921 = icmp slt i32 %1920, 255
  br i1 %1921, label %1922, label %1946

1922:                                             ; preds = %1881
  %1923 = load ptr, ptr %13, align 8, !tbaa !5
  %1924 = load i32, ptr %15, align 4, !tbaa !14
  %1925 = sext i32 %1924 to i64
  %1926 = getelementptr inbounds ptr, ptr %1923, i64 %1925
  %1927 = load ptr, ptr %1926, align 8, !tbaa !5
  %1928 = load i32, ptr %16, align 4, !tbaa !14
  %1929 = add nsw i32 %1928, 1
  %1930 = sext i32 %1929 to i64
  %1931 = getelementptr inbounds i8, ptr %1927, i64 %1930
  %1932 = load i8, ptr %1931, align 1, !tbaa !16
  %1933 = zext i8 %1932 to i32
  %1934 = load ptr, ptr %14, align 8, !tbaa !5
  %1935 = load i32, ptr %15, align 4, !tbaa !14
  %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 %16, align 4, !tbaa !14
  %1940 = add nsw i32 %1939, 1
  %1941 = sext i32 %1940 to i64
  %1942 = getelementptr inbounds i8, ptr %1938, i64 %1941
  %1943 = load i8, ptr %1942, align 1, !tbaa !16
  %1944 = zext i8 %1943 to i32
  %1945 = sub nsw i32 %1933, %1944
  br label %1947

1946:                                             ; preds = %1881
  br label %1947

1947:                                             ; preds = %1946, %1922
  %1948 = phi i32 [ %1945, %1922 ], [ 255, %1946 ]
  %1949 = trunc i32 %1948 to i8
  %1950 = load ptr, ptr %6, align 8, !tbaa !5
  %1951 = getelementptr inbounds %struct.MImage, ptr %1950, i32 0, i32 3
  %1952 = load i32, ptr %12, align 4, !tbaa !14
  %1953 = sext i32 %1952 to i64
  %1954 = getelementptr inbounds [4 x ptr], ptr %1951, i64 0, i64 %1953
  %1955 = load ptr, ptr %1954, align 8, !tbaa !5
  %1956 = load i32, ptr %15, align 4, !tbaa !14
  %1957 = sext i32 %1956 to i64
  %1958 = getelementptr inbounds ptr, ptr %1955, i64 %1957
  %1959 = load ptr, ptr %1958, align 8, !tbaa !5
  %1960 = load i32, ptr %16, align 4, !tbaa !14
  %1961 = add nsw i32 %1960, 1
  %1962 = sext i32 %1961 to i64
  %1963 = getelementptr inbounds i8, ptr %1959, i64 %1962
  store i8 %1949, ptr %1963, align 1, !tbaa !16
  %1964 = load ptr, ptr %13, align 8, !tbaa !5
  %1965 = load i32, ptr %15, align 4, !tbaa !14
  %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 %16, align 4, !tbaa !14
  %1970 = add nsw i32 %1969, 2
  %1971 = sext i32 %1970 to i64
  %1972 = getelementptr inbounds i8, ptr %1968, i64 %1971
  %1973 = load i8, ptr %1972, align 1, !tbaa !16
  %1974 = zext i8 %1973 to i32
  %1975 = load ptr, ptr %14, align 8, !tbaa !5
  %1976 = load i32, ptr %15, align 4, !tbaa !14
  %1977 = sext i32 %1976 to i64
  %1978 = getelementptr inbounds ptr, ptr %1975, i64 %1977
  %1979 = load ptr, ptr %1978, align 8, !tbaa !5
  %1980 = load i32, ptr %16, align 4, !tbaa !14
  %1981 = add nsw i32 %1980, 2
  %1982 = sext i32 %1981 to i64
  %1983 = getelementptr inbounds i8, ptr %1979, i64 %1982
  %1984 = load i8, ptr %1983, align 1, !tbaa !16
  %1985 = zext i8 %1984 to i32
  %1986 = sub nsw i32 %1974, %1985
  %1987 = icmp slt i32 %1986, 255
  br i1 %1987, label %1988, label %2012

1988:                                             ; preds = %1947
  %1989 = load ptr, ptr %13, align 8, !tbaa !5
  %1990 = load i32, ptr %15, align 4, !tbaa !14
  %1991 = sext i32 %1990 to i64
  %1992 = getelementptr inbounds ptr, ptr %1989, i64 %1991
  %1993 = load ptr, ptr %1992, align 8, !tbaa !5
  %1994 = load i32, ptr %16, align 4, !tbaa !14
  %1995 = add nsw i32 %1994, 2
  %1996 = sext i32 %1995 to i64
  %1997 = getelementptr inbounds i8, ptr %1993, i64 %1996
  %1998 = load i8, ptr %1997, align 1, !tbaa !16
  %1999 = zext i8 %1998 to i32
  %2000 = load ptr, ptr %14, align 8, !tbaa !5
  %2001 = load i32, ptr %15, align 4, !tbaa !14
  %2002 = sext i32 %2001 to i64
  %2003 = getelementptr inbounds ptr, ptr %2000, i64 %2002
  %2004 = load ptr, ptr %2003, align 8, !tbaa !5
  %2005 = load i32, ptr %16, align 4, !tbaa !14
  %2006 = add nsw i32 %2005, 2
  %2007 = sext i32 %2006 to i64
  %2008 = getelementptr inbounds i8, ptr %2004, i64 %2007
  %2009 = load i8, ptr %2008, align 1, !tbaa !16
  %2010 = zext i8 %2009 to i32
  %2011 = sub nsw i32 %1999, %2010
  br label %2013

2012:                                             ; preds = %1947
  br label %2013

2013:                                             ; preds = %2012, %1988
  %2014 = phi i32 [ %2011, %1988 ], [ 255, %2012 ]
  %2015 = trunc i32 %2014 to i8
  %2016 = load ptr, ptr %6, align 8, !tbaa !5
  %2017 = getelementptr inbounds %struct.MImage, ptr %2016, i32 0, i32 3
  %2018 = load i32, ptr %12, align 4, !tbaa !14
  %2019 = sext i32 %2018 to i64
  %2020 = getelementptr inbounds [4 x ptr], ptr %2017, i64 0, i64 %2019
  %2021 = load ptr, ptr %2020, align 8, !tbaa !5
  %2022 = load i32, ptr %15, align 4, !tbaa !14
  %2023 = sext i32 %2022 to i64
  %2024 = getelementptr inbounds ptr, ptr %2021, i64 %2023
  %2025 = load ptr, ptr %2024, align 8, !tbaa !5
  %2026 = load i32, ptr %16, align 4, !tbaa !14
  %2027 = add nsw i32 %2026, 2
  %2028 = sext i32 %2027 to i64
  %2029 = getelementptr inbounds i8, ptr %2025, i64 %2028
  store i8 %2015, ptr %2029, align 1, !tbaa !16
  %2030 = load ptr, ptr %13, align 8, !tbaa !5
  %2031 = load i32, ptr %15, align 4, !tbaa !14
  %2032 = sext i32 %2031 to i64
  %2033 = getelementptr inbounds ptr, ptr %2030, i64 %2032
  %2034 = load ptr, ptr %2033, align 8, !tbaa !5
  %2035 = load i32, ptr %16, align 4, !tbaa !14
  %2036 = add nsw i32 %2035, 3
  %2037 = sext i32 %2036 to i64
  %2038 = getelementptr inbounds i8, ptr %2034, i64 %2037
  %2039 = load i8, ptr %2038, align 1, !tbaa !16
  %2040 = zext i8 %2039 to i32
  %2041 = load ptr, ptr %14, align 8, !tbaa !5
  %2042 = load i32, ptr %15, align 4, !tbaa !14
  %2043 = sext i32 %2042 to i64
  %2044 = getelementptr inbounds ptr, ptr %2041, i64 %2043
  %2045 = load ptr, ptr %2044, align 8, !tbaa !5
  %2046 = load i32, ptr %16, align 4, !tbaa !14
  %2047 = add nsw i32 %2046, 3
  %2048 = sext i32 %2047 to i64
  %2049 = getelementptr inbounds i8, ptr %2045, i64 %2048
  %2050 = load i8, ptr %2049, align 1, !tbaa !16
  %2051 = zext i8 %2050 to i32
  %2052 = sub nsw i32 %2040, %2051
  %2053 = icmp slt i32 %2052, 255
  br i1 %2053, label %2054, label %2078

2054:                                             ; preds = %2013
  %2055 = load ptr, ptr %13, align 8, !tbaa !5
  %2056 = load i32, ptr %15, align 4, !tbaa !14
  %2057 = sext i32 %2056 to i64
  %2058 = getelementptr inbounds ptr, ptr %2055, i64 %2057
  %2059 = load ptr, ptr %2058, align 8, !tbaa !5
  %2060 = load i32, ptr %16, align 4, !tbaa !14
  %2061 = add nsw i32 %2060, 3
  %2062 = sext i32 %2061 to i64
  %2063 = getelementptr inbounds i8, ptr %2059, i64 %2062
  %2064 = load i8, ptr %2063, align 1, !tbaa !16
  %2065 = zext i8 %2064 to i32
  %2066 = load ptr, ptr %14, align 8, !tbaa !5
  %2067 = load i32, ptr %15, align 4, !tbaa !14
  %2068 = sext i32 %2067 to i64
  %2069 = getelementptr inbounds ptr, ptr %2066, i64 %2068
  %2070 = load ptr, ptr %2069, align 8, !tbaa !5
  %2071 = load i32, ptr %16, align 4, !tbaa !14
  %2072 = add nsw i32 %2071, 3
  %2073 = sext i32 %2072 to i64
  %2074 = getelementptr inbounds i8, ptr %2070, i64 %2073
  %2075 = load i8, ptr %2074, align 1, !tbaa !16
  %2076 = zext i8 %2075 to i32
  %2077 = sub nsw i32 %2065, %2076
  br label %2079

2078:                                             ; preds = %2013
  br label %2079

2079:                                             ; preds = %2078, %2054
  %2080 = phi i32 [ %2077, %2054 ], [ 255, %2078 ]
  %2081 = trunc i32 %2080 to i8
  %2082 = load ptr, ptr %6, align 8, !tbaa !5
  %2083 = getelementptr inbounds %struct.MImage, ptr %2082, i32 0, i32 3
  %2084 = load i32, ptr %12, align 4, !tbaa !14
  %2085 = sext i32 %2084 to i64
  %2086 = getelementptr inbounds [4 x ptr], ptr %2083, i64 0, i64 %2085
  %2087 = load ptr, ptr %2086, align 8, !tbaa !5
  %2088 = load i32, ptr %15, align 4, !tbaa !14
  %2089 = sext i32 %2088 to i64
  %2090 = getelementptr inbounds ptr, ptr %2087, i64 %2089
  %2091 = load ptr, ptr %2090, align 8, !tbaa !5
  %2092 = load i32, ptr %16, align 4, !tbaa !14
  %2093 = add nsw i32 %2092, 3
  %2094 = sext i32 %2093 to i64
  %2095 = getelementptr inbounds i8, ptr %2091, i64 %2094
  store i8 %2081, ptr %2095, align 1, !tbaa !16
  br label %9455

2096:                                             ; preds = %1824
  %2097 = load ptr, ptr %6, align 8, !tbaa !5
  %2098 = getelementptr inbounds %struct.MImage, ptr %2097, i32 0, i32 2
  %2099 = load i32, ptr %2098, align 8, !tbaa !13
  %2100 = load i32, ptr %16, align 4, !tbaa !14
  %2101 = sub nsw i32 %2099, %2100
  %2102 = icmp eq i32 %2101, 5
  br i1 %2102, label %2103, label %2434

2103:                                             ; preds = %2096
  %2104 = load ptr, ptr %13, align 8, !tbaa !5
  %2105 = load i32, ptr %15, align 4, !tbaa !14
  %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 %16, align 4, !tbaa !14
  %2110 = add nsw i32 %2109, 0
  %2111 = sext i32 %2110 to i64
  %2112 = getelementptr inbounds i8, ptr %2108, i64 %2111
  %2113 = load i8, ptr %2112, align 1, !tbaa !16
  %2114 = zext i8 %2113 to i32
  %2115 = load ptr, ptr %14, align 8, !tbaa !5
  %2116 = load i32, ptr %15, align 4, !tbaa !14
  %2117 = sext i32 %2116 to i64
  %2118 = getelementptr inbounds ptr, ptr %2115, i64 %2117
  %2119 = load ptr, ptr %2118, align 8, !tbaa !5
  %2120 = load i32, ptr %16, align 4, !tbaa !14
  %2121 = add nsw i32 %2120, 0
  %2122 = sext i32 %2121 to i64
  %2123 = getelementptr inbounds i8, ptr %2119, i64 %2122
  %2124 = load i8, ptr %2123, align 1, !tbaa !16
  %2125 = zext i8 %2124 to i32
  %2126 = sub nsw i32 %2114, %2125
  %2127 = icmp slt i32 %2126, 255
  br i1 %2127, label %2128, label %2152

2128:                                             ; preds = %2103
  %2129 = load ptr, ptr %13, align 8, !tbaa !5
  %2130 = load i32, ptr %15, align 4, !tbaa !14
  %2131 = sext i32 %2130 to i64
  %2132 = getelementptr inbounds ptr, ptr %2129, i64 %2131
  %2133 = load ptr, ptr %2132, align 8, !tbaa !5
  %2134 = load i32, ptr %16, align 4, !tbaa !14
  %2135 = add nsw i32 %2134, 0
  %2136 = sext i32 %2135 to i64
  %2137 = getelementptr inbounds i8, ptr %2133, i64 %2136
  %2138 = load i8, ptr %2137, align 1, !tbaa !16
  %2139 = zext i8 %2138 to i32
  %2140 = load ptr, ptr %14, align 8, !tbaa !5
  %2141 = load i32, ptr %15, align 4, !tbaa !14
  %2142 = sext i32 %2141 to i64
  %2143 = getelementptr inbounds ptr, ptr %2140, i64 %2142
  %2144 = load ptr, ptr %2143, align 8, !tbaa !5
  %2145 = load i32, ptr %16, align 4, !tbaa !14
  %2146 = add nsw i32 %2145, 0
  %2147 = sext i32 %2146 to i64
  %2148 = getelementptr inbounds i8, ptr %2144, i64 %2147
  %2149 = load i8, ptr %2148, align 1, !tbaa !16
  %2150 = zext i8 %2149 to i32
  %2151 = sub nsw i32 %2139, %2150
  br label %2153

2152:                                             ; preds = %2103
  br label %2153

2153:                                             ; preds = %2152, %2128
  %2154 = phi i32 [ %2151, %2128 ], [ 255, %2152 ]
  %2155 = trunc i32 %2154 to i8
  %2156 = load ptr, ptr %6, align 8, !tbaa !5
  %2157 = getelementptr inbounds %struct.MImage, ptr %2156, i32 0, i32 3
  %2158 = load i32, ptr %12, align 4, !tbaa !14
  %2159 = sext i32 %2158 to i64
  %2160 = getelementptr inbounds [4 x ptr], ptr %2157, i64 0, i64 %2159
  %2161 = load ptr, ptr %2160, align 8, !tbaa !5
  %2162 = load i32, ptr %15, align 4, !tbaa !14
  %2163 = sext i32 %2162 to i64
  %2164 = getelementptr inbounds ptr, ptr %2161, i64 %2163
  %2165 = load ptr, ptr %2164, align 8, !tbaa !5
  %2166 = load i32, ptr %16, align 4, !tbaa !14
  %2167 = add nsw i32 %2166, 0
  %2168 = sext i32 %2167 to i64
  %2169 = getelementptr inbounds i8, ptr %2165, i64 %2168
  store i8 %2155, ptr %2169, align 1, !tbaa !16
  %2170 = load ptr, ptr %13, align 8, !tbaa !5
  %2171 = load i32, ptr %15, align 4, !tbaa !14
  %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 %16, align 4, !tbaa !14
  %2176 = add nsw i32 %2175, 1
  %2177 = sext i32 %2176 to i64
  %2178 = getelementptr inbounds i8, ptr %2174, i64 %2177
  %2179 = load i8, ptr %2178, align 1, !tbaa !16
  %2180 = zext i8 %2179 to i32
  %2181 = load ptr, ptr %14, align 8, !tbaa !5
  %2182 = load i32, ptr %15, align 4, !tbaa !14
  %2183 = sext i32 %2182 to i64
  %2184 = getelementptr inbounds ptr, ptr %2181, i64 %2183
  %2185 = load ptr, ptr %2184, align 8, !tbaa !5
  %2186 = load i32, ptr %16, align 4, !tbaa !14
  %2187 = add nsw i32 %2186, 1
  %2188 = sext i32 %2187 to i64
  %2189 = getelementptr inbounds i8, ptr %2185, i64 %2188
  %2190 = load i8, ptr %2189, align 1, !tbaa !16
  %2191 = zext i8 %2190 to i32
  %2192 = sub nsw i32 %2180, %2191
  %2193 = icmp slt i32 %2192, 255
  br i1 %2193, label %2194, label %2218

2194:                                             ; preds = %2153
  %2195 = load ptr, ptr %13, align 8, !tbaa !5
  %2196 = load i32, ptr %15, align 4, !tbaa !14
  %2197 = sext i32 %2196 to i64
  %2198 = getelementptr inbounds ptr, ptr %2195, i64 %2197
  %2199 = load ptr, ptr %2198, align 8, !tbaa !5
  %2200 = load i32, ptr %16, align 4, !tbaa !14
  %2201 = add nsw i32 %2200, 1
  %2202 = sext i32 %2201 to i64
  %2203 = getelementptr inbounds i8, ptr %2199, i64 %2202
  %2204 = load i8, ptr %2203, align 1, !tbaa !16
  %2205 = zext i8 %2204 to i32
  %2206 = load ptr, ptr %14, align 8, !tbaa !5
  %2207 = load i32, ptr %15, align 4, !tbaa !14
  %2208 = sext i32 %2207 to i64
  %2209 = getelementptr inbounds ptr, ptr %2206, i64 %2208
  %2210 = load ptr, ptr %2209, align 8, !tbaa !5
  %2211 = load i32, ptr %16, align 4, !tbaa !14
  %2212 = add nsw i32 %2211, 1
  %2213 = sext i32 %2212 to i64
  %2214 = getelementptr inbounds i8, ptr %2210, i64 %2213
  %2215 = load i8, ptr %2214, align 1, !tbaa !16
  %2216 = zext i8 %2215 to i32
  %2217 = sub nsw i32 %2205, %2216
  br label %2219

2218:                                             ; preds = %2153
  br label %2219

2219:                                             ; preds = %2218, %2194
  %2220 = phi i32 [ %2217, %2194 ], [ 255, %2218 ]
  %2221 = trunc i32 %2220 to i8
  %2222 = load ptr, ptr %6, align 8, !tbaa !5
  %2223 = getelementptr inbounds %struct.MImage, ptr %2222, i32 0, i32 3
  %2224 = load i32, ptr %12, align 4, !tbaa !14
  %2225 = sext i32 %2224 to i64
  %2226 = getelementptr inbounds [4 x ptr], ptr %2223, i64 0, i64 %2225
  %2227 = load ptr, ptr %2226, align 8, !tbaa !5
  %2228 = load i32, ptr %15, align 4, !tbaa !14
  %2229 = sext i32 %2228 to i64
  %2230 = getelementptr inbounds ptr, ptr %2227, i64 %2229
  %2231 = load ptr, ptr %2230, align 8, !tbaa !5
  %2232 = load i32, ptr %16, align 4, !tbaa !14
  %2233 = add nsw i32 %2232, 1
  %2234 = sext i32 %2233 to i64
  %2235 = getelementptr inbounds i8, ptr %2231, i64 %2234
  store i8 %2221, ptr %2235, align 1, !tbaa !16
  %2236 = load ptr, ptr %13, align 8, !tbaa !5
  %2237 = load i32, ptr %15, align 4, !tbaa !14
  %2238 = sext i32 %2237 to i64
  %2239 = getelementptr inbounds ptr, ptr %2236, i64 %2238
  %2240 = load ptr, ptr %2239, align 8, !tbaa !5
  %2241 = load i32, ptr %16, align 4, !tbaa !14
  %2242 = add nsw i32 %2241, 2
  %2243 = sext i32 %2242 to i64
  %2244 = getelementptr inbounds i8, ptr %2240, i64 %2243
  %2245 = load i8, ptr %2244, align 1, !tbaa !16
  %2246 = zext i8 %2245 to i32
  %2247 = load ptr, ptr %14, align 8, !tbaa !5
  %2248 = load i32, ptr %15, align 4, !tbaa !14
  %2249 = sext i32 %2248 to i64
  %2250 = getelementptr inbounds ptr, ptr %2247, i64 %2249
  %2251 = load ptr, ptr %2250, align 8, !tbaa !5
  %2252 = load i32, ptr %16, align 4, !tbaa !14
  %2253 = add nsw i32 %2252, 2
  %2254 = sext i32 %2253 to i64
  %2255 = getelementptr inbounds i8, ptr %2251, i64 %2254
  %2256 = load i8, ptr %2255, align 1, !tbaa !16
  %2257 = zext i8 %2256 to i32
  %2258 = sub nsw i32 %2246, %2257
  %2259 = icmp slt i32 %2258, 255
  br i1 %2259, label %2260, label %2284

2260:                                             ; preds = %2219
  %2261 = load ptr, ptr %13, align 8, !tbaa !5
  %2262 = load i32, ptr %15, align 4, !tbaa !14
  %2263 = sext i32 %2262 to i64
  %2264 = getelementptr inbounds ptr, ptr %2261, i64 %2263
  %2265 = load ptr, ptr %2264, align 8, !tbaa !5
  %2266 = load i32, ptr %16, align 4, !tbaa !14
  %2267 = add nsw i32 %2266, 2
  %2268 = sext i32 %2267 to i64
  %2269 = getelementptr inbounds i8, ptr %2265, i64 %2268
  %2270 = load i8, ptr %2269, align 1, !tbaa !16
  %2271 = zext i8 %2270 to i32
  %2272 = load ptr, ptr %14, align 8, !tbaa !5
  %2273 = load i32, ptr %15, align 4, !tbaa !14
  %2274 = sext i32 %2273 to i64
  %2275 = getelementptr inbounds ptr, ptr %2272, i64 %2274
  %2276 = load ptr, ptr %2275, align 8, !tbaa !5
  %2277 = load i32, ptr %16, align 4, !tbaa !14
  %2278 = add nsw i32 %2277, 2
  %2279 = sext i32 %2278 to i64
  %2280 = getelementptr inbounds i8, ptr %2276, i64 %2279
  %2281 = load i8, ptr %2280, align 1, !tbaa !16
  %2282 = zext i8 %2281 to i32
  %2283 = sub nsw i32 %2271, %2282
  br label %2285

2284:                                             ; preds = %2219
  br label %2285

2285:                                             ; preds = %2284, %2260
  %2286 = phi i32 [ %2283, %2260 ], [ 255, %2284 ]
  %2287 = trunc i32 %2286 to i8
  %2288 = load ptr, ptr %6, align 8, !tbaa !5
  %2289 = getelementptr inbounds %struct.MImage, ptr %2288, i32 0, i32 3
  %2290 = load i32, ptr %12, align 4, !tbaa !14
  %2291 = sext i32 %2290 to i64
  %2292 = getelementptr inbounds [4 x ptr], ptr %2289, i64 0, i64 %2291
  %2293 = load ptr, ptr %2292, align 8, !tbaa !5
  %2294 = load i32, ptr %15, align 4, !tbaa !14
  %2295 = sext i32 %2294 to i64
  %2296 = getelementptr inbounds ptr, ptr %2293, i64 %2295
  %2297 = load ptr, ptr %2296, align 8, !tbaa !5
  %2298 = load i32, ptr %16, align 4, !tbaa !14
  %2299 = add nsw i32 %2298, 2
  %2300 = sext i32 %2299 to i64
  %2301 = getelementptr inbounds i8, ptr %2297, i64 %2300
  store i8 %2287, ptr %2301, align 1, !tbaa !16
  %2302 = load ptr, ptr %13, align 8, !tbaa !5
  %2303 = load i32, ptr %15, align 4, !tbaa !14
  %2304 = sext i32 %2303 to i64
  %2305 = getelementptr inbounds ptr, ptr %2302, i64 %2304
  %2306 = load ptr, ptr %2305, align 8, !tbaa !5
  %2307 = load i32, ptr %16, align 4, !tbaa !14
  %2308 = add nsw i32 %2307, 3
  %2309 = sext i32 %2308 to i64
  %2310 = getelementptr inbounds i8, ptr %2306, i64 %2309
  %2311 = load i8, ptr %2310, align 1, !tbaa !16
  %2312 = zext i8 %2311 to i32
  %2313 = load ptr, ptr %14, align 8, !tbaa !5
  %2314 = load i32, ptr %15, align 4, !tbaa !14
  %2315 = sext i32 %2314 to i64
  %2316 = getelementptr inbounds ptr, ptr %2313, i64 %2315
  %2317 = load ptr, ptr %2316, align 8, !tbaa !5
  %2318 = load i32, ptr %16, align 4, !tbaa !14
  %2319 = add nsw i32 %2318, 3
  %2320 = sext i32 %2319 to i64
  %2321 = getelementptr inbounds i8, ptr %2317, i64 %2320
  %2322 = load i8, ptr %2321, align 1, !tbaa !16
  %2323 = zext i8 %2322 to i32
  %2324 = sub nsw i32 %2312, %2323
  %2325 = icmp slt i32 %2324, 255
  br i1 %2325, label %2326, label %2350

2326:                                             ; preds = %2285
  %2327 = load ptr, ptr %13, align 8, !tbaa !5
  %2328 = load i32, ptr %15, align 4, !tbaa !14
  %2329 = sext i32 %2328 to i64
  %2330 = getelementptr inbounds ptr, ptr %2327, i64 %2329
  %2331 = load ptr, ptr %2330, align 8, !tbaa !5
  %2332 = load i32, ptr %16, align 4, !tbaa !14
  %2333 = add nsw i32 %2332, 3
  %2334 = sext i32 %2333 to i64
  %2335 = getelementptr inbounds i8, ptr %2331, i64 %2334
  %2336 = load i8, ptr %2335, align 1, !tbaa !16
  %2337 = zext i8 %2336 to i32
  %2338 = load ptr, ptr %14, align 8, !tbaa !5
  %2339 = load i32, ptr %15, align 4, !tbaa !14
  %2340 = sext i32 %2339 to i64
  %2341 = getelementptr inbounds ptr, ptr %2338, i64 %2340
  %2342 = load ptr, ptr %2341, align 8, !tbaa !5
  %2343 = load i32, ptr %16, align 4, !tbaa !14
  %2344 = add nsw i32 %2343, 3
  %2345 = sext i32 %2344 to i64
  %2346 = getelementptr inbounds i8, ptr %2342, i64 %2345
  %2347 = load i8, ptr %2346, align 1, !tbaa !16
  %2348 = zext i8 %2347 to i32
  %2349 = sub nsw i32 %2337, %2348
  br label %2351

2350:                                             ; preds = %2285
  br label %2351

2351:                                             ; preds = %2350, %2326
  %2352 = phi i32 [ %2349, %2326 ], [ 255, %2350 ]
  %2353 = trunc i32 %2352 to i8
  %2354 = load ptr, ptr %6, align 8, !tbaa !5
  %2355 = getelementptr inbounds %struct.MImage, ptr %2354, i32 0, i32 3
  %2356 = load i32, ptr %12, align 4, !tbaa !14
  %2357 = sext i32 %2356 to i64
  %2358 = getelementptr inbounds [4 x ptr], ptr %2355, i64 0, i64 %2357
  %2359 = load ptr, ptr %2358, align 8, !tbaa !5
  %2360 = load i32, ptr %15, align 4, !tbaa !14
  %2361 = sext i32 %2360 to i64
  %2362 = getelementptr inbounds ptr, ptr %2359, i64 %2361
  %2363 = load ptr, ptr %2362, align 8, !tbaa !5
  %2364 = load i32, ptr %16, align 4, !tbaa !14
  %2365 = add nsw i32 %2364, 3
  %2366 = sext i32 %2365 to i64
  %2367 = getelementptr inbounds i8, ptr %2363, i64 %2366
  store i8 %2353, ptr %2367, align 1, !tbaa !16
  %2368 = load ptr, ptr %13, align 8, !tbaa !5
  %2369 = load i32, ptr %15, align 4, !tbaa !14
  %2370 = sext i32 %2369 to i64
  %2371 = getelementptr inbounds ptr, ptr %2368, i64 %2370
  %2372 = load ptr, ptr %2371, align 8, !tbaa !5
  %2373 = load i32, ptr %16, align 4, !tbaa !14
  %2374 = add nsw i32 %2373, 4
  %2375 = sext i32 %2374 to i64
  %2376 = getelementptr inbounds i8, ptr %2372, i64 %2375
  %2377 = load i8, ptr %2376, align 1, !tbaa !16
  %2378 = zext i8 %2377 to i32
  %2379 = load ptr, ptr %14, align 8, !tbaa !5
  %2380 = load i32, ptr %15, align 4, !tbaa !14
  %2381 = sext i32 %2380 to i64
  %2382 = getelementptr inbounds ptr, ptr %2379, i64 %2381
  %2383 = load ptr, ptr %2382, align 8, !tbaa !5
  %2384 = load i32, ptr %16, align 4, !tbaa !14
  %2385 = add nsw i32 %2384, 4
  %2386 = sext i32 %2385 to i64
  %2387 = getelementptr inbounds i8, ptr %2383, i64 %2386
  %2388 = load i8, ptr %2387, align 1, !tbaa !16
  %2389 = zext i8 %2388 to i32
  %2390 = sub nsw i32 %2378, %2389
  %2391 = icmp slt i32 %2390, 255
  br i1 %2391, label %2392, label %2416

2392:                                             ; preds = %2351
  %2393 = load ptr, ptr %13, align 8, !tbaa !5
  %2394 = load i32, ptr %15, align 4, !tbaa !14
  %2395 = sext i32 %2394 to i64
  %2396 = getelementptr inbounds ptr, ptr %2393, i64 %2395
  %2397 = load ptr, ptr %2396, align 8, !tbaa !5
  %2398 = load i32, ptr %16, align 4, !tbaa !14
  %2399 = add nsw i32 %2398, 4
  %2400 = sext i32 %2399 to i64
  %2401 = getelementptr inbounds i8, ptr %2397, i64 %2400
  %2402 = load i8, ptr %2401, align 1, !tbaa !16
  %2403 = zext i8 %2402 to i32
  %2404 = load ptr, ptr %14, align 8, !tbaa !5
  %2405 = load i32, ptr %15, align 4, !tbaa !14
  %2406 = sext i32 %2405 to i64
  %2407 = getelementptr inbounds ptr, ptr %2404, i64 %2406
  %2408 = load ptr, ptr %2407, align 8, !tbaa !5
  %2409 = load i32, ptr %16, align 4, !tbaa !14
  %2410 = add nsw i32 %2409, 4
  %2411 = sext i32 %2410 to i64
  %2412 = getelementptr inbounds i8, ptr %2408, i64 %2411
  %2413 = load i8, ptr %2412, align 1, !tbaa !16
  %2414 = zext i8 %2413 to i32
  %2415 = sub nsw i32 %2403, %2414
  br label %2417

2416:                                             ; preds = %2351
  br label %2417

2417:                                             ; preds = %2416, %2392
  %2418 = phi i32 [ %2415, %2392 ], [ 255, %2416 ]
  %2419 = trunc i32 %2418 to i8
  %2420 = load ptr, ptr %6, align 8, !tbaa !5
  %2421 = getelementptr inbounds %struct.MImage, ptr %2420, i32 0, i32 3
  %2422 = load i32, ptr %12, align 4, !tbaa !14
  %2423 = sext i32 %2422 to i64
  %2424 = getelementptr inbounds [4 x ptr], ptr %2421, i64 0, i64 %2423
  %2425 = load ptr, ptr %2424, align 8, !tbaa !5
  %2426 = load i32, ptr %15, align 4, !tbaa !14
  %2427 = sext i32 %2426 to i64
  %2428 = getelementptr inbounds ptr, ptr %2425, i64 %2427
  %2429 = load ptr, ptr %2428, align 8, !tbaa !5
  %2430 = load i32, ptr %16, align 4, !tbaa !14
  %2431 = add nsw i32 %2430, 4
  %2432 = sext i32 %2431 to i64
  %2433 = getelementptr inbounds i8, ptr %2429, i64 %2432
  store i8 %2419, ptr %2433, align 1, !tbaa !16
  br label %9454

2434:                                             ; preds = %2096
  %2435 = load ptr, ptr %6, align 8, !tbaa !5
  %2436 = getelementptr inbounds %struct.MImage, ptr %2435, i32 0, i32 2
  %2437 = load i32, ptr %2436, align 8, !tbaa !13
  %2438 = load i32, ptr %16, align 4, !tbaa !14
  %2439 = sub nsw i32 %2437, %2438
  %2440 = icmp eq i32 %2439, 6
  br i1 %2440, label %2441, label %2838

2441:                                             ; preds = %2434
  %2442 = load ptr, ptr %13, align 8, !tbaa !5
  %2443 = load i32, ptr %15, align 4, !tbaa !14
  %2444 = sext i32 %2443 to i64
  %2445 = getelementptr inbounds ptr, ptr %2442, i64 %2444
  %2446 = load ptr, ptr %2445, align 8, !tbaa !5
  %2447 = load i32, ptr %16, align 4, !tbaa !14
  %2448 = add nsw i32 %2447, 0
  %2449 = sext i32 %2448 to i64
  %2450 = getelementptr inbounds i8, ptr %2446, i64 %2449
  %2451 = load i8, ptr %2450, align 1, !tbaa !16
  %2452 = zext i8 %2451 to i32
  %2453 = load ptr, ptr %14, align 8, !tbaa !5
  %2454 = load i32, ptr %15, align 4, !tbaa !14
  %2455 = sext i32 %2454 to i64
  %2456 = getelementptr inbounds ptr, ptr %2453, i64 %2455
  %2457 = load ptr, ptr %2456, align 8, !tbaa !5
  %2458 = load i32, ptr %16, align 4, !tbaa !14
  %2459 = add nsw i32 %2458, 0
  %2460 = sext i32 %2459 to i64
  %2461 = getelementptr inbounds i8, ptr %2457, i64 %2460
  %2462 = load i8, ptr %2461, align 1, !tbaa !16
  %2463 = zext i8 %2462 to i32
  %2464 = sub nsw i32 %2452, %2463
  %2465 = icmp slt i32 %2464, 255
  br i1 %2465, label %2466, label %2490

2466:                                             ; preds = %2441
  %2467 = load ptr, ptr %13, align 8, !tbaa !5
  %2468 = load i32, ptr %15, align 4, !tbaa !14
  %2469 = sext i32 %2468 to i64
  %2470 = getelementptr inbounds ptr, ptr %2467, i64 %2469
  %2471 = load ptr, ptr %2470, align 8, !tbaa !5
  %2472 = load i32, ptr %16, align 4, !tbaa !14
  %2473 = add nsw i32 %2472, 0
  %2474 = sext i32 %2473 to i64
  %2475 = getelementptr inbounds i8, ptr %2471, i64 %2474
  %2476 = load i8, ptr %2475, align 1, !tbaa !16
  %2477 = zext i8 %2476 to i32
  %2478 = load ptr, ptr %14, align 8, !tbaa !5
  %2479 = load i32, ptr %15, align 4, !tbaa !14
  %2480 = sext i32 %2479 to i64
  %2481 = getelementptr inbounds ptr, ptr %2478, i64 %2480
  %2482 = load ptr, ptr %2481, align 8, !tbaa !5
  %2483 = load i32, ptr %16, align 4, !tbaa !14
  %2484 = add nsw i32 %2483, 0
  %2485 = sext i32 %2484 to i64
  %2486 = getelementptr inbounds i8, ptr %2482, i64 %2485
  %2487 = load i8, ptr %2486, align 1, !tbaa !16
  %2488 = zext i8 %2487 to i32
  %2489 = sub nsw i32 %2477, %2488
  br label %2491

2490:                                             ; preds = %2441
  br label %2491

2491:                                             ; preds = %2490, %2466
  %2492 = phi i32 [ %2489, %2466 ], [ 255, %2490 ]
  %2493 = trunc i32 %2492 to i8
  %2494 = load ptr, ptr %6, align 8, !tbaa !5
  %2495 = getelementptr inbounds %struct.MImage, ptr %2494, i32 0, i32 3
  %2496 = load i32, ptr %12, align 4, !tbaa !14
  %2497 = sext i32 %2496 to i64
  %2498 = getelementptr inbounds [4 x ptr], ptr %2495, i64 0, i64 %2497
  %2499 = load ptr, ptr %2498, align 8, !tbaa !5
  %2500 = load i32, ptr %15, align 4, !tbaa !14
  %2501 = sext i32 %2500 to i64
  %2502 = getelementptr inbounds ptr, ptr %2499, i64 %2501
  %2503 = load ptr, ptr %2502, align 8, !tbaa !5
  %2504 = load i32, ptr %16, align 4, !tbaa !14
  %2505 = add nsw i32 %2504, 0
  %2506 = sext i32 %2505 to i64
  %2507 = getelementptr inbounds i8, ptr %2503, i64 %2506
  store i8 %2493, ptr %2507, align 1, !tbaa !16
  %2508 = load ptr, ptr %13, align 8, !tbaa !5
  %2509 = load i32, ptr %15, align 4, !tbaa !14
  %2510 = sext i32 %2509 to i64
  %2511 = getelementptr inbounds ptr, ptr %2508, i64 %2510
  %2512 = load ptr, ptr %2511, align 8, !tbaa !5
  %2513 = load i32, ptr %16, align 4, !tbaa !14
  %2514 = add nsw i32 %2513, 1
  %2515 = sext i32 %2514 to i64
  %2516 = getelementptr inbounds i8, ptr %2512, i64 %2515
  %2517 = load i8, ptr %2516, align 1, !tbaa !16
  %2518 = zext i8 %2517 to i32
  %2519 = load ptr, ptr %14, align 8, !tbaa !5
  %2520 = load i32, ptr %15, align 4, !tbaa !14
  %2521 = sext i32 %2520 to i64
  %2522 = getelementptr inbounds ptr, ptr %2519, i64 %2521
  %2523 = load ptr, ptr %2522, align 8, !tbaa !5
  %2524 = load i32, ptr %16, align 4, !tbaa !14
  %2525 = add nsw i32 %2524, 1
  %2526 = sext i32 %2525 to i64
  %2527 = getelementptr inbounds i8, ptr %2523, i64 %2526
  %2528 = load i8, ptr %2527, align 1, !tbaa !16
  %2529 = zext i8 %2528 to i32
  %2530 = sub nsw i32 %2518, %2529
  %2531 = icmp slt i32 %2530, 255
  br i1 %2531, label %2532, label %2556

2532:                                             ; preds = %2491
  %2533 = load ptr, ptr %13, align 8, !tbaa !5
  %2534 = load i32, ptr %15, align 4, !tbaa !14
  %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 %16, align 4, !tbaa !14
  %2539 = add nsw i32 %2538, 1
  %2540 = sext i32 %2539 to i64
  %2541 = getelementptr inbounds i8, ptr %2537, i64 %2540
  %2542 = load i8, ptr %2541, align 1, !tbaa !16
  %2543 = zext i8 %2542 to i32
  %2544 = load ptr, ptr %14, align 8, !tbaa !5
  %2545 = load i32, ptr %15, align 4, !tbaa !14
  %2546 = sext i32 %2545 to i64
  %2547 = getelementptr inbounds ptr, ptr %2544, i64 %2546
  %2548 = load ptr, ptr %2547, align 8, !tbaa !5
  %2549 = load i32, ptr %16, align 4, !tbaa !14
  %2550 = add nsw i32 %2549, 1
  %2551 = sext i32 %2550 to i64
  %2552 = getelementptr inbounds i8, ptr %2548, i64 %2551
  %2553 = load i8, ptr %2552, align 1, !tbaa !16
  %2554 = zext i8 %2553 to i32
  %2555 = sub nsw i32 %2543, %2554
  br label %2557

2556:                                             ; preds = %2491
  br label %2557

2557:                                             ; preds = %2556, %2532
  %2558 = phi i32 [ %2555, %2532 ], [ 255, %2556 ]
  %2559 = trunc i32 %2558 to i8
  %2560 = load ptr, ptr %6, align 8, !tbaa !5
  %2561 = getelementptr inbounds %struct.MImage, ptr %2560, i32 0, i32 3
  %2562 = load i32, ptr %12, align 4, !tbaa !14
  %2563 = sext i32 %2562 to i64
  %2564 = getelementptr inbounds [4 x ptr], ptr %2561, i64 0, i64 %2563
  %2565 = load ptr, ptr %2564, align 8, !tbaa !5
  %2566 = load i32, ptr %15, align 4, !tbaa !14
  %2567 = sext i32 %2566 to i64
  %2568 = getelementptr inbounds ptr, ptr %2565, i64 %2567
  %2569 = load ptr, ptr %2568, align 8, !tbaa !5
  %2570 = load i32, ptr %16, align 4, !tbaa !14
  %2571 = add nsw i32 %2570, 1
  %2572 = sext i32 %2571 to i64
  %2573 = getelementptr inbounds i8, ptr %2569, i64 %2572
  store i8 %2559, ptr %2573, align 1, !tbaa !16
  %2574 = load ptr, ptr %13, align 8, !tbaa !5
  %2575 = load i32, ptr %15, align 4, !tbaa !14
  %2576 = sext i32 %2575 to i64
  %2577 = getelementptr inbounds ptr, ptr %2574, i64 %2576
  %2578 = load ptr, ptr %2577, align 8, !tbaa !5
  %2579 = load i32, ptr %16, align 4, !tbaa !14
  %2580 = add nsw i32 %2579, 2
  %2581 = sext i32 %2580 to i64
  %2582 = getelementptr inbounds i8, ptr %2578, i64 %2581
  %2583 = load i8, ptr %2582, align 1, !tbaa !16
  %2584 = zext i8 %2583 to i32
  %2585 = load ptr, ptr %14, align 8, !tbaa !5
  %2586 = load i32, ptr %15, align 4, !tbaa !14
  %2587 = sext i32 %2586 to i64
  %2588 = getelementptr inbounds ptr, ptr %2585, i64 %2587
  %2589 = load ptr, ptr %2588, align 8, !tbaa !5
  %2590 = load i32, ptr %16, align 4, !tbaa !14
  %2591 = add nsw i32 %2590, 2
  %2592 = sext i32 %2591 to i64
  %2593 = getelementptr inbounds i8, ptr %2589, i64 %2592
  %2594 = load i8, ptr %2593, align 1, !tbaa !16
  %2595 = zext i8 %2594 to i32
  %2596 = sub nsw i32 %2584, %2595
  %2597 = icmp slt i32 %2596, 255
  br i1 %2597, label %2598, label %2622

2598:                                             ; preds = %2557
  %2599 = load ptr, ptr %13, align 8, !tbaa !5
  %2600 = load i32, ptr %15, align 4, !tbaa !14
  %2601 = sext i32 %2600 to i64
  %2602 = getelementptr inbounds ptr, ptr %2599, i64 %2601
  %2603 = load ptr, ptr %2602, align 8, !tbaa !5
  %2604 = load i32, ptr %16, align 4, !tbaa !14
  %2605 = add nsw i32 %2604, 2
  %2606 = sext i32 %2605 to i64
  %2607 = getelementptr inbounds i8, ptr %2603, i64 %2606
  %2608 = load i8, ptr %2607, align 1, !tbaa !16
  %2609 = zext i8 %2608 to i32
  %2610 = load ptr, ptr %14, align 8, !tbaa !5
  %2611 = load i32, ptr %15, align 4, !tbaa !14
  %2612 = sext i32 %2611 to i64
  %2613 = getelementptr inbounds ptr, ptr %2610, i64 %2612
  %2614 = load ptr, ptr %2613, align 8, !tbaa !5
  %2615 = load i32, ptr %16, align 4, !tbaa !14
  %2616 = add nsw i32 %2615, 2
  %2617 = sext i32 %2616 to i64
  %2618 = getelementptr inbounds i8, ptr %2614, i64 %2617
  %2619 = load i8, ptr %2618, align 1, !tbaa !16
  %2620 = zext i8 %2619 to i32
  %2621 = sub nsw i32 %2609, %2620
  br label %2623

2622:                                             ; preds = %2557
  br label %2623

2623:                                             ; preds = %2622, %2598
  %2624 = phi i32 [ %2621, %2598 ], [ 255, %2622 ]
  %2625 = trunc i32 %2624 to i8
  %2626 = load ptr, ptr %6, align 8, !tbaa !5
  %2627 = getelementptr inbounds %struct.MImage, ptr %2626, i32 0, i32 3
  %2628 = load i32, ptr %12, align 4, !tbaa !14
  %2629 = sext i32 %2628 to i64
  %2630 = getelementptr inbounds [4 x ptr], ptr %2627, i64 0, i64 %2629
  %2631 = load ptr, ptr %2630, align 8, !tbaa !5
  %2632 = load i32, ptr %15, align 4, !tbaa !14
  %2633 = sext i32 %2632 to i64
  %2634 = getelementptr inbounds ptr, ptr %2631, i64 %2633
  %2635 = load ptr, ptr %2634, align 8, !tbaa !5
  %2636 = load i32, ptr %16, align 4, !tbaa !14
  %2637 = add nsw i32 %2636, 2
  %2638 = sext i32 %2637 to i64
  %2639 = getelementptr inbounds i8, ptr %2635, i64 %2638
  store i8 %2625, ptr %2639, align 1, !tbaa !16
  %2640 = load ptr, ptr %13, align 8, !tbaa !5
  %2641 = load i32, ptr %15, align 4, !tbaa !14
  %2642 = sext i32 %2641 to i64
  %2643 = getelementptr inbounds ptr, ptr %2640, i64 %2642
  %2644 = load ptr, ptr %2643, align 8, !tbaa !5
  %2645 = load i32, ptr %16, align 4, !tbaa !14
  %2646 = add nsw i32 %2645, 3
  %2647 = sext i32 %2646 to i64
  %2648 = getelementptr inbounds i8, ptr %2644, i64 %2647
  %2649 = load i8, ptr %2648, align 1, !tbaa !16
  %2650 = zext i8 %2649 to i32
  %2651 = load ptr, ptr %14, align 8, !tbaa !5
  %2652 = load i32, ptr %15, align 4, !tbaa !14
  %2653 = sext i32 %2652 to i64
  %2654 = getelementptr inbounds ptr, ptr %2651, i64 %2653
  %2655 = load ptr, ptr %2654, align 8, !tbaa !5
  %2656 = load i32, ptr %16, align 4, !tbaa !14
  %2657 = add nsw i32 %2656, 3
  %2658 = sext i32 %2657 to i64
  %2659 = getelementptr inbounds i8, ptr %2655, i64 %2658
  %2660 = load i8, ptr %2659, align 1, !tbaa !16
  %2661 = zext i8 %2660 to i32
  %2662 = sub nsw i32 %2650, %2661
  %2663 = icmp slt i32 %2662, 255
  br i1 %2663, label %2664, label %2688

2664:                                             ; preds = %2623
  %2665 = load ptr, ptr %13, align 8, !tbaa !5
  %2666 = load i32, ptr %15, align 4, !tbaa !14
  %2667 = sext i32 %2666 to i64
  %2668 = getelementptr inbounds ptr, ptr %2665, i64 %2667
  %2669 = load ptr, ptr %2668, align 8, !tbaa !5
  %2670 = load i32, ptr %16, align 4, !tbaa !14
  %2671 = add nsw i32 %2670, 3
  %2672 = sext i32 %2671 to i64
  %2673 = getelementptr inbounds i8, ptr %2669, i64 %2672
  %2674 = load i8, ptr %2673, align 1, !tbaa !16
  %2675 = zext i8 %2674 to i32
  %2676 = load ptr, ptr %14, align 8, !tbaa !5
  %2677 = load i32, ptr %15, align 4, !tbaa !14
  %2678 = sext i32 %2677 to i64
  %2679 = getelementptr inbounds ptr, ptr %2676, i64 %2678
  %2680 = load ptr, ptr %2679, align 8, !tbaa !5
  %2681 = load i32, ptr %16, align 4, !tbaa !14
  %2682 = add nsw i32 %2681, 3
  %2683 = sext i32 %2682 to i64
  %2684 = getelementptr inbounds i8, ptr %2680, i64 %2683
  %2685 = load i8, ptr %2684, align 1, !tbaa !16
  %2686 = zext i8 %2685 to i32
  %2687 = sub nsw i32 %2675, %2686
  br label %2689

2688:                                             ; preds = %2623
  br label %2689

2689:                                             ; preds = %2688, %2664
  %2690 = phi i32 [ %2687, %2664 ], [ 255, %2688 ]
  %2691 = trunc i32 %2690 to i8
  %2692 = load ptr, ptr %6, align 8, !tbaa !5
  %2693 = getelementptr inbounds %struct.MImage, ptr %2692, i32 0, i32 3
  %2694 = load i32, ptr %12, align 4, !tbaa !14
  %2695 = sext i32 %2694 to i64
  %2696 = getelementptr inbounds [4 x ptr], ptr %2693, i64 0, i64 %2695
  %2697 = load ptr, ptr %2696, align 8, !tbaa !5
  %2698 = load i32, ptr %15, align 4, !tbaa !14
  %2699 = sext i32 %2698 to i64
  %2700 = getelementptr inbounds ptr, ptr %2697, i64 %2699
  %2701 = load ptr, ptr %2700, align 8, !tbaa !5
  %2702 = load i32, ptr %16, align 4, !tbaa !14
  %2703 = add nsw i32 %2702, 3
  %2704 = sext i32 %2703 to i64
  %2705 = getelementptr inbounds i8, ptr %2701, i64 %2704
  store i8 %2691, ptr %2705, align 1, !tbaa !16
  %2706 = load ptr, ptr %13, align 8, !tbaa !5
  %2707 = load i32, ptr %15, align 4, !tbaa !14
  %2708 = sext i32 %2707 to i64
  %2709 = getelementptr inbounds ptr, ptr %2706, i64 %2708
  %2710 = load ptr, ptr %2709, align 8, !tbaa !5
  %2711 = load i32, ptr %16, align 4, !tbaa !14
  %2712 = add nsw i32 %2711, 4
  %2713 = sext i32 %2712 to i64
  %2714 = getelementptr inbounds i8, ptr %2710, i64 %2713
  %2715 = load i8, ptr %2714, align 1, !tbaa !16
  %2716 = zext i8 %2715 to i32
  %2717 = load ptr, ptr %14, align 8, !tbaa !5
  %2718 = load i32, ptr %15, align 4, !tbaa !14
  %2719 = sext i32 %2718 to i64
  %2720 = getelementptr inbounds ptr, ptr %2717, i64 %2719
  %2721 = load ptr, ptr %2720, align 8, !tbaa !5
  %2722 = load i32, ptr %16, align 4, !tbaa !14
  %2723 = add nsw i32 %2722, 4
  %2724 = sext i32 %2723 to i64
  %2725 = getelementptr inbounds i8, ptr %2721, i64 %2724
  %2726 = load i8, ptr %2725, align 1, !tbaa !16
  %2727 = zext i8 %2726 to i32
  %2728 = sub nsw i32 %2716, %2727
  %2729 = icmp slt i32 %2728, 255
  br i1 %2729, label %2730, label %2754

2730:                                             ; preds = %2689
  %2731 = load ptr, ptr %13, align 8, !tbaa !5
  %2732 = load i32, ptr %15, align 4, !tbaa !14
  %2733 = sext i32 %2732 to i64
  %2734 = getelementptr inbounds ptr, ptr %2731, i64 %2733
  %2735 = load ptr, ptr %2734, align 8, !tbaa !5
  %2736 = load i32, ptr %16, align 4, !tbaa !14
  %2737 = add nsw i32 %2736, 4
  %2738 = sext i32 %2737 to i64
  %2739 = getelementptr inbounds i8, ptr %2735, i64 %2738
  %2740 = load i8, ptr %2739, align 1, !tbaa !16
  %2741 = zext i8 %2740 to i32
  %2742 = load ptr, ptr %14, align 8, !tbaa !5
  %2743 = load i32, ptr %15, align 4, !tbaa !14
  %2744 = sext i32 %2743 to i64
  %2745 = getelementptr inbounds ptr, ptr %2742, i64 %2744
  %2746 = load ptr, ptr %2745, align 8, !tbaa !5
  %2747 = load i32, ptr %16, align 4, !tbaa !14
  %2748 = add nsw i32 %2747, 4
  %2749 = sext i32 %2748 to i64
  %2750 = getelementptr inbounds i8, ptr %2746, i64 %2749
  %2751 = load i8, ptr %2750, align 1, !tbaa !16
  %2752 = zext i8 %2751 to i32
  %2753 = sub nsw i32 %2741, %2752
  br label %2755

2754:                                             ; preds = %2689
  br label %2755

2755:                                             ; preds = %2754, %2730
  %2756 = phi i32 [ %2753, %2730 ], [ 255, %2754 ]
  %2757 = trunc i32 %2756 to i8
  %2758 = load ptr, ptr %6, align 8, !tbaa !5
  %2759 = getelementptr inbounds %struct.MImage, ptr %2758, i32 0, i32 3
  %2760 = load i32, ptr %12, align 4, !tbaa !14
  %2761 = sext i32 %2760 to i64
  %2762 = getelementptr inbounds [4 x ptr], ptr %2759, i64 0, i64 %2761
  %2763 = load ptr, ptr %2762, align 8, !tbaa !5
  %2764 = load i32, ptr %15, align 4, !tbaa !14
  %2765 = sext i32 %2764 to i64
  %2766 = getelementptr inbounds ptr, ptr %2763, i64 %2765
  %2767 = load ptr, ptr %2766, align 8, !tbaa !5
  %2768 = load i32, ptr %16, align 4, !tbaa !14
  %2769 = add nsw i32 %2768, 4
  %2770 = sext i32 %2769 to i64
  %2771 = getelementptr inbounds i8, ptr %2767, i64 %2770
  store i8 %2757, ptr %2771, align 1, !tbaa !16
  %2772 = load ptr, ptr %13, align 8, !tbaa !5
  %2773 = load i32, ptr %15, align 4, !tbaa !14
  %2774 = sext i32 %2773 to i64
  %2775 = getelementptr inbounds ptr, ptr %2772, i64 %2774
  %2776 = load ptr, ptr %2775, align 8, !tbaa !5
  %2777 = load i32, ptr %16, align 4, !tbaa !14
  %2778 = add nsw i32 %2777, 5
  %2779 = sext i32 %2778 to i64
  %2780 = getelementptr inbounds i8, ptr %2776, i64 %2779
  %2781 = load i8, ptr %2780, align 1, !tbaa !16
  %2782 = zext i8 %2781 to i32
  %2783 = load ptr, ptr %14, align 8, !tbaa !5
  %2784 = load i32, ptr %15, align 4, !tbaa !14
  %2785 = sext i32 %2784 to i64
  %2786 = getelementptr inbounds ptr, ptr %2783, i64 %2785
  %2787 = load ptr, ptr %2786, align 8, !tbaa !5
  %2788 = load i32, ptr %16, align 4, !tbaa !14
  %2789 = add nsw i32 %2788, 5
  %2790 = sext i32 %2789 to i64
  %2791 = getelementptr inbounds i8, ptr %2787, i64 %2790
  %2792 = load i8, ptr %2791, align 1, !tbaa !16
  %2793 = zext i8 %2792 to i32
  %2794 = sub nsw i32 %2782, %2793
  %2795 = icmp slt i32 %2794, 255
  br i1 %2795, label %2796, label %2820

2796:                                             ; preds = %2755
  %2797 = load ptr, ptr %13, align 8, !tbaa !5
  %2798 = load i32, ptr %15, align 4, !tbaa !14
  %2799 = sext i32 %2798 to i64
  %2800 = getelementptr inbounds ptr, ptr %2797, i64 %2799
  %2801 = load ptr, ptr %2800, align 8, !tbaa !5
  %2802 = load i32, ptr %16, align 4, !tbaa !14
  %2803 = add nsw i32 %2802, 5
  %2804 = sext i32 %2803 to i64
  %2805 = getelementptr inbounds i8, ptr %2801, i64 %2804
  %2806 = load i8, ptr %2805, align 1, !tbaa !16
  %2807 = zext i8 %2806 to i32
  %2808 = load ptr, ptr %14, align 8, !tbaa !5
  %2809 = load i32, ptr %15, align 4, !tbaa !14
  %2810 = sext i32 %2809 to i64
  %2811 = getelementptr inbounds ptr, ptr %2808, i64 %2810
  %2812 = load ptr, ptr %2811, align 8, !tbaa !5
  %2813 = load i32, ptr %16, align 4, !tbaa !14
  %2814 = add nsw i32 %2813, 5
  %2815 = sext i32 %2814 to i64
  %2816 = getelementptr inbounds i8, ptr %2812, i64 %2815
  %2817 = load i8, ptr %2816, align 1, !tbaa !16
  %2818 = zext i8 %2817 to i32
  %2819 = sub nsw i32 %2807, %2818
  br label %2821

2820:                                             ; preds = %2755
  br label %2821

2821:                                             ; preds = %2820, %2796
  %2822 = phi i32 [ %2819, %2796 ], [ 255, %2820 ]
  %2823 = trunc i32 %2822 to i8
  %2824 = load ptr, ptr %6, align 8, !tbaa !5
  %2825 = getelementptr inbounds %struct.MImage, ptr %2824, i32 0, i32 3
  %2826 = load i32, ptr %12, align 4, !tbaa !14
  %2827 = sext i32 %2826 to i64
  %2828 = getelementptr inbounds [4 x ptr], ptr %2825, i64 0, i64 %2827
  %2829 = load ptr, ptr %2828, align 8, !tbaa !5
  %2830 = load i32, ptr %15, align 4, !tbaa !14
  %2831 = sext i32 %2830 to i64
  %2832 = getelementptr inbounds ptr, ptr %2829, i64 %2831
  %2833 = load ptr, ptr %2832, align 8, !tbaa !5
  %2834 = load i32, ptr %16, align 4, !tbaa !14
  %2835 = add nsw i32 %2834, 5
  %2836 = sext i32 %2835 to i64
  %2837 = getelementptr inbounds i8, ptr %2833, i64 %2836
  store i8 %2823, ptr %2837, align 1, !tbaa !16
  br label %9453

2838:                                             ; preds = %2434
  %2839 = load ptr, ptr %6, align 8, !tbaa !5
  %2840 = getelementptr inbounds %struct.MImage, ptr %2839, i32 0, i32 2
  %2841 = load i32, ptr %2840, align 8, !tbaa !13
  %2842 = load i32, ptr %16, align 4, !tbaa !14
  %2843 = sub nsw i32 %2841, %2842
  %2844 = icmp eq i32 %2843, 7
  br i1 %2844, label %2845, label %3308

2845:                                             ; preds = %2838
  %2846 = load ptr, ptr %13, align 8, !tbaa !5
  %2847 = load i32, ptr %15, align 4, !tbaa !14
  %2848 = sext i32 %2847 to i64
  %2849 = getelementptr inbounds ptr, ptr %2846, i64 %2848
  %2850 = load ptr, ptr %2849, align 8, !tbaa !5
  %2851 = load i32, ptr %16, align 4, !tbaa !14
  %2852 = add nsw i32 %2851, 0
  %2853 = sext i32 %2852 to i64
  %2854 = getelementptr inbounds i8, ptr %2850, i64 %2853
  %2855 = load i8, ptr %2854, align 1, !tbaa !16
  %2856 = zext i8 %2855 to i32
  %2857 = load ptr, ptr %14, align 8, !tbaa !5
  %2858 = load i32, ptr %15, align 4, !tbaa !14
  %2859 = sext i32 %2858 to i64
  %2860 = getelementptr inbounds ptr, ptr %2857, i64 %2859
  %2861 = load ptr, ptr %2860, align 8, !tbaa !5
  %2862 = load i32, ptr %16, align 4, !tbaa !14
  %2863 = add nsw i32 %2862, 0
  %2864 = sext i32 %2863 to i64
  %2865 = getelementptr inbounds i8, ptr %2861, i64 %2864
  %2866 = load i8, ptr %2865, align 1, !tbaa !16
  %2867 = zext i8 %2866 to i32
  %2868 = sub nsw i32 %2856, %2867
  %2869 = icmp slt i32 %2868, 255
  br i1 %2869, label %2870, label %2894

2870:                                             ; preds = %2845
  %2871 = load ptr, ptr %13, align 8, !tbaa !5
  %2872 = load i32, ptr %15, align 4, !tbaa !14
  %2873 = sext i32 %2872 to i64
  %2874 = getelementptr inbounds ptr, ptr %2871, i64 %2873
  %2875 = load ptr, ptr %2874, align 8, !tbaa !5
  %2876 = load i32, ptr %16, align 4, !tbaa !14
  %2877 = add nsw i32 %2876, 0
  %2878 = sext i32 %2877 to i64
  %2879 = getelementptr inbounds i8, ptr %2875, i64 %2878
  %2880 = load i8, ptr %2879, align 1, !tbaa !16
  %2881 = zext i8 %2880 to i32
  %2882 = load ptr, ptr %14, align 8, !tbaa !5
  %2883 = load i32, ptr %15, align 4, !tbaa !14
  %2884 = sext i32 %2883 to i64
  %2885 = getelementptr inbounds ptr, ptr %2882, i64 %2884
  %2886 = load ptr, ptr %2885, align 8, !tbaa !5
  %2887 = load i32, ptr %16, align 4, !tbaa !14
  %2888 = add nsw i32 %2887, 0
  %2889 = sext i32 %2888 to i64
  %2890 = getelementptr inbounds i8, ptr %2886, i64 %2889
  %2891 = load i8, ptr %2890, align 1, !tbaa !16
  %2892 = zext i8 %2891 to i32
  %2893 = sub nsw i32 %2881, %2892
  br label %2895

2894:                                             ; preds = %2845
  br label %2895

2895:                                             ; preds = %2894, %2870
  %2896 = phi i32 [ %2893, %2870 ], [ 255, %2894 ]
  %2897 = trunc i32 %2896 to i8
  %2898 = load ptr, ptr %6, align 8, !tbaa !5
  %2899 = getelementptr inbounds %struct.MImage, ptr %2898, i32 0, i32 3
  %2900 = load i32, ptr %12, align 4, !tbaa !14
  %2901 = sext i32 %2900 to i64
  %2902 = getelementptr inbounds [4 x ptr], ptr %2899, i64 0, i64 %2901
  %2903 = load ptr, ptr %2902, align 8, !tbaa !5
  %2904 = load i32, ptr %15, align 4, !tbaa !14
  %2905 = sext i32 %2904 to i64
  %2906 = getelementptr inbounds ptr, ptr %2903, i64 %2905
  %2907 = load ptr, ptr %2906, align 8, !tbaa !5
  %2908 = load i32, ptr %16, align 4, !tbaa !14
  %2909 = add nsw i32 %2908, 0
  %2910 = sext i32 %2909 to i64
  %2911 = getelementptr inbounds i8, ptr %2907, i64 %2910
  store i8 %2897, ptr %2911, align 1, !tbaa !16
  %2912 = load ptr, ptr %13, align 8, !tbaa !5
  %2913 = load i32, ptr %15, align 4, !tbaa !14
  %2914 = sext i32 %2913 to i64
  %2915 = getelementptr inbounds ptr, ptr %2912, i64 %2914
  %2916 = load ptr, ptr %2915, align 8, !tbaa !5
  %2917 = load i32, ptr %16, align 4, !tbaa !14
  %2918 = add nsw i32 %2917, 1
  %2919 = sext i32 %2918 to i64
  %2920 = getelementptr inbounds i8, ptr %2916, i64 %2919
  %2921 = load i8, ptr %2920, align 1, !tbaa !16
  %2922 = zext i8 %2921 to i32
  %2923 = load ptr, ptr %14, align 8, !tbaa !5
  %2924 = load i32, ptr %15, align 4, !tbaa !14
  %2925 = sext i32 %2924 to i64
  %2926 = getelementptr inbounds ptr, ptr %2923, i64 %2925
  %2927 = load ptr, ptr %2926, align 8, !tbaa !5
  %2928 = load i32, ptr %16, align 4, !tbaa !14
  %2929 = add nsw i32 %2928, 1
  %2930 = sext i32 %2929 to i64
  %2931 = getelementptr inbounds i8, ptr %2927, i64 %2930
  %2932 = load i8, ptr %2931, align 1, !tbaa !16
  %2933 = zext i8 %2932 to i32
  %2934 = sub nsw i32 %2922, %2933
  %2935 = icmp slt i32 %2934, 255
  br i1 %2935, label %2936, label %2960

2936:                                             ; preds = %2895
  %2937 = load ptr, ptr %13, align 8, !tbaa !5
  %2938 = load i32, ptr %15, align 4, !tbaa !14
  %2939 = sext i32 %2938 to i64
  %2940 = getelementptr inbounds ptr, ptr %2937, i64 %2939
  %2941 = load ptr, ptr %2940, align 8, !tbaa !5
  %2942 = load i32, ptr %16, align 4, !tbaa !14
  %2943 = add nsw i32 %2942, 1
  %2944 = sext i32 %2943 to i64
  %2945 = getelementptr inbounds i8, ptr %2941, i64 %2944
  %2946 = load i8, ptr %2945, align 1, !tbaa !16
  %2947 = zext i8 %2946 to i32
  %2948 = load ptr, ptr %14, align 8, !tbaa !5
  %2949 = load i32, ptr %15, align 4, !tbaa !14
  %2950 = sext i32 %2949 to i64
  %2951 = getelementptr inbounds ptr, ptr %2948, i64 %2950
  %2952 = load ptr, ptr %2951, align 8, !tbaa !5
  %2953 = load i32, ptr %16, align 4, !tbaa !14
  %2954 = add nsw i32 %2953, 1
  %2955 = sext i32 %2954 to i64
  %2956 = getelementptr inbounds i8, ptr %2952, i64 %2955
  %2957 = load i8, ptr %2956, align 1, !tbaa !16
  %2958 = zext i8 %2957 to i32
  %2959 = sub nsw i32 %2947, %2958
  br label %2961

2960:                                             ; preds = %2895
  br label %2961

2961:                                             ; preds = %2960, %2936
  %2962 = phi i32 [ %2959, %2936 ], [ 255, %2960 ]
  %2963 = trunc i32 %2962 to i8
  %2964 = load ptr, ptr %6, align 8, !tbaa !5
  %2965 = getelementptr inbounds %struct.MImage, ptr %2964, i32 0, i32 3
  %2966 = load i32, ptr %12, align 4, !tbaa !14
  %2967 = sext i32 %2966 to i64
  %2968 = getelementptr inbounds [4 x ptr], ptr %2965, i64 0, i64 %2967
  %2969 = load ptr, ptr %2968, align 8, !tbaa !5
  %2970 = load i32, ptr %15, align 4, !tbaa !14
  %2971 = sext i32 %2970 to i64
  %2972 = getelementptr inbounds ptr, ptr %2969, i64 %2971
  %2973 = load ptr, ptr %2972, align 8, !tbaa !5
  %2974 = load i32, ptr %16, align 4, !tbaa !14
  %2975 = add nsw i32 %2974, 1
  %2976 = sext i32 %2975 to i64
  %2977 = getelementptr inbounds i8, ptr %2973, i64 %2976
  store i8 %2963, ptr %2977, align 1, !tbaa !16
  %2978 = load ptr, ptr %13, align 8, !tbaa !5
  %2979 = load i32, ptr %15, align 4, !tbaa !14
  %2980 = sext i32 %2979 to i64
  %2981 = getelementptr inbounds ptr, ptr %2978, i64 %2980
  %2982 = load ptr, ptr %2981, align 8, !tbaa !5
  %2983 = load i32, ptr %16, align 4, !tbaa !14
  %2984 = add nsw i32 %2983, 2
  %2985 = sext i32 %2984 to i64
  %2986 = getelementptr inbounds i8, ptr %2982, i64 %2985
  %2987 = load i8, ptr %2986, align 1, !tbaa !16
  %2988 = zext i8 %2987 to i32
  %2989 = load ptr, ptr %14, align 8, !tbaa !5
  %2990 = load i32, ptr %15, align 4, !tbaa !14
  %2991 = sext i32 %2990 to i64
  %2992 = getelementptr inbounds ptr, ptr %2989, i64 %2991
  %2993 = load ptr, ptr %2992, align 8, !tbaa !5
  %2994 = load i32, ptr %16, align 4, !tbaa !14
  %2995 = add nsw i32 %2994, 2
  %2996 = sext i32 %2995 to i64
  %2997 = getelementptr inbounds i8, ptr %2993, i64 %2996
  %2998 = load i8, ptr %2997, align 1, !tbaa !16
  %2999 = zext i8 %2998 to i32
  %3000 = sub nsw i32 %2988, %2999
  %3001 = icmp slt i32 %3000, 255
  br i1 %3001, label %3002, label %3026

3002:                                             ; preds = %2961
  %3003 = load ptr, ptr %13, align 8, !tbaa !5
  %3004 = load i32, ptr %15, align 4, !tbaa !14
  %3005 = sext i32 %3004 to i64
  %3006 = getelementptr inbounds ptr, ptr %3003, i64 %3005
  %3007 = load ptr, ptr %3006, align 8, !tbaa !5
  %3008 = load i32, ptr %16, align 4, !tbaa !14
  %3009 = add nsw i32 %3008, 2
  %3010 = sext i32 %3009 to i64
  %3011 = getelementptr inbounds i8, ptr %3007, i64 %3010
  %3012 = load i8, ptr %3011, align 1, !tbaa !16
  %3013 = zext i8 %3012 to i32
  %3014 = load ptr, ptr %14, align 8, !tbaa !5
  %3015 = load i32, ptr %15, align 4, !tbaa !14
  %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 %16, align 4, !tbaa !14
  %3020 = add nsw i32 %3019, 2
  %3021 = sext i32 %3020 to i64
  %3022 = getelementptr inbounds i8, ptr %3018, i64 %3021
  %3023 = load i8, ptr %3022, align 1, !tbaa !16
  %3024 = zext i8 %3023 to i32
  %3025 = sub nsw i32 %3013, %3024
  br label %3027

3026:                                             ; preds = %2961
  br label %3027

3027:                                             ; preds = %3026, %3002
  %3028 = phi i32 [ %3025, %3002 ], [ 255, %3026 ]
  %3029 = trunc i32 %3028 to i8
  %3030 = load ptr, ptr %6, align 8, !tbaa !5
  %3031 = getelementptr inbounds %struct.MImage, ptr %3030, i32 0, i32 3
  %3032 = load i32, ptr %12, align 4, !tbaa !14
  %3033 = sext i32 %3032 to i64
  %3034 = getelementptr inbounds [4 x ptr], ptr %3031, i64 0, i64 %3033
  %3035 = load ptr, ptr %3034, align 8, !tbaa !5
  %3036 = load i32, ptr %15, align 4, !tbaa !14
  %3037 = sext i32 %3036 to i64
  %3038 = getelementptr inbounds ptr, ptr %3035, i64 %3037
  %3039 = load ptr, ptr %3038, align 8, !tbaa !5
  %3040 = load i32, ptr %16, align 4, !tbaa !14
  %3041 = add nsw i32 %3040, 2
  %3042 = sext i32 %3041 to i64
  %3043 = getelementptr inbounds i8, ptr %3039, i64 %3042
  store i8 %3029, ptr %3043, align 1, !tbaa !16
  %3044 = load ptr, ptr %13, align 8, !tbaa !5
  %3045 = load i32, ptr %15, align 4, !tbaa !14
  %3046 = sext i32 %3045 to i64
  %3047 = getelementptr inbounds ptr, ptr %3044, i64 %3046
  %3048 = load ptr, ptr %3047, align 8, !tbaa !5
  %3049 = load i32, ptr %16, align 4, !tbaa !14
  %3050 = add nsw i32 %3049, 3
  %3051 = sext i32 %3050 to i64
  %3052 = getelementptr inbounds i8, ptr %3048, i64 %3051
  %3053 = load i8, ptr %3052, align 1, !tbaa !16
  %3054 = zext i8 %3053 to i32
  %3055 = load ptr, ptr %14, align 8, !tbaa !5
  %3056 = load i32, ptr %15, align 4, !tbaa !14
  %3057 = sext i32 %3056 to i64
  %3058 = getelementptr inbounds ptr, ptr %3055, i64 %3057
  %3059 = load ptr, ptr %3058, align 8, !tbaa !5
  %3060 = load i32, ptr %16, align 4, !tbaa !14
  %3061 = add nsw i32 %3060, 3
  %3062 = sext i32 %3061 to i64
  %3063 = getelementptr inbounds i8, ptr %3059, i64 %3062
  %3064 = load i8, ptr %3063, align 1, !tbaa !16
  %3065 = zext i8 %3064 to i32
  %3066 = sub nsw i32 %3054, %3065
  %3067 = icmp slt i32 %3066, 255
  br i1 %3067, label %3068, label %3092

3068:                                             ; preds = %3027
  %3069 = load ptr, ptr %13, align 8, !tbaa !5
  %3070 = load i32, ptr %15, align 4, !tbaa !14
  %3071 = sext i32 %3070 to i64
  %3072 = getelementptr inbounds ptr, ptr %3069, i64 %3071
  %3073 = load ptr, ptr %3072, align 8, !tbaa !5
  %3074 = load i32, ptr %16, align 4, !tbaa !14
  %3075 = add nsw i32 %3074, 3
  %3076 = sext i32 %3075 to i64
  %3077 = getelementptr inbounds i8, ptr %3073, i64 %3076
  %3078 = load i8, ptr %3077, align 1, !tbaa !16
  %3079 = zext i8 %3078 to i32
  %3080 = load ptr, ptr %14, align 8, !tbaa !5
  %3081 = load i32, ptr %15, align 4, !tbaa !14
  %3082 = sext i32 %3081 to i64
  %3083 = getelementptr inbounds ptr, ptr %3080, i64 %3082
  %3084 = load ptr, ptr %3083, align 8, !tbaa !5
  %3085 = load i32, ptr %16, align 4, !tbaa !14
  %3086 = add nsw i32 %3085, 3
  %3087 = sext i32 %3086 to i64
  %3088 = getelementptr inbounds i8, ptr %3084, i64 %3087
  %3089 = load i8, ptr %3088, align 1, !tbaa !16
  %3090 = zext i8 %3089 to i32
  %3091 = sub nsw i32 %3079, %3090
  br label %3093

3092:                                             ; preds = %3027
  br label %3093

3093:                                             ; preds = %3092, %3068
  %3094 = phi i32 [ %3091, %3068 ], [ 255, %3092 ]
  %3095 = trunc i32 %3094 to i8
  %3096 = load ptr, ptr %6, align 8, !tbaa !5
  %3097 = getelementptr inbounds %struct.MImage, ptr %3096, i32 0, i32 3
  %3098 = load i32, ptr %12, align 4, !tbaa !14
  %3099 = sext i32 %3098 to i64
  %3100 = getelementptr inbounds [4 x ptr], ptr %3097, i64 0, i64 %3099
  %3101 = load ptr, ptr %3100, align 8, !tbaa !5
  %3102 = load i32, ptr %15, align 4, !tbaa !14
  %3103 = sext i32 %3102 to i64
  %3104 = getelementptr inbounds ptr, ptr %3101, i64 %3103
  %3105 = load ptr, ptr %3104, align 8, !tbaa !5
  %3106 = load i32, ptr %16, align 4, !tbaa !14
  %3107 = add nsw i32 %3106, 3
  %3108 = sext i32 %3107 to i64
  %3109 = getelementptr inbounds i8, ptr %3105, i64 %3108
  store i8 %3095, ptr %3109, align 1, !tbaa !16
  %3110 = load ptr, ptr %13, align 8, !tbaa !5
  %3111 = load i32, ptr %15, align 4, !tbaa !14
  %3112 = sext i32 %3111 to i64
  %3113 = getelementptr inbounds ptr, ptr %3110, i64 %3112
  %3114 = load ptr, ptr %3113, align 8, !tbaa !5
  %3115 = load i32, ptr %16, align 4, !tbaa !14
  %3116 = add nsw i32 %3115, 4
  %3117 = sext i32 %3116 to i64
  %3118 = getelementptr inbounds i8, ptr %3114, i64 %3117
  %3119 = load i8, ptr %3118, align 1, !tbaa !16
  %3120 = zext i8 %3119 to i32
  %3121 = load ptr, ptr %14, align 8, !tbaa !5
  %3122 = load i32, ptr %15, align 4, !tbaa !14
  %3123 = sext i32 %3122 to i64
  %3124 = getelementptr inbounds ptr, ptr %3121, i64 %3123
  %3125 = load ptr, ptr %3124, align 8, !tbaa !5
  %3126 = load i32, ptr %16, align 4, !tbaa !14
  %3127 = add nsw i32 %3126, 4
  %3128 = sext i32 %3127 to i64
  %3129 = getelementptr inbounds i8, ptr %3125, i64 %3128
  %3130 = load i8, ptr %3129, align 1, !tbaa !16
  %3131 = zext i8 %3130 to i32
  %3132 = sub nsw i32 %3120, %3131
  %3133 = icmp slt i32 %3132, 255
  br i1 %3133, label %3134, label %3158

3134:                                             ; preds = %3093
  %3135 = load ptr, ptr %13, align 8, !tbaa !5
  %3136 = load i32, ptr %15, align 4, !tbaa !14
  %3137 = sext i32 %3136 to i64
  %3138 = getelementptr inbounds ptr, ptr %3135, i64 %3137
  %3139 = load ptr, ptr %3138, align 8, !tbaa !5
  %3140 = load i32, ptr %16, align 4, !tbaa !14
  %3141 = add nsw i32 %3140, 4
  %3142 = sext i32 %3141 to i64
  %3143 = getelementptr inbounds i8, ptr %3139, i64 %3142
  %3144 = load i8, ptr %3143, align 1, !tbaa !16
  %3145 = zext i8 %3144 to i32
  %3146 = load ptr, ptr %14, align 8, !tbaa !5
  %3147 = load i32, ptr %15, align 4, !tbaa !14
  %3148 = sext i32 %3147 to i64
  %3149 = getelementptr inbounds ptr, ptr %3146, i64 %3148
  %3150 = load ptr, ptr %3149, align 8, !tbaa !5
  %3151 = load i32, ptr %16, align 4, !tbaa !14
  %3152 = add nsw i32 %3151, 4
  %3153 = sext i32 %3152 to i64
  %3154 = getelementptr inbounds i8, ptr %3150, i64 %3153
  %3155 = load i8, ptr %3154, align 1, !tbaa !16
  %3156 = zext i8 %3155 to i32
  %3157 = sub nsw i32 %3145, %3156
  br label %3159

3158:                                             ; preds = %3093
  br label %3159

3159:                                             ; preds = %3158, %3134
  %3160 = phi i32 [ %3157, %3134 ], [ 255, %3158 ]
  %3161 = trunc i32 %3160 to i8
  %3162 = load ptr, ptr %6, align 8, !tbaa !5
  %3163 = getelementptr inbounds %struct.MImage, ptr %3162, i32 0, i32 3
  %3164 = load i32, ptr %12, align 4, !tbaa !14
  %3165 = sext i32 %3164 to i64
  %3166 = getelementptr inbounds [4 x ptr], ptr %3163, i64 0, i64 %3165
  %3167 = load ptr, ptr %3166, align 8, !tbaa !5
  %3168 = load i32, ptr %15, align 4, !tbaa !14
  %3169 = sext i32 %3168 to i64
  %3170 = getelementptr inbounds ptr, ptr %3167, i64 %3169
  %3171 = load ptr, ptr %3170, align 8, !tbaa !5
  %3172 = load i32, ptr %16, align 4, !tbaa !14
  %3173 = add nsw i32 %3172, 4
  %3174 = sext i32 %3173 to i64
  %3175 = getelementptr inbounds i8, ptr %3171, i64 %3174
  store i8 %3161, ptr %3175, align 1, !tbaa !16
  %3176 = load ptr, ptr %13, align 8, !tbaa !5
  %3177 = load i32, ptr %15, align 4, !tbaa !14
  %3178 = sext i32 %3177 to i64
  %3179 = getelementptr inbounds ptr, ptr %3176, i64 %3178
  %3180 = load ptr, ptr %3179, align 8, !tbaa !5
  %3181 = load i32, ptr %16, align 4, !tbaa !14
  %3182 = add nsw i32 %3181, 5
  %3183 = sext i32 %3182 to i64
  %3184 = getelementptr inbounds i8, ptr %3180, i64 %3183
  %3185 = load i8, ptr %3184, align 1, !tbaa !16
  %3186 = zext i8 %3185 to i32
  %3187 = load ptr, ptr %14, align 8, !tbaa !5
  %3188 = load i32, ptr %15, align 4, !tbaa !14
  %3189 = sext i32 %3188 to i64
  %3190 = getelementptr inbounds ptr, ptr %3187, i64 %3189
  %3191 = load ptr, ptr %3190, align 8, !tbaa !5
  %3192 = load i32, ptr %16, align 4, !tbaa !14
  %3193 = add nsw i32 %3192, 5
  %3194 = sext i32 %3193 to i64
  %3195 = getelementptr inbounds i8, ptr %3191, i64 %3194
  %3196 = load i8, ptr %3195, align 1, !tbaa !16
  %3197 = zext i8 %3196 to i32
  %3198 = sub nsw i32 %3186, %3197
  %3199 = icmp slt i32 %3198, 255
  br i1 %3199, label %3200, label %3224

3200:                                             ; preds = %3159
  %3201 = load ptr, ptr %13, align 8, !tbaa !5
  %3202 = load i32, ptr %15, align 4, !tbaa !14
  %3203 = sext i32 %3202 to i64
  %3204 = getelementptr inbounds ptr, ptr %3201, i64 %3203
  %3205 = load ptr, ptr %3204, align 8, !tbaa !5
  %3206 = load i32, ptr %16, align 4, !tbaa !14
  %3207 = add nsw i32 %3206, 5
  %3208 = sext i32 %3207 to i64
  %3209 = getelementptr inbounds i8, ptr %3205, i64 %3208
  %3210 = load i8, ptr %3209, align 1, !tbaa !16
  %3211 = zext i8 %3210 to i32
  %3212 = load ptr, ptr %14, align 8, !tbaa !5
  %3213 = load i32, ptr %15, align 4, !tbaa !14
  %3214 = sext i32 %3213 to i64
  %3215 = getelementptr inbounds ptr, ptr %3212, i64 %3214
  %3216 = load ptr, ptr %3215, align 8, !tbaa !5
  %3217 = load i32, ptr %16, align 4, !tbaa !14
  %3218 = add nsw i32 %3217, 5
  %3219 = sext i32 %3218 to i64
  %3220 = getelementptr inbounds i8, ptr %3216, i64 %3219
  %3221 = load i8, ptr %3220, align 1, !tbaa !16
  %3222 = zext i8 %3221 to i32
  %3223 = sub nsw i32 %3211, %3222
  br label %3225

3224:                                             ; preds = %3159
  br label %3225

3225:                                             ; preds = %3224, %3200
  %3226 = phi i32 [ %3223, %3200 ], [ 255, %3224 ]
  %3227 = trunc i32 %3226 to i8
  %3228 = load ptr, ptr %6, align 8, !tbaa !5
  %3229 = getelementptr inbounds %struct.MImage, ptr %3228, i32 0, i32 3
  %3230 = load i32, ptr %12, align 4, !tbaa !14
  %3231 = sext i32 %3230 to i64
  %3232 = getelementptr inbounds [4 x ptr], ptr %3229, i64 0, i64 %3231
  %3233 = load ptr, ptr %3232, align 8, !tbaa !5
  %3234 = load i32, ptr %15, align 4, !tbaa !14
  %3235 = sext i32 %3234 to i64
  %3236 = getelementptr inbounds ptr, ptr %3233, i64 %3235
  %3237 = load ptr, ptr %3236, align 8, !tbaa !5
  %3238 = load i32, ptr %16, align 4, !tbaa !14
  %3239 = add nsw i32 %3238, 5
  %3240 = sext i32 %3239 to i64
  %3241 = getelementptr inbounds i8, ptr %3237, i64 %3240
  store i8 %3227, ptr %3241, align 1, !tbaa !16
  %3242 = load ptr, ptr %13, align 8, !tbaa !5
  %3243 = load i32, ptr %15, align 4, !tbaa !14
  %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 %16, align 4, !tbaa !14
  %3248 = add nsw i32 %3247, 6
  %3249 = sext i32 %3248 to i64
  %3250 = getelementptr inbounds i8, ptr %3246, i64 %3249
  %3251 = load i8, ptr %3250, align 1, !tbaa !16
  %3252 = zext i8 %3251 to i32
  %3253 = load ptr, ptr %14, align 8, !tbaa !5
  %3254 = load i32, ptr %15, align 4, !tbaa !14
  %3255 = sext i32 %3254 to i64
  %3256 = getelementptr inbounds ptr, ptr %3253, i64 %3255
  %3257 = load ptr, ptr %3256, align 8, !tbaa !5
  %3258 = load i32, ptr %16, align 4, !tbaa !14
  %3259 = add nsw i32 %3258, 6
  %3260 = sext i32 %3259 to i64
  %3261 = getelementptr inbounds i8, ptr %3257, i64 %3260
  %3262 = load i8, ptr %3261, align 1, !tbaa !16
  %3263 = zext i8 %3262 to i32
  %3264 = sub nsw i32 %3252, %3263
  %3265 = icmp slt i32 %3264, 255
  br i1 %3265, label %3266, label %3290

3266:                                             ; preds = %3225
  %3267 = load ptr, ptr %13, align 8, !tbaa !5
  %3268 = load i32, ptr %15, align 4, !tbaa !14
  %3269 = sext i32 %3268 to i64
  %3270 = getelementptr inbounds ptr, ptr %3267, i64 %3269
  %3271 = load ptr, ptr %3270, align 8, !tbaa !5
  %3272 = load i32, ptr %16, align 4, !tbaa !14
  %3273 = add nsw i32 %3272, 6
  %3274 = sext i32 %3273 to i64
  %3275 = getelementptr inbounds i8, ptr %3271, i64 %3274
  %3276 = load i8, ptr %3275, align 1, !tbaa !16
  %3277 = zext i8 %3276 to i32
  %3278 = load ptr, ptr %14, align 8, !tbaa !5
  %3279 = load i32, ptr %15, align 4, !tbaa !14
  %3280 = sext i32 %3279 to i64
  %3281 = getelementptr inbounds ptr, ptr %3278, i64 %3280
  %3282 = load ptr, ptr %3281, align 8, !tbaa !5
  %3283 = load i32, ptr %16, align 4, !tbaa !14
  %3284 = add nsw i32 %3283, 6
  %3285 = sext i32 %3284 to i64
  %3286 = getelementptr inbounds i8, ptr %3282, i64 %3285
  %3287 = load i8, ptr %3286, align 1, !tbaa !16
  %3288 = zext i8 %3287 to i32
  %3289 = sub nsw i32 %3277, %3288
  br label %3291

3290:                                             ; preds = %3225
  br label %3291

3291:                                             ; preds = %3290, %3266
  %3292 = phi i32 [ %3289, %3266 ], [ 255, %3290 ]
  %3293 = trunc i32 %3292 to i8
  %3294 = load ptr, ptr %6, align 8, !tbaa !5
  %3295 = getelementptr inbounds %struct.MImage, ptr %3294, i32 0, i32 3
  %3296 = load i32, ptr %12, align 4, !tbaa !14
  %3297 = sext i32 %3296 to i64
  %3298 = getelementptr inbounds [4 x ptr], ptr %3295, i64 0, i64 %3297
  %3299 = load ptr, ptr %3298, align 8, !tbaa !5
  %3300 = load i32, ptr %15, align 4, !tbaa !14
  %3301 = sext i32 %3300 to i64
  %3302 = getelementptr inbounds ptr, ptr %3299, i64 %3301
  %3303 = load ptr, ptr %3302, align 8, !tbaa !5
  %3304 = load i32, ptr %16, align 4, !tbaa !14
  %3305 = add nsw i32 %3304, 6
  %3306 = sext i32 %3305 to i64
  %3307 = getelementptr inbounds i8, ptr %3303, i64 %3306
  store i8 %3293, ptr %3307, align 1, !tbaa !16
  br label %9452

3308:                                             ; preds = %2838
  %3309 = load ptr, ptr %6, align 8, !tbaa !5
  %3310 = getelementptr inbounds %struct.MImage, ptr %3309, i32 0, i32 2
  %3311 = load i32, ptr %3310, align 8, !tbaa !13
  %3312 = load i32, ptr %16, align 4, !tbaa !14
  %3313 = sub nsw i32 %3311, %3312
  %3314 = icmp eq i32 %3313, 8
  br i1 %3314, label %3315, label %3844

3315:                                             ; preds = %3308
  %3316 = load ptr, ptr %13, align 8, !tbaa !5
  %3317 = load i32, ptr %15, align 4, !tbaa !14
  %3318 = sext i32 %3317 to i64
  %3319 = getelementptr inbounds ptr, ptr %3316, i64 %3318
  %3320 = load ptr, ptr %3319, align 8, !tbaa !5
  %3321 = load i32, ptr %16, align 4, !tbaa !14
  %3322 = add nsw i32 %3321, 0
  %3323 = sext i32 %3322 to i64
  %3324 = getelementptr inbounds i8, ptr %3320, i64 %3323
  %3325 = load i8, ptr %3324, align 1, !tbaa !16
  %3326 = zext i8 %3325 to i32
  %3327 = load ptr, ptr %14, align 8, !tbaa !5
  %3328 = load i32, ptr %15, align 4, !tbaa !14
  %3329 = sext i32 %3328 to i64
  %3330 = getelementptr inbounds ptr, ptr %3327, i64 %3329
  %3331 = load ptr, ptr %3330, align 8, !tbaa !5
  %3332 = load i32, ptr %16, align 4, !tbaa !14
  %3333 = add nsw i32 %3332, 0
  %3334 = sext i32 %3333 to i64
  %3335 = getelementptr inbounds i8, ptr %3331, i64 %3334
  %3336 = load i8, ptr %3335, align 1, !tbaa !16
  %3337 = zext i8 %3336 to i32
  %3338 = sub nsw i32 %3326, %3337
  %3339 = icmp slt i32 %3338, 255
  br i1 %3339, label %3340, label %3364

3340:                                             ; preds = %3315
  %3341 = load ptr, ptr %13, align 8, !tbaa !5
  %3342 = load i32, ptr %15, align 4, !tbaa !14
  %3343 = sext i32 %3342 to i64
  %3344 = getelementptr inbounds ptr, ptr %3341, i64 %3343
  %3345 = load ptr, ptr %3344, align 8, !tbaa !5
  %3346 = load i32, ptr %16, align 4, !tbaa !14
  %3347 = add nsw i32 %3346, 0
  %3348 = sext i32 %3347 to i64
  %3349 = getelementptr inbounds i8, ptr %3345, i64 %3348
  %3350 = load i8, ptr %3349, align 1, !tbaa !16
  %3351 = zext i8 %3350 to i32
  %3352 = load ptr, ptr %14, align 8, !tbaa !5
  %3353 = load i32, ptr %15, align 4, !tbaa !14
  %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 %16, align 4, !tbaa !14
  %3358 = add nsw i32 %3357, 0
  %3359 = sext i32 %3358 to i64
  %3360 = getelementptr inbounds i8, ptr %3356, i64 %3359
  %3361 = load i8, ptr %3360, align 1, !tbaa !16
  %3362 = zext i8 %3361 to i32
  %3363 = sub nsw i32 %3351, %3362
  br label %3365

3364:                                             ; preds = %3315
  br label %3365

3365:                                             ; preds = %3364, %3340
  %3366 = phi i32 [ %3363, %3340 ], [ 255, %3364 ]
  %3367 = trunc i32 %3366 to i8
  %3368 = load ptr, ptr %6, align 8, !tbaa !5
  %3369 = getelementptr inbounds %struct.MImage, ptr %3368, i32 0, i32 3
  %3370 = load i32, ptr %12, align 4, !tbaa !14
  %3371 = sext i32 %3370 to i64
  %3372 = getelementptr inbounds [4 x ptr], ptr %3369, i64 0, i64 %3371
  %3373 = load ptr, ptr %3372, align 8, !tbaa !5
  %3374 = load i32, ptr %15, align 4, !tbaa !14
  %3375 = sext i32 %3374 to i64
  %3376 = getelementptr inbounds ptr, ptr %3373, i64 %3375
  %3377 = load ptr, ptr %3376, align 8, !tbaa !5
  %3378 = load i32, ptr %16, align 4, !tbaa !14
  %3379 = add nsw i32 %3378, 0
  %3380 = sext i32 %3379 to i64
  %3381 = getelementptr inbounds i8, ptr %3377, i64 %3380
  store i8 %3367, ptr %3381, align 1, !tbaa !16
  %3382 = load ptr, ptr %13, align 8, !tbaa !5
  %3383 = load i32, ptr %15, align 4, !tbaa !14
  %3384 = sext i32 %3383 to i64
  %3385 = getelementptr inbounds ptr, ptr %3382, i64 %3384
  %3386 = load ptr, ptr %3385, align 8, !tbaa !5
  %3387 = load i32, ptr %16, align 4, !tbaa !14
  %3388 = add nsw i32 %3387, 1
  %3389 = sext i32 %3388 to i64
  %3390 = getelementptr inbounds i8, ptr %3386, i64 %3389
  %3391 = load i8, ptr %3390, align 1, !tbaa !16
  %3392 = zext i8 %3391 to i32
  %3393 = load ptr, ptr %14, align 8, !tbaa !5
  %3394 = load i32, ptr %15, align 4, !tbaa !14
  %3395 = sext i32 %3394 to i64
  %3396 = getelementptr inbounds ptr, ptr %3393, i64 %3395
  %3397 = load ptr, ptr %3396, align 8, !tbaa !5
  %3398 = load i32, ptr %16, align 4, !tbaa !14
  %3399 = add nsw i32 %3398, 1
  %3400 = sext i32 %3399 to i64
  %3401 = getelementptr inbounds i8, ptr %3397, i64 %3400
  %3402 = load i8, ptr %3401, align 1, !tbaa !16
  %3403 = zext i8 %3402 to i32
  %3404 = sub nsw i32 %3392, %3403
  %3405 = icmp slt i32 %3404, 255
  br i1 %3405, label %3406, label %3430

3406:                                             ; preds = %3365
  %3407 = load ptr, ptr %13, align 8, !tbaa !5
  %3408 = load i32, ptr %15, align 4, !tbaa !14
  %3409 = sext i32 %3408 to i64
  %3410 = getelementptr inbounds ptr, ptr %3407, i64 %3409
  %3411 = load ptr, ptr %3410, align 8, !tbaa !5
  %3412 = load i32, ptr %16, align 4, !tbaa !14
  %3413 = add nsw i32 %3412, 1
  %3414 = sext i32 %3413 to i64
  %3415 = getelementptr inbounds i8, ptr %3411, i64 %3414
  %3416 = load i8, ptr %3415, align 1, !tbaa !16
  %3417 = zext i8 %3416 to i32
  %3418 = load ptr, ptr %14, align 8, !tbaa !5
  %3419 = load i32, ptr %15, align 4, !tbaa !14
  %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 %16, align 4, !tbaa !14
  %3424 = add nsw i32 %3423, 1
  %3425 = sext i32 %3424 to i64
  %3426 = getelementptr inbounds i8, ptr %3422, i64 %3425
  %3427 = load i8, ptr %3426, align 1, !tbaa !16
  %3428 = zext i8 %3427 to i32
  %3429 = sub nsw i32 %3417, %3428
  br label %3431

3430:                                             ; preds = %3365
  br label %3431

3431:                                             ; preds = %3430, %3406
  %3432 = phi i32 [ %3429, %3406 ], [ 255, %3430 ]
  %3433 = trunc i32 %3432 to i8
  %3434 = load ptr, ptr %6, align 8, !tbaa !5
  %3435 = getelementptr inbounds %struct.MImage, ptr %3434, i32 0, i32 3
  %3436 = load i32, ptr %12, align 4, !tbaa !14
  %3437 = sext i32 %3436 to i64
  %3438 = getelementptr inbounds [4 x ptr], ptr %3435, i64 0, i64 %3437
  %3439 = load ptr, ptr %3438, align 8, !tbaa !5
  %3440 = load i32, ptr %15, align 4, !tbaa !14
  %3441 = sext i32 %3440 to i64
  %3442 = getelementptr inbounds ptr, ptr %3439, i64 %3441
  %3443 = load ptr, ptr %3442, align 8, !tbaa !5
  %3444 = load i32, ptr %16, align 4, !tbaa !14
  %3445 = add nsw i32 %3444, 1
  %3446 = sext i32 %3445 to i64
  %3447 = getelementptr inbounds i8, ptr %3443, i64 %3446
  store i8 %3433, ptr %3447, align 1, !tbaa !16
  %3448 = load ptr, ptr %13, align 8, !tbaa !5
  %3449 = load i32, ptr %15, align 4, !tbaa !14
  %3450 = sext i32 %3449 to i64
  %3451 = getelementptr inbounds ptr, ptr %3448, i64 %3450
  %3452 = load ptr, ptr %3451, align 8, !tbaa !5
  %3453 = load i32, ptr %16, align 4, !tbaa !14
  %3454 = add nsw i32 %3453, 2
  %3455 = sext i32 %3454 to i64
  %3456 = getelementptr inbounds i8, ptr %3452, i64 %3455
  %3457 = load i8, ptr %3456, align 1, !tbaa !16
  %3458 = zext i8 %3457 to i32
  %3459 = load ptr, ptr %14, align 8, !tbaa !5
  %3460 = load i32, ptr %15, align 4, !tbaa !14
  %3461 = sext i32 %3460 to i64
  %3462 = getelementptr inbounds ptr, ptr %3459, i64 %3461
  %3463 = load ptr, ptr %3462, align 8, !tbaa !5
  %3464 = load i32, ptr %16, align 4, !tbaa !14
  %3465 = add nsw i32 %3464, 2
  %3466 = sext i32 %3465 to i64
  %3467 = getelementptr inbounds i8, ptr %3463, i64 %3466
  %3468 = load i8, ptr %3467, align 1, !tbaa !16
  %3469 = zext i8 %3468 to i32
  %3470 = sub nsw i32 %3458, %3469
  %3471 = icmp slt i32 %3470, 255
  br i1 %3471, label %3472, label %3496

3472:                                             ; preds = %3431
  %3473 = load ptr, ptr %13, align 8, !tbaa !5
  %3474 = load i32, ptr %15, align 4, !tbaa !14
  %3475 = sext i32 %3474 to i64
  %3476 = getelementptr inbounds ptr, ptr %3473, i64 %3475
  %3477 = load ptr, ptr %3476, align 8, !tbaa !5
  %3478 = load i32, ptr %16, align 4, !tbaa !14
  %3479 = add nsw i32 %3478, 2
  %3480 = sext i32 %3479 to i64
  %3481 = getelementptr inbounds i8, ptr %3477, i64 %3480
  %3482 = load i8, ptr %3481, align 1, !tbaa !16
  %3483 = zext i8 %3482 to i32
  %3484 = load ptr, ptr %14, align 8, !tbaa !5
  %3485 = load i32, ptr %15, align 4, !tbaa !14
  %3486 = sext i32 %3485 to i64
  %3487 = getelementptr inbounds ptr, ptr %3484, i64 %3486
  %3488 = load ptr, ptr %3487, align 8, !tbaa !5
  %3489 = load i32, ptr %16, align 4, !tbaa !14
  %3490 = add nsw i32 %3489, 2
  %3491 = sext i32 %3490 to i64
  %3492 = getelementptr inbounds i8, ptr %3488, i64 %3491
  %3493 = load i8, ptr %3492, align 1, !tbaa !16
  %3494 = zext i8 %3493 to i32
  %3495 = sub nsw i32 %3483, %3494
  br label %3497

3496:                                             ; preds = %3431
  br label %3497

3497:                                             ; preds = %3496, %3472
  %3498 = phi i32 [ %3495, %3472 ], [ 255, %3496 ]
  %3499 = trunc i32 %3498 to i8
  %3500 = load ptr, ptr %6, align 8, !tbaa !5
  %3501 = getelementptr inbounds %struct.MImage, ptr %3500, i32 0, i32 3
  %3502 = load i32, ptr %12, align 4, !tbaa !14
  %3503 = sext i32 %3502 to i64
  %3504 = getelementptr inbounds [4 x ptr], ptr %3501, i64 0, i64 %3503
  %3505 = load ptr, ptr %3504, align 8, !tbaa !5
  %3506 = load i32, ptr %15, align 4, !tbaa !14
  %3507 = sext i32 %3506 to i64
  %3508 = getelementptr inbounds ptr, ptr %3505, i64 %3507
  %3509 = load ptr, ptr %3508, align 8, !tbaa !5
  %3510 = load i32, ptr %16, align 4, !tbaa !14
  %3511 = add nsw i32 %3510, 2
  %3512 = sext i32 %3511 to i64
  %3513 = getelementptr inbounds i8, ptr %3509, i64 %3512
  store i8 %3499, ptr %3513, align 1, !tbaa !16
  %3514 = load ptr, ptr %13, align 8, !tbaa !5
  %3515 = load i32, ptr %15, align 4, !tbaa !14
  %3516 = sext i32 %3515 to i64
  %3517 = getelementptr inbounds ptr, ptr %3514, i64 %3516
  %3518 = load ptr, ptr %3517, align 8, !tbaa !5
  %3519 = load i32, ptr %16, align 4, !tbaa !14
  %3520 = add nsw i32 %3519, 3
  %3521 = sext i32 %3520 to i64
  %3522 = getelementptr inbounds i8, ptr %3518, i64 %3521
  %3523 = load i8, ptr %3522, align 1, !tbaa !16
  %3524 = zext i8 %3523 to i32
  %3525 = load ptr, ptr %14, align 8, !tbaa !5
  %3526 = load i32, ptr %15, align 4, !tbaa !14
  %3527 = sext i32 %3526 to i64
  %3528 = getelementptr inbounds ptr, ptr %3525, i64 %3527
  %3529 = load ptr, ptr %3528, align 8, !tbaa !5
  %3530 = load i32, ptr %16, align 4, !tbaa !14
  %3531 = add nsw i32 %3530, 3
  %3532 = sext i32 %3531 to i64
  %3533 = getelementptr inbounds i8, ptr %3529, i64 %3532
  %3534 = load i8, ptr %3533, align 1, !tbaa !16
  %3535 = zext i8 %3534 to i32
  %3536 = sub nsw i32 %3524, %3535
  %3537 = icmp slt i32 %3536, 255
  br i1 %3537, label %3538, label %3562

3538:                                             ; preds = %3497
  %3539 = load ptr, ptr %13, align 8, !tbaa !5
  %3540 = load i32, ptr %15, align 4, !tbaa !14
  %3541 = sext i32 %3540 to i64
  %3542 = getelementptr inbounds ptr, ptr %3539, i64 %3541
  %3543 = load ptr, ptr %3542, align 8, !tbaa !5
  %3544 = load i32, ptr %16, align 4, !tbaa !14
  %3545 = add nsw i32 %3544, 3
  %3546 = sext i32 %3545 to i64
  %3547 = getelementptr inbounds i8, ptr %3543, i64 %3546
  %3548 = load i8, ptr %3547, align 1, !tbaa !16
  %3549 = zext i8 %3548 to i32
  %3550 = load ptr, ptr %14, align 8, !tbaa !5
  %3551 = load i32, ptr %15, align 4, !tbaa !14
  %3552 = sext i32 %3551 to i64
  %3553 = getelementptr inbounds ptr, ptr %3550, i64 %3552
  %3554 = load ptr, ptr %3553, align 8, !tbaa !5
  %3555 = load i32, ptr %16, align 4, !tbaa !14
  %3556 = add nsw i32 %3555, 3
  %3557 = sext i32 %3556 to i64
  %3558 = getelementptr inbounds i8, ptr %3554, i64 %3557
  %3559 = load i8, ptr %3558, align 1, !tbaa !16
  %3560 = zext i8 %3559 to i32
  %3561 = sub nsw i32 %3549, %3560
  br label %3563

3562:                                             ; preds = %3497
  br label %3563

3563:                                             ; preds = %3562, %3538
  %3564 = phi i32 [ %3561, %3538 ], [ 255, %3562 ]
  %3565 = trunc i32 %3564 to i8
  %3566 = load ptr, ptr %6, align 8, !tbaa !5
  %3567 = getelementptr inbounds %struct.MImage, ptr %3566, i32 0, i32 3
  %3568 = load i32, ptr %12, align 4, !tbaa !14
  %3569 = sext i32 %3568 to i64
  %3570 = getelementptr inbounds [4 x ptr], ptr %3567, i64 0, i64 %3569
  %3571 = load ptr, ptr %3570, align 8, !tbaa !5
  %3572 = load i32, ptr %15, align 4, !tbaa !14
  %3573 = sext i32 %3572 to i64
  %3574 = getelementptr inbounds ptr, ptr %3571, i64 %3573
  %3575 = load ptr, ptr %3574, align 8, !tbaa !5
  %3576 = load i32, ptr %16, align 4, !tbaa !14
  %3577 = add nsw i32 %3576, 3
  %3578 = sext i32 %3577 to i64
  %3579 = getelementptr inbounds i8, ptr %3575, i64 %3578
  store i8 %3565, ptr %3579, align 1, !tbaa !16
  %3580 = load ptr, ptr %13, align 8, !tbaa !5
  %3581 = load i32, ptr %15, align 4, !tbaa !14
  %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 %16, align 4, !tbaa !14
  %3586 = add nsw i32 %3585, 4
  %3587 = sext i32 %3586 to i64
  %3588 = getelementptr inbounds i8, ptr %3584, i64 %3587
  %3589 = load i8, ptr %3588, align 1, !tbaa !16
  %3590 = zext i8 %3589 to i32
  %3591 = load ptr, ptr %14, align 8, !tbaa !5
  %3592 = load i32, ptr %15, align 4, !tbaa !14
  %3593 = sext i32 %3592 to i64
  %3594 = getelementptr inbounds ptr, ptr %3591, i64 %3593
  %3595 = load ptr, ptr %3594, align 8, !tbaa !5
  %3596 = load i32, ptr %16, align 4, !tbaa !14
  %3597 = add nsw i32 %3596, 4
  %3598 = sext i32 %3597 to i64
  %3599 = getelementptr inbounds i8, ptr %3595, i64 %3598
  %3600 = load i8, ptr %3599, align 1, !tbaa !16
  %3601 = zext i8 %3600 to i32
  %3602 = sub nsw i32 %3590, %3601
  %3603 = icmp slt i32 %3602, 255
  br i1 %3603, label %3604, label %3628

3604:                                             ; preds = %3563
  %3605 = load ptr, ptr %13, align 8, !tbaa !5
  %3606 = load i32, ptr %15, align 4, !tbaa !14
  %3607 = sext i32 %3606 to i64
  %3608 = getelementptr inbounds ptr, ptr %3605, i64 %3607
  %3609 = load ptr, ptr %3608, align 8, !tbaa !5
  %3610 = load i32, ptr %16, align 4, !tbaa !14
  %3611 = add nsw i32 %3610, 4
  %3612 = sext i32 %3611 to i64
  %3613 = getelementptr inbounds i8, ptr %3609, i64 %3612
  %3614 = load i8, ptr %3613, align 1, !tbaa !16
  %3615 = zext i8 %3614 to i32
  %3616 = load ptr, ptr %14, align 8, !tbaa !5
  %3617 = load i32, ptr %15, align 4, !tbaa !14
  %3618 = sext i32 %3617 to i64
  %3619 = getelementptr inbounds ptr, ptr %3616, i64 %3618
  %3620 = load ptr, ptr %3619, align 8, !tbaa !5
  %3621 = load i32, ptr %16, align 4, !tbaa !14
  %3622 = add nsw i32 %3621, 4
  %3623 = sext i32 %3622 to i64
  %3624 = getelementptr inbounds i8, ptr %3620, i64 %3623
  %3625 = load i8, ptr %3624, align 1, !tbaa !16
  %3626 = zext i8 %3625 to i32
  %3627 = sub nsw i32 %3615, %3626
  br label %3629

3628:                                             ; preds = %3563
  br label %3629

3629:                                             ; preds = %3628, %3604
  %3630 = phi i32 [ %3627, %3604 ], [ 255, %3628 ]
  %3631 = trunc i32 %3630 to i8
  %3632 = load ptr, ptr %6, align 8, !tbaa !5
  %3633 = getelementptr inbounds %struct.MImage, ptr %3632, i32 0, i32 3
  %3634 = load i32, ptr %12, align 4, !tbaa !14
  %3635 = sext i32 %3634 to i64
  %3636 = getelementptr inbounds [4 x ptr], ptr %3633, i64 0, i64 %3635
  %3637 = load ptr, ptr %3636, align 8, !tbaa !5
  %3638 = load i32, ptr %15, align 4, !tbaa !14
  %3639 = sext i32 %3638 to i64
  %3640 = getelementptr inbounds ptr, ptr %3637, i64 %3639
  %3641 = load ptr, ptr %3640, align 8, !tbaa !5
  %3642 = load i32, ptr %16, align 4, !tbaa !14
  %3643 = add nsw i32 %3642, 4
  %3644 = sext i32 %3643 to i64
  %3645 = getelementptr inbounds i8, ptr %3641, i64 %3644
  store i8 %3631, ptr %3645, align 1, !tbaa !16
  %3646 = load ptr, ptr %13, align 8, !tbaa !5
  %3647 = load i32, ptr %15, align 4, !tbaa !14
  %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 %16, align 4, !tbaa !14
  %3652 = add nsw i32 %3651, 5
  %3653 = sext i32 %3652 to i64
  %3654 = getelementptr inbounds i8, ptr %3650, i64 %3653
  %3655 = load i8, ptr %3654, align 1, !tbaa !16
  %3656 = zext i8 %3655 to i32
  %3657 = load ptr, ptr %14, align 8, !tbaa !5
  %3658 = load i32, ptr %15, align 4, !tbaa !14
  %3659 = sext i32 %3658 to i64
  %3660 = getelementptr inbounds ptr, ptr %3657, i64 %3659
  %3661 = load ptr, ptr %3660, align 8, !tbaa !5
  %3662 = load i32, ptr %16, align 4, !tbaa !14
  %3663 = add nsw i32 %3662, 5
  %3664 = sext i32 %3663 to i64
  %3665 = getelementptr inbounds i8, ptr %3661, i64 %3664
  %3666 = load i8, ptr %3665, align 1, !tbaa !16
  %3667 = zext i8 %3666 to i32
  %3668 = sub nsw i32 %3656, %3667
  %3669 = icmp slt i32 %3668, 255
  br i1 %3669, label %3670, label %3694

3670:                                             ; preds = %3629
  %3671 = load ptr, ptr %13, align 8, !tbaa !5
  %3672 = load i32, ptr %15, align 4, !tbaa !14
  %3673 = sext i32 %3672 to i64
  %3674 = getelementptr inbounds ptr, ptr %3671, i64 %3673
  %3675 = load ptr, ptr %3674, align 8, !tbaa !5
  %3676 = load i32, ptr %16, align 4, !tbaa !14
  %3677 = add nsw i32 %3676, 5
  %3678 = sext i32 %3677 to i64
  %3679 = getelementptr inbounds i8, ptr %3675, i64 %3678
  %3680 = load i8, ptr %3679, align 1, !tbaa !16
  %3681 = zext i8 %3680 to i32
  %3682 = load ptr, ptr %14, align 8, !tbaa !5
  %3683 = load i32, ptr %15, align 4, !tbaa !14
  %3684 = sext i32 %3683 to i64
  %3685 = getelementptr inbounds ptr, ptr %3682, i64 %3684
  %3686 = load ptr, ptr %3685, align 8, !tbaa !5
  %3687 = load i32, ptr %16, align 4, !tbaa !14
  %3688 = add nsw i32 %3687, 5
  %3689 = sext i32 %3688 to i64
  %3690 = getelementptr inbounds i8, ptr %3686, i64 %3689
  %3691 = load i8, ptr %3690, align 1, !tbaa !16
  %3692 = zext i8 %3691 to i32
  %3693 = sub nsw i32 %3681, %3692
  br label %3695

3694:                                             ; preds = %3629
  br label %3695

3695:                                             ; preds = %3694, %3670
  %3696 = phi i32 [ %3693, %3670 ], [ 255, %3694 ]
  %3697 = trunc i32 %3696 to i8
  %3698 = load ptr, ptr %6, align 8, !tbaa !5
  %3699 = getelementptr inbounds %struct.MImage, ptr %3698, i32 0, i32 3
  %3700 = load i32, ptr %12, align 4, !tbaa !14
  %3701 = sext i32 %3700 to i64
  %3702 = getelementptr inbounds [4 x ptr], ptr %3699, i64 0, i64 %3701
  %3703 = load ptr, ptr %3702, align 8, !tbaa !5
  %3704 = load i32, ptr %15, align 4, !tbaa !14
  %3705 = sext i32 %3704 to i64
  %3706 = getelementptr inbounds ptr, ptr %3703, i64 %3705
  %3707 = load ptr, ptr %3706, align 8, !tbaa !5
  %3708 = load i32, ptr %16, align 4, !tbaa !14
  %3709 = add nsw i32 %3708, 5
  %3710 = sext i32 %3709 to i64
  %3711 = getelementptr inbounds i8, ptr %3707, i64 %3710
  store i8 %3697, ptr %3711, align 1, !tbaa !16
  %3712 = load ptr, ptr %13, align 8, !tbaa !5
  %3713 = load i32, ptr %15, align 4, !tbaa !14
  %3714 = sext i32 %3713 to i64
  %3715 = getelementptr inbounds ptr, ptr %3712, i64 %3714
  %3716 = load ptr, ptr %3715, align 8, !tbaa !5
  %3717 = load i32, ptr %16, align 4, !tbaa !14
  %3718 = add nsw i32 %3717, 6
  %3719 = sext i32 %3718 to i64
  %3720 = getelementptr inbounds i8, ptr %3716, i64 %3719
  %3721 = load i8, ptr %3720, align 1, !tbaa !16
  %3722 = zext i8 %3721 to i32
  %3723 = load ptr, ptr %14, align 8, !tbaa !5
  %3724 = load i32, ptr %15, align 4, !tbaa !14
  %3725 = sext i32 %3724 to i64
  %3726 = getelementptr inbounds ptr, ptr %3723, i64 %3725
  %3727 = load ptr, ptr %3726, align 8, !tbaa !5
  %3728 = load i32, ptr %16, align 4, !tbaa !14
  %3729 = add nsw i32 %3728, 6
  %3730 = sext i32 %3729 to i64
  %3731 = getelementptr inbounds i8, ptr %3727, i64 %3730
  %3732 = load i8, ptr %3731, align 1, !tbaa !16
  %3733 = zext i8 %3732 to i32
  %3734 = sub nsw i32 %3722, %3733
  %3735 = icmp slt i32 %3734, 255
  br i1 %3735, label %3736, label %3760

3736:                                             ; preds = %3695
  %3737 = load ptr, ptr %13, align 8, !tbaa !5
  %3738 = load i32, ptr %15, align 4, !tbaa !14
  %3739 = sext i32 %3738 to i64
  %3740 = getelementptr inbounds ptr, ptr %3737, i64 %3739
  %3741 = load ptr, ptr %3740, align 8, !tbaa !5
  %3742 = load i32, ptr %16, align 4, !tbaa !14
  %3743 = add nsw i32 %3742, 6
  %3744 = sext i32 %3743 to i64
  %3745 = getelementptr inbounds i8, ptr %3741, i64 %3744
  %3746 = load i8, ptr %3745, align 1, !tbaa !16
  %3747 = zext i8 %3746 to i32
  %3748 = load ptr, ptr %14, align 8, !tbaa !5
  %3749 = load i32, ptr %15, align 4, !tbaa !14
  %3750 = sext i32 %3749 to i64
  %3751 = getelementptr inbounds ptr, ptr %3748, i64 %3750
  %3752 = load ptr, ptr %3751, align 8, !tbaa !5
  %3753 = load i32, ptr %16, align 4, !tbaa !14
  %3754 = add nsw i32 %3753, 6
  %3755 = sext i32 %3754 to i64
  %3756 = getelementptr inbounds i8, ptr %3752, i64 %3755
  %3757 = load i8, ptr %3756, align 1, !tbaa !16
  %3758 = zext i8 %3757 to i32
  %3759 = sub nsw i32 %3747, %3758
  br label %3761

3760:                                             ; preds = %3695
  br label %3761

3761:                                             ; preds = %3760, %3736
  %3762 = phi i32 [ %3759, %3736 ], [ 255, %3760 ]
  %3763 = trunc i32 %3762 to i8
  %3764 = load ptr, ptr %6, align 8, !tbaa !5
  %3765 = getelementptr inbounds %struct.MImage, ptr %3764, i32 0, i32 3
  %3766 = load i32, ptr %12, align 4, !tbaa !14
  %3767 = sext i32 %3766 to i64
  %3768 = getelementptr inbounds [4 x ptr], ptr %3765, i64 0, i64 %3767
  %3769 = load ptr, ptr %3768, align 8, !tbaa !5
  %3770 = load i32, ptr %15, align 4, !tbaa !14
  %3771 = sext i32 %3770 to i64
  %3772 = getelementptr inbounds ptr, ptr %3769, i64 %3771
  %3773 = load ptr, ptr %3772, align 8, !tbaa !5
  %3774 = load i32, ptr %16, align 4, !tbaa !14
  %3775 = add nsw i32 %3774, 6
  %3776 = sext i32 %3775 to i64
  %3777 = getelementptr inbounds i8, ptr %3773, i64 %3776
  store i8 %3763, ptr %3777, align 1, !tbaa !16
  %3778 = load ptr, ptr %13, align 8, !tbaa !5
  %3779 = load i32, ptr %15, align 4, !tbaa !14
  %3780 = sext i32 %3779 to i64
  %3781 = getelementptr inbounds ptr, ptr %3778, i64 %3780
  %3782 = load ptr, ptr %3781, align 8, !tbaa !5
  %3783 = load i32, ptr %16, align 4, !tbaa !14
  %3784 = add nsw i32 %3783, 7
  %3785 = sext i32 %3784 to i64
  %3786 = getelementptr inbounds i8, ptr %3782, i64 %3785
  %3787 = load i8, ptr %3786, align 1, !tbaa !16
  %3788 = zext i8 %3787 to i32
  %3789 = load ptr, ptr %14, align 8, !tbaa !5
  %3790 = load i32, ptr %15, align 4, !tbaa !14
  %3791 = sext i32 %3790 to i64
  %3792 = getelementptr inbounds ptr, ptr %3789, i64 %3791
  %3793 = load ptr, ptr %3792, align 8, !tbaa !5
  %3794 = load i32, ptr %16, align 4, !tbaa !14
  %3795 = add nsw i32 %3794, 7
  %3796 = sext i32 %3795 to i64
  %3797 = getelementptr inbounds i8, ptr %3793, i64 %3796
  %3798 = load i8, ptr %3797, align 1, !tbaa !16
  %3799 = zext i8 %3798 to i32
  %3800 = sub nsw i32 %3788, %3799
  %3801 = icmp slt i32 %3800, 255
  br i1 %3801, label %3802, label %3826

3802:                                             ; preds = %3761
  %3803 = load ptr, ptr %13, align 8, !tbaa !5
  %3804 = load i32, ptr %15, align 4, !tbaa !14
  %3805 = sext i32 %3804 to i64
  %3806 = getelementptr inbounds ptr, ptr %3803, i64 %3805
  %3807 = load ptr, ptr %3806, align 8, !tbaa !5
  %3808 = load i32, ptr %16, align 4, !tbaa !14
  %3809 = add nsw i32 %3808, 7
  %3810 = sext i32 %3809 to i64
  %3811 = getelementptr inbounds i8, ptr %3807, i64 %3810
  %3812 = load i8, ptr %3811, align 1, !tbaa !16
  %3813 = zext i8 %3812 to i32
  %3814 = load ptr, ptr %14, align 8, !tbaa !5
  %3815 = load i32, ptr %15, align 4, !tbaa !14
  %3816 = sext i32 %3815 to i64
  %3817 = getelementptr inbounds ptr, ptr %3814, i64 %3816
  %3818 = load ptr, ptr %3817, align 8, !tbaa !5
  %3819 = load i32, ptr %16, align 4, !tbaa !14
  %3820 = add nsw i32 %3819, 7
  %3821 = sext i32 %3820 to i64
  %3822 = getelementptr inbounds i8, ptr %3818, i64 %3821
  %3823 = load i8, ptr %3822, align 1, !tbaa !16
  %3824 = zext i8 %3823 to i32
  %3825 = sub nsw i32 %3813, %3824
  br label %3827

3826:                                             ; preds = %3761
  br label %3827

3827:                                             ; preds = %3826, %3802
  %3828 = phi i32 [ %3825, %3802 ], [ 255, %3826 ]
  %3829 = trunc i32 %3828 to i8
  %3830 = load ptr, ptr %6, align 8, !tbaa !5
  %3831 = getelementptr inbounds %struct.MImage, ptr %3830, i32 0, i32 3
  %3832 = load i32, ptr %12, align 4, !tbaa !14
  %3833 = sext i32 %3832 to i64
  %3834 = getelementptr inbounds [4 x ptr], ptr %3831, i64 0, i64 %3833
  %3835 = load ptr, ptr %3834, align 8, !tbaa !5
  %3836 = load i32, ptr %15, align 4, !tbaa !14
  %3837 = sext i32 %3836 to i64
  %3838 = getelementptr inbounds ptr, ptr %3835, i64 %3837
  %3839 = load ptr, ptr %3838, align 8, !tbaa !5
  %3840 = load i32, ptr %16, align 4, !tbaa !14
  %3841 = add nsw i32 %3840, 7
  %3842 = sext i32 %3841 to i64
  %3843 = getelementptr inbounds i8, ptr %3839, i64 %3842
  store i8 %3829, ptr %3843, align 1, !tbaa !16
  br label %9451

3844:                                             ; preds = %3308
  %3845 = load ptr, ptr %6, align 8, !tbaa !5
  %3846 = getelementptr inbounds %struct.MImage, ptr %3845, i32 0, i32 2
  %3847 = load i32, ptr %3846, align 8, !tbaa !13
  %3848 = load i32, ptr %16, align 4, !tbaa !14
  %3849 = sub nsw i32 %3847, %3848
  %3850 = icmp eq i32 %3849, 9
  br i1 %3850, label %3851, label %4446

3851:                                             ; preds = %3844
  %3852 = load ptr, ptr %13, align 8, !tbaa !5
  %3853 = load i32, ptr %15, align 4, !tbaa !14
  %3854 = sext i32 %3853 to i64
  %3855 = getelementptr inbounds ptr, ptr %3852, i64 %3854
  %3856 = load ptr, ptr %3855, align 8, !tbaa !5
  %3857 = load i32, ptr %16, align 4, !tbaa !14
  %3858 = add nsw i32 %3857, 0
  %3859 = sext i32 %3858 to i64
  %3860 = getelementptr inbounds i8, ptr %3856, i64 %3859
  %3861 = load i8, ptr %3860, align 1, !tbaa !16
  %3862 = zext i8 %3861 to i32
  %3863 = load ptr, ptr %14, align 8, !tbaa !5
  %3864 = load i32, ptr %15, align 4, !tbaa !14
  %3865 = sext i32 %3864 to i64
  %3866 = getelementptr inbounds ptr, ptr %3863, i64 %3865
  %3867 = load ptr, ptr %3866, align 8, !tbaa !5
  %3868 = load i32, ptr %16, align 4, !tbaa !14
  %3869 = add nsw i32 %3868, 0
  %3870 = sext i32 %3869 to i64
  %3871 = getelementptr inbounds i8, ptr %3867, i64 %3870
  %3872 = load i8, ptr %3871, align 1, !tbaa !16
  %3873 = zext i8 %3872 to i32
  %3874 = sub nsw i32 %3862, %3873
  %3875 = icmp slt i32 %3874, 255
  br i1 %3875, label %3876, label %3900

3876:                                             ; preds = %3851
  %3877 = load ptr, ptr %13, align 8, !tbaa !5
  %3878 = load i32, ptr %15, align 4, !tbaa !14
  %3879 = sext i32 %3878 to i64
  %3880 = getelementptr inbounds ptr, ptr %3877, i64 %3879
  %3881 = load ptr, ptr %3880, align 8, !tbaa !5
  %3882 = load i32, ptr %16, align 4, !tbaa !14
  %3883 = add nsw i32 %3882, 0
  %3884 = sext i32 %3883 to i64
  %3885 = getelementptr inbounds i8, ptr %3881, i64 %3884
  %3886 = load i8, ptr %3885, align 1, !tbaa !16
  %3887 = zext i8 %3886 to i32
  %3888 = load ptr, ptr %14, align 8, !tbaa !5
  %3889 = load i32, ptr %15, align 4, !tbaa !14
  %3890 = sext i32 %3889 to i64
  %3891 = getelementptr inbounds ptr, ptr %3888, i64 %3890
  %3892 = load ptr, ptr %3891, align 8, !tbaa !5
  %3893 = load i32, ptr %16, align 4, !tbaa !14
  %3894 = add nsw i32 %3893, 0
  %3895 = sext i32 %3894 to i64
  %3896 = getelementptr inbounds i8, ptr %3892, i64 %3895
  %3897 = load i8, ptr %3896, align 1, !tbaa !16
  %3898 = zext i8 %3897 to i32
  %3899 = sub nsw i32 %3887, %3898
  br label %3901

3900:                                             ; preds = %3851
  br label %3901

3901:                                             ; preds = %3900, %3876
  %3902 = phi i32 [ %3899, %3876 ], [ 255, %3900 ]
  %3903 = trunc i32 %3902 to i8
  %3904 = load ptr, ptr %6, align 8, !tbaa !5
  %3905 = getelementptr inbounds %struct.MImage, ptr %3904, i32 0, i32 3
  %3906 = load i32, ptr %12, align 4, !tbaa !14
  %3907 = sext i32 %3906 to i64
  %3908 = getelementptr inbounds [4 x ptr], ptr %3905, i64 0, i64 %3907
  %3909 = load ptr, ptr %3908, align 8, !tbaa !5
  %3910 = load i32, ptr %15, align 4, !tbaa !14
  %3911 = sext i32 %3910 to i64
  %3912 = getelementptr inbounds ptr, ptr %3909, i64 %3911
  %3913 = load ptr, ptr %3912, align 8, !tbaa !5
  %3914 = load i32, ptr %16, align 4, !tbaa !14
  %3915 = add nsw i32 %3914, 0
  %3916 = sext i32 %3915 to i64
  %3917 = getelementptr inbounds i8, ptr %3913, i64 %3916
  store i8 %3903, ptr %3917, align 1, !tbaa !16
  %3918 = load ptr, ptr %13, align 8, !tbaa !5
  %3919 = load i32, ptr %15, align 4, !tbaa !14
  %3920 = sext i32 %3919 to i64
  %3921 = getelementptr inbounds ptr, ptr %3918, i64 %3920
  %3922 = load ptr, ptr %3921, align 8, !tbaa !5
  %3923 = load i32, ptr %16, align 4, !tbaa !14
  %3924 = add nsw i32 %3923, 1
  %3925 = sext i32 %3924 to i64
  %3926 = getelementptr inbounds i8, ptr %3922, i64 %3925
  %3927 = load i8, ptr %3926, align 1, !tbaa !16
  %3928 = zext i8 %3927 to i32
  %3929 = load ptr, ptr %14, align 8, !tbaa !5
  %3930 = load i32, ptr %15, align 4, !tbaa !14
  %3931 = sext i32 %3930 to i64
  %3932 = getelementptr inbounds ptr, ptr %3929, i64 %3931
  %3933 = load ptr, ptr %3932, align 8, !tbaa !5
  %3934 = load i32, ptr %16, align 4, !tbaa !14
  %3935 = add nsw i32 %3934, 1
  %3936 = sext i32 %3935 to i64
  %3937 = getelementptr inbounds i8, ptr %3933, i64 %3936
  %3938 = load i8, ptr %3937, align 1, !tbaa !16
  %3939 = zext i8 %3938 to i32
  %3940 = sub nsw i32 %3928, %3939
  %3941 = icmp slt i32 %3940, 255
  br i1 %3941, label %3942, label %3966

3942:                                             ; preds = %3901
  %3943 = load ptr, ptr %13, align 8, !tbaa !5
  %3944 = load i32, ptr %15, align 4, !tbaa !14
  %3945 = sext i32 %3944 to i64
  %3946 = getelementptr inbounds ptr, ptr %3943, i64 %3945
  %3947 = load ptr, ptr %3946, align 8, !tbaa !5
  %3948 = load i32, ptr %16, align 4, !tbaa !14
  %3949 = add nsw i32 %3948, 1
  %3950 = sext i32 %3949 to i64
  %3951 = getelementptr inbounds i8, ptr %3947, i64 %3950
  %3952 = load i8, ptr %3951, align 1, !tbaa !16
  %3953 = zext i8 %3952 to i32
  %3954 = load ptr, ptr %14, align 8, !tbaa !5
  %3955 = load i32, ptr %15, align 4, !tbaa !14
  %3956 = sext i32 %3955 to i64
  %3957 = getelementptr inbounds ptr, ptr %3954, i64 %3956
  %3958 = load ptr, ptr %3957, align 8, !tbaa !5
  %3959 = load i32, ptr %16, align 4, !tbaa !14
  %3960 = add nsw i32 %3959, 1
  %3961 = sext i32 %3960 to i64
  %3962 = getelementptr inbounds i8, ptr %3958, i64 %3961
  %3963 = load i8, ptr %3962, align 1, !tbaa !16
  %3964 = zext i8 %3963 to i32
  %3965 = sub nsw i32 %3953, %3964
  br label %3967

3966:                                             ; preds = %3901
  br label %3967

3967:                                             ; preds = %3966, %3942
  %3968 = phi i32 [ %3965, %3942 ], [ 255, %3966 ]
  %3969 = trunc i32 %3968 to i8
  %3970 = load ptr, ptr %6, align 8, !tbaa !5
  %3971 = getelementptr inbounds %struct.MImage, ptr %3970, i32 0, i32 3
  %3972 = load i32, ptr %12, align 4, !tbaa !14
  %3973 = sext i32 %3972 to i64
  %3974 = getelementptr inbounds [4 x ptr], ptr %3971, i64 0, i64 %3973
  %3975 = load ptr, ptr %3974, align 8, !tbaa !5
  %3976 = load i32, ptr %15, align 4, !tbaa !14
  %3977 = sext i32 %3976 to i64
  %3978 = getelementptr inbounds ptr, ptr %3975, i64 %3977
  %3979 = load ptr, ptr %3978, align 8, !tbaa !5
  %3980 = load i32, ptr %16, align 4, !tbaa !14
  %3981 = add nsw i32 %3980, 1
  %3982 = sext i32 %3981 to i64
  %3983 = getelementptr inbounds i8, ptr %3979, i64 %3982
  store i8 %3969, ptr %3983, align 1, !tbaa !16
  %3984 = load ptr, ptr %13, align 8, !tbaa !5
  %3985 = load i32, ptr %15, align 4, !tbaa !14
  %3986 = sext i32 %3985 to i64
  %3987 = getelementptr inbounds ptr, ptr %3984, i64 %3986
  %3988 = load ptr, ptr %3987, align 8, !tbaa !5
  %3989 = load i32, ptr %16, align 4, !tbaa !14
  %3990 = add nsw i32 %3989, 2
  %3991 = sext i32 %3990 to i64
  %3992 = getelementptr inbounds i8, ptr %3988, i64 %3991
  %3993 = load i8, ptr %3992, align 1, !tbaa !16
  %3994 = zext i8 %3993 to i32
  %3995 = load ptr, ptr %14, align 8, !tbaa !5
  %3996 = load i32, ptr %15, align 4, !tbaa !14
  %3997 = sext i32 %3996 to i64
  %3998 = getelementptr inbounds ptr, ptr %3995, i64 %3997
  %3999 = load ptr, ptr %3998, align 8, !tbaa !5
  %4000 = load i32, ptr %16, align 4, !tbaa !14
  %4001 = add nsw i32 %4000, 2
  %4002 = sext i32 %4001 to i64
  %4003 = getelementptr inbounds i8, ptr %3999, i64 %4002
  %4004 = load i8, ptr %4003, align 1, !tbaa !16
  %4005 = zext i8 %4004 to i32
  %4006 = sub nsw i32 %3994, %4005
  %4007 = icmp slt i32 %4006, 255
  br i1 %4007, label %4008, label %4032

4008:                                             ; preds = %3967
  %4009 = load ptr, ptr %13, align 8, !tbaa !5
  %4010 = load i32, ptr %15, align 4, !tbaa !14
  %4011 = sext i32 %4010 to i64
  %4012 = getelementptr inbounds ptr, ptr %4009, i64 %4011
  %4013 = load ptr, ptr %4012, align 8, !tbaa !5
  %4014 = load i32, ptr %16, align 4, !tbaa !14
  %4015 = add nsw i32 %4014, 2
  %4016 = sext i32 %4015 to i64
  %4017 = getelementptr inbounds i8, ptr %4013, i64 %4016
  %4018 = load i8, ptr %4017, align 1, !tbaa !16
  %4019 = zext i8 %4018 to i32
  %4020 = load ptr, ptr %14, align 8, !tbaa !5
  %4021 = load i32, ptr %15, align 4, !tbaa !14
  %4022 = sext i32 %4021 to i64
  %4023 = getelementptr inbounds ptr, ptr %4020, i64 %4022
  %4024 = load ptr, ptr %4023, align 8, !tbaa !5
  %4025 = load i32, ptr %16, align 4, !tbaa !14
  %4026 = add nsw i32 %4025, 2
  %4027 = sext i32 %4026 to i64
  %4028 = getelementptr inbounds i8, ptr %4024, i64 %4027
  %4029 = load i8, ptr %4028, align 1, !tbaa !16
  %4030 = zext i8 %4029 to i32
  %4031 = sub nsw i32 %4019, %4030
  br label %4033

4032:                                             ; preds = %3967
  br label %4033

4033:                                             ; preds = %4032, %4008
  %4034 = phi i32 [ %4031, %4008 ], [ 255, %4032 ]
  %4035 = trunc i32 %4034 to i8
  %4036 = load ptr, ptr %6, align 8, !tbaa !5
  %4037 = getelementptr inbounds %struct.MImage, ptr %4036, i32 0, i32 3
  %4038 = load i32, ptr %12, align 4, !tbaa !14
  %4039 = sext i32 %4038 to i64
  %4040 = getelementptr inbounds [4 x ptr], ptr %4037, i64 0, i64 %4039
  %4041 = load ptr, ptr %4040, align 8, !tbaa !5
  %4042 = load i32, ptr %15, align 4, !tbaa !14
  %4043 = sext i32 %4042 to i64
  %4044 = getelementptr inbounds ptr, ptr %4041, i64 %4043
  %4045 = load ptr, ptr %4044, align 8, !tbaa !5
  %4046 = load i32, ptr %16, align 4, !tbaa !14
  %4047 = add nsw i32 %4046, 2
  %4048 = sext i32 %4047 to i64
  %4049 = getelementptr inbounds i8, ptr %4045, i64 %4048
  store i8 %4035, ptr %4049, align 1, !tbaa !16
  %4050 = load ptr, ptr %13, align 8, !tbaa !5
  %4051 = load i32, ptr %15, align 4, !tbaa !14
  %4052 = sext i32 %4051 to i64
  %4053 = getelementptr inbounds ptr, ptr %4050, i64 %4052
  %4054 = load ptr, ptr %4053, align 8, !tbaa !5
  %4055 = load i32, ptr %16, align 4, !tbaa !14
  %4056 = add nsw i32 %4055, 3
  %4057 = sext i32 %4056 to i64
  %4058 = getelementptr inbounds i8, ptr %4054, i64 %4057
  %4059 = load i8, ptr %4058, align 1, !tbaa !16
  %4060 = zext i8 %4059 to i32
  %4061 = load ptr, ptr %14, align 8, !tbaa !5
  %4062 = load i32, ptr %15, align 4, !tbaa !14
  %4063 = sext i32 %4062 to i64
  %4064 = getelementptr inbounds ptr, ptr %4061, i64 %4063
  %4065 = load ptr, ptr %4064, align 8, !tbaa !5
  %4066 = load i32, ptr %16, align 4, !tbaa !14
  %4067 = add nsw i32 %4066, 3
  %4068 = sext i32 %4067 to i64
  %4069 = getelementptr inbounds i8, ptr %4065, i64 %4068
  %4070 = load i8, ptr %4069, align 1, !tbaa !16
  %4071 = zext i8 %4070 to i32
  %4072 = sub nsw i32 %4060, %4071
  %4073 = icmp slt i32 %4072, 255
  br i1 %4073, label %4074, label %4098

4074:                                             ; preds = %4033
  %4075 = load ptr, ptr %13, align 8, !tbaa !5
  %4076 = load i32, ptr %15, align 4, !tbaa !14
  %4077 = sext i32 %4076 to i64
  %4078 = getelementptr inbounds ptr, ptr %4075, i64 %4077
  %4079 = load ptr, ptr %4078, align 8, !tbaa !5
  %4080 = load i32, ptr %16, align 4, !tbaa !14
  %4081 = add nsw i32 %4080, 3
  %4082 = sext i32 %4081 to i64
  %4083 = getelementptr inbounds i8, ptr %4079, i64 %4082
  %4084 = load i8, ptr %4083, align 1, !tbaa !16
  %4085 = zext i8 %4084 to i32
  %4086 = load ptr, ptr %14, align 8, !tbaa !5
  %4087 = load i32, ptr %15, align 4, !tbaa !14
  %4088 = sext i32 %4087 to i64
  %4089 = getelementptr inbounds ptr, ptr %4086, i64 %4088
  %4090 = load ptr, ptr %4089, align 8, !tbaa !5
  %4091 = load i32, ptr %16, align 4, !tbaa !14
  %4092 = add nsw i32 %4091, 3
  %4093 = sext i32 %4092 to i64
  %4094 = getelementptr inbounds i8, ptr %4090, i64 %4093
  %4095 = load i8, ptr %4094, align 1, !tbaa !16
  %4096 = zext i8 %4095 to i32
  %4097 = sub nsw i32 %4085, %4096
  br label %4099

4098:                                             ; preds = %4033
  br label %4099

4099:                                             ; preds = %4098, %4074
  %4100 = phi i32 [ %4097, %4074 ], [ 255, %4098 ]
  %4101 = trunc i32 %4100 to i8
  %4102 = load ptr, ptr %6, align 8, !tbaa !5
  %4103 = getelementptr inbounds %struct.MImage, ptr %4102, i32 0, i32 3
  %4104 = load i32, ptr %12, align 4, !tbaa !14
  %4105 = sext i32 %4104 to i64
  %4106 = getelementptr inbounds [4 x ptr], ptr %4103, i64 0, i64 %4105
  %4107 = load ptr, ptr %4106, align 8, !tbaa !5
  %4108 = load i32, ptr %15, align 4, !tbaa !14
  %4109 = sext i32 %4108 to i64
  %4110 = getelementptr inbounds ptr, ptr %4107, i64 %4109
  %4111 = load ptr, ptr %4110, align 8, !tbaa !5
  %4112 = load i32, ptr %16, align 4, !tbaa !14
  %4113 = add nsw i32 %4112, 3
  %4114 = sext i32 %4113 to i64
  %4115 = getelementptr inbounds i8, ptr %4111, i64 %4114
  store i8 %4101, ptr %4115, align 1, !tbaa !16
  %4116 = load ptr, ptr %13, align 8, !tbaa !5
  %4117 = load i32, ptr %15, align 4, !tbaa !14
  %4118 = sext i32 %4117 to i64
  %4119 = getelementptr inbounds ptr, ptr %4116, i64 %4118
  %4120 = load ptr, ptr %4119, align 8, !tbaa !5
  %4121 = load i32, ptr %16, align 4, !tbaa !14
  %4122 = add nsw i32 %4121, 4
  %4123 = sext i32 %4122 to i64
  %4124 = getelementptr inbounds i8, ptr %4120, i64 %4123
  %4125 = load i8, ptr %4124, align 1, !tbaa !16
  %4126 = zext i8 %4125 to i32
  %4127 = load ptr, ptr %14, align 8, !tbaa !5
  %4128 = load i32, ptr %15, align 4, !tbaa !14
  %4129 = sext i32 %4128 to i64
  %4130 = getelementptr inbounds ptr, ptr %4127, i64 %4129
  %4131 = load ptr, ptr %4130, align 8, !tbaa !5
  %4132 = load i32, ptr %16, align 4, !tbaa !14
  %4133 = add nsw i32 %4132, 4
  %4134 = sext i32 %4133 to i64
  %4135 = getelementptr inbounds i8, ptr %4131, i64 %4134
  %4136 = load i8, ptr %4135, align 1, !tbaa !16
  %4137 = zext i8 %4136 to i32
  %4138 = sub nsw i32 %4126, %4137
  %4139 = icmp slt i32 %4138, 255
  br i1 %4139, label %4140, label %4164

4140:                                             ; preds = %4099
  %4141 = load ptr, ptr %13, align 8, !tbaa !5
  %4142 = load i32, ptr %15, align 4, !tbaa !14
  %4143 = sext i32 %4142 to i64
  %4144 = getelementptr inbounds ptr, ptr %4141, i64 %4143
  %4145 = load ptr, ptr %4144, align 8, !tbaa !5
  %4146 = load i32, ptr %16, align 4, !tbaa !14
  %4147 = add nsw i32 %4146, 4
  %4148 = sext i32 %4147 to i64
  %4149 = getelementptr inbounds i8, ptr %4145, i64 %4148
  %4150 = load i8, ptr %4149, align 1, !tbaa !16
  %4151 = zext i8 %4150 to i32
  %4152 = load ptr, ptr %14, align 8, !tbaa !5
  %4153 = load i32, ptr %15, align 4, !tbaa !14
  %4154 = sext i32 %4153 to i64
  %4155 = getelementptr inbounds ptr, ptr %4152, i64 %4154
  %4156 = load ptr, ptr %4155, align 8, !tbaa !5
  %4157 = load i32, ptr %16, align 4, !tbaa !14
  %4158 = add nsw i32 %4157, 4
  %4159 = sext i32 %4158 to i64
  %4160 = getelementptr inbounds i8, ptr %4156, i64 %4159
  %4161 = load i8, ptr %4160, align 1, !tbaa !16
  %4162 = zext i8 %4161 to i32
  %4163 = sub nsw i32 %4151, %4162
  br label %4165

4164:                                             ; preds = %4099
  br label %4165

4165:                                             ; preds = %4164, %4140
  %4166 = phi i32 [ %4163, %4140 ], [ 255, %4164 ]
  %4167 = trunc i32 %4166 to i8
  %4168 = load ptr, ptr %6, align 8, !tbaa !5
  %4169 = getelementptr inbounds %struct.MImage, ptr %4168, i32 0, i32 3
  %4170 = load i32, ptr %12, align 4, !tbaa !14
  %4171 = sext i32 %4170 to i64
  %4172 = getelementptr inbounds [4 x ptr], ptr %4169, i64 0, i64 %4171
  %4173 = load ptr, ptr %4172, align 8, !tbaa !5
  %4174 = load i32, ptr %15, align 4, !tbaa !14
  %4175 = sext i32 %4174 to i64
  %4176 = getelementptr inbounds ptr, ptr %4173, i64 %4175
  %4177 = load ptr, ptr %4176, align 8, !tbaa !5
  %4178 = load i32, ptr %16, align 4, !tbaa !14
  %4179 = add nsw i32 %4178, 4
  %4180 = sext i32 %4179 to i64
  %4181 = getelementptr inbounds i8, ptr %4177, i64 %4180
  store i8 %4167, ptr %4181, align 1, !tbaa !16
  %4182 = load ptr, ptr %13, align 8, !tbaa !5
  %4183 = load i32, ptr %15, align 4, !tbaa !14
  %4184 = sext i32 %4183 to i64
  %4185 = getelementptr inbounds ptr, ptr %4182, i64 %4184
  %4186 = load ptr, ptr %4185, align 8, !tbaa !5
  %4187 = load i32, ptr %16, align 4, !tbaa !14
  %4188 = add nsw i32 %4187, 5
  %4189 = sext i32 %4188 to i64
  %4190 = getelementptr inbounds i8, ptr %4186, i64 %4189
  %4191 = load i8, ptr %4190, align 1, !tbaa !16
  %4192 = zext i8 %4191 to i32
  %4193 = load ptr, ptr %14, align 8, !tbaa !5
  %4194 = load i32, ptr %15, align 4, !tbaa !14
  %4195 = sext i32 %4194 to i64
  %4196 = getelementptr inbounds ptr, ptr %4193, i64 %4195
  %4197 = load ptr, ptr %4196, align 8, !tbaa !5
  %4198 = load i32, ptr %16, align 4, !tbaa !14
  %4199 = add nsw i32 %4198, 5
  %4200 = sext i32 %4199 to i64
  %4201 = getelementptr inbounds i8, ptr %4197, i64 %4200
  %4202 = load i8, ptr %4201, align 1, !tbaa !16
  %4203 = zext i8 %4202 to i32
  %4204 = sub nsw i32 %4192, %4203
  %4205 = icmp slt i32 %4204, 255
  br i1 %4205, label %4206, label %4230

4206:                                             ; preds = %4165
  %4207 = load ptr, ptr %13, align 8, !tbaa !5
  %4208 = load i32, ptr %15, align 4, !tbaa !14
  %4209 = sext i32 %4208 to i64
  %4210 = getelementptr inbounds ptr, ptr %4207, i64 %4209
  %4211 = load ptr, ptr %4210, align 8, !tbaa !5
  %4212 = load i32, ptr %16, align 4, !tbaa !14
  %4213 = add nsw i32 %4212, 5
  %4214 = sext i32 %4213 to i64
  %4215 = getelementptr inbounds i8, ptr %4211, i64 %4214
  %4216 = load i8, ptr %4215, align 1, !tbaa !16
  %4217 = zext i8 %4216 to i32
  %4218 = load ptr, ptr %14, align 8, !tbaa !5
  %4219 = load i32, ptr %15, align 4, !tbaa !14
  %4220 = sext i32 %4219 to i64
  %4221 = getelementptr inbounds ptr, ptr %4218, i64 %4220
  %4222 = load ptr, ptr %4221, align 8, !tbaa !5
  %4223 = load i32, ptr %16, align 4, !tbaa !14
  %4224 = add nsw i32 %4223, 5
  %4225 = sext i32 %4224 to i64
  %4226 = getelementptr inbounds i8, ptr %4222, i64 %4225
  %4227 = load i8, ptr %4226, align 1, !tbaa !16
  %4228 = zext i8 %4227 to i32
  %4229 = sub nsw i32 %4217, %4228
  br label %4231

4230:                                             ; preds = %4165
  br label %4231

4231:                                             ; preds = %4230, %4206
  %4232 = phi i32 [ %4229, %4206 ], [ 255, %4230 ]
  %4233 = trunc i32 %4232 to i8
  %4234 = load ptr, ptr %6, align 8, !tbaa !5
  %4235 = getelementptr inbounds %struct.MImage, ptr %4234, i32 0, i32 3
  %4236 = load i32, ptr %12, align 4, !tbaa !14
  %4237 = sext i32 %4236 to i64
  %4238 = getelementptr inbounds [4 x ptr], ptr %4235, i64 0, i64 %4237
  %4239 = load ptr, ptr %4238, align 8, !tbaa !5
  %4240 = load i32, ptr %15, align 4, !tbaa !14
  %4241 = sext i32 %4240 to i64
  %4242 = getelementptr inbounds ptr, ptr %4239, i64 %4241
  %4243 = load ptr, ptr %4242, align 8, !tbaa !5
  %4244 = load i32, ptr %16, align 4, !tbaa !14
  %4245 = add nsw i32 %4244, 5
  %4246 = sext i32 %4245 to i64
  %4247 = getelementptr inbounds i8, ptr %4243, i64 %4246
  store i8 %4233, ptr %4247, align 1, !tbaa !16
  %4248 = load ptr, ptr %13, align 8, !tbaa !5
  %4249 = load i32, ptr %15, align 4, !tbaa !14
  %4250 = sext i32 %4249 to i64
  %4251 = getelementptr inbounds ptr, ptr %4248, i64 %4250
  %4252 = load ptr, ptr %4251, align 8, !tbaa !5
  %4253 = load i32, ptr %16, align 4, !tbaa !14
  %4254 = add nsw i32 %4253, 6
  %4255 = sext i32 %4254 to i64
  %4256 = getelementptr inbounds i8, ptr %4252, i64 %4255
  %4257 = load i8, ptr %4256, align 1, !tbaa !16
  %4258 = zext i8 %4257 to i32
  %4259 = load ptr, ptr %14, align 8, !tbaa !5
  %4260 = load i32, ptr %15, align 4, !tbaa !14
  %4261 = sext i32 %4260 to i64
  %4262 = getelementptr inbounds ptr, ptr %4259, i64 %4261
  %4263 = load ptr, ptr %4262, align 8, !tbaa !5
  %4264 = load i32, ptr %16, align 4, !tbaa !14
  %4265 = add nsw i32 %4264, 6
  %4266 = sext i32 %4265 to i64
  %4267 = getelementptr inbounds i8, ptr %4263, i64 %4266
  %4268 = load i8, ptr %4267, align 1, !tbaa !16
  %4269 = zext i8 %4268 to i32
  %4270 = sub nsw i32 %4258, %4269
  %4271 = icmp slt i32 %4270, 255
  br i1 %4271, label %4272, label %4296

4272:                                             ; preds = %4231
  %4273 = load ptr, ptr %13, align 8, !tbaa !5
  %4274 = load i32, ptr %15, align 4, !tbaa !14
  %4275 = sext i32 %4274 to i64
  %4276 = getelementptr inbounds ptr, ptr %4273, i64 %4275
  %4277 = load ptr, ptr %4276, align 8, !tbaa !5
  %4278 = load i32, ptr %16, align 4, !tbaa !14
  %4279 = add nsw i32 %4278, 6
  %4280 = sext i32 %4279 to i64
  %4281 = getelementptr inbounds i8, ptr %4277, i64 %4280
  %4282 = load i8, ptr %4281, align 1, !tbaa !16
  %4283 = zext i8 %4282 to i32
  %4284 = load ptr, ptr %14, align 8, !tbaa !5
  %4285 = load i32, ptr %15, align 4, !tbaa !14
  %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 %16, align 4, !tbaa !14
  %4290 = add nsw i32 %4289, 6
  %4291 = sext i32 %4290 to i64
  %4292 = getelementptr inbounds i8, ptr %4288, i64 %4291
  %4293 = load i8, ptr %4292, align 1, !tbaa !16
  %4294 = zext i8 %4293 to i32
  %4295 = sub nsw i32 %4283, %4294
  br label %4297

4296:                                             ; preds = %4231
  br label %4297

4297:                                             ; preds = %4296, %4272
  %4298 = phi i32 [ %4295, %4272 ], [ 255, %4296 ]
  %4299 = trunc i32 %4298 to i8
  %4300 = load ptr, ptr %6, align 8, !tbaa !5
  %4301 = getelementptr inbounds %struct.MImage, ptr %4300, i32 0, i32 3
  %4302 = load i32, ptr %12, align 4, !tbaa !14
  %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 %15, align 4, !tbaa !14
  %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 %16, align 4, !tbaa !14
  %4311 = add nsw i32 %4310, 6
  %4312 = sext i32 %4311 to i64
  %4313 = getelementptr inbounds i8, ptr %4309, i64 %4312
  store i8 %4299, ptr %4313, align 1, !tbaa !16
  %4314 = load ptr, ptr %13, align 8, !tbaa !5
  %4315 = load i32, ptr %15, align 4, !tbaa !14
  %4316 = sext i32 %4315 to i64
  %4317 = getelementptr inbounds ptr, ptr %4314, i64 %4316
  %4318 = load ptr, ptr %4317, align 8, !tbaa !5
  %4319 = load i32, ptr %16, align 4, !tbaa !14
  %4320 = add nsw i32 %4319, 7
  %4321 = sext i32 %4320 to i64
  %4322 = getelementptr inbounds i8, ptr %4318, i64 %4321
  %4323 = load i8, ptr %4322, align 1, !tbaa !16
  %4324 = zext i8 %4323 to i32
  %4325 = load ptr, ptr %14, align 8, !tbaa !5
  %4326 = load i32, ptr %15, align 4, !tbaa !14
  %4327 = sext i32 %4326 to i64
  %4328 = getelementptr inbounds ptr, ptr %4325, i64 %4327
  %4329 = load ptr, ptr %4328, align 8, !tbaa !5
  %4330 = load i32, ptr %16, align 4, !tbaa !14
  %4331 = add nsw i32 %4330, 7
  %4332 = sext i32 %4331 to i64
  %4333 = getelementptr inbounds i8, ptr %4329, i64 %4332
  %4334 = load i8, ptr %4333, align 1, !tbaa !16
  %4335 = zext i8 %4334 to i32
  %4336 = sub nsw i32 %4324, %4335
  %4337 = icmp slt i32 %4336, 255
  br i1 %4337, label %4338, label %4362

4338:                                             ; preds = %4297
  %4339 = load ptr, ptr %13, align 8, !tbaa !5
  %4340 = load i32, ptr %15, align 4, !tbaa !14
  %4341 = sext i32 %4340 to i64
  %4342 = getelementptr inbounds ptr, ptr %4339, i64 %4341
  %4343 = load ptr, ptr %4342, align 8, !tbaa !5
  %4344 = load i32, ptr %16, align 4, !tbaa !14
  %4345 = add nsw i32 %4344, 7
  %4346 = sext i32 %4345 to i64
  %4347 = getelementptr inbounds i8, ptr %4343, i64 %4346
  %4348 = load i8, ptr %4347, align 1, !tbaa !16
  %4349 = zext i8 %4348 to i32
  %4350 = load ptr, ptr %14, align 8, !tbaa !5
  %4351 = load i32, ptr %15, align 4, !tbaa !14
  %4352 = sext i32 %4351 to i64
  %4353 = getelementptr inbounds ptr, ptr %4350, i64 %4352
  %4354 = load ptr, ptr %4353, align 8, !tbaa !5
  %4355 = load i32, ptr %16, align 4, !tbaa !14
  %4356 = add nsw i32 %4355, 7
  %4357 = sext i32 %4356 to i64
  %4358 = getelementptr inbounds i8, ptr %4354, i64 %4357
  %4359 = load i8, ptr %4358, align 1, !tbaa !16
  %4360 = zext i8 %4359 to i32
  %4361 = sub nsw i32 %4349, %4360
  br label %4363

4362:                                             ; preds = %4297
  br label %4363

4363:                                             ; preds = %4362, %4338
  %4364 = phi i32 [ %4361, %4338 ], [ 255, %4362 ]
  %4365 = trunc i32 %4364 to i8
  %4366 = load ptr, ptr %6, align 8, !tbaa !5
  %4367 = getelementptr inbounds %struct.MImage, ptr %4366, i32 0, i32 3
  %4368 = load i32, ptr %12, align 4, !tbaa !14
  %4369 = sext i32 %4368 to i64
  %4370 = getelementptr inbounds [4 x ptr], ptr %4367, i64 0, i64 %4369
  %4371 = load ptr, ptr %4370, align 8, !tbaa !5
  %4372 = load i32, ptr %15, align 4, !tbaa !14
  %4373 = sext i32 %4372 to i64
  %4374 = getelementptr inbounds ptr, ptr %4371, i64 %4373
  %4375 = load ptr, ptr %4374, align 8, !tbaa !5
  %4376 = load i32, ptr %16, align 4, !tbaa !14
  %4377 = add nsw i32 %4376, 7
  %4378 = sext i32 %4377 to i64
  %4379 = getelementptr inbounds i8, ptr %4375, i64 %4378
  store i8 %4365, ptr %4379, align 1, !tbaa !16
  %4380 = load ptr, ptr %13, align 8, !tbaa !5
  %4381 = load i32, ptr %15, align 4, !tbaa !14
  %4382 = sext i32 %4381 to i64
  %4383 = getelementptr inbounds ptr, ptr %4380, i64 %4382
  %4384 = load ptr, ptr %4383, align 8, !tbaa !5
  %4385 = load i32, ptr %16, align 4, !tbaa !14
  %4386 = add nsw i32 %4385, 8
  %4387 = sext i32 %4386 to i64
  %4388 = getelementptr inbounds i8, ptr %4384, i64 %4387
  %4389 = load i8, ptr %4388, align 1, !tbaa !16
  %4390 = zext i8 %4389 to i32
  %4391 = load ptr, ptr %14, align 8, !tbaa !5
  %4392 = load i32, ptr %15, align 4, !tbaa !14
  %4393 = sext i32 %4392 to i64
  %4394 = getelementptr inbounds ptr, ptr %4391, i64 %4393
  %4395 = load ptr, ptr %4394, align 8, !tbaa !5
  %4396 = load i32, ptr %16, align 4, !tbaa !14
  %4397 = add nsw i32 %4396, 8
  %4398 = sext i32 %4397 to i64
  %4399 = getelementptr inbounds i8, ptr %4395, i64 %4398
  %4400 = load i8, ptr %4399, align 1, !tbaa !16
  %4401 = zext i8 %4400 to i32
  %4402 = sub nsw i32 %4390, %4401
  %4403 = icmp slt i32 %4402, 255
  br i1 %4403, label %4404, label %4428

4404:                                             ; preds = %4363
  %4405 = load ptr, ptr %13, align 8, !tbaa !5
  %4406 = load i32, ptr %15, align 4, !tbaa !14
  %4407 = sext i32 %4406 to i64
  %4408 = getelementptr inbounds ptr, ptr %4405, i64 %4407
  %4409 = load ptr, ptr %4408, align 8, !tbaa !5
  %4410 = load i32, ptr %16, align 4, !tbaa !14
  %4411 = add nsw i32 %4410, 8
  %4412 = sext i32 %4411 to i64
  %4413 = getelementptr inbounds i8, ptr %4409, i64 %4412
  %4414 = load i8, ptr %4413, align 1, !tbaa !16
  %4415 = zext i8 %4414 to i32
  %4416 = load ptr, ptr %14, align 8, !tbaa !5
  %4417 = load i32, ptr %15, align 4, !tbaa !14
  %4418 = sext i32 %4417 to i64
  %4419 = getelementptr inbounds ptr, ptr %4416, i64 %4418
  %4420 = load ptr, ptr %4419, align 8, !tbaa !5
  %4421 = load i32, ptr %16, align 4, !tbaa !14
  %4422 = add nsw i32 %4421, 8
  %4423 = sext i32 %4422 to i64
  %4424 = getelementptr inbounds i8, ptr %4420, i64 %4423
  %4425 = load i8, ptr %4424, align 1, !tbaa !16
  %4426 = zext i8 %4425 to i32
  %4427 = sub nsw i32 %4415, %4426
  br label %4429

4428:                                             ; preds = %4363
  br label %4429

4429:                                             ; preds = %4428, %4404
  %4430 = phi i32 [ %4427, %4404 ], [ 255, %4428 ]
  %4431 = trunc i32 %4430 to i8
  %4432 = load ptr, ptr %6, align 8, !tbaa !5
  %4433 = getelementptr inbounds %struct.MImage, ptr %4432, i32 0, i32 3
  %4434 = load i32, ptr %12, align 4, !tbaa !14
  %4435 = sext i32 %4434 to i64
  %4436 = getelementptr inbounds [4 x ptr], ptr %4433, i64 0, i64 %4435
  %4437 = load ptr, ptr %4436, align 8, !tbaa !5
  %4438 = load i32, ptr %15, align 4, !tbaa !14
  %4439 = sext i32 %4438 to i64
  %4440 = getelementptr inbounds ptr, ptr %4437, i64 %4439
  %4441 = load ptr, ptr %4440, align 8, !tbaa !5
  %4442 = load i32, ptr %16, align 4, !tbaa !14
  %4443 = add nsw i32 %4442, 8
  %4444 = sext i32 %4443 to i64
  %4445 = getelementptr inbounds i8, ptr %4441, i64 %4444
  store i8 %4431, ptr %4445, align 1, !tbaa !16
  br label %9450

4446:                                             ; preds = %3844
  %4447 = load ptr, ptr %6, align 8, !tbaa !5
  %4448 = getelementptr inbounds %struct.MImage, ptr %4447, i32 0, i32 2
  %4449 = load i32, ptr %4448, align 8, !tbaa !13
  %4450 = load i32, ptr %16, align 4, !tbaa !14
  %4451 = sub nsw i32 %4449, %4450
  %4452 = icmp eq i32 %4451, 10
  br i1 %4452, label %4453, label %5114

4453:                                             ; preds = %4446
  %4454 = load ptr, ptr %13, align 8, !tbaa !5
  %4455 = load i32, ptr %15, align 4, !tbaa !14
  %4456 = sext i32 %4455 to i64
  %4457 = getelementptr inbounds ptr, ptr %4454, i64 %4456
  %4458 = load ptr, ptr %4457, align 8, !tbaa !5
  %4459 = load i32, ptr %16, align 4, !tbaa !14
  %4460 = add nsw i32 %4459, 0
  %4461 = sext i32 %4460 to i64
  %4462 = getelementptr inbounds i8, ptr %4458, i64 %4461
  %4463 = load i8, ptr %4462, align 1, !tbaa !16
  %4464 = zext i8 %4463 to i32
  %4465 = load ptr, ptr %14, align 8, !tbaa !5
  %4466 = load i32, ptr %15, align 4, !tbaa !14
  %4467 = sext i32 %4466 to i64
  %4468 = getelementptr inbounds ptr, ptr %4465, i64 %4467
  %4469 = load ptr, ptr %4468, align 8, !tbaa !5
  %4470 = load i32, ptr %16, align 4, !tbaa !14
  %4471 = add nsw i32 %4470, 0
  %4472 = sext i32 %4471 to i64
  %4473 = getelementptr inbounds i8, ptr %4469, i64 %4472
  %4474 = load i8, ptr %4473, align 1, !tbaa !16
  %4475 = zext i8 %4474 to i32
  %4476 = sub nsw i32 %4464, %4475
  %4477 = icmp slt i32 %4476, 255
  br i1 %4477, label %4478, label %4502

4478:                                             ; preds = %4453
  %4479 = load ptr, ptr %13, align 8, !tbaa !5
  %4480 = load i32, ptr %15, align 4, !tbaa !14
  %4481 = sext i32 %4480 to i64
  %4482 = getelementptr inbounds ptr, ptr %4479, i64 %4481
  %4483 = load ptr, ptr %4482, align 8, !tbaa !5
  %4484 = load i32, ptr %16, align 4, !tbaa !14
  %4485 = add nsw i32 %4484, 0
  %4486 = sext i32 %4485 to i64
  %4487 = getelementptr inbounds i8, ptr %4483, i64 %4486
  %4488 = load i8, ptr %4487, align 1, !tbaa !16
  %4489 = zext i8 %4488 to i32
  %4490 = load ptr, ptr %14, align 8, !tbaa !5
  %4491 = load i32, ptr %15, align 4, !tbaa !14
  %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 %16, align 4, !tbaa !14
  %4496 = add nsw i32 %4495, 0
  %4497 = sext i32 %4496 to i64
  %4498 = getelementptr inbounds i8, ptr %4494, i64 %4497
  %4499 = load i8, ptr %4498, align 1, !tbaa !16
  %4500 = zext i8 %4499 to i32
  %4501 = sub nsw i32 %4489, %4500
  br label %4503

4502:                                             ; preds = %4453
  br label %4503

4503:                                             ; preds = %4502, %4478
  %4504 = phi i32 [ %4501, %4478 ], [ 255, %4502 ]
  %4505 = trunc i32 %4504 to i8
  %4506 = load ptr, ptr %6, align 8, !tbaa !5
  %4507 = getelementptr inbounds %struct.MImage, ptr %4506, i32 0, i32 3
  %4508 = load i32, ptr %12, align 4, !tbaa !14
  %4509 = sext i32 %4508 to i64
  %4510 = getelementptr inbounds [4 x ptr], ptr %4507, i64 0, i64 %4509
  %4511 = load ptr, ptr %4510, align 8, !tbaa !5
  %4512 = load i32, ptr %15, align 4, !tbaa !14
  %4513 = sext i32 %4512 to i64
  %4514 = getelementptr inbounds ptr, ptr %4511, i64 %4513
  %4515 = load ptr, ptr %4514, align 8, !tbaa !5
  %4516 = load i32, ptr %16, align 4, !tbaa !14
  %4517 = add nsw i32 %4516, 0
  %4518 = sext i32 %4517 to i64
  %4519 = getelementptr inbounds i8, ptr %4515, i64 %4518
  store i8 %4505, ptr %4519, align 1, !tbaa !16
  %4520 = load ptr, ptr %13, align 8, !tbaa !5
  %4521 = load i32, ptr %15, align 4, !tbaa !14
  %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 %16, align 4, !tbaa !14
  %4526 = add nsw i32 %4525, 1
  %4527 = sext i32 %4526 to i64
  %4528 = getelementptr inbounds i8, ptr %4524, i64 %4527
  %4529 = load i8, ptr %4528, align 1, !tbaa !16
  %4530 = zext i8 %4529 to i32
  %4531 = load ptr, ptr %14, align 8, !tbaa !5
  %4532 = load i32, ptr %15, align 4, !tbaa !14
  %4533 = sext i32 %4532 to i64
  %4534 = getelementptr inbounds ptr, ptr %4531, i64 %4533
  %4535 = load ptr, ptr %4534, align 8, !tbaa !5
  %4536 = load i32, ptr %16, align 4, !tbaa !14
  %4537 = add nsw i32 %4536, 1
  %4538 = sext i32 %4537 to i64
  %4539 = getelementptr inbounds i8, ptr %4535, i64 %4538
  %4540 = load i8, ptr %4539, align 1, !tbaa !16
  %4541 = zext i8 %4540 to i32
  %4542 = sub nsw i32 %4530, %4541
  %4543 = icmp slt i32 %4542, 255
  br i1 %4543, label %4544, label %4568

4544:                                             ; preds = %4503
  %4545 = load ptr, ptr %13, align 8, !tbaa !5
  %4546 = load i32, ptr %15, align 4, !tbaa !14
  %4547 = sext i32 %4546 to i64
  %4548 = getelementptr inbounds ptr, ptr %4545, i64 %4547
  %4549 = load ptr, ptr %4548, align 8, !tbaa !5
  %4550 = load i32, ptr %16, align 4, !tbaa !14
  %4551 = add nsw i32 %4550, 1
  %4552 = sext i32 %4551 to i64
  %4553 = getelementptr inbounds i8, ptr %4549, i64 %4552
  %4554 = load i8, ptr %4553, align 1, !tbaa !16
  %4555 = zext i8 %4554 to i32
  %4556 = load ptr, ptr %14, align 8, !tbaa !5
  %4557 = load i32, ptr %15, align 4, !tbaa !14
  %4558 = sext i32 %4557 to i64
  %4559 = getelementptr inbounds ptr, ptr %4556, i64 %4558
  %4560 = load ptr, ptr %4559, align 8, !tbaa !5
  %4561 = load i32, ptr %16, align 4, !tbaa !14
  %4562 = add nsw i32 %4561, 1
  %4563 = sext i32 %4562 to i64
  %4564 = getelementptr inbounds i8, ptr %4560, i64 %4563
  %4565 = load i8, ptr %4564, align 1, !tbaa !16
  %4566 = zext i8 %4565 to i32
  %4567 = sub nsw i32 %4555, %4566
  br label %4569

4568:                                             ; preds = %4503
  br label %4569

4569:                                             ; preds = %4568, %4544
  %4570 = phi i32 [ %4567, %4544 ], [ 255, %4568 ]
  %4571 = trunc i32 %4570 to i8
  %4572 = load ptr, ptr %6, align 8, !tbaa !5
  %4573 = getelementptr inbounds %struct.MImage, ptr %4572, i32 0, i32 3
  %4574 = load i32, ptr %12, align 4, !tbaa !14
  %4575 = sext i32 %4574 to i64
  %4576 = getelementptr inbounds [4 x ptr], ptr %4573, i64 0, i64 %4575
  %4577 = load ptr, ptr %4576, align 8, !tbaa !5
  %4578 = load i32, ptr %15, align 4, !tbaa !14
  %4579 = sext i32 %4578 to i64
  %4580 = getelementptr inbounds ptr, ptr %4577, i64 %4579
  %4581 = load ptr, ptr %4580, align 8, !tbaa !5
  %4582 = load i32, ptr %16, align 4, !tbaa !14
  %4583 = add nsw i32 %4582, 1
  %4584 = sext i32 %4583 to i64
  %4585 = getelementptr inbounds i8, ptr %4581, i64 %4584
  store i8 %4571, ptr %4585, align 1, !tbaa !16
  %4586 = load ptr, ptr %13, align 8, !tbaa !5
  %4587 = load i32, ptr %15, align 4, !tbaa !14
  %4588 = sext i32 %4587 to i64
  %4589 = getelementptr inbounds ptr, ptr %4586, i64 %4588
  %4590 = load ptr, ptr %4589, align 8, !tbaa !5
  %4591 = load i32, ptr %16, align 4, !tbaa !14
  %4592 = add nsw i32 %4591, 2
  %4593 = sext i32 %4592 to i64
  %4594 = getelementptr inbounds i8, ptr %4590, i64 %4593
  %4595 = load i8, ptr %4594, align 1, !tbaa !16
  %4596 = zext i8 %4595 to i32
  %4597 = load ptr, ptr %14, align 8, !tbaa !5
  %4598 = load i32, ptr %15, align 4, !tbaa !14
  %4599 = sext i32 %4598 to i64
  %4600 = getelementptr inbounds ptr, ptr %4597, i64 %4599
  %4601 = load ptr, ptr %4600, align 8, !tbaa !5
  %4602 = load i32, ptr %16, align 4, !tbaa !14
  %4603 = add nsw i32 %4602, 2
  %4604 = sext i32 %4603 to i64
  %4605 = getelementptr inbounds i8, ptr %4601, i64 %4604
  %4606 = load i8, ptr %4605, align 1, !tbaa !16
  %4607 = zext i8 %4606 to i32
  %4608 = sub nsw i32 %4596, %4607
  %4609 = icmp slt i32 %4608, 255
  br i1 %4609, label %4610, label %4634

4610:                                             ; preds = %4569
  %4611 = load ptr, ptr %13, align 8, !tbaa !5
  %4612 = load i32, ptr %15, align 4, !tbaa !14
  %4613 = sext i32 %4612 to i64
  %4614 = getelementptr inbounds ptr, ptr %4611, i64 %4613
  %4615 = load ptr, ptr %4614, align 8, !tbaa !5
  %4616 = load i32, ptr %16, align 4, !tbaa !14
  %4617 = add nsw i32 %4616, 2
  %4618 = sext i32 %4617 to i64
  %4619 = getelementptr inbounds i8, ptr %4615, i64 %4618
  %4620 = load i8, ptr %4619, align 1, !tbaa !16
  %4621 = zext i8 %4620 to i32
  %4622 = load ptr, ptr %14, align 8, !tbaa !5
  %4623 = load i32, ptr %15, align 4, !tbaa !14
  %4624 = sext i32 %4623 to i64
  %4625 = getelementptr inbounds ptr, ptr %4622, i64 %4624
  %4626 = load ptr, ptr %4625, align 8, !tbaa !5
  %4627 = load i32, ptr %16, align 4, !tbaa !14
  %4628 = add nsw i32 %4627, 2
  %4629 = sext i32 %4628 to i64
  %4630 = getelementptr inbounds i8, ptr %4626, i64 %4629
  %4631 = load i8, ptr %4630, align 1, !tbaa !16
  %4632 = zext i8 %4631 to i32
  %4633 = sub nsw i32 %4621, %4632
  br label %4635

4634:                                             ; preds = %4569
  br label %4635

4635:                                             ; preds = %4634, %4610
  %4636 = phi i32 [ %4633, %4610 ], [ 255, %4634 ]
  %4637 = trunc i32 %4636 to i8
  %4638 = load ptr, ptr %6, align 8, !tbaa !5
  %4639 = getelementptr inbounds %struct.MImage, ptr %4638, i32 0, i32 3
  %4640 = load i32, ptr %12, align 4, !tbaa !14
  %4641 = sext i32 %4640 to i64
  %4642 = getelementptr inbounds [4 x ptr], ptr %4639, i64 0, i64 %4641
  %4643 = load ptr, ptr %4642, align 8, !tbaa !5
  %4644 = load i32, ptr %15, align 4, !tbaa !14
  %4645 = sext i32 %4644 to i64
  %4646 = getelementptr inbounds ptr, ptr %4643, i64 %4645
  %4647 = load ptr, ptr %4646, align 8, !tbaa !5
  %4648 = load i32, ptr %16, align 4, !tbaa !14
  %4649 = add nsw i32 %4648, 2
  %4650 = sext i32 %4649 to i64
  %4651 = getelementptr inbounds i8, ptr %4647, i64 %4650
  store i8 %4637, ptr %4651, align 1, !tbaa !16
  %4652 = load ptr, ptr %13, align 8, !tbaa !5
  %4653 = load i32, ptr %15, align 4, !tbaa !14
  %4654 = sext i32 %4653 to i64
  %4655 = getelementptr inbounds ptr, ptr %4652, i64 %4654
  %4656 = load ptr, ptr %4655, align 8, !tbaa !5
  %4657 = load i32, ptr %16, align 4, !tbaa !14
  %4658 = add nsw i32 %4657, 3
  %4659 = sext i32 %4658 to i64
  %4660 = getelementptr inbounds i8, ptr %4656, i64 %4659
  %4661 = load i8, ptr %4660, align 1, !tbaa !16
  %4662 = zext i8 %4661 to i32
  %4663 = load ptr, ptr %14, align 8, !tbaa !5
  %4664 = load i32, ptr %15, align 4, !tbaa !14
  %4665 = sext i32 %4664 to i64
  %4666 = getelementptr inbounds ptr, ptr %4663, i64 %4665
  %4667 = load ptr, ptr %4666, align 8, !tbaa !5
  %4668 = load i32, ptr %16, align 4, !tbaa !14
  %4669 = add nsw i32 %4668, 3
  %4670 = sext i32 %4669 to i64
  %4671 = getelementptr inbounds i8, ptr %4667, i64 %4670
  %4672 = load i8, ptr %4671, align 1, !tbaa !16
  %4673 = zext i8 %4672 to i32
  %4674 = sub nsw i32 %4662, %4673
  %4675 = icmp slt i32 %4674, 255
  br i1 %4675, label %4676, label %4700

4676:                                             ; preds = %4635
  %4677 = load ptr, ptr %13, align 8, !tbaa !5
  %4678 = load i32, ptr %15, align 4, !tbaa !14
  %4679 = sext i32 %4678 to i64
  %4680 = getelementptr inbounds ptr, ptr %4677, i64 %4679
  %4681 = load ptr, ptr %4680, align 8, !tbaa !5
  %4682 = load i32, ptr %16, align 4, !tbaa !14
  %4683 = add nsw i32 %4682, 3
  %4684 = sext i32 %4683 to i64
  %4685 = getelementptr inbounds i8, ptr %4681, i64 %4684
  %4686 = load i8, ptr %4685, align 1, !tbaa !16
  %4687 = zext i8 %4686 to i32
  %4688 = load ptr, ptr %14, align 8, !tbaa !5
  %4689 = load i32, ptr %15, align 4, !tbaa !14
  %4690 = sext i32 %4689 to i64
  %4691 = getelementptr inbounds ptr, ptr %4688, i64 %4690
  %4692 = load ptr, ptr %4691, align 8, !tbaa !5
  %4693 = load i32, ptr %16, align 4, !tbaa !14
  %4694 = add nsw i32 %4693, 3
  %4695 = sext i32 %4694 to i64
  %4696 = getelementptr inbounds i8, ptr %4692, i64 %4695
  %4697 = load i8, ptr %4696, align 1, !tbaa !16
  %4698 = zext i8 %4697 to i32
  %4699 = sub nsw i32 %4687, %4698
  br label %4701

4700:                                             ; preds = %4635
  br label %4701

4701:                                             ; preds = %4700, %4676
  %4702 = phi i32 [ %4699, %4676 ], [ 255, %4700 ]
  %4703 = trunc i32 %4702 to i8
  %4704 = load ptr, ptr %6, align 8, !tbaa !5
  %4705 = getelementptr inbounds %struct.MImage, ptr %4704, i32 0, i32 3
  %4706 = load i32, ptr %12, align 4, !tbaa !14
  %4707 = sext i32 %4706 to i64
  %4708 = getelementptr inbounds [4 x ptr], ptr %4705, i64 0, i64 %4707
  %4709 = load ptr, ptr %4708, align 8, !tbaa !5
  %4710 = load i32, ptr %15, align 4, !tbaa !14
  %4711 = sext i32 %4710 to i64
  %4712 = getelementptr inbounds ptr, ptr %4709, i64 %4711
  %4713 = load ptr, ptr %4712, align 8, !tbaa !5
  %4714 = load i32, ptr %16, align 4, !tbaa !14
  %4715 = add nsw i32 %4714, 3
  %4716 = sext i32 %4715 to i64
  %4717 = getelementptr inbounds i8, ptr %4713, i64 %4716
  store i8 %4703, ptr %4717, align 1, !tbaa !16
  %4718 = load ptr, ptr %13, align 8, !tbaa !5
  %4719 = load i32, ptr %15, align 4, !tbaa !14
  %4720 = sext i32 %4719 to i64
  %4721 = getelementptr inbounds ptr, ptr %4718, i64 %4720
  %4722 = load ptr, ptr %4721, align 8, !tbaa !5
  %4723 = load i32, ptr %16, align 4, !tbaa !14
  %4724 = add nsw i32 %4723, 4
  %4725 = sext i32 %4724 to i64
  %4726 = getelementptr inbounds i8, ptr %4722, i64 %4725
  %4727 = load i8, ptr %4726, align 1, !tbaa !16
  %4728 = zext i8 %4727 to i32
  %4729 = load ptr, ptr %14, align 8, !tbaa !5
  %4730 = load i32, ptr %15, align 4, !tbaa !14
  %4731 = sext i32 %4730 to i64
  %4732 = getelementptr inbounds ptr, ptr %4729, i64 %4731
  %4733 = load ptr, ptr %4732, align 8, !tbaa !5
  %4734 = load i32, ptr %16, align 4, !tbaa !14
  %4735 = add nsw i32 %4734, 4
  %4736 = sext i32 %4735 to i64
  %4737 = getelementptr inbounds i8, ptr %4733, i64 %4736
  %4738 = load i8, ptr %4737, align 1, !tbaa !16
  %4739 = zext i8 %4738 to i32
  %4740 = sub nsw i32 %4728, %4739
  %4741 = icmp slt i32 %4740, 255
  br i1 %4741, label %4742, label %4766

4742:                                             ; preds = %4701
  %4743 = load ptr, ptr %13, align 8, !tbaa !5
  %4744 = load i32, ptr %15, align 4, !tbaa !14
  %4745 = sext i32 %4744 to i64
  %4746 = getelementptr inbounds ptr, ptr %4743, i64 %4745
  %4747 = load ptr, ptr %4746, align 8, !tbaa !5
  %4748 = load i32, ptr %16, align 4, !tbaa !14
  %4749 = add nsw i32 %4748, 4
  %4750 = sext i32 %4749 to i64
  %4751 = getelementptr inbounds i8, ptr %4747, i64 %4750
  %4752 = load i8, ptr %4751, align 1, !tbaa !16
  %4753 = zext i8 %4752 to i32
  %4754 = load ptr, ptr %14, align 8, !tbaa !5
  %4755 = load i32, ptr %15, align 4, !tbaa !14
  %4756 = sext i32 %4755 to i64
  %4757 = getelementptr inbounds ptr, ptr %4754, i64 %4756
  %4758 = load ptr, ptr %4757, align 8, !tbaa !5
  %4759 = load i32, ptr %16, align 4, !tbaa !14
  %4760 = add nsw i32 %4759, 4
  %4761 = sext i32 %4760 to i64
  %4762 = getelementptr inbounds i8, ptr %4758, i64 %4761
  %4763 = load i8, ptr %4762, align 1, !tbaa !16
  %4764 = zext i8 %4763 to i32
  %4765 = sub nsw i32 %4753, %4764
  br label %4767

4766:                                             ; preds = %4701
  br label %4767

4767:                                             ; preds = %4766, %4742
  %4768 = phi i32 [ %4765, %4742 ], [ 255, %4766 ]
  %4769 = trunc i32 %4768 to i8
  %4770 = load ptr, ptr %6, align 8, !tbaa !5
  %4771 = getelementptr inbounds %struct.MImage, ptr %4770, i32 0, i32 3
  %4772 = load i32, ptr %12, align 4, !tbaa !14
  %4773 = sext i32 %4772 to i64
  %4774 = getelementptr inbounds [4 x ptr], ptr %4771, i64 0, i64 %4773
  %4775 = load ptr, ptr %4774, align 8, !tbaa !5
  %4776 = load i32, ptr %15, align 4, !tbaa !14
  %4777 = sext i32 %4776 to i64
  %4778 = getelementptr inbounds ptr, ptr %4775, i64 %4777
  %4779 = load ptr, ptr %4778, align 8, !tbaa !5
  %4780 = load i32, ptr %16, align 4, !tbaa !14
  %4781 = add nsw i32 %4780, 4
  %4782 = sext i32 %4781 to i64
  %4783 = getelementptr inbounds i8, ptr %4779, i64 %4782
  store i8 %4769, ptr %4783, align 1, !tbaa !16
  %4784 = load ptr, ptr %13, align 8, !tbaa !5
  %4785 = load i32, ptr %15, align 4, !tbaa !14
  %4786 = sext i32 %4785 to i64
  %4787 = getelementptr inbounds ptr, ptr %4784, i64 %4786
  %4788 = load ptr, ptr %4787, align 8, !tbaa !5
  %4789 = load i32, ptr %16, align 4, !tbaa !14
  %4790 = add nsw i32 %4789, 5
  %4791 = sext i32 %4790 to i64
  %4792 = getelementptr inbounds i8, ptr %4788, i64 %4791
  %4793 = load i8, ptr %4792, align 1, !tbaa !16
  %4794 = zext i8 %4793 to i32
  %4795 = load ptr, ptr %14, align 8, !tbaa !5
  %4796 = load i32, ptr %15, align 4, !tbaa !14
  %4797 = sext i32 %4796 to i64
  %4798 = getelementptr inbounds ptr, ptr %4795, i64 %4797
  %4799 = load ptr, ptr %4798, align 8, !tbaa !5
  %4800 = load i32, ptr %16, align 4, !tbaa !14
  %4801 = add nsw i32 %4800, 5
  %4802 = sext i32 %4801 to i64
  %4803 = getelementptr inbounds i8, ptr %4799, i64 %4802
  %4804 = load i8, ptr %4803, align 1, !tbaa !16
  %4805 = zext i8 %4804 to i32
  %4806 = sub nsw i32 %4794, %4805
  %4807 = icmp slt i32 %4806, 255
  br i1 %4807, label %4808, label %4832

4808:                                             ; preds = %4767
  %4809 = load ptr, ptr %13, align 8, !tbaa !5
  %4810 = load i32, ptr %15, align 4, !tbaa !14
  %4811 = sext i32 %4810 to i64
  %4812 = getelementptr inbounds ptr, ptr %4809, i64 %4811
  %4813 = load ptr, ptr %4812, align 8, !tbaa !5
  %4814 = load i32, ptr %16, align 4, !tbaa !14
  %4815 = add nsw i32 %4814, 5
  %4816 = sext i32 %4815 to i64
  %4817 = getelementptr inbounds i8, ptr %4813, i64 %4816
  %4818 = load i8, ptr %4817, align 1, !tbaa !16
  %4819 = zext i8 %4818 to i32
  %4820 = load ptr, ptr %14, align 8, !tbaa !5
  %4821 = load i32, ptr %15, align 4, !tbaa !14
  %4822 = sext i32 %4821 to i64
  %4823 = getelementptr inbounds ptr, ptr %4820, i64 %4822
  %4824 = load ptr, ptr %4823, align 8, !tbaa !5
  %4825 = load i32, ptr %16, align 4, !tbaa !14
  %4826 = add nsw i32 %4825, 5
  %4827 = sext i32 %4826 to i64
  %4828 = getelementptr inbounds i8, ptr %4824, i64 %4827
  %4829 = load i8, ptr %4828, align 1, !tbaa !16
  %4830 = zext i8 %4829 to i32
  %4831 = sub nsw i32 %4819, %4830
  br label %4833

4832:                                             ; preds = %4767
  br label %4833

4833:                                             ; preds = %4832, %4808
  %4834 = phi i32 [ %4831, %4808 ], [ 255, %4832 ]
  %4835 = trunc i32 %4834 to i8
  %4836 = load ptr, ptr %6, align 8, !tbaa !5
  %4837 = getelementptr inbounds %struct.MImage, ptr %4836, i32 0, i32 3
  %4838 = load i32, ptr %12, align 4, !tbaa !14
  %4839 = sext i32 %4838 to i64
  %4840 = getelementptr inbounds [4 x ptr], ptr %4837, i64 0, i64 %4839
  %4841 = load ptr, ptr %4840, align 8, !tbaa !5
  %4842 = load i32, ptr %15, align 4, !tbaa !14
  %4843 = sext i32 %4842 to i64
  %4844 = getelementptr inbounds ptr, ptr %4841, i64 %4843
  %4845 = load ptr, ptr %4844, align 8, !tbaa !5
  %4846 = load i32, ptr %16, align 4, !tbaa !14
  %4847 = add nsw i32 %4846, 5
  %4848 = sext i32 %4847 to i64
  %4849 = getelementptr inbounds i8, ptr %4845, i64 %4848
  store i8 %4835, ptr %4849, align 1, !tbaa !16
  %4850 = load ptr, ptr %13, align 8, !tbaa !5
  %4851 = load i32, ptr %15, align 4, !tbaa !14
  %4852 = sext i32 %4851 to i64
  %4853 = getelementptr inbounds ptr, ptr %4850, i64 %4852
  %4854 = load ptr, ptr %4853, align 8, !tbaa !5
  %4855 = load i32, ptr %16, align 4, !tbaa !14
  %4856 = add nsw i32 %4855, 6
  %4857 = sext i32 %4856 to i64
  %4858 = getelementptr inbounds i8, ptr %4854, i64 %4857
  %4859 = load i8, ptr %4858, align 1, !tbaa !16
  %4860 = zext i8 %4859 to i32
  %4861 = load ptr, ptr %14, align 8, !tbaa !5
  %4862 = load i32, ptr %15, align 4, !tbaa !14
  %4863 = sext i32 %4862 to i64
  %4864 = getelementptr inbounds ptr, ptr %4861, i64 %4863
  %4865 = load ptr, ptr %4864, align 8, !tbaa !5
  %4866 = load i32, ptr %16, align 4, !tbaa !14
  %4867 = add nsw i32 %4866, 6
  %4868 = sext i32 %4867 to i64
  %4869 = getelementptr inbounds i8, ptr %4865, i64 %4868
  %4870 = load i8, ptr %4869, align 1, !tbaa !16
  %4871 = zext i8 %4870 to i32
  %4872 = sub nsw i32 %4860, %4871
  %4873 = icmp slt i32 %4872, 255
  br i1 %4873, label %4874, label %4898

4874:                                             ; preds = %4833
  %4875 = load ptr, ptr %13, align 8, !tbaa !5
  %4876 = load i32, ptr %15, align 4, !tbaa !14
  %4877 = sext i32 %4876 to i64
  %4878 = getelementptr inbounds ptr, ptr %4875, i64 %4877
  %4879 = load ptr, ptr %4878, align 8, !tbaa !5
  %4880 = load i32, ptr %16, align 4, !tbaa !14
  %4881 = add nsw i32 %4880, 6
  %4882 = sext i32 %4881 to i64
  %4883 = getelementptr inbounds i8, ptr %4879, i64 %4882
  %4884 = load i8, ptr %4883, align 1, !tbaa !16
  %4885 = zext i8 %4884 to i32
  %4886 = load ptr, ptr %14, align 8, !tbaa !5
  %4887 = load i32, ptr %15, align 4, !tbaa !14
  %4888 = sext i32 %4887 to i64
  %4889 = getelementptr inbounds ptr, ptr %4886, i64 %4888
  %4890 = load ptr, ptr %4889, align 8, !tbaa !5
  %4891 = load i32, ptr %16, align 4, !tbaa !14
  %4892 = add nsw i32 %4891, 6
  %4893 = sext i32 %4892 to i64
  %4894 = getelementptr inbounds i8, ptr %4890, i64 %4893
  %4895 = load i8, ptr %4894, align 1, !tbaa !16
  %4896 = zext i8 %4895 to i32
  %4897 = sub nsw i32 %4885, %4896
  br label %4899

4898:                                             ; preds = %4833
  br label %4899

4899:                                             ; preds = %4898, %4874
  %4900 = phi i32 [ %4897, %4874 ], [ 255, %4898 ]
  %4901 = trunc i32 %4900 to i8
  %4902 = load ptr, ptr %6, align 8, !tbaa !5
  %4903 = getelementptr inbounds %struct.MImage, ptr %4902, i32 0, i32 3
  %4904 = load i32, ptr %12, align 4, !tbaa !14
  %4905 = sext i32 %4904 to i64
  %4906 = getelementptr inbounds [4 x ptr], ptr %4903, i64 0, i64 %4905
  %4907 = load ptr, ptr %4906, align 8, !tbaa !5
  %4908 = load i32, ptr %15, align 4, !tbaa !14
  %4909 = sext i32 %4908 to i64
  %4910 = getelementptr inbounds ptr, ptr %4907, i64 %4909
  %4911 = load ptr, ptr %4910, align 8, !tbaa !5
  %4912 = load i32, ptr %16, align 4, !tbaa !14
  %4913 = add nsw i32 %4912, 6
  %4914 = sext i32 %4913 to i64
  %4915 = getelementptr inbounds i8, ptr %4911, i64 %4914
  store i8 %4901, ptr %4915, align 1, !tbaa !16
  %4916 = load ptr, ptr %13, align 8, !tbaa !5
  %4917 = load i32, ptr %15, align 4, !tbaa !14
  %4918 = sext i32 %4917 to i64
  %4919 = getelementptr inbounds ptr, ptr %4916, i64 %4918
  %4920 = load ptr, ptr %4919, align 8, !tbaa !5
  %4921 = load i32, ptr %16, align 4, !tbaa !14
  %4922 = add nsw i32 %4921, 7
  %4923 = sext i32 %4922 to i64
  %4924 = getelementptr inbounds i8, ptr %4920, i64 %4923
  %4925 = load i8, ptr %4924, align 1, !tbaa !16
  %4926 = zext i8 %4925 to i32
  %4927 = load ptr, ptr %14, align 8, !tbaa !5
  %4928 = load i32, ptr %15, align 4, !tbaa !14
  %4929 = sext i32 %4928 to i64
  %4930 = getelementptr inbounds ptr, ptr %4927, i64 %4929
  %4931 = load ptr, ptr %4930, align 8, !tbaa !5
  %4932 = load i32, ptr %16, align 4, !tbaa !14
  %4933 = add nsw i32 %4932, 7
  %4934 = sext i32 %4933 to i64
  %4935 = getelementptr inbounds i8, ptr %4931, i64 %4934
  %4936 = load i8, ptr %4935, align 1, !tbaa !16
  %4937 = zext i8 %4936 to i32
  %4938 = sub nsw i32 %4926, %4937
  %4939 = icmp slt i32 %4938, 255
  br i1 %4939, label %4940, label %4964

4940:                                             ; preds = %4899
  %4941 = load ptr, ptr %13, align 8, !tbaa !5
  %4942 = load i32, ptr %15, align 4, !tbaa !14
  %4943 = sext i32 %4942 to i64
  %4944 = getelementptr inbounds ptr, ptr %4941, i64 %4943
  %4945 = load ptr, ptr %4944, align 8, !tbaa !5
  %4946 = load i32, ptr %16, align 4, !tbaa !14
  %4947 = add nsw i32 %4946, 7
  %4948 = sext i32 %4947 to i64
  %4949 = getelementptr inbounds i8, ptr %4945, i64 %4948
  %4950 = load i8, ptr %4949, align 1, !tbaa !16
  %4951 = zext i8 %4950 to i32
  %4952 = load ptr, ptr %14, align 8, !tbaa !5
  %4953 = load i32, ptr %15, align 4, !tbaa !14
  %4954 = sext i32 %4953 to i64
  %4955 = getelementptr inbounds ptr, ptr %4952, i64 %4954
  %4956 = load ptr, ptr %4955, align 8, !tbaa !5
  %4957 = load i32, ptr %16, align 4, !tbaa !14
  %4958 = add nsw i32 %4957, 7
  %4959 = sext i32 %4958 to i64
  %4960 = getelementptr inbounds i8, ptr %4956, i64 %4959
  %4961 = load i8, ptr %4960, align 1, !tbaa !16
  %4962 = zext i8 %4961 to i32
  %4963 = sub nsw i32 %4951, %4962
  br label %4965

4964:                                             ; preds = %4899
  br label %4965

4965:                                             ; preds = %4964, %4940
  %4966 = phi i32 [ %4963, %4940 ], [ 255, %4964 ]
  %4967 = trunc i32 %4966 to i8
  %4968 = load ptr, ptr %6, align 8, !tbaa !5
  %4969 = getelementptr inbounds %struct.MImage, ptr %4968, i32 0, i32 3
  %4970 = load i32, ptr %12, align 4, !tbaa !14
  %4971 = sext i32 %4970 to i64
  %4972 = getelementptr inbounds [4 x ptr], ptr %4969, i64 0, i64 %4971
  %4973 = load ptr, ptr %4972, align 8, !tbaa !5
  %4974 = load i32, ptr %15, align 4, !tbaa !14
  %4975 = sext i32 %4974 to i64
  %4976 = getelementptr inbounds ptr, ptr %4973, i64 %4975
  %4977 = load ptr, ptr %4976, align 8, !tbaa !5
  %4978 = load i32, ptr %16, align 4, !tbaa !14
  %4979 = add nsw i32 %4978, 7
  %4980 = sext i32 %4979 to i64
  %4981 = getelementptr inbounds i8, ptr %4977, i64 %4980
  store i8 %4967, ptr %4981, align 1, !tbaa !16
  %4982 = load ptr, ptr %13, align 8, !tbaa !5
  %4983 = load i32, ptr %15, align 4, !tbaa !14
  %4984 = sext i32 %4983 to i64
  %4985 = getelementptr inbounds ptr, ptr %4982, i64 %4984
  %4986 = load ptr, ptr %4985, align 8, !tbaa !5
  %4987 = load i32, ptr %16, align 4, !tbaa !14
  %4988 = add nsw i32 %4987, 8
  %4989 = sext i32 %4988 to i64
  %4990 = getelementptr inbounds i8, ptr %4986, i64 %4989
  %4991 = load i8, ptr %4990, align 1, !tbaa !16
  %4992 = zext i8 %4991 to i32
  %4993 = load ptr, ptr %14, align 8, !tbaa !5
  %4994 = load i32, ptr %15, align 4, !tbaa !14
  %4995 = sext i32 %4994 to i64
  %4996 = getelementptr inbounds ptr, ptr %4993, i64 %4995
  %4997 = load ptr, ptr %4996, align 8, !tbaa !5
  %4998 = load i32, ptr %16, align 4, !tbaa !14
  %4999 = add nsw i32 %4998, 8
  %5000 = sext i32 %4999 to i64
  %5001 = getelementptr inbounds i8, ptr %4997, i64 %5000
  %5002 = load i8, ptr %5001, align 1, !tbaa !16
  %5003 = zext i8 %5002 to i32
  %5004 = sub nsw i32 %4992, %5003
  %5005 = icmp slt i32 %5004, 255
  br i1 %5005, label %5006, label %5030

5006:                                             ; preds = %4965
  %5007 = load ptr, ptr %13, align 8, !tbaa !5
  %5008 = load i32, ptr %15, align 4, !tbaa !14
  %5009 = sext i32 %5008 to i64
  %5010 = getelementptr inbounds ptr, ptr %5007, i64 %5009
  %5011 = load ptr, ptr %5010, align 8, !tbaa !5
  %5012 = load i32, ptr %16, align 4, !tbaa !14
  %5013 = add nsw i32 %5012, 8
  %5014 = sext i32 %5013 to i64
  %5015 = getelementptr inbounds i8, ptr %5011, i64 %5014
  %5016 = load i8, ptr %5015, align 1, !tbaa !16
  %5017 = zext i8 %5016 to i32
  %5018 = load ptr, ptr %14, align 8, !tbaa !5
  %5019 = load i32, ptr %15, align 4, !tbaa !14
  %5020 = sext i32 %5019 to i64
  %5021 = getelementptr inbounds ptr, ptr %5018, i64 %5020
  %5022 = load ptr, ptr %5021, align 8, !tbaa !5
  %5023 = load i32, ptr %16, align 4, !tbaa !14
  %5024 = add nsw i32 %5023, 8
  %5025 = sext i32 %5024 to i64
  %5026 = getelementptr inbounds i8, ptr %5022, i64 %5025
  %5027 = load i8, ptr %5026, align 1, !tbaa !16
  %5028 = zext i8 %5027 to i32
  %5029 = sub nsw i32 %5017, %5028
  br label %5031

5030:                                             ; preds = %4965
  br label %5031

5031:                                             ; preds = %5030, %5006
  %5032 = phi i32 [ %5029, %5006 ], [ 255, %5030 ]
  %5033 = trunc i32 %5032 to i8
  %5034 = load ptr, ptr %6, align 8, !tbaa !5
  %5035 = getelementptr inbounds %struct.MImage, ptr %5034, i32 0, i32 3
  %5036 = load i32, ptr %12, align 4, !tbaa !14
  %5037 = sext i32 %5036 to i64
  %5038 = getelementptr inbounds [4 x ptr], ptr %5035, i64 0, i64 %5037
  %5039 = load ptr, ptr %5038, align 8, !tbaa !5
  %5040 = load i32, ptr %15, align 4, !tbaa !14
  %5041 = sext i32 %5040 to i64
  %5042 = getelementptr inbounds ptr, ptr %5039, i64 %5041
  %5043 = load ptr, ptr %5042, align 8, !tbaa !5
  %5044 = load i32, ptr %16, align 4, !tbaa !14
  %5045 = add nsw i32 %5044, 8
  %5046 = sext i32 %5045 to i64
  %5047 = getelementptr inbounds i8, ptr %5043, i64 %5046
  store i8 %5033, ptr %5047, align 1, !tbaa !16
  %5048 = load ptr, ptr %13, align 8, !tbaa !5
  %5049 = load i32, ptr %15, align 4, !tbaa !14
  %5050 = sext i32 %5049 to i64
  %5051 = getelementptr inbounds ptr, ptr %5048, i64 %5050
  %5052 = load ptr, ptr %5051, align 8, !tbaa !5
  %5053 = load i32, ptr %16, align 4, !tbaa !14
  %5054 = add nsw i32 %5053, 9
  %5055 = sext i32 %5054 to i64
  %5056 = getelementptr inbounds i8, ptr %5052, i64 %5055
  %5057 = load i8, ptr %5056, align 1, !tbaa !16
  %5058 = zext i8 %5057 to i32
  %5059 = load ptr, ptr %14, align 8, !tbaa !5
  %5060 = load i32, ptr %15, align 4, !tbaa !14
  %5061 = sext i32 %5060 to i64
  %5062 = getelementptr inbounds ptr, ptr %5059, i64 %5061
  %5063 = load ptr, ptr %5062, align 8, !tbaa !5
  %5064 = load i32, ptr %16, align 4, !tbaa !14
  %5065 = add nsw i32 %5064, 9
  %5066 = sext i32 %5065 to i64
  %5067 = getelementptr inbounds i8, ptr %5063, i64 %5066
  %5068 = load i8, ptr %5067, align 1, !tbaa !16
  %5069 = zext i8 %5068 to i32
  %5070 = sub nsw i32 %5058, %5069
  %5071 = icmp slt i32 %5070, 255
  br i1 %5071, label %5072, label %5096

5072:                                             ; preds = %5031
  %5073 = load ptr, ptr %13, align 8, !tbaa !5
  %5074 = load i32, ptr %15, align 4, !tbaa !14
  %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 %16, align 4, !tbaa !14
  %5079 = add nsw i32 %5078, 9
  %5080 = sext i32 %5079 to i64
  %5081 = getelementptr inbounds i8, ptr %5077, i64 %5080
  %5082 = load i8, ptr %5081, align 1, !tbaa !16
  %5083 = zext i8 %5082 to i32
  %5084 = load ptr, ptr %14, align 8, !tbaa !5
  %5085 = load i32, ptr %15, align 4, !tbaa !14
  %5086 = sext i32 %5085 to i64
  %5087 = getelementptr inbounds ptr, ptr %5084, i64 %5086
  %5088 = load ptr, ptr %5087, align 8, !tbaa !5
  %5089 = load i32, ptr %16, align 4, !tbaa !14
  %5090 = add nsw i32 %5089, 9
  %5091 = sext i32 %5090 to i64
  %5092 = getelementptr inbounds i8, ptr %5088, i64 %5091
  %5093 = load i8, ptr %5092, align 1, !tbaa !16
  %5094 = zext i8 %5093 to i32
  %5095 = sub nsw i32 %5083, %5094
  br label %5097

5096:                                             ; preds = %5031
  br label %5097

5097:                                             ; preds = %5096, %5072
  %5098 = phi i32 [ %5095, %5072 ], [ 255, %5096 ]
  %5099 = trunc i32 %5098 to i8
  %5100 = load ptr, ptr %6, align 8, !tbaa !5
  %5101 = getelementptr inbounds %struct.MImage, ptr %5100, i32 0, i32 3
  %5102 = load i32, ptr %12, align 4, !tbaa !14
  %5103 = sext i32 %5102 to i64
  %5104 = getelementptr inbounds [4 x ptr], ptr %5101, i64 0, i64 %5103
  %5105 = load ptr, ptr %5104, align 8, !tbaa !5
  %5106 = load i32, ptr %15, align 4, !tbaa !14
  %5107 = sext i32 %5106 to i64
  %5108 = getelementptr inbounds ptr, ptr %5105, i64 %5107
  %5109 = load ptr, ptr %5108, align 8, !tbaa !5
  %5110 = load i32, ptr %16, align 4, !tbaa !14
  %5111 = add nsw i32 %5110, 9
  %5112 = sext i32 %5111 to i64
  %5113 = getelementptr inbounds i8, ptr %5109, i64 %5112
  store i8 %5099, ptr %5113, align 1, !tbaa !16
  br label %9449

5114:                                             ; preds = %4446
  %5115 = load ptr, ptr %6, align 8, !tbaa !5
  %5116 = getelementptr inbounds %struct.MImage, ptr %5115, i32 0, i32 2
  %5117 = load i32, ptr %5116, align 8, !tbaa !13
  %5118 = load i32, ptr %16, align 4, !tbaa !14
  %5119 = sub nsw i32 %5117, %5118
  %5120 = icmp eq i32 %5119, 11
  br i1 %5120, label %5121, label %5848

5121:                                             ; preds = %5114
  %5122 = load ptr, ptr %13, align 8, !tbaa !5
  %5123 = load i32, ptr %15, align 4, !tbaa !14
  %5124 = sext i32 %5123 to i64
  %5125 = getelementptr inbounds ptr, ptr %5122, i64 %5124
  %5126 = load ptr, ptr %5125, align 8, !tbaa !5
  %5127 = load i32, ptr %16, align 4, !tbaa !14
  %5128 = add nsw i32 %5127, 0
  %5129 = sext i32 %5128 to i64
  %5130 = getelementptr inbounds i8, ptr %5126, i64 %5129
  %5131 = load i8, ptr %5130, align 1, !tbaa !16
  %5132 = zext i8 %5131 to i32
  %5133 = load ptr, ptr %14, align 8, !tbaa !5
  %5134 = load i32, ptr %15, align 4, !tbaa !14
  %5135 = sext i32 %5134 to i64
  %5136 = getelementptr inbounds ptr, ptr %5133, i64 %5135
  %5137 = load ptr, ptr %5136, align 8, !tbaa !5
  %5138 = load i32, ptr %16, align 4, !tbaa !14
  %5139 = add nsw i32 %5138, 0
  %5140 = sext i32 %5139 to i64
  %5141 = getelementptr inbounds i8, ptr %5137, i64 %5140
  %5142 = load i8, ptr %5141, align 1, !tbaa !16
  %5143 = zext i8 %5142 to i32
  %5144 = sub nsw i32 %5132, %5143
  %5145 = icmp slt i32 %5144, 255
  br i1 %5145, label %5146, label %5170

5146:                                             ; preds = %5121
  %5147 = load ptr, ptr %13, align 8, !tbaa !5
  %5148 = load i32, ptr %15, align 4, !tbaa !14
  %5149 = sext i32 %5148 to i64
  %5150 = getelementptr inbounds ptr, ptr %5147, i64 %5149
  %5151 = load ptr, ptr %5150, align 8, !tbaa !5
  %5152 = load i32, ptr %16, align 4, !tbaa !14
  %5153 = add nsw i32 %5152, 0
  %5154 = sext i32 %5153 to i64
  %5155 = getelementptr inbounds i8, ptr %5151, i64 %5154
  %5156 = load i8, ptr %5155, align 1, !tbaa !16
  %5157 = zext i8 %5156 to i32
  %5158 = load ptr, ptr %14, align 8, !tbaa !5
  %5159 = load i32, ptr %15, align 4, !tbaa !14
  %5160 = sext i32 %5159 to i64
  %5161 = getelementptr inbounds ptr, ptr %5158, i64 %5160
  %5162 = load ptr, ptr %5161, align 8, !tbaa !5
  %5163 = load i32, ptr %16, align 4, !tbaa !14
  %5164 = add nsw i32 %5163, 0
  %5165 = sext i32 %5164 to i64
  %5166 = getelementptr inbounds i8, ptr %5162, i64 %5165
  %5167 = load i8, ptr %5166, align 1, !tbaa !16
  %5168 = zext i8 %5167 to i32
  %5169 = sub nsw i32 %5157, %5168
  br label %5171

5170:                                             ; preds = %5121
  br label %5171

5171:                                             ; preds = %5170, %5146
  %5172 = phi i32 [ %5169, %5146 ], [ 255, %5170 ]
  %5173 = trunc i32 %5172 to i8
  %5174 = load ptr, ptr %6, align 8, !tbaa !5
  %5175 = getelementptr inbounds %struct.MImage, ptr %5174, i32 0, i32 3
  %5176 = load i32, ptr %12, align 4, !tbaa !14
  %5177 = sext i32 %5176 to i64
  %5178 = getelementptr inbounds [4 x ptr], ptr %5175, i64 0, i64 %5177
  %5179 = load ptr, ptr %5178, align 8, !tbaa !5
  %5180 = load i32, ptr %15, align 4, !tbaa !14
  %5181 = sext i32 %5180 to i64
  %5182 = getelementptr inbounds ptr, ptr %5179, i64 %5181
  %5183 = load ptr, ptr %5182, align 8, !tbaa !5
  %5184 = load i32, ptr %16, align 4, !tbaa !14
  %5185 = add nsw i32 %5184, 0
  %5186 = sext i32 %5185 to i64
  %5187 = getelementptr inbounds i8, ptr %5183, i64 %5186
  store i8 %5173, ptr %5187, align 1, !tbaa !16
  %5188 = load ptr, ptr %13, align 8, !tbaa !5
  %5189 = load i32, ptr %15, align 4, !tbaa !14
  %5190 = sext i32 %5189 to i64
  %5191 = getelementptr inbounds ptr, ptr %5188, i64 %5190
  %5192 = load ptr, ptr %5191, align 8, !tbaa !5
  %5193 = load i32, ptr %16, align 4, !tbaa !14
  %5194 = add nsw i32 %5193, 1
  %5195 = sext i32 %5194 to i64
  %5196 = getelementptr inbounds i8, ptr %5192, i64 %5195
  %5197 = load i8, ptr %5196, align 1, !tbaa !16
  %5198 = zext i8 %5197 to i32
  %5199 = load ptr, ptr %14, align 8, !tbaa !5
  %5200 = load i32, ptr %15, align 4, !tbaa !14
  %5201 = sext i32 %5200 to i64
  %5202 = getelementptr inbounds ptr, ptr %5199, i64 %5201
  %5203 = load ptr, ptr %5202, align 8, !tbaa !5
  %5204 = load i32, ptr %16, align 4, !tbaa !14
  %5205 = add nsw i32 %5204, 1
  %5206 = sext i32 %5205 to i64
  %5207 = getelementptr inbounds i8, ptr %5203, i64 %5206
  %5208 = load i8, ptr %5207, align 1, !tbaa !16
  %5209 = zext i8 %5208 to i32
  %5210 = sub nsw i32 %5198, %5209
  %5211 = icmp slt i32 %5210, 255
  br i1 %5211, label %5212, label %5236

5212:                                             ; preds = %5171
  %5213 = load ptr, ptr %13, align 8, !tbaa !5
  %5214 = load i32, ptr %15, align 4, !tbaa !14
  %5215 = sext i32 %5214 to i64
  %5216 = getelementptr inbounds ptr, ptr %5213, i64 %5215
  %5217 = load ptr, ptr %5216, align 8, !tbaa !5
  %5218 = load i32, ptr %16, align 4, !tbaa !14
  %5219 = add nsw i32 %5218, 1
  %5220 = sext i32 %5219 to i64
  %5221 = getelementptr inbounds i8, ptr %5217, i64 %5220
  %5222 = load i8, ptr %5221, align 1, !tbaa !16
  %5223 = zext i8 %5222 to i32
  %5224 = load ptr, ptr %14, align 8, !tbaa !5
  %5225 = load i32, ptr %15, align 4, !tbaa !14
  %5226 = sext i32 %5225 to i64
  %5227 = getelementptr inbounds ptr, ptr %5224, i64 %5226
  %5228 = load ptr, ptr %5227, align 8, !tbaa !5
  %5229 = load i32, ptr %16, align 4, !tbaa !14
  %5230 = add nsw i32 %5229, 1
  %5231 = sext i32 %5230 to i64
  %5232 = getelementptr inbounds i8, ptr %5228, i64 %5231
  %5233 = load i8, ptr %5232, align 1, !tbaa !16
  %5234 = zext i8 %5233 to i32
  %5235 = sub nsw i32 %5223, %5234
  br label %5237

5236:                                             ; preds = %5171
  br label %5237

5237:                                             ; preds = %5236, %5212
  %5238 = phi i32 [ %5235, %5212 ], [ 255, %5236 ]
  %5239 = trunc i32 %5238 to i8
  %5240 = load ptr, ptr %6, align 8, !tbaa !5
  %5241 = getelementptr inbounds %struct.MImage, ptr %5240, i32 0, i32 3
  %5242 = load i32, ptr %12, align 4, !tbaa !14
  %5243 = sext i32 %5242 to i64
  %5244 = getelementptr inbounds [4 x ptr], ptr %5241, i64 0, i64 %5243
  %5245 = load ptr, ptr %5244, align 8, !tbaa !5
  %5246 = load i32, ptr %15, align 4, !tbaa !14
  %5247 = sext i32 %5246 to i64
  %5248 = getelementptr inbounds ptr, ptr %5245, i64 %5247
  %5249 = load ptr, ptr %5248, align 8, !tbaa !5
  %5250 = load i32, ptr %16, align 4, !tbaa !14
  %5251 = add nsw i32 %5250, 1
  %5252 = sext i32 %5251 to i64
  %5253 = getelementptr inbounds i8, ptr %5249, i64 %5252
  store i8 %5239, ptr %5253, align 1, !tbaa !16
  %5254 = load ptr, ptr %13, align 8, !tbaa !5
  %5255 = load i32, ptr %15, align 4, !tbaa !14
  %5256 = sext i32 %5255 to i64
  %5257 = getelementptr inbounds ptr, ptr %5254, i64 %5256
  %5258 = load ptr, ptr %5257, align 8, !tbaa !5
  %5259 = load i32, ptr %16, align 4, !tbaa !14
  %5260 = add nsw i32 %5259, 2
  %5261 = sext i32 %5260 to i64
  %5262 = getelementptr inbounds i8, ptr %5258, i64 %5261
  %5263 = load i8, ptr %5262, align 1, !tbaa !16
  %5264 = zext i8 %5263 to i32
  %5265 = load ptr, ptr %14, align 8, !tbaa !5
  %5266 = load i32, ptr %15, align 4, !tbaa !14
  %5267 = sext i32 %5266 to i64
  %5268 = getelementptr inbounds ptr, ptr %5265, i64 %5267
  %5269 = load ptr, ptr %5268, align 8, !tbaa !5
  %5270 = load i32, ptr %16, align 4, !tbaa !14
  %5271 = add nsw i32 %5270, 2
  %5272 = sext i32 %5271 to i64
  %5273 = getelementptr inbounds i8, ptr %5269, i64 %5272
  %5274 = load i8, ptr %5273, align 1, !tbaa !16
  %5275 = zext i8 %5274 to i32
  %5276 = sub nsw i32 %5264, %5275
  %5277 = icmp slt i32 %5276, 255
  br i1 %5277, label %5278, label %5302

5278:                                             ; preds = %5237
  %5279 = load ptr, ptr %13, align 8, !tbaa !5
  %5280 = load i32, ptr %15, align 4, !tbaa !14
  %5281 = sext i32 %5280 to i64
  %5282 = getelementptr inbounds ptr, ptr %5279, i64 %5281
  %5283 = load ptr, ptr %5282, align 8, !tbaa !5
  %5284 = load i32, ptr %16, align 4, !tbaa !14
  %5285 = add nsw i32 %5284, 2
  %5286 = sext i32 %5285 to i64
  %5287 = getelementptr inbounds i8, ptr %5283, i64 %5286
  %5288 = load i8, ptr %5287, align 1, !tbaa !16
  %5289 = zext i8 %5288 to i32
  %5290 = load ptr, ptr %14, align 8, !tbaa !5
  %5291 = load i32, ptr %15, align 4, !tbaa !14
  %5292 = sext i32 %5291 to i64
  %5293 = getelementptr inbounds ptr, ptr %5290, i64 %5292
  %5294 = load ptr, ptr %5293, align 8, !tbaa !5
  %5295 = load i32, ptr %16, align 4, !tbaa !14
  %5296 = add nsw i32 %5295, 2
  %5297 = sext i32 %5296 to i64
  %5298 = getelementptr inbounds i8, ptr %5294, i64 %5297
  %5299 = load i8, ptr %5298, align 1, !tbaa !16
  %5300 = zext i8 %5299 to i32
  %5301 = sub nsw i32 %5289, %5300
  br label %5303

5302:                                             ; preds = %5237
  br label %5303

5303:                                             ; preds = %5302, %5278
  %5304 = phi i32 [ %5301, %5278 ], [ 255, %5302 ]
  %5305 = trunc i32 %5304 to i8
  %5306 = load ptr, ptr %6, align 8, !tbaa !5
  %5307 = getelementptr inbounds %struct.MImage, ptr %5306, i32 0, i32 3
  %5308 = load i32, ptr %12, align 4, !tbaa !14
  %5309 = sext i32 %5308 to i64
  %5310 = getelementptr inbounds [4 x ptr], ptr %5307, i64 0, i64 %5309
  %5311 = load ptr, ptr %5310, align 8, !tbaa !5
  %5312 = load i32, ptr %15, align 4, !tbaa !14
  %5313 = sext i32 %5312 to i64
  %5314 = getelementptr inbounds ptr, ptr %5311, i64 %5313
  %5315 = load ptr, ptr %5314, align 8, !tbaa !5
  %5316 = load i32, ptr %16, align 4, !tbaa !14
  %5317 = add nsw i32 %5316, 2
  %5318 = sext i32 %5317 to i64
  %5319 = getelementptr inbounds i8, ptr %5315, i64 %5318
  store i8 %5305, ptr %5319, align 1, !tbaa !16
  %5320 = load ptr, ptr %13, align 8, !tbaa !5
  %5321 = load i32, ptr %15, align 4, !tbaa !14
  %5322 = sext i32 %5321 to i64
  %5323 = getelementptr inbounds ptr, ptr %5320, i64 %5322
  %5324 = load ptr, ptr %5323, align 8, !tbaa !5
  %5325 = load i32, ptr %16, align 4, !tbaa !14
  %5326 = add nsw i32 %5325, 3
  %5327 = sext i32 %5326 to i64
  %5328 = getelementptr inbounds i8, ptr %5324, i64 %5327
  %5329 = load i8, ptr %5328, align 1, !tbaa !16
  %5330 = zext i8 %5329 to i32
  %5331 = load ptr, ptr %14, align 8, !tbaa !5
  %5332 = load i32, ptr %15, align 4, !tbaa !14
  %5333 = sext i32 %5332 to i64
  %5334 = getelementptr inbounds ptr, ptr %5331, i64 %5333
  %5335 = load ptr, ptr %5334, align 8, !tbaa !5
  %5336 = load i32, ptr %16, align 4, !tbaa !14
  %5337 = add nsw i32 %5336, 3
  %5338 = sext i32 %5337 to i64
  %5339 = getelementptr inbounds i8, ptr %5335, i64 %5338
  %5340 = load i8, ptr %5339, align 1, !tbaa !16
  %5341 = zext i8 %5340 to i32
  %5342 = sub nsw i32 %5330, %5341
  %5343 = icmp slt i32 %5342, 255
  br i1 %5343, label %5344, label %5368

5344:                                             ; preds = %5303
  %5345 = load ptr, ptr %13, align 8, !tbaa !5
  %5346 = load i32, ptr %15, align 4, !tbaa !14
  %5347 = sext i32 %5346 to i64
  %5348 = getelementptr inbounds ptr, ptr %5345, i64 %5347
  %5349 = load ptr, ptr %5348, align 8, !tbaa !5
  %5350 = load i32, ptr %16, align 4, !tbaa !14
  %5351 = add nsw i32 %5350, 3
  %5352 = sext i32 %5351 to i64
  %5353 = getelementptr inbounds i8, ptr %5349, i64 %5352
  %5354 = load i8, ptr %5353, align 1, !tbaa !16
  %5355 = zext i8 %5354 to i32
  %5356 = load ptr, ptr %14, align 8, !tbaa !5
  %5357 = load i32, ptr %15, align 4, !tbaa !14
  %5358 = sext i32 %5357 to i64
  %5359 = getelementptr inbounds ptr, ptr %5356, i64 %5358
  %5360 = load ptr, ptr %5359, align 8, !tbaa !5
  %5361 = load i32, ptr %16, align 4, !tbaa !14
  %5362 = add nsw i32 %5361, 3
  %5363 = sext i32 %5362 to i64
  %5364 = getelementptr inbounds i8, ptr %5360, i64 %5363
  %5365 = load i8, ptr %5364, align 1, !tbaa !16
  %5366 = zext i8 %5365 to i32
  %5367 = sub nsw i32 %5355, %5366
  br label %5369

5368:                                             ; preds = %5303
  br label %5369

5369:                                             ; preds = %5368, %5344
  %5370 = phi i32 [ %5367, %5344 ], [ 255, %5368 ]
  %5371 = trunc i32 %5370 to i8
  %5372 = load ptr, ptr %6, align 8, !tbaa !5
  %5373 = getelementptr inbounds %struct.MImage, ptr %5372, i32 0, i32 3
  %5374 = load i32, ptr %12, align 4, !tbaa !14
  %5375 = sext i32 %5374 to i64
  %5376 = getelementptr inbounds [4 x ptr], ptr %5373, i64 0, i64 %5375
  %5377 = load ptr, ptr %5376, align 8, !tbaa !5
  %5378 = load i32, ptr %15, align 4, !tbaa !14
  %5379 = sext i32 %5378 to i64
  %5380 = getelementptr inbounds ptr, ptr %5377, i64 %5379
  %5381 = load ptr, ptr %5380, align 8, !tbaa !5
  %5382 = load i32, ptr %16, align 4, !tbaa !14
  %5383 = add nsw i32 %5382, 3
  %5384 = sext i32 %5383 to i64
  %5385 = getelementptr inbounds i8, ptr %5381, i64 %5384
  store i8 %5371, ptr %5385, align 1, !tbaa !16
  %5386 = load ptr, ptr %13, align 8, !tbaa !5
  %5387 = load i32, ptr %15, align 4, !tbaa !14
  %5388 = sext i32 %5387 to i64
  %5389 = getelementptr inbounds ptr, ptr %5386, i64 %5388
  %5390 = load ptr, ptr %5389, align 8, !tbaa !5
  %5391 = load i32, ptr %16, align 4, !tbaa !14
  %5392 = add nsw i32 %5391, 4
  %5393 = sext i32 %5392 to i64
  %5394 = getelementptr inbounds i8, ptr %5390, i64 %5393
  %5395 = load i8, ptr %5394, align 1, !tbaa !16
  %5396 = zext i8 %5395 to i32
  %5397 = load ptr, ptr %14, align 8, !tbaa !5
  %5398 = load i32, ptr %15, align 4, !tbaa !14
  %5399 = sext i32 %5398 to i64
  %5400 = getelementptr inbounds ptr, ptr %5397, i64 %5399
  %5401 = load ptr, ptr %5400, align 8, !tbaa !5
  %5402 = load i32, ptr %16, align 4, !tbaa !14
  %5403 = add nsw i32 %5402, 4
  %5404 = sext i32 %5403 to i64
  %5405 = getelementptr inbounds i8, ptr %5401, i64 %5404
  %5406 = load i8, ptr %5405, align 1, !tbaa !16
  %5407 = zext i8 %5406 to i32
  %5408 = sub nsw i32 %5396, %5407
  %5409 = icmp slt i32 %5408, 255
  br i1 %5409, label %5410, label %5434

5410:                                             ; preds = %5369
  %5411 = load ptr, ptr %13, align 8, !tbaa !5
  %5412 = load i32, ptr %15, align 4, !tbaa !14
  %5413 = sext i32 %5412 to i64
  %5414 = getelementptr inbounds ptr, ptr %5411, i64 %5413
  %5415 = load ptr, ptr %5414, align 8, !tbaa !5
  %5416 = load i32, ptr %16, align 4, !tbaa !14
  %5417 = add nsw i32 %5416, 4
  %5418 = sext i32 %5417 to i64
  %5419 = getelementptr inbounds i8, ptr %5415, i64 %5418
  %5420 = load i8, ptr %5419, align 1, !tbaa !16
  %5421 = zext i8 %5420 to i32
  %5422 = load ptr, ptr %14, align 8, !tbaa !5
  %5423 = load i32, ptr %15, align 4, !tbaa !14
  %5424 = sext i32 %5423 to i64
  %5425 = getelementptr inbounds ptr, ptr %5422, i64 %5424
  %5426 = load ptr, ptr %5425, align 8, !tbaa !5
  %5427 = load i32, ptr %16, align 4, !tbaa !14
  %5428 = add nsw i32 %5427, 4
  %5429 = sext i32 %5428 to i64
  %5430 = getelementptr inbounds i8, ptr %5426, i64 %5429
  %5431 = load i8, ptr %5430, align 1, !tbaa !16
  %5432 = zext i8 %5431 to i32
  %5433 = sub nsw i32 %5421, %5432
  br label %5435

5434:                                             ; preds = %5369
  br label %5435

5435:                                             ; preds = %5434, %5410
  %5436 = phi i32 [ %5433, %5410 ], [ 255, %5434 ]
  %5437 = trunc i32 %5436 to i8
  %5438 = load ptr, ptr %6, align 8, !tbaa !5
  %5439 = getelementptr inbounds %struct.MImage, ptr %5438, i32 0, i32 3
  %5440 = load i32, ptr %12, align 4, !tbaa !14
  %5441 = sext i32 %5440 to i64
  %5442 = getelementptr inbounds [4 x ptr], ptr %5439, i64 0, i64 %5441
  %5443 = load ptr, ptr %5442, align 8, !tbaa !5
  %5444 = load i32, ptr %15, align 4, !tbaa !14
  %5445 = sext i32 %5444 to i64
  %5446 = getelementptr inbounds ptr, ptr %5443, i64 %5445
  %5447 = load ptr, ptr %5446, align 8, !tbaa !5
  %5448 = load i32, ptr %16, align 4, !tbaa !14
  %5449 = add nsw i32 %5448, 4
  %5450 = sext i32 %5449 to i64
  %5451 = getelementptr inbounds i8, ptr %5447, i64 %5450
  store i8 %5437, ptr %5451, align 1, !tbaa !16
  %5452 = load ptr, ptr %13, align 8, !tbaa !5
  %5453 = load i32, ptr %15, align 4, !tbaa !14
  %5454 = sext i32 %5453 to i64
  %5455 = getelementptr inbounds ptr, ptr %5452, i64 %5454
  %5456 = load ptr, ptr %5455, align 8, !tbaa !5
  %5457 = load i32, ptr %16, align 4, !tbaa !14
  %5458 = add nsw i32 %5457, 5
  %5459 = sext i32 %5458 to i64
  %5460 = getelementptr inbounds i8, ptr %5456, i64 %5459
  %5461 = load i8, ptr %5460, align 1, !tbaa !16
  %5462 = zext i8 %5461 to i32
  %5463 = load ptr, ptr %14, align 8, !tbaa !5
  %5464 = load i32, ptr %15, align 4, !tbaa !14
  %5465 = sext i32 %5464 to i64
  %5466 = getelementptr inbounds ptr, ptr %5463, i64 %5465
  %5467 = load ptr, ptr %5466, align 8, !tbaa !5
  %5468 = load i32, ptr %16, align 4, !tbaa !14
  %5469 = add nsw i32 %5468, 5
  %5470 = sext i32 %5469 to i64
  %5471 = getelementptr inbounds i8, ptr %5467, i64 %5470
  %5472 = load i8, ptr %5471, align 1, !tbaa !16
  %5473 = zext i8 %5472 to i32
  %5474 = sub nsw i32 %5462, %5473
  %5475 = icmp slt i32 %5474, 255
  br i1 %5475, label %5476, label %5500

5476:                                             ; preds = %5435
  %5477 = load ptr, ptr %13, align 8, !tbaa !5
  %5478 = load i32, ptr %15, align 4, !tbaa !14
  %5479 = sext i32 %5478 to i64
  %5480 = getelementptr inbounds ptr, ptr %5477, i64 %5479
  %5481 = load ptr, ptr %5480, align 8, !tbaa !5
  %5482 = load i32, ptr %16, align 4, !tbaa !14
  %5483 = add nsw i32 %5482, 5
  %5484 = sext i32 %5483 to i64
  %5485 = getelementptr inbounds i8, ptr %5481, i64 %5484
  %5486 = load i8, ptr %5485, align 1, !tbaa !16
  %5487 = zext i8 %5486 to i32
  %5488 = load ptr, ptr %14, align 8, !tbaa !5
  %5489 = load i32, ptr %15, align 4, !tbaa !14
  %5490 = sext i32 %5489 to i64
  %5491 = getelementptr inbounds ptr, ptr %5488, i64 %5490
  %5492 = load ptr, ptr %5491, align 8, !tbaa !5
  %5493 = load i32, ptr %16, align 4, !tbaa !14
  %5494 = add nsw i32 %5493, 5
  %5495 = sext i32 %5494 to i64
  %5496 = getelementptr inbounds i8, ptr %5492, i64 %5495
  %5497 = load i8, ptr %5496, align 1, !tbaa !16
  %5498 = zext i8 %5497 to i32
  %5499 = sub nsw i32 %5487, %5498
  br label %5501

5500:                                             ; preds = %5435
  br label %5501

5501:                                             ; preds = %5500, %5476
  %5502 = phi i32 [ %5499, %5476 ], [ 255, %5500 ]
  %5503 = trunc i32 %5502 to i8
  %5504 = load ptr, ptr %6, align 8, !tbaa !5
  %5505 = getelementptr inbounds %struct.MImage, ptr %5504, i32 0, i32 3
  %5506 = load i32, ptr %12, align 4, !tbaa !14
  %5507 = sext i32 %5506 to i64
  %5508 = getelementptr inbounds [4 x ptr], ptr %5505, i64 0, i64 %5507
  %5509 = load ptr, ptr %5508, align 8, !tbaa !5
  %5510 = load i32, ptr %15, align 4, !tbaa !14
  %5511 = sext i32 %5510 to i64
  %5512 = getelementptr inbounds ptr, ptr %5509, i64 %5511
  %5513 = load ptr, ptr %5512, align 8, !tbaa !5
  %5514 = load i32, ptr %16, align 4, !tbaa !14
  %5515 = add nsw i32 %5514, 5
  %5516 = sext i32 %5515 to i64
  %5517 = getelementptr inbounds i8, ptr %5513, i64 %5516
  store i8 %5503, ptr %5517, align 1, !tbaa !16
  %5518 = load ptr, ptr %13, align 8, !tbaa !5
  %5519 = load i32, ptr %15, align 4, !tbaa !14
  %5520 = sext i32 %5519 to i64
  %5521 = getelementptr inbounds ptr, ptr %5518, i64 %5520
  %5522 = load ptr, ptr %5521, align 8, !tbaa !5
  %5523 = load i32, ptr %16, align 4, !tbaa !14
  %5524 = add nsw i32 %5523, 6
  %5525 = sext i32 %5524 to i64
  %5526 = getelementptr inbounds i8, ptr %5522, i64 %5525
  %5527 = load i8, ptr %5526, align 1, !tbaa !16
  %5528 = zext i8 %5527 to i32
  %5529 = load ptr, ptr %14, align 8, !tbaa !5
  %5530 = load i32, ptr %15, align 4, !tbaa !14
  %5531 = sext i32 %5530 to i64
  %5532 = getelementptr inbounds ptr, ptr %5529, i64 %5531
  %5533 = load ptr, ptr %5532, align 8, !tbaa !5
  %5534 = load i32, ptr %16, align 4, !tbaa !14
  %5535 = add nsw i32 %5534, 6
  %5536 = sext i32 %5535 to i64
  %5537 = getelementptr inbounds i8, ptr %5533, i64 %5536
  %5538 = load i8, ptr %5537, align 1, !tbaa !16
  %5539 = zext i8 %5538 to i32
  %5540 = sub nsw i32 %5528, %5539
  %5541 = icmp slt i32 %5540, 255
  br i1 %5541, label %5542, label %5566

5542:                                             ; preds = %5501
  %5543 = load ptr, ptr %13, align 8, !tbaa !5
  %5544 = load i32, ptr %15, align 4, !tbaa !14
  %5545 = sext i32 %5544 to i64
  %5546 = getelementptr inbounds ptr, ptr %5543, i64 %5545
  %5547 = load ptr, ptr %5546, align 8, !tbaa !5
  %5548 = load i32, ptr %16, align 4, !tbaa !14
  %5549 = add nsw i32 %5548, 6
  %5550 = sext i32 %5549 to i64
  %5551 = getelementptr inbounds i8, ptr %5547, i64 %5550
  %5552 = load i8, ptr %5551, align 1, !tbaa !16
  %5553 = zext i8 %5552 to i32
  %5554 = load ptr, ptr %14, align 8, !tbaa !5
  %5555 = load i32, ptr %15, align 4, !tbaa !14
  %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 %16, align 4, !tbaa !14
  %5560 = add nsw i32 %5559, 6
  %5561 = sext i32 %5560 to i64
  %5562 = getelementptr inbounds i8, ptr %5558, i64 %5561
  %5563 = load i8, ptr %5562, align 1, !tbaa !16
  %5564 = zext i8 %5563 to i32
  %5565 = sub nsw i32 %5553, %5564
  br label %5567

5566:                                             ; preds = %5501
  br label %5567

5567:                                             ; preds = %5566, %5542
  %5568 = phi i32 [ %5565, %5542 ], [ 255, %5566 ]
  %5569 = trunc i32 %5568 to i8
  %5570 = load ptr, ptr %6, align 8, !tbaa !5
  %5571 = getelementptr inbounds %struct.MImage, ptr %5570, i32 0, i32 3
  %5572 = load i32, ptr %12, align 4, !tbaa !14
  %5573 = sext i32 %5572 to i64
  %5574 = getelementptr inbounds [4 x ptr], ptr %5571, i64 0, i64 %5573
  %5575 = load ptr, ptr %5574, align 8, !tbaa !5
  %5576 = load i32, ptr %15, align 4, !tbaa !14
  %5577 = sext i32 %5576 to i64
  %5578 = getelementptr inbounds ptr, ptr %5575, i64 %5577
  %5579 = load ptr, ptr %5578, align 8, !tbaa !5
  %5580 = load i32, ptr %16, align 4, !tbaa !14
  %5581 = add nsw i32 %5580, 6
  %5582 = sext i32 %5581 to i64
  %5583 = getelementptr inbounds i8, ptr %5579, i64 %5582
  store i8 %5569, ptr %5583, align 1, !tbaa !16
  %5584 = load ptr, ptr %13, align 8, !tbaa !5
  %5585 = load i32, ptr %15, align 4, !tbaa !14
  %5586 = sext i32 %5585 to i64
  %5587 = getelementptr inbounds ptr, ptr %5584, i64 %5586
  %5588 = load ptr, ptr %5587, align 8, !tbaa !5
  %5589 = load i32, ptr %16, align 4, !tbaa !14
  %5590 = add nsw i32 %5589, 7
  %5591 = sext i32 %5590 to i64
  %5592 = getelementptr inbounds i8, ptr %5588, i64 %5591
  %5593 = load i8, ptr %5592, align 1, !tbaa !16
  %5594 = zext i8 %5593 to i32
  %5595 = load ptr, ptr %14, align 8, !tbaa !5
  %5596 = load i32, ptr %15, align 4, !tbaa !14
  %5597 = sext i32 %5596 to i64
  %5598 = getelementptr inbounds ptr, ptr %5595, i64 %5597
  %5599 = load ptr, ptr %5598, align 8, !tbaa !5
  %5600 = load i32, ptr %16, align 4, !tbaa !14
  %5601 = add nsw i32 %5600, 7
  %5602 = sext i32 %5601 to i64
  %5603 = getelementptr inbounds i8, ptr %5599, i64 %5602
  %5604 = load i8, ptr %5603, align 1, !tbaa !16
  %5605 = zext i8 %5604 to i32
  %5606 = sub nsw i32 %5594, %5605
  %5607 = icmp slt i32 %5606, 255
  br i1 %5607, label %5608, label %5632

5608:                                             ; preds = %5567
  %5609 = load ptr, ptr %13, align 8, !tbaa !5
  %5610 = load i32, ptr %15, align 4, !tbaa !14
  %5611 = sext i32 %5610 to i64
  %5612 = getelementptr inbounds ptr, ptr %5609, i64 %5611
  %5613 = load ptr, ptr %5612, align 8, !tbaa !5
  %5614 = load i32, ptr %16, align 4, !tbaa !14
  %5615 = add nsw i32 %5614, 7
  %5616 = sext i32 %5615 to i64
  %5617 = getelementptr inbounds i8, ptr %5613, i64 %5616
  %5618 = load i8, ptr %5617, align 1, !tbaa !16
  %5619 = zext i8 %5618 to i32
  %5620 = load ptr, ptr %14, align 8, !tbaa !5
  %5621 = load i32, ptr %15, align 4, !tbaa !14
  %5622 = sext i32 %5621 to i64
  %5623 = getelementptr inbounds ptr, ptr %5620, i64 %5622
  %5624 = load ptr, ptr %5623, align 8, !tbaa !5
  %5625 = load i32, ptr %16, align 4, !tbaa !14
  %5626 = add nsw i32 %5625, 7
  %5627 = sext i32 %5626 to i64
  %5628 = getelementptr inbounds i8, ptr %5624, i64 %5627
  %5629 = load i8, ptr %5628, align 1, !tbaa !16
  %5630 = zext i8 %5629 to i32
  %5631 = sub nsw i32 %5619, %5630
  br label %5633

5632:                                             ; preds = %5567
  br label %5633

5633:                                             ; preds = %5632, %5608
  %5634 = phi i32 [ %5631, %5608 ], [ 255, %5632 ]
  %5635 = trunc i32 %5634 to i8
  %5636 = load ptr, ptr %6, align 8, !tbaa !5
  %5637 = getelementptr inbounds %struct.MImage, ptr %5636, i32 0, i32 3
  %5638 = load i32, ptr %12, align 4, !tbaa !14
  %5639 = sext i32 %5638 to i64
  %5640 = getelementptr inbounds [4 x ptr], ptr %5637, i64 0, i64 %5639
  %5641 = load ptr, ptr %5640, align 8, !tbaa !5
  %5642 = load i32, ptr %15, align 4, !tbaa !14
  %5643 = sext i32 %5642 to i64
  %5644 = getelementptr inbounds ptr, ptr %5641, i64 %5643
  %5645 = load ptr, ptr %5644, align 8, !tbaa !5
  %5646 = load i32, ptr %16, align 4, !tbaa !14
  %5647 = add nsw i32 %5646, 7
  %5648 = sext i32 %5647 to i64
  %5649 = getelementptr inbounds i8, ptr %5645, i64 %5648
  store i8 %5635, ptr %5649, align 1, !tbaa !16
  %5650 = load ptr, ptr %13, align 8, !tbaa !5
  %5651 = load i32, ptr %15, align 4, !tbaa !14
  %5652 = sext i32 %5651 to i64
  %5653 = getelementptr inbounds ptr, ptr %5650, i64 %5652
  %5654 = load ptr, ptr %5653, align 8, !tbaa !5
  %5655 = load i32, ptr %16, align 4, !tbaa !14
  %5656 = add nsw i32 %5655, 8
  %5657 = sext i32 %5656 to i64
  %5658 = getelementptr inbounds i8, ptr %5654, i64 %5657
  %5659 = load i8, ptr %5658, align 1, !tbaa !16
  %5660 = zext i8 %5659 to i32
  %5661 = load ptr, ptr %14, align 8, !tbaa !5
  %5662 = load i32, ptr %15, align 4, !tbaa !14
  %5663 = sext i32 %5662 to i64
  %5664 = getelementptr inbounds ptr, ptr %5661, i64 %5663
  %5665 = load ptr, ptr %5664, align 8, !tbaa !5
  %5666 = load i32, ptr %16, align 4, !tbaa !14
  %5667 = add nsw i32 %5666, 8
  %5668 = sext i32 %5667 to i64
  %5669 = getelementptr inbounds i8, ptr %5665, i64 %5668
  %5670 = load i8, ptr %5669, align 1, !tbaa !16
  %5671 = zext i8 %5670 to i32
  %5672 = sub nsw i32 %5660, %5671
  %5673 = icmp slt i32 %5672, 255
  br i1 %5673, label %5674, label %5698

5674:                                             ; preds = %5633
  %5675 = load ptr, ptr %13, align 8, !tbaa !5
  %5676 = load i32, ptr %15, align 4, !tbaa !14
  %5677 = sext i32 %5676 to i64
  %5678 = getelementptr inbounds ptr, ptr %5675, i64 %5677
  %5679 = load ptr, ptr %5678, align 8, !tbaa !5
  %5680 = load i32, ptr %16, align 4, !tbaa !14
  %5681 = add nsw i32 %5680, 8
  %5682 = sext i32 %5681 to i64
  %5683 = getelementptr inbounds i8, ptr %5679, i64 %5682
  %5684 = load i8, ptr %5683, align 1, !tbaa !16
  %5685 = zext i8 %5684 to i32
  %5686 = load ptr, ptr %14, align 8, !tbaa !5
  %5687 = load i32, ptr %15, align 4, !tbaa !14
  %5688 = sext i32 %5687 to i64
  %5689 = getelementptr inbounds ptr, ptr %5686, i64 %5688
  %5690 = load ptr, ptr %5689, align 8, !tbaa !5
  %5691 = load i32, ptr %16, align 4, !tbaa !14
  %5692 = add nsw i32 %5691, 8
  %5693 = sext i32 %5692 to i64
  %5694 = getelementptr inbounds i8, ptr %5690, i64 %5693
  %5695 = load i8, ptr %5694, align 1, !tbaa !16
  %5696 = zext i8 %5695 to i32
  %5697 = sub nsw i32 %5685, %5696
  br label %5699

5698:                                             ; preds = %5633
  br label %5699

5699:                                             ; preds = %5698, %5674
  %5700 = phi i32 [ %5697, %5674 ], [ 255, %5698 ]
  %5701 = trunc i32 %5700 to i8
  %5702 = load ptr, ptr %6, align 8, !tbaa !5
  %5703 = getelementptr inbounds %struct.MImage, ptr %5702, i32 0, i32 3
  %5704 = load i32, ptr %12, align 4, !tbaa !14
  %5705 = sext i32 %5704 to i64
  %5706 = getelementptr inbounds [4 x ptr], ptr %5703, i64 0, i64 %5705
  %5707 = load ptr, ptr %5706, align 8, !tbaa !5
  %5708 = load i32, ptr %15, align 4, !tbaa !14
  %5709 = sext i32 %5708 to i64
  %5710 = getelementptr inbounds ptr, ptr %5707, i64 %5709
  %5711 = load ptr, ptr %5710, align 8, !tbaa !5
  %5712 = load i32, ptr %16, align 4, !tbaa !14
  %5713 = add nsw i32 %5712, 8
  %5714 = sext i32 %5713 to i64
  %5715 = getelementptr inbounds i8, ptr %5711, i64 %5714
  store i8 %5701, ptr %5715, align 1, !tbaa !16
  %5716 = load ptr, ptr %13, align 8, !tbaa !5
  %5717 = load i32, ptr %15, align 4, !tbaa !14
  %5718 = sext i32 %5717 to i64
  %5719 = getelementptr inbounds ptr, ptr %5716, i64 %5718
  %5720 = load ptr, ptr %5719, align 8, !tbaa !5
  %5721 = load i32, ptr %16, align 4, !tbaa !14
  %5722 = add nsw i32 %5721, 9
  %5723 = sext i32 %5722 to i64
  %5724 = getelementptr inbounds i8, ptr %5720, i64 %5723
  %5725 = load i8, ptr %5724, align 1, !tbaa !16
  %5726 = zext i8 %5725 to i32
  %5727 = load ptr, ptr %14, align 8, !tbaa !5
  %5728 = load i32, ptr %15, align 4, !tbaa !14
  %5729 = sext i32 %5728 to i64
  %5730 = getelementptr inbounds ptr, ptr %5727, i64 %5729
  %5731 = load ptr, ptr %5730, align 8, !tbaa !5
  %5732 = load i32, ptr %16, align 4, !tbaa !14
  %5733 = add nsw i32 %5732, 9
  %5734 = sext i32 %5733 to i64
  %5735 = getelementptr inbounds i8, ptr %5731, i64 %5734
  %5736 = load i8, ptr %5735, align 1, !tbaa !16
  %5737 = zext i8 %5736 to i32
  %5738 = sub nsw i32 %5726, %5737
  %5739 = icmp slt i32 %5738, 255
  br i1 %5739, label %5740, label %5764

5740:                                             ; preds = %5699
  %5741 = load ptr, ptr %13, align 8, !tbaa !5
  %5742 = load i32, ptr %15, align 4, !tbaa !14
  %5743 = sext i32 %5742 to i64
  %5744 = getelementptr inbounds ptr, ptr %5741, i64 %5743
  %5745 = load ptr, ptr %5744, align 8, !tbaa !5
  %5746 = load i32, ptr %16, align 4, !tbaa !14
  %5747 = add nsw i32 %5746, 9
  %5748 = sext i32 %5747 to i64
  %5749 = getelementptr inbounds i8, ptr %5745, i64 %5748
  %5750 = load i8, ptr %5749, align 1, !tbaa !16
  %5751 = zext i8 %5750 to i32
  %5752 = load ptr, ptr %14, align 8, !tbaa !5
  %5753 = load i32, ptr %15, align 4, !tbaa !14
  %5754 = sext i32 %5753 to i64
  %5755 = getelementptr inbounds ptr, ptr %5752, i64 %5754
  %5756 = load ptr, ptr %5755, align 8, !tbaa !5
  %5757 = load i32, ptr %16, align 4, !tbaa !14
  %5758 = add nsw i32 %5757, 9
  %5759 = sext i32 %5758 to i64
  %5760 = getelementptr inbounds i8, ptr %5756, i64 %5759
  %5761 = load i8, ptr %5760, align 1, !tbaa !16
  %5762 = zext i8 %5761 to i32
  %5763 = sub nsw i32 %5751, %5762
  br label %5765

5764:                                             ; preds = %5699
  br label %5765

5765:                                             ; preds = %5764, %5740
  %5766 = phi i32 [ %5763, %5740 ], [ 255, %5764 ]
  %5767 = trunc i32 %5766 to i8
  %5768 = load ptr, ptr %6, align 8, !tbaa !5
  %5769 = getelementptr inbounds %struct.MImage, ptr %5768, i32 0, i32 3
  %5770 = load i32, ptr %12, align 4, !tbaa !14
  %5771 = sext i32 %5770 to i64
  %5772 = getelementptr inbounds [4 x ptr], ptr %5769, i64 0, i64 %5771
  %5773 = load ptr, ptr %5772, align 8, !tbaa !5
  %5774 = load i32, ptr %15, align 4, !tbaa !14
  %5775 = sext i32 %5774 to i64
  %5776 = getelementptr inbounds ptr, ptr %5773, i64 %5775
  %5777 = load ptr, ptr %5776, align 8, !tbaa !5
  %5778 = load i32, ptr %16, align 4, !tbaa !14
  %5779 = add nsw i32 %5778, 9
  %5780 = sext i32 %5779 to i64
  %5781 = getelementptr inbounds i8, ptr %5777, i64 %5780
  store i8 %5767, ptr %5781, align 1, !tbaa !16
  %5782 = load ptr, ptr %13, align 8, !tbaa !5
  %5783 = load i32, ptr %15, align 4, !tbaa !14
  %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 %16, align 4, !tbaa !14
  %5788 = add nsw i32 %5787, 10
  %5789 = sext i32 %5788 to i64
  %5790 = getelementptr inbounds i8, ptr %5786, i64 %5789
  %5791 = load i8, ptr %5790, align 1, !tbaa !16
  %5792 = zext i8 %5791 to i32
  %5793 = load ptr, ptr %14, align 8, !tbaa !5
  %5794 = load i32, ptr %15, align 4, !tbaa !14
  %5795 = sext i32 %5794 to i64
  %5796 = getelementptr inbounds ptr, ptr %5793, i64 %5795
  %5797 = load ptr, ptr %5796, align 8, !tbaa !5
  %5798 = load i32, ptr %16, align 4, !tbaa !14
  %5799 = add nsw i32 %5798, 10
  %5800 = sext i32 %5799 to i64
  %5801 = getelementptr inbounds i8, ptr %5797, i64 %5800
  %5802 = load i8, ptr %5801, align 1, !tbaa !16
  %5803 = zext i8 %5802 to i32
  %5804 = sub nsw i32 %5792, %5803
  %5805 = icmp slt i32 %5804, 255
  br i1 %5805, label %5806, label %5830

5806:                                             ; preds = %5765
  %5807 = load ptr, ptr %13, align 8, !tbaa !5
  %5808 = load i32, ptr %15, align 4, !tbaa !14
  %5809 = sext i32 %5808 to i64
  %5810 = getelementptr inbounds ptr, ptr %5807, i64 %5809
  %5811 = load ptr, ptr %5810, align 8, !tbaa !5
  %5812 = load i32, ptr %16, align 4, !tbaa !14
  %5813 = add nsw i32 %5812, 10
  %5814 = sext i32 %5813 to i64
  %5815 = getelementptr inbounds i8, ptr %5811, i64 %5814
  %5816 = load i8, ptr %5815, align 1, !tbaa !16
  %5817 = zext i8 %5816 to i32
  %5818 = load ptr, ptr %14, align 8, !tbaa !5
  %5819 = load i32, ptr %15, align 4, !tbaa !14
  %5820 = sext i32 %5819 to i64
  %5821 = getelementptr inbounds ptr, ptr %5818, i64 %5820
  %5822 = load ptr, ptr %5821, align 8, !tbaa !5
  %5823 = load i32, ptr %16, align 4, !tbaa !14
  %5824 = add nsw i32 %5823, 10
  %5825 = sext i32 %5824 to i64
  %5826 = getelementptr inbounds i8, ptr %5822, i64 %5825
  %5827 = load i8, ptr %5826, align 1, !tbaa !16
  %5828 = zext i8 %5827 to i32
  %5829 = sub nsw i32 %5817, %5828
  br label %5831

5830:                                             ; preds = %5765
  br label %5831

5831:                                             ; preds = %5830, %5806
  %5832 = phi i32 [ %5829, %5806 ], [ 255, %5830 ]
  %5833 = trunc i32 %5832 to i8
  %5834 = load ptr, ptr %6, align 8, !tbaa !5
  %5835 = getelementptr inbounds %struct.MImage, ptr %5834, i32 0, i32 3
  %5836 = load i32, ptr %12, align 4, !tbaa !14
  %5837 = sext i32 %5836 to i64
  %5838 = getelementptr inbounds [4 x ptr], ptr %5835, i64 0, i64 %5837
  %5839 = load ptr, ptr %5838, align 8, !tbaa !5
  %5840 = load i32, ptr %15, align 4, !tbaa !14
  %5841 = sext i32 %5840 to i64
  %5842 = getelementptr inbounds ptr, ptr %5839, i64 %5841
  %5843 = load ptr, ptr %5842, align 8, !tbaa !5
  %5844 = load i32, ptr %16, align 4, !tbaa !14
  %5845 = add nsw i32 %5844, 10
  %5846 = sext i32 %5845 to i64
  %5847 = getelementptr inbounds i8, ptr %5843, i64 %5846
  store i8 %5833, ptr %5847, align 1, !tbaa !16
  br label %9448

5848:                                             ; preds = %5114
  %5849 = load ptr, ptr %6, align 8, !tbaa !5
  %5850 = getelementptr inbounds %struct.MImage, ptr %5849, i32 0, i32 2
  %5851 = load i32, ptr %5850, align 8, !tbaa !13
  %5852 = load i32, ptr %16, align 4, !tbaa !14
  %5853 = sub nsw i32 %5851, %5852
  %5854 = icmp eq i32 %5853, 12
  br i1 %5854, label %5855, label %6648

5855:                                             ; preds = %5848
  %5856 = load ptr, ptr %13, align 8, !tbaa !5
  %5857 = load i32, ptr %15, align 4, !tbaa !14
  %5858 = sext i32 %5857 to i64
  %5859 = getelementptr inbounds ptr, ptr %5856, i64 %5858
  %5860 = load ptr, ptr %5859, align 8, !tbaa !5
  %5861 = load i32, ptr %16, align 4, !tbaa !14
  %5862 = add nsw i32 %5861, 0
  %5863 = sext i32 %5862 to i64
  %5864 = getelementptr inbounds i8, ptr %5860, i64 %5863
  %5865 = load i8, ptr %5864, align 1, !tbaa !16
  %5866 = zext i8 %5865 to i32
  %5867 = load ptr, ptr %14, align 8, !tbaa !5
  %5868 = load i32, ptr %15, align 4, !tbaa !14
  %5869 = sext i32 %5868 to i64
  %5870 = getelementptr inbounds ptr, ptr %5867, i64 %5869
  %5871 = load ptr, ptr %5870, align 8, !tbaa !5
  %5872 = load i32, ptr %16, align 4, !tbaa !14
  %5873 = add nsw i32 %5872, 0
  %5874 = sext i32 %5873 to i64
  %5875 = getelementptr inbounds i8, ptr %5871, i64 %5874
  %5876 = load i8, ptr %5875, align 1, !tbaa !16
  %5877 = zext i8 %5876 to i32
  %5878 = sub nsw i32 %5866, %5877
  %5879 = icmp slt i32 %5878, 255
  br i1 %5879, label %5880, label %5904

5880:                                             ; preds = %5855
  %5881 = load ptr, ptr %13, align 8, !tbaa !5
  %5882 = load i32, ptr %15, align 4, !tbaa !14
  %5883 = sext i32 %5882 to i64
  %5884 = getelementptr inbounds ptr, ptr %5881, i64 %5883
  %5885 = load ptr, ptr %5884, align 8, !tbaa !5
  %5886 = load i32, ptr %16, align 4, !tbaa !14
  %5887 = add nsw i32 %5886, 0
  %5888 = sext i32 %5887 to i64
  %5889 = getelementptr inbounds i8, ptr %5885, i64 %5888
  %5890 = load i8, ptr %5889, align 1, !tbaa !16
  %5891 = zext i8 %5890 to i32
  %5892 = load ptr, ptr %14, align 8, !tbaa !5
  %5893 = load i32, ptr %15, align 4, !tbaa !14
  %5894 = sext i32 %5893 to i64
  %5895 = getelementptr inbounds ptr, ptr %5892, i64 %5894
  %5896 = load ptr, ptr %5895, align 8, !tbaa !5
  %5897 = load i32, ptr %16, align 4, !tbaa !14
  %5898 = add nsw i32 %5897, 0
  %5899 = sext i32 %5898 to i64
  %5900 = getelementptr inbounds i8, ptr %5896, i64 %5899
  %5901 = load i8, ptr %5900, align 1, !tbaa !16
  %5902 = zext i8 %5901 to i32
  %5903 = sub nsw i32 %5891, %5902
  br label %5905

5904:                                             ; preds = %5855
  br label %5905

5905:                                             ; preds = %5904, %5880
  %5906 = phi i32 [ %5903, %5880 ], [ 255, %5904 ]
  %5907 = trunc i32 %5906 to i8
  %5908 = load ptr, ptr %6, align 8, !tbaa !5
  %5909 = getelementptr inbounds %struct.MImage, ptr %5908, i32 0, i32 3
  %5910 = load i32, ptr %12, align 4, !tbaa !14
  %5911 = sext i32 %5910 to i64
  %5912 = getelementptr inbounds [4 x ptr], ptr %5909, i64 0, i64 %5911
  %5913 = load ptr, ptr %5912, align 8, !tbaa !5
  %5914 = load i32, ptr %15, align 4, !tbaa !14
  %5915 = sext i32 %5914 to i64
  %5916 = getelementptr inbounds ptr, ptr %5913, i64 %5915
  %5917 = load ptr, ptr %5916, align 8, !tbaa !5
  %5918 = load i32, ptr %16, align 4, !tbaa !14
  %5919 = add nsw i32 %5918, 0
  %5920 = sext i32 %5919 to i64
  %5921 = getelementptr inbounds i8, ptr %5917, i64 %5920
  store i8 %5907, ptr %5921, align 1, !tbaa !16
  %5922 = load ptr, ptr %13, align 8, !tbaa !5
  %5923 = load i32, ptr %15, align 4, !tbaa !14
  %5924 = sext i32 %5923 to i64
  %5925 = getelementptr inbounds ptr, ptr %5922, i64 %5924
  %5926 = load ptr, ptr %5925, align 8, !tbaa !5
  %5927 = load i32, ptr %16, align 4, !tbaa !14
  %5928 = add nsw i32 %5927, 1
  %5929 = sext i32 %5928 to i64
  %5930 = getelementptr inbounds i8, ptr %5926, i64 %5929
  %5931 = load i8, ptr %5930, align 1, !tbaa !16
  %5932 = zext i8 %5931 to i32
  %5933 = load ptr, ptr %14, align 8, !tbaa !5
  %5934 = load i32, ptr %15, align 4, !tbaa !14
  %5935 = sext i32 %5934 to i64
  %5936 = getelementptr inbounds ptr, ptr %5933, i64 %5935
  %5937 = load ptr, ptr %5936, align 8, !tbaa !5
  %5938 = load i32, ptr %16, align 4, !tbaa !14
  %5939 = add nsw i32 %5938, 1
  %5940 = sext i32 %5939 to i64
  %5941 = getelementptr inbounds i8, ptr %5937, i64 %5940
  %5942 = load i8, ptr %5941, align 1, !tbaa !16
  %5943 = zext i8 %5942 to i32
  %5944 = sub nsw i32 %5932, %5943
  %5945 = icmp slt i32 %5944, 255
  br i1 %5945, label %5946, label %5970

5946:                                             ; preds = %5905
  %5947 = load ptr, ptr %13, align 8, !tbaa !5
  %5948 = load i32, ptr %15, align 4, !tbaa !14
  %5949 = sext i32 %5948 to i64
  %5950 = getelementptr inbounds ptr, ptr %5947, i64 %5949
  %5951 = load ptr, ptr %5950, align 8, !tbaa !5
  %5952 = load i32, ptr %16, align 4, !tbaa !14
  %5953 = add nsw i32 %5952, 1
  %5954 = sext i32 %5953 to i64
  %5955 = getelementptr inbounds i8, ptr %5951, i64 %5954
  %5956 = load i8, ptr %5955, align 1, !tbaa !16
  %5957 = zext i8 %5956 to i32
  %5958 = load ptr, ptr %14, align 8, !tbaa !5
  %5959 = load i32, ptr %15, align 4, !tbaa !14
  %5960 = sext i32 %5959 to i64
  %5961 = getelementptr inbounds ptr, ptr %5958, i64 %5960
  %5962 = load ptr, ptr %5961, align 8, !tbaa !5
  %5963 = load i32, ptr %16, align 4, !tbaa !14
  %5964 = add nsw i32 %5963, 1
  %5965 = sext i32 %5964 to i64
  %5966 = getelementptr inbounds i8, ptr %5962, i64 %5965
  %5967 = load i8, ptr %5966, align 1, !tbaa !16
  %5968 = zext i8 %5967 to i32
  %5969 = sub nsw i32 %5957, %5968
  br label %5971

5970:                                             ; preds = %5905
  br label %5971

5971:                                             ; preds = %5970, %5946
  %5972 = phi i32 [ %5969, %5946 ], [ 255, %5970 ]
  %5973 = trunc i32 %5972 to i8
  %5974 = load ptr, ptr %6, align 8, !tbaa !5
  %5975 = getelementptr inbounds %struct.MImage, ptr %5974, i32 0, i32 3
  %5976 = load i32, ptr %12, align 4, !tbaa !14
  %5977 = sext i32 %5976 to i64
  %5978 = getelementptr inbounds [4 x ptr], ptr %5975, i64 0, i64 %5977
  %5979 = load ptr, ptr %5978, align 8, !tbaa !5
  %5980 = load i32, ptr %15, align 4, !tbaa !14
  %5981 = sext i32 %5980 to i64
  %5982 = getelementptr inbounds ptr, ptr %5979, i64 %5981
  %5983 = load ptr, ptr %5982, align 8, !tbaa !5
  %5984 = load i32, ptr %16, align 4, !tbaa !14
  %5985 = add nsw i32 %5984, 1
  %5986 = sext i32 %5985 to i64
  %5987 = getelementptr inbounds i8, ptr %5983, i64 %5986
  store i8 %5973, ptr %5987, align 1, !tbaa !16
  %5988 = load ptr, ptr %13, align 8, !tbaa !5
  %5989 = load i32, ptr %15, align 4, !tbaa !14
  %5990 = sext i32 %5989 to i64
  %5991 = getelementptr inbounds ptr, ptr %5988, i64 %5990
  %5992 = load ptr, ptr %5991, align 8, !tbaa !5
  %5993 = load i32, ptr %16, align 4, !tbaa !14
  %5994 = add nsw i32 %5993, 2
  %5995 = sext i32 %5994 to i64
  %5996 = getelementptr inbounds i8, ptr %5992, i64 %5995
  %5997 = load i8, ptr %5996, align 1, !tbaa !16
  %5998 = zext i8 %5997 to i32
  %5999 = load ptr, ptr %14, align 8, !tbaa !5
  %6000 = load i32, ptr %15, align 4, !tbaa !14
  %6001 = sext i32 %6000 to i64
  %6002 = getelementptr inbounds ptr, ptr %5999, i64 %6001
  %6003 = load ptr, ptr %6002, align 8, !tbaa !5
  %6004 = load i32, ptr %16, align 4, !tbaa !14
  %6005 = add nsw i32 %6004, 2
  %6006 = sext i32 %6005 to i64
  %6007 = getelementptr inbounds i8, ptr %6003, i64 %6006
  %6008 = load i8, ptr %6007, align 1, !tbaa !16
  %6009 = zext i8 %6008 to i32
  %6010 = sub nsw i32 %5998, %6009
  %6011 = icmp slt i32 %6010, 255
  br i1 %6011, label %6012, label %6036

6012:                                             ; preds = %5971
  %6013 = load ptr, ptr %13, align 8, !tbaa !5
  %6014 = load i32, ptr %15, align 4, !tbaa !14
  %6015 = sext i32 %6014 to i64
  %6016 = getelementptr inbounds ptr, ptr %6013, i64 %6015
  %6017 = load ptr, ptr %6016, align 8, !tbaa !5
  %6018 = load i32, ptr %16, align 4, !tbaa !14
  %6019 = add nsw i32 %6018, 2
  %6020 = sext i32 %6019 to i64
  %6021 = getelementptr inbounds i8, ptr %6017, i64 %6020
  %6022 = load i8, ptr %6021, align 1, !tbaa !16
  %6023 = zext i8 %6022 to i32
  %6024 = load ptr, ptr %14, align 8, !tbaa !5
  %6025 = load i32, ptr %15, align 4, !tbaa !14
  %6026 = sext i32 %6025 to i64
  %6027 = getelementptr inbounds ptr, ptr %6024, i64 %6026
  %6028 = load ptr, ptr %6027, align 8, !tbaa !5
  %6029 = load i32, ptr %16, align 4, !tbaa !14
  %6030 = add nsw i32 %6029, 2
  %6031 = sext i32 %6030 to i64
  %6032 = getelementptr inbounds i8, ptr %6028, i64 %6031
  %6033 = load i8, ptr %6032, align 1, !tbaa !16
  %6034 = zext i8 %6033 to i32
  %6035 = sub nsw i32 %6023, %6034
  br label %6037

6036:                                             ; preds = %5971
  br label %6037

6037:                                             ; preds = %6036, %6012
  %6038 = phi i32 [ %6035, %6012 ], [ 255, %6036 ]
  %6039 = trunc i32 %6038 to i8
  %6040 = load ptr, ptr %6, align 8, !tbaa !5
  %6041 = getelementptr inbounds %struct.MImage, ptr %6040, i32 0, i32 3
  %6042 = load i32, ptr %12, align 4, !tbaa !14
  %6043 = sext i32 %6042 to i64
  %6044 = getelementptr inbounds [4 x ptr], ptr %6041, i64 0, i64 %6043
  %6045 = load ptr, ptr %6044, align 8, !tbaa !5
  %6046 = load i32, ptr %15, align 4, !tbaa !14
  %6047 = sext i32 %6046 to i64
  %6048 = getelementptr inbounds ptr, ptr %6045, i64 %6047
  %6049 = load ptr, ptr %6048, align 8, !tbaa !5
  %6050 = load i32, ptr %16, align 4, !tbaa !14
  %6051 = add nsw i32 %6050, 2
  %6052 = sext i32 %6051 to i64
  %6053 = getelementptr inbounds i8, ptr %6049, i64 %6052
  store i8 %6039, ptr %6053, align 1, !tbaa !16
  %6054 = load ptr, ptr %13, align 8, !tbaa !5
  %6055 = load i32, ptr %15, align 4, !tbaa !14
  %6056 = sext i32 %6055 to i64
  %6057 = getelementptr inbounds ptr, ptr %6054, i64 %6056
  %6058 = load ptr, ptr %6057, align 8, !tbaa !5
  %6059 = load i32, ptr %16, align 4, !tbaa !14
  %6060 = add nsw i32 %6059, 3
  %6061 = sext i32 %6060 to i64
  %6062 = getelementptr inbounds i8, ptr %6058, i64 %6061
  %6063 = load i8, ptr %6062, align 1, !tbaa !16
  %6064 = zext i8 %6063 to i32
  %6065 = load ptr, ptr %14, align 8, !tbaa !5
  %6066 = load i32, ptr %15, align 4, !tbaa !14
  %6067 = sext i32 %6066 to i64
  %6068 = getelementptr inbounds ptr, ptr %6065, i64 %6067
  %6069 = load ptr, ptr %6068, align 8, !tbaa !5
  %6070 = load i32, ptr %16, align 4, !tbaa !14
  %6071 = add nsw i32 %6070, 3
  %6072 = sext i32 %6071 to i64
  %6073 = getelementptr inbounds i8, ptr %6069, i64 %6072
  %6074 = load i8, ptr %6073, align 1, !tbaa !16
  %6075 = zext i8 %6074 to i32
  %6076 = sub nsw i32 %6064, %6075
  %6077 = icmp slt i32 %6076, 255
  br i1 %6077, label %6078, label %6102

6078:                                             ; preds = %6037
  %6079 = load ptr, ptr %13, align 8, !tbaa !5
  %6080 = load i32, ptr %15, align 4, !tbaa !14
  %6081 = sext i32 %6080 to i64
  %6082 = getelementptr inbounds ptr, ptr %6079, i64 %6081
  %6083 = load ptr, ptr %6082, align 8, !tbaa !5
  %6084 = load i32, ptr %16, align 4, !tbaa !14
  %6085 = add nsw i32 %6084, 3
  %6086 = sext i32 %6085 to i64
  %6087 = getelementptr inbounds i8, ptr %6083, i64 %6086
  %6088 = load i8, ptr %6087, align 1, !tbaa !16
  %6089 = zext i8 %6088 to i32
  %6090 = load ptr, ptr %14, align 8, !tbaa !5
  %6091 = load i32, ptr %15, align 4, !tbaa !14
  %6092 = sext i32 %6091 to i64
  %6093 = getelementptr inbounds ptr, ptr %6090, i64 %6092
  %6094 = load ptr, ptr %6093, align 8, !tbaa !5
  %6095 = load i32, ptr %16, align 4, !tbaa !14
  %6096 = add nsw i32 %6095, 3
  %6097 = sext i32 %6096 to i64
  %6098 = getelementptr inbounds i8, ptr %6094, i64 %6097
  %6099 = load i8, ptr %6098, align 1, !tbaa !16
  %6100 = zext i8 %6099 to i32
  %6101 = sub nsw i32 %6089, %6100
  br label %6103

6102:                                             ; preds = %6037
  br label %6103

6103:                                             ; preds = %6102, %6078
  %6104 = phi i32 [ %6101, %6078 ], [ 255, %6102 ]
  %6105 = trunc i32 %6104 to i8
  %6106 = load ptr, ptr %6, align 8, !tbaa !5
  %6107 = getelementptr inbounds %struct.MImage, ptr %6106, i32 0, i32 3
  %6108 = load i32, ptr %12, align 4, !tbaa !14
  %6109 = sext i32 %6108 to i64
  %6110 = getelementptr inbounds [4 x ptr], ptr %6107, i64 0, i64 %6109
  %6111 = load ptr, ptr %6110, align 8, !tbaa !5
  %6112 = load i32, ptr %15, align 4, !tbaa !14
  %6113 = sext i32 %6112 to i64
  %6114 = getelementptr inbounds ptr, ptr %6111, i64 %6113
  %6115 = load ptr, ptr %6114, align 8, !tbaa !5
  %6116 = load i32, ptr %16, align 4, !tbaa !14
  %6117 = add nsw i32 %6116, 3
  %6118 = sext i32 %6117 to i64
  %6119 = getelementptr inbounds i8, ptr %6115, i64 %6118
  store i8 %6105, ptr %6119, align 1, !tbaa !16
  %6120 = load ptr, ptr %13, align 8, !tbaa !5
  %6121 = load i32, ptr %15, align 4, !tbaa !14
  %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 %16, align 4, !tbaa !14
  %6126 = add nsw i32 %6125, 4
  %6127 = sext i32 %6126 to i64
  %6128 = getelementptr inbounds i8, ptr %6124, i64 %6127
  %6129 = load i8, ptr %6128, align 1, !tbaa !16
  %6130 = zext i8 %6129 to i32
  %6131 = load ptr, ptr %14, align 8, !tbaa !5
  %6132 = load i32, ptr %15, align 4, !tbaa !14
  %6133 = sext i32 %6132 to i64
  %6134 = getelementptr inbounds ptr, ptr %6131, i64 %6133
  %6135 = load ptr, ptr %6134, align 8, !tbaa !5
  %6136 = load i32, ptr %16, align 4, !tbaa !14
  %6137 = add nsw i32 %6136, 4
  %6138 = sext i32 %6137 to i64
  %6139 = getelementptr inbounds i8, ptr %6135, i64 %6138
  %6140 = load i8, ptr %6139, align 1, !tbaa !16
  %6141 = zext i8 %6140 to i32
  %6142 = sub nsw i32 %6130, %6141
  %6143 = icmp slt i32 %6142, 255
  br i1 %6143, label %6144, label %6168

6144:                                             ; preds = %6103
  %6145 = load ptr, ptr %13, align 8, !tbaa !5
  %6146 = load i32, ptr %15, align 4, !tbaa !14
  %6147 = sext i32 %6146 to i64
  %6148 = getelementptr inbounds ptr, ptr %6145, i64 %6147
  %6149 = load ptr, ptr %6148, align 8, !tbaa !5
  %6150 = load i32, ptr %16, align 4, !tbaa !14
  %6151 = add nsw i32 %6150, 4
  %6152 = sext i32 %6151 to i64
  %6153 = getelementptr inbounds i8, ptr %6149, i64 %6152
  %6154 = load i8, ptr %6153, align 1, !tbaa !16
  %6155 = zext i8 %6154 to i32
  %6156 = load ptr, ptr %14, align 8, !tbaa !5
  %6157 = load i32, ptr %15, align 4, !tbaa !14
  %6158 = sext i32 %6157 to i64
  %6159 = getelementptr inbounds ptr, ptr %6156, i64 %6158
  %6160 = load ptr, ptr %6159, align 8, !tbaa !5
  %6161 = load i32, ptr %16, align 4, !tbaa !14
  %6162 = add nsw i32 %6161, 4
  %6163 = sext i32 %6162 to i64
  %6164 = getelementptr inbounds i8, ptr %6160, i64 %6163
  %6165 = load i8, ptr %6164, align 1, !tbaa !16
  %6166 = zext i8 %6165 to i32
  %6167 = sub nsw i32 %6155, %6166
  br label %6169

6168:                                             ; preds = %6103
  br label %6169

6169:                                             ; preds = %6168, %6144
  %6170 = phi i32 [ %6167, %6144 ], [ 255, %6168 ]
  %6171 = trunc i32 %6170 to i8
  %6172 = load ptr, ptr %6, align 8, !tbaa !5
  %6173 = getelementptr inbounds %struct.MImage, ptr %6172, i32 0, i32 3
  %6174 = load i32, ptr %12, align 4, !tbaa !14
  %6175 = sext i32 %6174 to i64
  %6176 = getelementptr inbounds [4 x ptr], ptr %6173, i64 0, i64 %6175
  %6177 = load ptr, ptr %6176, align 8, !tbaa !5
  %6178 = load i32, ptr %15, align 4, !tbaa !14
  %6179 = sext i32 %6178 to i64
  %6180 = getelementptr inbounds ptr, ptr %6177, i64 %6179
  %6181 = load ptr, ptr %6180, align 8, !tbaa !5
  %6182 = load i32, ptr %16, align 4, !tbaa !14
  %6183 = add nsw i32 %6182, 4
  %6184 = sext i32 %6183 to i64
  %6185 = getelementptr inbounds i8, ptr %6181, i64 %6184
  store i8 %6171, ptr %6185, align 1, !tbaa !16
  %6186 = load ptr, ptr %13, align 8, !tbaa !5
  %6187 = load i32, ptr %15, align 4, !tbaa !14
  %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 %16, align 4, !tbaa !14
  %6192 = add nsw i32 %6191, 5
  %6193 = sext i32 %6192 to i64
  %6194 = getelementptr inbounds i8, ptr %6190, i64 %6193
  %6195 = load i8, ptr %6194, align 1, !tbaa !16
  %6196 = zext i8 %6195 to i32
  %6197 = load ptr, ptr %14, align 8, !tbaa !5
  %6198 = load i32, ptr %15, align 4, !tbaa !14
  %6199 = sext i32 %6198 to i64
  %6200 = getelementptr inbounds ptr, ptr %6197, i64 %6199
  %6201 = load ptr, ptr %6200, align 8, !tbaa !5
  %6202 = load i32, ptr %16, align 4, !tbaa !14
  %6203 = add nsw i32 %6202, 5
  %6204 = sext i32 %6203 to i64
  %6205 = getelementptr inbounds i8, ptr %6201, i64 %6204
  %6206 = load i8, ptr %6205, align 1, !tbaa !16
  %6207 = zext i8 %6206 to i32
  %6208 = sub nsw i32 %6196, %6207
  %6209 = icmp slt i32 %6208, 255
  br i1 %6209, label %6210, label %6234

6210:                                             ; preds = %6169
  %6211 = load ptr, ptr %13, align 8, !tbaa !5
  %6212 = load i32, ptr %15, align 4, !tbaa !14
  %6213 = sext i32 %6212 to i64
  %6214 = getelementptr inbounds ptr, ptr %6211, i64 %6213
  %6215 = load ptr, ptr %6214, align 8, !tbaa !5
  %6216 = load i32, ptr %16, align 4, !tbaa !14
  %6217 = add nsw i32 %6216, 5
  %6218 = sext i32 %6217 to i64
  %6219 = getelementptr inbounds i8, ptr %6215, i64 %6218
  %6220 = load i8, ptr %6219, align 1, !tbaa !16
  %6221 = zext i8 %6220 to i32
  %6222 = load ptr, ptr %14, align 8, !tbaa !5
  %6223 = load i32, ptr %15, align 4, !tbaa !14
  %6224 = sext i32 %6223 to i64
  %6225 = getelementptr inbounds ptr, ptr %6222, i64 %6224
  %6226 = load ptr, ptr %6225, align 8, !tbaa !5
  %6227 = load i32, ptr %16, align 4, !tbaa !14
  %6228 = add nsw i32 %6227, 5
  %6229 = sext i32 %6228 to i64
  %6230 = getelementptr inbounds i8, ptr %6226, i64 %6229
  %6231 = load i8, ptr %6230, align 1, !tbaa !16
  %6232 = zext i8 %6231 to i32
  %6233 = sub nsw i32 %6221, %6232
  br label %6235

6234:                                             ; preds = %6169
  br label %6235

6235:                                             ; preds = %6234, %6210
  %6236 = phi i32 [ %6233, %6210 ], [ 255, %6234 ]
  %6237 = trunc i32 %6236 to i8
  %6238 = load ptr, ptr %6, align 8, !tbaa !5
  %6239 = getelementptr inbounds %struct.MImage, ptr %6238, i32 0, i32 3
  %6240 = load i32, ptr %12, align 4, !tbaa !14
  %6241 = sext i32 %6240 to i64
  %6242 = getelementptr inbounds [4 x ptr], ptr %6239, i64 0, i64 %6241
  %6243 = load ptr, ptr %6242, align 8, !tbaa !5
  %6244 = load i32, ptr %15, align 4, !tbaa !14
  %6245 = sext i32 %6244 to i64
  %6246 = getelementptr inbounds ptr, ptr %6243, i64 %6245
  %6247 = load ptr, ptr %6246, align 8, !tbaa !5
  %6248 = load i32, ptr %16, align 4, !tbaa !14
  %6249 = add nsw i32 %6248, 5
  %6250 = sext i32 %6249 to i64
  %6251 = getelementptr inbounds i8, ptr %6247, i64 %6250
  store i8 %6237, ptr %6251, align 1, !tbaa !16
  %6252 = load ptr, ptr %13, align 8, !tbaa !5
  %6253 = load i32, ptr %15, align 4, !tbaa !14
  %6254 = sext i32 %6253 to i64
  %6255 = getelementptr inbounds ptr, ptr %6252, i64 %6254
  %6256 = load ptr, ptr %6255, align 8, !tbaa !5
  %6257 = load i32, ptr %16, align 4, !tbaa !14
  %6258 = add nsw i32 %6257, 6
  %6259 = sext i32 %6258 to i64
  %6260 = getelementptr inbounds i8, ptr %6256, i64 %6259
  %6261 = load i8, ptr %6260, align 1, !tbaa !16
  %6262 = zext i8 %6261 to i32
  %6263 = load ptr, ptr %14, align 8, !tbaa !5
  %6264 = load i32, ptr %15, align 4, !tbaa !14
  %6265 = sext i32 %6264 to i64
  %6266 = getelementptr inbounds ptr, ptr %6263, i64 %6265
  %6267 = load ptr, ptr %6266, align 8, !tbaa !5
  %6268 = load i32, ptr %16, align 4, !tbaa !14
  %6269 = add nsw i32 %6268, 6
  %6270 = sext i32 %6269 to i64
  %6271 = getelementptr inbounds i8, ptr %6267, i64 %6270
  %6272 = load i8, ptr %6271, align 1, !tbaa !16
  %6273 = zext i8 %6272 to i32
  %6274 = sub nsw i32 %6262, %6273
  %6275 = icmp slt i32 %6274, 255
  br i1 %6275, label %6276, label %6300

6276:                                             ; preds = %6235
  %6277 = load ptr, ptr %13, align 8, !tbaa !5
  %6278 = load i32, ptr %15, align 4, !tbaa !14
  %6279 = sext i32 %6278 to i64
  %6280 = getelementptr inbounds ptr, ptr %6277, i64 %6279
  %6281 = load ptr, ptr %6280, align 8, !tbaa !5
  %6282 = load i32, ptr %16, align 4, !tbaa !14
  %6283 = add nsw i32 %6282, 6
  %6284 = sext i32 %6283 to i64
  %6285 = getelementptr inbounds i8, ptr %6281, i64 %6284
  %6286 = load i8, ptr %6285, align 1, !tbaa !16
  %6287 = zext i8 %6286 to i32
  %6288 = load ptr, ptr %14, align 8, !tbaa !5
  %6289 = load i32, ptr %15, align 4, !tbaa !14
  %6290 = sext i32 %6289 to i64
  %6291 = getelementptr inbounds ptr, ptr %6288, i64 %6290
  %6292 = load ptr, ptr %6291, align 8, !tbaa !5
  %6293 = load i32, ptr %16, align 4, !tbaa !14
  %6294 = add nsw i32 %6293, 6
  %6295 = sext i32 %6294 to i64
  %6296 = getelementptr inbounds i8, ptr %6292, i64 %6295
  %6297 = load i8, ptr %6296, align 1, !tbaa !16
  %6298 = zext i8 %6297 to i32
  %6299 = sub nsw i32 %6287, %6298
  br label %6301

6300:                                             ; preds = %6235
  br label %6301

6301:                                             ; preds = %6300, %6276
  %6302 = phi i32 [ %6299, %6276 ], [ 255, %6300 ]
  %6303 = trunc i32 %6302 to i8
  %6304 = load ptr, ptr %6, align 8, !tbaa !5
  %6305 = getelementptr inbounds %struct.MImage, ptr %6304, i32 0, i32 3
  %6306 = load i32, ptr %12, align 4, !tbaa !14
  %6307 = sext i32 %6306 to i64
  %6308 = getelementptr inbounds [4 x ptr], ptr %6305, i64 0, i64 %6307
  %6309 = load ptr, ptr %6308, align 8, !tbaa !5
  %6310 = load i32, ptr %15, align 4, !tbaa !14
  %6311 = sext i32 %6310 to i64
  %6312 = getelementptr inbounds ptr, ptr %6309, i64 %6311
  %6313 = load ptr, ptr %6312, align 8, !tbaa !5
  %6314 = load i32, ptr %16, align 4, !tbaa !14
  %6315 = add nsw i32 %6314, 6
  %6316 = sext i32 %6315 to i64
  %6317 = getelementptr inbounds i8, ptr %6313, i64 %6316
  store i8 %6303, ptr %6317, align 1, !tbaa !16
  %6318 = load ptr, ptr %13, align 8, !tbaa !5
  %6319 = load i32, ptr %15, align 4, !tbaa !14
  %6320 = sext i32 %6319 to i64
  %6321 = getelementptr inbounds ptr, ptr %6318, i64 %6320
  %6322 = load ptr, ptr %6321, align 8, !tbaa !5
  %6323 = load i32, ptr %16, align 4, !tbaa !14
  %6324 = add nsw i32 %6323, 7
  %6325 = sext i32 %6324 to i64
  %6326 = getelementptr inbounds i8, ptr %6322, i64 %6325
  %6327 = load i8, ptr %6326, align 1, !tbaa !16
  %6328 = zext i8 %6327 to i32
  %6329 = load ptr, ptr %14, align 8, !tbaa !5
  %6330 = load i32, ptr %15, align 4, !tbaa !14
  %6331 = sext i32 %6330 to i64
  %6332 = getelementptr inbounds ptr, ptr %6329, i64 %6331
  %6333 = load ptr, ptr %6332, align 8, !tbaa !5
  %6334 = load i32, ptr %16, align 4, !tbaa !14
  %6335 = add nsw i32 %6334, 7
  %6336 = sext i32 %6335 to i64
  %6337 = getelementptr inbounds i8, ptr %6333, i64 %6336
  %6338 = load i8, ptr %6337, align 1, !tbaa !16
  %6339 = zext i8 %6338 to i32
  %6340 = sub nsw i32 %6328, %6339
  %6341 = icmp slt i32 %6340, 255
  br i1 %6341, label %6342, label %6366

6342:                                             ; preds = %6301
  %6343 = load ptr, ptr %13, align 8, !tbaa !5
  %6344 = load i32, ptr %15, align 4, !tbaa !14
  %6345 = sext i32 %6344 to i64
  %6346 = getelementptr inbounds ptr, ptr %6343, i64 %6345
  %6347 = load ptr, ptr %6346, align 8, !tbaa !5
  %6348 = load i32, ptr %16, align 4, !tbaa !14
  %6349 = add nsw i32 %6348, 7
  %6350 = sext i32 %6349 to i64
  %6351 = getelementptr inbounds i8, ptr %6347, i64 %6350
  %6352 = load i8, ptr %6351, align 1, !tbaa !16
  %6353 = zext i8 %6352 to i32
  %6354 = load ptr, ptr %14, align 8, !tbaa !5
  %6355 = load i32, ptr %15, align 4, !tbaa !14
  %6356 = sext i32 %6355 to i64
  %6357 = getelementptr inbounds ptr, ptr %6354, i64 %6356
  %6358 = load ptr, ptr %6357, align 8, !tbaa !5
  %6359 = load i32, ptr %16, align 4, !tbaa !14
  %6360 = add nsw i32 %6359, 7
  %6361 = sext i32 %6360 to i64
  %6362 = getelementptr inbounds i8, ptr %6358, i64 %6361
  %6363 = load i8, ptr %6362, align 1, !tbaa !16
  %6364 = zext i8 %6363 to i32
  %6365 = sub nsw i32 %6353, %6364
  br label %6367

6366:                                             ; preds = %6301
  br label %6367

6367:                                             ; preds = %6366, %6342
  %6368 = phi i32 [ %6365, %6342 ], [ 255, %6366 ]
  %6369 = trunc i32 %6368 to i8
  %6370 = load ptr, ptr %6, align 8, !tbaa !5
  %6371 = getelementptr inbounds %struct.MImage, ptr %6370, i32 0, i32 3
  %6372 = load i32, ptr %12, align 4, !tbaa !14
  %6373 = sext i32 %6372 to i64
  %6374 = getelementptr inbounds [4 x ptr], ptr %6371, i64 0, i64 %6373
  %6375 = load ptr, ptr %6374, align 8, !tbaa !5
  %6376 = load i32, ptr %15, align 4, !tbaa !14
  %6377 = sext i32 %6376 to i64
  %6378 = getelementptr inbounds ptr, ptr %6375, i64 %6377
  %6379 = load ptr, ptr %6378, align 8, !tbaa !5
  %6380 = load i32, ptr %16, align 4, !tbaa !14
  %6381 = add nsw i32 %6380, 7
  %6382 = sext i32 %6381 to i64
  %6383 = getelementptr inbounds i8, ptr %6379, i64 %6382
  store i8 %6369, ptr %6383, align 1, !tbaa !16
  %6384 = load ptr, ptr %13, align 8, !tbaa !5
  %6385 = load i32, ptr %15, align 4, !tbaa !14
  %6386 = sext i32 %6385 to i64
  %6387 = getelementptr inbounds ptr, ptr %6384, i64 %6386
  %6388 = load ptr, ptr %6387, align 8, !tbaa !5
  %6389 = load i32, ptr %16, align 4, !tbaa !14
  %6390 = add nsw i32 %6389, 8
  %6391 = sext i32 %6390 to i64
  %6392 = getelementptr inbounds i8, ptr %6388, i64 %6391
  %6393 = load i8, ptr %6392, align 1, !tbaa !16
  %6394 = zext i8 %6393 to i32
  %6395 = load ptr, ptr %14, align 8, !tbaa !5
  %6396 = load i32, ptr %15, align 4, !tbaa !14
  %6397 = sext i32 %6396 to i64
  %6398 = getelementptr inbounds ptr, ptr %6395, i64 %6397
  %6399 = load ptr, ptr %6398, align 8, !tbaa !5
  %6400 = load i32, ptr %16, align 4, !tbaa !14
  %6401 = add nsw i32 %6400, 8
  %6402 = sext i32 %6401 to i64
  %6403 = getelementptr inbounds i8, ptr %6399, i64 %6402
  %6404 = load i8, ptr %6403, align 1, !tbaa !16
  %6405 = zext i8 %6404 to i32
  %6406 = sub nsw i32 %6394, %6405
  %6407 = icmp slt i32 %6406, 255
  br i1 %6407, label %6408, label %6432

6408:                                             ; preds = %6367
  %6409 = load ptr, ptr %13, align 8, !tbaa !5
  %6410 = load i32, ptr %15, align 4, !tbaa !14
  %6411 = sext i32 %6410 to i64
  %6412 = getelementptr inbounds ptr, ptr %6409, i64 %6411
  %6413 = load ptr, ptr %6412, align 8, !tbaa !5
  %6414 = load i32, ptr %16, align 4, !tbaa !14
  %6415 = add nsw i32 %6414, 8
  %6416 = sext i32 %6415 to i64
  %6417 = getelementptr inbounds i8, ptr %6413, i64 %6416
  %6418 = load i8, ptr %6417, align 1, !tbaa !16
  %6419 = zext i8 %6418 to i32
  %6420 = load ptr, ptr %14, align 8, !tbaa !5
  %6421 = load i32, ptr %15, align 4, !tbaa !14
  %6422 = sext i32 %6421 to i64
  %6423 = getelementptr inbounds ptr, ptr %6420, i64 %6422
  %6424 = load ptr, ptr %6423, align 8, !tbaa !5
  %6425 = load i32, ptr %16, align 4, !tbaa !14
  %6426 = add nsw i32 %6425, 8
  %6427 = sext i32 %6426 to i64
  %6428 = getelementptr inbounds i8, ptr %6424, i64 %6427
  %6429 = load i8, ptr %6428, align 1, !tbaa !16
  %6430 = zext i8 %6429 to i32
  %6431 = sub nsw i32 %6419, %6430
  br label %6433

6432:                                             ; preds = %6367
  br label %6433

6433:                                             ; preds = %6432, %6408
  %6434 = phi i32 [ %6431, %6408 ], [ 255, %6432 ]
  %6435 = trunc i32 %6434 to i8
  %6436 = load ptr, ptr %6, align 8, !tbaa !5
  %6437 = getelementptr inbounds %struct.MImage, ptr %6436, i32 0, i32 3
  %6438 = load i32, ptr %12, align 4, !tbaa !14
  %6439 = sext i32 %6438 to i64
  %6440 = getelementptr inbounds [4 x ptr], ptr %6437, i64 0, i64 %6439
  %6441 = load ptr, ptr %6440, align 8, !tbaa !5
  %6442 = load i32, ptr %15, align 4, !tbaa !14
  %6443 = sext i32 %6442 to i64
  %6444 = getelementptr inbounds ptr, ptr %6441, i64 %6443
  %6445 = load ptr, ptr %6444, align 8, !tbaa !5
  %6446 = load i32, ptr %16, align 4, !tbaa !14
  %6447 = add nsw i32 %6446, 8
  %6448 = sext i32 %6447 to i64
  %6449 = getelementptr inbounds i8, ptr %6445, i64 %6448
  store i8 %6435, ptr %6449, align 1, !tbaa !16
  %6450 = load ptr, ptr %13, align 8, !tbaa !5
  %6451 = load i32, ptr %15, align 4, !tbaa !14
  %6452 = sext i32 %6451 to i64
  %6453 = getelementptr inbounds ptr, ptr %6450, i64 %6452
  %6454 = load ptr, ptr %6453, align 8, !tbaa !5
  %6455 = load i32, ptr %16, align 4, !tbaa !14
  %6456 = add nsw i32 %6455, 9
  %6457 = sext i32 %6456 to i64
  %6458 = getelementptr inbounds i8, ptr %6454, i64 %6457
  %6459 = load i8, ptr %6458, align 1, !tbaa !16
  %6460 = zext i8 %6459 to i32
  %6461 = load ptr, ptr %14, align 8, !tbaa !5
  %6462 = load i32, ptr %15, align 4, !tbaa !14
  %6463 = sext i32 %6462 to i64
  %6464 = getelementptr inbounds ptr, ptr %6461, i64 %6463
  %6465 = load ptr, ptr %6464, align 8, !tbaa !5
  %6466 = load i32, ptr %16, align 4, !tbaa !14
  %6467 = add nsw i32 %6466, 9
  %6468 = sext i32 %6467 to i64
  %6469 = getelementptr inbounds i8, ptr %6465, i64 %6468
  %6470 = load i8, ptr %6469, align 1, !tbaa !16
  %6471 = zext i8 %6470 to i32
  %6472 = sub nsw i32 %6460, %6471
  %6473 = icmp slt i32 %6472, 255
  br i1 %6473, label %6474, label %6498

6474:                                             ; preds = %6433
  %6475 = load ptr, ptr %13, align 8, !tbaa !5
  %6476 = load i32, ptr %15, align 4, !tbaa !14
  %6477 = sext i32 %6476 to i64
  %6478 = getelementptr inbounds ptr, ptr %6475, i64 %6477
  %6479 = load ptr, ptr %6478, align 8, !tbaa !5
  %6480 = load i32, ptr %16, align 4, !tbaa !14
  %6481 = add nsw i32 %6480, 9
  %6482 = sext i32 %6481 to i64
  %6483 = getelementptr inbounds i8, ptr %6479, i64 %6482
  %6484 = load i8, ptr %6483, align 1, !tbaa !16
  %6485 = zext i8 %6484 to i32
  %6486 = load ptr, ptr %14, align 8, !tbaa !5
  %6487 = load i32, ptr %15, align 4, !tbaa !14
  %6488 = sext i32 %6487 to i64
  %6489 = getelementptr inbounds ptr, ptr %6486, i64 %6488
  %6490 = load ptr, ptr %6489, align 8, !tbaa !5
  %6491 = load i32, ptr %16, align 4, !tbaa !14
  %6492 = add nsw i32 %6491, 9
  %6493 = sext i32 %6492 to i64
  %6494 = getelementptr inbounds i8, ptr %6490, i64 %6493
  %6495 = load i8, ptr %6494, align 1, !tbaa !16
  %6496 = zext i8 %6495 to i32
  %6497 = sub nsw i32 %6485, %6496
  br label %6499

6498:                                             ; preds = %6433
  br label %6499

6499:                                             ; preds = %6498, %6474
  %6500 = phi i32 [ %6497, %6474 ], [ 255, %6498 ]
  %6501 = trunc i32 %6500 to i8
  %6502 = load ptr, ptr %6, align 8, !tbaa !5
  %6503 = getelementptr inbounds %struct.MImage, ptr %6502, i32 0, i32 3
  %6504 = load i32, ptr %12, align 4, !tbaa !14
  %6505 = sext i32 %6504 to i64
  %6506 = getelementptr inbounds [4 x ptr], ptr %6503, i64 0, i64 %6505
  %6507 = load ptr, ptr %6506, align 8, !tbaa !5
  %6508 = load i32, ptr %15, align 4, !tbaa !14
  %6509 = sext i32 %6508 to i64
  %6510 = getelementptr inbounds ptr, ptr %6507, i64 %6509
  %6511 = load ptr, ptr %6510, align 8, !tbaa !5
  %6512 = load i32, ptr %16, align 4, !tbaa !14
  %6513 = add nsw i32 %6512, 9
  %6514 = sext i32 %6513 to i64
  %6515 = getelementptr inbounds i8, ptr %6511, i64 %6514
  store i8 %6501, ptr %6515, align 1, !tbaa !16
  %6516 = load ptr, ptr %13, align 8, !tbaa !5
  %6517 = load i32, ptr %15, align 4, !tbaa !14
  %6518 = sext i32 %6517 to i64
  %6519 = getelementptr inbounds ptr, ptr %6516, i64 %6518
  %6520 = load ptr, ptr %6519, align 8, !tbaa !5
  %6521 = load i32, ptr %16, align 4, !tbaa !14
  %6522 = add nsw i32 %6521, 10
  %6523 = sext i32 %6522 to i64
  %6524 = getelementptr inbounds i8, ptr %6520, i64 %6523
  %6525 = load i8, ptr %6524, align 1, !tbaa !16
  %6526 = zext i8 %6525 to i32
  %6527 = load ptr, ptr %14, align 8, !tbaa !5
  %6528 = load i32, ptr %15, align 4, !tbaa !14
  %6529 = sext i32 %6528 to i64
  %6530 = getelementptr inbounds ptr, ptr %6527, i64 %6529
  %6531 = load ptr, ptr %6530, align 8, !tbaa !5
  %6532 = load i32, ptr %16, align 4, !tbaa !14
  %6533 = add nsw i32 %6532, 10
  %6534 = sext i32 %6533 to i64
  %6535 = getelementptr inbounds i8, ptr %6531, i64 %6534
  %6536 = load i8, ptr %6535, align 1, !tbaa !16
  %6537 = zext i8 %6536 to i32
  %6538 = sub nsw i32 %6526, %6537
  %6539 = icmp slt i32 %6538, 255
  br i1 %6539, label %6540, label %6564

6540:                                             ; preds = %6499
  %6541 = load ptr, ptr %13, align 8, !tbaa !5
  %6542 = load i32, ptr %15, align 4, !tbaa !14
  %6543 = sext i32 %6542 to i64
  %6544 = getelementptr inbounds ptr, ptr %6541, i64 %6543
  %6545 = load ptr, ptr %6544, align 8, !tbaa !5
  %6546 = load i32, ptr %16, align 4, !tbaa !14
  %6547 = add nsw i32 %6546, 10
  %6548 = sext i32 %6547 to i64
  %6549 = getelementptr inbounds i8, ptr %6545, i64 %6548
  %6550 = load i8, ptr %6549, align 1, !tbaa !16
  %6551 = zext i8 %6550 to i32
  %6552 = load ptr, ptr %14, align 8, !tbaa !5
  %6553 = load i32, ptr %15, align 4, !tbaa !14
  %6554 = sext i32 %6553 to i64
  %6555 = getelementptr inbounds ptr, ptr %6552, i64 %6554
  %6556 = load ptr, ptr %6555, align 8, !tbaa !5
  %6557 = load i32, ptr %16, align 4, !tbaa !14
  %6558 = add nsw i32 %6557, 10
  %6559 = sext i32 %6558 to i64
  %6560 = getelementptr inbounds i8, ptr %6556, i64 %6559
  %6561 = load i8, ptr %6560, align 1, !tbaa !16
  %6562 = zext i8 %6561 to i32
  %6563 = sub nsw i32 %6551, %6562
  br label %6565

6564:                                             ; preds = %6499
  br label %6565

6565:                                             ; preds = %6564, %6540
  %6566 = phi i32 [ %6563, %6540 ], [ 255, %6564 ]
  %6567 = trunc i32 %6566 to i8
  %6568 = load ptr, ptr %6, align 8, !tbaa !5
  %6569 = getelementptr inbounds %struct.MImage, ptr %6568, i32 0, i32 3
  %6570 = load i32, ptr %12, align 4, !tbaa !14
  %6571 = sext i32 %6570 to i64
  %6572 = getelementptr inbounds [4 x ptr], ptr %6569, i64 0, i64 %6571
  %6573 = load ptr, ptr %6572, align 8, !tbaa !5
  %6574 = load i32, ptr %15, align 4, !tbaa !14
  %6575 = sext i32 %6574 to i64
  %6576 = getelementptr inbounds ptr, ptr %6573, i64 %6575
  %6577 = load ptr, ptr %6576, align 8, !tbaa !5
  %6578 = load i32, ptr %16, align 4, !tbaa !14
  %6579 = add nsw i32 %6578, 10
  %6580 = sext i32 %6579 to i64
  %6581 = getelementptr inbounds i8, ptr %6577, i64 %6580
  store i8 %6567, ptr %6581, align 1, !tbaa !16
  %6582 = load ptr, ptr %13, align 8, !tbaa !5
  %6583 = load i32, ptr %15, align 4, !tbaa !14
  %6584 = sext i32 %6583 to i64
  %6585 = getelementptr inbounds ptr, ptr %6582, i64 %6584
  %6586 = load ptr, ptr %6585, align 8, !tbaa !5
  %6587 = load i32, ptr %16, align 4, !tbaa !14
  %6588 = add nsw i32 %6587, 11
  %6589 = sext i32 %6588 to i64
  %6590 = getelementptr inbounds i8, ptr %6586, i64 %6589
  %6591 = load i8, ptr %6590, align 1, !tbaa !16
  %6592 = zext i8 %6591 to i32
  %6593 = load ptr, ptr %14, align 8, !tbaa !5
  %6594 = load i32, ptr %15, align 4, !tbaa !14
  %6595 = sext i32 %6594 to i64
  %6596 = getelementptr inbounds ptr, ptr %6593, i64 %6595
  %6597 = load ptr, ptr %6596, align 8, !tbaa !5
  %6598 = load i32, ptr %16, align 4, !tbaa !14
  %6599 = add nsw i32 %6598, 11
  %6600 = sext i32 %6599 to i64
  %6601 = getelementptr inbounds i8, ptr %6597, i64 %6600
  %6602 = load i8, ptr %6601, align 1, !tbaa !16
  %6603 = zext i8 %6602 to i32
  %6604 = sub nsw i32 %6592, %6603
  %6605 = icmp slt i32 %6604, 255
  br i1 %6605, label %6606, label %6630

6606:                                             ; preds = %6565
  %6607 = load ptr, ptr %13, align 8, !tbaa !5
  %6608 = load i32, ptr %15, align 4, !tbaa !14
  %6609 = sext i32 %6608 to i64
  %6610 = getelementptr inbounds ptr, ptr %6607, i64 %6609
  %6611 = load ptr, ptr %6610, align 8, !tbaa !5
  %6612 = load i32, ptr %16, align 4, !tbaa !14
  %6613 = add nsw i32 %6612, 11
  %6614 = sext i32 %6613 to i64
  %6615 = getelementptr inbounds i8, ptr %6611, i64 %6614
  %6616 = load i8, ptr %6615, align 1, !tbaa !16
  %6617 = zext i8 %6616 to i32
  %6618 = load ptr, ptr %14, align 8, !tbaa !5
  %6619 = load i32, ptr %15, align 4, !tbaa !14
  %6620 = sext i32 %6619 to i64
  %6621 = getelementptr inbounds ptr, ptr %6618, i64 %6620
  %6622 = load ptr, ptr %6621, align 8, !tbaa !5
  %6623 = load i32, ptr %16, align 4, !tbaa !14
  %6624 = add nsw i32 %6623, 11
  %6625 = sext i32 %6624 to i64
  %6626 = getelementptr inbounds i8, ptr %6622, i64 %6625
  %6627 = load i8, ptr %6626, align 1, !tbaa !16
  %6628 = zext i8 %6627 to i32
  %6629 = sub nsw i32 %6617, %6628
  br label %6631

6630:                                             ; preds = %6565
  br label %6631

6631:                                             ; preds = %6630, %6606
  %6632 = phi i32 [ %6629, %6606 ], [ 255, %6630 ]
  %6633 = trunc i32 %6632 to i8
  %6634 = load ptr, ptr %6, align 8, !tbaa !5
  %6635 = getelementptr inbounds %struct.MImage, ptr %6634, i32 0, i32 3
  %6636 = load i32, ptr %12, align 4, !tbaa !14
  %6637 = sext i32 %6636 to i64
  %6638 = getelementptr inbounds [4 x ptr], ptr %6635, i64 0, i64 %6637
  %6639 = load ptr, ptr %6638, align 8, !tbaa !5
  %6640 = load i32, ptr %15, align 4, !tbaa !14
  %6641 = sext i32 %6640 to i64
  %6642 = getelementptr inbounds ptr, ptr %6639, i64 %6641
  %6643 = load ptr, ptr %6642, align 8, !tbaa !5
  %6644 = load i32, ptr %16, align 4, !tbaa !14
  %6645 = add nsw i32 %6644, 11
  %6646 = sext i32 %6645 to i64
  %6647 = getelementptr inbounds i8, ptr %6643, i64 %6646
  store i8 %6633, ptr %6647, align 1, !tbaa !16
  br label %9447

6648:                                             ; preds = %5848
  %6649 = load ptr, ptr %6, align 8, !tbaa !5
  %6650 = getelementptr inbounds %struct.MImage, ptr %6649, i32 0, i32 2
  %6651 = load i32, ptr %6650, align 8, !tbaa !13
  %6652 = load i32, ptr %16, align 4, !tbaa !14
  %6653 = sub nsw i32 %6651, %6652
  %6654 = icmp eq i32 %6653, 13
  br i1 %6654, label %6655, label %7514

6655:                                             ; preds = %6648
  %6656 = load ptr, ptr %13, align 8, !tbaa !5
  %6657 = load i32, ptr %15, align 4, !tbaa !14
  %6658 = sext i32 %6657 to i64
  %6659 = getelementptr inbounds ptr, ptr %6656, i64 %6658
  %6660 = load ptr, ptr %6659, align 8, !tbaa !5
  %6661 = load i32, ptr %16, align 4, !tbaa !14
  %6662 = add nsw i32 %6661, 0
  %6663 = sext i32 %6662 to i64
  %6664 = getelementptr inbounds i8, ptr %6660, i64 %6663
  %6665 = load i8, ptr %6664, align 1, !tbaa !16
  %6666 = zext i8 %6665 to i32
  %6667 = load ptr, ptr %14, align 8, !tbaa !5
  %6668 = load i32, ptr %15, align 4, !tbaa !14
  %6669 = sext i32 %6668 to i64
  %6670 = getelementptr inbounds ptr, ptr %6667, i64 %6669
  %6671 = load ptr, ptr %6670, align 8, !tbaa !5
  %6672 = load i32, ptr %16, align 4, !tbaa !14
  %6673 = add nsw i32 %6672, 0
  %6674 = sext i32 %6673 to i64
  %6675 = getelementptr inbounds i8, ptr %6671, i64 %6674
  %6676 = load i8, ptr %6675, align 1, !tbaa !16
  %6677 = zext i8 %6676 to i32
  %6678 = sub nsw i32 %6666, %6677
  %6679 = icmp slt i32 %6678, 255
  br i1 %6679, label %6680, label %6704

6680:                                             ; preds = %6655
  %6681 = load ptr, ptr %13, align 8, !tbaa !5
  %6682 = load i32, ptr %15, align 4, !tbaa !14
  %6683 = sext i32 %6682 to i64
  %6684 = getelementptr inbounds ptr, ptr %6681, i64 %6683
  %6685 = load ptr, ptr %6684, align 8, !tbaa !5
  %6686 = load i32, ptr %16, align 4, !tbaa !14
  %6687 = add nsw i32 %6686, 0
  %6688 = sext i32 %6687 to i64
  %6689 = getelementptr inbounds i8, ptr %6685, i64 %6688
  %6690 = load i8, ptr %6689, align 1, !tbaa !16
  %6691 = zext i8 %6690 to i32
  %6692 = load ptr, ptr %14, align 8, !tbaa !5
  %6693 = load i32, ptr %15, align 4, !tbaa !14
  %6694 = sext i32 %6693 to i64
  %6695 = getelementptr inbounds ptr, ptr %6692, i64 %6694
  %6696 = load ptr, ptr %6695, align 8, !tbaa !5
  %6697 = load i32, ptr %16, align 4, !tbaa !14
  %6698 = add nsw i32 %6697, 0
  %6699 = sext i32 %6698 to i64
  %6700 = getelementptr inbounds i8, ptr %6696, i64 %6699
  %6701 = load i8, ptr %6700, align 1, !tbaa !16
  %6702 = zext i8 %6701 to i32
  %6703 = sub nsw i32 %6691, %6702
  br label %6705

6704:                                             ; preds = %6655
  br label %6705

6705:                                             ; preds = %6704, %6680
  %6706 = phi i32 [ %6703, %6680 ], [ 255, %6704 ]
  %6707 = trunc i32 %6706 to i8
  %6708 = load ptr, ptr %6, align 8, !tbaa !5
  %6709 = getelementptr inbounds %struct.MImage, ptr %6708, i32 0, i32 3
  %6710 = load i32, ptr %12, align 4, !tbaa !14
  %6711 = sext i32 %6710 to i64
  %6712 = getelementptr inbounds [4 x ptr], ptr %6709, i64 0, i64 %6711
  %6713 = load ptr, ptr %6712, align 8, !tbaa !5
  %6714 = load i32, ptr %15, align 4, !tbaa !14
  %6715 = sext i32 %6714 to i64
  %6716 = getelementptr inbounds ptr, ptr %6713, i64 %6715
  %6717 = load ptr, ptr %6716, align 8, !tbaa !5
  %6718 = load i32, ptr %16, align 4, !tbaa !14
  %6719 = add nsw i32 %6718, 0
  %6720 = sext i32 %6719 to i64
  %6721 = getelementptr inbounds i8, ptr %6717, i64 %6720
  store i8 %6707, ptr %6721, align 1, !tbaa !16
  %6722 = load ptr, ptr %13, align 8, !tbaa !5
  %6723 = load i32, ptr %15, align 4, !tbaa !14
  %6724 = sext i32 %6723 to i64
  %6725 = getelementptr inbounds ptr, ptr %6722, i64 %6724
  %6726 = load ptr, ptr %6725, align 8, !tbaa !5
  %6727 = load i32, ptr %16, align 4, !tbaa !14
  %6728 = add nsw i32 %6727, 1
  %6729 = sext i32 %6728 to i64
  %6730 = getelementptr inbounds i8, ptr %6726, i64 %6729
  %6731 = load i8, ptr %6730, align 1, !tbaa !16
  %6732 = zext i8 %6731 to i32
  %6733 = load ptr, ptr %14, align 8, !tbaa !5
  %6734 = load i32, ptr %15, align 4, !tbaa !14
  %6735 = sext i32 %6734 to i64
  %6736 = getelementptr inbounds ptr, ptr %6733, i64 %6735
  %6737 = load ptr, ptr %6736, align 8, !tbaa !5
  %6738 = load i32, ptr %16, align 4, !tbaa !14
  %6739 = add nsw i32 %6738, 1
  %6740 = sext i32 %6739 to i64
  %6741 = getelementptr inbounds i8, ptr %6737, i64 %6740
  %6742 = load i8, ptr %6741, align 1, !tbaa !16
  %6743 = zext i8 %6742 to i32
  %6744 = sub nsw i32 %6732, %6743
  %6745 = icmp slt i32 %6744, 255
  br i1 %6745, label %6746, label %6770

6746:                                             ; preds = %6705
  %6747 = load ptr, ptr %13, align 8, !tbaa !5
  %6748 = load i32, ptr %15, align 4, !tbaa !14
  %6749 = sext i32 %6748 to i64
  %6750 = getelementptr inbounds ptr, ptr %6747, i64 %6749
  %6751 = load ptr, ptr %6750, align 8, !tbaa !5
  %6752 = load i32, ptr %16, align 4, !tbaa !14
  %6753 = add nsw i32 %6752, 1
  %6754 = sext i32 %6753 to i64
  %6755 = getelementptr inbounds i8, ptr %6751, i64 %6754
  %6756 = load i8, ptr %6755, align 1, !tbaa !16
  %6757 = zext i8 %6756 to i32
  %6758 = load ptr, ptr %14, align 8, !tbaa !5
  %6759 = load i32, ptr %15, align 4, !tbaa !14
  %6760 = sext i32 %6759 to i64
  %6761 = getelementptr inbounds ptr, ptr %6758, i64 %6760
  %6762 = load ptr, ptr %6761, align 8, !tbaa !5
  %6763 = load i32, ptr %16, align 4, !tbaa !14
  %6764 = add nsw i32 %6763, 1
  %6765 = sext i32 %6764 to i64
  %6766 = getelementptr inbounds i8, ptr %6762, i64 %6765
  %6767 = load i8, ptr %6766, align 1, !tbaa !16
  %6768 = zext i8 %6767 to i32
  %6769 = sub nsw i32 %6757, %6768
  br label %6771

6770:                                             ; preds = %6705
  br label %6771

6771:                                             ; preds = %6770, %6746
  %6772 = phi i32 [ %6769, %6746 ], [ 255, %6770 ]
  %6773 = trunc i32 %6772 to i8
  %6774 = load ptr, ptr %6, align 8, !tbaa !5
  %6775 = getelementptr inbounds %struct.MImage, ptr %6774, i32 0, i32 3
  %6776 = load i32, ptr %12, align 4, !tbaa !14
  %6777 = sext i32 %6776 to i64
  %6778 = getelementptr inbounds [4 x ptr], ptr %6775, i64 0, i64 %6777
  %6779 = load ptr, ptr %6778, align 8, !tbaa !5
  %6780 = load i32, ptr %15, align 4, !tbaa !14
  %6781 = sext i32 %6780 to i64
  %6782 = getelementptr inbounds ptr, ptr %6779, i64 %6781
  %6783 = load ptr, ptr %6782, align 8, !tbaa !5
  %6784 = load i32, ptr %16, align 4, !tbaa !14
  %6785 = add nsw i32 %6784, 1
  %6786 = sext i32 %6785 to i64
  %6787 = getelementptr inbounds i8, ptr %6783, i64 %6786
  store i8 %6773, ptr %6787, align 1, !tbaa !16
  %6788 = load ptr, ptr %13, align 8, !tbaa !5
  %6789 = load i32, ptr %15, align 4, !tbaa !14
  %6790 = sext i32 %6789 to i64
  %6791 = getelementptr inbounds ptr, ptr %6788, i64 %6790
  %6792 = load ptr, ptr %6791, align 8, !tbaa !5
  %6793 = load i32, ptr %16, align 4, !tbaa !14
  %6794 = add nsw i32 %6793, 2
  %6795 = sext i32 %6794 to i64
  %6796 = getelementptr inbounds i8, ptr %6792, i64 %6795
  %6797 = load i8, ptr %6796, align 1, !tbaa !16
  %6798 = zext i8 %6797 to i32
  %6799 = load ptr, ptr %14, align 8, !tbaa !5
  %6800 = load i32, ptr %15, align 4, !tbaa !14
  %6801 = sext i32 %6800 to i64
  %6802 = getelementptr inbounds ptr, ptr %6799, i64 %6801
  %6803 = load ptr, ptr %6802, align 8, !tbaa !5
  %6804 = load i32, ptr %16, align 4, !tbaa !14
  %6805 = add nsw i32 %6804, 2
  %6806 = sext i32 %6805 to i64
  %6807 = getelementptr inbounds i8, ptr %6803, i64 %6806
  %6808 = load i8, ptr %6807, align 1, !tbaa !16
  %6809 = zext i8 %6808 to i32
  %6810 = sub nsw i32 %6798, %6809
  %6811 = icmp slt i32 %6810, 255
  br i1 %6811, label %6812, label %6836

6812:                                             ; preds = %6771
  %6813 = load ptr, ptr %13, align 8, !tbaa !5
  %6814 = load i32, ptr %15, align 4, !tbaa !14
  %6815 = sext i32 %6814 to i64
  %6816 = getelementptr inbounds ptr, ptr %6813, i64 %6815
  %6817 = load ptr, ptr %6816, align 8, !tbaa !5
  %6818 = load i32, ptr %16, align 4, !tbaa !14
  %6819 = add nsw i32 %6818, 2
  %6820 = sext i32 %6819 to i64
  %6821 = getelementptr inbounds i8, ptr %6817, i64 %6820
  %6822 = load i8, ptr %6821, align 1, !tbaa !16
  %6823 = zext i8 %6822 to i32
  %6824 = load ptr, ptr %14, align 8, !tbaa !5
  %6825 = load i32, ptr %15, align 4, !tbaa !14
  %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 %16, align 4, !tbaa !14
  %6830 = add nsw i32 %6829, 2
  %6831 = sext i32 %6830 to i64
  %6832 = getelementptr inbounds i8, ptr %6828, i64 %6831
  %6833 = load i8, ptr %6832, align 1, !tbaa !16
  %6834 = zext i8 %6833 to i32
  %6835 = sub nsw i32 %6823, %6834
  br label %6837

6836:                                             ; preds = %6771
  br label %6837

6837:                                             ; preds = %6836, %6812
  %6838 = phi i32 [ %6835, %6812 ], [ 255, %6836 ]
  %6839 = trunc i32 %6838 to i8
  %6840 = load ptr, ptr %6, align 8, !tbaa !5
  %6841 = getelementptr inbounds %struct.MImage, ptr %6840, i32 0, i32 3
  %6842 = load i32, ptr %12, align 4, !tbaa !14
  %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 %15, align 4, !tbaa !14
  %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 %16, align 4, !tbaa !14
  %6851 = add nsw i32 %6850, 2
  %6852 = sext i32 %6851 to i64
  %6853 = getelementptr inbounds i8, ptr %6849, i64 %6852
  store i8 %6839, ptr %6853, align 1, !tbaa !16
  %6854 = load ptr, ptr %13, align 8, !tbaa !5
  %6855 = load i32, ptr %15, align 4, !tbaa !14
  %6856 = sext i32 %6855 to i64
  %6857 = getelementptr inbounds ptr, ptr %6854, i64 %6856
  %6858 = load ptr, ptr %6857, align 8, !tbaa !5
  %6859 = load i32, ptr %16, align 4, !tbaa !14
  %6860 = add nsw i32 %6859, 3
  %6861 = sext i32 %6860 to i64
  %6862 = getelementptr inbounds i8, ptr %6858, i64 %6861
  %6863 = load i8, ptr %6862, align 1, !tbaa !16
  %6864 = zext i8 %6863 to i32
  %6865 = load ptr, ptr %14, align 8, !tbaa !5
  %6866 = load i32, ptr %15, align 4, !tbaa !14
  %6867 = sext i32 %6866 to i64
  %6868 = getelementptr inbounds ptr, ptr %6865, i64 %6867
  %6869 = load ptr, ptr %6868, align 8, !tbaa !5
  %6870 = load i32, ptr %16, align 4, !tbaa !14
  %6871 = add nsw i32 %6870, 3
  %6872 = sext i32 %6871 to i64
  %6873 = getelementptr inbounds i8, ptr %6869, i64 %6872
  %6874 = load i8, ptr %6873, align 1, !tbaa !16
  %6875 = zext i8 %6874 to i32
  %6876 = sub nsw i32 %6864, %6875
  %6877 = icmp slt i32 %6876, 255
  br i1 %6877, label %6878, label %6902

6878:                                             ; preds = %6837
  %6879 = load ptr, ptr %13, align 8, !tbaa !5
  %6880 = load i32, ptr %15, align 4, !tbaa !14
  %6881 = sext i32 %6880 to i64
  %6882 = getelementptr inbounds ptr, ptr %6879, i64 %6881
  %6883 = load ptr, ptr %6882, align 8, !tbaa !5
  %6884 = load i32, ptr %16, align 4, !tbaa !14
  %6885 = add nsw i32 %6884, 3
  %6886 = sext i32 %6885 to i64
  %6887 = getelementptr inbounds i8, ptr %6883, i64 %6886
  %6888 = load i8, ptr %6887, align 1, !tbaa !16
  %6889 = zext i8 %6888 to i32
  %6890 = load ptr, ptr %14, align 8, !tbaa !5
  %6891 = load i32, ptr %15, align 4, !tbaa !14
  %6892 = sext i32 %6891 to i64
  %6893 = getelementptr inbounds ptr, ptr %6890, i64 %6892
  %6894 = load ptr, ptr %6893, align 8, !tbaa !5
  %6895 = load i32, ptr %16, align 4, !tbaa !14
  %6896 = add nsw i32 %6895, 3
  %6897 = sext i32 %6896 to i64
  %6898 = getelementptr inbounds i8, ptr %6894, i64 %6897
  %6899 = load i8, ptr %6898, align 1, !tbaa !16
  %6900 = zext i8 %6899 to i32
  %6901 = sub nsw i32 %6889, %6900
  br label %6903

6902:                                             ; preds = %6837
  br label %6903

6903:                                             ; preds = %6902, %6878
  %6904 = phi i32 [ %6901, %6878 ], [ 255, %6902 ]
  %6905 = trunc i32 %6904 to i8
  %6906 = load ptr, ptr %6, align 8, !tbaa !5
  %6907 = getelementptr inbounds %struct.MImage, ptr %6906, i32 0, i32 3
  %6908 = load i32, ptr %12, align 4, !tbaa !14
  %6909 = sext i32 %6908 to i64
  %6910 = getelementptr inbounds [4 x ptr], ptr %6907, i64 0, i64 %6909
  %6911 = load ptr, ptr %6910, align 8, !tbaa !5
  %6912 = load i32, ptr %15, align 4, !tbaa !14
  %6913 = sext i32 %6912 to i64
  %6914 = getelementptr inbounds ptr, ptr %6911, i64 %6913
  %6915 = load ptr, ptr %6914, align 8, !tbaa !5
  %6916 = load i32, ptr %16, align 4, !tbaa !14
  %6917 = add nsw i32 %6916, 3
  %6918 = sext i32 %6917 to i64
  %6919 = getelementptr inbounds i8, ptr %6915, i64 %6918
  store i8 %6905, ptr %6919, align 1, !tbaa !16
  %6920 = load ptr, ptr %13, align 8, !tbaa !5
  %6921 = load i32, ptr %15, align 4, !tbaa !14
  %6922 = sext i32 %6921 to i64
  %6923 = getelementptr inbounds ptr, ptr %6920, i64 %6922
  %6924 = load ptr, ptr %6923, align 8, !tbaa !5
  %6925 = load i32, ptr %16, align 4, !tbaa !14
  %6926 = add nsw i32 %6925, 4
  %6927 = sext i32 %6926 to i64
  %6928 = getelementptr inbounds i8, ptr %6924, i64 %6927
  %6929 = load i8, ptr %6928, align 1, !tbaa !16
  %6930 = zext i8 %6929 to i32
  %6931 = load ptr, ptr %14, align 8, !tbaa !5
  %6932 = load i32, ptr %15, align 4, !tbaa !14
  %6933 = sext i32 %6932 to i64
  %6934 = getelementptr inbounds ptr, ptr %6931, i64 %6933
  %6935 = load ptr, ptr %6934, align 8, !tbaa !5
  %6936 = load i32, ptr %16, align 4, !tbaa !14
  %6937 = add nsw i32 %6936, 4
  %6938 = sext i32 %6937 to i64
  %6939 = getelementptr inbounds i8, ptr %6935, i64 %6938
  %6940 = load i8, ptr %6939, align 1, !tbaa !16
  %6941 = zext i8 %6940 to i32
  %6942 = sub nsw i32 %6930, %6941
  %6943 = icmp slt i32 %6942, 255
  br i1 %6943, label %6944, label %6968

6944:                                             ; preds = %6903
  %6945 = load ptr, ptr %13, align 8, !tbaa !5
  %6946 = load i32, ptr %15, align 4, !tbaa !14
  %6947 = sext i32 %6946 to i64
  %6948 = getelementptr inbounds ptr, ptr %6945, i64 %6947
  %6949 = load ptr, ptr %6948, align 8, !tbaa !5
  %6950 = load i32, ptr %16, align 4, !tbaa !14
  %6951 = add nsw i32 %6950, 4
  %6952 = sext i32 %6951 to i64
  %6953 = getelementptr inbounds i8, ptr %6949, i64 %6952
  %6954 = load i8, ptr %6953, align 1, !tbaa !16
  %6955 = zext i8 %6954 to i32
  %6956 = load ptr, ptr %14, align 8, !tbaa !5
  %6957 = load i32, ptr %15, align 4, !tbaa !14
  %6958 = sext i32 %6957 to i64
  %6959 = getelementptr inbounds ptr, ptr %6956, i64 %6958
  %6960 = load ptr, ptr %6959, align 8, !tbaa !5
  %6961 = load i32, ptr %16, align 4, !tbaa !14
  %6962 = add nsw i32 %6961, 4
  %6963 = sext i32 %6962 to i64
  %6964 = getelementptr inbounds i8, ptr %6960, i64 %6963
  %6965 = load i8, ptr %6964, align 1, !tbaa !16
  %6966 = zext i8 %6965 to i32
  %6967 = sub nsw i32 %6955, %6966
  br label %6969

6968:                                             ; preds = %6903
  br label %6969

6969:                                             ; preds = %6968, %6944
  %6970 = phi i32 [ %6967, %6944 ], [ 255, %6968 ]
  %6971 = trunc i32 %6970 to i8
  %6972 = load ptr, ptr %6, align 8, !tbaa !5
  %6973 = getelementptr inbounds %struct.MImage, ptr %6972, i32 0, i32 3
  %6974 = load i32, ptr %12, align 4, !tbaa !14
  %6975 = sext i32 %6974 to i64
  %6976 = getelementptr inbounds [4 x ptr], ptr %6973, i64 0, i64 %6975
  %6977 = load ptr, ptr %6976, align 8, !tbaa !5
  %6978 = load i32, ptr %15, align 4, !tbaa !14
  %6979 = sext i32 %6978 to i64
  %6980 = getelementptr inbounds ptr, ptr %6977, i64 %6979
  %6981 = load ptr, ptr %6980, align 8, !tbaa !5
  %6982 = load i32, ptr %16, align 4, !tbaa !14
  %6983 = add nsw i32 %6982, 4
  %6984 = sext i32 %6983 to i64
  %6985 = getelementptr inbounds i8, ptr %6981, i64 %6984
  store i8 %6971, ptr %6985, align 1, !tbaa !16
  %6986 = load ptr, ptr %13, align 8, !tbaa !5
  %6987 = load i32, ptr %15, align 4, !tbaa !14
  %6988 = sext i32 %6987 to i64
  %6989 = getelementptr inbounds ptr, ptr %6986, i64 %6988
  %6990 = load ptr, ptr %6989, align 8, !tbaa !5
  %6991 = load i32, ptr %16, align 4, !tbaa !14
  %6992 = add nsw i32 %6991, 5
  %6993 = sext i32 %6992 to i64
  %6994 = getelementptr inbounds i8, ptr %6990, i64 %6993
  %6995 = load i8, ptr %6994, align 1, !tbaa !16
  %6996 = zext i8 %6995 to i32
  %6997 = load ptr, ptr %14, align 8, !tbaa !5
  %6998 = load i32, ptr %15, align 4, !tbaa !14
  %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 %16, align 4, !tbaa !14
  %7003 = add nsw i32 %7002, 5
  %7004 = sext i32 %7003 to i64
  %7005 = getelementptr inbounds i8, ptr %7001, i64 %7004
  %7006 = load i8, ptr %7005, align 1, !tbaa !16
  %7007 = zext i8 %7006 to i32
  %7008 = sub nsw i32 %6996, %7007
  %7009 = icmp slt i32 %7008, 255
  br i1 %7009, label %7010, label %7034

7010:                                             ; preds = %6969
  %7011 = load ptr, ptr %13, align 8, !tbaa !5
  %7012 = load i32, ptr %15, align 4, !tbaa !14
  %7013 = sext i32 %7012 to i64
  %7014 = getelementptr inbounds ptr, ptr %7011, i64 %7013
  %7015 = load ptr, ptr %7014, align 8, !tbaa !5
  %7016 = load i32, ptr %16, align 4, !tbaa !14
  %7017 = add nsw i32 %7016, 5
  %7018 = sext i32 %7017 to i64
  %7019 = getelementptr inbounds i8, ptr %7015, i64 %7018
  %7020 = load i8, ptr %7019, align 1, !tbaa !16
  %7021 = zext i8 %7020 to i32
  %7022 = load ptr, ptr %14, align 8, !tbaa !5
  %7023 = load i32, ptr %15, align 4, !tbaa !14
  %7024 = sext i32 %7023 to i64
  %7025 = getelementptr inbounds ptr, ptr %7022, i64 %7024
  %7026 = load ptr, ptr %7025, align 8, !tbaa !5
  %7027 = load i32, ptr %16, align 4, !tbaa !14
  %7028 = add nsw i32 %7027, 5
  %7029 = sext i32 %7028 to i64
  %7030 = getelementptr inbounds i8, ptr %7026, i64 %7029
  %7031 = load i8, ptr %7030, align 1, !tbaa !16
  %7032 = zext i8 %7031 to i32
  %7033 = sub nsw i32 %7021, %7032
  br label %7035

7034:                                             ; preds = %6969
  br label %7035

7035:                                             ; preds = %7034, %7010
  %7036 = phi i32 [ %7033, %7010 ], [ 255, %7034 ]
  %7037 = trunc i32 %7036 to i8
  %7038 = load ptr, ptr %6, align 8, !tbaa !5
  %7039 = getelementptr inbounds %struct.MImage, ptr %7038, i32 0, i32 3
  %7040 = load i32, ptr %12, align 4, !tbaa !14
  %7041 = sext i32 %7040 to i64
  %7042 = getelementptr inbounds [4 x ptr], ptr %7039, i64 0, i64 %7041
  %7043 = load ptr, ptr %7042, align 8, !tbaa !5
  %7044 = load i32, ptr %15, align 4, !tbaa !14
  %7045 = sext i32 %7044 to i64
  %7046 = getelementptr inbounds ptr, ptr %7043, i64 %7045
  %7047 = load ptr, ptr %7046, align 8, !tbaa !5
  %7048 = load i32, ptr %16, align 4, !tbaa !14
  %7049 = add nsw i32 %7048, 5
  %7050 = sext i32 %7049 to i64
  %7051 = getelementptr inbounds i8, ptr %7047, i64 %7050
  store i8 %7037, ptr %7051, align 1, !tbaa !16
  %7052 = load ptr, ptr %13, align 8, !tbaa !5
  %7053 = load i32, ptr %15, align 4, !tbaa !14
  %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 %16, align 4, !tbaa !14
  %7058 = add nsw i32 %7057, 6
  %7059 = sext i32 %7058 to i64
  %7060 = getelementptr inbounds i8, ptr %7056, i64 %7059
  %7061 = load i8, ptr %7060, align 1, !tbaa !16
  %7062 = zext i8 %7061 to i32
  %7063 = load ptr, ptr %14, align 8, !tbaa !5
  %7064 = load i32, ptr %15, align 4, !tbaa !14
  %7065 = sext i32 %7064 to i64
  %7066 = getelementptr inbounds ptr, ptr %7063, i64 %7065
  %7067 = load ptr, ptr %7066, align 8, !tbaa !5
  %7068 = load i32, ptr %16, align 4, !tbaa !14
  %7069 = add nsw i32 %7068, 6
  %7070 = sext i32 %7069 to i64
  %7071 = getelementptr inbounds i8, ptr %7067, i64 %7070
  %7072 = load i8, ptr %7071, align 1, !tbaa !16
  %7073 = zext i8 %7072 to i32
  %7074 = sub nsw i32 %7062, %7073
  %7075 = icmp slt i32 %7074, 255
  br i1 %7075, label %7076, label %7100

7076:                                             ; preds = %7035
  %7077 = load ptr, ptr %13, align 8, !tbaa !5
  %7078 = load i32, ptr %15, align 4, !tbaa !14
  %7079 = sext i32 %7078 to i64
  %7080 = getelementptr inbounds ptr, ptr %7077, i64 %7079
  %7081 = load ptr, ptr %7080, align 8, !tbaa !5
  %7082 = load i32, ptr %16, align 4, !tbaa !14
  %7083 = add nsw i32 %7082, 6
  %7084 = sext i32 %7083 to i64
  %7085 = getelementptr inbounds i8, ptr %7081, i64 %7084
  %7086 = load i8, ptr %7085, align 1, !tbaa !16
  %7087 = zext i8 %7086 to i32
  %7088 = load ptr, ptr %14, align 8, !tbaa !5
  %7089 = load i32, ptr %15, align 4, !tbaa !14
  %7090 = sext i32 %7089 to i64
  %7091 = getelementptr inbounds ptr, ptr %7088, i64 %7090
  %7092 = load ptr, ptr %7091, align 8, !tbaa !5
  %7093 = load i32, ptr %16, align 4, !tbaa !14
  %7094 = add nsw i32 %7093, 6
  %7095 = sext i32 %7094 to i64
  %7096 = getelementptr inbounds i8, ptr %7092, i64 %7095
  %7097 = load i8, ptr %7096, align 1, !tbaa !16
  %7098 = zext i8 %7097 to i32
  %7099 = sub nsw i32 %7087, %7098
  br label %7101

7100:                                             ; preds = %7035
  br label %7101

7101:                                             ; preds = %7100, %7076
  %7102 = phi i32 [ %7099, %7076 ], [ 255, %7100 ]
  %7103 = trunc i32 %7102 to i8
  %7104 = load ptr, ptr %6, align 8, !tbaa !5
  %7105 = getelementptr inbounds %struct.MImage, ptr %7104, i32 0, i32 3
  %7106 = load i32, ptr %12, align 4, !tbaa !14
  %7107 = sext i32 %7106 to i64
  %7108 = getelementptr inbounds [4 x ptr], ptr %7105, i64 0, i64 %7107
  %7109 = load ptr, ptr %7108, align 8, !tbaa !5
  %7110 = load i32, ptr %15, align 4, !tbaa !14
  %7111 = sext i32 %7110 to i64
  %7112 = getelementptr inbounds ptr, ptr %7109, i64 %7111
  %7113 = load ptr, ptr %7112, align 8, !tbaa !5
  %7114 = load i32, ptr %16, align 4, !tbaa !14
  %7115 = add nsw i32 %7114, 6
  %7116 = sext i32 %7115 to i64
  %7117 = getelementptr inbounds i8, ptr %7113, i64 %7116
  store i8 %7103, ptr %7117, align 1, !tbaa !16
  %7118 = load ptr, ptr %13, align 8, !tbaa !5
  %7119 = load i32, ptr %15, align 4, !tbaa !14
  %7120 = sext i32 %7119 to i64
  %7121 = getelementptr inbounds ptr, ptr %7118, i64 %7120
  %7122 = load ptr, ptr %7121, align 8, !tbaa !5
  %7123 = load i32, ptr %16, align 4, !tbaa !14
  %7124 = add nsw i32 %7123, 7
  %7125 = sext i32 %7124 to i64
  %7126 = getelementptr inbounds i8, ptr %7122, i64 %7125
  %7127 = load i8, ptr %7126, align 1, !tbaa !16
  %7128 = zext i8 %7127 to i32
  %7129 = load ptr, ptr %14, align 8, !tbaa !5
  %7130 = load i32, ptr %15, align 4, !tbaa !14
  %7131 = sext i32 %7130 to i64
  %7132 = getelementptr inbounds ptr, ptr %7129, i64 %7131
  %7133 = load ptr, ptr %7132, align 8, !tbaa !5
  %7134 = load i32, ptr %16, align 4, !tbaa !14
  %7135 = add nsw i32 %7134, 7
  %7136 = sext i32 %7135 to i64
  %7137 = getelementptr inbounds i8, ptr %7133, i64 %7136
  %7138 = load i8, ptr %7137, align 1, !tbaa !16
  %7139 = zext i8 %7138 to i32
  %7140 = sub nsw i32 %7128, %7139
  %7141 = icmp slt i32 %7140, 255
  br i1 %7141, label %7142, label %7166

7142:                                             ; preds = %7101
  %7143 = load ptr, ptr %13, align 8, !tbaa !5
  %7144 = load i32, ptr %15, align 4, !tbaa !14
  %7145 = sext i32 %7144 to i64
  %7146 = getelementptr inbounds ptr, ptr %7143, i64 %7145
  %7147 = load ptr, ptr %7146, align 8, !tbaa !5
  %7148 = load i32, ptr %16, align 4, !tbaa !14
  %7149 = add nsw i32 %7148, 7
  %7150 = sext i32 %7149 to i64
  %7151 = getelementptr inbounds i8, ptr %7147, i64 %7150
  %7152 = load i8, ptr %7151, align 1, !tbaa !16
  %7153 = zext i8 %7152 to i32
  %7154 = load ptr, ptr %14, align 8, !tbaa !5
  %7155 = load i32, ptr %15, align 4, !tbaa !14
  %7156 = sext i32 %7155 to i64
  %7157 = getelementptr inbounds ptr, ptr %7154, i64 %7156
  %7158 = load ptr, ptr %7157, align 8, !tbaa !5
  %7159 = load i32, ptr %16, align 4, !tbaa !14
  %7160 = add nsw i32 %7159, 7
  %7161 = sext i32 %7160 to i64
  %7162 = getelementptr inbounds i8, ptr %7158, i64 %7161
  %7163 = load i8, ptr %7162, align 1, !tbaa !16
  %7164 = zext i8 %7163 to i32
  %7165 = sub nsw i32 %7153, %7164
  br label %7167

7166:                                             ; preds = %7101
  br label %7167

7167:                                             ; preds = %7166, %7142
  %7168 = phi i32 [ %7165, %7142 ], [ 255, %7166 ]
  %7169 = trunc i32 %7168 to i8
  %7170 = load ptr, ptr %6, align 8, !tbaa !5
  %7171 = getelementptr inbounds %struct.MImage, ptr %7170, i32 0, i32 3
  %7172 = load i32, ptr %12, align 4, !tbaa !14
  %7173 = sext i32 %7172 to i64
  %7174 = getelementptr inbounds [4 x ptr], ptr %7171, i64 0, i64 %7173
  %7175 = load ptr, ptr %7174, align 8, !tbaa !5
  %7176 = load i32, ptr %15, align 4, !tbaa !14
  %7177 = sext i32 %7176 to i64
  %7178 = getelementptr inbounds ptr, ptr %7175, i64 %7177
  %7179 = load ptr, ptr %7178, align 8, !tbaa !5
  %7180 = load i32, ptr %16, align 4, !tbaa !14
  %7181 = add nsw i32 %7180, 7
  %7182 = sext i32 %7181 to i64
  %7183 = getelementptr inbounds i8, ptr %7179, i64 %7182
  store i8 %7169, ptr %7183, align 1, !tbaa !16
  %7184 = load ptr, ptr %13, align 8, !tbaa !5
  %7185 = load i32, ptr %15, align 4, !tbaa !14
  %7186 = sext i32 %7185 to i64
  %7187 = getelementptr inbounds ptr, ptr %7184, i64 %7186
  %7188 = load ptr, ptr %7187, align 8, !tbaa !5
  %7189 = load i32, ptr %16, align 4, !tbaa !14
  %7190 = add nsw i32 %7189, 8
  %7191 = sext i32 %7190 to i64
  %7192 = getelementptr inbounds i8, ptr %7188, i64 %7191
  %7193 = load i8, ptr %7192, align 1, !tbaa !16
  %7194 = zext i8 %7193 to i32
  %7195 = load ptr, ptr %14, align 8, !tbaa !5
  %7196 = load i32, ptr %15, align 4, !tbaa !14
  %7197 = sext i32 %7196 to i64
  %7198 = getelementptr inbounds ptr, ptr %7195, i64 %7197
  %7199 = load ptr, ptr %7198, align 8, !tbaa !5
  %7200 = load i32, ptr %16, align 4, !tbaa !14
  %7201 = add nsw i32 %7200, 8
  %7202 = sext i32 %7201 to i64
  %7203 = getelementptr inbounds i8, ptr %7199, i64 %7202
  %7204 = load i8, ptr %7203, align 1, !tbaa !16
  %7205 = zext i8 %7204 to i32
  %7206 = sub nsw i32 %7194, %7205
  %7207 = icmp slt i32 %7206, 255
  br i1 %7207, label %7208, label %7232

7208:                                             ; preds = %7167
  %7209 = load ptr, ptr %13, align 8, !tbaa !5
  %7210 = load i32, ptr %15, align 4, !tbaa !14
  %7211 = sext i32 %7210 to i64
  %7212 = getelementptr inbounds ptr, ptr %7209, i64 %7211
  %7213 = load ptr, ptr %7212, align 8, !tbaa !5
  %7214 = load i32, ptr %16, align 4, !tbaa !14
  %7215 = add nsw i32 %7214, 8
  %7216 = sext i32 %7215 to i64
  %7217 = getelementptr inbounds i8, ptr %7213, i64 %7216
  %7218 = load i8, ptr %7217, align 1, !tbaa !16
  %7219 = zext i8 %7218 to i32
  %7220 = load ptr, ptr %14, align 8, !tbaa !5
  %7221 = load i32, ptr %15, align 4, !tbaa !14
  %7222 = sext i32 %7221 to i64
  %7223 = getelementptr inbounds ptr, ptr %7220, i64 %7222
  %7224 = load ptr, ptr %7223, align 8, !tbaa !5
  %7225 = load i32, ptr %16, align 4, !tbaa !14
  %7226 = add nsw i32 %7225, 8
  %7227 = sext i32 %7226 to i64
  %7228 = getelementptr inbounds i8, ptr %7224, i64 %7227
  %7229 = load i8, ptr %7228, align 1, !tbaa !16
  %7230 = zext i8 %7229 to i32
  %7231 = sub nsw i32 %7219, %7230
  br label %7233

7232:                                             ; preds = %7167
  br label %7233

7233:                                             ; preds = %7232, %7208
  %7234 = phi i32 [ %7231, %7208 ], [ 255, %7232 ]
  %7235 = trunc i32 %7234 to i8
  %7236 = load ptr, ptr %6, align 8, !tbaa !5
  %7237 = getelementptr inbounds %struct.MImage, ptr %7236, i32 0, i32 3
  %7238 = load i32, ptr %12, align 4, !tbaa !14
  %7239 = sext i32 %7238 to i64
  %7240 = getelementptr inbounds [4 x ptr], ptr %7237, i64 0, i64 %7239
  %7241 = load ptr, ptr %7240, align 8, !tbaa !5
  %7242 = load i32, ptr %15, align 4, !tbaa !14
  %7243 = sext i32 %7242 to i64
  %7244 = getelementptr inbounds ptr, ptr %7241, i64 %7243
  %7245 = load ptr, ptr %7244, align 8, !tbaa !5
  %7246 = load i32, ptr %16, align 4, !tbaa !14
  %7247 = add nsw i32 %7246, 8
  %7248 = sext i32 %7247 to i64
  %7249 = getelementptr inbounds i8, ptr %7245, i64 %7248
  store i8 %7235, ptr %7249, align 1, !tbaa !16
  %7250 = load ptr, ptr %13, align 8, !tbaa !5
  %7251 = load i32, ptr %15, align 4, !tbaa !14
  %7252 = sext i32 %7251 to i64
  %7253 = getelementptr inbounds ptr, ptr %7250, i64 %7252
  %7254 = load ptr, ptr %7253, align 8, !tbaa !5
  %7255 = load i32, ptr %16, align 4, !tbaa !14
  %7256 = add nsw i32 %7255, 9
  %7257 = sext i32 %7256 to i64
  %7258 = getelementptr inbounds i8, ptr %7254, i64 %7257
  %7259 = load i8, ptr %7258, align 1, !tbaa !16
  %7260 = zext i8 %7259 to i32
  %7261 = load ptr, ptr %14, align 8, !tbaa !5
  %7262 = load i32, ptr %15, align 4, !tbaa !14
  %7263 = sext i32 %7262 to i64
  %7264 = getelementptr inbounds ptr, ptr %7261, i64 %7263
  %7265 = load ptr, ptr %7264, align 8, !tbaa !5
  %7266 = load i32, ptr %16, align 4, !tbaa !14
  %7267 = add nsw i32 %7266, 9
  %7268 = sext i32 %7267 to i64
  %7269 = getelementptr inbounds i8, ptr %7265, i64 %7268
  %7270 = load i8, ptr %7269, align 1, !tbaa !16
  %7271 = zext i8 %7270 to i32
  %7272 = sub nsw i32 %7260, %7271
  %7273 = icmp slt i32 %7272, 255
  br i1 %7273, label %7274, label %7298

7274:                                             ; preds = %7233
  %7275 = load ptr, ptr %13, align 8, !tbaa !5
  %7276 = load i32, ptr %15, align 4, !tbaa !14
  %7277 = sext i32 %7276 to i64
  %7278 = getelementptr inbounds ptr, ptr %7275, i64 %7277
  %7279 = load ptr, ptr %7278, align 8, !tbaa !5
  %7280 = load i32, ptr %16, align 4, !tbaa !14
  %7281 = add nsw i32 %7280, 9
  %7282 = sext i32 %7281 to i64
  %7283 = getelementptr inbounds i8, ptr %7279, i64 %7282
  %7284 = load i8, ptr %7283, align 1, !tbaa !16
  %7285 = zext i8 %7284 to i32
  %7286 = load ptr, ptr %14, align 8, !tbaa !5
  %7287 = load i32, ptr %15, align 4, !tbaa !14
  %7288 = sext i32 %7287 to i64
  %7289 = getelementptr inbounds ptr, ptr %7286, i64 %7288
  %7290 = load ptr, ptr %7289, align 8, !tbaa !5
  %7291 = load i32, ptr %16, align 4, !tbaa !14
  %7292 = add nsw i32 %7291, 9
  %7293 = sext i32 %7292 to i64
  %7294 = getelementptr inbounds i8, ptr %7290, i64 %7293
  %7295 = load i8, ptr %7294, align 1, !tbaa !16
  %7296 = zext i8 %7295 to i32
  %7297 = sub nsw i32 %7285, %7296
  br label %7299

7298:                                             ; preds = %7233
  br label %7299

7299:                                             ; preds = %7298, %7274
  %7300 = phi i32 [ %7297, %7274 ], [ 255, %7298 ]
  %7301 = trunc i32 %7300 to i8
  %7302 = load ptr, ptr %6, align 8, !tbaa !5
  %7303 = getelementptr inbounds %struct.MImage, ptr %7302, i32 0, i32 3
  %7304 = load i32, ptr %12, align 4, !tbaa !14
  %7305 = sext i32 %7304 to i64
  %7306 = getelementptr inbounds [4 x ptr], ptr %7303, i64 0, i64 %7305
  %7307 = load ptr, ptr %7306, align 8, !tbaa !5
  %7308 = load i32, ptr %15, align 4, !tbaa !14
  %7309 = sext i32 %7308 to i64
  %7310 = getelementptr inbounds ptr, ptr %7307, i64 %7309
  %7311 = load ptr, ptr %7310, align 8, !tbaa !5
  %7312 = load i32, ptr %16, align 4, !tbaa !14
  %7313 = add nsw i32 %7312, 9
  %7314 = sext i32 %7313 to i64
  %7315 = getelementptr inbounds i8, ptr %7311, i64 %7314
  store i8 %7301, ptr %7315, align 1, !tbaa !16
  %7316 = load ptr, ptr %13, align 8, !tbaa !5
  %7317 = load i32, ptr %15, align 4, !tbaa !14
  %7318 = sext i32 %7317 to i64
  %7319 = getelementptr inbounds ptr, ptr %7316, i64 %7318
  %7320 = load ptr, ptr %7319, align 8, !tbaa !5
  %7321 = load i32, ptr %16, align 4, !tbaa !14
  %7322 = add nsw i32 %7321, 10
  %7323 = sext i32 %7322 to i64
  %7324 = getelementptr inbounds i8, ptr %7320, i64 %7323
  %7325 = load i8, ptr %7324, align 1, !tbaa !16
  %7326 = zext i8 %7325 to i32
  %7327 = load ptr, ptr %14, align 8, !tbaa !5
  %7328 = load i32, ptr %15, align 4, !tbaa !14
  %7329 = sext i32 %7328 to i64
  %7330 = getelementptr inbounds ptr, ptr %7327, i64 %7329
  %7331 = load ptr, ptr %7330, align 8, !tbaa !5
  %7332 = load i32, ptr %16, align 4, !tbaa !14
  %7333 = add nsw i32 %7332, 10
  %7334 = sext i32 %7333 to i64
  %7335 = getelementptr inbounds i8, ptr %7331, i64 %7334
  %7336 = load i8, ptr %7335, align 1, !tbaa !16
  %7337 = zext i8 %7336 to i32
  %7338 = sub nsw i32 %7326, %7337
  %7339 = icmp slt i32 %7338, 255
  br i1 %7339, label %7340, label %7364

7340:                                             ; preds = %7299
  %7341 = load ptr, ptr %13, align 8, !tbaa !5
  %7342 = load i32, ptr %15, align 4, !tbaa !14
  %7343 = sext i32 %7342 to i64
  %7344 = getelementptr inbounds ptr, ptr %7341, i64 %7343
  %7345 = load ptr, ptr %7344, align 8, !tbaa !5
  %7346 = load i32, ptr %16, align 4, !tbaa !14
  %7347 = add nsw i32 %7346, 10
  %7348 = sext i32 %7347 to i64
  %7349 = getelementptr inbounds i8, ptr %7345, i64 %7348
  %7350 = load i8, ptr %7349, align 1, !tbaa !16
  %7351 = zext i8 %7350 to i32
  %7352 = load ptr, ptr %14, align 8, !tbaa !5
  %7353 = load i32, ptr %15, align 4, !tbaa !14
  %7354 = sext i32 %7353 to i64
  %7355 = getelementptr inbounds ptr, ptr %7352, i64 %7354
  %7356 = load ptr, ptr %7355, align 8, !tbaa !5
  %7357 = load i32, ptr %16, align 4, !tbaa !14
  %7358 = add nsw i32 %7357, 10
  %7359 = sext i32 %7358 to i64
  %7360 = getelementptr inbounds i8, ptr %7356, i64 %7359
  %7361 = load i8, ptr %7360, align 1, !tbaa !16
  %7362 = zext i8 %7361 to i32
  %7363 = sub nsw i32 %7351, %7362
  br label %7365

7364:                                             ; preds = %7299
  br label %7365

7365:                                             ; preds = %7364, %7340
  %7366 = phi i32 [ %7363, %7340 ], [ 255, %7364 ]
  %7367 = trunc i32 %7366 to i8
  %7368 = load ptr, ptr %6, align 8, !tbaa !5
  %7369 = getelementptr inbounds %struct.MImage, ptr %7368, i32 0, i32 3
  %7370 = load i32, ptr %12, align 4, !tbaa !14
  %7371 = sext i32 %7370 to i64
  %7372 = getelementptr inbounds [4 x ptr], ptr %7369, i64 0, i64 %7371
  %7373 = load ptr, ptr %7372, align 8, !tbaa !5
  %7374 = load i32, ptr %15, align 4, !tbaa !14
  %7375 = sext i32 %7374 to i64
  %7376 = getelementptr inbounds ptr, ptr %7373, i64 %7375
  %7377 = load ptr, ptr %7376, align 8, !tbaa !5
  %7378 = load i32, ptr %16, align 4, !tbaa !14
  %7379 = add nsw i32 %7378, 10
  %7380 = sext i32 %7379 to i64
  %7381 = getelementptr inbounds i8, ptr %7377, i64 %7380
  store i8 %7367, ptr %7381, align 1, !tbaa !16
  %7382 = load ptr, ptr %13, align 8, !tbaa !5
  %7383 = load i32, ptr %15, align 4, !tbaa !14
  %7384 = sext i32 %7383 to i64
  %7385 = getelementptr inbounds ptr, ptr %7382, i64 %7384
  %7386 = load ptr, ptr %7385, align 8, !tbaa !5
  %7387 = load i32, ptr %16, align 4, !tbaa !14
  %7388 = add nsw i32 %7387, 11
  %7389 = sext i32 %7388 to i64
  %7390 = getelementptr inbounds i8, ptr %7386, i64 %7389
  %7391 = load i8, ptr %7390, align 1, !tbaa !16
  %7392 = zext i8 %7391 to i32
  %7393 = load ptr, ptr %14, align 8, !tbaa !5
  %7394 = load i32, ptr %15, align 4, !tbaa !14
  %7395 = sext i32 %7394 to i64
  %7396 = getelementptr inbounds ptr, ptr %7393, i64 %7395
  %7397 = load ptr, ptr %7396, align 8, !tbaa !5
  %7398 = load i32, ptr %16, align 4, !tbaa !14
  %7399 = add nsw i32 %7398, 11
  %7400 = sext i32 %7399 to i64
  %7401 = getelementptr inbounds i8, ptr %7397, i64 %7400
  %7402 = load i8, ptr %7401, align 1, !tbaa !16
  %7403 = zext i8 %7402 to i32
  %7404 = sub nsw i32 %7392, %7403
  %7405 = icmp slt i32 %7404, 255
  br i1 %7405, label %7406, label %7430

7406:                                             ; preds = %7365
  %7407 = load ptr, ptr %13, align 8, !tbaa !5
  %7408 = load i32, ptr %15, align 4, !tbaa !14
  %7409 = sext i32 %7408 to i64
  %7410 = getelementptr inbounds ptr, ptr %7407, i64 %7409
  %7411 = load ptr, ptr %7410, align 8, !tbaa !5
  %7412 = load i32, ptr %16, align 4, !tbaa !14
  %7413 = add nsw i32 %7412, 11
  %7414 = sext i32 %7413 to i64
  %7415 = getelementptr inbounds i8, ptr %7411, i64 %7414
  %7416 = load i8, ptr %7415, align 1, !tbaa !16
  %7417 = zext i8 %7416 to i32
  %7418 = load ptr, ptr %14, align 8, !tbaa !5
  %7419 = load i32, ptr %15, align 4, !tbaa !14
  %7420 = sext i32 %7419 to i64
  %7421 = getelementptr inbounds ptr, ptr %7418, i64 %7420
  %7422 = load ptr, ptr %7421, align 8, !tbaa !5
  %7423 = load i32, ptr %16, align 4, !tbaa !14
  %7424 = add nsw i32 %7423, 11
  %7425 = sext i32 %7424 to i64
  %7426 = getelementptr inbounds i8, ptr %7422, i64 %7425
  %7427 = load i8, ptr %7426, align 1, !tbaa !16
  %7428 = zext i8 %7427 to i32
  %7429 = sub nsw i32 %7417, %7428
  br label %7431

7430:                                             ; preds = %7365
  br label %7431

7431:                                             ; preds = %7430, %7406
  %7432 = phi i32 [ %7429, %7406 ], [ 255, %7430 ]
  %7433 = trunc i32 %7432 to i8
  %7434 = load ptr, ptr %6, align 8, !tbaa !5
  %7435 = getelementptr inbounds %struct.MImage, ptr %7434, i32 0, i32 3
  %7436 = load i32, ptr %12, align 4, !tbaa !14
  %7437 = sext i32 %7436 to i64
  %7438 = getelementptr inbounds [4 x ptr], ptr %7435, i64 0, i64 %7437
  %7439 = load ptr, ptr %7438, align 8, !tbaa !5
  %7440 = load i32, ptr %15, align 4, !tbaa !14
  %7441 = sext i32 %7440 to i64
  %7442 = getelementptr inbounds ptr, ptr %7439, i64 %7441
  %7443 = load ptr, ptr %7442, align 8, !tbaa !5
  %7444 = load i32, ptr %16, align 4, !tbaa !14
  %7445 = add nsw i32 %7444, 11
  %7446 = sext i32 %7445 to i64
  %7447 = getelementptr inbounds i8, ptr %7443, i64 %7446
  store i8 %7433, ptr %7447, align 1, !tbaa !16
  %7448 = load ptr, ptr %13, align 8, !tbaa !5
  %7449 = load i32, ptr %15, align 4, !tbaa !14
  %7450 = sext i32 %7449 to i64
  %7451 = getelementptr inbounds ptr, ptr %7448, i64 %7450
  %7452 = load ptr, ptr %7451, align 8, !tbaa !5
  %7453 = load i32, ptr %16, align 4, !tbaa !14
  %7454 = add nsw i32 %7453, 12
  %7455 = sext i32 %7454 to i64
  %7456 = getelementptr inbounds i8, ptr %7452, i64 %7455
  %7457 = load i8, ptr %7456, align 1, !tbaa !16
  %7458 = zext i8 %7457 to i32
  %7459 = load ptr, ptr %14, align 8, !tbaa !5
  %7460 = load i32, ptr %15, align 4, !tbaa !14
  %7461 = sext i32 %7460 to i64
  %7462 = getelementptr inbounds ptr, ptr %7459, i64 %7461
  %7463 = load ptr, ptr %7462, align 8, !tbaa !5
  %7464 = load i32, ptr %16, align 4, !tbaa !14
  %7465 = add nsw i32 %7464, 12
  %7466 = sext i32 %7465 to i64
  %7467 = getelementptr inbounds i8, ptr %7463, i64 %7466
  %7468 = load i8, ptr %7467, align 1, !tbaa !16
  %7469 = zext i8 %7468 to i32
  %7470 = sub nsw i32 %7458, %7469
  %7471 = icmp slt i32 %7470, 255
  br i1 %7471, label %7472, label %7496

7472:                                             ; preds = %7431
  %7473 = load ptr, ptr %13, align 8, !tbaa !5
  %7474 = load i32, ptr %15, align 4, !tbaa !14
  %7475 = sext i32 %7474 to i64
  %7476 = getelementptr inbounds ptr, ptr %7473, i64 %7475
  %7477 = load ptr, ptr %7476, align 8, !tbaa !5
  %7478 = load i32, ptr %16, align 4, !tbaa !14
  %7479 = add nsw i32 %7478, 12
  %7480 = sext i32 %7479 to i64
  %7481 = getelementptr inbounds i8, ptr %7477, i64 %7480
  %7482 = load i8, ptr %7481, align 1, !tbaa !16
  %7483 = zext i8 %7482 to i32
  %7484 = load ptr, ptr %14, align 8, !tbaa !5
  %7485 = load i32, ptr %15, align 4, !tbaa !14
  %7486 = sext i32 %7485 to i64
  %7487 = getelementptr inbounds ptr, ptr %7484, i64 %7486
  %7488 = load ptr, ptr %7487, align 8, !tbaa !5
  %7489 = load i32, ptr %16, align 4, !tbaa !14
  %7490 = add nsw i32 %7489, 12
  %7491 = sext i32 %7490 to i64
  %7492 = getelementptr inbounds i8, ptr %7488, i64 %7491
  %7493 = load i8, ptr %7492, align 1, !tbaa !16
  %7494 = zext i8 %7493 to i32
  %7495 = sub nsw i32 %7483, %7494
  br label %7497

7496:                                             ; preds = %7431
  br label %7497

7497:                                             ; preds = %7496, %7472
  %7498 = phi i32 [ %7495, %7472 ], [ 255, %7496 ]
  %7499 = trunc i32 %7498 to i8
  %7500 = load ptr, ptr %6, align 8, !tbaa !5
  %7501 = getelementptr inbounds %struct.MImage, ptr %7500, i32 0, i32 3
  %7502 = load i32, ptr %12, align 4, !tbaa !14
  %7503 = sext i32 %7502 to i64
  %7504 = getelementptr inbounds [4 x ptr], ptr %7501, i64 0, i64 %7503
  %7505 = load ptr, ptr %7504, align 8, !tbaa !5
  %7506 = load i32, ptr %15, align 4, !tbaa !14
  %7507 = sext i32 %7506 to i64
  %7508 = getelementptr inbounds ptr, ptr %7505, i64 %7507
  %7509 = load ptr, ptr %7508, align 8, !tbaa !5
  %7510 = load i32, ptr %16, align 4, !tbaa !14
  %7511 = add nsw i32 %7510, 12
  %7512 = sext i32 %7511 to i64
  %7513 = getelementptr inbounds i8, ptr %7509, i64 %7512
  store i8 %7499, ptr %7513, align 1, !tbaa !16
  br label %9446

7514:                                             ; preds = %6648
  %7515 = load ptr, ptr %6, align 8, !tbaa !5
  %7516 = getelementptr inbounds %struct.MImage, ptr %7515, i32 0, i32 2
  %7517 = load i32, ptr %7516, align 8, !tbaa !13
  %7518 = load i32, ptr %16, align 4, !tbaa !14
  %7519 = sub nsw i32 %7517, %7518
  %7520 = icmp eq i32 %7519, 14
  br i1 %7520, label %7521, label %8446

7521:                                             ; preds = %7514
  %7522 = load ptr, ptr %13, align 8, !tbaa !5
  %7523 = load i32, ptr %15, align 4, !tbaa !14
  %7524 = sext i32 %7523 to i64
  %7525 = getelementptr inbounds ptr, ptr %7522, i64 %7524
  %7526 = load ptr, ptr %7525, align 8, !tbaa !5
  %7527 = load i32, ptr %16, align 4, !tbaa !14
  %7528 = add nsw i32 %7527, 0
  %7529 = sext i32 %7528 to i64
  %7530 = getelementptr inbounds i8, ptr %7526, i64 %7529
  %7531 = load i8, ptr %7530, align 1, !tbaa !16
  %7532 = zext i8 %7531 to i32
  %7533 = load ptr, ptr %14, align 8, !tbaa !5
  %7534 = load i32, ptr %15, align 4, !tbaa !14
  %7535 = sext i32 %7534 to i64
  %7536 = getelementptr inbounds ptr, ptr %7533, i64 %7535
  %7537 = load ptr, ptr %7536, align 8, !tbaa !5
  %7538 = load i32, ptr %16, align 4, !tbaa !14
  %7539 = add nsw i32 %7538, 0
  %7540 = sext i32 %7539 to i64
  %7541 = getelementptr inbounds i8, ptr %7537, i64 %7540
  %7542 = load i8, ptr %7541, align 1, !tbaa !16
  %7543 = zext i8 %7542 to i32
  %7544 = sub nsw i32 %7532, %7543
  %7545 = icmp slt i32 %7544, 255
  br i1 %7545, label %7546, label %7570

7546:                                             ; preds = %7521
  %7547 = load ptr, ptr %13, align 8, !tbaa !5
  %7548 = load i32, ptr %15, align 4, !tbaa !14
  %7549 = sext i32 %7548 to i64
  %7550 = getelementptr inbounds ptr, ptr %7547, i64 %7549
  %7551 = load ptr, ptr %7550, align 8, !tbaa !5
  %7552 = load i32, ptr %16, align 4, !tbaa !14
  %7553 = add nsw i32 %7552, 0
  %7554 = sext i32 %7553 to i64
  %7555 = getelementptr inbounds i8, ptr %7551, i64 %7554
  %7556 = load i8, ptr %7555, align 1, !tbaa !16
  %7557 = zext i8 %7556 to i32
  %7558 = load ptr, ptr %14, align 8, !tbaa !5
  %7559 = load i32, ptr %15, align 4, !tbaa !14
  %7560 = sext i32 %7559 to i64
  %7561 = getelementptr inbounds ptr, ptr %7558, i64 %7560
  %7562 = load ptr, ptr %7561, align 8, !tbaa !5
  %7563 = load i32, ptr %16, align 4, !tbaa !14
  %7564 = add nsw i32 %7563, 0
  %7565 = sext i32 %7564 to i64
  %7566 = getelementptr inbounds i8, ptr %7562, i64 %7565
  %7567 = load i8, ptr %7566, align 1, !tbaa !16
  %7568 = zext i8 %7567 to i32
  %7569 = sub nsw i32 %7557, %7568
  br label %7571

7570:                                             ; preds = %7521
  br label %7571

7571:                                             ; preds = %7570, %7546
  %7572 = phi i32 [ %7569, %7546 ], [ 255, %7570 ]
  %7573 = trunc i32 %7572 to i8
  %7574 = load ptr, ptr %6, align 8, !tbaa !5
  %7575 = getelementptr inbounds %struct.MImage, ptr %7574, i32 0, i32 3
  %7576 = load i32, ptr %12, align 4, !tbaa !14
  %7577 = sext i32 %7576 to i64
  %7578 = getelementptr inbounds [4 x ptr], ptr %7575, i64 0, i64 %7577
  %7579 = load ptr, ptr %7578, align 8, !tbaa !5
  %7580 = load i32, ptr %15, align 4, !tbaa !14
  %7581 = sext i32 %7580 to i64
  %7582 = getelementptr inbounds ptr, ptr %7579, i64 %7581
  %7583 = load ptr, ptr %7582, align 8, !tbaa !5
  %7584 = load i32, ptr %16, align 4, !tbaa !14
  %7585 = add nsw i32 %7584, 0
  %7586 = sext i32 %7585 to i64
  %7587 = getelementptr inbounds i8, ptr %7583, i64 %7586
  store i8 %7573, ptr %7587, align 1, !tbaa !16
  %7588 = load ptr, ptr %13, align 8, !tbaa !5
  %7589 = load i32, ptr %15, align 4, !tbaa !14
  %7590 = sext i32 %7589 to i64
  %7591 = getelementptr inbounds ptr, ptr %7588, i64 %7590
  %7592 = load ptr, ptr %7591, align 8, !tbaa !5
  %7593 = load i32, ptr %16, align 4, !tbaa !14
  %7594 = add nsw i32 %7593, 1
  %7595 = sext i32 %7594 to i64
  %7596 = getelementptr inbounds i8, ptr %7592, i64 %7595
  %7597 = load i8, ptr %7596, align 1, !tbaa !16
  %7598 = zext i8 %7597 to i32
  %7599 = load ptr, ptr %14, align 8, !tbaa !5
  %7600 = load i32, ptr %15, align 4, !tbaa !14
  %7601 = sext i32 %7600 to i64
  %7602 = getelementptr inbounds ptr, ptr %7599, i64 %7601
  %7603 = load ptr, ptr %7602, align 8, !tbaa !5
  %7604 = load i32, ptr %16, align 4, !tbaa !14
  %7605 = add nsw i32 %7604, 1
  %7606 = sext i32 %7605 to i64
  %7607 = getelementptr inbounds i8, ptr %7603, i64 %7606
  %7608 = load i8, ptr %7607, align 1, !tbaa !16
  %7609 = zext i8 %7608 to i32
  %7610 = sub nsw i32 %7598, %7609
  %7611 = icmp slt i32 %7610, 255
  br i1 %7611, label %7612, label %7636

7612:                                             ; preds = %7571
  %7613 = load ptr, ptr %13, align 8, !tbaa !5
  %7614 = load i32, ptr %15, align 4, !tbaa !14
  %7615 = sext i32 %7614 to i64
  %7616 = getelementptr inbounds ptr, ptr %7613, i64 %7615
  %7617 = load ptr, ptr %7616, align 8, !tbaa !5
  %7618 = load i32, ptr %16, align 4, !tbaa !14
  %7619 = add nsw i32 %7618, 1
  %7620 = sext i32 %7619 to i64
  %7621 = getelementptr inbounds i8, ptr %7617, i64 %7620
  %7622 = load i8, ptr %7621, align 1, !tbaa !16
  %7623 = zext i8 %7622 to i32
  %7624 = load ptr, ptr %14, align 8, !tbaa !5
  %7625 = load i32, ptr %15, align 4, !tbaa !14
  %7626 = sext i32 %7625 to i64
  %7627 = getelementptr inbounds ptr, ptr %7624, i64 %7626
  %7628 = load ptr, ptr %7627, align 8, !tbaa !5
  %7629 = load i32, ptr %16, align 4, !tbaa !14
  %7630 = add nsw i32 %7629, 1
  %7631 = sext i32 %7630 to i64
  %7632 = getelementptr inbounds i8, ptr %7628, i64 %7631
  %7633 = load i8, ptr %7632, align 1, !tbaa !16
  %7634 = zext i8 %7633 to i32
  %7635 = sub nsw i32 %7623, %7634
  br label %7637

7636:                                             ; preds = %7571
  br label %7637

7637:                                             ; preds = %7636, %7612
  %7638 = phi i32 [ %7635, %7612 ], [ 255, %7636 ]
  %7639 = trunc i32 %7638 to i8
  %7640 = load ptr, ptr %6, align 8, !tbaa !5
  %7641 = getelementptr inbounds %struct.MImage, ptr %7640, i32 0, i32 3
  %7642 = load i32, ptr %12, align 4, !tbaa !14
  %7643 = sext i32 %7642 to i64
  %7644 = getelementptr inbounds [4 x ptr], ptr %7641, i64 0, i64 %7643
  %7645 = load ptr, ptr %7644, align 8, !tbaa !5
  %7646 = load i32, ptr %15, align 4, !tbaa !14
  %7647 = sext i32 %7646 to i64
  %7648 = getelementptr inbounds ptr, ptr %7645, i64 %7647
  %7649 = load ptr, ptr %7648, align 8, !tbaa !5
  %7650 = load i32, ptr %16, align 4, !tbaa !14
  %7651 = add nsw i32 %7650, 1
  %7652 = sext i32 %7651 to i64
  %7653 = getelementptr inbounds i8, ptr %7649, i64 %7652
  store i8 %7639, ptr %7653, align 1, !tbaa !16
  %7654 = load ptr, ptr %13, align 8, !tbaa !5
  %7655 = load i32, ptr %15, align 4, !tbaa !14
  %7656 = sext i32 %7655 to i64
  %7657 = getelementptr inbounds ptr, ptr %7654, i64 %7656
  %7658 = load ptr, ptr %7657, align 8, !tbaa !5
  %7659 = load i32, ptr %16, align 4, !tbaa !14
  %7660 = add nsw i32 %7659, 2
  %7661 = sext i32 %7660 to i64
  %7662 = getelementptr inbounds i8, ptr %7658, i64 %7661
  %7663 = load i8, ptr %7662, align 1, !tbaa !16
  %7664 = zext i8 %7663 to i32
  %7665 = load ptr, ptr %14, align 8, !tbaa !5
  %7666 = load i32, ptr %15, align 4, !tbaa !14
  %7667 = sext i32 %7666 to i64
  %7668 = getelementptr inbounds ptr, ptr %7665, i64 %7667
  %7669 = load ptr, ptr %7668, align 8, !tbaa !5
  %7670 = load i32, ptr %16, align 4, !tbaa !14
  %7671 = add nsw i32 %7670, 2
  %7672 = sext i32 %7671 to i64
  %7673 = getelementptr inbounds i8, ptr %7669, i64 %7672
  %7674 = load i8, ptr %7673, align 1, !tbaa !16
  %7675 = zext i8 %7674 to i32
  %7676 = sub nsw i32 %7664, %7675
  %7677 = icmp slt i32 %7676, 255
  br i1 %7677, label %7678, label %7702

7678:                                             ; preds = %7637
  %7679 = load ptr, ptr %13, align 8, !tbaa !5
  %7680 = load i32, ptr %15, align 4, !tbaa !14
  %7681 = sext i32 %7680 to i64
  %7682 = getelementptr inbounds ptr, ptr %7679, i64 %7681
  %7683 = load ptr, ptr %7682, align 8, !tbaa !5
  %7684 = load i32, ptr %16, align 4, !tbaa !14
  %7685 = add nsw i32 %7684, 2
  %7686 = sext i32 %7685 to i64
  %7687 = getelementptr inbounds i8, ptr %7683, i64 %7686
  %7688 = load i8, ptr %7687, align 1, !tbaa !16
  %7689 = zext i8 %7688 to i32
  %7690 = load ptr, ptr %14, align 8, !tbaa !5
  %7691 = load i32, ptr %15, align 4, !tbaa !14
  %7692 = sext i32 %7691 to i64
  %7693 = getelementptr inbounds ptr, ptr %7690, i64 %7692
  %7694 = load ptr, ptr %7693, align 8, !tbaa !5
  %7695 = load i32, ptr %16, align 4, !tbaa !14
  %7696 = add nsw i32 %7695, 2
  %7697 = sext i32 %7696 to i64
  %7698 = getelementptr inbounds i8, ptr %7694, i64 %7697
  %7699 = load i8, ptr %7698, align 1, !tbaa !16
  %7700 = zext i8 %7699 to i32
  %7701 = sub nsw i32 %7689, %7700
  br label %7703

7702:                                             ; preds = %7637
  br label %7703

7703:                                             ; preds = %7702, %7678
  %7704 = phi i32 [ %7701, %7678 ], [ 255, %7702 ]
  %7705 = trunc i32 %7704 to i8
  %7706 = load ptr, ptr %6, align 8, !tbaa !5
  %7707 = getelementptr inbounds %struct.MImage, ptr %7706, i32 0, i32 3
  %7708 = load i32, ptr %12, align 4, !tbaa !14
  %7709 = sext i32 %7708 to i64
  %7710 = getelementptr inbounds [4 x ptr], ptr %7707, i64 0, i64 %7709
  %7711 = load ptr, ptr %7710, align 8, !tbaa !5
  %7712 = load i32, ptr %15, align 4, !tbaa !14
  %7713 = sext i32 %7712 to i64
  %7714 = getelementptr inbounds ptr, ptr %7711, i64 %7713
  %7715 = load ptr, ptr %7714, align 8, !tbaa !5
  %7716 = load i32, ptr %16, align 4, !tbaa !14
  %7717 = add nsw i32 %7716, 2
  %7718 = sext i32 %7717 to i64
  %7719 = getelementptr inbounds i8, ptr %7715, i64 %7718
  store i8 %7705, ptr %7719, align 1, !tbaa !16
  %7720 = load ptr, ptr %13, align 8, !tbaa !5
  %7721 = load i32, ptr %15, align 4, !tbaa !14
  %7722 = sext i32 %7721 to i64
  %7723 = getelementptr inbounds ptr, ptr %7720, i64 %7722
  %7724 = load ptr, ptr %7723, align 8, !tbaa !5
  %7725 = load i32, ptr %16, align 4, !tbaa !14
  %7726 = add nsw i32 %7725, 3
  %7727 = sext i32 %7726 to i64
  %7728 = getelementptr inbounds i8, ptr %7724, i64 %7727
  %7729 = load i8, ptr %7728, align 1, !tbaa !16
  %7730 = zext i8 %7729 to i32
  %7731 = load ptr, ptr %14, align 8, !tbaa !5
  %7732 = load i32, ptr %15, align 4, !tbaa !14
  %7733 = sext i32 %7732 to i64
  %7734 = getelementptr inbounds ptr, ptr %7731, i64 %7733
  %7735 = load ptr, ptr %7734, align 8, !tbaa !5
  %7736 = load i32, ptr %16, align 4, !tbaa !14
  %7737 = add nsw i32 %7736, 3
  %7738 = sext i32 %7737 to i64
  %7739 = getelementptr inbounds i8, ptr %7735, i64 %7738
  %7740 = load i8, ptr %7739, align 1, !tbaa !16
  %7741 = zext i8 %7740 to i32
  %7742 = sub nsw i32 %7730, %7741
  %7743 = icmp slt i32 %7742, 255
  br i1 %7743, label %7744, label %7768

7744:                                             ; preds = %7703
  %7745 = load ptr, ptr %13, align 8, !tbaa !5
  %7746 = load i32, ptr %15, align 4, !tbaa !14
  %7747 = sext i32 %7746 to i64
  %7748 = getelementptr inbounds ptr, ptr %7745, i64 %7747
  %7749 = load ptr, ptr %7748, align 8, !tbaa !5
  %7750 = load i32, ptr %16, align 4, !tbaa !14
  %7751 = add nsw i32 %7750, 3
  %7752 = sext i32 %7751 to i64
  %7753 = getelementptr inbounds i8, ptr %7749, i64 %7752
  %7754 = load i8, ptr %7753, align 1, !tbaa !16
  %7755 = zext i8 %7754 to i32
  %7756 = load ptr, ptr %14, align 8, !tbaa !5
  %7757 = load i32, ptr %15, align 4, !tbaa !14
  %7758 = sext i32 %7757 to i64
  %7759 = getelementptr inbounds ptr, ptr %7756, i64 %7758
  %7760 = load ptr, ptr %7759, align 8, !tbaa !5
  %7761 = load i32, ptr %16, align 4, !tbaa !14
  %7762 = add nsw i32 %7761, 3
  %7763 = sext i32 %7762 to i64
  %7764 = getelementptr inbounds i8, ptr %7760, i64 %7763
  %7765 = load i8, ptr %7764, align 1, !tbaa !16
  %7766 = zext i8 %7765 to i32
  %7767 = sub nsw i32 %7755, %7766
  br label %7769

7768:                                             ; preds = %7703
  br label %7769

7769:                                             ; preds = %7768, %7744
  %7770 = phi i32 [ %7767, %7744 ], [ 255, %7768 ]
  %7771 = trunc i32 %7770 to i8
  %7772 = load ptr, ptr %6, align 8, !tbaa !5
  %7773 = getelementptr inbounds %struct.MImage, ptr %7772, i32 0, i32 3
  %7774 = load i32, ptr %12, align 4, !tbaa !14
  %7775 = sext i32 %7774 to i64
  %7776 = getelementptr inbounds [4 x ptr], ptr %7773, i64 0, i64 %7775
  %7777 = load ptr, ptr %7776, align 8, !tbaa !5
  %7778 = load i32, ptr %15, align 4, !tbaa !14
  %7779 = sext i32 %7778 to i64
  %7780 = getelementptr inbounds ptr, ptr %7777, i64 %7779
  %7781 = load ptr, ptr %7780, align 8, !tbaa !5
  %7782 = load i32, ptr %16, align 4, !tbaa !14
  %7783 = add nsw i32 %7782, 3
  %7784 = sext i32 %7783 to i64
  %7785 = getelementptr inbounds i8, ptr %7781, i64 %7784
  store i8 %7771, ptr %7785, align 1, !tbaa !16
  %7786 = load ptr, ptr %13, align 8, !tbaa !5
  %7787 = load i32, ptr %15, align 4, !tbaa !14
  %7788 = sext i32 %7787 to i64
  %7789 = getelementptr inbounds ptr, ptr %7786, i64 %7788
  %7790 = load ptr, ptr %7789, align 8, !tbaa !5
  %7791 = load i32, ptr %16, align 4, !tbaa !14
  %7792 = add nsw i32 %7791, 4
  %7793 = sext i32 %7792 to i64
  %7794 = getelementptr inbounds i8, ptr %7790, i64 %7793
  %7795 = load i8, ptr %7794, align 1, !tbaa !16
  %7796 = zext i8 %7795 to i32
  %7797 = load ptr, ptr %14, align 8, !tbaa !5
  %7798 = load i32, ptr %15, align 4, !tbaa !14
  %7799 = sext i32 %7798 to i64
  %7800 = getelementptr inbounds ptr, ptr %7797, i64 %7799
  %7801 = load ptr, ptr %7800, align 8, !tbaa !5
  %7802 = load i32, ptr %16, align 4, !tbaa !14
  %7803 = add nsw i32 %7802, 4
  %7804 = sext i32 %7803 to i64
  %7805 = getelementptr inbounds i8, ptr %7801, i64 %7804
  %7806 = load i8, ptr %7805, align 1, !tbaa !16
  %7807 = zext i8 %7806 to i32
  %7808 = sub nsw i32 %7796, %7807
  %7809 = icmp slt i32 %7808, 255
  br i1 %7809, label %7810, label %7834

7810:                                             ; preds = %7769
  %7811 = load ptr, ptr %13, align 8, !tbaa !5
  %7812 = load i32, ptr %15, align 4, !tbaa !14
  %7813 = sext i32 %7812 to i64
  %7814 = getelementptr inbounds ptr, ptr %7811, i64 %7813
  %7815 = load ptr, ptr %7814, align 8, !tbaa !5
  %7816 = load i32, ptr %16, align 4, !tbaa !14
  %7817 = add nsw i32 %7816, 4
  %7818 = sext i32 %7817 to i64
  %7819 = getelementptr inbounds i8, ptr %7815, i64 %7818
  %7820 = load i8, ptr %7819, align 1, !tbaa !16
  %7821 = zext i8 %7820 to i32
  %7822 = load ptr, ptr %14, align 8, !tbaa !5
  %7823 = load i32, ptr %15, align 4, !tbaa !14
  %7824 = sext i32 %7823 to i64
  %7825 = getelementptr inbounds ptr, ptr %7822, i64 %7824
  %7826 = load ptr, ptr %7825, align 8, !tbaa !5
  %7827 = load i32, ptr %16, align 4, !tbaa !14
  %7828 = add nsw i32 %7827, 4
  %7829 = sext i32 %7828 to i64
  %7830 = getelementptr inbounds i8, ptr %7826, i64 %7829
  %7831 = load i8, ptr %7830, align 1, !tbaa !16
  %7832 = zext i8 %7831 to i32
  %7833 = sub nsw i32 %7821, %7832
  br label %7835

7834:                                             ; preds = %7769
  br label %7835

7835:                                             ; preds = %7834, %7810
  %7836 = phi i32 [ %7833, %7810 ], [ 255, %7834 ]
  %7837 = trunc i32 %7836 to i8
  %7838 = load ptr, ptr %6, align 8, !tbaa !5
  %7839 = getelementptr inbounds %struct.MImage, ptr %7838, i32 0, i32 3
  %7840 = load i32, ptr %12, align 4, !tbaa !14
  %7841 = sext i32 %7840 to i64
  %7842 = getelementptr inbounds [4 x ptr], ptr %7839, i64 0, i64 %7841
  %7843 = load ptr, ptr %7842, align 8, !tbaa !5
  %7844 = load i32, ptr %15, align 4, !tbaa !14
  %7845 = sext i32 %7844 to i64
  %7846 = getelementptr inbounds ptr, ptr %7843, i64 %7845
  %7847 = load ptr, ptr %7846, align 8, !tbaa !5
  %7848 = load i32, ptr %16, align 4, !tbaa !14
  %7849 = add nsw i32 %7848, 4
  %7850 = sext i32 %7849 to i64
  %7851 = getelementptr inbounds i8, ptr %7847, i64 %7850
  store i8 %7837, ptr %7851, align 1, !tbaa !16
  %7852 = load ptr, ptr %13, align 8, !tbaa !5
  %7853 = load i32, ptr %15, align 4, !tbaa !14
  %7854 = sext i32 %7853 to i64
  %7855 = getelementptr inbounds ptr, ptr %7852, i64 %7854
  %7856 = load ptr, ptr %7855, align 8, !tbaa !5
  %7857 = load i32, ptr %16, align 4, !tbaa !14
  %7858 = add nsw i32 %7857, 5
  %7859 = sext i32 %7858 to i64
  %7860 = getelementptr inbounds i8, ptr %7856, i64 %7859
  %7861 = load i8, ptr %7860, align 1, !tbaa !16
  %7862 = zext i8 %7861 to i32
  %7863 = load ptr, ptr %14, align 8, !tbaa !5
  %7864 = load i32, ptr %15, align 4, !tbaa !14
  %7865 = sext i32 %7864 to i64
  %7866 = getelementptr inbounds ptr, ptr %7863, i64 %7865
  %7867 = load ptr, ptr %7866, align 8, !tbaa !5
  %7868 = load i32, ptr %16, align 4, !tbaa !14
  %7869 = add nsw i32 %7868, 5
  %7870 = sext i32 %7869 to i64
  %7871 = getelementptr inbounds i8, ptr %7867, i64 %7870
  %7872 = load i8, ptr %7871, align 1, !tbaa !16
  %7873 = zext i8 %7872 to i32
  %7874 = sub nsw i32 %7862, %7873
  %7875 = icmp slt i32 %7874, 255
  br i1 %7875, label %7876, label %7900

7876:                                             ; preds = %7835
  %7877 = load ptr, ptr %13, align 8, !tbaa !5
  %7878 = load i32, ptr %15, align 4, !tbaa !14
  %7879 = sext i32 %7878 to i64
  %7880 = getelementptr inbounds ptr, ptr %7877, i64 %7879
  %7881 = load ptr, ptr %7880, align 8, !tbaa !5
  %7882 = load i32, ptr %16, align 4, !tbaa !14
  %7883 = add nsw i32 %7882, 5
  %7884 = sext i32 %7883 to i64
  %7885 = getelementptr inbounds i8, ptr %7881, i64 %7884
  %7886 = load i8, ptr %7885, align 1, !tbaa !16
  %7887 = zext i8 %7886 to i32
  %7888 = load ptr, ptr %14, align 8, !tbaa !5
  %7889 = load i32, ptr %15, align 4, !tbaa !14
  %7890 = sext i32 %7889 to i64
  %7891 = getelementptr inbounds ptr, ptr %7888, i64 %7890
  %7892 = load ptr, ptr %7891, align 8, !tbaa !5
  %7893 = load i32, ptr %16, align 4, !tbaa !14
  %7894 = add nsw i32 %7893, 5
  %7895 = sext i32 %7894 to i64
  %7896 = getelementptr inbounds i8, ptr %7892, i64 %7895
  %7897 = load i8, ptr %7896, align 1, !tbaa !16
  %7898 = zext i8 %7897 to i32
  %7899 = sub nsw i32 %7887, %7898
  br label %7901

7900:                                             ; preds = %7835
  br label %7901

7901:                                             ; preds = %7900, %7876
  %7902 = phi i32 [ %7899, %7876 ], [ 255, %7900 ]
  %7903 = trunc i32 %7902 to i8
  %7904 = load ptr, ptr %6, align 8, !tbaa !5
  %7905 = getelementptr inbounds %struct.MImage, ptr %7904, i32 0, i32 3
  %7906 = load i32, ptr %12, align 4, !tbaa !14
  %7907 = sext i32 %7906 to i64
  %7908 = getelementptr inbounds [4 x ptr], ptr %7905, i64 0, i64 %7907
  %7909 = load ptr, ptr %7908, align 8, !tbaa !5
  %7910 = load i32, ptr %15, align 4, !tbaa !14
  %7911 = sext i32 %7910 to i64
  %7912 = getelementptr inbounds ptr, ptr %7909, i64 %7911
  %7913 = load ptr, ptr %7912, align 8, !tbaa !5
  %7914 = load i32, ptr %16, align 4, !tbaa !14
  %7915 = add nsw i32 %7914, 5
  %7916 = sext i32 %7915 to i64
  %7917 = getelementptr inbounds i8, ptr %7913, i64 %7916
  store i8 %7903, ptr %7917, align 1, !tbaa !16
  %7918 = load ptr, ptr %13, align 8, !tbaa !5
  %7919 = load i32, ptr %15, align 4, !tbaa !14
  %7920 = sext i32 %7919 to i64
  %7921 = getelementptr inbounds ptr, ptr %7918, i64 %7920
  %7922 = load ptr, ptr %7921, align 8, !tbaa !5
  %7923 = load i32, ptr %16, align 4, !tbaa !14
  %7924 = add nsw i32 %7923, 6
  %7925 = sext i32 %7924 to i64
  %7926 = getelementptr inbounds i8, ptr %7922, i64 %7925
  %7927 = load i8, ptr %7926, align 1, !tbaa !16
  %7928 = zext i8 %7927 to i32
  %7929 = load ptr, ptr %14, align 8, !tbaa !5
  %7930 = load i32, ptr %15, align 4, !tbaa !14
  %7931 = sext i32 %7930 to i64
  %7932 = getelementptr inbounds ptr, ptr %7929, i64 %7931
  %7933 = load ptr, ptr %7932, align 8, !tbaa !5
  %7934 = load i32, ptr %16, align 4, !tbaa !14
  %7935 = add nsw i32 %7934, 6
  %7936 = sext i32 %7935 to i64
  %7937 = getelementptr inbounds i8, ptr %7933, i64 %7936
  %7938 = load i8, ptr %7937, align 1, !tbaa !16
  %7939 = zext i8 %7938 to i32
  %7940 = sub nsw i32 %7928, %7939
  %7941 = icmp slt i32 %7940, 255
  br i1 %7941, label %7942, label %7966

7942:                                             ; preds = %7901
  %7943 = load ptr, ptr %13, align 8, !tbaa !5
  %7944 = load i32, ptr %15, align 4, !tbaa !14
  %7945 = sext i32 %7944 to i64
  %7946 = getelementptr inbounds ptr, ptr %7943, i64 %7945
  %7947 = load ptr, ptr %7946, align 8, !tbaa !5
  %7948 = load i32, ptr %16, align 4, !tbaa !14
  %7949 = add nsw i32 %7948, 6
  %7950 = sext i32 %7949 to i64
  %7951 = getelementptr inbounds i8, ptr %7947, i64 %7950
  %7952 = load i8, ptr %7951, align 1, !tbaa !16
  %7953 = zext i8 %7952 to i32
  %7954 = load ptr, ptr %14, align 8, !tbaa !5
  %7955 = load i32, ptr %15, align 4, !tbaa !14
  %7956 = sext i32 %7955 to i64
  %7957 = getelementptr inbounds ptr, ptr %7954, i64 %7956
  %7958 = load ptr, ptr %7957, align 8, !tbaa !5
  %7959 = load i32, ptr %16, align 4, !tbaa !14
  %7960 = add nsw i32 %7959, 6
  %7961 = sext i32 %7960 to i64
  %7962 = getelementptr inbounds i8, ptr %7958, i64 %7961
  %7963 = load i8, ptr %7962, align 1, !tbaa !16
  %7964 = zext i8 %7963 to i32
  %7965 = sub nsw i32 %7953, %7964
  br label %7967

7966:                                             ; preds = %7901
  br label %7967

7967:                                             ; preds = %7966, %7942
  %7968 = phi i32 [ %7965, %7942 ], [ 255, %7966 ]
  %7969 = trunc i32 %7968 to i8
  %7970 = load ptr, ptr %6, align 8, !tbaa !5
  %7971 = getelementptr inbounds %struct.MImage, ptr %7970, i32 0, i32 3
  %7972 = load i32, ptr %12, align 4, !tbaa !14
  %7973 = sext i32 %7972 to i64
  %7974 = getelementptr inbounds [4 x ptr], ptr %7971, i64 0, i64 %7973
  %7975 = load ptr, ptr %7974, align 8, !tbaa !5
  %7976 = load i32, ptr %15, align 4, !tbaa !14
  %7977 = sext i32 %7976 to i64
  %7978 = getelementptr inbounds ptr, ptr %7975, i64 %7977
  %7979 = load ptr, ptr %7978, align 8, !tbaa !5
  %7980 = load i32, ptr %16, align 4, !tbaa !14
  %7981 = add nsw i32 %7980, 6
  %7982 = sext i32 %7981 to i64
  %7983 = getelementptr inbounds i8, ptr %7979, i64 %7982
  store i8 %7969, ptr %7983, align 1, !tbaa !16
  %7984 = load ptr, ptr %13, align 8, !tbaa !5
  %7985 = load i32, ptr %15, align 4, !tbaa !14
  %7986 = sext i32 %7985 to i64
  %7987 = getelementptr inbounds ptr, ptr %7984, i64 %7986
  %7988 = load ptr, ptr %7987, align 8, !tbaa !5
  %7989 = load i32, ptr %16, align 4, !tbaa !14
  %7990 = add nsw i32 %7989, 7
  %7991 = sext i32 %7990 to i64
  %7992 = getelementptr inbounds i8, ptr %7988, i64 %7991
  %7993 = load i8, ptr %7992, align 1, !tbaa !16
  %7994 = zext i8 %7993 to i32
  %7995 = load ptr, ptr %14, align 8, !tbaa !5
  %7996 = load i32, ptr %15, align 4, !tbaa !14
  %7997 = sext i32 %7996 to i64
  %7998 = getelementptr inbounds ptr, ptr %7995, i64 %7997
  %7999 = load ptr, ptr %7998, align 8, !tbaa !5
  %8000 = load i32, ptr %16, align 4, !tbaa !14
  %8001 = add nsw i32 %8000, 7
  %8002 = sext i32 %8001 to i64
  %8003 = getelementptr inbounds i8, ptr %7999, i64 %8002
  %8004 = load i8, ptr %8003, align 1, !tbaa !16
  %8005 = zext i8 %8004 to i32
  %8006 = sub nsw i32 %7994, %8005
  %8007 = icmp slt i32 %8006, 255
  br i1 %8007, label %8008, label %8032

8008:                                             ; preds = %7967
  %8009 = load ptr, ptr %13, align 8, !tbaa !5
  %8010 = load i32, ptr %15, align 4, !tbaa !14
  %8011 = sext i32 %8010 to i64
  %8012 = getelementptr inbounds ptr, ptr %8009, i64 %8011
  %8013 = load ptr, ptr %8012, align 8, !tbaa !5
  %8014 = load i32, ptr %16, align 4, !tbaa !14
  %8015 = add nsw i32 %8014, 7
  %8016 = sext i32 %8015 to i64
  %8017 = getelementptr inbounds i8, ptr %8013, i64 %8016
  %8018 = load i8, ptr %8017, align 1, !tbaa !16
  %8019 = zext i8 %8018 to i32
  %8020 = load ptr, ptr %14, align 8, !tbaa !5
  %8021 = load i32, ptr %15, align 4, !tbaa !14
  %8022 = sext i32 %8021 to i64
  %8023 = getelementptr inbounds ptr, ptr %8020, i64 %8022
  %8024 = load ptr, ptr %8023, align 8, !tbaa !5
  %8025 = load i32, ptr %16, align 4, !tbaa !14
  %8026 = add nsw i32 %8025, 7
  %8027 = sext i32 %8026 to i64
  %8028 = getelementptr inbounds i8, ptr %8024, i64 %8027
  %8029 = load i8, ptr %8028, align 1, !tbaa !16
  %8030 = zext i8 %8029 to i32
  %8031 = sub nsw i32 %8019, %8030
  br label %8033

8032:                                             ; preds = %7967
  br label %8033

8033:                                             ; preds = %8032, %8008
  %8034 = phi i32 [ %8031, %8008 ], [ 255, %8032 ]
  %8035 = trunc i32 %8034 to i8
  %8036 = load ptr, ptr %6, align 8, !tbaa !5
  %8037 = getelementptr inbounds %struct.MImage, ptr %8036, i32 0, i32 3
  %8038 = load i32, ptr %12, align 4, !tbaa !14
  %8039 = sext i32 %8038 to i64
  %8040 = getelementptr inbounds [4 x ptr], ptr %8037, i64 0, i64 %8039
  %8041 = load ptr, ptr %8040, align 8, !tbaa !5
  %8042 = load i32, ptr %15, align 4, !tbaa !14
  %8043 = sext i32 %8042 to i64
  %8044 = getelementptr inbounds ptr, ptr %8041, i64 %8043
  %8045 = load ptr, ptr %8044, align 8, !tbaa !5
  %8046 = load i32, ptr %16, align 4, !tbaa !14
  %8047 = add nsw i32 %8046, 7
  %8048 = sext i32 %8047 to i64
  %8049 = getelementptr inbounds i8, ptr %8045, i64 %8048
  store i8 %8035, ptr %8049, align 1, !tbaa !16
  %8050 = load ptr, ptr %13, align 8, !tbaa !5
  %8051 = load i32, ptr %15, align 4, !tbaa !14
  %8052 = sext i32 %8051 to i64
  %8053 = getelementptr inbounds ptr, ptr %8050, i64 %8052
  %8054 = load ptr, ptr %8053, align 8, !tbaa !5
  %8055 = load i32, ptr %16, align 4, !tbaa !14
  %8056 = add nsw i32 %8055, 8
  %8057 = sext i32 %8056 to i64
  %8058 = getelementptr inbounds i8, ptr %8054, i64 %8057
  %8059 = load i8, ptr %8058, align 1, !tbaa !16
  %8060 = zext i8 %8059 to i32
  %8061 = load ptr, ptr %14, align 8, !tbaa !5
  %8062 = load i32, ptr %15, align 4, !tbaa !14
  %8063 = sext i32 %8062 to i64
  %8064 = getelementptr inbounds ptr, ptr %8061, i64 %8063
  %8065 = load ptr, ptr %8064, align 8, !tbaa !5
  %8066 = load i32, ptr %16, align 4, !tbaa !14
  %8067 = add nsw i32 %8066, 8
  %8068 = sext i32 %8067 to i64
  %8069 = getelementptr inbounds i8, ptr %8065, i64 %8068
  %8070 = load i8, ptr %8069, align 1, !tbaa !16
  %8071 = zext i8 %8070 to i32
  %8072 = sub nsw i32 %8060, %8071
  %8073 = icmp slt i32 %8072, 255
  br i1 %8073, label %8074, label %8098

8074:                                             ; preds = %8033
  %8075 = load ptr, ptr %13, align 8, !tbaa !5
  %8076 = load i32, ptr %15, align 4, !tbaa !14
  %8077 = sext i32 %8076 to i64
  %8078 = getelementptr inbounds ptr, ptr %8075, i64 %8077
  %8079 = load ptr, ptr %8078, align 8, !tbaa !5
  %8080 = load i32, ptr %16, align 4, !tbaa !14
  %8081 = add nsw i32 %8080, 8
  %8082 = sext i32 %8081 to i64
  %8083 = getelementptr inbounds i8, ptr %8079, i64 %8082
  %8084 = load i8, ptr %8083, align 1, !tbaa !16
  %8085 = zext i8 %8084 to i32
  %8086 = load ptr, ptr %14, align 8, !tbaa !5
  %8087 = load i32, ptr %15, align 4, !tbaa !14
  %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 %16, align 4, !tbaa !14
  %8092 = add nsw i32 %8091, 8
  %8093 = sext i32 %8092 to i64
  %8094 = getelementptr inbounds i8, ptr %8090, i64 %8093
  %8095 = load i8, ptr %8094, align 1, !tbaa !16
  %8096 = zext i8 %8095 to i32
  %8097 = sub nsw i32 %8085, %8096
  br label %8099

8098:                                             ; preds = %8033
  br label %8099

8099:                                             ; preds = %8098, %8074
  %8100 = phi i32 [ %8097, %8074 ], [ 255, %8098 ]
  %8101 = trunc i32 %8100 to i8
  %8102 = load ptr, ptr %6, align 8, !tbaa !5
  %8103 = getelementptr inbounds %struct.MImage, ptr %8102, i32 0, i32 3
  %8104 = load i32, ptr %12, align 4, !tbaa !14
  %8105 = sext i32 %8104 to i64
  %8106 = getelementptr inbounds [4 x ptr], ptr %8103, i64 0, i64 %8105
  %8107 = load ptr, ptr %8106, align 8, !tbaa !5
  %8108 = load i32, ptr %15, align 4, !tbaa !14
  %8109 = sext i32 %8108 to i64
  %8110 = getelementptr inbounds ptr, ptr %8107, i64 %8109
  %8111 = load ptr, ptr %8110, align 8, !tbaa !5
  %8112 = load i32, ptr %16, align 4, !tbaa !14
  %8113 = add nsw i32 %8112, 8
  %8114 = sext i32 %8113 to i64
  %8115 = getelementptr inbounds i8, ptr %8111, i64 %8114
  store i8 %8101, ptr %8115, align 1, !tbaa !16
  %8116 = load ptr, ptr %13, align 8, !tbaa !5
  %8117 = load i32, ptr %15, align 4, !tbaa !14
  %8118 = sext i32 %8117 to i64
  %8119 = getelementptr inbounds ptr, ptr %8116, i64 %8118
  %8120 = load ptr, ptr %8119, align 8, !tbaa !5
  %8121 = load i32, ptr %16, align 4, !tbaa !14
  %8122 = add nsw i32 %8121, 9
  %8123 = sext i32 %8122 to i64
  %8124 = getelementptr inbounds i8, ptr %8120, i64 %8123
  %8125 = load i8, ptr %8124, align 1, !tbaa !16
  %8126 = zext i8 %8125 to i32
  %8127 = load ptr, ptr %14, align 8, !tbaa !5
  %8128 = load i32, ptr %15, align 4, !tbaa !14
  %8129 = sext i32 %8128 to i64
  %8130 = getelementptr inbounds ptr, ptr %8127, i64 %8129
  %8131 = load ptr, ptr %8130, align 8, !tbaa !5
  %8132 = load i32, ptr %16, align 4, !tbaa !14
  %8133 = add nsw i32 %8132, 9
  %8134 = sext i32 %8133 to i64
  %8135 = getelementptr inbounds i8, ptr %8131, i64 %8134
  %8136 = load i8, ptr %8135, align 1, !tbaa !16
  %8137 = zext i8 %8136 to i32
  %8138 = sub nsw i32 %8126, %8137
  %8139 = icmp slt i32 %8138, 255
  br i1 %8139, label %8140, label %8164

8140:                                             ; preds = %8099
  %8141 = load ptr, ptr %13, align 8, !tbaa !5
  %8142 = load i32, ptr %15, align 4, !tbaa !14
  %8143 = sext i32 %8142 to i64
  %8144 = getelementptr inbounds ptr, ptr %8141, i64 %8143
  %8145 = load ptr, ptr %8144, align 8, !tbaa !5
  %8146 = load i32, ptr %16, align 4, !tbaa !14
  %8147 = add nsw i32 %8146, 9
  %8148 = sext i32 %8147 to i64
  %8149 = getelementptr inbounds i8, ptr %8145, i64 %8148
  %8150 = load i8, ptr %8149, align 1, !tbaa !16
  %8151 = zext i8 %8150 to i32
  %8152 = load ptr, ptr %14, align 8, !tbaa !5
  %8153 = load i32, ptr %15, align 4, !tbaa !14
  %8154 = sext i32 %8153 to i64
  %8155 = getelementptr inbounds ptr, ptr %8152, i64 %8154
  %8156 = load ptr, ptr %8155, align 8, !tbaa !5
  %8157 = load i32, ptr %16, align 4, !tbaa !14
  %8158 = add nsw i32 %8157, 9
  %8159 = sext i32 %8158 to i64
  %8160 = getelementptr inbounds i8, ptr %8156, i64 %8159
  %8161 = load i8, ptr %8160, align 1, !tbaa !16
  %8162 = zext i8 %8161 to i32
  %8163 = sub nsw i32 %8151, %8162
  br label %8165

8164:                                             ; preds = %8099
  br label %8165

8165:                                             ; preds = %8164, %8140
  %8166 = phi i32 [ %8163, %8140 ], [ 255, %8164 ]
  %8167 = trunc i32 %8166 to i8
  %8168 = load ptr, ptr %6, align 8, !tbaa !5
  %8169 = getelementptr inbounds %struct.MImage, ptr %8168, i32 0, i32 3
  %8170 = load i32, ptr %12, align 4, !tbaa !14
  %8171 = sext i32 %8170 to i64
  %8172 = getelementptr inbounds [4 x ptr], ptr %8169, i64 0, i64 %8171
  %8173 = load ptr, ptr %8172, align 8, !tbaa !5
  %8174 = load i32, ptr %15, align 4, !tbaa !14
  %8175 = sext i32 %8174 to i64
  %8176 = getelementptr inbounds ptr, ptr %8173, i64 %8175
  %8177 = load ptr, ptr %8176, align 8, !tbaa !5
  %8178 = load i32, ptr %16, align 4, !tbaa !14
  %8179 = add nsw i32 %8178, 9
  %8180 = sext i32 %8179 to i64
  %8181 = getelementptr inbounds i8, ptr %8177, i64 %8180
  store i8 %8167, ptr %8181, align 1, !tbaa !16
  %8182 = load ptr, ptr %13, align 8, !tbaa !5
  %8183 = load i32, ptr %15, align 4, !tbaa !14
  %8184 = sext i32 %8183 to i64
  %8185 = getelementptr inbounds ptr, ptr %8182, i64 %8184
  %8186 = load ptr, ptr %8185, align 8, !tbaa !5
  %8187 = load i32, ptr %16, align 4, !tbaa !14
  %8188 = add nsw i32 %8187, 10
  %8189 = sext i32 %8188 to i64
  %8190 = getelementptr inbounds i8, ptr %8186, i64 %8189
  %8191 = load i8, ptr %8190, align 1, !tbaa !16
  %8192 = zext i8 %8191 to i32
  %8193 = load ptr, ptr %14, align 8, !tbaa !5
  %8194 = load i32, ptr %15, align 4, !tbaa !14
  %8195 = sext i32 %8194 to i64
  %8196 = getelementptr inbounds ptr, ptr %8193, i64 %8195
  %8197 = load ptr, ptr %8196, align 8, !tbaa !5
  %8198 = load i32, ptr %16, align 4, !tbaa !14
  %8199 = add nsw i32 %8198, 10
  %8200 = sext i32 %8199 to i64
  %8201 = getelementptr inbounds i8, ptr %8197, i64 %8200
  %8202 = load i8, ptr %8201, align 1, !tbaa !16
  %8203 = zext i8 %8202 to i32
  %8204 = sub nsw i32 %8192, %8203
  %8205 = icmp slt i32 %8204, 255
  br i1 %8205, label %8206, label %8230

8206:                                             ; preds = %8165
  %8207 = load ptr, ptr %13, align 8, !tbaa !5
  %8208 = load i32, ptr %15, align 4, !tbaa !14
  %8209 = sext i32 %8208 to i64
  %8210 = getelementptr inbounds ptr, ptr %8207, i64 %8209
  %8211 = load ptr, ptr %8210, align 8, !tbaa !5
  %8212 = load i32, ptr %16, align 4, !tbaa !14
  %8213 = add nsw i32 %8212, 10
  %8214 = sext i32 %8213 to i64
  %8215 = getelementptr inbounds i8, ptr %8211, i64 %8214
  %8216 = load i8, ptr %8215, align 1, !tbaa !16
  %8217 = zext i8 %8216 to i32
  %8218 = load ptr, ptr %14, align 8, !tbaa !5
  %8219 = load i32, ptr %15, align 4, !tbaa !14
  %8220 = sext i32 %8219 to i64
  %8221 = getelementptr inbounds ptr, ptr %8218, i64 %8220
  %8222 = load ptr, ptr %8221, align 8, !tbaa !5
  %8223 = load i32, ptr %16, align 4, !tbaa !14
  %8224 = add nsw i32 %8223, 10
  %8225 = sext i32 %8224 to i64
  %8226 = getelementptr inbounds i8, ptr %8222, i64 %8225
  %8227 = load i8, ptr %8226, align 1, !tbaa !16
  %8228 = zext i8 %8227 to i32
  %8229 = sub nsw i32 %8217, %8228
  br label %8231

8230:                                             ; preds = %8165
  br label %8231

8231:                                             ; preds = %8230, %8206
  %8232 = phi i32 [ %8229, %8206 ], [ 255, %8230 ]
  %8233 = trunc i32 %8232 to i8
  %8234 = load ptr, ptr %6, align 8, !tbaa !5
  %8235 = getelementptr inbounds %struct.MImage, ptr %8234, i32 0, i32 3
  %8236 = load i32, ptr %12, align 4, !tbaa !14
  %8237 = sext i32 %8236 to i64
  %8238 = getelementptr inbounds [4 x ptr], ptr %8235, i64 0, i64 %8237
  %8239 = load ptr, ptr %8238, align 8, !tbaa !5
  %8240 = load i32, ptr %15, align 4, !tbaa !14
  %8241 = sext i32 %8240 to i64
  %8242 = getelementptr inbounds ptr, ptr %8239, i64 %8241
  %8243 = load ptr, ptr %8242, align 8, !tbaa !5
  %8244 = load i32, ptr %16, align 4, !tbaa !14
  %8245 = add nsw i32 %8244, 10
  %8246 = sext i32 %8245 to i64
  %8247 = getelementptr inbounds i8, ptr %8243, i64 %8246
  store i8 %8233, ptr %8247, align 1, !tbaa !16
  %8248 = load ptr, ptr %13, align 8, !tbaa !5
  %8249 = load i32, ptr %15, align 4, !tbaa !14
  %8250 = sext i32 %8249 to i64
  %8251 = getelementptr inbounds ptr, ptr %8248, i64 %8250
  %8252 = load ptr, ptr %8251, align 8, !tbaa !5
  %8253 = load i32, ptr %16, align 4, !tbaa !14
  %8254 = add nsw i32 %8253, 11
  %8255 = sext i32 %8254 to i64
  %8256 = getelementptr inbounds i8, ptr %8252, i64 %8255
  %8257 = load i8, ptr %8256, align 1, !tbaa !16
  %8258 = zext i8 %8257 to i32
  %8259 = load ptr, ptr %14, align 8, !tbaa !5
  %8260 = load i32, ptr %15, align 4, !tbaa !14
  %8261 = sext i32 %8260 to i64
  %8262 = getelementptr inbounds ptr, ptr %8259, i64 %8261
  %8263 = load ptr, ptr %8262, align 8, !tbaa !5
  %8264 = load i32, ptr %16, align 4, !tbaa !14
  %8265 = add nsw i32 %8264, 11
  %8266 = sext i32 %8265 to i64
  %8267 = getelementptr inbounds i8, ptr %8263, i64 %8266
  %8268 = load i8, ptr %8267, align 1, !tbaa !16
  %8269 = zext i8 %8268 to i32
  %8270 = sub nsw i32 %8258, %8269
  %8271 = icmp slt i32 %8270, 255
  br i1 %8271, label %8272, label %8296

8272:                                             ; preds = %8231
  %8273 = load ptr, ptr %13, align 8, !tbaa !5
  %8274 = load i32, ptr %15, align 4, !tbaa !14
  %8275 = sext i32 %8274 to i64
  %8276 = getelementptr inbounds ptr, ptr %8273, i64 %8275
  %8277 = load ptr, ptr %8276, align 8, !tbaa !5
  %8278 = load i32, ptr %16, align 4, !tbaa !14
  %8279 = add nsw i32 %8278, 11
  %8280 = sext i32 %8279 to i64
  %8281 = getelementptr inbounds i8, ptr %8277, i64 %8280
  %8282 = load i8, ptr %8281, align 1, !tbaa !16
  %8283 = zext i8 %8282 to i32
  %8284 = load ptr, ptr %14, align 8, !tbaa !5
  %8285 = load i32, ptr %15, align 4, !tbaa !14
  %8286 = sext i32 %8285 to i64
  %8287 = getelementptr inbounds ptr, ptr %8284, i64 %8286
  %8288 = load ptr, ptr %8287, align 8, !tbaa !5
  %8289 = load i32, ptr %16, align 4, !tbaa !14
  %8290 = add nsw i32 %8289, 11
  %8291 = sext i32 %8290 to i64
  %8292 = getelementptr inbounds i8, ptr %8288, i64 %8291
  %8293 = load i8, ptr %8292, align 1, !tbaa !16
  %8294 = zext i8 %8293 to i32
  %8295 = sub nsw i32 %8283, %8294
  br label %8297

8296:                                             ; preds = %8231
  br label %8297

8297:                                             ; preds = %8296, %8272
  %8298 = phi i32 [ %8295, %8272 ], [ 255, %8296 ]
  %8299 = trunc i32 %8298 to i8
  %8300 = load ptr, ptr %6, align 8, !tbaa !5
  %8301 = getelementptr inbounds %struct.MImage, ptr %8300, i32 0, i32 3
  %8302 = load i32, ptr %12, align 4, !tbaa !14
  %8303 = sext i32 %8302 to i64
  %8304 = getelementptr inbounds [4 x ptr], ptr %8301, i64 0, i64 %8303
  %8305 = load ptr, ptr %8304, align 8, !tbaa !5
  %8306 = load i32, ptr %15, align 4, !tbaa !14
  %8307 = sext i32 %8306 to i64
  %8308 = getelementptr inbounds ptr, ptr %8305, i64 %8307
  %8309 = load ptr, ptr %8308, align 8, !tbaa !5
  %8310 = load i32, ptr %16, align 4, !tbaa !14
  %8311 = add nsw i32 %8310, 11
  %8312 = sext i32 %8311 to i64
  %8313 = getelementptr inbounds i8, ptr %8309, i64 %8312
  store i8 %8299, ptr %8313, align 1, !tbaa !16
  %8314 = load ptr, ptr %13, align 8, !tbaa !5
  %8315 = load i32, ptr %15, align 4, !tbaa !14
  %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 %16, align 4, !tbaa !14
  %8320 = add nsw i32 %8319, 12
  %8321 = sext i32 %8320 to i64
  %8322 = getelementptr inbounds i8, ptr %8318, i64 %8321
  %8323 = load i8, ptr %8322, align 1, !tbaa !16
  %8324 = zext i8 %8323 to i32
  %8325 = load ptr, ptr %14, align 8, !tbaa !5
  %8326 = load i32, ptr %15, align 4, !tbaa !14
  %8327 = sext i32 %8326 to i64
  %8328 = getelementptr inbounds ptr, ptr %8325, i64 %8327
  %8329 = load ptr, ptr %8328, align 8, !tbaa !5
  %8330 = load i32, ptr %16, align 4, !tbaa !14
  %8331 = add nsw i32 %8330, 12
  %8332 = sext i32 %8331 to i64
  %8333 = getelementptr inbounds i8, ptr %8329, i64 %8332
  %8334 = load i8, ptr %8333, align 1, !tbaa !16
  %8335 = zext i8 %8334 to i32
  %8336 = sub nsw i32 %8324, %8335
  %8337 = icmp slt i32 %8336, 255
  br i1 %8337, label %8338, label %8362

8338:                                             ; preds = %8297
  %8339 = load ptr, ptr %13, align 8, !tbaa !5
  %8340 = load i32, ptr %15, align 4, !tbaa !14
  %8341 = sext i32 %8340 to i64
  %8342 = getelementptr inbounds ptr, ptr %8339, i64 %8341
  %8343 = load ptr, ptr %8342, align 8, !tbaa !5
  %8344 = load i32, ptr %16, align 4, !tbaa !14
  %8345 = add nsw i32 %8344, 12
  %8346 = sext i32 %8345 to i64
  %8347 = getelementptr inbounds i8, ptr %8343, i64 %8346
  %8348 = load i8, ptr %8347, align 1, !tbaa !16
  %8349 = zext i8 %8348 to i32
  %8350 = load ptr, ptr %14, align 8, !tbaa !5
  %8351 = load i32, ptr %15, align 4, !tbaa !14
  %8352 = sext i32 %8351 to i64
  %8353 = getelementptr inbounds ptr, ptr %8350, i64 %8352
  %8354 = load ptr, ptr %8353, align 8, !tbaa !5
  %8355 = load i32, ptr %16, align 4, !tbaa !14
  %8356 = add nsw i32 %8355, 12
  %8357 = sext i32 %8356 to i64
  %8358 = getelementptr inbounds i8, ptr %8354, i64 %8357
  %8359 = load i8, ptr %8358, align 1, !tbaa !16
  %8360 = zext i8 %8359 to i32
  %8361 = sub nsw i32 %8349, %8360
  br label %8363

8362:                                             ; preds = %8297
  br label %8363

8363:                                             ; preds = %8362, %8338
  %8364 = phi i32 [ %8361, %8338 ], [ 255, %8362 ]
  %8365 = trunc i32 %8364 to i8
  %8366 = load ptr, ptr %6, align 8, !tbaa !5
  %8367 = getelementptr inbounds %struct.MImage, ptr %8366, i32 0, i32 3
  %8368 = load i32, ptr %12, align 4, !tbaa !14
  %8369 = sext i32 %8368 to i64
  %8370 = getelementptr inbounds [4 x ptr], ptr %8367, i64 0, i64 %8369
  %8371 = load ptr, ptr %8370, align 8, !tbaa !5
  %8372 = load i32, ptr %15, align 4, !tbaa !14
  %8373 = sext i32 %8372 to i64
  %8374 = getelementptr inbounds ptr, ptr %8371, i64 %8373
  %8375 = load ptr, ptr %8374, align 8, !tbaa !5
  %8376 = load i32, ptr %16, align 4, !tbaa !14
  %8377 = add nsw i32 %8376, 12
  %8378 = sext i32 %8377 to i64
  %8379 = getelementptr inbounds i8, ptr %8375, i64 %8378
  store i8 %8365, ptr %8379, align 1, !tbaa !16
  %8380 = load ptr, ptr %13, align 8, !tbaa !5
  %8381 = load i32, ptr %15, align 4, !tbaa !14
  %8382 = sext i32 %8381 to i64
  %8383 = getelementptr inbounds ptr, ptr %8380, i64 %8382
  %8384 = load ptr, ptr %8383, align 8, !tbaa !5
  %8385 = load i32, ptr %16, align 4, !tbaa !14
  %8386 = add nsw i32 %8385, 13
  %8387 = sext i32 %8386 to i64
  %8388 = getelementptr inbounds i8, ptr %8384, i64 %8387
  %8389 = load i8, ptr %8388, align 1, !tbaa !16
  %8390 = zext i8 %8389 to i32
  %8391 = load ptr, ptr %14, align 8, !tbaa !5
  %8392 = load i32, ptr %15, align 4, !tbaa !14
  %8393 = sext i32 %8392 to i64
  %8394 = getelementptr inbounds ptr, ptr %8391, i64 %8393
  %8395 = load ptr, ptr %8394, align 8, !tbaa !5
  %8396 = load i32, ptr %16, align 4, !tbaa !14
  %8397 = add nsw i32 %8396, 13
  %8398 = sext i32 %8397 to i64
  %8399 = getelementptr inbounds i8, ptr %8395, i64 %8398
  %8400 = load i8, ptr %8399, align 1, !tbaa !16
  %8401 = zext i8 %8400 to i32
  %8402 = sub nsw i32 %8390, %8401
  %8403 = icmp slt i32 %8402, 255
  br i1 %8403, label %8404, label %8428

8404:                                             ; preds = %8363
  %8405 = load ptr, ptr %13, align 8, !tbaa !5
  %8406 = load i32, ptr %15, align 4, !tbaa !14
  %8407 = sext i32 %8406 to i64
  %8408 = getelementptr inbounds ptr, ptr %8405, i64 %8407
  %8409 = load ptr, ptr %8408, align 8, !tbaa !5
  %8410 = load i32, ptr %16, align 4, !tbaa !14
  %8411 = add nsw i32 %8410, 13
  %8412 = sext i32 %8411 to i64
  %8413 = getelementptr inbounds i8, ptr %8409, i64 %8412
  %8414 = load i8, ptr %8413, align 1, !tbaa !16
  %8415 = zext i8 %8414 to i32
  %8416 = load ptr, ptr %14, align 8, !tbaa !5
  %8417 = load i32, ptr %15, align 4, !tbaa !14
  %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 %16, align 4, !tbaa !14
  %8422 = add nsw i32 %8421, 13
  %8423 = sext i32 %8422 to i64
  %8424 = getelementptr inbounds i8, ptr %8420, i64 %8423
  %8425 = load i8, ptr %8424, align 1, !tbaa !16
  %8426 = zext i8 %8425 to i32
  %8427 = sub nsw i32 %8415, %8426
  br label %8429

8428:                                             ; preds = %8363
  br label %8429

8429:                                             ; preds = %8428, %8404
  %8430 = phi i32 [ %8427, %8404 ], [ 255, %8428 ]
  %8431 = trunc i32 %8430 to i8
  %8432 = load ptr, ptr %6, align 8, !tbaa !5
  %8433 = getelementptr inbounds %struct.MImage, ptr %8432, i32 0, i32 3
  %8434 = load i32, ptr %12, align 4, !tbaa !14
  %8435 = sext i32 %8434 to i64
  %8436 = getelementptr inbounds [4 x ptr], ptr %8433, i64 0, i64 %8435
  %8437 = load ptr, ptr %8436, align 8, !tbaa !5
  %8438 = load i32, ptr %15, align 4, !tbaa !14
  %8439 = sext i32 %8438 to i64
  %8440 = getelementptr inbounds ptr, ptr %8437, i64 %8439
  %8441 = load ptr, ptr %8440, align 8, !tbaa !5
  %8442 = load i32, ptr %16, align 4, !tbaa !14
  %8443 = add nsw i32 %8442, 13
  %8444 = sext i32 %8443 to i64
  %8445 = getelementptr inbounds i8, ptr %8441, i64 %8444
  store i8 %8431, ptr %8445, align 1, !tbaa !16
  br label %9445

8446:                                             ; preds = %7514
  %8447 = load ptr, ptr %6, align 8, !tbaa !5
  %8448 = getelementptr inbounds %struct.MImage, ptr %8447, i32 0, i32 2
  %8449 = load i32, ptr %8448, align 8, !tbaa !13
  %8450 = load i32, ptr %16, align 4, !tbaa !14
  %8451 = sub nsw i32 %8449, %8450
  %8452 = icmp eq i32 %8451, 15
  br i1 %8452, label %8453, label %9444

8453:                                             ; preds = %8446
  %8454 = load ptr, ptr %13, align 8, !tbaa !5
  %8455 = load i32, ptr %15, align 4, !tbaa !14
  %8456 = sext i32 %8455 to i64
  %8457 = getelementptr inbounds ptr, ptr %8454, i64 %8456
  %8458 = load ptr, ptr %8457, align 8, !tbaa !5
  %8459 = load i32, ptr %16, align 4, !tbaa !14
  %8460 = add nsw i32 %8459, 0
  %8461 = sext i32 %8460 to i64
  %8462 = getelementptr inbounds i8, ptr %8458, i64 %8461
  %8463 = load i8, ptr %8462, align 1, !tbaa !16
  %8464 = zext i8 %8463 to i32
  %8465 = load ptr, ptr %14, align 8, !tbaa !5
  %8466 = load i32, ptr %15, align 4, !tbaa !14
  %8467 = sext i32 %8466 to i64
  %8468 = getelementptr inbounds ptr, ptr %8465, i64 %8467
  %8469 = load ptr, ptr %8468, align 8, !tbaa !5
  %8470 = load i32, ptr %16, align 4, !tbaa !14
  %8471 = add nsw i32 %8470, 0
  %8472 = sext i32 %8471 to i64
  %8473 = getelementptr inbounds i8, ptr %8469, i64 %8472
  %8474 = load i8, ptr %8473, align 1, !tbaa !16
  %8475 = zext i8 %8474 to i32
  %8476 = sub nsw i32 %8464, %8475
  %8477 = icmp slt i32 %8476, 255
  br i1 %8477, label %8478, label %8502

8478:                                             ; preds = %8453
  %8479 = load ptr, ptr %13, align 8, !tbaa !5
  %8480 = load i32, ptr %15, align 4, !tbaa !14
  %8481 = sext i32 %8480 to i64
  %8482 = getelementptr inbounds ptr, ptr %8479, i64 %8481
  %8483 = load ptr, ptr %8482, align 8, !tbaa !5
  %8484 = load i32, ptr %16, align 4, !tbaa !14
  %8485 = add nsw i32 %8484, 0
  %8486 = sext i32 %8485 to i64
  %8487 = getelementptr inbounds i8, ptr %8483, i64 %8486
  %8488 = load i8, ptr %8487, align 1, !tbaa !16
  %8489 = zext i8 %8488 to i32
  %8490 = load ptr, ptr %14, align 8, !tbaa !5
  %8491 = load i32, ptr %15, align 4, !tbaa !14
  %8492 = sext i32 %8491 to i64
  %8493 = getelementptr inbounds ptr, ptr %8490, i64 %8492
  %8494 = load ptr, ptr %8493, align 8, !tbaa !5
  %8495 = load i32, ptr %16, align 4, !tbaa !14
  %8496 = add nsw i32 %8495, 0
  %8497 = sext i32 %8496 to i64
  %8498 = getelementptr inbounds i8, ptr %8494, i64 %8497
  %8499 = load i8, ptr %8498, align 1, !tbaa !16
  %8500 = zext i8 %8499 to i32
  %8501 = sub nsw i32 %8489, %8500
  br label %8503

8502:                                             ; preds = %8453
  br label %8503

8503:                                             ; preds = %8502, %8478
  %8504 = phi i32 [ %8501, %8478 ], [ 255, %8502 ]
  %8505 = trunc i32 %8504 to i8
  %8506 = load ptr, ptr %6, align 8, !tbaa !5
  %8507 = getelementptr inbounds %struct.MImage, ptr %8506, i32 0, i32 3
  %8508 = load i32, ptr %12, align 4, !tbaa !14
  %8509 = sext i32 %8508 to i64
  %8510 = getelementptr inbounds [4 x ptr], ptr %8507, i64 0, i64 %8509
  %8511 = load ptr, ptr %8510, align 8, !tbaa !5
  %8512 = load i32, ptr %15, align 4, !tbaa !14
  %8513 = sext i32 %8512 to i64
  %8514 = getelementptr inbounds ptr, ptr %8511, i64 %8513
  %8515 = load ptr, ptr %8514, align 8, !tbaa !5
  %8516 = load i32, ptr %16, align 4, !tbaa !14
  %8517 = add nsw i32 %8516, 0
  %8518 = sext i32 %8517 to i64
  %8519 = getelementptr inbounds i8, ptr %8515, i64 %8518
  store i8 %8505, ptr %8519, align 1, !tbaa !16
  %8520 = load ptr, ptr %13, align 8, !tbaa !5
  %8521 = load i32, ptr %15, align 4, !tbaa !14
  %8522 = sext i32 %8521 to i64
  %8523 = getelementptr inbounds ptr, ptr %8520, i64 %8522
  %8524 = load ptr, ptr %8523, align 8, !tbaa !5
  %8525 = load i32, ptr %16, align 4, !tbaa !14
  %8526 = add nsw i32 %8525, 1
  %8527 = sext i32 %8526 to i64
  %8528 = getelementptr inbounds i8, ptr %8524, i64 %8527
  %8529 = load i8, ptr %8528, align 1, !tbaa !16
  %8530 = zext i8 %8529 to i32
  %8531 = load ptr, ptr %14, align 8, !tbaa !5
  %8532 = load i32, ptr %15, align 4, !tbaa !14
  %8533 = sext i32 %8532 to i64
  %8534 = getelementptr inbounds ptr, ptr %8531, i64 %8533
  %8535 = load ptr, ptr %8534, align 8, !tbaa !5
  %8536 = load i32, ptr %16, align 4, !tbaa !14
  %8537 = add nsw i32 %8536, 1
  %8538 = sext i32 %8537 to i64
  %8539 = getelementptr inbounds i8, ptr %8535, i64 %8538
  %8540 = load i8, ptr %8539, align 1, !tbaa !16
  %8541 = zext i8 %8540 to i32
  %8542 = sub nsw i32 %8530, %8541
  %8543 = icmp slt i32 %8542, 255
  br i1 %8543, label %8544, label %8568

8544:                                             ; preds = %8503
  %8545 = load ptr, ptr %13, align 8, !tbaa !5
  %8546 = load i32, ptr %15, align 4, !tbaa !14
  %8547 = sext i32 %8546 to i64
  %8548 = getelementptr inbounds ptr, ptr %8545, i64 %8547
  %8549 = load ptr, ptr %8548, align 8, !tbaa !5
  %8550 = load i32, ptr %16, align 4, !tbaa !14
  %8551 = add nsw i32 %8550, 1
  %8552 = sext i32 %8551 to i64
  %8553 = getelementptr inbounds i8, ptr %8549, i64 %8552
  %8554 = load i8, ptr %8553, align 1, !tbaa !16
  %8555 = zext i8 %8554 to i32
  %8556 = load ptr, ptr %14, align 8, !tbaa !5
  %8557 = load i32, ptr %15, align 4, !tbaa !14
  %8558 = sext i32 %8557 to i64
  %8559 = getelementptr inbounds ptr, ptr %8556, i64 %8558
  %8560 = load ptr, ptr %8559, align 8, !tbaa !5
  %8561 = load i32, ptr %16, align 4, !tbaa !14
  %8562 = add nsw i32 %8561, 1
  %8563 = sext i32 %8562 to i64
  %8564 = getelementptr inbounds i8, ptr %8560, i64 %8563
  %8565 = load i8, ptr %8564, align 1, !tbaa !16
  %8566 = zext i8 %8565 to i32
  %8567 = sub nsw i32 %8555, %8566
  br label %8569

8568:                                             ; preds = %8503
  br label %8569

8569:                                             ; preds = %8568, %8544
  %8570 = phi i32 [ %8567, %8544 ], [ 255, %8568 ]
  %8571 = trunc i32 %8570 to i8
  %8572 = load ptr, ptr %6, align 8, !tbaa !5
  %8573 = getelementptr inbounds %struct.MImage, ptr %8572, i32 0, i32 3
  %8574 = load i32, ptr %12, align 4, !tbaa !14
  %8575 = sext i32 %8574 to i64
  %8576 = getelementptr inbounds [4 x ptr], ptr %8573, i64 0, i64 %8575
  %8577 = load ptr, ptr %8576, align 8, !tbaa !5
  %8578 = load i32, ptr %15, align 4, !tbaa !14
  %8579 = sext i32 %8578 to i64
  %8580 = getelementptr inbounds ptr, ptr %8577, i64 %8579
  %8581 = load ptr, ptr %8580, align 8, !tbaa !5
  %8582 = load i32, ptr %16, align 4, !tbaa !14
  %8583 = add nsw i32 %8582, 1
  %8584 = sext i32 %8583 to i64
  %8585 = getelementptr inbounds i8, ptr %8581, i64 %8584
  store i8 %8571, ptr %8585, align 1, !tbaa !16
  %8586 = load ptr, ptr %13, align 8, !tbaa !5
  %8587 = load i32, ptr %15, align 4, !tbaa !14
  %8588 = sext i32 %8587 to i64
  %8589 = getelementptr inbounds ptr, ptr %8586, i64 %8588
  %8590 = load ptr, ptr %8589, align 8, !tbaa !5
  %8591 = load i32, ptr %16, align 4, !tbaa !14
  %8592 = add nsw i32 %8591, 2
  %8593 = sext i32 %8592 to i64
  %8594 = getelementptr inbounds i8, ptr %8590, i64 %8593
  %8595 = load i8, ptr %8594, align 1, !tbaa !16
  %8596 = zext i8 %8595 to i32
  %8597 = load ptr, ptr %14, align 8, !tbaa !5
  %8598 = load i32, ptr %15, align 4, !tbaa !14
  %8599 = sext i32 %8598 to i64
  %8600 = getelementptr inbounds ptr, ptr %8597, i64 %8599
  %8601 = load ptr, ptr %8600, align 8, !tbaa !5
  %8602 = load i32, ptr %16, align 4, !tbaa !14
  %8603 = add nsw i32 %8602, 2
  %8604 = sext i32 %8603 to i64
  %8605 = getelementptr inbounds i8, ptr %8601, i64 %8604
  %8606 = load i8, ptr %8605, align 1, !tbaa !16
  %8607 = zext i8 %8606 to i32
  %8608 = sub nsw i32 %8596, %8607
  %8609 = icmp slt i32 %8608, 255
  br i1 %8609, label %8610, label %8634

8610:                                             ; preds = %8569
  %8611 = load ptr, ptr %13, align 8, !tbaa !5
  %8612 = load i32, ptr %15, align 4, !tbaa !14
  %8613 = sext i32 %8612 to i64
  %8614 = getelementptr inbounds ptr, ptr %8611, i64 %8613
  %8615 = load ptr, ptr %8614, align 8, !tbaa !5
  %8616 = load i32, ptr %16, align 4, !tbaa !14
  %8617 = add nsw i32 %8616, 2
  %8618 = sext i32 %8617 to i64
  %8619 = getelementptr inbounds i8, ptr %8615, i64 %8618
  %8620 = load i8, ptr %8619, align 1, !tbaa !16
  %8621 = zext i8 %8620 to i32
  %8622 = load ptr, ptr %14, align 8, !tbaa !5
  %8623 = load i32, ptr %15, align 4, !tbaa !14
  %8624 = sext i32 %8623 to i64
  %8625 = getelementptr inbounds ptr, ptr %8622, i64 %8624
  %8626 = load ptr, ptr %8625, align 8, !tbaa !5
  %8627 = load i32, ptr %16, align 4, !tbaa !14
  %8628 = add nsw i32 %8627, 2
  %8629 = sext i32 %8628 to i64
  %8630 = getelementptr inbounds i8, ptr %8626, i64 %8629
  %8631 = load i8, ptr %8630, align 1, !tbaa !16
  %8632 = zext i8 %8631 to i32
  %8633 = sub nsw i32 %8621, %8632
  br label %8635

8634:                                             ; preds = %8569
  br label %8635

8635:                                             ; preds = %8634, %8610
  %8636 = phi i32 [ %8633, %8610 ], [ 255, %8634 ]
  %8637 = trunc i32 %8636 to i8
  %8638 = load ptr, ptr %6, align 8, !tbaa !5
  %8639 = getelementptr inbounds %struct.MImage, ptr %8638, i32 0, i32 3
  %8640 = load i32, ptr %12, align 4, !tbaa !14
  %8641 = sext i32 %8640 to i64
  %8642 = getelementptr inbounds [4 x ptr], ptr %8639, i64 0, i64 %8641
  %8643 = load ptr, ptr %8642, align 8, !tbaa !5
  %8644 = load i32, ptr %15, align 4, !tbaa !14
  %8645 = sext i32 %8644 to i64
  %8646 = getelementptr inbounds ptr, ptr %8643, i64 %8645
  %8647 = load ptr, ptr %8646, align 8, !tbaa !5
  %8648 = load i32, ptr %16, align 4, !tbaa !14
  %8649 = add nsw i32 %8648, 2
  %8650 = sext i32 %8649 to i64
  %8651 = getelementptr inbounds i8, ptr %8647, i64 %8650
  store i8 %8637, ptr %8651, align 1, !tbaa !16
  %8652 = load ptr, ptr %13, align 8, !tbaa !5
  %8653 = load i32, ptr %15, align 4, !tbaa !14
  %8654 = sext i32 %8653 to i64
  %8655 = getelementptr inbounds ptr, ptr %8652, i64 %8654
  %8656 = load ptr, ptr %8655, align 8, !tbaa !5
  %8657 = load i32, ptr %16, align 4, !tbaa !14
  %8658 = add nsw i32 %8657, 3
  %8659 = sext i32 %8658 to i64
  %8660 = getelementptr inbounds i8, ptr %8656, i64 %8659
  %8661 = load i8, ptr %8660, align 1, !tbaa !16
  %8662 = zext i8 %8661 to i32
  %8663 = load ptr, ptr %14, align 8, !tbaa !5
  %8664 = load i32, ptr %15, align 4, !tbaa !14
  %8665 = sext i32 %8664 to i64
  %8666 = getelementptr inbounds ptr, ptr %8663, i64 %8665
  %8667 = load ptr, ptr %8666, align 8, !tbaa !5
  %8668 = load i32, ptr %16, align 4, !tbaa !14
  %8669 = add nsw i32 %8668, 3
  %8670 = sext i32 %8669 to i64
  %8671 = getelementptr inbounds i8, ptr %8667, i64 %8670
  %8672 = load i8, ptr %8671, align 1, !tbaa !16
  %8673 = zext i8 %8672 to i32
  %8674 = sub nsw i32 %8662, %8673
  %8675 = icmp slt i32 %8674, 255
  br i1 %8675, label %8676, label %8700

8676:                                             ; preds = %8635
  %8677 = load ptr, ptr %13, align 8, !tbaa !5
  %8678 = load i32, ptr %15, align 4, !tbaa !14
  %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 %16, align 4, !tbaa !14
  %8683 = add nsw i32 %8682, 3
  %8684 = sext i32 %8683 to i64
  %8685 = getelementptr inbounds i8, ptr %8681, i64 %8684
  %8686 = load i8, ptr %8685, align 1, !tbaa !16
  %8687 = zext i8 %8686 to i32
  %8688 = load ptr, ptr %14, align 8, !tbaa !5
  %8689 = load i32, ptr %15, align 4, !tbaa !14
  %8690 = sext i32 %8689 to i64
  %8691 = getelementptr inbounds ptr, ptr %8688, i64 %8690
  %8692 = load ptr, ptr %8691, align 8, !tbaa !5
  %8693 = load i32, ptr %16, align 4, !tbaa !14
  %8694 = add nsw i32 %8693, 3
  %8695 = sext i32 %8694 to i64
  %8696 = getelementptr inbounds i8, ptr %8692, i64 %8695
  %8697 = load i8, ptr %8696, align 1, !tbaa !16
  %8698 = zext i8 %8697 to i32
  %8699 = sub nsw i32 %8687, %8698
  br label %8701

8700:                                             ; preds = %8635
  br label %8701

8701:                                             ; preds = %8700, %8676
  %8702 = phi i32 [ %8699, %8676 ], [ 255, %8700 ]
  %8703 = trunc i32 %8702 to i8
  %8704 = load ptr, ptr %6, align 8, !tbaa !5
  %8705 = getelementptr inbounds %struct.MImage, ptr %8704, i32 0, i32 3
  %8706 = load i32, ptr %12, align 4, !tbaa !14
  %8707 = sext i32 %8706 to i64
  %8708 = getelementptr inbounds [4 x ptr], ptr %8705, i64 0, i64 %8707
  %8709 = load ptr, ptr %8708, align 8, !tbaa !5
  %8710 = load i32, ptr %15, align 4, !tbaa !14
  %8711 = sext i32 %8710 to i64
  %8712 = getelementptr inbounds ptr, ptr %8709, i64 %8711
  %8713 = load ptr, ptr %8712, align 8, !tbaa !5
  %8714 = load i32, ptr %16, align 4, !tbaa !14
  %8715 = add nsw i32 %8714, 3
  %8716 = sext i32 %8715 to i64
  %8717 = getelementptr inbounds i8, ptr %8713, i64 %8716
  store i8 %8703, ptr %8717, align 1, !tbaa !16
  %8718 = load ptr, ptr %13, align 8, !tbaa !5
  %8719 = load i32, ptr %15, align 4, !tbaa !14
  %8720 = sext i32 %8719 to i64
  %8721 = getelementptr inbounds ptr, ptr %8718, i64 %8720
  %8722 = load ptr, ptr %8721, align 8, !tbaa !5
  %8723 = load i32, ptr %16, align 4, !tbaa !14
  %8724 = add nsw i32 %8723, 4
  %8725 = sext i32 %8724 to i64
  %8726 = getelementptr inbounds i8, ptr %8722, i64 %8725
  %8727 = load i8, ptr %8726, align 1, !tbaa !16
  %8728 = zext i8 %8727 to i32
  %8729 = load ptr, ptr %14, align 8, !tbaa !5
  %8730 = load i32, ptr %15, align 4, !tbaa !14
  %8731 = sext i32 %8730 to i64
  %8732 = getelementptr inbounds ptr, ptr %8729, i64 %8731
  %8733 = load ptr, ptr %8732, align 8, !tbaa !5
  %8734 = load i32, ptr %16, align 4, !tbaa !14
  %8735 = add nsw i32 %8734, 4
  %8736 = sext i32 %8735 to i64
  %8737 = getelementptr inbounds i8, ptr %8733, i64 %8736
  %8738 = load i8, ptr %8737, align 1, !tbaa !16
  %8739 = zext i8 %8738 to i32
  %8740 = sub nsw i32 %8728, %8739
  %8741 = icmp slt i32 %8740, 255
  br i1 %8741, label %8742, label %8766

8742:                                             ; preds = %8701
  %8743 = load ptr, ptr %13, align 8, !tbaa !5
  %8744 = load i32, ptr %15, align 4, !tbaa !14
  %8745 = sext i32 %8744 to i64
  %8746 = getelementptr inbounds ptr, ptr %8743, i64 %8745
  %8747 = load ptr, ptr %8746, align 8, !tbaa !5
  %8748 = load i32, ptr %16, align 4, !tbaa !14
  %8749 = add nsw i32 %8748, 4
  %8750 = sext i32 %8749 to i64
  %8751 = getelementptr inbounds i8, ptr %8747, i64 %8750
  %8752 = load i8, ptr %8751, align 1, !tbaa !16
  %8753 = zext i8 %8752 to i32
  %8754 = load ptr, ptr %14, align 8, !tbaa !5
  %8755 = load i32, ptr %15, align 4, !tbaa !14
  %8756 = sext i32 %8755 to i64
  %8757 = getelementptr inbounds ptr, ptr %8754, i64 %8756
  %8758 = load ptr, ptr %8757, align 8, !tbaa !5
  %8759 = load i32, ptr %16, align 4, !tbaa !14
  %8760 = add nsw i32 %8759, 4
  %8761 = sext i32 %8760 to i64
  %8762 = getelementptr inbounds i8, ptr %8758, i64 %8761
  %8763 = load i8, ptr %8762, align 1, !tbaa !16
  %8764 = zext i8 %8763 to i32
  %8765 = sub nsw i32 %8753, %8764
  br label %8767

8766:                                             ; preds = %8701
  br label %8767

8767:                                             ; preds = %8766, %8742
  %8768 = phi i32 [ %8765, %8742 ], [ 255, %8766 ]
  %8769 = trunc i32 %8768 to i8
  %8770 = load ptr, ptr %6, align 8, !tbaa !5
  %8771 = getelementptr inbounds %struct.MImage, ptr %8770, i32 0, i32 3
  %8772 = load i32, ptr %12, align 4, !tbaa !14
  %8773 = sext i32 %8772 to i64
  %8774 = getelementptr inbounds [4 x ptr], ptr %8771, i64 0, i64 %8773
  %8775 = load ptr, ptr %8774, align 8, !tbaa !5
  %8776 = load i32, ptr %15, align 4, !tbaa !14
  %8777 = sext i32 %8776 to i64
  %8778 = getelementptr inbounds ptr, ptr %8775, i64 %8777
  %8779 = load ptr, ptr %8778, align 8, !tbaa !5
  %8780 = load i32, ptr %16, align 4, !tbaa !14
  %8781 = add nsw i32 %8780, 4
  %8782 = sext i32 %8781 to i64
  %8783 = getelementptr inbounds i8, ptr %8779, i64 %8782
  store i8 %8769, ptr %8783, align 1, !tbaa !16
  %8784 = load ptr, ptr %13, align 8, !tbaa !5
  %8785 = load i32, ptr %15, align 4, !tbaa !14
  %8786 = sext i32 %8785 to i64
  %8787 = getelementptr inbounds ptr, ptr %8784, i64 %8786
  %8788 = load ptr, ptr %8787, align 8, !tbaa !5
  %8789 = load i32, ptr %16, align 4, !tbaa !14
  %8790 = add nsw i32 %8789, 5
  %8791 = sext i32 %8790 to i64
  %8792 = getelementptr inbounds i8, ptr %8788, i64 %8791
  %8793 = load i8, ptr %8792, align 1, !tbaa !16
  %8794 = zext i8 %8793 to i32
  %8795 = load ptr, ptr %14, align 8, !tbaa !5
  %8796 = load i32, ptr %15, align 4, !tbaa !14
  %8797 = sext i32 %8796 to i64
  %8798 = getelementptr inbounds ptr, ptr %8795, i64 %8797
  %8799 = load ptr, ptr %8798, align 8, !tbaa !5
  %8800 = load i32, ptr %16, align 4, !tbaa !14
  %8801 = add nsw i32 %8800, 5
  %8802 = sext i32 %8801 to i64
  %8803 = getelementptr inbounds i8, ptr %8799, i64 %8802
  %8804 = load i8, ptr %8803, align 1, !tbaa !16
  %8805 = zext i8 %8804 to i32
  %8806 = sub nsw i32 %8794, %8805
  %8807 = icmp slt i32 %8806, 255
  br i1 %8807, label %8808, label %8832

8808:                                             ; preds = %8767
  %8809 = load ptr, ptr %13, align 8, !tbaa !5
  %8810 = load i32, ptr %15, align 4, !tbaa !14
  %8811 = sext i32 %8810 to i64
  %8812 = getelementptr inbounds ptr, ptr %8809, i64 %8811
  %8813 = load ptr, ptr %8812, align 8, !tbaa !5
  %8814 = load i32, ptr %16, align 4, !tbaa !14
  %8815 = add nsw i32 %8814, 5
  %8816 = sext i32 %8815 to i64
  %8817 = getelementptr inbounds i8, ptr %8813, i64 %8816
  %8818 = load i8, ptr %8817, align 1, !tbaa !16
  %8819 = zext i8 %8818 to i32
  %8820 = load ptr, ptr %14, align 8, !tbaa !5
  %8821 = load i32, ptr %15, align 4, !tbaa !14
  %8822 = sext i32 %8821 to i64
  %8823 = getelementptr inbounds ptr, ptr %8820, i64 %8822
  %8824 = load ptr, ptr %8823, align 8, !tbaa !5
  %8825 = load i32, ptr %16, align 4, !tbaa !14
  %8826 = add nsw i32 %8825, 5
  %8827 = sext i32 %8826 to i64
  %8828 = getelementptr inbounds i8, ptr %8824, i64 %8827
  %8829 = load i8, ptr %8828, align 1, !tbaa !16
  %8830 = zext i8 %8829 to i32
  %8831 = sub nsw i32 %8819, %8830
  br label %8833

8832:                                             ; preds = %8767
  br label %8833

8833:                                             ; preds = %8832, %8808
  %8834 = phi i32 [ %8831, %8808 ], [ 255, %8832 ]
  %8835 = trunc i32 %8834 to i8
  %8836 = load ptr, ptr %6, align 8, !tbaa !5
  %8837 = getelementptr inbounds %struct.MImage, ptr %8836, i32 0, i32 3
  %8838 = load i32, ptr %12, align 4, !tbaa !14
  %8839 = sext i32 %8838 to i64
  %8840 = getelementptr inbounds [4 x ptr], ptr %8837, i64 0, i64 %8839
  %8841 = load ptr, ptr %8840, align 8, !tbaa !5
  %8842 = load i32, ptr %15, align 4, !tbaa !14
  %8843 = sext i32 %8842 to i64
  %8844 = getelementptr inbounds ptr, ptr %8841, i64 %8843
  %8845 = load ptr, ptr %8844, align 8, !tbaa !5
  %8846 = load i32, ptr %16, align 4, !tbaa !14
  %8847 = add nsw i32 %8846, 5
  %8848 = sext i32 %8847 to i64
  %8849 = getelementptr inbounds i8, ptr %8845, i64 %8848
  store i8 %8835, ptr %8849, align 1, !tbaa !16
  %8850 = load ptr, ptr %13, align 8, !tbaa !5
  %8851 = load i32, ptr %15, align 4, !tbaa !14
  %8852 = sext i32 %8851 to i64
  %8853 = getelementptr inbounds ptr, ptr %8850, i64 %8852
  %8854 = load ptr, ptr %8853, align 8, !tbaa !5
  %8855 = load i32, ptr %16, align 4, !tbaa !14
  %8856 = add nsw i32 %8855, 6
  %8857 = sext i32 %8856 to i64
  %8858 = getelementptr inbounds i8, ptr %8854, i64 %8857
  %8859 = load i8, ptr %8858, align 1, !tbaa !16
  %8860 = zext i8 %8859 to i32
  %8861 = load ptr, ptr %14, align 8, !tbaa !5
  %8862 = load i32, ptr %15, align 4, !tbaa !14
  %8863 = sext i32 %8862 to i64
  %8864 = getelementptr inbounds ptr, ptr %8861, i64 %8863
  %8865 = load ptr, ptr %8864, align 8, !tbaa !5
  %8866 = load i32, ptr %16, align 4, !tbaa !14
  %8867 = add nsw i32 %8866, 6
  %8868 = sext i32 %8867 to i64
  %8869 = getelementptr inbounds i8, ptr %8865, i64 %8868
  %8870 = load i8, ptr %8869, align 1, !tbaa !16
  %8871 = zext i8 %8870 to i32
  %8872 = sub nsw i32 %8860, %8871
  %8873 = icmp slt i32 %8872, 255
  br i1 %8873, label %8874, label %8898

8874:                                             ; preds = %8833
  %8875 = load ptr, ptr %13, align 8, !tbaa !5
  %8876 = load i32, ptr %15, align 4, !tbaa !14
  %8877 = sext i32 %8876 to i64
  %8878 = getelementptr inbounds ptr, ptr %8875, i64 %8877
  %8879 = load ptr, ptr %8878, align 8, !tbaa !5
  %8880 = load i32, ptr %16, align 4, !tbaa !14
  %8881 = add nsw i32 %8880, 6
  %8882 = sext i32 %8881 to i64
  %8883 = getelementptr inbounds i8, ptr %8879, i64 %8882
  %8884 = load i8, ptr %8883, align 1, !tbaa !16
  %8885 = zext i8 %8884 to i32
  %8886 = load ptr, ptr %14, align 8, !tbaa !5
  %8887 = load i32, ptr %15, align 4, !tbaa !14
  %8888 = sext i32 %8887 to i64
  %8889 = getelementptr inbounds ptr, ptr %8886, i64 %8888
  %8890 = load ptr, ptr %8889, align 8, !tbaa !5
  %8891 = load i32, ptr %16, align 4, !tbaa !14
  %8892 = add nsw i32 %8891, 6
  %8893 = sext i32 %8892 to i64
  %8894 = getelementptr inbounds i8, ptr %8890, i64 %8893
  %8895 = load i8, ptr %8894, align 1, !tbaa !16
  %8896 = zext i8 %8895 to i32
  %8897 = sub nsw i32 %8885, %8896
  br label %8899

8898:                                             ; preds = %8833
  br label %8899

8899:                                             ; preds = %8898, %8874
  %8900 = phi i32 [ %8897, %8874 ], [ 255, %8898 ]
  %8901 = trunc i32 %8900 to i8
  %8902 = load ptr, ptr %6, align 8, !tbaa !5
  %8903 = getelementptr inbounds %struct.MImage, ptr %8902, i32 0, i32 3
  %8904 = load i32, ptr %12, align 4, !tbaa !14
  %8905 = sext i32 %8904 to i64
  %8906 = getelementptr inbounds [4 x ptr], ptr %8903, i64 0, i64 %8905
  %8907 = load ptr, ptr %8906, align 8, !tbaa !5
  %8908 = load i32, ptr %15, align 4, !tbaa !14
  %8909 = sext i32 %8908 to i64
  %8910 = getelementptr inbounds ptr, ptr %8907, i64 %8909
  %8911 = load ptr, ptr %8910, align 8, !tbaa !5
  %8912 = load i32, ptr %16, align 4, !tbaa !14
  %8913 = add nsw i32 %8912, 6
  %8914 = sext i32 %8913 to i64
  %8915 = getelementptr inbounds i8, ptr %8911, i64 %8914
  store i8 %8901, ptr %8915, align 1, !tbaa !16
  %8916 = load ptr, ptr %13, align 8, !tbaa !5
  %8917 = load i32, ptr %15, align 4, !tbaa !14
  %8918 = sext i32 %8917 to i64
  %8919 = getelementptr inbounds ptr, ptr %8916, i64 %8918
  %8920 = load ptr, ptr %8919, align 8, !tbaa !5
  %8921 = load i32, ptr %16, align 4, !tbaa !14
  %8922 = add nsw i32 %8921, 7
  %8923 = sext i32 %8922 to i64
  %8924 = getelementptr inbounds i8, ptr %8920, i64 %8923
  %8925 = load i8, ptr %8924, align 1, !tbaa !16
  %8926 = zext i8 %8925 to i32
  %8927 = load ptr, ptr %14, align 8, !tbaa !5
  %8928 = load i32, ptr %15, align 4, !tbaa !14
  %8929 = sext i32 %8928 to i64
  %8930 = getelementptr inbounds ptr, ptr %8927, i64 %8929
  %8931 = load ptr, ptr %8930, align 8, !tbaa !5
  %8932 = load i32, ptr %16, align 4, !tbaa !14
  %8933 = add nsw i32 %8932, 7
  %8934 = sext i32 %8933 to i64
  %8935 = getelementptr inbounds i8, ptr %8931, i64 %8934
  %8936 = load i8, ptr %8935, align 1, !tbaa !16
  %8937 = zext i8 %8936 to i32
  %8938 = sub nsw i32 %8926, %8937
  %8939 = icmp slt i32 %8938, 255
  br i1 %8939, label %8940, label %8964

8940:                                             ; preds = %8899
  %8941 = load ptr, ptr %13, align 8, !tbaa !5
  %8942 = load i32, ptr %15, align 4, !tbaa !14
  %8943 = sext i32 %8942 to i64
  %8944 = getelementptr inbounds ptr, ptr %8941, i64 %8943
  %8945 = load ptr, ptr %8944, align 8, !tbaa !5
  %8946 = load i32, ptr %16, align 4, !tbaa !14
  %8947 = add nsw i32 %8946, 7
  %8948 = sext i32 %8947 to i64
  %8949 = getelementptr inbounds i8, ptr %8945, i64 %8948
  %8950 = load i8, ptr %8949, align 1, !tbaa !16
  %8951 = zext i8 %8950 to i32
  %8952 = load ptr, ptr %14, align 8, !tbaa !5
  %8953 = load i32, ptr %15, align 4, !tbaa !14
  %8954 = sext i32 %8953 to i64
  %8955 = getelementptr inbounds ptr, ptr %8952, i64 %8954
  %8956 = load ptr, ptr %8955, align 8, !tbaa !5
  %8957 = load i32, ptr %16, align 4, !tbaa !14
  %8958 = add nsw i32 %8957, 7
  %8959 = sext i32 %8958 to i64
  %8960 = getelementptr inbounds i8, ptr %8956, i64 %8959
  %8961 = load i8, ptr %8960, align 1, !tbaa !16
  %8962 = zext i8 %8961 to i32
  %8963 = sub nsw i32 %8951, %8962
  br label %8965

8964:                                             ; preds = %8899
  br label %8965

8965:                                             ; preds = %8964, %8940
  %8966 = phi i32 [ %8963, %8940 ], [ 255, %8964 ]
  %8967 = trunc i32 %8966 to i8
  %8968 = load ptr, ptr %6, align 8, !tbaa !5
  %8969 = getelementptr inbounds %struct.MImage, ptr %8968, i32 0, i32 3
  %8970 = load i32, ptr %12, align 4, !tbaa !14
  %8971 = sext i32 %8970 to i64
  %8972 = getelementptr inbounds [4 x ptr], ptr %8969, i64 0, i64 %8971
  %8973 = load ptr, ptr %8972, align 8, !tbaa !5
  %8974 = load i32, ptr %15, align 4, !tbaa !14
  %8975 = sext i32 %8974 to i64
  %8976 = getelementptr inbounds ptr, ptr %8973, i64 %8975
  %8977 = load ptr, ptr %8976, align 8, !tbaa !5
  %8978 = load i32, ptr %16, align 4, !tbaa !14
  %8979 = add nsw i32 %8978, 7
  %8980 = sext i32 %8979 to i64
  %8981 = getelementptr inbounds i8, ptr %8977, i64 %8980
  store i8 %8967, ptr %8981, align 1, !tbaa !16
  %8982 = load ptr, ptr %13, align 8, !tbaa !5
  %8983 = load i32, ptr %15, align 4, !tbaa !14
  %8984 = sext i32 %8983 to i64
  %8985 = getelementptr inbounds ptr, ptr %8982, i64 %8984
  %8986 = load ptr, ptr %8985, align 8, !tbaa !5
  %8987 = load i32, ptr %16, align 4, !tbaa !14
  %8988 = add nsw i32 %8987, 8
  %8989 = sext i32 %8988 to i64
  %8990 = getelementptr inbounds i8, ptr %8986, i64 %8989
  %8991 = load i8, ptr %8990, align 1, !tbaa !16
  %8992 = zext i8 %8991 to i32
  %8993 = load ptr, ptr %14, align 8, !tbaa !5
  %8994 = load i32, ptr %15, align 4, !tbaa !14
  %8995 = sext i32 %8994 to i64
  %8996 = getelementptr inbounds ptr, ptr %8993, i64 %8995
  %8997 = load ptr, ptr %8996, align 8, !tbaa !5
  %8998 = load i32, ptr %16, align 4, !tbaa !14
  %8999 = add nsw i32 %8998, 8
  %9000 = sext i32 %8999 to i64
  %9001 = getelementptr inbounds i8, ptr %8997, i64 %9000
  %9002 = load i8, ptr %9001, align 1, !tbaa !16
  %9003 = zext i8 %9002 to i32
  %9004 = sub nsw i32 %8992, %9003
  %9005 = icmp slt i32 %9004, 255
  br i1 %9005, label %9006, label %9030

9006:                                             ; preds = %8965
  %9007 = load ptr, ptr %13, align 8, !tbaa !5
  %9008 = load i32, ptr %15, align 4, !tbaa !14
  %9009 = sext i32 %9008 to i64
  %9010 = getelementptr inbounds ptr, ptr %9007, i64 %9009
  %9011 = load ptr, ptr %9010, align 8, !tbaa !5
  %9012 = load i32, ptr %16, align 4, !tbaa !14
  %9013 = add nsw i32 %9012, 8
  %9014 = sext i32 %9013 to i64
  %9015 = getelementptr inbounds i8, ptr %9011, i64 %9014
  %9016 = load i8, ptr %9015, align 1, !tbaa !16
  %9017 = zext i8 %9016 to i32
  %9018 = load ptr, ptr %14, align 8, !tbaa !5
  %9019 = load i32, ptr %15, align 4, !tbaa !14
  %9020 = sext i32 %9019 to i64
  %9021 = getelementptr inbounds ptr, ptr %9018, i64 %9020
  %9022 = load ptr, ptr %9021, align 8, !tbaa !5
  %9023 = load i32, ptr %16, align 4, !tbaa !14
  %9024 = add nsw i32 %9023, 8
  %9025 = sext i32 %9024 to i64
  %9026 = getelementptr inbounds i8, ptr %9022, i64 %9025
  %9027 = load i8, ptr %9026, align 1, !tbaa !16
  %9028 = zext i8 %9027 to i32
  %9029 = sub nsw i32 %9017, %9028
  br label %9031

9030:                                             ; preds = %8965
  br label %9031

9031:                                             ; preds = %9030, %9006
  %9032 = phi i32 [ %9029, %9006 ], [ 255, %9030 ]
  %9033 = trunc i32 %9032 to i8
  %9034 = load ptr, ptr %6, align 8, !tbaa !5
  %9035 = getelementptr inbounds %struct.MImage, ptr %9034, i32 0, i32 3
  %9036 = load i32, ptr %12, align 4, !tbaa !14
  %9037 = sext i32 %9036 to i64
  %9038 = getelementptr inbounds [4 x ptr], ptr %9035, i64 0, i64 %9037
  %9039 = load ptr, ptr %9038, align 8, !tbaa !5
  %9040 = load i32, ptr %15, align 4, !tbaa !14
  %9041 = sext i32 %9040 to i64
  %9042 = getelementptr inbounds ptr, ptr %9039, i64 %9041
  %9043 = load ptr, ptr %9042, align 8, !tbaa !5
  %9044 = load i32, ptr %16, align 4, !tbaa !14
  %9045 = add nsw i32 %9044, 8
  %9046 = sext i32 %9045 to i64
  %9047 = getelementptr inbounds i8, ptr %9043, i64 %9046
  store i8 %9033, ptr %9047, align 1, !tbaa !16
  %9048 = load ptr, ptr %13, align 8, !tbaa !5
  %9049 = load i32, ptr %15, align 4, !tbaa !14
  %9050 = sext i32 %9049 to i64
  %9051 = getelementptr inbounds ptr, ptr %9048, i64 %9050
  %9052 = load ptr, ptr %9051, align 8, !tbaa !5
  %9053 = load i32, ptr %16, align 4, !tbaa !14
  %9054 = add nsw i32 %9053, 9
  %9055 = sext i32 %9054 to i64
  %9056 = getelementptr inbounds i8, ptr %9052, i64 %9055
  %9057 = load i8, ptr %9056, align 1, !tbaa !16
  %9058 = zext i8 %9057 to i32
  %9059 = load ptr, ptr %14, align 8, !tbaa !5
  %9060 = load i32, ptr %15, align 4, !tbaa !14
  %9061 = sext i32 %9060 to i64
  %9062 = getelementptr inbounds ptr, ptr %9059, i64 %9061
  %9063 = load ptr, ptr %9062, align 8, !tbaa !5
  %9064 = load i32, ptr %16, align 4, !tbaa !14
  %9065 = add nsw i32 %9064, 9
  %9066 = sext i32 %9065 to i64
  %9067 = getelementptr inbounds i8, ptr %9063, i64 %9066
  %9068 = load i8, ptr %9067, align 1, !tbaa !16
  %9069 = zext i8 %9068 to i32
  %9070 = sub nsw i32 %9058, %9069
  %9071 = icmp slt i32 %9070, 255
  br i1 %9071, label %9072, label %9096

9072:                                             ; preds = %9031
  %9073 = load ptr, ptr %13, align 8, !tbaa !5
  %9074 = load i32, ptr %15, align 4, !tbaa !14
  %9075 = sext i32 %9074 to i64
  %9076 = getelementptr inbounds ptr, ptr %9073, i64 %9075
  %9077 = load ptr, ptr %9076, align 8, !tbaa !5
  %9078 = load i32, ptr %16, align 4, !tbaa !14
  %9079 = add nsw i32 %9078, 9
  %9080 = sext i32 %9079 to i64
  %9081 = getelementptr inbounds i8, ptr %9077, i64 %9080
  %9082 = load i8, ptr %9081, align 1, !tbaa !16
  %9083 = zext i8 %9082 to i32
  %9084 = load ptr, ptr %14, align 8, !tbaa !5
  %9085 = load i32, ptr %15, align 4, !tbaa !14
  %9086 = sext i32 %9085 to i64
  %9087 = getelementptr inbounds ptr, ptr %9084, i64 %9086
  %9088 = load ptr, ptr %9087, align 8, !tbaa !5
  %9089 = load i32, ptr %16, align 4, !tbaa !14
  %9090 = add nsw i32 %9089, 9
  %9091 = sext i32 %9090 to i64
  %9092 = getelementptr inbounds i8, ptr %9088, i64 %9091
  %9093 = load i8, ptr %9092, align 1, !tbaa !16
  %9094 = zext i8 %9093 to i32
  %9095 = sub nsw i32 %9083, %9094
  br label %9097

9096:                                             ; preds = %9031
  br label %9097

9097:                                             ; preds = %9096, %9072
  %9098 = phi i32 [ %9095, %9072 ], [ 255, %9096 ]
  %9099 = trunc i32 %9098 to i8
  %9100 = load ptr, ptr %6, align 8, !tbaa !5
  %9101 = getelementptr inbounds %struct.MImage, ptr %9100, i32 0, i32 3
  %9102 = load i32, ptr %12, align 4, !tbaa !14
  %9103 = sext i32 %9102 to i64
  %9104 = getelementptr inbounds [4 x ptr], ptr %9101, i64 0, i64 %9103
  %9105 = load ptr, ptr %9104, align 8, !tbaa !5
  %9106 = load i32, ptr %15, align 4, !tbaa !14
  %9107 = sext i32 %9106 to i64
  %9108 = getelementptr inbounds ptr, ptr %9105, i64 %9107
  %9109 = load ptr, ptr %9108, align 8, !tbaa !5
  %9110 = load i32, ptr %16, align 4, !tbaa !14
  %9111 = add nsw i32 %9110, 9
  %9112 = sext i32 %9111 to i64
  %9113 = getelementptr inbounds i8, ptr %9109, i64 %9112
  store i8 %9099, ptr %9113, align 1, !tbaa !16
  %9114 = load ptr, ptr %13, align 8, !tbaa !5
  %9115 = load i32, ptr %15, align 4, !tbaa !14
  %9116 = sext i32 %9115 to i64
  %9117 = getelementptr inbounds ptr, ptr %9114, i64 %9116
  %9118 = load ptr, ptr %9117, align 8, !tbaa !5
  %9119 = load i32, ptr %16, align 4, !tbaa !14
  %9120 = add nsw i32 %9119, 10
  %9121 = sext i32 %9120 to i64
  %9122 = getelementptr inbounds i8, ptr %9118, i64 %9121
  %9123 = load i8, ptr %9122, align 1, !tbaa !16
  %9124 = zext i8 %9123 to i32
  %9125 = load ptr, ptr %14, align 8, !tbaa !5
  %9126 = load i32, ptr %15, align 4, !tbaa !14
  %9127 = sext i32 %9126 to i64
  %9128 = getelementptr inbounds ptr, ptr %9125, i64 %9127
  %9129 = load ptr, ptr %9128, align 8, !tbaa !5
  %9130 = load i32, ptr %16, align 4, !tbaa !14
  %9131 = add nsw i32 %9130, 10
  %9132 = sext i32 %9131 to i64
  %9133 = getelementptr inbounds i8, ptr %9129, i64 %9132
  %9134 = load i8, ptr %9133, align 1, !tbaa !16
  %9135 = zext i8 %9134 to i32
  %9136 = sub nsw i32 %9124, %9135
  %9137 = icmp slt i32 %9136, 255
  br i1 %9137, label %9138, label %9162

9138:                                             ; preds = %9097
  %9139 = load ptr, ptr %13, align 8, !tbaa !5
  %9140 = load i32, ptr %15, align 4, !tbaa !14
  %9141 = sext i32 %9140 to i64
  %9142 = getelementptr inbounds ptr, ptr %9139, i64 %9141
  %9143 = load ptr, ptr %9142, align 8, !tbaa !5
  %9144 = load i32, ptr %16, align 4, !tbaa !14
  %9145 = add nsw i32 %9144, 10
  %9146 = sext i32 %9145 to i64
  %9147 = getelementptr inbounds i8, ptr %9143, i64 %9146
  %9148 = load i8, ptr %9147, align 1, !tbaa !16
  %9149 = zext i8 %9148 to i32
  %9150 = load ptr, ptr %14, align 8, !tbaa !5
  %9151 = load i32, ptr %15, align 4, !tbaa !14
  %9152 = sext i32 %9151 to i64
  %9153 = getelementptr inbounds ptr, ptr %9150, i64 %9152
  %9154 = load ptr, ptr %9153, align 8, !tbaa !5
  %9155 = load i32, ptr %16, align 4, !tbaa !14
  %9156 = add nsw i32 %9155, 10
  %9157 = sext i32 %9156 to i64
  %9158 = getelementptr inbounds i8, ptr %9154, i64 %9157
  %9159 = load i8, ptr %9158, align 1, !tbaa !16
  %9160 = zext i8 %9159 to i32
  %9161 = sub nsw i32 %9149, %9160
  br label %9163

9162:                                             ; preds = %9097
  br label %9163

9163:                                             ; preds = %9162, %9138
  %9164 = phi i32 [ %9161, %9138 ], [ 255, %9162 ]
  %9165 = trunc i32 %9164 to i8
  %9166 = load ptr, ptr %6, align 8, !tbaa !5
  %9167 = getelementptr inbounds %struct.MImage, ptr %9166, i32 0, i32 3
  %9168 = load i32, ptr %12, align 4, !tbaa !14
  %9169 = sext i32 %9168 to i64
  %9170 = getelementptr inbounds [4 x ptr], ptr %9167, i64 0, i64 %9169
  %9171 = load ptr, ptr %9170, align 8, !tbaa !5
  %9172 = load i32, ptr %15, align 4, !tbaa !14
  %9173 = sext i32 %9172 to i64
  %9174 = getelementptr inbounds ptr, ptr %9171, i64 %9173
  %9175 = load ptr, ptr %9174, align 8, !tbaa !5
  %9176 = load i32, ptr %16, align 4, !tbaa !14
  %9177 = add nsw i32 %9176, 10
  %9178 = sext i32 %9177 to i64
  %9179 = getelementptr inbounds i8, ptr %9175, i64 %9178
  store i8 %9165, ptr %9179, align 1, !tbaa !16
  %9180 = load ptr, ptr %13, align 8, !tbaa !5
  %9181 = load i32, ptr %15, align 4, !tbaa !14
  %9182 = sext i32 %9181 to i64
  %9183 = getelementptr inbounds ptr, ptr %9180, i64 %9182
  %9184 = load ptr, ptr %9183, align 8, !tbaa !5
  %9185 = load i32, ptr %16, align 4, !tbaa !14
  %9186 = add nsw i32 %9185, 11
  %9187 = sext i32 %9186 to i64
  %9188 = getelementptr inbounds i8, ptr %9184, i64 %9187
  %9189 = load i8, ptr %9188, align 1, !tbaa !16
  %9190 = zext i8 %9189 to i32
  %9191 = load ptr, ptr %14, align 8, !tbaa !5
  %9192 = load i32, ptr %15, align 4, !tbaa !14
  %9193 = sext i32 %9192 to i64
  %9194 = getelementptr inbounds ptr, ptr %9191, i64 %9193
  %9195 = load ptr, ptr %9194, align 8, !tbaa !5
  %9196 = load i32, ptr %16, align 4, !tbaa !14
  %9197 = add nsw i32 %9196, 11
  %9198 = sext i32 %9197 to i64
  %9199 = getelementptr inbounds i8, ptr %9195, i64 %9198
  %9200 = load i8, ptr %9199, align 1, !tbaa !16
  %9201 = zext i8 %9200 to i32
  %9202 = sub nsw i32 %9190, %9201
  %9203 = icmp slt i32 %9202, 255
  br i1 %9203, label %9204, label %9228

9204:                                             ; preds = %9163
  %9205 = load ptr, ptr %13, align 8, !tbaa !5
  %9206 = load i32, ptr %15, align 4, !tbaa !14
  %9207 = sext i32 %9206 to i64
  %9208 = getelementptr inbounds ptr, ptr %9205, i64 %9207
  %9209 = load ptr, ptr %9208, align 8, !tbaa !5
  %9210 = load i32, ptr %16, align 4, !tbaa !14
  %9211 = add nsw i32 %9210, 11
  %9212 = sext i32 %9211 to i64
  %9213 = getelementptr inbounds i8, ptr %9209, i64 %9212
  %9214 = load i8, ptr %9213, align 1, !tbaa !16
  %9215 = zext i8 %9214 to i32
  %9216 = load ptr, ptr %14, align 8, !tbaa !5
  %9217 = load i32, ptr %15, align 4, !tbaa !14
  %9218 = sext i32 %9217 to i64
  %9219 = getelementptr inbounds ptr, ptr %9216, i64 %9218
  %9220 = load ptr, ptr %9219, align 8, !tbaa !5
  %9221 = load i32, ptr %16, align 4, !tbaa !14
  %9222 = add nsw i32 %9221, 11
  %9223 = sext i32 %9222 to i64
  %9224 = getelementptr inbounds i8, ptr %9220, i64 %9223
  %9225 = load i8, ptr %9224, align 1, !tbaa !16
  %9226 = zext i8 %9225 to i32
  %9227 = sub nsw i32 %9215, %9226
  br label %9229

9228:                                             ; preds = %9163
  br label %9229

9229:                                             ; preds = %9228, %9204
  %9230 = phi i32 [ %9227, %9204 ], [ 255, %9228 ]
  %9231 = trunc i32 %9230 to i8
  %9232 = load ptr, ptr %6, align 8, !tbaa !5
  %9233 = getelementptr inbounds %struct.MImage, ptr %9232, i32 0, i32 3
  %9234 = load i32, ptr %12, align 4, !tbaa !14
  %9235 = sext i32 %9234 to i64
  %9236 = getelementptr inbounds [4 x ptr], ptr %9233, i64 0, i64 %9235
  %9237 = load ptr, ptr %9236, align 8, !tbaa !5
  %9238 = load i32, ptr %15, align 4, !tbaa !14
  %9239 = sext i32 %9238 to i64
  %9240 = getelementptr inbounds ptr, ptr %9237, i64 %9239
  %9241 = load ptr, ptr %9240, align 8, !tbaa !5
  %9242 = load i32, ptr %16, align 4, !tbaa !14
  %9243 = add nsw i32 %9242, 11
  %9244 = sext i32 %9243 to i64
  %9245 = getelementptr inbounds i8, ptr %9241, i64 %9244
  store i8 %9231, ptr %9245, align 1, !tbaa !16
  %9246 = load ptr, ptr %13, align 8, !tbaa !5
  %9247 = load i32, ptr %15, align 4, !tbaa !14
  %9248 = sext i32 %9247 to i64
  %9249 = getelementptr inbounds ptr, ptr %9246, i64 %9248
  %9250 = load ptr, ptr %9249, align 8, !tbaa !5
  %9251 = load i32, ptr %16, align 4, !tbaa !14
  %9252 = add nsw i32 %9251, 12
  %9253 = sext i32 %9252 to i64
  %9254 = getelementptr inbounds i8, ptr %9250, i64 %9253
  %9255 = load i8, ptr %9254, align 1, !tbaa !16
  %9256 = zext i8 %9255 to i32
  %9257 = load ptr, ptr %14, align 8, !tbaa !5
  %9258 = load i32, ptr %15, align 4, !tbaa !14
  %9259 = sext i32 %9258 to i64
  %9260 = getelementptr inbounds ptr, ptr %9257, i64 %9259
  %9261 = load ptr, ptr %9260, align 8, !tbaa !5
  %9262 = load i32, ptr %16, align 4, !tbaa !14
  %9263 = add nsw i32 %9262, 12
  %9264 = sext i32 %9263 to i64
  %9265 = getelementptr inbounds i8, ptr %9261, i64 %9264
  %9266 = load i8, ptr %9265, align 1, !tbaa !16
  %9267 = zext i8 %9266 to i32
  %9268 = sub nsw i32 %9256, %9267
  %9269 = icmp slt i32 %9268, 255
  br i1 %9269, label %9270, label %9294

9270:                                             ; preds = %9229
  %9271 = load ptr, ptr %13, align 8, !tbaa !5
  %9272 = load i32, ptr %15, align 4, !tbaa !14
  %9273 = sext i32 %9272 to i64
  %9274 = getelementptr inbounds ptr, ptr %9271, i64 %9273
  %9275 = load ptr, ptr %9274, align 8, !tbaa !5
  %9276 = load i32, ptr %16, align 4, !tbaa !14
  %9277 = add nsw i32 %9276, 12
  %9278 = sext i32 %9277 to i64
  %9279 = getelementptr inbounds i8, ptr %9275, i64 %9278
  %9280 = load i8, ptr %9279, align 1, !tbaa !16
  %9281 = zext i8 %9280 to i32
  %9282 = load ptr, ptr %14, align 8, !tbaa !5
  %9283 = load i32, ptr %15, align 4, !tbaa !14
  %9284 = sext i32 %9283 to i64
  %9285 = getelementptr inbounds ptr, ptr %9282, i64 %9284
  %9286 = load ptr, ptr %9285, align 8, !tbaa !5
  %9287 = load i32, ptr %16, align 4, !tbaa !14
  %9288 = add nsw i32 %9287, 12
  %9289 = sext i32 %9288 to i64
  %9290 = getelementptr inbounds i8, ptr %9286, i64 %9289
  %9291 = load i8, ptr %9290, align 1, !tbaa !16
  %9292 = zext i8 %9291 to i32
  %9293 = sub nsw i32 %9281, %9292
  br label %9295

9294:                                             ; preds = %9229
  br label %9295

9295:                                             ; preds = %9294, %9270
  %9296 = phi i32 [ %9293, %9270 ], [ 255, %9294 ]
  %9297 = trunc i32 %9296 to i8
  %9298 = load ptr, ptr %6, align 8, !tbaa !5
  %9299 = getelementptr inbounds %struct.MImage, ptr %9298, i32 0, i32 3
  %9300 = load i32, ptr %12, align 4, !tbaa !14
  %9301 = sext i32 %9300 to i64
  %9302 = getelementptr inbounds [4 x ptr], ptr %9299, i64 0, i64 %9301
  %9303 = load ptr, ptr %9302, align 8, !tbaa !5
  %9304 = load i32, ptr %15, align 4, !tbaa !14
  %9305 = sext i32 %9304 to i64
  %9306 = getelementptr inbounds ptr, ptr %9303, i64 %9305
  %9307 = load ptr, ptr %9306, align 8, !tbaa !5
  %9308 = load i32, ptr %16, align 4, !tbaa !14
  %9309 = add nsw i32 %9308, 12
  %9310 = sext i32 %9309 to i64
  %9311 = getelementptr inbounds i8, ptr %9307, i64 %9310
  store i8 %9297, ptr %9311, align 1, !tbaa !16
  %9312 = load ptr, ptr %13, align 8, !tbaa !5
  %9313 = load i32, ptr %15, align 4, !tbaa !14
  %9314 = sext i32 %9313 to i64
  %9315 = getelementptr inbounds ptr, ptr %9312, i64 %9314
  %9316 = load ptr, ptr %9315, align 8, !tbaa !5
  %9317 = load i32, ptr %16, align 4, !tbaa !14
  %9318 = add nsw i32 %9317, 13
  %9319 = sext i32 %9318 to i64
  %9320 = getelementptr inbounds i8, ptr %9316, i64 %9319
  %9321 = load i8, ptr %9320, align 1, !tbaa !16
  %9322 = zext i8 %9321 to i32
  %9323 = load ptr, ptr %14, align 8, !tbaa !5
  %9324 = load i32, ptr %15, align 4, !tbaa !14
  %9325 = sext i32 %9324 to i64
  %9326 = getelementptr inbounds ptr, ptr %9323, i64 %9325
  %9327 = load ptr, ptr %9326, align 8, !tbaa !5
  %9328 = load i32, ptr %16, align 4, !tbaa !14
  %9329 = add nsw i32 %9328, 13
  %9330 = sext i32 %9329 to i64
  %9331 = getelementptr inbounds i8, ptr %9327, i64 %9330
  %9332 = load i8, ptr %9331, align 1, !tbaa !16
  %9333 = zext i8 %9332 to i32
  %9334 = sub nsw i32 %9322, %9333
  %9335 = icmp slt i32 %9334, 255
  br i1 %9335, label %9336, label %9360

9336:                                             ; preds = %9295
  %9337 = load ptr, ptr %13, align 8, !tbaa !5
  %9338 = load i32, ptr %15, align 4, !tbaa !14
  %9339 = sext i32 %9338 to i64
  %9340 = getelementptr inbounds ptr, ptr %9337, i64 %9339
  %9341 = load ptr, ptr %9340, align 8, !tbaa !5
  %9342 = load i32, ptr %16, align 4, !tbaa !14
  %9343 = add nsw i32 %9342, 13
  %9344 = sext i32 %9343 to i64
  %9345 = getelementptr inbounds i8, ptr %9341, i64 %9344
  %9346 = load i8, ptr %9345, align 1, !tbaa !16
  %9347 = zext i8 %9346 to i32
  %9348 = load ptr, ptr %14, align 8, !tbaa !5
  %9349 = load i32, ptr %15, align 4, !tbaa !14
  %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 %16, align 4, !tbaa !14
  %9354 = add nsw i32 %9353, 13
  %9355 = sext i32 %9354 to i64
  %9356 = getelementptr inbounds i8, ptr %9352, i64 %9355
  %9357 = load i8, ptr %9356, align 1, !tbaa !16
  %9358 = zext i8 %9357 to i32
  %9359 = sub nsw i32 %9347, %9358
  br label %9361

9360:                                             ; preds = %9295
  br label %9361

9361:                                             ; preds = %9360, %9336
  %9362 = phi i32 [ %9359, %9336 ], [ 255, %9360 ]
  %9363 = trunc i32 %9362 to i8
  %9364 = load ptr, ptr %6, align 8, !tbaa !5
  %9365 = getelementptr inbounds %struct.MImage, ptr %9364, i32 0, i32 3
  %9366 = load i32, ptr %12, align 4, !tbaa !14
  %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 %15, align 4, !tbaa !14
  %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 %16, align 4, !tbaa !14
  %9375 = add nsw i32 %9374, 13
  %9376 = sext i32 %9375 to i64
  %9377 = getelementptr inbounds i8, ptr %9373, i64 %9376
  store i8 %9363, ptr %9377, align 1, !tbaa !16
  %9378 = load ptr, ptr %13, align 8, !tbaa !5
  %9379 = load i32, ptr %15, align 4, !tbaa !14
  %9380 = sext i32 %9379 to i64
  %9381 = getelementptr inbounds ptr, ptr %9378, i64 %9380
  %9382 = load ptr, ptr %9381, align 8, !tbaa !5
  %9383 = load i32, ptr %16, align 4, !tbaa !14
  %9384 = add nsw i32 %9383, 14
  %9385 = sext i32 %9384 to i64
  %9386 = getelementptr inbounds i8, ptr %9382, i64 %9385
  %9387 = load i8, ptr %9386, align 1, !tbaa !16
  %9388 = zext i8 %9387 to i32
  %9389 = load ptr, ptr %14, align 8, !tbaa !5
  %9390 = load i32, ptr %15, align 4, !tbaa !14
  %9391 = sext i32 %9390 to i64
  %9392 = getelementptr inbounds ptr, ptr %9389, i64 %9391
  %9393 = load ptr, ptr %9392, align 8, !tbaa !5
  %9394 = load i32, ptr %16, align 4, !tbaa !14
  %9395 = add nsw i32 %9394, 14
  %9396 = sext i32 %9395 to i64
  %9397 = getelementptr inbounds i8, ptr %9393, i64 %9396
  %9398 = load i8, ptr %9397, align 1, !tbaa !16
  %9399 = zext i8 %9398 to i32
  %9400 = sub nsw i32 %9388, %9399
  %9401 = icmp slt i32 %9400, 255
  br i1 %9401, label %9402, label %9426

9402:                                             ; preds = %9361
  %9403 = load ptr, ptr %13, align 8, !tbaa !5
  %9404 = load i32, ptr %15, align 4, !tbaa !14
  %9405 = sext i32 %9404 to i64
  %9406 = getelementptr inbounds ptr, ptr %9403, i64 %9405
  %9407 = load ptr, ptr %9406, align 8, !tbaa !5
  %9408 = load i32, ptr %16, align 4, !tbaa !14
  %9409 = add nsw i32 %9408, 14
  %9410 = sext i32 %9409 to i64
  %9411 = getelementptr inbounds i8, ptr %9407, i64 %9410
  %9412 = load i8, ptr %9411, align 1, !tbaa !16
  %9413 = zext i8 %9412 to i32
  %9414 = load ptr, ptr %14, align 8, !tbaa !5
  %9415 = load i32, ptr %15, align 4, !tbaa !14
  %9416 = sext i32 %9415 to i64
  %9417 = getelementptr inbounds ptr, ptr %9414, i64 %9416
  %9418 = load ptr, ptr %9417, align 8, !tbaa !5
  %9419 = load i32, ptr %16, align 4, !tbaa !14
  %9420 = add nsw i32 %9419, 14
  %9421 = sext i32 %9420 to i64
  %9422 = getelementptr inbounds i8, ptr %9418, i64 %9421
  %9423 = load i8, ptr %9422, align 1, !tbaa !16
  %9424 = zext i8 %9423 to i32
  %9425 = sub nsw i32 %9413, %9424
  br label %9427

9426:                                             ; preds = %9361
  br label %9427

9427:                                             ; preds = %9426, %9402
  %9428 = phi i32 [ %9425, %9402 ], [ 255, %9426 ]
  %9429 = trunc i32 %9428 to i8
  %9430 = load ptr, ptr %6, align 8, !tbaa !5
  %9431 = getelementptr inbounds %struct.MImage, ptr %9430, i32 0, i32 3
  %9432 = load i32, ptr %12, align 4, !tbaa !14
  %9433 = sext i32 %9432 to i64
  %9434 = getelementptr inbounds [4 x ptr], ptr %9431, i64 0, i64 %9433
  %9435 = load ptr, ptr %9434, align 8, !tbaa !5
  %9436 = load i32, ptr %15, align 4, !tbaa !14
  %9437 = sext i32 %9436 to i64
  %9438 = getelementptr inbounds ptr, ptr %9435, i64 %9437
  %9439 = load ptr, ptr %9438, align 8, !tbaa !5
  %9440 = load i32, ptr %16, align 4, !tbaa !14
  %9441 = add nsw i32 %9440, 14
  %9442 = sext i32 %9441 to i64
  %9443 = getelementptr inbounds i8, ptr %9439, i64 %9442
  store i8 %9429, ptr %9443, align 1, !tbaa !16
  br label %9444

9444:                                             ; preds = %9427, %8446
  br label %9445

9445:                                             ; preds = %9444, %8429
  br label %9446

9446:                                             ; preds = %9445, %7497
  br label %9447

9447:                                             ; preds = %9446, %6631
  br label %9448

9448:                                             ; preds = %9447, %5831
  br label %9449

9449:                                             ; preds = %9448, %5097
  br label %9450

9450:                                             ; preds = %9449, %4429
  br label %9451

9451:                                             ; preds = %9450, %3827
  br label %9452

9452:                                             ; preds = %9451, %3291
  br label %9453

9453:                                             ; preds = %9452, %2821
  br label %9454

9454:                                             ; preds = %9453, %2417
  br label %9455

9455:                                             ; preds = %9454, %2079
  br label %9456

9456:                                             ; preds = %9455, %1807
  br label %9457

9457:                                             ; preds = %9456, %1601
  br label %9458

9458:                                             ; preds = %9457, %1461
  br label %9459

9459:                                             ; preds = %9458, %1403
  call void @llvm.lifetime.end.p0(i64 4, ptr %16) #3
  br label %9460

9460:                                             ; preds = %9459
  br label %9461

9461:                                             ; preds = %9460
  br label %9462

9462:                                             ; preds = %9461
  %9463 = load i32, ptr %15, align 4, !tbaa !14
  %9464 = add nsw i32 %9463, 1
  store i32 %9464, ptr %15, align 4, !tbaa !14
  br label %305, !llvm.loop !21

9465:                                             ; preds = %324
  call void @llvm.lifetime.end.p0(i64 4, ptr %15) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %14) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %13) #3
  br label %9466

9466:                                             ; preds = %9465
  %9467 = load i32, ptr %12, align 4, !tbaa !14
  %9468 = add nsw i32 %9467, 1
  store i32 %9468, ptr %12, align 4, !tbaa !14
  br label %256, !llvm.loop !22

9469:                                             ; preds = %262
  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, !11, i64 0}
!10 = !{!"MImage", !11, i64 0, !11, i64 4, !11, i64 8, !7, i64 16, !6, i64 48}
!11 = !{!"int", !7, i64 0}
!12 = !{!10, !11, i64 4}
!13 = !{!10, !11, i64 8}
!14 = !{!11, !11, i64 0}
!15 = !{!10, !6, i64 48}
!16 = !{!7, !7, i64 0}
!17 = !{!18, !18, i64 0}
!18 = !{!"short", !7, i64 0}
!19 = distinct !{!19, !20}
!20 = !{!"llvm.loop.mustprogress"}
!21 = distinct !{!21, !20}
!22 = distinct !{!22, !20}


; 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__.mImageDataAdd = external hidden unnamed_addr constant [14 x i8], align 1

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

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

; Function Attrs: nounwind uwtable
define dso_local void @mImageDataAdd(ptr noundef %0, ptr noundef %1, ptr noundef %2) local_unnamed_addr #1 {
  %4 = getelementptr i8, ptr %0, i64 16
  %5 = icmp eq ptr %4, inttoptr (i64 -1 to ptr)
  br i1 %5, label %.thread, label %switch.early.test

switch.early.test:                                ; preds = %3
  %magicptr = ptrtoint ptr %0 to i64
  switch i64 %magicptr, label %6 [
    i64 -1, label %.thread
    i64 0, label %.thread
  ]

6:                                                ; preds = %switch.early.test
  %7 = load i32, ptr %0, align 8, !tbaa !5
  %8 = icmp slt i32 %7, 1
  br i1 %8, label %.thread, label %9

9:                                                ; preds = %6
  %10 = getelementptr inbounds i8, ptr %0, i64 4
  %11 = load i32, ptr %10, align 4, !tbaa !11
  %12 = icmp slt i32 %11, 1
  br i1 %12, label %.thread, label %13

13:                                               ; preds = %9
  %14 = getelementptr inbounds i8, ptr %0, i64 8
  %15 = load i32, ptr %14, align 8, !tbaa !12
  %16 = icmp slt i32 %15, 1
  br i1 %16, label %.thread, label %17

17:                                               ; preds = %13
  %magicptr2456 = ptrtoint ptr %1 to i64
  switch i64 %magicptr2456, label %18 [
    i64 -1, label %.thread
    i64 0, label %.thread
  ]

18:                                               ; preds = %17
  %19 = getelementptr inbounds i8, ptr %1, i64 16
  %20 = icmp eq ptr %19, inttoptr (i64 -1 to ptr)
  br i1 %20, label %.thread, label %21

21:                                               ; preds = %18
  %22 = load i32, ptr %1, align 8, !tbaa !5
  %23 = icmp slt i32 %22, 1
  br i1 %23, label %.thread, label %24

24:                                               ; preds = %21
  %25 = getelementptr inbounds i8, ptr %1, i64 4
  %26 = load i32, ptr %25, align 4, !tbaa !11
  %27 = icmp slt i32 %26, 1
  br i1 %27, label %.thread, label %28

28:                                               ; preds = %24
  %29 = getelementptr inbounds i8, ptr %1, i64 8
  %30 = load i32, ptr %29, align 8, !tbaa !12
  %31 = icmp slt i32 %30, 1
  br i1 %31, label %.thread, label %32

.thread:                                          ; preds = %18, %21, %24, %17, %17, %3, %switch.early.test, %switch.early.test, %6, %9, %13, %28
  tail call void (i32, i32, ptr, i32, ptr, ptr, ...) @m_Exception(i32 noundef 1, i32 noundef -1, ptr noundef nonnull @.str, i32 noundef 523, ptr noundef nonnull @__FUNCTION__.mImageDataAdd, ptr noundef nonnull @.str.2) #2
  %.phi.trans.insert = getelementptr inbounds i8, ptr %0, i64 4
  %.pre = load i32, ptr %.phi.trans.insert, align 4, !tbaa !11
  %.phi.trans.insert2493 = getelementptr inbounds i8, ptr %1, i64 4
  %.pre2494 = load i32, ptr %.phi.trans.insert2493, align 4, !tbaa !11
  br label %32

32:                                               ; preds = %.thread, %28
  %33 = phi i32 [ %.pre2494, %.thread ], [ %26, %28 ]
  %34 = phi i32 [ %.pre, %.thread ], [ %11, %28 ]
  %35 = getelementptr inbounds i8, ptr %0, i64 4
  %.not = icmp eq i32 %34, %33
  br i1 %.not, label %36, label %.thread2476

36:                                               ; preds = %32
  %37 = getelementptr inbounds i8, ptr %0, i64 8
  %38 = load i32, ptr %37, align 8, !tbaa !12
  %39 = getelementptr inbounds i8, ptr %1, i64 8
  %40 = load i32, ptr %39, align 8, !tbaa !12
  %.not2477 = icmp eq i32 %38, %40
  br i1 %.not2477, label %41, label %.thread2476

.thread2476:                                      ; preds = %32, %36
  tail call void (i32, i32, ptr, i32, ptr, ptr, ...) @m_Exception(i32 noundef 1, i32 noundef -1, ptr noundef nonnull @.str, i32 noundef 524, ptr noundef nonnull @__FUNCTION__.mImageDataAdd, ptr noundef nonnull @.str.2) #2
  br label %41

41:                                               ; preds = %.thread2476, %36
  %42 = load i32, ptr %1, align 8, !tbaa !5
  %43 = load i32, ptr %0, align 8, !tbaa !5
  %.not2454 = icmp ne i32 %42, %43
  %44 = icmp ne i32 %42, 1
  %spec.select = and i1 %44, %.not2454
  br i1 %spec.select, label %45, label %46

45:                                               ; preds = %41
  tail call void (i32, i32, ptr, i32, ptr, ptr, ...) @m_Exception(i32 noundef 1, i32 noundef -1, ptr noundef nonnull @.str, i32 noundef 525, ptr noundef nonnull @__FUNCTION__.mImageDataAdd, ptr noundef nonnull @.str.2) #2
  br label %46

46:                                               ; preds = %45, %41
  %magicptr2457 = ptrtoint ptr %2 to i64
  switch i64 %magicptr2457, label %47 [
    i64 -1, label %53
    i64 0, label %53
  ]

47:                                               ; preds = %46
  %48 = load i32, ptr %0, align 8, !tbaa !5
  %49 = load i32, ptr %35, align 4, !tbaa !11
  %50 = getelementptr inbounds i8, ptr %0, i64 8
  %51 = load i32, ptr %50, align 8, !tbaa !12
  %52 = getelementptr inbounds i8, ptr %2, i64 16
  tail call void @ImageRedefine(ptr noundef %2, i32 noundef %48, i32 noundef %49, i32 noundef %51, ptr noundef nonnull %52)
  br label %53

53:                                               ; preds = %46, %46, %47
  %.02307 = phi ptr [ %2, %47 ], [ %0, %46 ], [ %0, %46 ]
  %54 = getelementptr inbounds i8, ptr %0, i64 48
  %55 = load ptr, ptr %54, align 8, !tbaa !13
  %magicptr2458 = ptrtoint ptr %55 to i64
  switch i64 %magicptr2458, label %.sink.split [
    i64 0, label %56
    i64 -1, label %56
  ]

56:                                               ; preds = %53, %53
  %57 = getelementptr inbounds i8, ptr %1, i64 48
  %58 = load ptr, ptr %57, align 8, !tbaa !13
  %magicptr2459 = ptrtoint ptr %58 to i64
  switch i64 %magicptr2459, label %.sink.split [
    i64 0, label %60
    i64 -1, label %60
  ]

.sink.split:                                      ; preds = %56, %53
  %.sink = phi ptr [ %55, %53 ], [ %58, %56 ]
  %59 = getelementptr inbounds i8, ptr %.02307, i64 48
  store ptr %.sink, ptr %59, align 8, !tbaa !13
  br label %60

60:                                               ; preds = %.sink.split, %56, %56
  %61 = load i32, ptr %.02307, align 8, !tbaa !5
  %62 = icmp sgt i32 %61, 0
  br i1 %62, label %.lr.ph2482, label %._crit_edge2483

.lr.ph2482:                                       ; preds = %60
  %63 = getelementptr inbounds i8, ptr %1, i64 16
  %64 = getelementptr inbounds i8, ptr %.02307, i64 48
  %65 = getelementptr inbounds i8, ptr %.02307, i64 4
  %66 = getelementptr inbounds i8, ptr %.02307, i64 8
  %67 = getelementptr inbounds i8, ptr %.02307, i64 16
  %.pre2495 = load ptr, ptr %64, align 8, !tbaa !13
  br label %68

._crit_edge2483:                                  ; preds = %1769, %60
  ret void

68:                                               ; preds = %.lr.ph2482, %1769
  %69 = phi ptr [ %.pre2495, %.lr.ph2482 ], [ %87, %1769 ]
  %indvars.iv2490 = phi i64 [ 0, %.lr.ph2482 ], [ %indvars.iv.next2491, %1769 ]
  %70 = getelementptr inbounds [4 x ptr], ptr %4, i64 0, i64 %indvars.iv2490
  %71 = load ptr, ptr %70, align 8, !tbaa !14
  %72 = load i32, ptr %1, align 8, !tbaa !5
  %73 = sext i32 %72 to i64
  %.not2455 = icmp slt i64 %indvars.iv2490, %73
  %74 = getelementptr inbounds [4 x ptr], ptr %63, i64 0, i64 %indvars.iv2490
  %.in = select i1 %.not2455, ptr %74, ptr %63
  %75 = load ptr, ptr %.in, align 8, !tbaa !14
  %76 = icmp eq ptr %69, null
  br i1 %76, label %83, label %77

77:                                               ; preds = %68
  %78 = getelementptr inbounds i8, ptr %69, i64 8
  %79 = load ptr, ptr %78, align 8, !tbaa !15
  %80 = getelementptr inbounds i8, ptr %79, i64 4
  %81 = load i16, ptr %80, align 2, !tbaa !16
  %82 = sext i16 %81 to i64
  br label %83

83:                                               ; preds = %68, %77
  %84 = phi i64 [ %82, %77 ], [ 0, %68 ]
  %85 = getelementptr inbounds [4 x ptr], ptr %67, i64 0, i64 %indvars.iv2490
  br label %86

86:                                               ; preds = %1768, %83
  %87 = phi ptr [ %.pre2496, %1768 ], [ %69, %83 ]
  %indvars.iv2487 = phi i64 [ %indvars.iv.next2488, %1768 ], [ %84, %83 ]
  %88 = icmp eq ptr %87, null
  br i1 %88, label %89, label %91

89:                                               ; preds = %86
  %90 = load i32, ptr %65, align 4, !tbaa !11
  br label %97

91:                                               ; preds = %86
  %92 = getelementptr inbounds i8, ptr %87, i64 8
  %93 = load ptr, ptr %92, align 8, !tbaa !15
  %94 = getelementptr inbounds i8, ptr %93, i64 6
  %95 = load i16, ptr %94, align 2, !tbaa !16
  %96 = sext i16 %95 to i32
  br label %97

97:                                               ; preds = %91, %89
  %98 = phi i32 [ %90, %89 ], [ %96, %91 ]
  %99 = sext i32 %98 to i64
  %100 = icmp slt i64 %indvars.iv2487, %99
  br i1 %100, label %.preheader, label %1769

.preheader:                                       ; preds = %97
  %101 = load i32, ptr %66, align 8, !tbaa !12
  %102 = icmp sgt i32 %101, 15
  br i1 %102, label %.lr.ph, label %._crit_edge

.lr.ph:                                           ; preds = %.preheader
  %103 = getelementptr inbounds ptr, ptr %71, i64 %indvars.iv2487
  %104 = getelementptr inbounds ptr, ptr %75, i64 %indvars.iv2487
  br label %105

105:                                              ; preds = %.lr.ph, %105
  %indvars.iv = phi i64 [ 0, %.lr.ph ], [ %indvars.iv.next, %105 ]
  %106 = load ptr, ptr %103, align 8, !tbaa !14
  %107 = getelementptr inbounds i8, ptr %106, i64 %indvars.iv
  %108 = load i8, ptr %107, align 1, !tbaa !15
  %109 = load ptr, ptr %104, align 8, !tbaa !14
  %110 = getelementptr inbounds i8, ptr %109, i64 %indvars.iv
  %111 = load i8, ptr %110, align 1, !tbaa !15
  %112 = sub i8 %108, %111
  %113 = load ptr, ptr %85, align 8, !tbaa !14
  %114 = getelementptr inbounds ptr, ptr %113, i64 %indvars.iv2487
  %115 = load ptr, ptr %114, align 8, !tbaa !14
  %116 = getelementptr inbounds i8, ptr %115, i64 %indvars.iv
  store i8 %112, ptr %116, align 1, !tbaa !15
  %117 = load ptr, ptr %103, align 8, !tbaa !14
  %118 = or disjoint i64 %indvars.iv, 1
  %119 = getelementptr inbounds i8, ptr %117, i64 %118
  %120 = load i8, ptr %119, align 1, !tbaa !15
  %121 = load ptr, ptr %104, align 8, !tbaa !14
  %122 = getelementptr inbounds i8, ptr %121, i64 %118
  %123 = load i8, ptr %122, align 1, !tbaa !15
  %124 = sub i8 %120, %123
  %125 = load ptr, ptr %85, align 8, !tbaa !14
  %126 = getelementptr inbounds ptr, ptr %125, i64 %indvars.iv2487
  %127 = load ptr, ptr %126, align 8, !tbaa !14
  %128 = getelementptr inbounds i8, ptr %127, i64 %118
  store i8 %124, ptr %128, align 1, !tbaa !15
  %129 = load ptr, ptr %103, align 8, !tbaa !14
  %130 = or disjoint i64 %indvars.iv, 2
  %131 = getelementptr inbounds i8, ptr %129, i64 %130
  %132 = load i8, ptr %131, align 1, !tbaa !15
  %133 = load ptr, ptr %104, align 8, !tbaa !14
  %134 = getelementptr inbounds i8, ptr %133, i64 %130
  %135 = load i8, ptr %134, align 1, !tbaa !15
  %136 = sub i8 %132, %135
  %137 = load ptr, ptr %85, align 8, !tbaa !14
  %138 = getelementptr inbounds ptr, ptr %137, i64 %indvars.iv2487
  %139 = load ptr, ptr %138, align 8, !tbaa !14
  %140 = getelementptr inbounds i8, ptr %139, i64 %130
  store i8 %136, ptr %140, align 1, !tbaa !15
  %141 = load ptr, ptr %103, align 8, !tbaa !14
  %142 = or disjoint i64 %indvars.iv, 3
  %143 = getelementptr inbounds i8, ptr %141, i64 %142
  %144 = load i8, ptr %143, align 1, !tbaa !15
  %145 = load ptr, ptr %104, align 8, !tbaa !14
  %146 = getelementptr inbounds i8, ptr %145, i64 %142
  %147 = load i8, ptr %146, align 1, !tbaa !15
  %148 = sub i8 %144, %147
  %149 = load ptr, ptr %85, align 8, !tbaa !14
  %150 = getelementptr inbounds ptr, ptr %149, i64 %indvars.iv2487
  %151 = load ptr, ptr %150, align 8, !tbaa !14
  %152 = getelementptr inbounds i8, ptr %151, i64 %142
  store i8 %148, ptr %152, align 1, !tbaa !15
  %153 = load ptr, ptr %103, align 8, !tbaa !14
  %154 = or disjoint i64 %indvars.iv, 4
  %155 = getelementptr inbounds i8, ptr %153, i64 %154
  %156 = load i8, ptr %155, align 1, !tbaa !15
  %157 = load ptr, ptr %104, align 8, !tbaa !14
  %158 = getelementptr inbounds i8, ptr %157, i64 %154
  %159 = load i8, ptr %158, align 1, !tbaa !15
  %160 = sub i8 %156, %159
  %161 = load ptr, ptr %85, align 8, !tbaa !14
  %162 = getelementptr inbounds ptr, ptr %161, i64 %indvars.iv2487
  %163 = load ptr, ptr %162, align 8, !tbaa !14
  %164 = getelementptr inbounds i8, ptr %163, i64 %154
  store i8 %160, ptr %164, align 1, !tbaa !15
  %165 = load ptr, ptr %103, align 8, !tbaa !14
  %166 = or disjoint i64 %indvars.iv, 5
  %167 = getelementptr inbounds i8, ptr %165, i64 %166
  %168 = load i8, ptr %167, align 1, !tbaa !15
  %169 = load ptr, ptr %104, align 8, !tbaa !14
  %170 = getelementptr inbounds i8, ptr %169, i64 %166
  %171 = load i8, ptr %170, align 1, !tbaa !15
  %172 = sub i8 %168, %171
  %173 = load ptr, ptr %85, align 8, !tbaa !14
  %174 = getelementptr inbounds ptr, ptr %173, i64 %indvars.iv2487
  %175 = load ptr, ptr %174, align 8, !tbaa !14
  %176 = getelementptr inbounds i8, ptr %175, i64 %166
  store i8 %172, ptr %176, align 1, !tbaa !15
  %177 = load ptr, ptr %103, align 8, !tbaa !14
  %178 = or disjoint i64 %indvars.iv, 6
  %179 = getelementptr inbounds i8, ptr %177, i64 %178
  %180 = load i8, ptr %179, align 1, !tbaa !15
  %181 = load ptr, ptr %104, align 8, !tbaa !14
  %182 = getelementptr inbounds i8, ptr %181, i64 %178
  %183 = load i8, ptr %182, align 1, !tbaa !15
  %184 = sub i8 %180, %183
  %185 = load ptr, ptr %85, align 8, !tbaa !14
  %186 = getelementptr inbounds ptr, ptr %185, i64 %indvars.iv2487
  %187 = load ptr, ptr %186, align 8, !tbaa !14
  %188 = getelementptr inbounds i8, ptr %187, i64 %178
  store i8 %184, ptr %188, align 1, !tbaa !15
  %189 = load ptr, ptr %103, align 8, !tbaa !14
  %190 = or disjoint i64 %indvars.iv, 7
  %191 = getelementptr inbounds i8, ptr %189, i64 %190
  %192 = load i8, ptr %191, align 1, !tbaa !15
  %193 = load ptr, ptr %104, align 8, !tbaa !14
  %194 = getelementptr inbounds i8, ptr %193, i64 %190
  %195 = load i8, ptr %194, align 1, !tbaa !15
  %196 = sub i8 %192, %195
  %197 = load ptr, ptr %85, align 8, !tbaa !14
  %198 = getelementptr inbounds ptr, ptr %197, i64 %indvars.iv2487
  %199 = load ptr, ptr %198, align 8, !tbaa !14
  %200 = getelementptr inbounds i8, ptr %199, i64 %190
  store i8 %196, ptr %200, align 1, !tbaa !15
  %201 = load ptr, ptr %103, align 8, !tbaa !14
  %202 = or disjoint i64 %indvars.iv, 8
  %203 = getelementptr inbounds i8, ptr %201, i64 %202
  %204 = load i8, ptr %203, align 1, !tbaa !15
  %205 = load ptr, ptr %104, align 8, !tbaa !14
  %206 = getelementptr inbounds i8, ptr %205, i64 %202
  %207 = load i8, ptr %206, align 1, !tbaa !15
  %208 = sub i8 %204, %207
  %209 = load ptr, ptr %85, align 8, !tbaa !14
  %210 = getelementptr inbounds ptr, ptr %209, i64 %indvars.iv2487
  %211 = load ptr, ptr %210, align 8, !tbaa !14
  %212 = getelementptr inbounds i8, ptr %211, i64 %202
  store i8 %208, ptr %212, align 1, !tbaa !15
  %213 = load ptr, ptr %103, align 8, !tbaa !14
  %214 = or disjoint i64 %indvars.iv, 9
  %215 = getelementptr inbounds i8, ptr %213, i64 %214
  %216 = load i8, ptr %215, align 1, !tbaa !15
  %217 = load ptr, ptr %104, align 8, !tbaa !14
  %218 = getelementptr inbounds i8, ptr %217, i64 %214
  %219 = load i8, ptr %218, align 1, !tbaa !15
  %220 = sub i8 %216, %219
  %221 = load ptr, ptr %85, align 8, !tbaa !14
  %222 = getelementptr inbounds ptr, ptr %221, i64 %indvars.iv2487
  %223 = load ptr, ptr %222, align 8, !tbaa !14
  %224 = getelementptr inbounds i8, ptr %223, i64 %214
  store i8 %220, ptr %224, align 1, !tbaa !15
  %225 = load ptr, ptr %103, align 8, !tbaa !14
  %226 = or disjoint i64 %indvars.iv, 10
  %227 = getelementptr inbounds i8, ptr %225, i64 %226
  %228 = load i8, ptr %227, align 1, !tbaa !15
  %229 = load ptr, ptr %104, align 8, !tbaa !14
  %230 = getelementptr inbounds i8, ptr %229, i64 %226
  %231 = load i8, ptr %230, align 1, !tbaa !15
  %232 = sub i8 %228, %231
  %233 = load ptr, ptr %85, align 8, !tbaa !14
  %234 = getelementptr inbounds ptr, ptr %233, i64 %indvars.iv2487
  %235 = load ptr, ptr %234, align 8, !tbaa !14
  %236 = getelementptr inbounds i8, ptr %235, i64 %226
  store i8 %232, ptr %236, align 1, !tbaa !15
  %237 = load ptr, ptr %103, align 8, !tbaa !14
  %238 = or disjoint i64 %indvars.iv, 11
  %239 = getelementptr inbounds i8, ptr %237, i64 %238
  %240 = load i8, ptr %239, align 1, !tbaa !15
  %241 = load ptr, ptr %104, align 8, !tbaa !14
  %242 = getelementptr inbounds i8, ptr %241, i64 %238
  %243 = load i8, ptr %242, align 1, !tbaa !15
  %244 = sub i8 %240, %243
  %245 = load ptr, ptr %85, align 8, !tbaa !14
  %246 = getelementptr inbounds ptr, ptr %245, i64 %indvars.iv2487
  %247 = load ptr, ptr %246, align 8, !tbaa !14
  %248 = getelementptr inbounds i8, ptr %247, i64 %238
  store i8 %244, ptr %248, align 1, !tbaa !15
  %249 = load ptr, ptr %103, align 8, !tbaa !14
  %250 = or disjoint i64 %indvars.iv, 12
  %251 = getelementptr inbounds i8, ptr %249, i64 %250
  %252 = load i8, ptr %251, align 1, !tbaa !15
  %253 = load ptr, ptr %104, align 8, !tbaa !14
  %254 = getelementptr inbounds i8, ptr %253, i64 %250
  %255 = load i8, ptr %254, align 1, !tbaa !15
  %256 = sub i8 %252, %255
  %257 = load ptr, ptr %85, align 8, !tbaa !14
  %258 = getelementptr inbounds ptr, ptr %257, i64 %indvars.iv2487
  %259 = load ptr, ptr %258, align 8, !tbaa !14
  %260 = getelementptr inbounds i8, ptr %259, i64 %250
  store i8 %256, ptr %260, align 1, !tbaa !15
  %261 = load ptr, ptr %103, align 8, !tbaa !14
  %262 = or disjoint i64 %indvars.iv, 13
  %263 = getelementptr inbounds i8, ptr %261, i64 %262
  %264 = load i8, ptr %263, align 1, !tbaa !15
  %265 = load ptr, ptr %104, align 8, !tbaa !14
  %266 = getelementptr inbounds i8, ptr %265, i64 %262
  %267 = load i8, ptr %266, align 1, !tbaa !15
  %268 = sub i8 %264, %267
  %269 = load ptr, ptr %85, align 8, !tbaa !14
  %270 = getelementptr inbounds ptr, ptr %269, i64 %indvars.iv2487
  %271 = load ptr, ptr %270, align 8, !tbaa !14
  %272 = getelementptr inbounds i8, ptr %271, i64 %262
  store i8 %268, ptr %272, align 1, !tbaa !15
  %273 = load ptr, ptr %103, align 8, !tbaa !14
  %274 = or disjoint i64 %indvars.iv, 14
  %275 = getelementptr inbounds i8, ptr %273, i64 %274
  %276 = load i8, ptr %275, align 1, !tbaa !15
  %277 = load ptr, ptr %104, align 8, !tbaa !14
  %278 = getelementptr inbounds i8, ptr %277, i64 %274
  %279 = load i8, ptr %278, align 1, !tbaa !15
  %280 = sub i8 %276, %279
  %281 = load ptr, ptr %85, align 8, !tbaa !14
  %282 = getelementptr inbounds ptr, ptr %281, i64 %indvars.iv2487
  %283 = load ptr, ptr %282, align 8, !tbaa !14
  %284 = getelementptr inbounds i8, ptr %283, i64 %274
  store i8 %280, ptr %284, align 1, !tbaa !15
  %285 = load ptr, ptr %103, align 8, !tbaa !14
  %286 = or disjoint i64 %indvars.iv, 15
  %287 = getelementptr inbounds i8, ptr %285, i64 %286
  %288 = load i8, ptr %287, align 1, !tbaa !15
  %289 = load ptr, ptr %104, align 8, !tbaa !14
  %290 = getelementptr inbounds i8, ptr %289, i64 %286
  %291 = load i8, ptr %290, align 1, !tbaa !15
  %292 = sub i8 %288, %291
  %293 = load ptr, ptr %85, align 8, !tbaa !14
  %294 = getelementptr inbounds ptr, ptr %293, i64 %indvars.iv2487
  %295 = load ptr, ptr %294, align 8, !tbaa !14
  %296 = getelementptr inbounds i8, ptr %295, i64 %286
  store i8 %292, ptr %296, align 1, !tbaa !15
  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 16
  %297 = load i32, ptr %66, align 8, !tbaa !12
  %298 = add nsw i32 %297, -15
  %299 = sext i32 %298 to i64
  %300 = icmp slt i64 %indvars.iv.next, %299
  br i1 %300, label %105, label %._crit_edge.loopexit, !llvm.loop !18

._crit_edge.loopexit:                             ; preds = %105
  %301 = trunc nuw nsw i64 %indvars.iv.next to i32
  br label %._crit_edge

._crit_edge:                                      ; preds = %._crit_edge.loopexit, %.preheader
  %.0.lcssa = phi i32 [ 0, %.preheader ], [ %301, %._crit_edge.loopexit ]
  %.lcssa = phi i32 [ %101, %.preheader ], [ %297, %._crit_edge.loopexit ]
  %302 = icmp eq i32 %.lcssa, %.0.lcssa
  br i1 %302, label %1768, label %303

303:                                              ; preds = %._crit_edge
  %304 = sub nsw i32 %.lcssa, %.0.lcssa
  switch i32 %304, label %1768 [
    i32 1, label %305
    i32 2, label %311
    i32 3, label %330
    i32 4, label %362
    i32 5, label %407
    i32 6, label %465
    i32 7, label %536
    i32 8, label %620
    i32 9, label %717
    i32 10, label %827
    i32 11, label %950
    i32 12, label %1086
    i32 13, label %1235
    i32 14, label %1397
    i32 15, label %1572
  ]

305:                                              ; preds = %303
  %306 = getelementptr inbounds ptr, ptr %71, i64 %indvars.iv2487
  %307 = load ptr, ptr %306, align 8, !tbaa !14
  %308 = zext nneg i32 %.0.lcssa to i64
  %309 = getelementptr inbounds i8, ptr %307, i64 %308
  %310 = getelementptr inbounds ptr, ptr %75, i64 %indvars.iv2487
  br label %.sink.split2500

311:                                              ; preds = %303
  %312 = getelementptr inbounds ptr, ptr %71, i64 %indvars.iv2487
  %313 = load ptr, ptr %312, align 8, !tbaa !14
  %314 = zext nneg i32 %.0.lcssa to i64
  %315 = getelementptr inbounds i8, ptr %313, i64 %314
  %316 = load i8, ptr %315, align 1, !tbaa !15
  %317 = getelementptr inbounds ptr, ptr %75, i64 %indvars.iv2487
  %318 = load ptr, ptr %317, align 8, !tbaa !14
  %319 = getelementptr inbounds i8, ptr %318, i64 %314
  %320 = load i8, ptr %319, align 1, !tbaa !15
  %321 = sub i8 %316, %320
  %322 = load ptr, ptr %85, align 8, !tbaa !14
  %323 = getelementptr inbounds ptr, ptr %322, i64 %indvars.iv2487
  %324 = load ptr, ptr %323, align 8, !tbaa !14
  %325 = getelementptr inbounds i8, ptr %324, i64 %314
  store i8 %321, ptr %325, align 1, !tbaa !15
  %326 = load ptr, ptr %312, align 8, !tbaa !14
  %327 = or disjoint i32 %.0.lcssa, 1
  %328 = zext nneg i32 %327 to i64
  %329 = getelementptr inbounds i8, ptr %326, i64 %328
  br label %.sink.split2500

330:                                              ; preds = %303
  %331 = getelementptr inbounds ptr, ptr %71, i64 %indvars.iv2487
  %332 = load ptr, ptr %331, align 8, !tbaa !14
  %333 = zext nneg i32 %.0.lcssa to i64
  %334 = getelementptr inbounds i8, ptr %332, i64 %333
  %335 = load i8, ptr %334, align 1, !tbaa !15
  %336 = getelementptr inbounds ptr, ptr %75, i64 %indvars.iv2487
  %337 = load ptr, ptr %336, align 8, !tbaa !14
  %338 = getelementptr inbounds i8, ptr %337, i64 %333
  %339 = load i8, ptr %338, align 1, !tbaa !15
  %340 = sub i8 %335, %339
  %341 = load ptr, ptr %85, align 8, !tbaa !14
  %342 = getelementptr inbounds ptr, ptr %341, i64 %indvars.iv2487
  %343 = load ptr, ptr %342, align 8, !tbaa !14
  %344 = getelementptr inbounds i8, ptr %343, i64 %333
  store i8 %340, ptr %344, align 1, !tbaa !15
  %345 = load ptr, ptr %331, align 8, !tbaa !14
  %346 = or disjoint i32 %.0.lcssa, 1
  %347 = zext nneg i32 %346 to i64
  %348 = getelementptr inbounds i8, ptr %345, i64 %347
  %349 = load i8, ptr %348, align 1, !tbaa !15
  %350 = load ptr, ptr %336, align 8, !tbaa !14
  %351 = getelementptr inbounds i8, ptr %350, i64 %347
  %352 = load i8, ptr %351, align 1, !tbaa !15
  %353 = sub i8 %349, %352
  %354 = load ptr, ptr %85, align 8, !tbaa !14
  %355 = getelementptr inbounds ptr, ptr %354, i64 %indvars.iv2487
  %356 = load ptr, ptr %355, align 8, !tbaa !14
  %357 = getelementptr inbounds i8, ptr %356, i64 %347
  store i8 %353, ptr %357, align 1, !tbaa !15
  %358 = load ptr, ptr %331, align 8, !tbaa !14
  %359 = or disjoint i32 %.0.lcssa, 2
  %360 = zext nneg i32 %359 to i64
  %361 = getelementptr inbounds i8, ptr %358, i64 %360
  br label %.sink.split2500

362:                                              ; preds = %303
  %363 = getelementptr inbounds ptr, ptr %71, i64 %indvars.iv2487
  %364 = load ptr, ptr %363, align 8, !tbaa !14
  %365 = zext nneg i32 %.0.lcssa to i64
  %366 = getelementptr inbounds i8, ptr %364, i64 %365
  %367 = load i8, ptr %366, align 1, !tbaa !15
  %368 = getelementptr inbounds ptr, ptr %75, i64 %indvars.iv2487
  %369 = load ptr, ptr %368, align 8, !tbaa !14
  %370 = getelementptr inbounds i8, ptr %369, i64 %365
  %371 = load i8, ptr %370, align 1, !tbaa !15
  %372 = sub i8 %367, %371
  %373 = load ptr, ptr %85, align 8, !tbaa !14
  %374 = getelementptr inbounds ptr, ptr %373, i64 %indvars.iv2487
  %375 = load ptr, ptr %374, align 8, !tbaa !14
  %376 = getelementptr inbounds i8, ptr %375, i64 %365
  store i8 %372, ptr %376, align 1, !tbaa !15
  %377 = load ptr, ptr %363, align 8, !tbaa !14
  %378 = or disjoint i32 %.0.lcssa, 1
  %379 = zext nneg i32 %378 to i64
  %380 = getelementptr inbounds i8, ptr %377, i64 %379
  %381 = load i8, ptr %380, align 1, !tbaa !15
  %382 = load ptr, ptr %368, align 8, !tbaa !14
  %383 = getelementptr inbounds i8, ptr %382, i64 %379
  %384 = load i8, ptr %383, align 1, !tbaa !15
  %385 = sub i8 %381, %384
  %386 = load ptr, ptr %85, align 8, !tbaa !14
  %387 = getelementptr inbounds ptr, ptr %386, i64 %indvars.iv2487
  %388 = load ptr, ptr %387, align 8, !tbaa !14
  %389 = getelementptr inbounds i8, ptr %388, i64 %379
  store i8 %385, ptr %389, align 1, !tbaa !15
  %390 = load ptr, ptr %363, align 8, !tbaa !14
  %391 = or disjoint i32 %.0.lcssa, 2
  %392 = zext nneg i32 %391 to i64
  %393 = getelementptr inbounds i8, ptr %390, i64 %392
  %394 = load i8, ptr %393, align 1, !tbaa !15
  %395 = load ptr, ptr %368, align 8, !tbaa !14
  %396 = getelementptr inbounds i8, ptr %395, i64 %392
  %397 = load i8, ptr %396, align 1, !tbaa !15
  %398 = sub i8 %394, %397
  %399 = load ptr, ptr %85, align 8, !tbaa !14
  %400 = getelementptr inbounds ptr, ptr %399, i64 %indvars.iv2487
  %401 = load ptr, ptr %400, align 8, !tbaa !14
  %402 = getelementptr inbounds i8, ptr %401, i64 %392
  store i8 %398, ptr %402, align 1, !tbaa !15
  %403 = load ptr, ptr %363, align 8, !tbaa !14
  %404 = or disjoint i32 %.0.lcssa, 3
  %405 = zext nneg i32 %404 to i64
  %406 = getelementptr inbounds i8, ptr %403, i64 %405
  br label %.sink.split2500

407:                                              ; preds = %303
  %408 = getelementptr inbounds ptr, ptr %71, i64 %indvars.iv2487
  %409 = load ptr, ptr %408, align 8, !tbaa !14
  %410 = zext nneg i32 %.0.lcssa to i64
  %411 = getelementptr inbounds i8, ptr %409, i64 %410
  %412 = load i8, ptr %411, align 1, !tbaa !15
  %413 = getelementptr inbounds ptr, ptr %75, i64 %indvars.iv2487
  %414 = load ptr, ptr %413, align 8, !tbaa !14
  %415 = getelementptr inbounds i8, ptr %414, i64 %410
  %416 = load i8, ptr %415, align 1, !tbaa !15
  %417 = sub i8 %412, %416
  %418 = load ptr, ptr %85, align 8, !tbaa !14
  %419 = getelementptr inbounds ptr, ptr %418, i64 %indvars.iv2487
  %420 = load ptr, ptr %419, align 8, !tbaa !14
  %421 = getelementptr inbounds i8, ptr %420, i64 %410
  store i8 %417, ptr %421, align 1, !tbaa !15
  %422 = load ptr, ptr %408, align 8, !tbaa !14
  %423 = or disjoint i32 %.0.lcssa, 1
  %424 = zext nneg i32 %423 to i64
  %425 = getelementptr inbounds i8, ptr %422, i64 %424
  %426 = load i8, ptr %425, align 1, !tbaa !15
  %427 = load ptr, ptr %413, align 8, !tbaa !14
  %428 = getelementptr inbounds i8, ptr %427, i64 %424
  %429 = load i8, ptr %428, align 1, !tbaa !15
  %430 = sub i8 %426, %429
  %431 = load ptr, ptr %85, align 8, !tbaa !14
  %432 = getelementptr inbounds ptr, ptr %431, i64 %indvars.iv2487
  %433 = load ptr, ptr %432, align 8, !tbaa !14
  %434 = getelementptr inbounds i8, ptr %433, i64 %424
  store i8 %430, ptr %434, align 1, !tbaa !15
  %435 = load ptr, ptr %408, align 8, !tbaa !14
  %436 = or disjoint i32 %.0.lcssa, 2
  %437 = zext nneg i32 %436 to i64
  %438 = getelementptr inbounds i8, ptr %435, i64 %437
  %439 = load i8, ptr %438, align 1, !tbaa !15
  %440 = load ptr, ptr %413, align 8, !tbaa !14
  %441 = getelementptr inbounds i8, ptr %440, i64 %437
  %442 = load i8, ptr %441, align 1, !tbaa !15
  %443 = sub i8 %439, %442
  %444 = load ptr, ptr %85, align 8, !tbaa !14
  %445 = getelementptr inbounds ptr, ptr %444, i64 %indvars.iv2487
  %446 = load ptr, ptr %445, align 8, !tbaa !14
  %447 = getelementptr inbounds i8, ptr %446, i64 %437
  store i8 %443, ptr %447, align 1, !tbaa !15
  %448 = load ptr, ptr %408, align 8, !tbaa !14
  %449 = or disjoint i32 %.0.lcssa, 3
  %450 = zext nneg i32 %449 to i64
  %451 = getelementptr inbounds i8, ptr %448, i64 %450
  %452 = load i8, ptr %451, align 1, !tbaa !15
  %453 = load ptr, ptr %413, align 8, !tbaa !14
  %454 = getelementptr inbounds i8, ptr %453, i64 %450
  %455 = load i8, ptr %454, align 1, !tbaa !15
  %456 = sub i8 %452, %455
  %457 = load ptr, ptr %85, align 8, !tbaa !14
  %458 = getelementptr inbounds ptr, ptr %457, i64 %indvars.iv2487
  %459 = load ptr, ptr %458, align 8, !tbaa !14
  %460 = getelementptr inbounds i8, ptr %459, i64 %450
  store i8 %456, ptr %460, align 1, !tbaa !15
  %461 = load ptr, ptr %408, align 8, !tbaa !14
  %462 = or disjoint i32 %.0.lcssa, 4
  %463 = zext nneg i32 %462 to i64
  %464 = getelementptr inbounds i8, ptr %461, i64 %463
  br label %.sink.split2500

465:                                              ; preds = %303
  %466 = getelementptr inbounds ptr, ptr %71, i64 %indvars.iv2487
  %467 = load ptr, ptr %466, align 8, !tbaa !14
  %468 = zext nneg i32 %.0.lcssa to i64
  %469 = getelementptr inbounds i8, ptr %467, i64 %468
  %470 = load i8, ptr %469, align 1, !tbaa !15
  %471 = getelementptr inbounds ptr, ptr %75, i64 %indvars.iv2487
  %472 = load ptr, ptr %471, align 8, !tbaa !14
  %473 = getelementptr inbounds i8, ptr %472, i64 %468
  %474 = load i8, ptr %473, align 1, !tbaa !15
  %475 = sub i8 %470, %474
  %476 = load ptr, ptr %85, align 8, !tbaa !14
  %477 = getelementptr inbounds ptr, ptr %476, i64 %indvars.iv2487
  %478 = load ptr, ptr %477, align 8, !tbaa !14
  %479 = getelementptr inbounds i8, ptr %478, i64 %468
  store i8 %475, ptr %479, align 1, !tbaa !15
  %480 = load ptr, ptr %466, align 8, !tbaa !14
  %481 = or disjoint i32 %.0.lcssa, 1
  %482 = zext nneg i32 %481 to i64
  %483 = getelementptr inbounds i8, ptr %480, i64 %482
  %484 = load i8, ptr %483, align 1, !tbaa !15
  %485 = load ptr, ptr %471, align 8, !tbaa !14
  %486 = getelementptr inbounds i8, ptr %485, i64 %482
  %487 = load i8, ptr %486, align 1, !tbaa !15
  %488 = sub i8 %484, %487
  %489 = load ptr, ptr %85, align 8, !tbaa !14
  %490 = getelementptr inbounds ptr, ptr %489, i64 %indvars.iv2487
  %491 = load ptr, ptr %490, align 8, !tbaa !14
  %492 = getelementptr inbounds i8, ptr %491, i64 %482
  store i8 %488, ptr %492, align 1, !tbaa !15
  %493 = load ptr, ptr %466, align 8, !tbaa !14
  %494 = or disjoint i32 %.0.lcssa, 2
  %495 = zext nneg i32 %494 to i64
  %496 = getelementptr inbounds i8, ptr %493, i64 %495
  %497 = load i8, ptr %496, align 1, !tbaa !15
  %498 = load ptr, ptr %471, align 8, !tbaa !14
  %499 = getelementptr inbounds i8, ptr %498, i64 %495
  %500 = load i8, ptr %499, align 1, !tbaa !15
  %501 = sub i8 %497, %500
  %502 = load ptr, ptr %85, align 8, !tbaa !14
  %503 = getelementptr inbounds ptr, ptr %502, i64 %indvars.iv2487
  %504 = load ptr, ptr %503, align 8, !tbaa !14
  %505 = getelementptr inbounds i8, ptr %504, i64 %495
  store i8 %501, ptr %505, align 1, !tbaa !15
  %506 = load ptr, ptr %466, align 8, !tbaa !14
  %507 = or disjoint i32 %.0.lcssa, 3
  %508 = zext nneg i32 %507 to i64
  %509 = getelementptr inbounds i8, ptr %506, i64 %508
  %510 = load i8, ptr %509, align 1, !tbaa !15
  %511 = load ptr, ptr %471, align 8, !tbaa !14
  %512 = getelementptr inbounds i8, ptr %511, i64 %508
  %513 = load i8, ptr %512, align 1, !tbaa !15
  %514 = sub i8 %510, %513
  %515 = load ptr, ptr %85, align 8, !tbaa !14
  %516 = getelementptr inbounds ptr, ptr %515, i64 %indvars.iv2487
  %517 = load ptr, ptr %516, align 8, !tbaa !14
  %518 = getelementptr inbounds i8, ptr %517, i64 %508
  store i8 %514, ptr %518, align 1, !tbaa !15
  %519 = load ptr, ptr %466, align 8, !tbaa !14
  %520 = or disjoint i32 %.0.lcssa, 4
  %521 = zext nneg i32 %520 to i64
  %522 = getelementptr inbounds i8, ptr %519, i64 %521
  %523 = load i8, ptr %522, align 1, !tbaa !15
  %524 = load ptr, ptr %471, align 8, !tbaa !14
  %525 = getelementptr inbounds i8, ptr %524, i64 %521
  %526 = load i8, ptr %525, align 1, !tbaa !15
  %527 = sub i8 %523, %526
  %528 = load ptr, ptr %85, align 8, !tbaa !14
  %529 = getelementptr inbounds ptr, ptr %528, i64 %indvars.iv2487
  %530 = load ptr, ptr %529, align 8, !tbaa !14
  %531 = getelementptr inbounds i8, ptr %530, i64 %521
  store i8 %527, ptr %531, align 1, !tbaa !15
  %532 = load ptr, ptr %466, align 8, !tbaa !14
  %533 = or disjoint i32 %.0.lcssa, 5
  %534 = zext nneg i32 %533 to i64
  %535 = getelementptr inbounds i8, ptr %532, i64 %534
  br label %.sink.split2500

536:                                              ; preds = %303
  %537 = getelementptr inbounds ptr, ptr %71, i64 %indvars.iv2487
  %538 = load ptr, ptr %537, align 8, !tbaa !14
  %539 = zext nneg i32 %.0.lcssa to i64
  %540 = getelementptr inbounds i8, ptr %538, i64 %539
  %541 = load i8, ptr %540, align 1, !tbaa !15
  %542 = getelementptr inbounds ptr, ptr %75, i64 %indvars.iv2487
  %543 = load ptr, ptr %542, align 8, !tbaa !14
  %544 = getelementptr inbounds i8, ptr %543, i64 %539
  %545 = load i8, ptr %544, align 1, !tbaa !15
  %546 = sub i8 %541, %545
  %547 = load ptr, ptr %85, align 8, !tbaa !14
  %548 = getelementptr inbounds ptr, ptr %547, i64 %indvars.iv2487
  %549 = load ptr, ptr %548, align 8, !tbaa !14
  %550 = getelementptr inbounds i8, ptr %549, i64 %539
  store i8 %546, ptr %550, align 1, !tbaa !15
  %551 = load ptr, ptr %537, align 8, !tbaa !14
  %552 = or disjoint i32 %.0.lcssa, 1
  %553 = zext nneg i32 %552 to i64
  %554 = getelementptr inbounds i8, ptr %551, i64 %553
  %555 = load i8, ptr %554, align 1, !tbaa !15
  %556 = load ptr, ptr %542, align 8, !tbaa !14
  %557 = getelementptr inbounds i8, ptr %556, i64 %553
  %558 = load i8, ptr %557, align 1, !tbaa !15
  %559 = sub i8 %555, %558
  %560 = load ptr, ptr %85, align 8, !tbaa !14
  %561 = getelementptr inbounds ptr, ptr %560, i64 %indvars.iv2487
  %562 = load ptr, ptr %561, align 8, !tbaa !14
  %563 = getelementptr inbounds i8, ptr %562, i64 %553
  store i8 %559, ptr %563, align 1, !tbaa !15
  %564 = load ptr, ptr %537, align 8, !tbaa !14
  %565 = or disjoint i32 %.0.lcssa, 2
  %566 = zext nneg i32 %565 to i64
  %567 = getelementptr inbounds i8, ptr %564, i64 %566
  %568 = load i8, ptr %567, align 1, !tbaa !15
  %569 = load ptr, ptr %542, align 8, !tbaa !14
  %570 = getelementptr inbounds i8, ptr %569, i64 %566
  %571 = load i8, ptr %570, align 1, !tbaa !15
  %572 = sub i8 %568, %571
  %573 = load ptr, ptr %85, align 8, !tbaa !14
  %574 = getelementptr inbounds ptr, ptr %573, i64 %indvars.iv2487
  %575 = load ptr, ptr %574, align 8, !tbaa !14
  %576 = getelementptr inbounds i8, ptr %575, i64 %566
  store i8 %572, ptr %576, align 1, !tbaa !15
  %577 = load ptr, ptr %537, align 8, !tbaa !14
  %578 = or disjoint i32 %.0.lcssa, 3
  %579 = zext nneg i32 %578 to i64
  %580 = getelementptr inbounds i8, ptr %577, i64 %579
  %581 = load i8, ptr %580, align 1, !tbaa !15
  %582 = load ptr, ptr %542, align 8, !tbaa !14
  %583 = getelementptr inbounds i8, ptr %582, i64 %579
  %584 = load i8, ptr %583, align 1, !tbaa !15
  %585 = sub i8 %581, %584
  %586 = load ptr, ptr %85, align 8, !tbaa !14
  %587 = getelementptr inbounds ptr, ptr %586, i64 %indvars.iv2487
  %588 = load ptr, ptr %587, align 8, !tbaa !14
  %589 = getelementptr inbounds i8, ptr %588, i64 %579
  store i8 %585, ptr %589, align 1, !tbaa !15
  %590 = load ptr, ptr %537, align 8, !tbaa !14
  %591 = or disjoint i32 %.0.lcssa, 4
  %592 = zext nneg i32 %591 to i64
  %593 = getelementptr inbounds i8, ptr %590, i64 %592
  %594 = load i8, ptr %593, align 1, !tbaa !15
  %595 = load ptr, ptr %542, align 8, !tbaa !14
  %596 = getelementptr inbounds i8, ptr %595, i64 %592
  %597 = load i8, ptr %596, align 1, !tbaa !15
  %598 = sub i8 %594, %597
  %599 = load ptr, ptr %85, align 8, !tbaa !14
  %600 = getelementptr inbounds ptr, ptr %599, i64 %indvars.iv2487
  %601 = load ptr, ptr %600, align 8, !tbaa !14
  %602 = getelementptr inbounds i8, ptr %601, i64 %592
  store i8 %598, ptr %602, align 1, !tbaa !15
  %603 = load ptr, ptr %537, align 8, !tbaa !14
  %604 = or disjoint i32 %.0.lcssa, 5
  %605 = zext nneg i32 %604 to i64
  %606 = getelementptr inbounds i8, ptr %603, i64 %605
  %607 = load i8, ptr %606, align 1, !tbaa !15
  %608 = load ptr, ptr %542, align 8, !tbaa !14
  %609 = getelementptr inbounds i8, ptr %608, i64 %605
  %610 = load i8, ptr %609, align 1, !tbaa !15
  %611 = sub i8 %607, %610
  %612 = load ptr, ptr %85, align 8, !tbaa !14
  %613 = getelementptr inbounds ptr, ptr %612, i64 %indvars.iv2487
  %614 = load ptr, ptr %613, align 8, !tbaa !14
  %615 = getelementptr inbounds i8, ptr %614, i64 %605
  store i8 %611, ptr %615, align 1, !tbaa !15
  %616 = load ptr, ptr %537, align 8, !tbaa !14
  %617 = or disjoint i32 %.0.lcssa, 6
  %618 = zext nneg i32 %617 to i64
  %619 = getelementptr inbounds i8, ptr %616, i64 %618
  br label %.sink.split2500

620:                                              ; preds = %303
  %621 = getelementptr inbounds ptr, ptr %71, i64 %indvars.iv2487
  %622 = load ptr, ptr %621, align 8, !tbaa !14
  %623 = zext nneg i32 %.0.lcssa to i64
  %624 = getelementptr inbounds i8, ptr %622, i64 %623
  %625 = load i8, ptr %624, align 1, !tbaa !15
  %626 = getelementptr inbounds ptr, ptr %75, i64 %indvars.iv2487
  %627 = load ptr, ptr %626, align 8, !tbaa !14
  %628 = getelementptr inbounds i8, ptr %627, i64 %623
  %629 = load i8, ptr %628, align 1, !tbaa !15
  %630 = sub i8 %625, %629
  %631 = load ptr, ptr %85, align 8, !tbaa !14
  %632 = getelementptr inbounds ptr, ptr %631, i64 %indvars.iv2487
  %633 = load ptr, ptr %632, align 8, !tbaa !14
  %634 = getelementptr inbounds i8, ptr %633, i64 %623
  store i8 %630, ptr %634, align 1, !tbaa !15
  %635 = load ptr, ptr %621, align 8, !tbaa !14
  %636 = or disjoint i32 %.0.lcssa, 1
  %637 = zext nneg i32 %636 to i64
  %638 = getelementptr inbounds i8, ptr %635, i64 %637
  %639 = load i8, ptr %638, align 1, !tbaa !15
  %640 = load ptr, ptr %626, align 8, !tbaa !14
  %641 = getelementptr inbounds i8, ptr %640, i64 %637
  %642 = load i8, ptr %641, align 1, !tbaa !15
  %643 = sub i8 %639, %642
  %644 = load ptr, ptr %85, align 8, !tbaa !14
  %645 = getelementptr inbounds ptr, ptr %644, i64 %indvars.iv2487
  %646 = load ptr, ptr %645, align 8, !tbaa !14
  %647 = getelementptr inbounds i8, ptr %646, i64 %637
  store i8 %643, ptr %647, align 1, !tbaa !15
  %648 = load ptr, ptr %621, align 8, !tbaa !14
  %649 = or disjoint i32 %.0.lcssa, 2
  %650 = zext nneg i32 %649 to i64
  %651 = getelementptr inbounds i8, ptr %648, i64 %650
  %652 = load i8, ptr %651, align 1, !tbaa !15
  %653 = load ptr, ptr %626, align 8, !tbaa !14
  %654 = getelementptr inbounds i8, ptr %653, i64 %650
  %655 = load i8, ptr %654, align 1, !tbaa !15
  %656 = sub i8 %652, %655
  %657 = load ptr, ptr %85, align 8, !tbaa !14
  %658 = getelementptr inbounds ptr, ptr %657, i64 %indvars.iv2487
  %659 = load ptr, ptr %658, align 8, !tbaa !14
  %660 = getelementptr inbounds i8, ptr %659, i64 %650
  store i8 %656, ptr %660, align 1, !tbaa !15
  %661 = load ptr, ptr %621, align 8, !tbaa !14
  %662 = or disjoint i32 %.0.lcssa, 3
  %663 = zext nneg i32 %662 to i64
  %664 = getelementptr inbounds i8, ptr %661, i64 %663
  %665 = load i8, ptr %664, align 1, !tbaa !15
  %666 = load ptr, ptr %626, align 8, !tbaa !14
  %667 = getelementptr inbounds i8, ptr %666, i64 %663
  %668 = load i8, ptr %667, align 1, !tbaa !15
  %669 = sub i8 %665, %668
  %670 = load ptr, ptr %85, align 8, !tbaa !14
  %671 = getelementptr inbounds ptr, ptr %670, i64 %indvars.iv2487
  %672 = load ptr, ptr %671, align 8, !tbaa !14
  %673 = getelementptr inbounds i8, ptr %672, i64 %663
  store i8 %669, ptr %673, align 1, !tbaa !15
  %674 = load ptr, ptr %621, align 8, !tbaa !14
  %675 = or disjoint i32 %.0.lcssa, 4
  %676 = zext nneg i32 %675 to i64
  %677 = getelementptr inbounds i8, ptr %674, i64 %676
  %678 = load i8, ptr %677, align 1, !tbaa !15
  %679 = load ptr, ptr %626, align 8, !tbaa !14
  %680 = getelementptr inbounds i8, ptr %679, i64 %676
  %681 = load i8, ptr %680, align 1, !tbaa !15
  %682 = sub i8 %678, %681
  %683 = load ptr, ptr %85, align 8, !tbaa !14
  %684 = getelementptr inbounds ptr, ptr %683, i64 %indvars.iv2487
  %685 = load ptr, ptr %684, align 8, !tbaa !14
  %686 = getelementptr inbounds i8, ptr %685, i64 %676
  store i8 %682, ptr %686, align 1, !tbaa !15
  %687 = load ptr, ptr %621, align 8, !tbaa !14
  %688 = or disjoint i32 %.0.lcssa, 5
  %689 = zext nneg i32 %688 to i64
  %690 = getelementptr inbounds i8, ptr %687, i64 %689
  %691 = load i8, ptr %690, align 1, !tbaa !15
  %692 = load ptr, ptr %626, align 8, !tbaa !14
  %693 = getelementptr inbounds i8, ptr %692, i64 %689
  %694 = load i8, ptr %693, align 1, !tbaa !15
  %695 = sub i8 %691, %694
  %696 = load ptr, ptr %85, align 8, !tbaa !14
  %697 = getelementptr inbounds ptr, ptr %696, i64 %indvars.iv2487
  %698 = load ptr, ptr %697, align 8, !tbaa !14
  %699 = getelementptr inbounds i8, ptr %698, i64 %689
  store i8 %695, ptr %699, align 1, !tbaa !15
  %700 = load ptr, ptr %621, align 8, !tbaa !14
  %701 = or disjoint i32 %.0.lcssa, 6
  %702 = zext nneg i32 %701 to i64
  %703 = getelementptr inbounds i8, ptr %700, i64 %702
  %704 = load i8, ptr %703, align 1, !tbaa !15
  %705 = load ptr, ptr %626, align 8, !tbaa !14
  %706 = getelementptr inbounds i8, ptr %705, i64 %702
  %707 = load i8, ptr %706, align 1, !tbaa !15
  %708 = sub i8 %704, %707
  %709 = load ptr, ptr %85, align 8, !tbaa !14
  %710 = getelementptr inbounds ptr, ptr %709, i64 %indvars.iv2487
  %711 = load ptr, ptr %710, align 8, !tbaa !14
  %712 = getelementptr inbounds i8, ptr %711, i64 %702
  store i8 %708, ptr %712, align 1, !tbaa !15
  %713 = load ptr, ptr %621, align 8, !tbaa !14
  %714 = or disjoint i32 %.0.lcssa, 7
  %715 = zext nneg i32 %714 to i64
  %716 = getelementptr inbounds i8, ptr %713, i64 %715
  br label %.sink.split2500

717:                                              ; preds = %303
  %718 = getelementptr inbounds ptr, ptr %71, i64 %indvars.iv2487
  %719 = load ptr, ptr %718, align 8, !tbaa !14
  %720 = zext nneg i32 %.0.lcssa to i64
  %721 = getelementptr inbounds i8, ptr %719, i64 %720
  %722 = load i8, ptr %721, align 1, !tbaa !15
  %723 = getelementptr inbounds ptr, ptr %75, i64 %indvars.iv2487
  %724 = load ptr, ptr %723, align 8, !tbaa !14
  %725 = getelementptr inbounds i8, ptr %724, i64 %720
  %726 = load i8, ptr %725, align 1, !tbaa !15
  %727 = sub i8 %722, %726
  %728 = load ptr, ptr %85, align 8, !tbaa !14
  %729 = getelementptr inbounds ptr, ptr %728, i64 %indvars.iv2487
  %730 = load ptr, ptr %729, align 8, !tbaa !14
  %731 = getelementptr inbounds i8, ptr %730, i64 %720
  store i8 %727, ptr %731, align 1, !tbaa !15
  %732 = load ptr, ptr %718, align 8, !tbaa !14
  %733 = or disjoint i32 %.0.lcssa, 1
  %734 = zext nneg i32 %733 to i64
  %735 = getelementptr inbounds i8, ptr %732, i64 %734
  %736 = load i8, ptr %735, align 1, !tbaa !15
  %737 = load ptr, ptr %723, align 8, !tbaa !14
  %738 = getelementptr inbounds i8, ptr %737, i64 %734
  %739 = load i8, ptr %738, align 1, !tbaa !15
  %740 = sub i8 %736, %739
  %741 = load ptr, ptr %85, align 8, !tbaa !14
  %742 = getelementptr inbounds ptr, ptr %741, i64 %indvars.iv2487
  %743 = load ptr, ptr %742, align 8, !tbaa !14
  %744 = getelementptr inbounds i8, ptr %743, i64 %734
  store i8 %740, ptr %744, align 1, !tbaa !15
  %745 = load ptr, ptr %718, align 8, !tbaa !14
  %746 = or disjoint i32 %.0.lcssa, 2
  %747 = zext nneg i32 %746 to i64
  %748 = getelementptr inbounds i8, ptr %745, i64 %747
  %749 = load i8, ptr %748, align 1, !tbaa !15
  %750 = load ptr, ptr %723, align 8, !tbaa !14
  %751 = getelementptr inbounds i8, ptr %750, i64 %747
  %752 = load i8, ptr %751, align 1, !tbaa !15
  %753 = sub i8 %749, %752
  %754 = load ptr, ptr %85, align 8, !tbaa !14
  %755 = getelementptr inbounds ptr, ptr %754, i64 %indvars.iv2487
  %756 = load ptr, ptr %755, align 8, !tbaa !14
  %757 = getelementptr inbounds i8, ptr %756, i64 %747
  store i8 %753, ptr %757, align 1, !tbaa !15
  %758 = load ptr, ptr %718, align 8, !tbaa !14
  %759 = or disjoint i32 %.0.lcssa, 3
  %760 = zext nneg i32 %759 to i64
  %761 = getelementptr inbounds i8, ptr %758, i64 %760
  %762 = load i8, ptr %761, align 1, !tbaa !15
  %763 = load ptr, ptr %723, align 8, !tbaa !14
  %764 = getelementptr inbounds i8, ptr %763, i64 %760
  %765 = load i8, ptr %764, align 1, !tbaa !15
  %766 = sub i8 %762, %765
  %767 = load ptr, ptr %85, align 8, !tbaa !14
  %768 = getelementptr inbounds ptr, ptr %767, i64 %indvars.iv2487
  %769 = load ptr, ptr %768, align 8, !tbaa !14
  %770 = getelementptr inbounds i8, ptr %769, i64 %760
  store i8 %766, ptr %770, align 1, !tbaa !15
  %771 = load ptr, ptr %718, align 8, !tbaa !14
  %772 = or disjoint i32 %.0.lcssa, 4
  %773 = zext nneg i32 %772 to i64
  %774 = getelementptr inbounds i8, ptr %771, i64 %773
  %775 = load i8, ptr %774, align 1, !tbaa !15
  %776 = load ptr, ptr %723, align 8, !tbaa !14
  %777 = getelementptr inbounds i8, ptr %776, i64 %773
  %778 = load i8, ptr %777, align 1, !tbaa !15
  %779 = sub i8 %775, %778
  %780 = load ptr, ptr %85, align 8, !tbaa !14
  %781 = getelementptr inbounds ptr, ptr %780, i64 %indvars.iv2487
  %782 = load ptr, ptr %781, align 8, !tbaa !14
  %783 = getelementptr inbounds i8, ptr %782, i64 %773
  store i8 %779, ptr %783, align 1, !tbaa !15
  %784 = load ptr, ptr %718, align 8, !tbaa !14
  %785 = or disjoint i32 %.0.lcssa, 5
  %786 = zext nneg i32 %785 to i64
  %787 = getelementptr inbounds i8, ptr %784, i64 %786
  %788 = load i8, ptr %787, align 1, !tbaa !15
  %789 = load ptr, ptr %723, align 8, !tbaa !14
  %790 = getelementptr inbounds i8, ptr %789, i64 %786
  %791 = load i8, ptr %790, align 1, !tbaa !15
  %792 = sub i8 %788, %791
  %793 = load ptr, ptr %85, align 8, !tbaa !14
  %794 = getelementptr inbounds ptr, ptr %793, i64 %indvars.iv2487
  %795 = load ptr, ptr %794, align 8, !tbaa !14
  %796 = getelementptr inbounds i8, ptr %795, i64 %786
  store i8 %792, ptr %796, align 1, !tbaa !15
  %797 = load ptr, ptr %718, align 8, !tbaa !14
  %798 = or disjoint i32 %.0.lcssa, 6
  %799 = zext nneg i32 %798 to i64
  %800 = getelementptr inbounds i8, ptr %797, i64 %799
  %801 = load i8, ptr %800, align 1, !tbaa !15
  %802 = load ptr, ptr %723, align 8, !tbaa !14
  %803 = getelementptr inbounds i8, ptr %802, i64 %799
  %804 = load i8, ptr %803, align 1, !tbaa !15
  %805 = sub i8 %801, %804
  %806 = load ptr, ptr %85, align 8, !tbaa !14
  %807 = getelementptr inbounds ptr, ptr %806, i64 %indvars.iv2487
  %808 = load ptr, ptr %807, align 8, !tbaa !14
  %809 = getelementptr inbounds i8, ptr %808, i64 %799
  store i8 %805, ptr %809, align 1, !tbaa !15
  %810 = load ptr, ptr %718, align 8, !tbaa !14
  %811 = or disjoint i32 %.0.lcssa, 7
  %812 = zext nneg i32 %811 to i64
  %813 = getelementptr inbounds i8, ptr %810, i64 %812
  %814 = load i8, ptr %813, align 1, !tbaa !15
  %815 = load ptr, ptr %723, align 8, !tbaa !14
  %816 = getelementptr inbounds i8, ptr %815, i64 %812
  %817 = load i8, ptr %816, align 1, !tbaa !15
  %818 = sub i8 %814, %817
  %819 = load ptr, ptr %85, align 8, !tbaa !14
  %820 = getelementptr inbounds ptr, ptr %819, i64 %indvars.iv2487
  %821 = load ptr, ptr %820, align 8, !tbaa !14
  %822 = getelementptr inbounds i8, ptr %821, i64 %812
  store i8 %818, ptr %822, align 1, !tbaa !15
  %823 = load ptr, ptr %718, align 8, !tbaa !14
  %824 = or disjoint i32 %.0.lcssa, 8
  %825 = zext nneg i32 %824 to i64
  %826 = getelementptr inbounds i8, ptr %823, i64 %825
  br label %.sink.split2500

827:                                              ; preds = %303
  %828 = getelementptr inbounds ptr, ptr %71, i64 %indvars.iv2487
  %829 = load ptr, ptr %828, align 8, !tbaa !14
  %830 = zext nneg i32 %.0.lcssa to i64
  %831 = getelementptr inbounds i8, ptr %829, i64 %830
  %832 = load i8, ptr %831, align 1, !tbaa !15
  %833 = getelementptr inbounds ptr, ptr %75, i64 %indvars.iv2487
  %834 = load ptr, ptr %833, align 8, !tbaa !14
  %835 = getelementptr inbounds i8, ptr %834, i64 %830
  %836 = load i8, ptr %835, align 1, !tbaa !15
  %837 = sub i8 %832, %836
  %838 = load ptr, ptr %85, align 8, !tbaa !14
  %839 = getelementptr inbounds ptr, ptr %838, i64 %indvars.iv2487
  %840 = load ptr, ptr %839, align 8, !tbaa !14
  %841 = getelementptr inbounds i8, ptr %840, i64 %830
  store i8 %837, ptr %841, align 1, !tbaa !15
  %842 = load ptr, ptr %828, align 8, !tbaa !14
  %843 = or disjoint i32 %.0.lcssa, 1
  %844 = zext nneg i32 %843 to i64
  %845 = getelementptr inbounds i8, ptr %842, i64 %844
  %846 = load i8, ptr %845, align 1, !tbaa !15
  %847 = load ptr, ptr %833, align 8, !tbaa !14
  %848 = getelementptr inbounds i8, ptr %847, i64 %844
  %849 = load i8, ptr %848, align 1, !tbaa !15
  %850 = sub i8 %846, %849
  %851 = load ptr, ptr %85, align 8, !tbaa !14
  %852 = getelementptr inbounds ptr, ptr %851, i64 %indvars.iv2487
  %853 = load ptr, ptr %852, align 8, !tbaa !14
  %854 = getelementptr inbounds i8, ptr %853, i64 %844
  store i8 %850, ptr %854, align 1, !tbaa !15
  %855 = load ptr, ptr %828, align 8, !tbaa !14
  %856 = or disjoint i32 %.0.lcssa, 2
  %857 = zext nneg i32 %856 to i64
  %858 = getelementptr inbounds i8, ptr %855, i64 %857
  %859 = load i8, ptr %858, align 1, !tbaa !15
  %860 = load ptr, ptr %833, align 8, !tbaa !14
  %861 = getelementptr inbounds i8, ptr %860, i64 %857
  %862 = load i8, ptr %861, align 1, !tbaa !15
  %863 = sub i8 %859, %862
  %864 = load ptr, ptr %85, align 8, !tbaa !14
  %865 = getelementptr inbounds ptr, ptr %864, i64 %indvars.iv2487
  %866 = load ptr, ptr %865, align 8, !tbaa !14
  %867 = getelementptr inbounds i8, ptr %866, i64 %857
  store i8 %863, ptr %867, align 1, !tbaa !15
  %868 = load ptr, ptr %828, align 8, !tbaa !14
  %869 = or disjoint i32 %.0.lcssa, 3
  %870 = zext nneg i32 %869 to i64
  %871 = getelementptr inbounds i8, ptr %868, i64 %870
  %872 = load i8, ptr %871, align 1, !tbaa !15
  %873 = load ptr, ptr %833, align 8, !tbaa !14
  %874 = getelementptr inbounds i8, ptr %873, i64 %870
  %875 = load i8, ptr %874, align 1, !tbaa !15
  %876 = sub i8 %872, %875
  %877 = load ptr, ptr %85, align 8, !tbaa !14
  %878 = getelementptr inbounds ptr, ptr %877, i64 %indvars.iv2487
  %879 = load ptr, ptr %878, align 8, !tbaa !14
  %880 = getelementptr inbounds i8, ptr %879, i64 %870
  store i8 %876, ptr %880, align 1, !tbaa !15
  %881 = load ptr, ptr %828, align 8, !tbaa !14
  %882 = or disjoint i32 %.0.lcssa, 4
  %883 = zext nneg i32 %882 to i64
  %884 = getelementptr inbounds i8, ptr %881, i64 %883
  %885 = load i8, ptr %884, align 1, !tbaa !15
  %886 = load ptr, ptr %833, align 8, !tbaa !14
  %887 = getelementptr inbounds i8, ptr %886, i64 %883
  %888 = load i8, ptr %887, align 1, !tbaa !15
  %889 = sub i8 %885, %888
  %890 = load ptr, ptr %85, align 8, !tbaa !14
  %891 = getelementptr inbounds ptr, ptr %890, i64 %indvars.iv2487
  %892 = load ptr, ptr %891, align 8, !tbaa !14
  %893 = getelementptr inbounds i8, ptr %892, i64 %883
  store i8 %889, ptr %893, align 1, !tbaa !15
  %894 = load ptr, ptr %828, align 8, !tbaa !14
  %895 = or disjoint i32 %.0.lcssa, 5
  %896 = zext nneg i32 %895 to i64
  %897 = getelementptr inbounds i8, ptr %894, i64 %896
  %898 = load i8, ptr %897, align 1, !tbaa !15
  %899 = load ptr, ptr %833, align 8, !tbaa !14
  %900 = getelementptr inbounds i8, ptr %899, i64 %896
  %901 = load i8, ptr %900, align 1, !tbaa !15
  %902 = sub i8 %898, %901
  %903 = load ptr, ptr %85, align 8, !tbaa !14
  %904 = getelementptr inbounds ptr, ptr %903, i64 %indvars.iv2487
  %905 = load ptr, ptr %904, align 8, !tbaa !14
  %906 = getelementptr inbounds i8, ptr %905, i64 %896
  store i8 %902, ptr %906, align 1, !tbaa !15
  %907 = load ptr, ptr %828, align 8, !tbaa !14
  %908 = or disjoint i32 %.0.lcssa, 6
  %909 = zext nneg i32 %908 to i64
  %910 = getelementptr inbounds i8, ptr %907, i64 %909
  %911 = load i8, ptr %910, align 1, !tbaa !15
  %912 = load ptr, ptr %833, align 8, !tbaa !14
  %913 = getelementptr inbounds i8, ptr %912, i64 %909
  %914 = load i8, ptr %913, align 1, !tbaa !15
  %915 = sub i8 %911, %914
  %916 = load ptr, ptr %85, align 8, !tbaa !14
  %917 = getelementptr inbounds ptr, ptr %916, i64 %indvars.iv2487
  %918 = load ptr, ptr %917, align 8, !tbaa !14
  %919 = getelementptr inbounds i8, ptr %918, i64 %909
  store i8 %915, ptr %919, align 1, !tbaa !15
  %920 = load ptr, ptr %828, align 8, !tbaa !14
  %921 = or disjoint i32 %.0.lcssa, 7
  %922 = zext nneg i32 %921 to i64
  %923 = getelementptr inbounds i8, ptr %920, i64 %922
  %924 = load i8, ptr %923, align 1, !tbaa !15
  %925 = load ptr, ptr %833, align 8, !tbaa !14
  %926 = getelementptr inbounds i8, ptr %925, i64 %922
  %927 = load i8, ptr %926, align 1, !tbaa !15
  %928 = sub i8 %924, %927
  %929 = load ptr, ptr %85, align 8, !tbaa !14
  %930 = getelementptr inbounds ptr, ptr %929, i64 %indvars.iv2487
  %931 = load ptr, ptr %930, align 8, !tbaa !14
  %932 = getelementptr inbounds i8, ptr %931, i64 %922
  store i8 %928, ptr %932, align 1, !tbaa !15
  %933 = load ptr, ptr %828, align 8, !tbaa !14
  %934 = or disjoint i32 %.0.lcssa, 8
  %935 = zext nneg i32 %934 to i64
  %936 = getelementptr inbounds i8, ptr %933, i64 %935
  %937 = load i8, ptr %936, align 1, !tbaa !15
  %938 = load ptr, ptr %833, align 8, !tbaa !14
  %939 = getelementptr inbounds i8, ptr %938, i64 %935
  %940 = load i8, ptr %939, align 1, !tbaa !15
  %941 = sub i8 %937, %940
  %942 = load ptr, ptr %85, align 8, !tbaa !14
  %943 = getelementptr inbounds ptr, ptr %942, i64 %indvars.iv2487
  %944 = load ptr, ptr %943, align 8, !tbaa !14
  %945 = getelementptr inbounds i8, ptr %944, i64 %935
  store i8 %941, ptr %945, align 1, !tbaa !15
  %946 = load ptr, ptr %828, align 8, !tbaa !14
  %947 = or disjoint i32 %.0.lcssa, 9
  %948 = zext nneg i32 %947 to i64
  %949 = getelementptr inbounds i8, ptr %946, i64 %948
  br label %.sink.split2500

950:                                              ; preds = %303
  %951 = getelementptr inbounds ptr, ptr %71, i64 %indvars.iv2487
  %952 = load ptr, ptr %951, align 8, !tbaa !14
  %953 = zext nneg i32 %.0.lcssa to i64
  %954 = getelementptr inbounds i8, ptr %952, i64 %953
  %955 = load i8, ptr %954, align 1, !tbaa !15
  %956 = getelementptr inbounds ptr, ptr %75, i64 %indvars.iv2487
  %957 = load ptr, ptr %956, align 8, !tbaa !14
  %958 = getelementptr inbounds i8, ptr %957, i64 %953
  %959 = load i8, ptr %958, align 1, !tbaa !15
  %960 = sub i8 %955, %959
  %961 = load ptr, ptr %85, align 8, !tbaa !14
  %962 = getelementptr inbounds ptr, ptr %961, i64 %indvars.iv2487
  %963 = load ptr, ptr %962, align 8, !tbaa !14
  %964 = getelementptr inbounds i8, ptr %963, i64 %953
  store i8 %960, ptr %964, align 1, !tbaa !15
  %965 = load ptr, ptr %951, align 8, !tbaa !14
  %966 = or disjoint i32 %.0.lcssa, 1
  %967 = zext nneg i32 %966 to i64
  %968 = getelementptr inbounds i8, ptr %965, i64 %967
  %969 = load i8, ptr %968, align 1, !tbaa !15
  %970 = load ptr, ptr %956, align 8, !tbaa !14
  %971 = getelementptr inbounds i8, ptr %970, i64 %967
  %972 = load i8, ptr %971, align 1, !tbaa !15
  %973 = sub i8 %969, %972
  %974 = load ptr, ptr %85, align 8, !tbaa !14
  %975 = getelementptr inbounds ptr, ptr %974, i64 %indvars.iv2487
  %976 = load ptr, ptr %975, align 8, !tbaa !14
  %977 = getelementptr inbounds i8, ptr %976, i64 %967
  store i8 %973, ptr %977, align 1, !tbaa !15
  %978 = load ptr, ptr %951, align 8, !tbaa !14
  %979 = or disjoint i32 %.0.lcssa, 2
  %980 = zext nneg i32 %979 to i64
  %981 = getelementptr inbounds i8, ptr %978, i64 %980
  %982 = load i8, ptr %981, align 1, !tbaa !15
  %983 = load ptr, ptr %956, align 8, !tbaa !14
  %984 = getelementptr inbounds i8, ptr %983, i64 %980
  %985 = load i8, ptr %984, align 1, !tbaa !15
  %986 = sub i8 %982, %985
  %987 = load ptr, ptr %85, align 8, !tbaa !14
  %988 = getelementptr inbounds ptr, ptr %987, i64 %indvars.iv2487
  %989 = load ptr, ptr %988, align 8, !tbaa !14
  %990 = getelementptr inbounds i8, ptr %989, i64 %980
  store i8 %986, ptr %990, align 1, !tbaa !15
  %991 = load ptr, ptr %951, align 8, !tbaa !14
  %992 = or disjoint i32 %.0.lcssa, 3
  %993 = zext nneg i32 %992 to i64
  %994 = getelementptr inbounds i8, ptr %991, i64 %993
  %995 = load i8, ptr %994, align 1, !tbaa !15
  %996 = load ptr, ptr %956, align 8, !tbaa !14
  %997 = getelementptr inbounds i8, ptr %996, i64 %993
  %998 = load i8, ptr %997, align 1, !tbaa !15
  %999 = sub i8 %995, %998
  %1000 = load ptr, ptr %85, align 8, !tbaa !14
  %1001 = getelementptr inbounds ptr, ptr %1000, i64 %indvars.iv2487
  %1002 = load ptr, ptr %1001, align 8, !tbaa !14
  %1003 = getelementptr inbounds i8, ptr %1002, i64 %993
  store i8 %999, ptr %1003, align 1, !tbaa !15
  %1004 = load ptr, ptr %951, align 8, !tbaa !14
  %1005 = or disjoint i32 %.0.lcssa, 4
  %1006 = zext nneg i32 %1005 to i64
  %1007 = getelementptr inbounds i8, ptr %1004, i64 %1006
  %1008 = load i8, ptr %1007, align 1, !tbaa !15
  %1009 = load ptr, ptr %956, align 8, !tbaa !14
  %1010 = getelementptr inbounds i8, ptr %1009, i64 %1006
  %1011 = load i8, ptr %1010, align 1, !tbaa !15
  %1012 = sub i8 %1008, %1011
  %1013 = load ptr, ptr %85, align 8, !tbaa !14
  %1014 = getelementptr inbounds ptr, ptr %1013, i64 %indvars.iv2487
  %1015 = load ptr, ptr %1014, align 8, !tbaa !14
  %1016 = getelementptr inbounds i8, ptr %1015, i64 %1006
  store i8 %1012, ptr %1016, align 1, !tbaa !15
  %1017 = load ptr, ptr %951, align 8, !tbaa !14
  %1018 = or disjoint i32 %.0.lcssa, 5
  %1019 = zext nneg i32 %1018 to i64
  %1020 = getelementptr inbounds i8, ptr %1017, i64 %1019
  %1021 = load i8, ptr %1020, align 1, !tbaa !15
  %1022 = load ptr, ptr %956, align 8, !tbaa !14
  %1023 = getelementptr inbounds i8, ptr %1022, i64 %1019
  %1024 = load i8, ptr %1023, align 1, !tbaa !15
  %1025 = sub i8 %1021, %1024
  %1026 = load ptr, ptr %85, align 8, !tbaa !14
  %1027 = getelementptr inbounds ptr, ptr %1026, i64 %indvars.iv2487
  %1028 = load ptr, ptr %1027, align 8, !tbaa !14
  %1029 = getelementptr inbounds i8, ptr %1028, i64 %1019
  store i8 %1025, ptr %1029, align 1, !tbaa !15
  %1030 = load ptr, ptr %951, align 8, !tbaa !14
  %1031 = or disjoint i32 %.0.lcssa, 6
  %1032 = zext nneg i32 %1031 to i64
  %1033 = getelementptr inbounds i8, ptr %1030, i64 %1032
  %1034 = load i8, ptr %1033, align 1, !tbaa !15
  %1035 = load ptr, ptr %956, align 8, !tbaa !14
  %1036 = getelementptr inbounds i8, ptr %1035, i64 %1032
  %1037 = load i8, ptr %1036, align 1, !tbaa !15
  %1038 = sub i8 %1034, %1037
  %1039 = load ptr, ptr %85, align 8, !tbaa !14
  %1040 = getelementptr inbounds ptr, ptr %1039, i64 %indvars.iv2487
  %1041 = load ptr, ptr %1040, align 8, !tbaa !14
  %1042 = getelementptr inbounds i8, ptr %1041, i64 %1032
  store i8 %1038, ptr %1042, align 1, !tbaa !15
  %1043 = load ptr, ptr %951, align 8, !tbaa !14
  %1044 = or disjoint i32 %.0.lcssa, 7
  %1045 = zext nneg i32 %1044 to i64
  %1046 = getelementptr inbounds i8, ptr %1043, i64 %1045
  %1047 = load i8, ptr %1046, align 1, !tbaa !15
  %1048 = load ptr, ptr %956, align 8, !tbaa !14
  %1049 = getelementptr inbounds i8, ptr %1048, i64 %1045
  %1050 = load i8, ptr %1049, align 1, !tbaa !15
  %1051 = sub i8 %1047, %1050
  %1052 = load ptr, ptr %85, align 8, !tbaa !14
  %1053 = getelementptr inbounds ptr, ptr %1052, i64 %indvars.iv2487
  %1054 = load ptr, ptr %1053, align 8, !tbaa !14
  %1055 = getelementptr inbounds i8, ptr %1054, i64 %1045
  store i8 %1051, ptr %1055, align 1, !tbaa !15
  %1056 = load ptr, ptr %951, align 8, !tbaa !14
  %1057 = or disjoint i32 %.0.lcssa, 8
  %1058 = zext nneg i32 %1057 to i64
  %1059 = getelementptr inbounds i8, ptr %1056, i64 %1058
  %1060 = load i8, ptr %1059, align 1, !tbaa !15
  %1061 = load ptr, ptr %956, align 8, !tbaa !14
  %1062 = getelementptr inbounds i8, ptr %1061, i64 %1058
  %1063 = load i8, ptr %1062, align 1, !tbaa !15
  %1064 = sub i8 %1060, %1063
  %1065 = load ptr, ptr %85, align 8, !tbaa !14
  %1066 = getelementptr inbounds ptr, ptr %1065, i64 %indvars.iv2487
  %1067 = load ptr, ptr %1066, align 8, !tbaa !14
  %1068 = getelementptr inbounds i8, ptr %1067, i64 %1058
  store i8 %1064, ptr %1068, align 1, !tbaa !15
  %1069 = load ptr, ptr %951, align 8, !tbaa !14
  %1070 = or disjoint i32 %.0.lcssa, 9
  %1071 = zext nneg i32 %1070 to i64
  %1072 = getelementptr inbounds i8, ptr %1069, i64 %1071
  %1073 = load i8, ptr %1072, align 1, !tbaa !15
  %1074 = load ptr, ptr %956, align 8, !tbaa !14
  %1075 = getelementptr inbounds i8, ptr %1074, i64 %1071
  %1076 = load i8, ptr %1075, align 1, !tbaa !15
  %1077 = sub i8 %1073, %1076
  %1078 = load ptr, ptr %85, align 8, !tbaa !14
  %1079 = getelementptr inbounds ptr, ptr %1078, i64 %indvars.iv2487
  %1080 = load ptr, ptr %1079, align 8, !tbaa !14
  %1081 = getelementptr inbounds i8, ptr %1080, i64 %1071
  store i8 %1077, ptr %1081, align 1, !tbaa !15
  %1082 = load ptr, ptr %951, align 8, !tbaa !14
  %1083 = or disjoint i32 %.0.lcssa, 10
  %1084 = zext nneg i32 %1083 to i64
  %1085 = getelementptr inbounds i8, ptr %1082, i64 %1084
  br label %.sink.split2500

1086:                                             ; preds = %303
  %1087 = getelementptr inbounds ptr, ptr %71, i64 %indvars.iv2487
  %1088 = load ptr, ptr %1087, align 8, !tbaa !14
  %1089 = zext nneg i32 %.0.lcssa to i64
  %1090 = getelementptr inbounds i8, ptr %1088, i64 %1089
  %1091 = load i8, ptr %1090, align 1, !tbaa !15
  %1092 = getelementptr inbounds ptr, ptr %75, i64 %indvars.iv2487
  %1093 = load ptr, ptr %1092, align 8, !tbaa !14
  %1094 = getelementptr inbounds i8, ptr %1093, i64 %1089
  %1095 = load i8, ptr %1094, align 1, !tbaa !15
  %1096 = sub i8 %1091, %1095
  %1097 = load ptr, ptr %85, align 8, !tbaa !14
  %1098 = getelementptr inbounds ptr, ptr %1097, i64 %indvars.iv2487
  %1099 = load ptr, ptr %1098, align 8, !tbaa !14
  %1100 = getelementptr inbounds i8, ptr %1099, i64 %1089
  store i8 %1096, ptr %1100, align 1, !tbaa !15
  %1101 = load ptr, ptr %1087, align 8, !tbaa !14
  %1102 = or disjoint i32 %.0.lcssa, 1
  %1103 = zext nneg i32 %1102 to i64
  %1104 = getelementptr inbounds i8, ptr %1101, i64 %1103
  %1105 = load i8, ptr %1104, align 1, !tbaa !15
  %1106 = load ptr, ptr %1092, align 8, !tbaa !14
  %1107 = getelementptr inbounds i8, ptr %1106, i64 %1103
  %1108 = load i8, ptr %1107, align 1, !tbaa !15
  %1109 = sub i8 %1105, %1108
  %1110 = load ptr, ptr %85, align 8, !tbaa !14
  %1111 = getelementptr inbounds ptr, ptr %1110, i64 %indvars.iv2487
  %1112 = load ptr, ptr %1111, align 8, !tbaa !14
  %1113 = getelementptr inbounds i8, ptr %1112, i64 %1103
  store i8 %1109, ptr %1113, align 1, !tbaa !15
  %1114 = load ptr, ptr %1087, align 8, !tbaa !14
  %1115 = or disjoint i32 %.0.lcssa, 2
  %1116 = zext nneg i32 %1115 to i64
  %1117 = getelementptr inbounds i8, ptr %1114, i64 %1116
  %1118 = load i8, ptr %1117, align 1, !tbaa !15
  %1119 = load ptr, ptr %1092, align 8, !tbaa !14
  %1120 = getelementptr inbounds i8, ptr %1119, i64 %1116
  %1121 = load i8, ptr %1120, align 1, !tbaa !15
  %1122 = sub i8 %1118, %1121
  %1123 = load ptr, ptr %85, align 8, !tbaa !14
  %1124 = getelementptr inbounds ptr, ptr %1123, i64 %indvars.iv2487
  %1125 = load ptr, ptr %1124, align 8, !tbaa !14
  %1126 = getelementptr inbounds i8, ptr %1125, i64 %1116
  store i8 %1122, ptr %1126, align 1, !tbaa !15
  %1127 = load ptr, ptr %1087, align 8, !tbaa !14
  %1128 = or disjoint i32 %.0.lcssa, 3
  %1129 = zext nneg i32 %1128 to i64
  %1130 = getelementptr inbounds i8, ptr %1127, i64 %1129
  %1131 = load i8, ptr %1130, align 1, !tbaa !15
  %1132 = load ptr, ptr %1092, align 8, !tbaa !14
  %1133 = getelementptr inbounds i8, ptr %1132, i64 %1129
  %1134 = load i8, ptr %1133, align 1, !tbaa !15
  %1135 = sub i8 %1131, %1134
  %1136 = load ptr, ptr %85, align 8, !tbaa !14
  %1137 = getelementptr inbounds ptr, ptr %1136, i64 %indvars.iv2487
  %1138 = load ptr, ptr %1137, align 8, !tbaa !14
  %1139 = getelementptr inbounds i8, ptr %1138, i64 %1129
  store i8 %1135, ptr %1139, align 1, !tbaa !15
  %1140 = load ptr, ptr %1087, align 8, !tbaa !14
  %1141 = or disjoint i32 %.0.lcssa, 4
  %1142 = zext nneg i32 %1141 to i64
  %1143 = getelementptr inbounds i8, ptr %1140, i64 %1142
  %1144 = load i8, ptr %1143, align 1, !tbaa !15
  %1145 = load ptr, ptr %1092, align 8, !tbaa !14
  %1146 = getelementptr inbounds i8, ptr %1145, i64 %1142
  %1147 = load i8, ptr %1146, align 1, !tbaa !15
  %1148 = sub i8 %1144, %1147
  %1149 = load ptr, ptr %85, align 8, !tbaa !14
  %1150 = getelementptr inbounds ptr, ptr %1149, i64 %indvars.iv2487
  %1151 = load ptr, ptr %1150, align 8, !tbaa !14
  %1152 = getelementptr inbounds i8, ptr %1151, i64 %1142
  store i8 %1148, ptr %1152, align 1, !tbaa !15
  %1153 = load ptr, ptr %1087, align 8, !tbaa !14
  %1154 = or disjoint i32 %.0.lcssa, 5
  %1155 = zext nneg i32 %1154 to i64
  %1156 = getelementptr inbounds i8, ptr %1153, i64 %1155
  %1157 = load i8, ptr %1156, align 1, !tbaa !15
  %1158 = load ptr, ptr %1092, align 8, !tbaa !14
  %1159 = getelementptr inbounds i8, ptr %1158, i64 %1155
  %1160 = load i8, ptr %1159, align 1, !tbaa !15
  %1161 = sub i8 %1157, %1160
  %1162 = load ptr, ptr %85, align 8, !tbaa !14
  %1163 = getelementptr inbounds ptr, ptr %1162, i64 %indvars.iv2487
  %1164 = load ptr, ptr %1163, align 8, !tbaa !14
  %1165 = getelementptr inbounds i8, ptr %1164, i64 %1155
  store i8 %1161, ptr %1165, align 1, !tbaa !15
  %1166 = load ptr, ptr %1087, align 8, !tbaa !14
  %1167 = or disjoint i32 %.0.lcssa, 6
  %1168 = zext nneg i32 %1167 to i64
  %1169 = getelementptr inbounds i8, ptr %1166, i64 %1168
  %1170 = load i8, ptr %1169, align 1, !tbaa !15
  %1171 = load ptr, ptr %1092, align 8, !tbaa !14
  %1172 = getelementptr inbounds i8, ptr %1171, i64 %1168
  %1173 = load i8, ptr %1172, align 1, !tbaa !15
  %1174 = sub i8 %1170, %1173
  %1175 = load ptr, ptr %85, align 8, !tbaa !14
  %1176 = getelementptr inbounds ptr, ptr %1175, i64 %indvars.iv2487
  %1177 = load ptr, ptr %1176, align 8, !tbaa !14
  %1178 = getelementptr inbounds i8, ptr %1177, i64 %1168
  store i8 %1174, ptr %1178, align 1, !tbaa !15
  %1179 = load ptr, ptr %1087, align 8, !tbaa !14
  %1180 = or disjoint i32 %.0.lcssa, 7
  %1181 = zext nneg i32 %1180 to i64
  %1182 = getelementptr inbounds i8, ptr %1179, i64 %1181
  %1183 = load i8, ptr %1182, align 1, !tbaa !15
  %1184 = load ptr, ptr %1092, align 8, !tbaa !14
  %1185 = getelementptr inbounds i8, ptr %1184, i64 %1181
  %1186 = load i8, ptr %1185, align 1, !tbaa !15
  %1187 = sub i8 %1183, %1186
  %1188 = load ptr, ptr %85, align 8, !tbaa !14
  %1189 = getelementptr inbounds ptr, ptr %1188, i64 %indvars.iv2487
  %1190 = load ptr, ptr %1189, align 8, !tbaa !14
  %1191 = getelementptr inbounds i8, ptr %1190, i64 %1181
  store i8 %1187, ptr %1191, align 1, !tbaa !15
  %1192 = load ptr, ptr %1087, align 8, !tbaa !14
  %1193 = or disjoint i32 %.0.lcssa, 8
  %1194 = zext nneg i32 %1193 to i64
  %1195 = getelementptr inbounds i8, ptr %1192, i64 %1194
  %1196 = load i8, ptr %1195, align 1, !tbaa !15
  %1197 = load ptr, ptr %1092, align 8, !tbaa !14
  %1198 = getelementptr inbounds i8, ptr %1197, i64 %1194
  %1199 = load i8, ptr %1198, align 1, !tbaa !15
  %1200 = sub i8 %1196, %1199
  %1201 = load ptr, ptr %85, align 8, !tbaa !14
  %1202 = getelementptr inbounds ptr, ptr %1201, i64 %indvars.iv2487
  %1203 = load ptr, ptr %1202, align 8, !tbaa !14
  %1204 = getelementptr inbounds i8, ptr %1203, i64 %1194
  store i8 %1200, ptr %1204, align 1, !tbaa !15
  %1205 = load ptr, ptr %1087, align 8, !tbaa !14
  %1206 = or disjoint i32 %.0.lcssa, 9
  %1207 = zext nneg i32 %1206 to i64
  %1208 = getelementptr inbounds i8, ptr %1205, i64 %1207
  %1209 = load i8, ptr %1208, align 1, !tbaa !15
  %1210 = load ptr, ptr %1092, align 8, !tbaa !14
  %1211 = getelementptr inbounds i8, ptr %1210, i64 %1207
  %1212 = load i8, ptr %1211, align 1, !tbaa !15
  %1213 = sub i8 %1209, %1212
  %1214 = load ptr, ptr %85, align 8, !tbaa !14
  %1215 = getelementptr inbounds ptr, ptr %1214, i64 %indvars.iv2487
  %1216 = load ptr, ptr %1215, align 8, !tbaa !14
  %1217 = getelementptr inbounds i8, ptr %1216, i64 %1207
  store i8 %1213, ptr %1217, align 1, !tbaa !15
  %1218 = load ptr, ptr %1087, align 8, !tbaa !14
  %1219 = or disjoint i32 %.0.lcssa, 10
  %1220 = zext nneg i32 %1219 to i64
  %1221 = getelementptr inbounds i8, ptr %1218, i64 %1220
  %1222 = load i8, ptr %1221, align 1, !tbaa !15
  %1223 = load ptr, ptr %1092, align 8, !tbaa !14
  %1224 = getelementptr inbounds i8, ptr %1223, i64 %1220
  %1225 = load i8, ptr %1224, align 1, !tbaa !15
  %1226 = sub i8 %1222, %1225
  %1227 = load ptr, ptr %85, align 8, !tbaa !14
  %1228 = getelementptr inbounds ptr, ptr %1227, i64 %indvars.iv2487
  %1229 = load ptr, ptr %1228, align 8, !tbaa !14
  %1230 = getelementptr inbounds i8, ptr %1229, i64 %1220
  store i8 %1226, ptr %1230, align 1, !tbaa !15
  %1231 = load ptr, ptr %1087, align 8, !tbaa !14
  %1232 = or disjoint i32 %.0.lcssa, 11
  %1233 = zext nneg i32 %1232 to i64
  %1234 = getelementptr inbounds i8, ptr %1231, i64 %1233
  br label %.sink.split2500

1235:                                             ; preds = %303
  %1236 = getelementptr inbounds ptr, ptr %71, i64 %indvars.iv2487
  %1237 = load ptr, ptr %1236, align 8, !tbaa !14
  %1238 = zext nneg i32 %.0.lcssa to i64
  %1239 = getelementptr inbounds i8, ptr %1237, i64 %1238
  %1240 = load i8, ptr %1239, align 1, !tbaa !15
  %1241 = getelementptr inbounds ptr, ptr %75, i64 %indvars.iv2487
  %1242 = load ptr, ptr %1241, align 8, !tbaa !14
  %1243 = getelementptr inbounds i8, ptr %1242, i64 %1238
  %1244 = load i8, ptr %1243, align 1, !tbaa !15
  %1245 = sub i8 %1240, %1244
  %1246 = load ptr, ptr %85, align 8, !tbaa !14
  %1247 = getelementptr inbounds ptr, ptr %1246, i64 %indvars.iv2487
  %1248 = load ptr, ptr %1247, align 8, !tbaa !14
  %1249 = getelementptr inbounds i8, ptr %1248, i64 %1238
  store i8 %1245, ptr %1249, align 1, !tbaa !15
  %1250 = load ptr, ptr %1236, align 8, !tbaa !14
  %1251 = or disjoint i32 %.0.lcssa, 1
  %1252 = zext nneg i32 %1251 to i64
  %1253 = getelementptr inbounds i8, ptr %1250, i64 %1252
  %1254 = load i8, ptr %1253, align 1, !tbaa !15
  %1255 = load ptr, ptr %1241, align 8, !tbaa !14
  %1256 = getelementptr inbounds i8, ptr %1255, i64 %1252
  %1257 = load i8, ptr %1256, align 1, !tbaa !15
  %1258 = sub i8 %1254, %1257
  %1259 = load ptr, ptr %85, align 8, !tbaa !14
  %1260 = getelementptr inbounds ptr, ptr %1259, i64 %indvars.iv2487
  %1261 = load ptr, ptr %1260, align 8, !tbaa !14
  %1262 = getelementptr inbounds i8, ptr %1261, i64 %1252
  store i8 %1258, ptr %1262, align 1, !tbaa !15
  %1263 = load ptr, ptr %1236, align 8, !tbaa !14
  %1264 = or disjoint i32 %.0.lcssa, 2
  %1265 = zext nneg i32 %1264 to i64
  %1266 = getelementptr inbounds i8, ptr %1263, i64 %1265
  %1267 = load i8, ptr %1266, align 1, !tbaa !15
  %1268 = load ptr, ptr %1241, align 8, !tbaa !14
  %1269 = getelementptr inbounds i8, ptr %1268, i64 %1265
  %1270 = load i8, ptr %1269, align 1, !tbaa !15
  %1271 = sub i8 %1267, %1270
  %1272 = load ptr, ptr %85, align 8, !tbaa !14
  %1273 = getelementptr inbounds ptr, ptr %1272, i64 %indvars.iv2487
  %1274 = load ptr, ptr %1273, align 8, !tbaa !14
  %1275 = getelementptr inbounds i8, ptr %1274, i64 %1265
  store i8 %1271, ptr %1275, align 1, !tbaa !15
  %1276 = load ptr, ptr %1236, align 8, !tbaa !14
  %1277 = or disjoint i32 %.0.lcssa, 3
  %1278 = zext nneg i32 %1277 to i64
  %1279 = getelementptr inbounds i8, ptr %1276, i64 %1278
  %1280 = load i8, ptr %1279, align 1, !tbaa !15
  %1281 = load ptr, ptr %1241, align 8, !tbaa !14
  %1282 = getelementptr inbounds i8, ptr %1281, i64 %1278
  %1283 = load i8, ptr %1282, align 1, !tbaa !15
  %1284 = sub i8 %1280, %1283
  %1285 = load ptr, ptr %85, align 8, !tbaa !14
  %1286 = getelementptr inbounds ptr, ptr %1285, i64 %indvars.iv2487
  %1287 = load ptr, ptr %1286, align 8, !tbaa !14
  %1288 = getelementptr inbounds i8, ptr %1287, i64 %1278
  store i8 %1284, ptr %1288, align 1, !tbaa !15
  %1289 = load ptr, ptr %1236, align 8, !tbaa !14
  %1290 = or disjoint i32 %.0.lcssa, 4
  %1291 = zext nneg i32 %1290 to i64
  %1292 = getelementptr inbounds i8, ptr %1289, i64 %1291
  %1293 = load i8, ptr %1292, align 1, !tbaa !15
  %1294 = load ptr, ptr %1241, align 8, !tbaa !14
  %1295 = getelementptr inbounds i8, ptr %1294, i64 %1291
  %1296 = load i8, ptr %1295, align 1, !tbaa !15
  %1297 = sub i8 %1293, %1296
  %1298 = load ptr, ptr %85, align 8, !tbaa !14
  %1299 = getelementptr inbounds ptr, ptr %1298, i64 %indvars.iv2487
  %1300 = load ptr, ptr %1299, align 8, !tbaa !14
  %1301 = getelementptr inbounds i8, ptr %1300, i64 %1291
  store i8 %1297, ptr %1301, align 1, !tbaa !15
  %1302 = load ptr, ptr %1236, align 8, !tbaa !14
  %1303 = or disjoint i32 %.0.lcssa, 5
  %1304 = zext nneg i32 %1303 to i64
  %1305 = getelementptr inbounds i8, ptr %1302, i64 %1304
  %1306 = load i8, ptr %1305, align 1, !tbaa !15
  %1307 = load ptr, ptr %1241, align 8, !tbaa !14
  %1308 = getelementptr inbounds i8, ptr %1307, i64 %1304
  %1309 = load i8, ptr %1308, align 1, !tbaa !15
  %1310 = sub i8 %1306, %1309
  %1311 = load ptr, ptr %85, align 8, !tbaa !14
  %1312 = getelementptr inbounds ptr, ptr %1311, i64 %indvars.iv2487
  %1313 = load ptr, ptr %1312, align 8, !tbaa !14
  %1314 = getelementptr inbounds i8, ptr %1313, i64 %1304
  store i8 %1310, ptr %1314, align 1, !tbaa !15
  %1315 = load ptr, ptr %1236, align 8, !tbaa !14
  %1316 = or disjoint i32 %.0.lcssa, 6
  %1317 = zext nneg i32 %1316 to i64
  %1318 = getelementptr inbounds i8, ptr %1315, i64 %1317
  %1319 = load i8, ptr %1318, align 1, !tbaa !15
  %1320 = load ptr, ptr %1241, align 8, !tbaa !14
  %1321 = getelementptr inbounds i8, ptr %1320, i64 %1317
  %1322 = load i8, ptr %1321, align 1, !tbaa !15
  %1323 = sub i8 %1319, %1322
  %1324 = load ptr, ptr %85, align 8, !tbaa !14
  %1325 = getelementptr inbounds ptr, ptr %1324, i64 %indvars.iv2487
  %1326 = load ptr, ptr %1325, align 8, !tbaa !14
  %1327 = getelementptr inbounds i8, ptr %1326, i64 %1317
  store i8 %1323, ptr %1327, align 1, !tbaa !15
  %1328 = load ptr, ptr %1236, align 8, !tbaa !14
  %1329 = or disjoint i32 %.0.lcssa, 7
  %1330 = zext nneg i32 %1329 to i64
  %1331 = getelementptr inbounds i8, ptr %1328, i64 %1330
  %1332 = load i8, ptr %1331, align 1, !tbaa !15
  %1333 = load ptr, ptr %1241, align 8, !tbaa !14
  %1334 = getelementptr inbounds i8, ptr %1333, i64 %1330
  %1335 = load i8, ptr %1334, align 1, !tbaa !15
  %1336 = sub i8 %1332, %1335
  %1337 = load ptr, ptr %85, align 8, !tbaa !14
  %1338 = getelementptr inbounds ptr, ptr %1337, i64 %indvars.iv2487
  %1339 = load ptr, ptr %1338, align 8, !tbaa !14
  %1340 = getelementptr inbounds i8, ptr %1339, i64 %1330
  store i8 %1336, ptr %1340, align 1, !tbaa !15
  %1341 = load ptr, ptr %1236, align 8, !tbaa !14
  %1342 = or disjoint i32 %.0.lcssa, 8
  %1343 = zext nneg i32 %1342 to i64
  %1344 = getelementptr inbounds i8, ptr %1341, i64 %1343
  %1345 = load i8, ptr %1344, align 1, !tbaa !15
  %1346 = load ptr, ptr %1241, align 8, !tbaa !14
  %1347 = getelementptr inbounds i8, ptr %1346, i64 %1343
  %1348 = load i8, ptr %1347, align 1, !tbaa !15
  %1349 = sub i8 %1345, %1348
  %1350 = load ptr, ptr %85, align 8, !tbaa !14
  %1351 = getelementptr inbounds ptr, ptr %1350, i64 %indvars.iv2487
  %1352 = load ptr, ptr %1351, align 8, !tbaa !14
  %1353 = getelementptr inbounds i8, ptr %1352, i64 %1343
  store i8 %1349, ptr %1353, align 1, !tbaa !15
  %1354 = load ptr, ptr %1236, align 8, !tbaa !14
  %1355 = or disjoint i32 %.0.lcssa, 9
  %1356 = zext nneg i32 %1355 to i64
  %1357 = getelementptr inbounds i8, ptr %1354, i64 %1356
  %1358 = load i8, ptr %1357, align 1, !tbaa !15
  %1359 = load ptr, ptr %1241, align 8, !tbaa !14
  %1360 = getelementptr inbounds i8, ptr %1359, i64 %1356
  %1361 = load i8, ptr %1360, align 1, !tbaa !15
  %1362 = sub i8 %1358, %1361
  %1363 = load ptr, ptr %85, align 8, !tbaa !14
  %1364 = getelementptr inbounds ptr, ptr %1363, i64 %indvars.iv2487
  %1365 = load ptr, ptr %1364, align 8, !tbaa !14
  %1366 = getelementptr inbounds i8, ptr %1365, i64 %1356
  store i8 %1362, ptr %1366, align 1, !tbaa !15
  %1367 = load ptr, ptr %1236, align 8, !tbaa !14
  %1368 = or disjoint i32 %.0.lcssa, 10
  %1369 = zext nneg i32 %1368 to i64
  %1370 = getelementptr inbounds i8, ptr %1367, i64 %1369
  %1371 = load i8, ptr %1370, align 1, !tbaa !15
  %1372 = load ptr, ptr %1241, align 8, !tbaa !14
  %1373 = getelementptr inbounds i8, ptr %1372, i64 %1369
  %1374 = load i8, ptr %1373, align 1, !tbaa !15
  %1375 = sub i8 %1371, %1374
  %1376 = load ptr, ptr %85, align 8, !tbaa !14
  %1377 = getelementptr inbounds ptr, ptr %1376, i64 %indvars.iv2487
  %1378 = load ptr, ptr %1377, align 8, !tbaa !14
  %1379 = getelementptr inbounds i8, ptr %1378, i64 %1369
  store i8 %1375, ptr %1379, align 1, !tbaa !15
  %1380 = load ptr, ptr %1236, align 8, !tbaa !14
  %1381 = or disjoint i32 %.0.lcssa, 11
  %1382 = zext nneg i32 %1381 to i64
  %1383 = getelementptr inbounds i8, ptr %1380, i64 %1382
  %1384 = load i8, ptr %1383, align 1, !tbaa !15
  %1385 = load ptr, ptr %1241, align 8, !tbaa !14
  %1386 = getelementptr inbounds i8, ptr %1385, i64 %1382
  %1387 = load i8, ptr %1386, align 1, !tbaa !15
  %1388 = sub i8 %1384, %1387
  %1389 = load ptr, ptr %85, align 8, !tbaa !14
  %1390 = getelementptr inbounds ptr, ptr %1389, i64 %indvars.iv2487
  %1391 = load ptr, ptr %1390, align 8, !tbaa !14
  %1392 = getelementptr inbounds i8, ptr %1391, i64 %1382
  store i8 %1388, ptr %1392, align 1, !tbaa !15
  %1393 = load ptr, ptr %1236, align 8, !tbaa !14
  %1394 = or disjoint i32 %.0.lcssa, 12
  %1395 = zext nneg i32 %1394 to i64
  %1396 = getelementptr inbounds i8, ptr %1393, i64 %1395
  br label %.sink.split2500

1397:                                             ; preds = %303
  %1398 = getelementptr inbounds ptr, ptr %71, i64 %indvars.iv2487
  %1399 = load ptr, ptr %1398, align 8, !tbaa !14
  %1400 = zext nneg i32 %.0.lcssa to i64
  %1401 = getelementptr inbounds i8, ptr %1399, i64 %1400
  %1402 = load i8, ptr %1401, align 1, !tbaa !15
  %1403 = getelementptr inbounds ptr, ptr %75, i64 %indvars.iv2487
  %1404 = load ptr, ptr %1403, align 8, !tbaa !14
  %1405 = getelementptr inbounds i8, ptr %1404, i64 %1400
  %1406 = load i8, ptr %1405, align 1, !tbaa !15
  %1407 = sub i8 %1402, %1406
  %1408 = load ptr, ptr %85, align 8, !tbaa !14
  %1409 = getelementptr inbounds ptr, ptr %1408, i64 %indvars.iv2487
  %1410 = load ptr, ptr %1409, align 8, !tbaa !14
  %1411 = getelementptr inbounds i8, ptr %1410, i64 %1400
  store i8 %1407, ptr %1411, align 1, !tbaa !15
  %1412 = load ptr, ptr %1398, align 8, !tbaa !14
  %1413 = or disjoint i32 %.0.lcssa, 1
  %1414 = zext nneg i32 %1413 to i64
  %1415 = getelementptr inbounds i8, ptr %1412, i64 %1414
  %1416 = load i8, ptr %1415, align 1, !tbaa !15
  %1417 = load ptr, ptr %1403, align 8, !tbaa !14
  %1418 = getelementptr inbounds i8, ptr %1417, i64 %1414
  %1419 = load i8, ptr %1418, align 1, !tbaa !15
  %1420 = sub i8 %1416, %1419
  %1421 = load ptr, ptr %85, align 8, !tbaa !14
  %1422 = getelementptr inbounds ptr, ptr %1421, i64 %indvars.iv2487
  %1423 = load ptr, ptr %1422, align 8, !tbaa !14
  %1424 = getelementptr inbounds i8, ptr %1423, i64 %1414
  store i8 %1420, ptr %1424, align 1, !tbaa !15
  %1425 = load ptr, ptr %1398, align 8, !tbaa !14
  %1426 = or disjoint i32 %.0.lcssa, 2
  %1427 = zext nneg i32 %1426 to i64
  %1428 = getelementptr inbounds i8, ptr %1425, i64 %1427
  %1429 = load i8, ptr %1428, align 1, !tbaa !15
  %1430 = load ptr, ptr %1403, align 8, !tbaa !14
  %1431 = getelementptr inbounds i8, ptr %1430, i64 %1427
  %1432 = load i8, ptr %1431, align 1, !tbaa !15
  %1433 = sub i8 %1429, %1432
  %1434 = load ptr, ptr %85, align 8, !tbaa !14
  %1435 = getelementptr inbounds ptr, ptr %1434, i64 %indvars.iv2487
  %1436 = load ptr, ptr %1435, align 8, !tbaa !14
  %1437 = getelementptr inbounds i8, ptr %1436, i64 %1427
  store i8 %1433, ptr %1437, align 1, !tbaa !15
  %1438 = load ptr, ptr %1398, align 8, !tbaa !14
  %1439 = or disjoint i32 %.0.lcssa, 3
  %1440 = zext nneg i32 %1439 to i64
  %1441 = getelementptr inbounds i8, ptr %1438, i64 %1440
  %1442 = load i8, ptr %1441, align 1, !tbaa !15
  %1443 = load ptr, ptr %1403, align 8, !tbaa !14
  %1444 = getelementptr inbounds i8, ptr %1443, i64 %1440
  %1445 = load i8, ptr %1444, align 1, !tbaa !15
  %1446 = sub i8 %1442, %1445
  %1447 = load ptr, ptr %85, align 8, !tbaa !14
  %1448 = getelementptr inbounds ptr, ptr %1447, i64 %indvars.iv2487
  %1449 = load ptr, ptr %1448, align 8, !tbaa !14
  %1450 = getelementptr inbounds i8, ptr %1449, i64 %1440
  store i8 %1446, ptr %1450, align 1, !tbaa !15
  %1451 = load ptr, ptr %1398, align 8, !tbaa !14
  %1452 = or disjoint i32 %.0.lcssa, 4
  %1453 = zext nneg i32 %1452 to i64
  %1454 = getelementptr inbounds i8, ptr %1451, i64 %1453
  %1455 = load i8, ptr %1454, align 1, !tbaa !15
  %1456 = load ptr, ptr %1403, align 8, !tbaa !14
  %1457 = getelementptr inbounds i8, ptr %1456, i64 %1453
  %1458 = load i8, ptr %1457, align 1, !tbaa !15
  %1459 = sub i8 %1455, %1458
  %1460 = load ptr, ptr %85, align 8, !tbaa !14
  %1461 = getelementptr inbounds ptr, ptr %1460, i64 %indvars.iv2487
  %1462 = load ptr, ptr %1461, align 8, !tbaa !14
  %1463 = getelementptr inbounds i8, ptr %1462, i64 %1453
  store i8 %1459, ptr %1463, align 1, !tbaa !15
  %1464 = load ptr, ptr %1398, align 8, !tbaa !14
  %1465 = or disjoint i32 %.0.lcssa, 5
  %1466 = zext nneg i32 %1465 to i64
  %1467 = getelementptr inbounds i8, ptr %1464, i64 %1466
  %1468 = load i8, ptr %1467, align 1, !tbaa !15
  %1469 = load ptr, ptr %1403, align 8, !tbaa !14
  %1470 = getelementptr inbounds i8, ptr %1469, i64 %1466
  %1471 = load i8, ptr %1470, align 1, !tbaa !15
  %1472 = sub i8 %1468, %1471
  %1473 = load ptr, ptr %85, align 8, !tbaa !14
  %1474 = getelementptr inbounds ptr, ptr %1473, i64 %indvars.iv2487
  %1475 = load ptr, ptr %1474, align 8, !tbaa !14
  %1476 = getelementptr inbounds i8, ptr %1475, i64 %1466
  store i8 %1472, ptr %1476, align 1, !tbaa !15
  %1477 = load ptr, ptr %1398, align 8, !tbaa !14
  %1478 = or disjoint i32 %.0.lcssa, 6
  %1479 = zext nneg i32 %1478 to i64
  %1480 = getelementptr inbounds i8, ptr %1477, i64 %1479
  %1481 = load i8, ptr %1480, align 1, !tbaa !15
  %1482 = load ptr, ptr %1403, align 8, !tbaa !14
  %1483 = getelementptr inbounds i8, ptr %1482, i64 %1479
  %1484 = load i8, ptr %1483, align 1, !tbaa !15
  %1485 = sub i8 %1481, %1484
  %1486 = load ptr, ptr %85, align 8, !tbaa !14
  %1487 = getelementptr inbounds ptr, ptr %1486, i64 %indvars.iv2487
  %1488 = load ptr, ptr %1487, align 8, !tbaa !14
  %1489 = getelementptr inbounds i8, ptr %1488, i64 %1479
  store i8 %1485, ptr %1489, align 1, !tbaa !15
  %1490 = load ptr, ptr %1398, align 8, !tbaa !14
  %1491 = or disjoint i32 %.0.lcssa, 7
  %1492 = zext nneg i32 %1491 to i64
  %1493 = getelementptr inbounds i8, ptr %1490, i64 %1492
  %1494 = load i8, ptr %1493, align 1, !tbaa !15
  %1495 = load ptr, ptr %1403, align 8, !tbaa !14
  %1496 = getelementptr inbounds i8, ptr %1495, i64 %1492
  %1497 = load i8, ptr %1496, align 1, !tbaa !15
  %1498 = sub i8 %1494, %1497
  %1499 = load ptr, ptr %85, align 8, !tbaa !14
  %1500 = getelementptr inbounds ptr, ptr %1499, i64 %indvars.iv2487
  %1501 = load ptr, ptr %1500, align 8, !tbaa !14
  %1502 = getelementptr inbounds i8, ptr %1501, i64 %1492
  store i8 %1498, ptr %1502, align 1, !tbaa !15
  %1503 = load ptr, ptr %1398, align 8, !tbaa !14
  %1504 = or disjoint i32 %.0.lcssa, 8
  %1505 = zext nneg i32 %1504 to i64
  %1506 = getelementptr inbounds i8, ptr %1503, i64 %1505
  %1507 = load i8, ptr %1506, align 1, !tbaa !15
  %1508 = load ptr, ptr %1403, align 8, !tbaa !14
  %1509 = getelementptr inbounds i8, ptr %1508, i64 %1505
  %1510 = load i8, ptr %1509, align 1, !tbaa !15
  %1511 = sub i8 %1507, %1510
  %1512 = load ptr, ptr %85, align 8, !tbaa !14
  %1513 = getelementptr inbounds ptr, ptr %1512, i64 %indvars.iv2487
  %1514 = load ptr, ptr %1513, align 8, !tbaa !14
  %1515 = getelementptr inbounds i8, ptr %1514, i64 %1505
  store i8 %1511, ptr %1515, align 1, !tbaa !15
  %1516 = load ptr, ptr %1398, align 8, !tbaa !14
  %1517 = or disjoint i32 %.0.lcssa, 9
  %1518 = zext nneg i32 %1517 to i64
  %1519 = getelementptr inbounds i8, ptr %1516, i64 %1518
  %1520 = load i8, ptr %1519, align 1, !tbaa !15
  %1521 = load ptr, ptr %1403, align 8, !tbaa !14
  %1522 = getelementptr inbounds i8, ptr %1521, i64 %1518
  %1523 = load i8, ptr %1522, align 1, !tbaa !15
  %1524 = sub i8 %1520, %1523
  %1525 = load ptr, ptr %85, align 8, !tbaa !14
  %1526 = getelementptr inbounds ptr, ptr %1525, i64 %indvars.iv2487
  %1527 = load ptr, ptr %1526, align 8, !tbaa !14
  %1528 = getelementptr inbounds i8, ptr %1527, i64 %1518
  store i8 %1524, ptr %1528, align 1, !tbaa !15
  %1529 = load ptr, ptr %1398, align 8, !tbaa !14
  %1530 = or disjoint i32 %.0.lcssa, 10
  %1531 = zext nneg i32 %1530 to i64
  %1532 = getelementptr inbounds i8, ptr %1529, i64 %1531
  %1533 = load i8, ptr %1532, align 1, !tbaa !15
  %1534 = load ptr, ptr %1403, align 8, !tbaa !14
  %1535 = getelementptr inbounds i8, ptr %1534, i64 %1531
  %1536 = load i8, ptr %1535, align 1, !tbaa !15
  %1537 = sub i8 %1533, %1536
  %1538 = load ptr, ptr %85, align 8, !tbaa !14
  %1539 = getelementptr inbounds ptr, ptr %1538, i64 %indvars.iv2487
  %1540 = load ptr, ptr %1539, align 8, !tbaa !14
  %1541 = getelementptr inbounds i8, ptr %1540, i64 %1531
  store i8 %1537, ptr %1541, align 1, !tbaa !15
  %1542 = load ptr, ptr %1398, align 8, !tbaa !14
  %1543 = or disjoint i32 %.0.lcssa, 11
  %1544 = zext nneg i32 %1543 to i64
  %1545 = getelementptr inbounds i8, ptr %1542, i64 %1544
  %1546 = load i8, ptr %1545, align 1, !tbaa !15
  %1547 = load ptr, ptr %1403, align 8, !tbaa !14
  %1548 = getelementptr inbounds i8, ptr %1547, i64 %1544
  %1549 = load i8, ptr %1548, align 1, !tbaa !15
  %1550 = sub i8 %1546, %1549
  %1551 = load ptr, ptr %85, align 8, !tbaa !14
  %1552 = getelementptr inbounds ptr, ptr %1551, i64 %indvars.iv2487
  %1553 = load ptr, ptr %1552, align 8, !tbaa !14
  %1554 = getelementptr inbounds i8, ptr %1553, i64 %1544
  store i8 %1550, ptr %1554, align 1, !tbaa !15
  %1555 = load ptr, ptr %1398, align 8, !tbaa !14
  %1556 = or disjoint i32 %.0.lcssa, 12
  %1557 = zext nneg i32 %1556 to i64
  %1558 = getelementptr inbounds i8, ptr %1555, i64 %1557
  %1559 = load i8, ptr %1558, align 1, !tbaa !15
  %1560 = load ptr, ptr %1403, align 8, !tbaa !14
  %1561 = getelementptr inbounds i8, ptr %1560, i64 %1557
  %1562 = load i8, ptr %1561, align 1, !tbaa !15
  %1563 = sub i8 %1559, %1562
  %1564 = load ptr, ptr %85, align 8, !tbaa !14
  %1565 = getelementptr inbounds ptr, ptr %1564, i64 %indvars.iv2487
  %1566 = load ptr, ptr %1565, align 8, !tbaa !14
  %1567 = getelementptr inbounds i8, ptr %1566, i64 %1557
  store i8 %1563, ptr %1567, align 1, !tbaa !15
  %1568 = load ptr, ptr %1398, align 8, !tbaa !14
  %1569 = or disjoint i32 %.0.lcssa, 13
  %1570 = zext nneg i32 %1569 to i64
  %1571 = getelementptr inbounds i8, ptr %1568, i64 %1570
  br label %.sink.split2500

1572:                                             ; preds = %303
  %1573 = getelementptr inbounds ptr, ptr %71, i64 %indvars.iv2487
  %1574 = load ptr, ptr %1573, align 8, !tbaa !14
  %1575 = zext nneg i32 %.0.lcssa to i64
  %1576 = getelementptr inbounds i8, ptr %1574, i64 %1575
  %1577 = load i8, ptr %1576, align 1, !tbaa !15
  %1578 = getelementptr inbounds ptr, ptr %75, i64 %indvars.iv2487
  %1579 = load ptr, ptr %1578, align 8, !tbaa !14
  %1580 = getelementptr inbounds i8, ptr %1579, i64 %1575
  %1581 = load i8, ptr %1580, align 1, !tbaa !15
  %1582 = sub i8 %1577, %1581
  %1583 = load ptr, ptr %85, align 8, !tbaa !14
  %1584 = getelementptr inbounds ptr, ptr %1583, i64 %indvars.iv2487
  %1585 = load ptr, ptr %1584, align 8, !tbaa !14
  %1586 = getelementptr inbounds i8, ptr %1585, i64 %1575
  store i8 %1582, ptr %1586, align 1, !tbaa !15
  %1587 = load ptr, ptr %1573, align 8, !tbaa !14
  %1588 = or disjoint i32 %.0.lcssa, 1
  %1589 = zext nneg i32 %1588 to i64
  %1590 = getelementptr inbounds i8, ptr %1587, i64 %1589
  %1591 = load i8, ptr %1590, align 1, !tbaa !15
  %1592 = load ptr, ptr %1578, align 8, !tbaa !14
  %1593 = getelementptr inbounds i8, ptr %1592, i64 %1589
  %1594 = load i8, ptr %1593, align 1, !tbaa !15
  %1595 = sub i8 %1591, %1594
  %1596 = load ptr, ptr %85, align 8, !tbaa !14
  %1597 = getelementptr inbounds ptr, ptr %1596, i64 %indvars.iv2487
  %1598 = load ptr, ptr %1597, align 8, !tbaa !14
  %1599 = getelementptr inbounds i8, ptr %1598, i64 %1589
  store i8 %1595, ptr %1599, align 1, !tbaa !15
  %1600 = load ptr, ptr %1573, align 8, !tbaa !14
  %1601 = or disjoint i32 %.0.lcssa, 2
  %1602 = zext nneg i32 %1601 to i64
  %1603 = getelementptr inbounds i8, ptr %1600, i64 %1602
  %1604 = load i8, ptr %1603, align 1, !tbaa !15
  %1605 = load ptr, ptr %1578, align 8, !tbaa !14
  %1606 = getelementptr inbounds i8, ptr %1605, i64 %1602
  %1607 = load i8, ptr %1606, align 1, !tbaa !15
  %1608 = sub i8 %1604, %1607
  %1609 = load ptr, ptr %85, align 8, !tbaa !14
  %1610 = getelementptr inbounds ptr, ptr %1609, i64 %indvars.iv2487
  %1611 = load ptr, ptr %1610, align 8, !tbaa !14
  %1612 = getelementptr inbounds i8, ptr %1611, i64 %1602
  store i8 %1608, ptr %1612, align 1, !tbaa !15
  %1613 = load ptr, ptr %1573, align 8, !tbaa !14
  %1614 = or disjoint i32 %.0.lcssa, 3
  %1615 = zext nneg i32 %1614 to i64
  %1616 = getelementptr inbounds i8, ptr %1613, i64 %1615
  %1617 = load i8, ptr %1616, align 1, !tbaa !15
  %1618 = load ptr, ptr %1578, align 8, !tbaa !14
  %1619 = getelementptr inbounds i8, ptr %1618, i64 %1615
  %1620 = load i8, ptr %1619, align 1, !tbaa !15
  %1621 = sub i8 %1617, %1620
  %1622 = load ptr, ptr %85, align 8, !tbaa !14
  %1623 = getelementptr inbounds ptr, ptr %1622, i64 %indvars.iv2487
  %1624 = load ptr, ptr %1623, align 8, !tbaa !14
  %1625 = getelementptr inbounds i8, ptr %1624, i64 %1615
  store i8 %1621, ptr %1625, align 1, !tbaa !15
  %1626 = load ptr, ptr %1573, align 8, !tbaa !14
  %1627 = or disjoint i32 %.0.lcssa, 4
  %1628 = zext nneg i32 %1627 to i64
  %1629 = getelementptr inbounds i8, ptr %1626, i64 %1628
  %1630 = load i8, ptr %1629, align 1, !tbaa !15
  %1631 = load ptr, ptr %1578, align 8, !tbaa !14
  %1632 = getelementptr inbounds i8, ptr %1631, i64 %1628
  %1633 = load i8, ptr %1632, align 1, !tbaa !15
  %1634 = sub i8 %1630, %1633
  %1635 = load ptr, ptr %85, align 8, !tbaa !14
  %1636 = getelementptr inbounds ptr, ptr %1635, i64 %indvars.iv2487
  %1637 = load ptr, ptr %1636, align 8, !tbaa !14
  %1638 = getelementptr inbounds i8, ptr %1637, i64 %1628
  store i8 %1634, ptr %1638, align 1, !tbaa !15
  %1639 = load ptr, ptr %1573, align 8, !tbaa !14
  %1640 = or disjoint i32 %.0.lcssa, 5
  %1641 = zext nneg i32 %1640 to i64
  %1642 = getelementptr inbounds i8, ptr %1639, i64 %1641
  %1643 = load i8, ptr %1642, align 1, !tbaa !15
  %1644 = load ptr, ptr %1578, align 8, !tbaa !14
  %1645 = getelementptr inbounds i8, ptr %1644, i64 %1641
  %1646 = load i8, ptr %1645, align 1, !tbaa !15
  %1647 = sub i8 %1643, %1646
  %1648 = load ptr, ptr %85, align 8, !tbaa !14
  %1649 = getelementptr inbounds ptr, ptr %1648, i64 %indvars.iv2487
  %1650 = load ptr, ptr %1649, align 8, !tbaa !14
  %1651 = getelementptr inbounds i8, ptr %1650, i64 %1641
  store i8 %1647, ptr %1651, align 1, !tbaa !15
  %1652 = load ptr, ptr %1573, align 8, !tbaa !14
  %1653 = or disjoint i32 %.0.lcssa, 6
  %1654 = zext nneg i32 %1653 to i64
  %1655 = getelementptr inbounds i8, ptr %1652, i64 %1654
  %1656 = load i8, ptr %1655, align 1, !tbaa !15
  %1657 = load ptr, ptr %1578, align 8, !tbaa !14
  %1658 = getelementptr inbounds i8, ptr %1657, i64 %1654
  %1659 = load i8, ptr %1658, align 1, !tbaa !15
  %1660 = sub i8 %1656, %1659
  %1661 = load ptr, ptr %85, align 8, !tbaa !14
  %1662 = getelementptr inbounds ptr, ptr %1661, i64 %indvars.iv2487
  %1663 = load ptr, ptr %1662, align 8, !tbaa !14
  %1664 = getelementptr inbounds i8, ptr %1663, i64 %1654
  store i8 %1660, ptr %1664, align 1, !tbaa !15
  %1665 = load ptr, ptr %1573, align 8, !tbaa !14
  %1666 = or disjoint i32 %.0.lcssa, 7
  %1667 = zext nneg i32 %1666 to i64
  %1668 = getelementptr inbounds i8, ptr %1665, i64 %1667
  %1669 = load i8, ptr %1668, align 1, !tbaa !15
  %1670 = load ptr, ptr %1578, align 8, !tbaa !14
  %1671 = getelementptr inbounds i8, ptr %1670, i64 %1667
  %1672 = load i8, ptr %1671, align 1, !tbaa !15
  %1673 = sub i8 %1669, %1672
  %1674 = load ptr, ptr %85, align 8, !tbaa !14
  %1675 = getelementptr inbounds ptr, ptr %1674, i64 %indvars.iv2487
  %1676 = load ptr, ptr %1675, align 8, !tbaa !14
  %1677 = getelementptr inbounds i8, ptr %1676, i64 %1667
  store i8 %1673, ptr %1677, align 1, !tbaa !15
  %1678 = load ptr, ptr %1573, align 8, !tbaa !14
  %1679 = or disjoint i32 %.0.lcssa, 8
  %1680 = zext nneg i32 %1679 to i64
  %1681 = getelementptr inbounds i8, ptr %1678, i64 %1680
  %1682 = load i8, ptr %1681, align 1, !tbaa !15
  %1683 = load ptr, ptr %1578, align 8, !tbaa !14
  %1684 = getelementptr inbounds i8, ptr %1683, i64 %1680
  %1685 = load i8, ptr %1684, align 1, !tbaa !15
  %1686 = sub i8 %1682, %1685
  %1687 = load ptr, ptr %85, align 8, !tbaa !14
  %1688 = getelementptr inbounds ptr, ptr %1687, i64 %indvars.iv2487
  %1689 = load ptr, ptr %1688, align 8, !tbaa !14
  %1690 = getelementptr inbounds i8, ptr %1689, i64 %1680
  store i8 %1686, ptr %1690, align 1, !tbaa !15
  %1691 = load ptr, ptr %1573, align 8, !tbaa !14
  %1692 = or disjoint i32 %.0.lcssa, 9
  %1693 = zext nneg i32 %1692 to i64
  %1694 = getelementptr inbounds i8, ptr %1691, i64 %1693
  %1695 = load i8, ptr %1694, align 1, !tbaa !15
  %1696 = load ptr, ptr %1578, align 8, !tbaa !14
  %1697 = getelementptr inbounds i8, ptr %1696, i64 %1693
  %1698 = load i8, ptr %1697, align 1, !tbaa !15
  %1699 = sub i8 %1695, %1698
  %1700 = load ptr, ptr %85, align 8, !tbaa !14
  %1701 = getelementptr inbounds ptr, ptr %1700, i64 %indvars.iv2487
  %1702 = load ptr, ptr %1701, align 8, !tbaa !14
  %1703 = getelementptr inbounds i8, ptr %1702, i64 %1693
  store i8 %1699, ptr %1703, align 1, !tbaa !15
  %1704 = load ptr, ptr %1573, align 8, !tbaa !14
  %1705 = or disjoint i32 %.0.lcssa, 10
  %1706 = zext nneg i32 %1705 to i64
  %1707 = getelementptr inbounds i8, ptr %1704, i64 %1706
  %1708 = load i8, ptr %1707, align 1, !tbaa !15
  %1709 = load ptr, ptr %1578, align 8, !tbaa !14
  %1710 = getelementptr inbounds i8, ptr %1709, i64 %1706
  %1711 = load i8, ptr %1710, align 1, !tbaa !15
  %1712 = sub i8 %1708, %1711
  %1713 = load ptr, ptr %85, align 8, !tbaa !14
  %1714 = getelementptr inbounds ptr, ptr %1713, i64 %indvars.iv2487
  %1715 = load ptr, ptr %1714, align 8, !tbaa !14
  %1716 = getelementptr inbounds i8, ptr %1715, i64 %1706
  store i8 %1712, ptr %1716, align 1, !tbaa !15
  %1717 = load ptr, ptr %1573, align 8, !tbaa !14
  %1718 = or disjoint i32 %.0.lcssa, 11
  %1719 = zext nneg i32 %1718 to i64
  %1720 = getelementptr inbounds i8, ptr %1717, i64 %1719
  %1721 = load i8, ptr %1720, align 1, !tbaa !15
  %1722 = load ptr, ptr %1578, align 8, !tbaa !14
  %1723 = getelementptr inbounds i8, ptr %1722, i64 %1719
  %1724 = load i8, ptr %1723, align 1, !tbaa !15
  %1725 = sub i8 %1721, %1724
  %1726 = load ptr, ptr %85, align 8, !tbaa !14
  %1727 = getelementptr inbounds ptr, ptr %1726, i64 %indvars.iv2487
  %1728 = load ptr, ptr %1727, align 8, !tbaa !14
  %1729 = getelementptr inbounds i8, ptr %1728, i64 %1719
  store i8 %1725, ptr %1729, align 1, !tbaa !15
  %1730 = load ptr, ptr %1573, align 8, !tbaa !14
  %1731 = or disjoint i32 %.0.lcssa, 12
  %1732 = zext nneg i32 %1731 to i64
  %1733 = getelementptr inbounds i8, ptr %1730, i64 %1732
  %1734 = load i8, ptr %1733, align 1, !tbaa !15
  %1735 = load ptr, ptr %1578, align 8, !tbaa !14
  %1736 = getelementptr inbounds i8, ptr %1735, i64 %1732
  %1737 = load i8, ptr %1736, align 1, !tbaa !15
  %1738 = sub i8 %1734, %1737
  %1739 = load ptr, ptr %85, align 8, !tbaa !14
  %1740 = getelementptr inbounds ptr, ptr %1739, i64 %indvars.iv2487
  %1741 = load ptr, ptr %1740, align 8, !tbaa !14
  %1742 = getelementptr inbounds i8, ptr %1741, i64 %1732
  store i8 %1738, ptr %1742, align 1, !tbaa !15
  %1743 = load ptr, ptr %1573, align 8, !tbaa !14
  %1744 = or disjoint i32 %.0.lcssa, 13
  %1745 = zext nneg i32 %1744 to i64
  %1746 = getelementptr inbounds i8, ptr %1743, i64 %1745
  %1747 = load i8, ptr %1746, align 1, !tbaa !15
  %1748 = load ptr, ptr %1578, align 8, !tbaa !14
  %1749 = getelementptr inbounds i8, ptr %1748, i64 %1745
  %1750 = load i8, ptr %1749, align 1, !tbaa !15
  %1751 = sub i8 %1747, %1750
  %1752 = load ptr, ptr %85, align 8, !tbaa !14
  %1753 = getelementptr inbounds ptr, ptr %1752, i64 %indvars.iv2487
  %1754 = load ptr, ptr %1753, align 8, !tbaa !14
  %1755 = getelementptr inbounds i8, ptr %1754, i64 %1745
  store i8 %1751, ptr %1755, align 1, !tbaa !15
  %1756 = load ptr, ptr %1573, align 8, !tbaa !14
  %1757 = or disjoint i32 %.0.lcssa, 14
  %1758 = zext nneg i32 %1757 to i64
  %1759 = getelementptr inbounds i8, ptr %1756, i64 %1758
  br label %.sink.split2500

.sink.split2500:                                  ; preds = %311, %362, %465, %620, %827, %1086, %1397, %1572, %1235, %950, %717, %536, %407, %330, %305
  %.sink2514 = phi ptr [ %310, %305 ], [ %336, %330 ], [ %413, %407 ], [ %542, %536 ], [ %723, %717 ], [ %956, %950 ], [ %1241, %1235 ], [ %1578, %1572 ], [ %1403, %1397 ], [ %1092, %1086 ], [ %833, %827 ], [ %626, %620 ], [ %471, %465 ], [ %368, %362 ], [ %317, %311 ]
  %.sink2513 = phi i64 [ %308, %305 ], [ %360, %330 ], [ %463, %407 ], [ %618, %536 ], [ %825, %717 ], [ %1084, %950 ], [ %1395, %1235 ], [ %1758, %1572 ], [ %1570, %1397 ], [ %1233, %1086 ], [ %948, %827 ], [ %715, %620 ], [ %534, %465 ], [ %405, %362 ], [ %328, %311 ]
  %.sink2508.in.in = phi ptr [ %309, %305 ], [ %361, %330 ], [ %464, %407 ], [ %619, %536 ], [ %826, %717 ], [ %1085, %950 ], [ %1396, %1235 ], [ %1759, %1572 ], [ %1571, %1397 ], [ %1234, %1086 ], [ %949, %827 ], [ %716, %620 ], [ %535, %465 ], [ %406, %362 ], [ %329, %311 ]
  %.sink2508.in = load i8, ptr %.sink2508.in.in, align 1, !tbaa !15
  %1760 = load ptr, ptr %.sink2514, align 8, !tbaa !14
  %1761 = getelementptr inbounds i8, ptr %1760, i64 %.sink2513
  %1762 = load i8, ptr %1761, align 1, !tbaa !15
  %1763 = sub i8 %.sink2508.in, %1762
  %1764 = load ptr, ptr %85, align 8, !tbaa !14
  %1765 = getelementptr inbounds ptr, ptr %1764, i64 %indvars.iv2487
  %1766 = load ptr, ptr %1765, align 8, !tbaa !14
  %1767 = getelementptr inbounds i8, ptr %1766, i64 %.sink2513
  store i8 %1763, ptr %1767, align 1, !tbaa !15
  br label %1768

1768:                                             ; preds = %.sink.split2500, %303, %._crit_edge
  %indvars.iv.next2488 = add nsw i64 %indvars.iv2487, 1
  %.pre2496 = load ptr, ptr %64, align 8, !tbaa !13
  br label %86, !llvm.loop !20

1769:                                             ; preds = %97
  %indvars.iv.next2491 = add nuw nsw i64 %indvars.iv2490, 1
  %1770 = load i32, ptr %.02307, align 8, !tbaa !5
  %1771 = sext i32 %1770 to i64
  %1772 = icmp slt i64 %indvars.iv.next2491, %1771
  br i1 %1772, label %68, label %._crit_edge2483, !llvm.loop !21
}

attributes #0 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #1 = { nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #2 = { nounwind }

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !7, i64 0}
!6 = !{!"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 = !{!10, !10, i64 0}
!15 = !{!8, !8, i64 0}
!16 = !{!17, !17, i64 0}
!17 = !{!"short", !8, i64 0}
!18 = distinct !{!18, !19}
!19 = !{!"llvm.loop.mustprogress"}
!20 = distinct !{!20, !19}
!21 = distinct !{!21, !19}


; Effective O3 passes: BDCEPass,CorrelatedValuePropagationPass,EarlyCSEPass,GVNPass,GlobalOptPass,IPSCCPPass,IndVarSimplifyPass,InferFunctionAttrsPass,InstCombinePass,InstSimplifyPass,JumpThreadingPass,LCSSAPass,LICMPass,LoopRotatePass,LoopSimplifyPass,LoopUnrollPass,ReassociatePass,SROAPass,SimplifyCFGPass,TailCallElimPass