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

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

%struct.MImage = type { i32, i32, i32, [4 x ptr], ptr }

@.str = external hidden unnamed_addr constant [78 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [19 x i8], align 1
@__FUNCTION__.mImageInvert = external hidden unnamed_addr constant [13 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 @mImageInvert(ptr noundef %0, ptr noundef %1) #2 {
  %3 = alloca ptr, align 8
  %4 = alloca ptr, align 8
  %5 = alloca i32, align 4
  %6 = alloca i32, align 4
  %7 = alloca i32, align 4
  %8 = alloca i32, align 4
  %9 = alloca i32, align 4
  %10 = alloca i32, align 4
  store ptr %0, ptr %3, align 8, !tbaa !5
  store ptr %1, ptr %4, align 8, !tbaa !5
  br label %11

11:                                               ; preds = %2
  call void @llvm.lifetime.start.p0(i64 4, ptr %5) #3
  %12 = load ptr, ptr %3, align 8, !tbaa !5
  %13 = icmp eq ptr %12, null
  br i1 %13, label %18, label %14

14:                                               ; preds = %11
  %15 = load ptr, ptr %3, align 8, !tbaa !5
  %16 = ptrtoint ptr %15 to i64
  %17 = icmp eq i64 %16, -1
  br i1 %17, label %18, label %19

18:                                               ; preds = %14, %11
  br label %48

19:                                               ; preds = %14
  %20 = load ptr, ptr %3, align 8, !tbaa !5
  %21 = getelementptr inbounds %struct.MImage, ptr %20, i32 0, i32 3
  %22 = getelementptr inbounds [4 x ptr], ptr %21, i64 0, i64 0
  %23 = icmp eq ptr %22, null
  br i1 %23, label %45, label %24

24:                                               ; preds = %19
  %25 = load ptr, ptr %3, align 8, !tbaa !5
  %26 = getelementptr inbounds %struct.MImage, ptr %25, i32 0, i32 3
  %27 = getelementptr inbounds [4 x ptr], ptr %26, i64 0, i64 0
  %28 = ptrtoint ptr %27 to i64
  %29 = icmp eq i64 %28, -1
  br i1 %29, label %45, label %30

30:                                               ; preds = %24
  %31 = load ptr, ptr %3, align 8, !tbaa !5
  %32 = getelementptr inbounds %struct.MImage, ptr %31, i32 0, i32 0
  %33 = load i32, ptr %32, align 8, !tbaa !9
  %34 = icmp sle i32 %33, 0
  br i1 %34, label %45, label %35

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

40:                                               ; preds = %35
  %41 = load ptr, ptr %3, align 8, !tbaa !5
  %42 = getelementptr inbounds %struct.MImage, ptr %41, i32 0, i32 2
  %43 = load i32, ptr %42, align 8, !tbaa !13
  %44 = icmp sle i32 %43, 0
  br label %45

45:                                               ; preds = %40, %35, %30, %24, %19
  %46 = phi i1 [ true, %35 ], [ true, %30 ], [ true, %24 ], [ true, %19 ], [ %44, %40 ]
  %47 = zext i1 %46 to i32
  br label %48

48:                                               ; preds = %45, %18
  %49 = phi i32 [ 1, %18 ], [ %47, %45 ]
  store i32 %49, ptr %5, align 4, !tbaa !14
  %50 = load i32, ptr %5, align 4, !tbaa !14
  %51 = icmp ne i32 %50, 0
  br i1 %51, label %52, label %54

52:                                               ; preds = %48
  %53 = load i32, ptr %5, align 4, !tbaa !14
  call void (i32, i32, ptr, i32, ptr, ptr, ...) @m_Exception(i32 noundef %53, i32 noundef -1, ptr noundef @.str, i32 noundef 666, ptr noundef @__FUNCTION__.mImageInvert, ptr noundef @.str.2)
  br label %54

54:                                               ; preds = %52, %48
  call void @llvm.lifetime.end.p0(i64 4, ptr %5) #3
  br label %55

55:                                               ; preds = %54
  %56 = load ptr, ptr %4, align 8, !tbaa !5
  %57 = icmp eq ptr %56, null
  br i1 %57, label %62, label %58

58:                                               ; preds = %55
  %59 = load ptr, ptr %4, align 8, !tbaa !5
  %60 = ptrtoint ptr %59 to i64
  %61 = icmp eq i64 %60, -1
  br i1 %61, label %62, label %64

62:                                               ; preds = %58, %55
  %63 = load ptr, ptr %3, align 8, !tbaa !5
  store ptr %63, ptr %4, align 8, !tbaa !5
  br label %129

64:                                               ; preds = %58
  br label %65

65:                                               ; preds = %64
  call void @llvm.lifetime.start.p0(i64 4, ptr %6) #3
  store i32 4, ptr %6, align 4, !tbaa !14
  %66 = load i32, ptr %6, align 4, !tbaa !14
  %67 = icmp eq i32 %66, 2
  br i1 %67, label %68, label %80

68:                                               ; preds = %65
  %69 = load ptr, ptr %4, align 8, !tbaa !5
  %70 = load ptr, ptr %3, align 8, !tbaa !5
  %71 = getelementptr inbounds %struct.MImage, ptr %70, i32 0, i32 0
  %72 = load i32, ptr %71, align 8, !tbaa !9
  %73 = add nsw i32 %72, 0
  %74 = load ptr, ptr %3, align 8, !tbaa !5
  %75 = getelementptr inbounds %struct.MImage, ptr %74, i32 0, i32 1
  %76 = load i32, ptr %75, align 4, !tbaa !12
  %77 = load ptr, ptr %4, align 8, !tbaa !5
  %78 = getelementptr inbounds %struct.MImage, ptr %77, i32 0, i32 3
  %79 = getelementptr inbounds [4 x ptr], ptr %78, i64 0, i64 0
  call void @ImageRedefine(ptr noundef %69, i32 noundef -1, i32 noundef %73, i32 noundef %76, ptr noundef %79)
  br label %127

80:                                               ; preds = %65
  %81 = load i32, ptr %6, align 4, !tbaa !14
  %82 = icmp eq i32 %81, 3
  br i1 %82, label %83, label %98

83:                                               ; preds = %80
  %84 = load ptr, ptr %4, align 8, !tbaa !5
  %85 = load ptr, ptr %3, align 8, !tbaa !5
  %86 = getelementptr inbounds %struct.MImage, ptr %85, i32 0, i32 0
  %87 = load i32, ptr %86, align 8, !tbaa !9
  %88 = add nsw i32 %87, 0
  %89 = load ptr, ptr %3, align 8, !tbaa !5
  %90 = getelementptr inbounds %struct.MImage, ptr %89, i32 0, i32 1
  %91 = load i32, ptr %90, align 4, !tbaa !12
  %92 = load ptr, ptr %3, align 8, !tbaa !5
  %93 = getelementptr inbounds %struct.MImage, ptr %92, i32 0, i32 2
  %94 = load i32, ptr %93, align 8, !tbaa !13
  %95 = load ptr, ptr %4, align 8, !tbaa !5
  %96 = getelementptr inbounds %struct.MImage, ptr %95, i32 0, i32 3
  %97 = getelementptr inbounds [4 x ptr], ptr %96, i64 0, i64 0
  call void @ImageRedefine(ptr noundef %84, i32 noundef %88, i32 noundef %91, i32 noundef %94, ptr noundef %97)
  br label %126

98:                                               ; preds = %80
  %99 = load i32, ptr %6, align 4, !tbaa !14
  %100 = icmp eq i32 %99, 4
  br i1 %100, label %101, label %116

101:                                              ; preds = %98
  %102 = load ptr, ptr %4, align 8, !tbaa !5
  %103 = load ptr, ptr %3, align 8, !tbaa !5
  %104 = getelementptr inbounds %struct.MImage, ptr %103, i32 0, i32 0
  %105 = load i32, ptr %104, align 8, !tbaa !9
  %106 = add nsw i32 %105, 0
  %107 = load ptr, ptr %3, align 8, !tbaa !5
  %108 = getelementptr inbounds %struct.MImage, ptr %107, i32 0, i32 1
  %109 = load i32, ptr %108, align 4, !tbaa !12
  %110 = load ptr, ptr %3, align 8, !tbaa !5
  %111 = getelementptr inbounds %struct.MImage, ptr %110, i32 0, i32 2
  %112 = load i32, ptr %111, align 8, !tbaa !13
  %113 = load ptr, ptr %4, align 8, !tbaa !5
  %114 = getelementptr inbounds %struct.MImage, ptr %113, i32 0, i32 3
  %115 = getelementptr inbounds [4 x ptr], ptr %114, i64 0, i64 0
  call void @ImageRedefine(ptr noundef %102, i32 noundef %106, i32 noundef %109, i32 noundef %112, ptr noundef %115)
  br label %125

116:                                              ; preds = %98
  br label %117

117:                                              ; preds = %116
  call void @llvm.lifetime.start.p0(i64 4, ptr %7) #3
  store i32 1, ptr %7, align 4, !tbaa !14
  %118 = load i32, ptr %7, align 4, !tbaa !14
  %119 = icmp ne i32 %118, 0
  br i1 %119, label %120, label %122

120:                                              ; preds = %117
  %121 = load i32, ptr %7, align 4, !tbaa !14
  call void (i32, i32, ptr, i32, ptr, ptr, ...) @m_Exception(i32 noundef %121, i32 noundef -1, ptr noundef @.str, i32 noundef 669, ptr noundef @__FUNCTION__.mImageInvert, ptr noundef @.str.12)
  br label %122

122:                                              ; preds = %120, %117
  call void @llvm.lifetime.end.p0(i64 4, ptr %7) #3
  br label %123

123:                                              ; preds = %122
  br label %124

124:                                              ; preds = %123
  br label %125

125:                                              ; preds = %124, %101
  br label %126

126:                                              ; preds = %125, %83
  br label %127

127:                                              ; preds = %126, %68
  call void @llvm.lifetime.end.p0(i64 4, ptr %6) #3
  br label %128

128:                                              ; preds = %127
  br label %129

129:                                              ; preds = %128, %62
  %130 = load ptr, ptr %3, align 8, !tbaa !5
  %131 = getelementptr inbounds %struct.MImage, ptr %130, i32 0, i32 4
  %132 = load ptr, ptr %131, align 8, !tbaa !15
  %133 = icmp eq ptr %132, null
  br i1 %133, label %146, label %134

134:                                              ; preds = %129
  %135 = load ptr, ptr %3, align 8, !tbaa !5
  %136 = getelementptr inbounds %struct.MImage, ptr %135, i32 0, i32 4
  %137 = load ptr, ptr %136, align 8, !tbaa !15
  %138 = ptrtoint ptr %137 to i64
  %139 = icmp eq i64 %138, -1
  br i1 %139, label %146, label %140

140:                                              ; preds = %134
  %141 = load ptr, ptr %3, align 8, !tbaa !5
  %142 = getelementptr inbounds %struct.MImage, ptr %141, i32 0, i32 4
  %143 = load ptr, ptr %142, align 8, !tbaa !15
  %144 = load ptr, ptr %4, align 8, !tbaa !5
  %145 = getelementptr inbounds %struct.MImage, ptr %144, i32 0, i32 4
  store ptr %143, ptr %145, align 8, !tbaa !15
  br label %146

146:                                              ; preds = %140, %134, %129
  call void @llvm.lifetime.start.p0(i64 4, ptr %8) #3
  store i32 0, ptr %8, align 4, !tbaa !14
  br label %147

147:                                              ; preds = %4676, %146
  %148 = load i32, ptr %8, align 4, !tbaa !14
  %149 = load ptr, ptr %4, align 8, !tbaa !5
  %150 = getelementptr inbounds %struct.MImage, ptr %149, i32 0, i32 0
  %151 = load i32, ptr %150, align 8, !tbaa !9
  %152 = icmp slt i32 %148, %151
  br i1 %152, label %154, label %153

153:                                              ; preds = %147
  call void @llvm.lifetime.end.p0(i64 4, ptr %8) #3
  br label %4679

154:                                              ; preds = %147
  call void @llvm.lifetime.start.p0(i64 4, ptr %9) #3
  store i32 0, ptr %9, align 4, !tbaa !14
  br label %155

155:                                              ; preds = %4672, %154
  %156 = load i32, ptr %9, align 4, !tbaa !14
  %157 = load ptr, ptr %4, align 8, !tbaa !5
  %158 = getelementptr inbounds %struct.MImage, ptr %157, i32 0, i32 1
  %159 = load i32, ptr %158, align 4, !tbaa !12
  %160 = icmp slt i32 %156, %159
  br i1 %160, label %161, label %4675

161:                                              ; preds = %155
  br label %162

162:                                              ; preds = %161
  call void @llvm.lifetime.start.p0(i64 4, ptr %10) #3
  store i32 0, ptr %10, align 4, !tbaa !14
  store i32 0, ptr %10, align 4, !tbaa !14
  br label %163

163:                                              ; preds = %683, %162
  %164 = load i32, ptr %10, align 4, !tbaa !14
  %165 = load ptr, ptr %4, align 8, !tbaa !5
  %166 = getelementptr inbounds %struct.MImage, ptr %165, i32 0, i32 2
  %167 = load i32, ptr %166, align 8, !tbaa !13
  %168 = sub nsw i32 %167, 15
  %169 = icmp slt i32 %164, %168
  br i1 %169, label %170, label %686

170:                                              ; preds = %163
  %171 = load ptr, ptr %3, align 8, !tbaa !5
  %172 = getelementptr inbounds %struct.MImage, ptr %171, i32 0, i32 3
  %173 = load i32, ptr %8, align 4, !tbaa !14
  %174 = sext i32 %173 to i64
  %175 = getelementptr inbounds [4 x ptr], ptr %172, i64 0, i64 %174
  %176 = load ptr, ptr %175, align 8, !tbaa !5
  %177 = load i32, ptr %9, align 4, !tbaa !14
  %178 = sext i32 %177 to i64
  %179 = getelementptr inbounds ptr, ptr %176, i64 %178
  %180 = load ptr, ptr %179, align 8, !tbaa !5
  %181 = load i32, ptr %10, align 4, !tbaa !14
  %182 = add nsw i32 %181, 0
  %183 = sext i32 %182 to i64
  %184 = getelementptr inbounds i8, ptr %180, i64 %183
  %185 = load i8, ptr %184, align 1, !tbaa !16
  %186 = zext i8 %185 to i32
  %187 = sub nsw i32 255, %186
  %188 = trunc i32 %187 to i8
  %189 = load ptr, ptr %4, align 8, !tbaa !5
  %190 = getelementptr inbounds %struct.MImage, ptr %189, i32 0, i32 3
  %191 = load i32, ptr %8, align 4, !tbaa !14
  %192 = sext i32 %191 to i64
  %193 = getelementptr inbounds [4 x ptr], ptr %190, i64 0, i64 %192
  %194 = load ptr, ptr %193, align 8, !tbaa !5
  %195 = load i32, ptr %9, align 4, !tbaa !14
  %196 = sext i32 %195 to i64
  %197 = getelementptr inbounds ptr, ptr %194, i64 %196
  %198 = load ptr, ptr %197, align 8, !tbaa !5
  %199 = load i32, ptr %10, align 4, !tbaa !14
  %200 = add nsw i32 %199, 0
  %201 = sext i32 %200 to i64
  %202 = getelementptr inbounds i8, ptr %198, i64 %201
  store i8 %188, ptr %202, align 1, !tbaa !16
  %203 = load ptr, ptr %3, align 8, !tbaa !5
  %204 = getelementptr inbounds %struct.MImage, ptr %203, i32 0, i32 3
  %205 = load i32, ptr %8, align 4, !tbaa !14
  %206 = sext i32 %205 to i64
  %207 = getelementptr inbounds [4 x ptr], ptr %204, i64 0, i64 %206
  %208 = load ptr, ptr %207, align 8, !tbaa !5
  %209 = load i32, ptr %9, align 4, !tbaa !14
  %210 = sext i32 %209 to i64
  %211 = getelementptr inbounds ptr, ptr %208, i64 %210
  %212 = load ptr, ptr %211, align 8, !tbaa !5
  %213 = load i32, ptr %10, align 4, !tbaa !14
  %214 = add nsw i32 %213, 1
  %215 = sext i32 %214 to i64
  %216 = getelementptr inbounds i8, ptr %212, i64 %215
  %217 = load i8, ptr %216, align 1, !tbaa !16
  %218 = zext i8 %217 to i32
  %219 = sub nsw i32 255, %218
  %220 = trunc i32 %219 to i8
  %221 = load ptr, ptr %4, align 8, !tbaa !5
  %222 = getelementptr inbounds %struct.MImage, ptr %221, i32 0, i32 3
  %223 = load i32, ptr %8, align 4, !tbaa !14
  %224 = sext i32 %223 to i64
  %225 = getelementptr inbounds [4 x ptr], ptr %222, i64 0, i64 %224
  %226 = load ptr, ptr %225, align 8, !tbaa !5
  %227 = load i32, ptr %9, align 4, !tbaa !14
  %228 = sext i32 %227 to i64
  %229 = getelementptr inbounds ptr, ptr %226, i64 %228
  %230 = load ptr, ptr %229, align 8, !tbaa !5
  %231 = load i32, ptr %10, align 4, !tbaa !14
  %232 = add nsw i32 %231, 1
  %233 = sext i32 %232 to i64
  %234 = getelementptr inbounds i8, ptr %230, i64 %233
  store i8 %220, ptr %234, align 1, !tbaa !16
  %235 = load ptr, ptr %3, align 8, !tbaa !5
  %236 = getelementptr inbounds %struct.MImage, ptr %235, i32 0, i32 3
  %237 = load i32, ptr %8, align 4, !tbaa !14
  %238 = sext i32 %237 to i64
  %239 = getelementptr inbounds [4 x ptr], ptr %236, i64 0, i64 %238
  %240 = load ptr, ptr %239, align 8, !tbaa !5
  %241 = load i32, ptr %9, align 4, !tbaa !14
  %242 = sext i32 %241 to i64
  %243 = getelementptr inbounds ptr, ptr %240, i64 %242
  %244 = load ptr, ptr %243, align 8, !tbaa !5
  %245 = load i32, ptr %10, align 4, !tbaa !14
  %246 = add nsw i32 %245, 2
  %247 = sext i32 %246 to i64
  %248 = getelementptr inbounds i8, ptr %244, i64 %247
  %249 = load i8, ptr %248, align 1, !tbaa !16
  %250 = zext i8 %249 to i32
  %251 = sub nsw i32 255, %250
  %252 = trunc i32 %251 to i8
  %253 = load ptr, ptr %4, align 8, !tbaa !5
  %254 = getelementptr inbounds %struct.MImage, ptr %253, i32 0, i32 3
  %255 = load i32, ptr %8, align 4, !tbaa !14
  %256 = sext i32 %255 to i64
  %257 = getelementptr inbounds [4 x ptr], ptr %254, i64 0, i64 %256
  %258 = load ptr, ptr %257, align 8, !tbaa !5
  %259 = load i32, ptr %9, align 4, !tbaa !14
  %260 = sext i32 %259 to i64
  %261 = getelementptr inbounds ptr, ptr %258, i64 %260
  %262 = load ptr, ptr %261, align 8, !tbaa !5
  %263 = load i32, ptr %10, align 4, !tbaa !14
  %264 = add nsw i32 %263, 2
  %265 = sext i32 %264 to i64
  %266 = getelementptr inbounds i8, ptr %262, i64 %265
  store i8 %252, ptr %266, align 1, !tbaa !16
  %267 = load ptr, ptr %3, align 8, !tbaa !5
  %268 = getelementptr inbounds %struct.MImage, ptr %267, i32 0, i32 3
  %269 = load i32, ptr %8, align 4, !tbaa !14
  %270 = sext i32 %269 to i64
  %271 = getelementptr inbounds [4 x ptr], ptr %268, i64 0, i64 %270
  %272 = load ptr, ptr %271, align 8, !tbaa !5
  %273 = load i32, ptr %9, align 4, !tbaa !14
  %274 = sext i32 %273 to i64
  %275 = getelementptr inbounds ptr, ptr %272, i64 %274
  %276 = load ptr, ptr %275, align 8, !tbaa !5
  %277 = load i32, ptr %10, align 4, !tbaa !14
  %278 = add nsw i32 %277, 3
  %279 = sext i32 %278 to i64
  %280 = getelementptr inbounds i8, ptr %276, i64 %279
  %281 = load i8, ptr %280, align 1, !tbaa !16
  %282 = zext i8 %281 to i32
  %283 = sub nsw i32 255, %282
  %284 = trunc i32 %283 to i8
  %285 = load ptr, ptr %4, align 8, !tbaa !5
  %286 = getelementptr inbounds %struct.MImage, ptr %285, i32 0, i32 3
  %287 = load i32, ptr %8, align 4, !tbaa !14
  %288 = sext i32 %287 to i64
  %289 = getelementptr inbounds [4 x ptr], ptr %286, i64 0, i64 %288
  %290 = load ptr, ptr %289, align 8, !tbaa !5
  %291 = load i32, ptr %9, align 4, !tbaa !14
  %292 = sext i32 %291 to i64
  %293 = getelementptr inbounds ptr, ptr %290, i64 %292
  %294 = load ptr, ptr %293, align 8, !tbaa !5
  %295 = load i32, ptr %10, align 4, !tbaa !14
  %296 = add nsw i32 %295, 3
  %297 = sext i32 %296 to i64
  %298 = getelementptr inbounds i8, ptr %294, i64 %297
  store i8 %284, ptr %298, align 1, !tbaa !16
  %299 = load ptr, ptr %3, align 8, !tbaa !5
  %300 = getelementptr inbounds %struct.MImage, ptr %299, i32 0, i32 3
  %301 = load i32, ptr %8, align 4, !tbaa !14
  %302 = sext i32 %301 to i64
  %303 = getelementptr inbounds [4 x ptr], ptr %300, i64 0, i64 %302
  %304 = load ptr, ptr %303, align 8, !tbaa !5
  %305 = load i32, ptr %9, align 4, !tbaa !14
  %306 = sext i32 %305 to i64
  %307 = getelementptr inbounds ptr, ptr %304, i64 %306
  %308 = load ptr, ptr %307, align 8, !tbaa !5
  %309 = load i32, ptr %10, align 4, !tbaa !14
  %310 = add nsw i32 %309, 4
  %311 = sext i32 %310 to i64
  %312 = getelementptr inbounds i8, ptr %308, i64 %311
  %313 = load i8, ptr %312, align 1, !tbaa !16
  %314 = zext i8 %313 to i32
  %315 = sub nsw i32 255, %314
  %316 = trunc i32 %315 to i8
  %317 = load ptr, ptr %4, align 8, !tbaa !5
  %318 = getelementptr inbounds %struct.MImage, ptr %317, i32 0, i32 3
  %319 = load i32, ptr %8, align 4, !tbaa !14
  %320 = sext i32 %319 to i64
  %321 = getelementptr inbounds [4 x ptr], ptr %318, i64 0, i64 %320
  %322 = load ptr, ptr %321, align 8, !tbaa !5
  %323 = load i32, ptr %9, align 4, !tbaa !14
  %324 = sext i32 %323 to i64
  %325 = getelementptr inbounds ptr, ptr %322, i64 %324
  %326 = load ptr, ptr %325, align 8, !tbaa !5
  %327 = load i32, ptr %10, align 4, !tbaa !14
  %328 = add nsw i32 %327, 4
  %329 = sext i32 %328 to i64
  %330 = getelementptr inbounds i8, ptr %326, i64 %329
  store i8 %316, ptr %330, align 1, !tbaa !16
  %331 = load ptr, ptr %3, align 8, !tbaa !5
  %332 = getelementptr inbounds %struct.MImage, ptr %331, i32 0, i32 3
  %333 = load i32, ptr %8, align 4, !tbaa !14
  %334 = sext i32 %333 to i64
  %335 = getelementptr inbounds [4 x ptr], ptr %332, i64 0, i64 %334
  %336 = load ptr, ptr %335, align 8, !tbaa !5
  %337 = load i32, ptr %9, align 4, !tbaa !14
  %338 = sext i32 %337 to i64
  %339 = getelementptr inbounds ptr, ptr %336, i64 %338
  %340 = load ptr, ptr %339, align 8, !tbaa !5
  %341 = load i32, ptr %10, align 4, !tbaa !14
  %342 = add nsw i32 %341, 5
  %343 = sext i32 %342 to i64
  %344 = getelementptr inbounds i8, ptr %340, i64 %343
  %345 = load i8, ptr %344, align 1, !tbaa !16
  %346 = zext i8 %345 to i32
  %347 = sub nsw i32 255, %346
  %348 = trunc i32 %347 to i8
  %349 = load ptr, ptr %4, align 8, !tbaa !5
  %350 = getelementptr inbounds %struct.MImage, ptr %349, i32 0, i32 3
  %351 = load i32, ptr %8, align 4, !tbaa !14
  %352 = sext i32 %351 to i64
  %353 = getelementptr inbounds [4 x ptr], ptr %350, i64 0, i64 %352
  %354 = load ptr, ptr %353, align 8, !tbaa !5
  %355 = load i32, ptr %9, align 4, !tbaa !14
  %356 = sext i32 %355 to i64
  %357 = getelementptr inbounds ptr, ptr %354, i64 %356
  %358 = load ptr, ptr %357, align 8, !tbaa !5
  %359 = load i32, ptr %10, align 4, !tbaa !14
  %360 = add nsw i32 %359, 5
  %361 = sext i32 %360 to i64
  %362 = getelementptr inbounds i8, ptr %358, i64 %361
  store i8 %348, ptr %362, align 1, !tbaa !16
  %363 = load ptr, ptr %3, align 8, !tbaa !5
  %364 = getelementptr inbounds %struct.MImage, ptr %363, i32 0, i32 3
  %365 = load i32, ptr %8, align 4, !tbaa !14
  %366 = sext i32 %365 to i64
  %367 = getelementptr inbounds [4 x ptr], ptr %364, i64 0, i64 %366
  %368 = load ptr, ptr %367, align 8, !tbaa !5
  %369 = load i32, ptr %9, align 4, !tbaa !14
  %370 = sext i32 %369 to i64
  %371 = getelementptr inbounds ptr, ptr %368, i64 %370
  %372 = load ptr, ptr %371, align 8, !tbaa !5
  %373 = load i32, ptr %10, align 4, !tbaa !14
  %374 = add nsw i32 %373, 6
  %375 = sext i32 %374 to i64
  %376 = getelementptr inbounds i8, ptr %372, i64 %375
  %377 = load i8, ptr %376, align 1, !tbaa !16
  %378 = zext i8 %377 to i32
  %379 = sub nsw i32 255, %378
  %380 = trunc i32 %379 to i8
  %381 = load ptr, ptr %4, align 8, !tbaa !5
  %382 = getelementptr inbounds %struct.MImage, ptr %381, i32 0, i32 3
  %383 = load i32, ptr %8, align 4, !tbaa !14
  %384 = sext i32 %383 to i64
  %385 = getelementptr inbounds [4 x ptr], ptr %382, i64 0, i64 %384
  %386 = load ptr, ptr %385, align 8, !tbaa !5
  %387 = load i32, ptr %9, align 4, !tbaa !14
  %388 = sext i32 %387 to i64
  %389 = getelementptr inbounds ptr, ptr %386, i64 %388
  %390 = load ptr, ptr %389, align 8, !tbaa !5
  %391 = load i32, ptr %10, align 4, !tbaa !14
  %392 = add nsw i32 %391, 6
  %393 = sext i32 %392 to i64
  %394 = getelementptr inbounds i8, ptr %390, i64 %393
  store i8 %380, ptr %394, align 1, !tbaa !16
  %395 = load ptr, ptr %3, align 8, !tbaa !5
  %396 = getelementptr inbounds %struct.MImage, ptr %395, i32 0, i32 3
  %397 = load i32, ptr %8, align 4, !tbaa !14
  %398 = sext i32 %397 to i64
  %399 = getelementptr inbounds [4 x ptr], ptr %396, i64 0, i64 %398
  %400 = load ptr, ptr %399, align 8, !tbaa !5
  %401 = load i32, ptr %9, align 4, !tbaa !14
  %402 = sext i32 %401 to i64
  %403 = getelementptr inbounds ptr, ptr %400, i64 %402
  %404 = load ptr, ptr %403, align 8, !tbaa !5
  %405 = load i32, ptr %10, align 4, !tbaa !14
  %406 = add nsw i32 %405, 7
  %407 = sext i32 %406 to i64
  %408 = getelementptr inbounds i8, ptr %404, i64 %407
  %409 = load i8, ptr %408, align 1, !tbaa !16
  %410 = zext i8 %409 to i32
  %411 = sub nsw i32 255, %410
  %412 = trunc i32 %411 to i8
  %413 = load ptr, ptr %4, align 8, !tbaa !5
  %414 = getelementptr inbounds %struct.MImage, ptr %413, i32 0, i32 3
  %415 = load i32, ptr %8, align 4, !tbaa !14
  %416 = sext i32 %415 to i64
  %417 = getelementptr inbounds [4 x ptr], ptr %414, i64 0, i64 %416
  %418 = load ptr, ptr %417, align 8, !tbaa !5
  %419 = load i32, ptr %9, align 4, !tbaa !14
  %420 = sext i32 %419 to i64
  %421 = getelementptr inbounds ptr, ptr %418, i64 %420
  %422 = load ptr, ptr %421, align 8, !tbaa !5
  %423 = load i32, ptr %10, align 4, !tbaa !14
  %424 = add nsw i32 %423, 7
  %425 = sext i32 %424 to i64
  %426 = getelementptr inbounds i8, ptr %422, i64 %425
  store i8 %412, ptr %426, align 1, !tbaa !16
  %427 = load ptr, ptr %3, align 8, !tbaa !5
  %428 = getelementptr inbounds %struct.MImage, ptr %427, i32 0, i32 3
  %429 = load i32, ptr %8, align 4, !tbaa !14
  %430 = sext i32 %429 to i64
  %431 = getelementptr inbounds [4 x ptr], ptr %428, i64 0, i64 %430
  %432 = load ptr, ptr %431, align 8, !tbaa !5
  %433 = load i32, ptr %9, align 4, !tbaa !14
  %434 = sext i32 %433 to i64
  %435 = getelementptr inbounds ptr, ptr %432, i64 %434
  %436 = load ptr, ptr %435, align 8, !tbaa !5
  %437 = load i32, ptr %10, align 4, !tbaa !14
  %438 = add nsw i32 %437, 8
  %439 = sext i32 %438 to i64
  %440 = getelementptr inbounds i8, ptr %436, i64 %439
  %441 = load i8, ptr %440, align 1, !tbaa !16
  %442 = zext i8 %441 to i32
  %443 = sub nsw i32 255, %442
  %444 = trunc i32 %443 to i8
  %445 = load ptr, ptr %4, align 8, !tbaa !5
  %446 = getelementptr inbounds %struct.MImage, ptr %445, i32 0, i32 3
  %447 = load i32, ptr %8, align 4, !tbaa !14
  %448 = sext i32 %447 to i64
  %449 = getelementptr inbounds [4 x ptr], ptr %446, i64 0, i64 %448
  %450 = load ptr, ptr %449, align 8, !tbaa !5
  %451 = load i32, ptr %9, align 4, !tbaa !14
  %452 = sext i32 %451 to i64
  %453 = getelementptr inbounds ptr, ptr %450, i64 %452
  %454 = load ptr, ptr %453, align 8, !tbaa !5
  %455 = load i32, ptr %10, align 4, !tbaa !14
  %456 = add nsw i32 %455, 8
  %457 = sext i32 %456 to i64
  %458 = getelementptr inbounds i8, ptr %454, i64 %457
  store i8 %444, ptr %458, align 1, !tbaa !16
  %459 = load ptr, ptr %3, align 8, !tbaa !5
  %460 = getelementptr inbounds %struct.MImage, ptr %459, i32 0, i32 3
  %461 = load i32, ptr %8, align 4, !tbaa !14
  %462 = sext i32 %461 to i64
  %463 = getelementptr inbounds [4 x ptr], ptr %460, i64 0, i64 %462
  %464 = load ptr, ptr %463, align 8, !tbaa !5
  %465 = load i32, ptr %9, align 4, !tbaa !14
  %466 = sext i32 %465 to i64
  %467 = getelementptr inbounds ptr, ptr %464, i64 %466
  %468 = load ptr, ptr %467, align 8, !tbaa !5
  %469 = load i32, ptr %10, align 4, !tbaa !14
  %470 = add nsw i32 %469, 9
  %471 = sext i32 %470 to i64
  %472 = getelementptr inbounds i8, ptr %468, i64 %471
  %473 = load i8, ptr %472, align 1, !tbaa !16
  %474 = zext i8 %473 to i32
  %475 = sub nsw i32 255, %474
  %476 = trunc i32 %475 to i8
  %477 = load ptr, ptr %4, align 8, !tbaa !5
  %478 = getelementptr inbounds %struct.MImage, ptr %477, i32 0, i32 3
  %479 = load i32, ptr %8, align 4, !tbaa !14
  %480 = sext i32 %479 to i64
  %481 = getelementptr inbounds [4 x ptr], ptr %478, i64 0, i64 %480
  %482 = load ptr, ptr %481, align 8, !tbaa !5
  %483 = load i32, ptr %9, align 4, !tbaa !14
  %484 = sext i32 %483 to i64
  %485 = getelementptr inbounds ptr, ptr %482, i64 %484
  %486 = load ptr, ptr %485, align 8, !tbaa !5
  %487 = load i32, ptr %10, align 4, !tbaa !14
  %488 = add nsw i32 %487, 9
  %489 = sext i32 %488 to i64
  %490 = getelementptr inbounds i8, ptr %486, i64 %489
  store i8 %476, ptr %490, align 1, !tbaa !16
  %491 = load ptr, ptr %3, align 8, !tbaa !5
  %492 = getelementptr inbounds %struct.MImage, ptr %491, i32 0, i32 3
  %493 = load i32, ptr %8, align 4, !tbaa !14
  %494 = sext i32 %493 to i64
  %495 = getelementptr inbounds [4 x ptr], ptr %492, i64 0, i64 %494
  %496 = load ptr, ptr %495, align 8, !tbaa !5
  %497 = load i32, ptr %9, align 4, !tbaa !14
  %498 = sext i32 %497 to i64
  %499 = getelementptr inbounds ptr, ptr %496, i64 %498
  %500 = load ptr, ptr %499, align 8, !tbaa !5
  %501 = load i32, ptr %10, align 4, !tbaa !14
  %502 = add nsw i32 %501, 10
  %503 = sext i32 %502 to i64
  %504 = getelementptr inbounds i8, ptr %500, i64 %503
  %505 = load i8, ptr %504, align 1, !tbaa !16
  %506 = zext i8 %505 to i32
  %507 = sub nsw i32 255, %506
  %508 = trunc i32 %507 to i8
  %509 = load ptr, ptr %4, align 8, !tbaa !5
  %510 = getelementptr inbounds %struct.MImage, ptr %509, i32 0, i32 3
  %511 = load i32, ptr %8, align 4, !tbaa !14
  %512 = sext i32 %511 to i64
  %513 = getelementptr inbounds [4 x ptr], ptr %510, i64 0, i64 %512
  %514 = load ptr, ptr %513, align 8, !tbaa !5
  %515 = load i32, ptr %9, align 4, !tbaa !14
  %516 = sext i32 %515 to i64
  %517 = getelementptr inbounds ptr, ptr %514, i64 %516
  %518 = load ptr, ptr %517, align 8, !tbaa !5
  %519 = load i32, ptr %10, align 4, !tbaa !14
  %520 = add nsw i32 %519, 10
  %521 = sext i32 %520 to i64
  %522 = getelementptr inbounds i8, ptr %518, i64 %521
  store i8 %508, ptr %522, align 1, !tbaa !16
  %523 = load ptr, ptr %3, align 8, !tbaa !5
  %524 = getelementptr inbounds %struct.MImage, ptr %523, i32 0, i32 3
  %525 = load i32, ptr %8, align 4, !tbaa !14
  %526 = sext i32 %525 to i64
  %527 = getelementptr inbounds [4 x ptr], ptr %524, i64 0, i64 %526
  %528 = load ptr, ptr %527, align 8, !tbaa !5
  %529 = load i32, ptr %9, align 4, !tbaa !14
  %530 = sext i32 %529 to i64
  %531 = getelementptr inbounds ptr, ptr %528, i64 %530
  %532 = load ptr, ptr %531, align 8, !tbaa !5
  %533 = load i32, ptr %10, align 4, !tbaa !14
  %534 = add nsw i32 %533, 11
  %535 = sext i32 %534 to i64
  %536 = getelementptr inbounds i8, ptr %532, i64 %535
  %537 = load i8, ptr %536, align 1, !tbaa !16
  %538 = zext i8 %537 to i32
  %539 = sub nsw i32 255, %538
  %540 = trunc i32 %539 to i8
  %541 = load ptr, ptr %4, align 8, !tbaa !5
  %542 = getelementptr inbounds %struct.MImage, ptr %541, i32 0, i32 3
  %543 = load i32, ptr %8, align 4, !tbaa !14
  %544 = sext i32 %543 to i64
  %545 = getelementptr inbounds [4 x ptr], ptr %542, i64 0, i64 %544
  %546 = load ptr, ptr %545, align 8, !tbaa !5
  %547 = load i32, ptr %9, 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 %10, align 4, !tbaa !14
  %552 = add nsw i32 %551, 11
  %553 = sext i32 %552 to i64
  %554 = getelementptr inbounds i8, ptr %550, i64 %553
  store i8 %540, ptr %554, align 1, !tbaa !16
  %555 = load ptr, ptr %3, align 8, !tbaa !5
  %556 = getelementptr inbounds %struct.MImage, ptr %555, i32 0, i32 3
  %557 = load i32, ptr %8, align 4, !tbaa !14
  %558 = sext i32 %557 to i64
  %559 = getelementptr inbounds [4 x ptr], ptr %556, i64 0, i64 %558
  %560 = load ptr, ptr %559, align 8, !tbaa !5
  %561 = load i32, ptr %9, 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 %10, align 4, !tbaa !14
  %566 = add nsw i32 %565, 12
  %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 = sub nsw i32 255, %570
  %572 = trunc i32 %571 to i8
  %573 = load ptr, ptr %4, align 8, !tbaa !5
  %574 = getelementptr inbounds %struct.MImage, ptr %573, i32 0, i32 3
  %575 = load i32, ptr %8, align 4, !tbaa !14
  %576 = sext i32 %575 to i64
  %577 = getelementptr inbounds [4 x ptr], ptr %574, i64 0, i64 %576
  %578 = load ptr, ptr %577, align 8, !tbaa !5
  %579 = load i32, ptr %9, align 4, !tbaa !14
  %580 = sext i32 %579 to i64
  %581 = getelementptr inbounds ptr, ptr %578, i64 %580
  %582 = load ptr, ptr %581, align 8, !tbaa !5
  %583 = load i32, ptr %10, align 4, !tbaa !14
  %584 = add nsw i32 %583, 12
  %585 = sext i32 %584 to i64
  %586 = getelementptr inbounds i8, ptr %582, i64 %585
  store i8 %572, ptr %586, align 1, !tbaa !16
  %587 = load ptr, ptr %3, align 8, !tbaa !5
  %588 = getelementptr inbounds %struct.MImage, ptr %587, i32 0, i32 3
  %589 = load i32, ptr %8, 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 %9, 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 %10, align 4, !tbaa !14
  %598 = add nsw i32 %597, 13
  %599 = sext i32 %598 to i64
  %600 = getelementptr inbounds i8, ptr %596, i64 %599
  %601 = load i8, ptr %600, align 1, !tbaa !16
  %602 = zext i8 %601 to i32
  %603 = sub nsw i32 255, %602
  %604 = trunc i32 %603 to i8
  %605 = load ptr, ptr %4, align 8, !tbaa !5
  %606 = getelementptr inbounds %struct.MImage, ptr %605, i32 0, i32 3
  %607 = load i32, ptr %8, align 4, !tbaa !14
  %608 = sext i32 %607 to i64
  %609 = getelementptr inbounds [4 x ptr], ptr %606, i64 0, i64 %608
  %610 = load ptr, ptr %609, align 8, !tbaa !5
  %611 = load i32, ptr %9, align 4, !tbaa !14
  %612 = sext i32 %611 to i64
  %613 = getelementptr inbounds ptr, ptr %610, i64 %612
  %614 = load ptr, ptr %613, align 8, !tbaa !5
  %615 = load i32, ptr %10, align 4, !tbaa !14
  %616 = add nsw i32 %615, 13
  %617 = sext i32 %616 to i64
  %618 = getelementptr inbounds i8, ptr %614, i64 %617
  store i8 %604, ptr %618, align 1, !tbaa !16
  %619 = load ptr, ptr %3, align 8, !tbaa !5
  %620 = getelementptr inbounds %struct.MImage, ptr %619, i32 0, i32 3
  %621 = load i32, ptr %8, align 4, !tbaa !14
  %622 = sext i32 %621 to i64
  %623 = getelementptr inbounds [4 x ptr], ptr %620, i64 0, i64 %622
  %624 = load ptr, ptr %623, align 8, !tbaa !5
  %625 = load i32, ptr %9, align 4, !tbaa !14
  %626 = sext i32 %625 to i64
  %627 = getelementptr inbounds ptr, ptr %624, i64 %626
  %628 = load ptr, ptr %627, align 8, !tbaa !5
  %629 = load i32, ptr %10, align 4, !tbaa !14
  %630 = add nsw i32 %629, 14
  %631 = sext i32 %630 to i64
  %632 = getelementptr inbounds i8, ptr %628, i64 %631
  %633 = load i8, ptr %632, align 1, !tbaa !16
  %634 = zext i8 %633 to i32
  %635 = sub nsw i32 255, %634
  %636 = trunc i32 %635 to i8
  %637 = load ptr, ptr %4, align 8, !tbaa !5
  %638 = getelementptr inbounds %struct.MImage, ptr %637, i32 0, i32 3
  %639 = load i32, ptr %8, align 4, !tbaa !14
  %640 = sext i32 %639 to i64
  %641 = getelementptr inbounds [4 x ptr], ptr %638, i64 0, i64 %640
  %642 = load ptr, ptr %641, align 8, !tbaa !5
  %643 = load i32, ptr %9, align 4, !tbaa !14
  %644 = sext i32 %643 to i64
  %645 = getelementptr inbounds ptr, ptr %642, i64 %644
  %646 = load ptr, ptr %645, align 8, !tbaa !5
  %647 = load i32, ptr %10, align 4, !tbaa !14
  %648 = add nsw i32 %647, 14
  %649 = sext i32 %648 to i64
  %650 = getelementptr inbounds i8, ptr %646, i64 %649
  store i8 %636, ptr %650, align 1, !tbaa !16
  %651 = load ptr, ptr %3, align 8, !tbaa !5
  %652 = getelementptr inbounds %struct.MImage, ptr %651, i32 0, i32 3
  %653 = load i32, ptr %8, align 4, !tbaa !14
  %654 = sext i32 %653 to i64
  %655 = getelementptr inbounds [4 x ptr], ptr %652, i64 0, i64 %654
  %656 = load ptr, ptr %655, align 8, !tbaa !5
  %657 = load i32, ptr %9, align 4, !tbaa !14
  %658 = sext i32 %657 to i64
  %659 = getelementptr inbounds ptr, ptr %656, i64 %658
  %660 = load ptr, ptr %659, align 8, !tbaa !5
  %661 = load i32, ptr %10, align 4, !tbaa !14
  %662 = add nsw i32 %661, 15
  %663 = sext i32 %662 to i64
  %664 = getelementptr inbounds i8, ptr %660, i64 %663
  %665 = load i8, ptr %664, align 1, !tbaa !16
  %666 = zext i8 %665 to i32
  %667 = sub nsw i32 255, %666
  %668 = trunc i32 %667 to i8
  %669 = load ptr, ptr %4, align 8, !tbaa !5
  %670 = getelementptr inbounds %struct.MImage, ptr %669, i32 0, i32 3
  %671 = load i32, ptr %8, align 4, !tbaa !14
  %672 = sext i32 %671 to i64
  %673 = getelementptr inbounds [4 x ptr], ptr %670, i64 0, i64 %672
  %674 = load ptr, ptr %673, align 8, !tbaa !5
  %675 = load i32, ptr %9, align 4, !tbaa !14
  %676 = sext i32 %675 to i64
  %677 = getelementptr inbounds ptr, ptr %674, i64 %676
  %678 = load ptr, ptr %677, align 8, !tbaa !5
  %679 = load i32, ptr %10, align 4, !tbaa !14
  %680 = add nsw i32 %679, 15
  %681 = sext i32 %680 to i64
  %682 = getelementptr inbounds i8, ptr %678, i64 %681
  store i8 %668, ptr %682, align 1, !tbaa !16
  br label %683

683:                                              ; preds = %170
  %684 = load i32, ptr %10, align 4, !tbaa !14
  %685 = add nsw i32 %684, 16
  store i32 %685, ptr %10, align 4, !tbaa !14
  br label %163, !llvm.loop !17

686:                                              ; preds = %163
  %687 = load ptr, ptr %4, align 8, !tbaa !5
  %688 = getelementptr inbounds %struct.MImage, ptr %687, i32 0, i32 2
  %689 = load i32, ptr %688, align 8, !tbaa !13
  %690 = load i32, ptr %10, align 4, !tbaa !14
  %691 = sub nsw i32 %689, %690
  %692 = icmp eq i32 %691, 0
  br i1 %692, label %693, label %694

693:                                              ; preds = %686
  br label %4669

694:                                              ; preds = %686
  %695 = load ptr, ptr %4, align 8, !tbaa !5
  %696 = getelementptr inbounds %struct.MImage, ptr %695, i32 0, i32 2
  %697 = load i32, ptr %696, align 8, !tbaa !13
  %698 = load i32, ptr %10, align 4, !tbaa !14
  %699 = sub nsw i32 %697, %698
  %700 = icmp eq i32 %699, 1
  br i1 %700, label %701, label %734

701:                                              ; preds = %694
  %702 = load ptr, ptr %3, align 8, !tbaa !5
  %703 = getelementptr inbounds %struct.MImage, ptr %702, i32 0, i32 3
  %704 = load i32, ptr %8, align 4, !tbaa !14
  %705 = sext i32 %704 to i64
  %706 = getelementptr inbounds [4 x ptr], ptr %703, i64 0, i64 %705
  %707 = load ptr, ptr %706, align 8, !tbaa !5
  %708 = load i32, ptr %9, align 4, !tbaa !14
  %709 = sext i32 %708 to i64
  %710 = getelementptr inbounds ptr, ptr %707, i64 %709
  %711 = load ptr, ptr %710, align 8, !tbaa !5
  %712 = load i32, ptr %10, align 4, !tbaa !14
  %713 = add nsw i32 %712, 0
  %714 = sext i32 %713 to i64
  %715 = getelementptr inbounds i8, ptr %711, i64 %714
  %716 = load i8, ptr %715, align 1, !tbaa !16
  %717 = zext i8 %716 to i32
  %718 = sub nsw i32 255, %717
  %719 = trunc i32 %718 to i8
  %720 = load ptr, ptr %4, align 8, !tbaa !5
  %721 = getelementptr inbounds %struct.MImage, ptr %720, i32 0, i32 3
  %722 = load i32, ptr %8, align 4, !tbaa !14
  %723 = sext i32 %722 to i64
  %724 = getelementptr inbounds [4 x ptr], ptr %721, i64 0, i64 %723
  %725 = load ptr, ptr %724, align 8, !tbaa !5
  %726 = load i32, ptr %9, align 4, !tbaa !14
  %727 = sext i32 %726 to i64
  %728 = getelementptr inbounds ptr, ptr %725, i64 %727
  %729 = load ptr, ptr %728, align 8, !tbaa !5
  %730 = load i32, ptr %10, align 4, !tbaa !14
  %731 = add nsw i32 %730, 0
  %732 = sext i32 %731 to i64
  %733 = getelementptr inbounds i8, ptr %729, i64 %732
  store i8 %719, ptr %733, align 1, !tbaa !16
  br label %4668

734:                                              ; preds = %694
  %735 = load ptr, ptr %4, align 8, !tbaa !5
  %736 = getelementptr inbounds %struct.MImage, ptr %735, i32 0, i32 2
  %737 = load i32, ptr %736, align 8, !tbaa !13
  %738 = load i32, ptr %10, align 4, !tbaa !14
  %739 = sub nsw i32 %737, %738
  %740 = icmp eq i32 %739, 2
  br i1 %740, label %741, label %806

741:                                              ; preds = %734
  %742 = load ptr, ptr %3, align 8, !tbaa !5
  %743 = getelementptr inbounds %struct.MImage, ptr %742, i32 0, i32 3
  %744 = load i32, ptr %8, align 4, !tbaa !14
  %745 = sext i32 %744 to i64
  %746 = getelementptr inbounds [4 x ptr], ptr %743, i64 0, i64 %745
  %747 = load ptr, ptr %746, align 8, !tbaa !5
  %748 = load i32, ptr %9, align 4, !tbaa !14
  %749 = sext i32 %748 to i64
  %750 = getelementptr inbounds ptr, ptr %747, i64 %749
  %751 = load ptr, ptr %750, align 8, !tbaa !5
  %752 = load i32, ptr %10, align 4, !tbaa !14
  %753 = add nsw i32 %752, 0
  %754 = sext i32 %753 to i64
  %755 = getelementptr inbounds i8, ptr %751, i64 %754
  %756 = load i8, ptr %755, align 1, !tbaa !16
  %757 = zext i8 %756 to i32
  %758 = sub nsw i32 255, %757
  %759 = trunc i32 %758 to i8
  %760 = load ptr, ptr %4, align 8, !tbaa !5
  %761 = getelementptr inbounds %struct.MImage, ptr %760, i32 0, i32 3
  %762 = load i32, ptr %8, align 4, !tbaa !14
  %763 = sext i32 %762 to i64
  %764 = getelementptr inbounds [4 x ptr], ptr %761, i64 0, i64 %763
  %765 = load ptr, ptr %764, align 8, !tbaa !5
  %766 = load i32, ptr %9, align 4, !tbaa !14
  %767 = sext i32 %766 to i64
  %768 = getelementptr inbounds ptr, ptr %765, i64 %767
  %769 = load ptr, ptr %768, align 8, !tbaa !5
  %770 = load i32, ptr %10, align 4, !tbaa !14
  %771 = add nsw i32 %770, 0
  %772 = sext i32 %771 to i64
  %773 = getelementptr inbounds i8, ptr %769, i64 %772
  store i8 %759, ptr %773, align 1, !tbaa !16
  %774 = load ptr, ptr %3, align 8, !tbaa !5
  %775 = getelementptr inbounds %struct.MImage, ptr %774, i32 0, i32 3
  %776 = load i32, ptr %8, align 4, !tbaa !14
  %777 = sext i32 %776 to i64
  %778 = getelementptr inbounds [4 x ptr], ptr %775, i64 0, i64 %777
  %779 = load ptr, ptr %778, align 8, !tbaa !5
  %780 = load i32, ptr %9, align 4, !tbaa !14
  %781 = sext i32 %780 to i64
  %782 = getelementptr inbounds ptr, ptr %779, i64 %781
  %783 = load ptr, ptr %782, align 8, !tbaa !5
  %784 = load i32, ptr %10, align 4, !tbaa !14
  %785 = add nsw i32 %784, 1
  %786 = sext i32 %785 to i64
  %787 = getelementptr inbounds i8, ptr %783, i64 %786
  %788 = load i8, ptr %787, align 1, !tbaa !16
  %789 = zext i8 %788 to i32
  %790 = sub nsw i32 255, %789
  %791 = trunc i32 %790 to i8
  %792 = load ptr, ptr %4, align 8, !tbaa !5
  %793 = getelementptr inbounds %struct.MImage, ptr %792, i32 0, i32 3
  %794 = load i32, ptr %8, align 4, !tbaa !14
  %795 = sext i32 %794 to i64
  %796 = getelementptr inbounds [4 x ptr], ptr %793, i64 0, i64 %795
  %797 = load ptr, ptr %796, align 8, !tbaa !5
  %798 = load i32, ptr %9, align 4, !tbaa !14
  %799 = sext i32 %798 to i64
  %800 = getelementptr inbounds ptr, ptr %797, i64 %799
  %801 = load ptr, ptr %800, align 8, !tbaa !5
  %802 = load i32, ptr %10, align 4, !tbaa !14
  %803 = add nsw i32 %802, 1
  %804 = sext i32 %803 to i64
  %805 = getelementptr inbounds i8, ptr %801, i64 %804
  store i8 %791, ptr %805, align 1, !tbaa !16
  br label %4667

806:                                              ; preds = %734
  %807 = load ptr, ptr %4, align 8, !tbaa !5
  %808 = getelementptr inbounds %struct.MImage, ptr %807, i32 0, i32 2
  %809 = load i32, ptr %808, align 8, !tbaa !13
  %810 = load i32, ptr %10, align 4, !tbaa !14
  %811 = sub nsw i32 %809, %810
  %812 = icmp eq i32 %811, 3
  br i1 %812, label %813, label %910

813:                                              ; preds = %806
  %814 = load ptr, ptr %3, align 8, !tbaa !5
  %815 = getelementptr inbounds %struct.MImage, ptr %814, i32 0, i32 3
  %816 = load i32, ptr %8, align 4, !tbaa !14
  %817 = sext i32 %816 to i64
  %818 = getelementptr inbounds [4 x ptr], ptr %815, i64 0, i64 %817
  %819 = load ptr, ptr %818, align 8, !tbaa !5
  %820 = load i32, ptr %9, align 4, !tbaa !14
  %821 = sext i32 %820 to i64
  %822 = getelementptr inbounds ptr, ptr %819, i64 %821
  %823 = load ptr, ptr %822, align 8, !tbaa !5
  %824 = load i32, ptr %10, align 4, !tbaa !14
  %825 = add nsw i32 %824, 0
  %826 = sext i32 %825 to i64
  %827 = getelementptr inbounds i8, ptr %823, i64 %826
  %828 = load i8, ptr %827, align 1, !tbaa !16
  %829 = zext i8 %828 to i32
  %830 = sub nsw i32 255, %829
  %831 = trunc i32 %830 to i8
  %832 = load ptr, ptr %4, align 8, !tbaa !5
  %833 = getelementptr inbounds %struct.MImage, ptr %832, i32 0, i32 3
  %834 = load i32, ptr %8, align 4, !tbaa !14
  %835 = sext i32 %834 to i64
  %836 = getelementptr inbounds [4 x ptr], ptr %833, i64 0, i64 %835
  %837 = load ptr, ptr %836, align 8, !tbaa !5
  %838 = load i32, ptr %9, align 4, !tbaa !14
  %839 = sext i32 %838 to i64
  %840 = getelementptr inbounds ptr, ptr %837, i64 %839
  %841 = load ptr, ptr %840, align 8, !tbaa !5
  %842 = load i32, ptr %10, align 4, !tbaa !14
  %843 = add nsw i32 %842, 0
  %844 = sext i32 %843 to i64
  %845 = getelementptr inbounds i8, ptr %841, i64 %844
  store i8 %831, ptr %845, align 1, !tbaa !16
  %846 = load ptr, ptr %3, align 8, !tbaa !5
  %847 = getelementptr inbounds %struct.MImage, ptr %846, i32 0, i32 3
  %848 = load i32, ptr %8, align 4, !tbaa !14
  %849 = sext i32 %848 to i64
  %850 = getelementptr inbounds [4 x ptr], ptr %847, i64 0, i64 %849
  %851 = load ptr, ptr %850, align 8, !tbaa !5
  %852 = load i32, ptr %9, align 4, !tbaa !14
  %853 = sext i32 %852 to i64
  %854 = getelementptr inbounds ptr, ptr %851, i64 %853
  %855 = load ptr, ptr %854, align 8, !tbaa !5
  %856 = load i32, ptr %10, align 4, !tbaa !14
  %857 = add nsw i32 %856, 1
  %858 = sext i32 %857 to i64
  %859 = getelementptr inbounds i8, ptr %855, i64 %858
  %860 = load i8, ptr %859, align 1, !tbaa !16
  %861 = zext i8 %860 to i32
  %862 = sub nsw i32 255, %861
  %863 = trunc i32 %862 to i8
  %864 = load ptr, ptr %4, align 8, !tbaa !5
  %865 = getelementptr inbounds %struct.MImage, ptr %864, i32 0, i32 3
  %866 = load i32, ptr %8, align 4, !tbaa !14
  %867 = sext i32 %866 to i64
  %868 = getelementptr inbounds [4 x ptr], ptr %865, i64 0, i64 %867
  %869 = load ptr, ptr %868, align 8, !tbaa !5
  %870 = load i32, ptr %9, align 4, !tbaa !14
  %871 = sext i32 %870 to i64
  %872 = getelementptr inbounds ptr, ptr %869, i64 %871
  %873 = load ptr, ptr %872, align 8, !tbaa !5
  %874 = load i32, ptr %10, align 4, !tbaa !14
  %875 = add nsw i32 %874, 1
  %876 = sext i32 %875 to i64
  %877 = getelementptr inbounds i8, ptr %873, i64 %876
  store i8 %863, ptr %877, align 1, !tbaa !16
  %878 = load ptr, ptr %3, align 8, !tbaa !5
  %879 = getelementptr inbounds %struct.MImage, ptr %878, i32 0, i32 3
  %880 = load i32, ptr %8, align 4, !tbaa !14
  %881 = sext i32 %880 to i64
  %882 = getelementptr inbounds [4 x ptr], ptr %879, i64 0, i64 %881
  %883 = load ptr, ptr %882, align 8, !tbaa !5
  %884 = load i32, ptr %9, align 4, !tbaa !14
  %885 = sext i32 %884 to i64
  %886 = getelementptr inbounds ptr, ptr %883, i64 %885
  %887 = load ptr, ptr %886, align 8, !tbaa !5
  %888 = load i32, ptr %10, align 4, !tbaa !14
  %889 = add nsw i32 %888, 2
  %890 = sext i32 %889 to i64
  %891 = getelementptr inbounds i8, ptr %887, i64 %890
  %892 = load i8, ptr %891, align 1, !tbaa !16
  %893 = zext i8 %892 to i32
  %894 = sub nsw i32 255, %893
  %895 = trunc i32 %894 to i8
  %896 = load ptr, ptr %4, align 8, !tbaa !5
  %897 = getelementptr inbounds %struct.MImage, ptr %896, i32 0, i32 3
  %898 = load i32, ptr %8, align 4, !tbaa !14
  %899 = sext i32 %898 to i64
  %900 = getelementptr inbounds [4 x ptr], ptr %897, i64 0, i64 %899
  %901 = load ptr, ptr %900, align 8, !tbaa !5
  %902 = load i32, ptr %9, 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 %10, align 4, !tbaa !14
  %907 = add nsw i32 %906, 2
  %908 = sext i32 %907 to i64
  %909 = getelementptr inbounds i8, ptr %905, i64 %908
  store i8 %895, ptr %909, align 1, !tbaa !16
  br label %4666

910:                                              ; preds = %806
  %911 = load ptr, ptr %4, align 8, !tbaa !5
  %912 = getelementptr inbounds %struct.MImage, ptr %911, i32 0, i32 2
  %913 = load i32, ptr %912, align 8, !tbaa !13
  %914 = load i32, ptr %10, align 4, !tbaa !14
  %915 = sub nsw i32 %913, %914
  %916 = icmp eq i32 %915, 4
  br i1 %916, label %917, label %1046

917:                                              ; preds = %910
  %918 = load ptr, ptr %3, align 8, !tbaa !5
  %919 = getelementptr inbounds %struct.MImage, ptr %918, i32 0, i32 3
  %920 = load i32, ptr %8, align 4, !tbaa !14
  %921 = sext i32 %920 to i64
  %922 = getelementptr inbounds [4 x ptr], ptr %919, i64 0, i64 %921
  %923 = load ptr, ptr %922, align 8, !tbaa !5
  %924 = load i32, ptr %9, align 4, !tbaa !14
  %925 = sext i32 %924 to i64
  %926 = getelementptr inbounds ptr, ptr %923, i64 %925
  %927 = load ptr, ptr %926, align 8, !tbaa !5
  %928 = load i32, ptr %10, align 4, !tbaa !14
  %929 = add nsw i32 %928, 0
  %930 = sext i32 %929 to i64
  %931 = getelementptr inbounds i8, ptr %927, i64 %930
  %932 = load i8, ptr %931, align 1, !tbaa !16
  %933 = zext i8 %932 to i32
  %934 = sub nsw i32 255, %933
  %935 = trunc i32 %934 to i8
  %936 = load ptr, ptr %4, align 8, !tbaa !5
  %937 = getelementptr inbounds %struct.MImage, ptr %936, i32 0, i32 3
  %938 = load i32, ptr %8, align 4, !tbaa !14
  %939 = sext i32 %938 to i64
  %940 = getelementptr inbounds [4 x ptr], ptr %937, i64 0, i64 %939
  %941 = load ptr, ptr %940, align 8, !tbaa !5
  %942 = load i32, ptr %9, align 4, !tbaa !14
  %943 = sext i32 %942 to i64
  %944 = getelementptr inbounds ptr, ptr %941, i64 %943
  %945 = load ptr, ptr %944, align 8, !tbaa !5
  %946 = load i32, ptr %10, align 4, !tbaa !14
  %947 = add nsw i32 %946, 0
  %948 = sext i32 %947 to i64
  %949 = getelementptr inbounds i8, ptr %945, i64 %948
  store i8 %935, ptr %949, align 1, !tbaa !16
  %950 = load ptr, ptr %3, align 8, !tbaa !5
  %951 = getelementptr inbounds %struct.MImage, ptr %950, i32 0, i32 3
  %952 = load i32, ptr %8, align 4, !tbaa !14
  %953 = sext i32 %952 to i64
  %954 = getelementptr inbounds [4 x ptr], ptr %951, i64 0, i64 %953
  %955 = load ptr, ptr %954, align 8, !tbaa !5
  %956 = load i32, ptr %9, align 4, !tbaa !14
  %957 = sext i32 %956 to i64
  %958 = getelementptr inbounds ptr, ptr %955, i64 %957
  %959 = load ptr, ptr %958, align 8, !tbaa !5
  %960 = load i32, ptr %10, align 4, !tbaa !14
  %961 = add nsw i32 %960, 1
  %962 = sext i32 %961 to i64
  %963 = getelementptr inbounds i8, ptr %959, i64 %962
  %964 = load i8, ptr %963, align 1, !tbaa !16
  %965 = zext i8 %964 to i32
  %966 = sub nsw i32 255, %965
  %967 = trunc i32 %966 to i8
  %968 = load ptr, ptr %4, align 8, !tbaa !5
  %969 = getelementptr inbounds %struct.MImage, ptr %968, i32 0, i32 3
  %970 = load i32, ptr %8, align 4, !tbaa !14
  %971 = sext i32 %970 to i64
  %972 = getelementptr inbounds [4 x ptr], ptr %969, i64 0, i64 %971
  %973 = load ptr, ptr %972, align 8, !tbaa !5
  %974 = load i32, ptr %9, align 4, !tbaa !14
  %975 = sext i32 %974 to i64
  %976 = getelementptr inbounds ptr, ptr %973, i64 %975
  %977 = load ptr, ptr %976, align 8, !tbaa !5
  %978 = load i32, ptr %10, align 4, !tbaa !14
  %979 = add nsw i32 %978, 1
  %980 = sext i32 %979 to i64
  %981 = getelementptr inbounds i8, ptr %977, i64 %980
  store i8 %967, ptr %981, align 1, !tbaa !16
  %982 = load ptr, ptr %3, align 8, !tbaa !5
  %983 = getelementptr inbounds %struct.MImage, ptr %982, i32 0, i32 3
  %984 = load i32, ptr %8, align 4, !tbaa !14
  %985 = sext i32 %984 to i64
  %986 = getelementptr inbounds [4 x ptr], ptr %983, i64 0, i64 %985
  %987 = load ptr, ptr %986, align 8, !tbaa !5
  %988 = load i32, ptr %9, align 4, !tbaa !14
  %989 = sext i32 %988 to i64
  %990 = getelementptr inbounds ptr, ptr %987, i64 %989
  %991 = load ptr, ptr %990, align 8, !tbaa !5
  %992 = load i32, ptr %10, align 4, !tbaa !14
  %993 = add nsw i32 %992, 2
  %994 = sext i32 %993 to i64
  %995 = getelementptr inbounds i8, ptr %991, i64 %994
  %996 = load i8, ptr %995, align 1, !tbaa !16
  %997 = zext i8 %996 to i32
  %998 = sub nsw i32 255, %997
  %999 = trunc i32 %998 to i8
  %1000 = load ptr, ptr %4, align 8, !tbaa !5
  %1001 = getelementptr inbounds %struct.MImage, ptr %1000, i32 0, i32 3
  %1002 = load i32, ptr %8, align 4, !tbaa !14
  %1003 = sext i32 %1002 to i64
  %1004 = getelementptr inbounds [4 x ptr], ptr %1001, i64 0, i64 %1003
  %1005 = load ptr, ptr %1004, align 8, !tbaa !5
  %1006 = load i32, ptr %9, align 4, !tbaa !14
  %1007 = sext i32 %1006 to i64
  %1008 = getelementptr inbounds ptr, ptr %1005, i64 %1007
  %1009 = load ptr, ptr %1008, align 8, !tbaa !5
  %1010 = load i32, ptr %10, align 4, !tbaa !14
  %1011 = add nsw i32 %1010, 2
  %1012 = sext i32 %1011 to i64
  %1013 = getelementptr inbounds i8, ptr %1009, i64 %1012
  store i8 %999, ptr %1013, align 1, !tbaa !16
  %1014 = load ptr, ptr %3, align 8, !tbaa !5
  %1015 = getelementptr inbounds %struct.MImage, ptr %1014, i32 0, i32 3
  %1016 = load i32, ptr %8, align 4, !tbaa !14
  %1017 = sext i32 %1016 to i64
  %1018 = getelementptr inbounds [4 x ptr], ptr %1015, i64 0, i64 %1017
  %1019 = load ptr, ptr %1018, align 8, !tbaa !5
  %1020 = load i32, ptr %9, align 4, !tbaa !14
  %1021 = sext i32 %1020 to i64
  %1022 = getelementptr inbounds ptr, ptr %1019, i64 %1021
  %1023 = load ptr, ptr %1022, align 8, !tbaa !5
  %1024 = load i32, ptr %10, align 4, !tbaa !14
  %1025 = add nsw i32 %1024, 3
  %1026 = sext i32 %1025 to i64
  %1027 = getelementptr inbounds i8, ptr %1023, i64 %1026
  %1028 = load i8, ptr %1027, align 1, !tbaa !16
  %1029 = zext i8 %1028 to i32
  %1030 = sub nsw i32 255, %1029
  %1031 = trunc i32 %1030 to i8
  %1032 = load ptr, ptr %4, align 8, !tbaa !5
  %1033 = getelementptr inbounds %struct.MImage, ptr %1032, i32 0, i32 3
  %1034 = load i32, ptr %8, align 4, !tbaa !14
  %1035 = sext i32 %1034 to i64
  %1036 = getelementptr inbounds [4 x ptr], ptr %1033, i64 0, i64 %1035
  %1037 = load ptr, ptr %1036, align 8, !tbaa !5
  %1038 = load i32, ptr %9, align 4, !tbaa !14
  %1039 = sext i32 %1038 to i64
  %1040 = getelementptr inbounds ptr, ptr %1037, i64 %1039
  %1041 = load ptr, ptr %1040, align 8, !tbaa !5
  %1042 = load i32, ptr %10, align 4, !tbaa !14
  %1043 = add nsw i32 %1042, 3
  %1044 = sext i32 %1043 to i64
  %1045 = getelementptr inbounds i8, ptr %1041, i64 %1044
  store i8 %1031, ptr %1045, align 1, !tbaa !16
  br label %4665

1046:                                             ; preds = %910
  %1047 = load ptr, ptr %4, align 8, !tbaa !5
  %1048 = getelementptr inbounds %struct.MImage, ptr %1047, i32 0, i32 2
  %1049 = load i32, ptr %1048, align 8, !tbaa !13
  %1050 = load i32, ptr %10, align 4, !tbaa !14
  %1051 = sub nsw i32 %1049, %1050
  %1052 = icmp eq i32 %1051, 5
  br i1 %1052, label %1053, label %1214

1053:                                             ; preds = %1046
  %1054 = load ptr, ptr %3, align 8, !tbaa !5
  %1055 = getelementptr inbounds %struct.MImage, ptr %1054, i32 0, i32 3
  %1056 = load i32, ptr %8, align 4, !tbaa !14
  %1057 = sext i32 %1056 to i64
  %1058 = getelementptr inbounds [4 x ptr], ptr %1055, i64 0, i64 %1057
  %1059 = load ptr, ptr %1058, align 8, !tbaa !5
  %1060 = load i32, ptr %9, align 4, !tbaa !14
  %1061 = sext i32 %1060 to i64
  %1062 = getelementptr inbounds ptr, ptr %1059, i64 %1061
  %1063 = load ptr, ptr %1062, align 8, !tbaa !5
  %1064 = load i32, ptr %10, align 4, !tbaa !14
  %1065 = add nsw i32 %1064, 0
  %1066 = sext i32 %1065 to i64
  %1067 = getelementptr inbounds i8, ptr %1063, i64 %1066
  %1068 = load i8, ptr %1067, align 1, !tbaa !16
  %1069 = zext i8 %1068 to i32
  %1070 = sub nsw i32 255, %1069
  %1071 = trunc i32 %1070 to i8
  %1072 = load ptr, ptr %4, align 8, !tbaa !5
  %1073 = getelementptr inbounds %struct.MImage, ptr %1072, i32 0, i32 3
  %1074 = load i32, ptr %8, align 4, !tbaa !14
  %1075 = sext i32 %1074 to i64
  %1076 = getelementptr inbounds [4 x ptr], ptr %1073, i64 0, i64 %1075
  %1077 = load ptr, ptr %1076, align 8, !tbaa !5
  %1078 = load i32, ptr %9, align 4, !tbaa !14
  %1079 = sext i32 %1078 to i64
  %1080 = getelementptr inbounds ptr, ptr %1077, i64 %1079
  %1081 = load ptr, ptr %1080, align 8, !tbaa !5
  %1082 = load i32, ptr %10, align 4, !tbaa !14
  %1083 = add nsw i32 %1082, 0
  %1084 = sext i32 %1083 to i64
  %1085 = getelementptr inbounds i8, ptr %1081, i64 %1084
  store i8 %1071, ptr %1085, align 1, !tbaa !16
  %1086 = load ptr, ptr %3, align 8, !tbaa !5
  %1087 = getelementptr inbounds %struct.MImage, ptr %1086, i32 0, i32 3
  %1088 = load i32, ptr %8, align 4, !tbaa !14
  %1089 = sext i32 %1088 to i64
  %1090 = getelementptr inbounds [4 x ptr], ptr %1087, i64 0, i64 %1089
  %1091 = load ptr, ptr %1090, align 8, !tbaa !5
  %1092 = load i32, ptr %9, align 4, !tbaa !14
  %1093 = sext i32 %1092 to i64
  %1094 = getelementptr inbounds ptr, ptr %1091, i64 %1093
  %1095 = load ptr, ptr %1094, align 8, !tbaa !5
  %1096 = load i32, ptr %10, align 4, !tbaa !14
  %1097 = add nsw i32 %1096, 1
  %1098 = sext i32 %1097 to i64
  %1099 = getelementptr inbounds i8, ptr %1095, i64 %1098
  %1100 = load i8, ptr %1099, align 1, !tbaa !16
  %1101 = zext i8 %1100 to i32
  %1102 = sub nsw i32 255, %1101
  %1103 = trunc i32 %1102 to i8
  %1104 = load ptr, ptr %4, align 8, !tbaa !5
  %1105 = getelementptr inbounds %struct.MImage, ptr %1104, i32 0, i32 3
  %1106 = load i32, ptr %8, align 4, !tbaa !14
  %1107 = sext i32 %1106 to i64
  %1108 = getelementptr inbounds [4 x ptr], ptr %1105, i64 0, i64 %1107
  %1109 = load ptr, ptr %1108, align 8, !tbaa !5
  %1110 = load i32, ptr %9, align 4, !tbaa !14
  %1111 = sext i32 %1110 to i64
  %1112 = getelementptr inbounds ptr, ptr %1109, i64 %1111
  %1113 = load ptr, ptr %1112, align 8, !tbaa !5
  %1114 = load i32, ptr %10, align 4, !tbaa !14
  %1115 = add nsw i32 %1114, 1
  %1116 = sext i32 %1115 to i64
  %1117 = getelementptr inbounds i8, ptr %1113, i64 %1116
  store i8 %1103, ptr %1117, align 1, !tbaa !16
  %1118 = load ptr, ptr %3, align 8, !tbaa !5
  %1119 = getelementptr inbounds %struct.MImage, ptr %1118, i32 0, i32 3
  %1120 = load i32, ptr %8, align 4, !tbaa !14
  %1121 = sext i32 %1120 to i64
  %1122 = getelementptr inbounds [4 x ptr], ptr %1119, i64 0, i64 %1121
  %1123 = load ptr, ptr %1122, align 8, !tbaa !5
  %1124 = load i32, ptr %9, align 4, !tbaa !14
  %1125 = sext i32 %1124 to i64
  %1126 = getelementptr inbounds ptr, ptr %1123, i64 %1125
  %1127 = load ptr, ptr %1126, align 8, !tbaa !5
  %1128 = load i32, ptr %10, align 4, !tbaa !14
  %1129 = add nsw i32 %1128, 2
  %1130 = sext i32 %1129 to i64
  %1131 = getelementptr inbounds i8, ptr %1127, i64 %1130
  %1132 = load i8, ptr %1131, align 1, !tbaa !16
  %1133 = zext i8 %1132 to i32
  %1134 = sub nsw i32 255, %1133
  %1135 = trunc i32 %1134 to i8
  %1136 = load ptr, ptr %4, align 8, !tbaa !5
  %1137 = getelementptr inbounds %struct.MImage, ptr %1136, i32 0, i32 3
  %1138 = load i32, ptr %8, align 4, !tbaa !14
  %1139 = sext i32 %1138 to i64
  %1140 = getelementptr inbounds [4 x ptr], ptr %1137, i64 0, i64 %1139
  %1141 = load ptr, ptr %1140, align 8, !tbaa !5
  %1142 = load i32, ptr %9, align 4, !tbaa !14
  %1143 = sext i32 %1142 to i64
  %1144 = getelementptr inbounds ptr, ptr %1141, i64 %1143
  %1145 = load ptr, ptr %1144, align 8, !tbaa !5
  %1146 = load i32, ptr %10, align 4, !tbaa !14
  %1147 = add nsw i32 %1146, 2
  %1148 = sext i32 %1147 to i64
  %1149 = getelementptr inbounds i8, ptr %1145, i64 %1148
  store i8 %1135, ptr %1149, align 1, !tbaa !16
  %1150 = load ptr, ptr %3, align 8, !tbaa !5
  %1151 = getelementptr inbounds %struct.MImage, ptr %1150, i32 0, i32 3
  %1152 = load i32, ptr %8, align 4, !tbaa !14
  %1153 = sext i32 %1152 to i64
  %1154 = getelementptr inbounds [4 x ptr], ptr %1151, i64 0, i64 %1153
  %1155 = load ptr, ptr %1154, align 8, !tbaa !5
  %1156 = load i32, ptr %9, align 4, !tbaa !14
  %1157 = sext i32 %1156 to i64
  %1158 = getelementptr inbounds ptr, ptr %1155, i64 %1157
  %1159 = load ptr, ptr %1158, align 8, !tbaa !5
  %1160 = load i32, ptr %10, align 4, !tbaa !14
  %1161 = add nsw i32 %1160, 3
  %1162 = sext i32 %1161 to i64
  %1163 = getelementptr inbounds i8, ptr %1159, i64 %1162
  %1164 = load i8, ptr %1163, align 1, !tbaa !16
  %1165 = zext i8 %1164 to i32
  %1166 = sub nsw i32 255, %1165
  %1167 = trunc i32 %1166 to i8
  %1168 = load ptr, ptr %4, align 8, !tbaa !5
  %1169 = getelementptr inbounds %struct.MImage, ptr %1168, i32 0, i32 3
  %1170 = load i32, ptr %8, align 4, !tbaa !14
  %1171 = sext i32 %1170 to i64
  %1172 = getelementptr inbounds [4 x ptr], ptr %1169, i64 0, i64 %1171
  %1173 = load ptr, ptr %1172, align 8, !tbaa !5
  %1174 = load i32, ptr %9, align 4, !tbaa !14
  %1175 = sext i32 %1174 to i64
  %1176 = getelementptr inbounds ptr, ptr %1173, i64 %1175
  %1177 = load ptr, ptr %1176, align 8, !tbaa !5
  %1178 = load i32, ptr %10, align 4, !tbaa !14
  %1179 = add nsw i32 %1178, 3
  %1180 = sext i32 %1179 to i64
  %1181 = getelementptr inbounds i8, ptr %1177, i64 %1180
  store i8 %1167, ptr %1181, align 1, !tbaa !16
  %1182 = load ptr, ptr %3, align 8, !tbaa !5
  %1183 = getelementptr inbounds %struct.MImage, ptr %1182, i32 0, i32 3
  %1184 = load i32, ptr %8, align 4, !tbaa !14
  %1185 = sext i32 %1184 to i64
  %1186 = getelementptr inbounds [4 x ptr], ptr %1183, i64 0, i64 %1185
  %1187 = load ptr, ptr %1186, align 8, !tbaa !5
  %1188 = load i32, ptr %9, align 4, !tbaa !14
  %1189 = sext i32 %1188 to i64
  %1190 = getelementptr inbounds ptr, ptr %1187, i64 %1189
  %1191 = load ptr, ptr %1190, align 8, !tbaa !5
  %1192 = load i32, ptr %10, align 4, !tbaa !14
  %1193 = add nsw i32 %1192, 4
  %1194 = sext i32 %1193 to i64
  %1195 = getelementptr inbounds i8, ptr %1191, i64 %1194
  %1196 = load i8, ptr %1195, align 1, !tbaa !16
  %1197 = zext i8 %1196 to i32
  %1198 = sub nsw i32 255, %1197
  %1199 = trunc i32 %1198 to i8
  %1200 = load ptr, ptr %4, align 8, !tbaa !5
  %1201 = getelementptr inbounds %struct.MImage, ptr %1200, i32 0, i32 3
  %1202 = load i32, ptr %8, align 4, !tbaa !14
  %1203 = sext i32 %1202 to i64
  %1204 = getelementptr inbounds [4 x ptr], ptr %1201, i64 0, i64 %1203
  %1205 = load ptr, ptr %1204, align 8, !tbaa !5
  %1206 = load i32, ptr %9, align 4, !tbaa !14
  %1207 = sext i32 %1206 to i64
  %1208 = getelementptr inbounds ptr, ptr %1205, i64 %1207
  %1209 = load ptr, ptr %1208, align 8, !tbaa !5
  %1210 = load i32, ptr %10, align 4, !tbaa !14
  %1211 = add nsw i32 %1210, 4
  %1212 = sext i32 %1211 to i64
  %1213 = getelementptr inbounds i8, ptr %1209, i64 %1212
  store i8 %1199, ptr %1213, align 1, !tbaa !16
  br label %4664

1214:                                             ; preds = %1046
  %1215 = load ptr, ptr %4, align 8, !tbaa !5
  %1216 = getelementptr inbounds %struct.MImage, ptr %1215, i32 0, i32 2
  %1217 = load i32, ptr %1216, align 8, !tbaa !13
  %1218 = load i32, ptr %10, align 4, !tbaa !14
  %1219 = sub nsw i32 %1217, %1218
  %1220 = icmp eq i32 %1219, 6
  br i1 %1220, label %1221, label %1414

1221:                                             ; preds = %1214
  %1222 = load ptr, ptr %3, align 8, !tbaa !5
  %1223 = getelementptr inbounds %struct.MImage, ptr %1222, i32 0, i32 3
  %1224 = load i32, ptr %8, align 4, !tbaa !14
  %1225 = sext i32 %1224 to i64
  %1226 = getelementptr inbounds [4 x ptr], ptr %1223, i64 0, i64 %1225
  %1227 = load ptr, ptr %1226, align 8, !tbaa !5
  %1228 = load i32, ptr %9, align 4, !tbaa !14
  %1229 = sext i32 %1228 to i64
  %1230 = getelementptr inbounds ptr, ptr %1227, i64 %1229
  %1231 = load ptr, ptr %1230, align 8, !tbaa !5
  %1232 = load i32, ptr %10, align 4, !tbaa !14
  %1233 = add nsw i32 %1232, 0
  %1234 = sext i32 %1233 to i64
  %1235 = getelementptr inbounds i8, ptr %1231, i64 %1234
  %1236 = load i8, ptr %1235, align 1, !tbaa !16
  %1237 = zext i8 %1236 to i32
  %1238 = sub nsw i32 255, %1237
  %1239 = trunc i32 %1238 to i8
  %1240 = load ptr, ptr %4, align 8, !tbaa !5
  %1241 = getelementptr inbounds %struct.MImage, ptr %1240, i32 0, i32 3
  %1242 = load i32, ptr %8, align 4, !tbaa !14
  %1243 = sext i32 %1242 to i64
  %1244 = getelementptr inbounds [4 x ptr], ptr %1241, i64 0, i64 %1243
  %1245 = load ptr, ptr %1244, align 8, !tbaa !5
  %1246 = load i32, ptr %9, align 4, !tbaa !14
  %1247 = sext i32 %1246 to i64
  %1248 = getelementptr inbounds ptr, ptr %1245, i64 %1247
  %1249 = load ptr, ptr %1248, align 8, !tbaa !5
  %1250 = load i32, ptr %10, align 4, !tbaa !14
  %1251 = add nsw i32 %1250, 0
  %1252 = sext i32 %1251 to i64
  %1253 = getelementptr inbounds i8, ptr %1249, i64 %1252
  store i8 %1239, ptr %1253, align 1, !tbaa !16
  %1254 = load ptr, ptr %3, align 8, !tbaa !5
  %1255 = getelementptr inbounds %struct.MImage, ptr %1254, i32 0, i32 3
  %1256 = load i32, ptr %8, align 4, !tbaa !14
  %1257 = sext i32 %1256 to i64
  %1258 = getelementptr inbounds [4 x ptr], ptr %1255, i64 0, i64 %1257
  %1259 = load ptr, ptr %1258, align 8, !tbaa !5
  %1260 = load i32, ptr %9, align 4, !tbaa !14
  %1261 = sext i32 %1260 to i64
  %1262 = getelementptr inbounds ptr, ptr %1259, i64 %1261
  %1263 = load ptr, ptr %1262, align 8, !tbaa !5
  %1264 = load i32, ptr %10, align 4, !tbaa !14
  %1265 = add nsw i32 %1264, 1
  %1266 = sext i32 %1265 to i64
  %1267 = getelementptr inbounds i8, ptr %1263, i64 %1266
  %1268 = load i8, ptr %1267, align 1, !tbaa !16
  %1269 = zext i8 %1268 to i32
  %1270 = sub nsw i32 255, %1269
  %1271 = trunc i32 %1270 to i8
  %1272 = load ptr, ptr %4, align 8, !tbaa !5
  %1273 = getelementptr inbounds %struct.MImage, ptr %1272, i32 0, i32 3
  %1274 = load i32, ptr %8, align 4, !tbaa !14
  %1275 = sext i32 %1274 to i64
  %1276 = getelementptr inbounds [4 x ptr], ptr %1273, i64 0, i64 %1275
  %1277 = load ptr, ptr %1276, align 8, !tbaa !5
  %1278 = load i32, ptr %9, align 4, !tbaa !14
  %1279 = sext i32 %1278 to i64
  %1280 = getelementptr inbounds ptr, ptr %1277, i64 %1279
  %1281 = load ptr, ptr %1280, align 8, !tbaa !5
  %1282 = load i32, ptr %10, align 4, !tbaa !14
  %1283 = add nsw i32 %1282, 1
  %1284 = sext i32 %1283 to i64
  %1285 = getelementptr inbounds i8, ptr %1281, i64 %1284
  store i8 %1271, ptr %1285, align 1, !tbaa !16
  %1286 = load ptr, ptr %3, align 8, !tbaa !5
  %1287 = getelementptr inbounds %struct.MImage, ptr %1286, i32 0, i32 3
  %1288 = load i32, ptr %8, align 4, !tbaa !14
  %1289 = sext i32 %1288 to i64
  %1290 = getelementptr inbounds [4 x ptr], ptr %1287, i64 0, i64 %1289
  %1291 = load ptr, ptr %1290, align 8, !tbaa !5
  %1292 = load i32, ptr %9, align 4, !tbaa !14
  %1293 = sext i32 %1292 to i64
  %1294 = getelementptr inbounds ptr, ptr %1291, i64 %1293
  %1295 = load ptr, ptr %1294, align 8, !tbaa !5
  %1296 = load i32, ptr %10, align 4, !tbaa !14
  %1297 = add nsw i32 %1296, 2
  %1298 = sext i32 %1297 to i64
  %1299 = getelementptr inbounds i8, ptr %1295, i64 %1298
  %1300 = load i8, ptr %1299, align 1, !tbaa !16
  %1301 = zext i8 %1300 to i32
  %1302 = sub nsw i32 255, %1301
  %1303 = trunc i32 %1302 to i8
  %1304 = load ptr, ptr %4, align 8, !tbaa !5
  %1305 = getelementptr inbounds %struct.MImage, ptr %1304, i32 0, i32 3
  %1306 = load i32, ptr %8, align 4, !tbaa !14
  %1307 = sext i32 %1306 to i64
  %1308 = getelementptr inbounds [4 x ptr], ptr %1305, i64 0, i64 %1307
  %1309 = load ptr, ptr %1308, align 8, !tbaa !5
  %1310 = load i32, ptr %9, align 4, !tbaa !14
  %1311 = sext i32 %1310 to i64
  %1312 = getelementptr inbounds ptr, ptr %1309, i64 %1311
  %1313 = load ptr, ptr %1312, align 8, !tbaa !5
  %1314 = load i32, ptr %10, align 4, !tbaa !14
  %1315 = add nsw i32 %1314, 2
  %1316 = sext i32 %1315 to i64
  %1317 = getelementptr inbounds i8, ptr %1313, i64 %1316
  store i8 %1303, ptr %1317, align 1, !tbaa !16
  %1318 = load ptr, ptr %3, align 8, !tbaa !5
  %1319 = getelementptr inbounds %struct.MImage, ptr %1318, i32 0, i32 3
  %1320 = load i32, ptr %8, align 4, !tbaa !14
  %1321 = sext i32 %1320 to i64
  %1322 = getelementptr inbounds [4 x ptr], ptr %1319, i64 0, i64 %1321
  %1323 = load ptr, ptr %1322, align 8, !tbaa !5
  %1324 = load i32, ptr %9, align 4, !tbaa !14
  %1325 = sext i32 %1324 to i64
  %1326 = getelementptr inbounds ptr, ptr %1323, i64 %1325
  %1327 = load ptr, ptr %1326, align 8, !tbaa !5
  %1328 = load i32, ptr %10, align 4, !tbaa !14
  %1329 = add nsw i32 %1328, 3
  %1330 = sext i32 %1329 to i64
  %1331 = getelementptr inbounds i8, ptr %1327, i64 %1330
  %1332 = load i8, ptr %1331, align 1, !tbaa !16
  %1333 = zext i8 %1332 to i32
  %1334 = sub nsw i32 255, %1333
  %1335 = trunc i32 %1334 to i8
  %1336 = load ptr, ptr %4, align 8, !tbaa !5
  %1337 = getelementptr inbounds %struct.MImage, ptr %1336, i32 0, i32 3
  %1338 = load i32, ptr %8, align 4, !tbaa !14
  %1339 = sext i32 %1338 to i64
  %1340 = getelementptr inbounds [4 x ptr], ptr %1337, i64 0, i64 %1339
  %1341 = load ptr, ptr %1340, align 8, !tbaa !5
  %1342 = load i32, ptr %9, align 4, !tbaa !14
  %1343 = sext i32 %1342 to i64
  %1344 = getelementptr inbounds ptr, ptr %1341, i64 %1343
  %1345 = load ptr, ptr %1344, align 8, !tbaa !5
  %1346 = load i32, ptr %10, align 4, !tbaa !14
  %1347 = add nsw i32 %1346, 3
  %1348 = sext i32 %1347 to i64
  %1349 = getelementptr inbounds i8, ptr %1345, i64 %1348
  store i8 %1335, ptr %1349, align 1, !tbaa !16
  %1350 = load ptr, ptr %3, align 8, !tbaa !5
  %1351 = getelementptr inbounds %struct.MImage, ptr %1350, i32 0, i32 3
  %1352 = load i32, ptr %8, align 4, !tbaa !14
  %1353 = sext i32 %1352 to i64
  %1354 = getelementptr inbounds [4 x ptr], ptr %1351, i64 0, i64 %1353
  %1355 = load ptr, ptr %1354, align 8, !tbaa !5
  %1356 = load i32, ptr %9, align 4, !tbaa !14
  %1357 = sext i32 %1356 to i64
  %1358 = getelementptr inbounds ptr, ptr %1355, i64 %1357
  %1359 = load ptr, ptr %1358, align 8, !tbaa !5
  %1360 = load i32, ptr %10, align 4, !tbaa !14
  %1361 = add nsw i32 %1360, 4
  %1362 = sext i32 %1361 to i64
  %1363 = getelementptr inbounds i8, ptr %1359, i64 %1362
  %1364 = load i8, ptr %1363, align 1, !tbaa !16
  %1365 = zext i8 %1364 to i32
  %1366 = sub nsw i32 255, %1365
  %1367 = trunc i32 %1366 to i8
  %1368 = load ptr, ptr %4, align 8, !tbaa !5
  %1369 = getelementptr inbounds %struct.MImage, ptr %1368, i32 0, i32 3
  %1370 = load i32, ptr %8, align 4, !tbaa !14
  %1371 = sext i32 %1370 to i64
  %1372 = getelementptr inbounds [4 x ptr], ptr %1369, i64 0, i64 %1371
  %1373 = load ptr, ptr %1372, align 8, !tbaa !5
  %1374 = load i32, ptr %9, align 4, !tbaa !14
  %1375 = sext i32 %1374 to i64
  %1376 = getelementptr inbounds ptr, ptr %1373, i64 %1375
  %1377 = load ptr, ptr %1376, align 8, !tbaa !5
  %1378 = load i32, ptr %10, align 4, !tbaa !14
  %1379 = add nsw i32 %1378, 4
  %1380 = sext i32 %1379 to i64
  %1381 = getelementptr inbounds i8, ptr %1377, i64 %1380
  store i8 %1367, ptr %1381, align 1, !tbaa !16
  %1382 = load ptr, ptr %3, align 8, !tbaa !5
  %1383 = getelementptr inbounds %struct.MImage, ptr %1382, i32 0, i32 3
  %1384 = load i32, ptr %8, align 4, !tbaa !14
  %1385 = sext i32 %1384 to i64
  %1386 = getelementptr inbounds [4 x ptr], ptr %1383, i64 0, i64 %1385
  %1387 = load ptr, ptr %1386, align 8, !tbaa !5
  %1388 = load i32, ptr %9, align 4, !tbaa !14
  %1389 = sext i32 %1388 to i64
  %1390 = getelementptr inbounds ptr, ptr %1387, i64 %1389
  %1391 = load ptr, ptr %1390, align 8, !tbaa !5
  %1392 = load i32, ptr %10, align 4, !tbaa !14
  %1393 = add nsw i32 %1392, 5
  %1394 = sext i32 %1393 to i64
  %1395 = getelementptr inbounds i8, ptr %1391, i64 %1394
  %1396 = load i8, ptr %1395, align 1, !tbaa !16
  %1397 = zext i8 %1396 to i32
  %1398 = sub nsw i32 255, %1397
  %1399 = trunc i32 %1398 to i8
  %1400 = load ptr, ptr %4, align 8, !tbaa !5
  %1401 = getelementptr inbounds %struct.MImage, ptr %1400, i32 0, i32 3
  %1402 = load i32, ptr %8, align 4, !tbaa !14
  %1403 = sext i32 %1402 to i64
  %1404 = getelementptr inbounds [4 x ptr], ptr %1401, i64 0, i64 %1403
  %1405 = load ptr, ptr %1404, align 8, !tbaa !5
  %1406 = load i32, ptr %9, align 4, !tbaa !14
  %1407 = sext i32 %1406 to i64
  %1408 = getelementptr inbounds ptr, ptr %1405, i64 %1407
  %1409 = load ptr, ptr %1408, align 8, !tbaa !5
  %1410 = load i32, ptr %10, align 4, !tbaa !14
  %1411 = add nsw i32 %1410, 5
  %1412 = sext i32 %1411 to i64
  %1413 = getelementptr inbounds i8, ptr %1409, i64 %1412
  store i8 %1399, ptr %1413, align 1, !tbaa !16
  br label %4663

1414:                                             ; preds = %1214
  %1415 = load ptr, ptr %4, align 8, !tbaa !5
  %1416 = getelementptr inbounds %struct.MImage, ptr %1415, i32 0, i32 2
  %1417 = load i32, ptr %1416, align 8, !tbaa !13
  %1418 = load i32, ptr %10, align 4, !tbaa !14
  %1419 = sub nsw i32 %1417, %1418
  %1420 = icmp eq i32 %1419, 7
  br i1 %1420, label %1421, label %1646

1421:                                             ; preds = %1414
  %1422 = load ptr, ptr %3, align 8, !tbaa !5
  %1423 = getelementptr inbounds %struct.MImage, ptr %1422, i32 0, i32 3
  %1424 = load i32, ptr %8, align 4, !tbaa !14
  %1425 = sext i32 %1424 to i64
  %1426 = getelementptr inbounds [4 x ptr], ptr %1423, i64 0, i64 %1425
  %1427 = load ptr, ptr %1426, align 8, !tbaa !5
  %1428 = load i32, ptr %9, align 4, !tbaa !14
  %1429 = sext i32 %1428 to i64
  %1430 = getelementptr inbounds ptr, ptr %1427, i64 %1429
  %1431 = load ptr, ptr %1430, align 8, !tbaa !5
  %1432 = load i32, ptr %10, align 4, !tbaa !14
  %1433 = add nsw i32 %1432, 0
  %1434 = sext i32 %1433 to i64
  %1435 = getelementptr inbounds i8, ptr %1431, i64 %1434
  %1436 = load i8, ptr %1435, align 1, !tbaa !16
  %1437 = zext i8 %1436 to i32
  %1438 = sub nsw i32 255, %1437
  %1439 = trunc i32 %1438 to i8
  %1440 = load ptr, ptr %4, align 8, !tbaa !5
  %1441 = getelementptr inbounds %struct.MImage, ptr %1440, i32 0, i32 3
  %1442 = load i32, ptr %8, align 4, !tbaa !14
  %1443 = sext i32 %1442 to i64
  %1444 = getelementptr inbounds [4 x ptr], ptr %1441, i64 0, i64 %1443
  %1445 = load ptr, ptr %1444, align 8, !tbaa !5
  %1446 = load i32, ptr %9, align 4, !tbaa !14
  %1447 = sext i32 %1446 to i64
  %1448 = getelementptr inbounds ptr, ptr %1445, i64 %1447
  %1449 = load ptr, ptr %1448, align 8, !tbaa !5
  %1450 = load i32, ptr %10, align 4, !tbaa !14
  %1451 = add nsw i32 %1450, 0
  %1452 = sext i32 %1451 to i64
  %1453 = getelementptr inbounds i8, ptr %1449, i64 %1452
  store i8 %1439, ptr %1453, align 1, !tbaa !16
  %1454 = load ptr, ptr %3, align 8, !tbaa !5
  %1455 = getelementptr inbounds %struct.MImage, ptr %1454, i32 0, i32 3
  %1456 = load i32, ptr %8, align 4, !tbaa !14
  %1457 = sext i32 %1456 to i64
  %1458 = getelementptr inbounds [4 x ptr], ptr %1455, i64 0, i64 %1457
  %1459 = load ptr, ptr %1458, align 8, !tbaa !5
  %1460 = load i32, ptr %9, align 4, !tbaa !14
  %1461 = sext i32 %1460 to i64
  %1462 = getelementptr inbounds ptr, ptr %1459, i64 %1461
  %1463 = load ptr, ptr %1462, align 8, !tbaa !5
  %1464 = load i32, ptr %10, align 4, !tbaa !14
  %1465 = add nsw i32 %1464, 1
  %1466 = sext i32 %1465 to i64
  %1467 = getelementptr inbounds i8, ptr %1463, i64 %1466
  %1468 = load i8, ptr %1467, align 1, !tbaa !16
  %1469 = zext i8 %1468 to i32
  %1470 = sub nsw i32 255, %1469
  %1471 = trunc i32 %1470 to i8
  %1472 = load ptr, ptr %4, align 8, !tbaa !5
  %1473 = getelementptr inbounds %struct.MImage, ptr %1472, i32 0, i32 3
  %1474 = load i32, ptr %8, align 4, !tbaa !14
  %1475 = sext i32 %1474 to i64
  %1476 = getelementptr inbounds [4 x ptr], ptr %1473, i64 0, i64 %1475
  %1477 = load ptr, ptr %1476, align 8, !tbaa !5
  %1478 = load i32, ptr %9, align 4, !tbaa !14
  %1479 = sext i32 %1478 to i64
  %1480 = getelementptr inbounds ptr, ptr %1477, i64 %1479
  %1481 = load ptr, ptr %1480, align 8, !tbaa !5
  %1482 = load i32, ptr %10, align 4, !tbaa !14
  %1483 = add nsw i32 %1482, 1
  %1484 = sext i32 %1483 to i64
  %1485 = getelementptr inbounds i8, ptr %1481, i64 %1484
  store i8 %1471, ptr %1485, align 1, !tbaa !16
  %1486 = load ptr, ptr %3, align 8, !tbaa !5
  %1487 = getelementptr inbounds %struct.MImage, ptr %1486, i32 0, i32 3
  %1488 = load i32, ptr %8, align 4, !tbaa !14
  %1489 = sext i32 %1488 to i64
  %1490 = getelementptr inbounds [4 x ptr], ptr %1487, i64 0, i64 %1489
  %1491 = load ptr, ptr %1490, align 8, !tbaa !5
  %1492 = load i32, ptr %9, align 4, !tbaa !14
  %1493 = sext i32 %1492 to i64
  %1494 = getelementptr inbounds ptr, ptr %1491, i64 %1493
  %1495 = load ptr, ptr %1494, align 8, !tbaa !5
  %1496 = load i32, ptr %10, align 4, !tbaa !14
  %1497 = add nsw i32 %1496, 2
  %1498 = sext i32 %1497 to i64
  %1499 = getelementptr inbounds i8, ptr %1495, i64 %1498
  %1500 = load i8, ptr %1499, align 1, !tbaa !16
  %1501 = zext i8 %1500 to i32
  %1502 = sub nsw i32 255, %1501
  %1503 = trunc i32 %1502 to i8
  %1504 = load ptr, ptr %4, align 8, !tbaa !5
  %1505 = getelementptr inbounds %struct.MImage, ptr %1504, i32 0, i32 3
  %1506 = load i32, ptr %8, align 4, !tbaa !14
  %1507 = sext i32 %1506 to i64
  %1508 = getelementptr inbounds [4 x ptr], ptr %1505, i64 0, i64 %1507
  %1509 = load ptr, ptr %1508, align 8, !tbaa !5
  %1510 = load i32, ptr %9, align 4, !tbaa !14
  %1511 = sext i32 %1510 to i64
  %1512 = getelementptr inbounds ptr, ptr %1509, i64 %1511
  %1513 = load ptr, ptr %1512, align 8, !tbaa !5
  %1514 = load i32, ptr %10, align 4, !tbaa !14
  %1515 = add nsw i32 %1514, 2
  %1516 = sext i32 %1515 to i64
  %1517 = getelementptr inbounds i8, ptr %1513, i64 %1516
  store i8 %1503, ptr %1517, align 1, !tbaa !16
  %1518 = load ptr, ptr %3, align 8, !tbaa !5
  %1519 = getelementptr inbounds %struct.MImage, ptr %1518, i32 0, i32 3
  %1520 = load i32, ptr %8, align 4, !tbaa !14
  %1521 = sext i32 %1520 to i64
  %1522 = getelementptr inbounds [4 x ptr], ptr %1519, i64 0, i64 %1521
  %1523 = load ptr, ptr %1522, align 8, !tbaa !5
  %1524 = load i32, ptr %9, align 4, !tbaa !14
  %1525 = sext i32 %1524 to i64
  %1526 = getelementptr inbounds ptr, ptr %1523, i64 %1525
  %1527 = load ptr, ptr %1526, align 8, !tbaa !5
  %1528 = load i32, ptr %10, align 4, !tbaa !14
  %1529 = add nsw i32 %1528, 3
  %1530 = sext i32 %1529 to i64
  %1531 = getelementptr inbounds i8, ptr %1527, i64 %1530
  %1532 = load i8, ptr %1531, align 1, !tbaa !16
  %1533 = zext i8 %1532 to i32
  %1534 = sub nsw i32 255, %1533
  %1535 = trunc i32 %1534 to i8
  %1536 = load ptr, ptr %4, align 8, !tbaa !5
  %1537 = getelementptr inbounds %struct.MImage, ptr %1536, i32 0, i32 3
  %1538 = load i32, ptr %8, align 4, !tbaa !14
  %1539 = sext i32 %1538 to i64
  %1540 = getelementptr inbounds [4 x ptr], ptr %1537, i64 0, i64 %1539
  %1541 = load ptr, ptr %1540, align 8, !tbaa !5
  %1542 = load i32, ptr %9, align 4, !tbaa !14
  %1543 = sext i32 %1542 to i64
  %1544 = getelementptr inbounds ptr, ptr %1541, i64 %1543
  %1545 = load ptr, ptr %1544, align 8, !tbaa !5
  %1546 = load i32, ptr %10, align 4, !tbaa !14
  %1547 = add nsw i32 %1546, 3
  %1548 = sext i32 %1547 to i64
  %1549 = getelementptr inbounds i8, ptr %1545, i64 %1548
  store i8 %1535, ptr %1549, align 1, !tbaa !16
  %1550 = load ptr, ptr %3, align 8, !tbaa !5
  %1551 = getelementptr inbounds %struct.MImage, ptr %1550, i32 0, i32 3
  %1552 = load i32, ptr %8, align 4, !tbaa !14
  %1553 = sext i32 %1552 to i64
  %1554 = getelementptr inbounds [4 x ptr], ptr %1551, i64 0, i64 %1553
  %1555 = load ptr, ptr %1554, align 8, !tbaa !5
  %1556 = load i32, ptr %9, align 4, !tbaa !14
  %1557 = sext i32 %1556 to i64
  %1558 = getelementptr inbounds ptr, ptr %1555, i64 %1557
  %1559 = load ptr, ptr %1558, align 8, !tbaa !5
  %1560 = load i32, ptr %10, align 4, !tbaa !14
  %1561 = add nsw i32 %1560, 4
  %1562 = sext i32 %1561 to i64
  %1563 = getelementptr inbounds i8, ptr %1559, i64 %1562
  %1564 = load i8, ptr %1563, align 1, !tbaa !16
  %1565 = zext i8 %1564 to i32
  %1566 = sub nsw i32 255, %1565
  %1567 = trunc i32 %1566 to i8
  %1568 = load ptr, ptr %4, align 8, !tbaa !5
  %1569 = getelementptr inbounds %struct.MImage, ptr %1568, i32 0, i32 3
  %1570 = load i32, ptr %8, align 4, !tbaa !14
  %1571 = sext i32 %1570 to i64
  %1572 = getelementptr inbounds [4 x ptr], ptr %1569, i64 0, i64 %1571
  %1573 = load ptr, ptr %1572, align 8, !tbaa !5
  %1574 = load i32, ptr %9, align 4, !tbaa !14
  %1575 = sext i32 %1574 to i64
  %1576 = getelementptr inbounds ptr, ptr %1573, i64 %1575
  %1577 = load ptr, ptr %1576, align 8, !tbaa !5
  %1578 = load i32, ptr %10, align 4, !tbaa !14
  %1579 = add nsw i32 %1578, 4
  %1580 = sext i32 %1579 to i64
  %1581 = getelementptr inbounds i8, ptr %1577, i64 %1580
  store i8 %1567, ptr %1581, align 1, !tbaa !16
  %1582 = load ptr, ptr %3, align 8, !tbaa !5
  %1583 = getelementptr inbounds %struct.MImage, ptr %1582, i32 0, i32 3
  %1584 = load i32, ptr %8, align 4, !tbaa !14
  %1585 = sext i32 %1584 to i64
  %1586 = getelementptr inbounds [4 x ptr], ptr %1583, i64 0, i64 %1585
  %1587 = load ptr, ptr %1586, align 8, !tbaa !5
  %1588 = load i32, ptr %9, align 4, !tbaa !14
  %1589 = sext i32 %1588 to i64
  %1590 = getelementptr inbounds ptr, ptr %1587, i64 %1589
  %1591 = load ptr, ptr %1590, align 8, !tbaa !5
  %1592 = load i32, ptr %10, align 4, !tbaa !14
  %1593 = add nsw i32 %1592, 5
  %1594 = sext i32 %1593 to i64
  %1595 = getelementptr inbounds i8, ptr %1591, i64 %1594
  %1596 = load i8, ptr %1595, align 1, !tbaa !16
  %1597 = zext i8 %1596 to i32
  %1598 = sub nsw i32 255, %1597
  %1599 = trunc i32 %1598 to i8
  %1600 = load ptr, ptr %4, align 8, !tbaa !5
  %1601 = getelementptr inbounds %struct.MImage, ptr %1600, i32 0, i32 3
  %1602 = load i32, ptr %8, align 4, !tbaa !14
  %1603 = sext i32 %1602 to i64
  %1604 = getelementptr inbounds [4 x ptr], ptr %1601, i64 0, i64 %1603
  %1605 = load ptr, ptr %1604, align 8, !tbaa !5
  %1606 = load i32, ptr %9, align 4, !tbaa !14
  %1607 = sext i32 %1606 to i64
  %1608 = getelementptr inbounds ptr, ptr %1605, i64 %1607
  %1609 = load ptr, ptr %1608, align 8, !tbaa !5
  %1610 = load i32, ptr %10, align 4, !tbaa !14
  %1611 = add nsw i32 %1610, 5
  %1612 = sext i32 %1611 to i64
  %1613 = getelementptr inbounds i8, ptr %1609, i64 %1612
  store i8 %1599, ptr %1613, align 1, !tbaa !16
  %1614 = load ptr, ptr %3, align 8, !tbaa !5
  %1615 = getelementptr inbounds %struct.MImage, ptr %1614, i32 0, i32 3
  %1616 = load i32, ptr %8, align 4, !tbaa !14
  %1617 = sext i32 %1616 to i64
  %1618 = getelementptr inbounds [4 x ptr], ptr %1615, i64 0, i64 %1617
  %1619 = load ptr, ptr %1618, align 8, !tbaa !5
  %1620 = load i32, ptr %9, align 4, !tbaa !14
  %1621 = sext i32 %1620 to i64
  %1622 = getelementptr inbounds ptr, ptr %1619, i64 %1621
  %1623 = load ptr, ptr %1622, align 8, !tbaa !5
  %1624 = load i32, ptr %10, align 4, !tbaa !14
  %1625 = add nsw i32 %1624, 6
  %1626 = sext i32 %1625 to i64
  %1627 = getelementptr inbounds i8, ptr %1623, i64 %1626
  %1628 = load i8, ptr %1627, align 1, !tbaa !16
  %1629 = zext i8 %1628 to i32
  %1630 = sub nsw i32 255, %1629
  %1631 = trunc i32 %1630 to i8
  %1632 = load ptr, ptr %4, align 8, !tbaa !5
  %1633 = getelementptr inbounds %struct.MImage, ptr %1632, i32 0, i32 3
  %1634 = load i32, ptr %8, align 4, !tbaa !14
  %1635 = sext i32 %1634 to i64
  %1636 = getelementptr inbounds [4 x ptr], ptr %1633, i64 0, i64 %1635
  %1637 = load ptr, ptr %1636, align 8, !tbaa !5
  %1638 = load i32, ptr %9, 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 %10, align 4, !tbaa !14
  %1643 = add nsw i32 %1642, 6
  %1644 = sext i32 %1643 to i64
  %1645 = getelementptr inbounds i8, ptr %1641, i64 %1644
  store i8 %1631, ptr %1645, align 1, !tbaa !16
  br label %4662

1646:                                             ; preds = %1414
  %1647 = load ptr, ptr %4, align 8, !tbaa !5
  %1648 = getelementptr inbounds %struct.MImage, ptr %1647, i32 0, i32 2
  %1649 = load i32, ptr %1648, align 8, !tbaa !13
  %1650 = load i32, ptr %10, align 4, !tbaa !14
  %1651 = sub nsw i32 %1649, %1650
  %1652 = icmp eq i32 %1651, 8
  br i1 %1652, label %1653, label %1910

1653:                                             ; preds = %1646
  %1654 = load ptr, ptr %3, align 8, !tbaa !5
  %1655 = getelementptr inbounds %struct.MImage, ptr %1654, i32 0, i32 3
  %1656 = load i32, ptr %8, align 4, !tbaa !14
  %1657 = sext i32 %1656 to i64
  %1658 = getelementptr inbounds [4 x ptr], ptr %1655, i64 0, i64 %1657
  %1659 = load ptr, ptr %1658, align 8, !tbaa !5
  %1660 = load i32, ptr %9, align 4, !tbaa !14
  %1661 = sext i32 %1660 to i64
  %1662 = getelementptr inbounds ptr, ptr %1659, i64 %1661
  %1663 = load ptr, ptr %1662, align 8, !tbaa !5
  %1664 = load i32, ptr %10, align 4, !tbaa !14
  %1665 = add nsw i32 %1664, 0
  %1666 = sext i32 %1665 to i64
  %1667 = getelementptr inbounds i8, ptr %1663, i64 %1666
  %1668 = load i8, ptr %1667, align 1, !tbaa !16
  %1669 = zext i8 %1668 to i32
  %1670 = sub nsw i32 255, %1669
  %1671 = trunc i32 %1670 to i8
  %1672 = load ptr, ptr %4, align 8, !tbaa !5
  %1673 = getelementptr inbounds %struct.MImage, ptr %1672, i32 0, i32 3
  %1674 = load i32, ptr %8, align 4, !tbaa !14
  %1675 = sext i32 %1674 to i64
  %1676 = getelementptr inbounds [4 x ptr], ptr %1673, i64 0, i64 %1675
  %1677 = load ptr, ptr %1676, align 8, !tbaa !5
  %1678 = load i32, ptr %9, align 4, !tbaa !14
  %1679 = sext i32 %1678 to i64
  %1680 = getelementptr inbounds ptr, ptr %1677, i64 %1679
  %1681 = load ptr, ptr %1680, align 8, !tbaa !5
  %1682 = load i32, ptr %10, align 4, !tbaa !14
  %1683 = add nsw i32 %1682, 0
  %1684 = sext i32 %1683 to i64
  %1685 = getelementptr inbounds i8, ptr %1681, i64 %1684
  store i8 %1671, ptr %1685, align 1, !tbaa !16
  %1686 = load ptr, ptr %3, align 8, !tbaa !5
  %1687 = getelementptr inbounds %struct.MImage, ptr %1686, i32 0, i32 3
  %1688 = load i32, ptr %8, align 4, !tbaa !14
  %1689 = sext i32 %1688 to i64
  %1690 = getelementptr inbounds [4 x ptr], ptr %1687, i64 0, i64 %1689
  %1691 = load ptr, ptr %1690, align 8, !tbaa !5
  %1692 = load i32, ptr %9, align 4, !tbaa !14
  %1693 = sext i32 %1692 to i64
  %1694 = getelementptr inbounds ptr, ptr %1691, i64 %1693
  %1695 = load ptr, ptr %1694, align 8, !tbaa !5
  %1696 = load i32, ptr %10, align 4, !tbaa !14
  %1697 = add nsw i32 %1696, 1
  %1698 = sext i32 %1697 to i64
  %1699 = getelementptr inbounds i8, ptr %1695, i64 %1698
  %1700 = load i8, ptr %1699, align 1, !tbaa !16
  %1701 = zext i8 %1700 to i32
  %1702 = sub nsw i32 255, %1701
  %1703 = trunc i32 %1702 to i8
  %1704 = load ptr, ptr %4, align 8, !tbaa !5
  %1705 = getelementptr inbounds %struct.MImage, ptr %1704, i32 0, i32 3
  %1706 = load i32, ptr %8, align 4, !tbaa !14
  %1707 = sext i32 %1706 to i64
  %1708 = getelementptr inbounds [4 x ptr], ptr %1705, i64 0, i64 %1707
  %1709 = load ptr, ptr %1708, align 8, !tbaa !5
  %1710 = load i32, ptr %9, align 4, !tbaa !14
  %1711 = sext i32 %1710 to i64
  %1712 = getelementptr inbounds ptr, ptr %1709, i64 %1711
  %1713 = load ptr, ptr %1712, align 8, !tbaa !5
  %1714 = load i32, ptr %10, align 4, !tbaa !14
  %1715 = add nsw i32 %1714, 1
  %1716 = sext i32 %1715 to i64
  %1717 = getelementptr inbounds i8, ptr %1713, i64 %1716
  store i8 %1703, ptr %1717, align 1, !tbaa !16
  %1718 = load ptr, ptr %3, align 8, !tbaa !5
  %1719 = getelementptr inbounds %struct.MImage, ptr %1718, i32 0, i32 3
  %1720 = load i32, ptr %8, align 4, !tbaa !14
  %1721 = sext i32 %1720 to i64
  %1722 = getelementptr inbounds [4 x ptr], ptr %1719, i64 0, i64 %1721
  %1723 = load ptr, ptr %1722, align 8, !tbaa !5
  %1724 = load i32, ptr %9, align 4, !tbaa !14
  %1725 = sext i32 %1724 to i64
  %1726 = getelementptr inbounds ptr, ptr %1723, i64 %1725
  %1727 = load ptr, ptr %1726, align 8, !tbaa !5
  %1728 = load i32, ptr %10, align 4, !tbaa !14
  %1729 = add nsw i32 %1728, 2
  %1730 = sext i32 %1729 to i64
  %1731 = getelementptr inbounds i8, ptr %1727, i64 %1730
  %1732 = load i8, ptr %1731, align 1, !tbaa !16
  %1733 = zext i8 %1732 to i32
  %1734 = sub nsw i32 255, %1733
  %1735 = trunc i32 %1734 to i8
  %1736 = load ptr, ptr %4, align 8, !tbaa !5
  %1737 = getelementptr inbounds %struct.MImage, ptr %1736, i32 0, i32 3
  %1738 = load i32, ptr %8, align 4, !tbaa !14
  %1739 = sext i32 %1738 to i64
  %1740 = getelementptr inbounds [4 x ptr], ptr %1737, i64 0, i64 %1739
  %1741 = load ptr, ptr %1740, align 8, !tbaa !5
  %1742 = load i32, ptr %9, align 4, !tbaa !14
  %1743 = sext i32 %1742 to i64
  %1744 = getelementptr inbounds ptr, ptr %1741, i64 %1743
  %1745 = load ptr, ptr %1744, align 8, !tbaa !5
  %1746 = load i32, ptr %10, align 4, !tbaa !14
  %1747 = add nsw i32 %1746, 2
  %1748 = sext i32 %1747 to i64
  %1749 = getelementptr inbounds i8, ptr %1745, i64 %1748
  store i8 %1735, ptr %1749, align 1, !tbaa !16
  %1750 = load ptr, ptr %3, align 8, !tbaa !5
  %1751 = getelementptr inbounds %struct.MImage, ptr %1750, i32 0, i32 3
  %1752 = load i32, ptr %8, align 4, !tbaa !14
  %1753 = sext i32 %1752 to i64
  %1754 = getelementptr inbounds [4 x ptr], ptr %1751, i64 0, i64 %1753
  %1755 = load ptr, ptr %1754, align 8, !tbaa !5
  %1756 = load i32, ptr %9, align 4, !tbaa !14
  %1757 = sext i32 %1756 to i64
  %1758 = getelementptr inbounds ptr, ptr %1755, i64 %1757
  %1759 = load ptr, ptr %1758, align 8, !tbaa !5
  %1760 = load i32, ptr %10, align 4, !tbaa !14
  %1761 = add nsw i32 %1760, 3
  %1762 = sext i32 %1761 to i64
  %1763 = getelementptr inbounds i8, ptr %1759, i64 %1762
  %1764 = load i8, ptr %1763, align 1, !tbaa !16
  %1765 = zext i8 %1764 to i32
  %1766 = sub nsw i32 255, %1765
  %1767 = trunc i32 %1766 to i8
  %1768 = load ptr, ptr %4, align 8, !tbaa !5
  %1769 = getelementptr inbounds %struct.MImage, ptr %1768, i32 0, i32 3
  %1770 = load i32, ptr %8, align 4, !tbaa !14
  %1771 = sext i32 %1770 to i64
  %1772 = getelementptr inbounds [4 x ptr], ptr %1769, i64 0, i64 %1771
  %1773 = load ptr, ptr %1772, align 8, !tbaa !5
  %1774 = load i32, ptr %9, align 4, !tbaa !14
  %1775 = sext i32 %1774 to i64
  %1776 = getelementptr inbounds ptr, ptr %1773, i64 %1775
  %1777 = load ptr, ptr %1776, align 8, !tbaa !5
  %1778 = load i32, ptr %10, align 4, !tbaa !14
  %1779 = add nsw i32 %1778, 3
  %1780 = sext i32 %1779 to i64
  %1781 = getelementptr inbounds i8, ptr %1777, i64 %1780
  store i8 %1767, ptr %1781, align 1, !tbaa !16
  %1782 = load ptr, ptr %3, align 8, !tbaa !5
  %1783 = getelementptr inbounds %struct.MImage, ptr %1782, i32 0, i32 3
  %1784 = load i32, ptr %8, align 4, !tbaa !14
  %1785 = sext i32 %1784 to i64
  %1786 = getelementptr inbounds [4 x ptr], ptr %1783, i64 0, i64 %1785
  %1787 = load ptr, ptr %1786, align 8, !tbaa !5
  %1788 = load i32, ptr %9, align 4, !tbaa !14
  %1789 = sext i32 %1788 to i64
  %1790 = getelementptr inbounds ptr, ptr %1787, i64 %1789
  %1791 = load ptr, ptr %1790, align 8, !tbaa !5
  %1792 = load i32, ptr %10, align 4, !tbaa !14
  %1793 = add nsw i32 %1792, 4
  %1794 = sext i32 %1793 to i64
  %1795 = getelementptr inbounds i8, ptr %1791, i64 %1794
  %1796 = load i8, ptr %1795, align 1, !tbaa !16
  %1797 = zext i8 %1796 to i32
  %1798 = sub nsw i32 255, %1797
  %1799 = trunc i32 %1798 to i8
  %1800 = load ptr, ptr %4, align 8, !tbaa !5
  %1801 = getelementptr inbounds %struct.MImage, ptr %1800, i32 0, i32 3
  %1802 = load i32, ptr %8, align 4, !tbaa !14
  %1803 = sext i32 %1802 to i64
  %1804 = getelementptr inbounds [4 x ptr], ptr %1801, i64 0, i64 %1803
  %1805 = load ptr, ptr %1804, align 8, !tbaa !5
  %1806 = load i32, ptr %9, align 4, !tbaa !14
  %1807 = sext i32 %1806 to i64
  %1808 = getelementptr inbounds ptr, ptr %1805, i64 %1807
  %1809 = load ptr, ptr %1808, align 8, !tbaa !5
  %1810 = load i32, ptr %10, align 4, !tbaa !14
  %1811 = add nsw i32 %1810, 4
  %1812 = sext i32 %1811 to i64
  %1813 = getelementptr inbounds i8, ptr %1809, i64 %1812
  store i8 %1799, ptr %1813, align 1, !tbaa !16
  %1814 = load ptr, ptr %3, align 8, !tbaa !5
  %1815 = getelementptr inbounds %struct.MImage, ptr %1814, i32 0, i32 3
  %1816 = load i32, ptr %8, align 4, !tbaa !14
  %1817 = sext i32 %1816 to i64
  %1818 = getelementptr inbounds [4 x ptr], ptr %1815, i64 0, i64 %1817
  %1819 = load ptr, ptr %1818, align 8, !tbaa !5
  %1820 = load i32, ptr %9, align 4, !tbaa !14
  %1821 = sext i32 %1820 to i64
  %1822 = getelementptr inbounds ptr, ptr %1819, i64 %1821
  %1823 = load ptr, ptr %1822, align 8, !tbaa !5
  %1824 = load i32, ptr %10, align 4, !tbaa !14
  %1825 = add nsw i32 %1824, 5
  %1826 = sext i32 %1825 to i64
  %1827 = getelementptr inbounds i8, ptr %1823, i64 %1826
  %1828 = load i8, ptr %1827, align 1, !tbaa !16
  %1829 = zext i8 %1828 to i32
  %1830 = sub nsw i32 255, %1829
  %1831 = trunc i32 %1830 to i8
  %1832 = load ptr, ptr %4, align 8, !tbaa !5
  %1833 = getelementptr inbounds %struct.MImage, ptr %1832, i32 0, i32 3
  %1834 = load i32, ptr %8, align 4, !tbaa !14
  %1835 = sext i32 %1834 to i64
  %1836 = getelementptr inbounds [4 x ptr], ptr %1833, i64 0, i64 %1835
  %1837 = load ptr, ptr %1836, align 8, !tbaa !5
  %1838 = load i32, ptr %9, align 4, !tbaa !14
  %1839 = sext i32 %1838 to i64
  %1840 = getelementptr inbounds ptr, ptr %1837, i64 %1839
  %1841 = load ptr, ptr %1840, align 8, !tbaa !5
  %1842 = load i32, ptr %10, align 4, !tbaa !14
  %1843 = add nsw i32 %1842, 5
  %1844 = sext i32 %1843 to i64
  %1845 = getelementptr inbounds i8, ptr %1841, i64 %1844
  store i8 %1831, ptr %1845, align 1, !tbaa !16
  %1846 = load ptr, ptr %3, align 8, !tbaa !5
  %1847 = getelementptr inbounds %struct.MImage, ptr %1846, i32 0, i32 3
  %1848 = load i32, ptr %8, align 4, !tbaa !14
  %1849 = sext i32 %1848 to i64
  %1850 = getelementptr inbounds [4 x ptr], ptr %1847, i64 0, i64 %1849
  %1851 = load ptr, ptr %1850, align 8, !tbaa !5
  %1852 = load i32, ptr %9, align 4, !tbaa !14
  %1853 = sext i32 %1852 to i64
  %1854 = getelementptr inbounds ptr, ptr %1851, i64 %1853
  %1855 = load ptr, ptr %1854, align 8, !tbaa !5
  %1856 = load i32, ptr %10, align 4, !tbaa !14
  %1857 = add nsw i32 %1856, 6
  %1858 = sext i32 %1857 to i64
  %1859 = getelementptr inbounds i8, ptr %1855, i64 %1858
  %1860 = load i8, ptr %1859, align 1, !tbaa !16
  %1861 = zext i8 %1860 to i32
  %1862 = sub nsw i32 255, %1861
  %1863 = trunc i32 %1862 to i8
  %1864 = load ptr, ptr %4, align 8, !tbaa !5
  %1865 = getelementptr inbounds %struct.MImage, ptr %1864, i32 0, i32 3
  %1866 = load i32, ptr %8, align 4, !tbaa !14
  %1867 = sext i32 %1866 to i64
  %1868 = getelementptr inbounds [4 x ptr], ptr %1865, i64 0, i64 %1867
  %1869 = load ptr, ptr %1868, align 8, !tbaa !5
  %1870 = load i32, ptr %9, align 4, !tbaa !14
  %1871 = sext i32 %1870 to i64
  %1872 = getelementptr inbounds ptr, ptr %1869, i64 %1871
  %1873 = load ptr, ptr %1872, align 8, !tbaa !5
  %1874 = load i32, ptr %10, align 4, !tbaa !14
  %1875 = add nsw i32 %1874, 6
  %1876 = sext i32 %1875 to i64
  %1877 = getelementptr inbounds i8, ptr %1873, i64 %1876
  store i8 %1863, ptr %1877, align 1, !tbaa !16
  %1878 = load ptr, ptr %3, align 8, !tbaa !5
  %1879 = getelementptr inbounds %struct.MImage, ptr %1878, i32 0, i32 3
  %1880 = load i32, ptr %8, align 4, !tbaa !14
  %1881 = sext i32 %1880 to i64
  %1882 = getelementptr inbounds [4 x ptr], ptr %1879, i64 0, i64 %1881
  %1883 = load ptr, ptr %1882, align 8, !tbaa !5
  %1884 = load i32, ptr %9, align 4, !tbaa !14
  %1885 = sext i32 %1884 to i64
  %1886 = getelementptr inbounds ptr, ptr %1883, i64 %1885
  %1887 = load ptr, ptr %1886, align 8, !tbaa !5
  %1888 = load i32, ptr %10, align 4, !tbaa !14
  %1889 = add nsw i32 %1888, 7
  %1890 = sext i32 %1889 to i64
  %1891 = getelementptr inbounds i8, ptr %1887, i64 %1890
  %1892 = load i8, ptr %1891, align 1, !tbaa !16
  %1893 = zext i8 %1892 to i32
  %1894 = sub nsw i32 255, %1893
  %1895 = trunc i32 %1894 to i8
  %1896 = load ptr, ptr %4, align 8, !tbaa !5
  %1897 = getelementptr inbounds %struct.MImage, ptr %1896, i32 0, i32 3
  %1898 = load i32, ptr %8, align 4, !tbaa !14
  %1899 = sext i32 %1898 to i64
  %1900 = getelementptr inbounds [4 x ptr], ptr %1897, i64 0, i64 %1899
  %1901 = load ptr, ptr %1900, align 8, !tbaa !5
  %1902 = load i32, ptr %9, align 4, !tbaa !14
  %1903 = sext i32 %1902 to i64
  %1904 = getelementptr inbounds ptr, ptr %1901, i64 %1903
  %1905 = load ptr, ptr %1904, align 8, !tbaa !5
  %1906 = load i32, ptr %10, align 4, !tbaa !14
  %1907 = add nsw i32 %1906, 7
  %1908 = sext i32 %1907 to i64
  %1909 = getelementptr inbounds i8, ptr %1905, i64 %1908
  store i8 %1895, ptr %1909, align 1, !tbaa !16
  br label %4661

1910:                                             ; preds = %1646
  %1911 = load ptr, ptr %4, align 8, !tbaa !5
  %1912 = getelementptr inbounds %struct.MImage, ptr %1911, i32 0, i32 2
  %1913 = load i32, ptr %1912, align 8, !tbaa !13
  %1914 = load i32, ptr %10, align 4, !tbaa !14
  %1915 = sub nsw i32 %1913, %1914
  %1916 = icmp eq i32 %1915, 9
  br i1 %1916, label %1917, label %2206

1917:                                             ; preds = %1910
  %1918 = load ptr, ptr %3, align 8, !tbaa !5
  %1919 = getelementptr inbounds %struct.MImage, ptr %1918, i32 0, i32 3
  %1920 = load i32, ptr %8, align 4, !tbaa !14
  %1921 = sext i32 %1920 to i64
  %1922 = getelementptr inbounds [4 x ptr], ptr %1919, i64 0, i64 %1921
  %1923 = load ptr, ptr %1922, align 8, !tbaa !5
  %1924 = load i32, ptr %9, 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 %10, align 4, !tbaa !14
  %1929 = add nsw i32 %1928, 0
  %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 = sub nsw i32 255, %1933
  %1935 = trunc i32 %1934 to i8
  %1936 = load ptr, ptr %4, align 8, !tbaa !5
  %1937 = getelementptr inbounds %struct.MImage, ptr %1936, i32 0, i32 3
  %1938 = load i32, ptr %8, align 4, !tbaa !14
  %1939 = sext i32 %1938 to i64
  %1940 = getelementptr inbounds [4 x ptr], ptr %1937, i64 0, i64 %1939
  %1941 = load ptr, ptr %1940, align 8, !tbaa !5
  %1942 = load i32, ptr %9, align 4, !tbaa !14
  %1943 = sext i32 %1942 to i64
  %1944 = getelementptr inbounds ptr, ptr %1941, i64 %1943
  %1945 = load ptr, ptr %1944, align 8, !tbaa !5
  %1946 = load i32, ptr %10, align 4, !tbaa !14
  %1947 = add nsw i32 %1946, 0
  %1948 = sext i32 %1947 to i64
  %1949 = getelementptr inbounds i8, ptr %1945, i64 %1948
  store i8 %1935, ptr %1949, align 1, !tbaa !16
  %1950 = load ptr, ptr %3, align 8, !tbaa !5
  %1951 = getelementptr inbounds %struct.MImage, ptr %1950, i32 0, i32 3
  %1952 = load i32, ptr %8, 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 %9, 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 %10, align 4, !tbaa !14
  %1961 = add nsw i32 %1960, 1
  %1962 = sext i32 %1961 to i64
  %1963 = getelementptr inbounds i8, ptr %1959, i64 %1962
  %1964 = load i8, ptr %1963, align 1, !tbaa !16
  %1965 = zext i8 %1964 to i32
  %1966 = sub nsw i32 255, %1965
  %1967 = trunc i32 %1966 to i8
  %1968 = load ptr, ptr %4, align 8, !tbaa !5
  %1969 = getelementptr inbounds %struct.MImage, ptr %1968, i32 0, i32 3
  %1970 = load i32, ptr %8, align 4, !tbaa !14
  %1971 = sext i32 %1970 to i64
  %1972 = getelementptr inbounds [4 x ptr], ptr %1969, i64 0, i64 %1971
  %1973 = load ptr, ptr %1972, align 8, !tbaa !5
  %1974 = load i32, ptr %9, align 4, !tbaa !14
  %1975 = sext i32 %1974 to i64
  %1976 = getelementptr inbounds ptr, ptr %1973, i64 %1975
  %1977 = load ptr, ptr %1976, align 8, !tbaa !5
  %1978 = load i32, ptr %10, align 4, !tbaa !14
  %1979 = add nsw i32 %1978, 1
  %1980 = sext i32 %1979 to i64
  %1981 = getelementptr inbounds i8, ptr %1977, i64 %1980
  store i8 %1967, ptr %1981, align 1, !tbaa !16
  %1982 = load ptr, ptr %3, align 8, !tbaa !5
  %1983 = getelementptr inbounds %struct.MImage, ptr %1982, i32 0, i32 3
  %1984 = load i32, ptr %8, align 4, !tbaa !14
  %1985 = sext i32 %1984 to i64
  %1986 = getelementptr inbounds [4 x ptr], ptr %1983, i64 0, i64 %1985
  %1987 = load ptr, ptr %1986, align 8, !tbaa !5
  %1988 = load i32, ptr %9, align 4, !tbaa !14
  %1989 = sext i32 %1988 to i64
  %1990 = getelementptr inbounds ptr, ptr %1987, i64 %1989
  %1991 = load ptr, ptr %1990, align 8, !tbaa !5
  %1992 = load i32, ptr %10, align 4, !tbaa !14
  %1993 = add nsw i32 %1992, 2
  %1994 = sext i32 %1993 to i64
  %1995 = getelementptr inbounds i8, ptr %1991, i64 %1994
  %1996 = load i8, ptr %1995, align 1, !tbaa !16
  %1997 = zext i8 %1996 to i32
  %1998 = sub nsw i32 255, %1997
  %1999 = trunc i32 %1998 to i8
  %2000 = load ptr, ptr %4, align 8, !tbaa !5
  %2001 = getelementptr inbounds %struct.MImage, ptr %2000, i32 0, i32 3
  %2002 = load i32, ptr %8, align 4, !tbaa !14
  %2003 = sext i32 %2002 to i64
  %2004 = getelementptr inbounds [4 x ptr], ptr %2001, i64 0, i64 %2003
  %2005 = load ptr, ptr %2004, align 8, !tbaa !5
  %2006 = load i32, ptr %9, align 4, !tbaa !14
  %2007 = sext i32 %2006 to i64
  %2008 = getelementptr inbounds ptr, ptr %2005, i64 %2007
  %2009 = load ptr, ptr %2008, align 8, !tbaa !5
  %2010 = load i32, ptr %10, align 4, !tbaa !14
  %2011 = add nsw i32 %2010, 2
  %2012 = sext i32 %2011 to i64
  %2013 = getelementptr inbounds i8, ptr %2009, i64 %2012
  store i8 %1999, ptr %2013, align 1, !tbaa !16
  %2014 = load ptr, ptr %3, align 8, !tbaa !5
  %2015 = getelementptr inbounds %struct.MImage, ptr %2014, i32 0, i32 3
  %2016 = load i32, ptr %8, align 4, !tbaa !14
  %2017 = sext i32 %2016 to i64
  %2018 = getelementptr inbounds [4 x ptr], ptr %2015, i64 0, i64 %2017
  %2019 = load ptr, ptr %2018, align 8, !tbaa !5
  %2020 = load i32, ptr %9, align 4, !tbaa !14
  %2021 = sext i32 %2020 to i64
  %2022 = getelementptr inbounds ptr, ptr %2019, i64 %2021
  %2023 = load ptr, ptr %2022, align 8, !tbaa !5
  %2024 = load i32, ptr %10, align 4, !tbaa !14
  %2025 = add nsw i32 %2024, 3
  %2026 = sext i32 %2025 to i64
  %2027 = getelementptr inbounds i8, ptr %2023, i64 %2026
  %2028 = load i8, ptr %2027, align 1, !tbaa !16
  %2029 = zext i8 %2028 to i32
  %2030 = sub nsw i32 255, %2029
  %2031 = trunc i32 %2030 to i8
  %2032 = load ptr, ptr %4, align 8, !tbaa !5
  %2033 = getelementptr inbounds %struct.MImage, ptr %2032, i32 0, i32 3
  %2034 = load i32, ptr %8, align 4, !tbaa !14
  %2035 = sext i32 %2034 to i64
  %2036 = getelementptr inbounds [4 x ptr], ptr %2033, i64 0, i64 %2035
  %2037 = load ptr, ptr %2036, align 8, !tbaa !5
  %2038 = load i32, ptr %9, align 4, !tbaa !14
  %2039 = sext i32 %2038 to i64
  %2040 = getelementptr inbounds ptr, ptr %2037, i64 %2039
  %2041 = load ptr, ptr %2040, align 8, !tbaa !5
  %2042 = load i32, ptr %10, align 4, !tbaa !14
  %2043 = add nsw i32 %2042, 3
  %2044 = sext i32 %2043 to i64
  %2045 = getelementptr inbounds i8, ptr %2041, i64 %2044
  store i8 %2031, ptr %2045, align 1, !tbaa !16
  %2046 = load ptr, ptr %3, align 8, !tbaa !5
  %2047 = getelementptr inbounds %struct.MImage, ptr %2046, i32 0, i32 3
  %2048 = load i32, ptr %8, align 4, !tbaa !14
  %2049 = sext i32 %2048 to i64
  %2050 = getelementptr inbounds [4 x ptr], ptr %2047, i64 0, i64 %2049
  %2051 = load ptr, ptr %2050, align 8, !tbaa !5
  %2052 = load i32, ptr %9, align 4, !tbaa !14
  %2053 = sext i32 %2052 to i64
  %2054 = getelementptr inbounds ptr, ptr %2051, i64 %2053
  %2055 = load ptr, ptr %2054, align 8, !tbaa !5
  %2056 = load i32, ptr %10, align 4, !tbaa !14
  %2057 = add nsw i32 %2056, 4
  %2058 = sext i32 %2057 to i64
  %2059 = getelementptr inbounds i8, ptr %2055, i64 %2058
  %2060 = load i8, ptr %2059, align 1, !tbaa !16
  %2061 = zext i8 %2060 to i32
  %2062 = sub nsw i32 255, %2061
  %2063 = trunc i32 %2062 to i8
  %2064 = load ptr, ptr %4, align 8, !tbaa !5
  %2065 = getelementptr inbounds %struct.MImage, ptr %2064, i32 0, i32 3
  %2066 = load i32, ptr %8, align 4, !tbaa !14
  %2067 = sext i32 %2066 to i64
  %2068 = getelementptr inbounds [4 x ptr], ptr %2065, i64 0, i64 %2067
  %2069 = load ptr, ptr %2068, align 8, !tbaa !5
  %2070 = load i32, ptr %9, align 4, !tbaa !14
  %2071 = sext i32 %2070 to i64
  %2072 = getelementptr inbounds ptr, ptr %2069, i64 %2071
  %2073 = load ptr, ptr %2072, align 8, !tbaa !5
  %2074 = load i32, ptr %10, align 4, !tbaa !14
  %2075 = add nsw i32 %2074, 4
  %2076 = sext i32 %2075 to i64
  %2077 = getelementptr inbounds i8, ptr %2073, i64 %2076
  store i8 %2063, ptr %2077, align 1, !tbaa !16
  %2078 = load ptr, ptr %3, align 8, !tbaa !5
  %2079 = getelementptr inbounds %struct.MImage, ptr %2078, i32 0, i32 3
  %2080 = load i32, ptr %8, align 4, !tbaa !14
  %2081 = sext i32 %2080 to i64
  %2082 = getelementptr inbounds [4 x ptr], ptr %2079, i64 0, i64 %2081
  %2083 = load ptr, ptr %2082, align 8, !tbaa !5
  %2084 = load i32, ptr %9, align 4, !tbaa !14
  %2085 = sext i32 %2084 to i64
  %2086 = getelementptr inbounds ptr, ptr %2083, i64 %2085
  %2087 = load ptr, ptr %2086, align 8, !tbaa !5
  %2088 = load i32, ptr %10, align 4, !tbaa !14
  %2089 = add nsw i32 %2088, 5
  %2090 = sext i32 %2089 to i64
  %2091 = getelementptr inbounds i8, ptr %2087, i64 %2090
  %2092 = load i8, ptr %2091, align 1, !tbaa !16
  %2093 = zext i8 %2092 to i32
  %2094 = sub nsw i32 255, %2093
  %2095 = trunc i32 %2094 to i8
  %2096 = load ptr, ptr %4, align 8, !tbaa !5
  %2097 = getelementptr inbounds %struct.MImage, ptr %2096, i32 0, i32 3
  %2098 = load i32, ptr %8, align 4, !tbaa !14
  %2099 = sext i32 %2098 to i64
  %2100 = getelementptr inbounds [4 x ptr], ptr %2097, i64 0, i64 %2099
  %2101 = load ptr, ptr %2100, align 8, !tbaa !5
  %2102 = load i32, ptr %9, align 4, !tbaa !14
  %2103 = sext i32 %2102 to i64
  %2104 = getelementptr inbounds ptr, ptr %2101, i64 %2103
  %2105 = load ptr, ptr %2104, align 8, !tbaa !5
  %2106 = load i32, ptr %10, align 4, !tbaa !14
  %2107 = add nsw i32 %2106, 5
  %2108 = sext i32 %2107 to i64
  %2109 = getelementptr inbounds i8, ptr %2105, i64 %2108
  store i8 %2095, ptr %2109, align 1, !tbaa !16
  %2110 = load ptr, ptr %3, align 8, !tbaa !5
  %2111 = getelementptr inbounds %struct.MImage, ptr %2110, i32 0, i32 3
  %2112 = load i32, ptr %8, align 4, !tbaa !14
  %2113 = sext i32 %2112 to i64
  %2114 = getelementptr inbounds [4 x ptr], ptr %2111, i64 0, i64 %2113
  %2115 = load ptr, ptr %2114, align 8, !tbaa !5
  %2116 = load i32, ptr %9, 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 %10, align 4, !tbaa !14
  %2121 = add nsw i32 %2120, 6
  %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 255, %2125
  %2127 = trunc i32 %2126 to i8
  %2128 = load ptr, ptr %4, align 8, !tbaa !5
  %2129 = getelementptr inbounds %struct.MImage, ptr %2128, i32 0, i32 3
  %2130 = load i32, ptr %8, align 4, !tbaa !14
  %2131 = sext i32 %2130 to i64
  %2132 = getelementptr inbounds [4 x ptr], ptr %2129, i64 0, i64 %2131
  %2133 = load ptr, ptr %2132, align 8, !tbaa !5
  %2134 = load i32, ptr %9, align 4, !tbaa !14
  %2135 = sext i32 %2134 to i64
  %2136 = getelementptr inbounds ptr, ptr %2133, i64 %2135
  %2137 = load ptr, ptr %2136, align 8, !tbaa !5
  %2138 = load i32, ptr %10, align 4, !tbaa !14
  %2139 = add nsw i32 %2138, 6
  %2140 = sext i32 %2139 to i64
  %2141 = getelementptr inbounds i8, ptr %2137, i64 %2140
  store i8 %2127, ptr %2141, align 1, !tbaa !16
  %2142 = load ptr, ptr %3, align 8, !tbaa !5
  %2143 = getelementptr inbounds %struct.MImage, ptr %2142, i32 0, i32 3
  %2144 = load i32, ptr %8, align 4, !tbaa !14
  %2145 = sext i32 %2144 to i64
  %2146 = getelementptr inbounds [4 x ptr], ptr %2143, i64 0, i64 %2145
  %2147 = load ptr, ptr %2146, align 8, !tbaa !5
  %2148 = load i32, ptr %9, align 4, !tbaa !14
  %2149 = sext i32 %2148 to i64
  %2150 = getelementptr inbounds ptr, ptr %2147, i64 %2149
  %2151 = load ptr, ptr %2150, align 8, !tbaa !5
  %2152 = load i32, ptr %10, align 4, !tbaa !14
  %2153 = add nsw i32 %2152, 7
  %2154 = sext i32 %2153 to i64
  %2155 = getelementptr inbounds i8, ptr %2151, i64 %2154
  %2156 = load i8, ptr %2155, align 1, !tbaa !16
  %2157 = zext i8 %2156 to i32
  %2158 = sub nsw i32 255, %2157
  %2159 = trunc i32 %2158 to i8
  %2160 = load ptr, ptr %4, align 8, !tbaa !5
  %2161 = getelementptr inbounds %struct.MImage, ptr %2160, i32 0, i32 3
  %2162 = load i32, ptr %8, align 4, !tbaa !14
  %2163 = sext i32 %2162 to i64
  %2164 = getelementptr inbounds [4 x ptr], ptr %2161, i64 0, i64 %2163
  %2165 = load ptr, ptr %2164, align 8, !tbaa !5
  %2166 = load i32, ptr %9, align 4, !tbaa !14
  %2167 = sext i32 %2166 to i64
  %2168 = getelementptr inbounds ptr, ptr %2165, i64 %2167
  %2169 = load ptr, ptr %2168, align 8, !tbaa !5
  %2170 = load i32, ptr %10, align 4, !tbaa !14
  %2171 = add nsw i32 %2170, 7
  %2172 = sext i32 %2171 to i64
  %2173 = getelementptr inbounds i8, ptr %2169, i64 %2172
  store i8 %2159, ptr %2173, align 1, !tbaa !16
  %2174 = load ptr, ptr %3, align 8, !tbaa !5
  %2175 = getelementptr inbounds %struct.MImage, ptr %2174, i32 0, i32 3
  %2176 = load i32, ptr %8, align 4, !tbaa !14
  %2177 = sext i32 %2176 to i64
  %2178 = getelementptr inbounds [4 x ptr], ptr %2175, i64 0, i64 %2177
  %2179 = load ptr, ptr %2178, align 8, !tbaa !5
  %2180 = load i32, ptr %9, align 4, !tbaa !14
  %2181 = sext i32 %2180 to i64
  %2182 = getelementptr inbounds ptr, ptr %2179, i64 %2181
  %2183 = load ptr, ptr %2182, align 8, !tbaa !5
  %2184 = load i32, ptr %10, align 4, !tbaa !14
  %2185 = add nsw i32 %2184, 8
  %2186 = sext i32 %2185 to i64
  %2187 = getelementptr inbounds i8, ptr %2183, i64 %2186
  %2188 = load i8, ptr %2187, align 1, !tbaa !16
  %2189 = zext i8 %2188 to i32
  %2190 = sub nsw i32 255, %2189
  %2191 = trunc i32 %2190 to i8
  %2192 = load ptr, ptr %4, align 8, !tbaa !5
  %2193 = getelementptr inbounds %struct.MImage, ptr %2192, i32 0, i32 3
  %2194 = load i32, ptr %8, align 4, !tbaa !14
  %2195 = sext i32 %2194 to i64
  %2196 = getelementptr inbounds [4 x ptr], ptr %2193, i64 0, i64 %2195
  %2197 = load ptr, ptr %2196, align 8, !tbaa !5
  %2198 = load i32, ptr %9, align 4, !tbaa !14
  %2199 = sext i32 %2198 to i64
  %2200 = getelementptr inbounds ptr, ptr %2197, i64 %2199
  %2201 = load ptr, ptr %2200, align 8, !tbaa !5
  %2202 = load i32, ptr %10, align 4, !tbaa !14
  %2203 = add nsw i32 %2202, 8
  %2204 = sext i32 %2203 to i64
  %2205 = getelementptr inbounds i8, ptr %2201, i64 %2204
  store i8 %2191, ptr %2205, align 1, !tbaa !16
  br label %4660

2206:                                             ; preds = %1910
  %2207 = load ptr, ptr %4, align 8, !tbaa !5
  %2208 = getelementptr inbounds %struct.MImage, ptr %2207, i32 0, i32 2
  %2209 = load i32, ptr %2208, align 8, !tbaa !13
  %2210 = load i32, ptr %10, align 4, !tbaa !14
  %2211 = sub nsw i32 %2209, %2210
  %2212 = icmp eq i32 %2211, 10
  br i1 %2212, label %2213, label %2534

2213:                                             ; preds = %2206
  %2214 = load ptr, ptr %3, align 8, !tbaa !5
  %2215 = getelementptr inbounds %struct.MImage, ptr %2214, i32 0, i32 3
  %2216 = load i32, ptr %8, align 4, !tbaa !14
  %2217 = sext i32 %2216 to i64
  %2218 = getelementptr inbounds [4 x ptr], ptr %2215, i64 0, i64 %2217
  %2219 = load ptr, ptr %2218, align 8, !tbaa !5
  %2220 = load i32, ptr %9, align 4, !tbaa !14
  %2221 = sext i32 %2220 to i64
  %2222 = getelementptr inbounds ptr, ptr %2219, i64 %2221
  %2223 = load ptr, ptr %2222, align 8, !tbaa !5
  %2224 = load i32, ptr %10, align 4, !tbaa !14
  %2225 = add nsw i32 %2224, 0
  %2226 = sext i32 %2225 to i64
  %2227 = getelementptr inbounds i8, ptr %2223, i64 %2226
  %2228 = load i8, ptr %2227, align 1, !tbaa !16
  %2229 = zext i8 %2228 to i32
  %2230 = sub nsw i32 255, %2229
  %2231 = trunc i32 %2230 to i8
  %2232 = load ptr, ptr %4, align 8, !tbaa !5
  %2233 = getelementptr inbounds %struct.MImage, ptr %2232, i32 0, i32 3
  %2234 = load i32, ptr %8, align 4, !tbaa !14
  %2235 = sext i32 %2234 to i64
  %2236 = getelementptr inbounds [4 x ptr], ptr %2233, i64 0, i64 %2235
  %2237 = load ptr, ptr %2236, align 8, !tbaa !5
  %2238 = load i32, ptr %9, align 4, !tbaa !14
  %2239 = sext i32 %2238 to i64
  %2240 = getelementptr inbounds ptr, ptr %2237, i64 %2239
  %2241 = load ptr, ptr %2240, align 8, !tbaa !5
  %2242 = load i32, ptr %10, align 4, !tbaa !14
  %2243 = add nsw i32 %2242, 0
  %2244 = sext i32 %2243 to i64
  %2245 = getelementptr inbounds i8, ptr %2241, i64 %2244
  store i8 %2231, ptr %2245, align 1, !tbaa !16
  %2246 = load ptr, ptr %3, align 8, !tbaa !5
  %2247 = getelementptr inbounds %struct.MImage, ptr %2246, i32 0, i32 3
  %2248 = load i32, ptr %8, align 4, !tbaa !14
  %2249 = sext i32 %2248 to i64
  %2250 = getelementptr inbounds [4 x ptr], ptr %2247, i64 0, i64 %2249
  %2251 = load ptr, ptr %2250, align 8, !tbaa !5
  %2252 = load i32, ptr %9, align 4, !tbaa !14
  %2253 = sext i32 %2252 to i64
  %2254 = getelementptr inbounds ptr, ptr %2251, i64 %2253
  %2255 = load ptr, ptr %2254, align 8, !tbaa !5
  %2256 = load i32, ptr %10, align 4, !tbaa !14
  %2257 = add nsw i32 %2256, 1
  %2258 = sext i32 %2257 to i64
  %2259 = getelementptr inbounds i8, ptr %2255, i64 %2258
  %2260 = load i8, ptr %2259, align 1, !tbaa !16
  %2261 = zext i8 %2260 to i32
  %2262 = sub nsw i32 255, %2261
  %2263 = trunc i32 %2262 to i8
  %2264 = load ptr, ptr %4, align 8, !tbaa !5
  %2265 = getelementptr inbounds %struct.MImage, ptr %2264, i32 0, i32 3
  %2266 = load i32, ptr %8, align 4, !tbaa !14
  %2267 = sext i32 %2266 to i64
  %2268 = getelementptr inbounds [4 x ptr], ptr %2265, i64 0, i64 %2267
  %2269 = load ptr, ptr %2268, align 8, !tbaa !5
  %2270 = load i32, ptr %9, align 4, !tbaa !14
  %2271 = sext i32 %2270 to i64
  %2272 = getelementptr inbounds ptr, ptr %2269, i64 %2271
  %2273 = load ptr, ptr %2272, align 8, !tbaa !5
  %2274 = load i32, ptr %10, align 4, !tbaa !14
  %2275 = add nsw i32 %2274, 1
  %2276 = sext i32 %2275 to i64
  %2277 = getelementptr inbounds i8, ptr %2273, i64 %2276
  store i8 %2263, ptr %2277, align 1, !tbaa !16
  %2278 = load ptr, ptr %3, align 8, !tbaa !5
  %2279 = getelementptr inbounds %struct.MImage, ptr %2278, i32 0, i32 3
  %2280 = load i32, ptr %8, align 4, !tbaa !14
  %2281 = sext i32 %2280 to i64
  %2282 = getelementptr inbounds [4 x ptr], ptr %2279, i64 0, i64 %2281
  %2283 = load ptr, ptr %2282, align 8, !tbaa !5
  %2284 = load i32, ptr %9, align 4, !tbaa !14
  %2285 = sext i32 %2284 to i64
  %2286 = getelementptr inbounds ptr, ptr %2283, i64 %2285
  %2287 = load ptr, ptr %2286, align 8, !tbaa !5
  %2288 = load i32, ptr %10, align 4, !tbaa !14
  %2289 = add nsw i32 %2288, 2
  %2290 = sext i32 %2289 to i64
  %2291 = getelementptr inbounds i8, ptr %2287, i64 %2290
  %2292 = load i8, ptr %2291, align 1, !tbaa !16
  %2293 = zext i8 %2292 to i32
  %2294 = sub nsw i32 255, %2293
  %2295 = trunc i32 %2294 to i8
  %2296 = load ptr, ptr %4, align 8, !tbaa !5
  %2297 = getelementptr inbounds %struct.MImage, ptr %2296, i32 0, i32 3
  %2298 = load i32, ptr %8, align 4, !tbaa !14
  %2299 = sext i32 %2298 to i64
  %2300 = getelementptr inbounds [4 x ptr], ptr %2297, i64 0, i64 %2299
  %2301 = load ptr, ptr %2300, align 8, !tbaa !5
  %2302 = load i32, ptr %9, align 4, !tbaa !14
  %2303 = sext i32 %2302 to i64
  %2304 = getelementptr inbounds ptr, ptr %2301, i64 %2303
  %2305 = load ptr, ptr %2304, align 8, !tbaa !5
  %2306 = load i32, ptr %10, align 4, !tbaa !14
  %2307 = add nsw i32 %2306, 2
  %2308 = sext i32 %2307 to i64
  %2309 = getelementptr inbounds i8, ptr %2305, i64 %2308
  store i8 %2295, ptr %2309, align 1, !tbaa !16
  %2310 = load ptr, ptr %3, align 8, !tbaa !5
  %2311 = getelementptr inbounds %struct.MImage, ptr %2310, i32 0, i32 3
  %2312 = load i32, ptr %8, align 4, !tbaa !14
  %2313 = sext i32 %2312 to i64
  %2314 = getelementptr inbounds [4 x ptr], ptr %2311, i64 0, i64 %2313
  %2315 = load ptr, ptr %2314, align 8, !tbaa !5
  %2316 = load i32, ptr %9, align 4, !tbaa !14
  %2317 = sext i32 %2316 to i64
  %2318 = getelementptr inbounds ptr, ptr %2315, i64 %2317
  %2319 = load ptr, ptr %2318, align 8, !tbaa !5
  %2320 = load i32, ptr %10, align 4, !tbaa !14
  %2321 = add nsw i32 %2320, 3
  %2322 = sext i32 %2321 to i64
  %2323 = getelementptr inbounds i8, ptr %2319, i64 %2322
  %2324 = load i8, ptr %2323, align 1, !tbaa !16
  %2325 = zext i8 %2324 to i32
  %2326 = sub nsw i32 255, %2325
  %2327 = trunc i32 %2326 to i8
  %2328 = load ptr, ptr %4, align 8, !tbaa !5
  %2329 = getelementptr inbounds %struct.MImage, ptr %2328, i32 0, i32 3
  %2330 = load i32, ptr %8, align 4, !tbaa !14
  %2331 = sext i32 %2330 to i64
  %2332 = getelementptr inbounds [4 x ptr], ptr %2329, i64 0, i64 %2331
  %2333 = load ptr, ptr %2332, align 8, !tbaa !5
  %2334 = load i32, ptr %9, align 4, !tbaa !14
  %2335 = sext i32 %2334 to i64
  %2336 = getelementptr inbounds ptr, ptr %2333, i64 %2335
  %2337 = load ptr, ptr %2336, align 8, !tbaa !5
  %2338 = load i32, ptr %10, align 4, !tbaa !14
  %2339 = add nsw i32 %2338, 3
  %2340 = sext i32 %2339 to i64
  %2341 = getelementptr inbounds i8, ptr %2337, i64 %2340
  store i8 %2327, ptr %2341, align 1, !tbaa !16
  %2342 = load ptr, ptr %3, align 8, !tbaa !5
  %2343 = getelementptr inbounds %struct.MImage, ptr %2342, i32 0, i32 3
  %2344 = load i32, ptr %8, align 4, !tbaa !14
  %2345 = sext i32 %2344 to i64
  %2346 = getelementptr inbounds [4 x ptr], ptr %2343, i64 0, i64 %2345
  %2347 = load ptr, ptr %2346, align 8, !tbaa !5
  %2348 = load i32, ptr %9, align 4, !tbaa !14
  %2349 = sext i32 %2348 to i64
  %2350 = getelementptr inbounds ptr, ptr %2347, i64 %2349
  %2351 = load ptr, ptr %2350, align 8, !tbaa !5
  %2352 = load i32, ptr %10, align 4, !tbaa !14
  %2353 = add nsw i32 %2352, 4
  %2354 = sext i32 %2353 to i64
  %2355 = getelementptr inbounds i8, ptr %2351, i64 %2354
  %2356 = load i8, ptr %2355, align 1, !tbaa !16
  %2357 = zext i8 %2356 to i32
  %2358 = sub nsw i32 255, %2357
  %2359 = trunc i32 %2358 to i8
  %2360 = load ptr, ptr %4, align 8, !tbaa !5
  %2361 = getelementptr inbounds %struct.MImage, ptr %2360, i32 0, i32 3
  %2362 = load i32, ptr %8, align 4, !tbaa !14
  %2363 = sext i32 %2362 to i64
  %2364 = getelementptr inbounds [4 x ptr], ptr %2361, i64 0, i64 %2363
  %2365 = load ptr, ptr %2364, align 8, !tbaa !5
  %2366 = load i32, ptr %9, align 4, !tbaa !14
  %2367 = sext i32 %2366 to i64
  %2368 = getelementptr inbounds ptr, ptr %2365, i64 %2367
  %2369 = load ptr, ptr %2368, align 8, !tbaa !5
  %2370 = load i32, ptr %10, align 4, !tbaa !14
  %2371 = add nsw i32 %2370, 4
  %2372 = sext i32 %2371 to i64
  %2373 = getelementptr inbounds i8, ptr %2369, i64 %2372
  store i8 %2359, ptr %2373, align 1, !tbaa !16
  %2374 = load ptr, ptr %3, align 8, !tbaa !5
  %2375 = getelementptr inbounds %struct.MImage, ptr %2374, i32 0, i32 3
  %2376 = load i32, ptr %8, align 4, !tbaa !14
  %2377 = sext i32 %2376 to i64
  %2378 = getelementptr inbounds [4 x ptr], ptr %2375, i64 0, i64 %2377
  %2379 = load ptr, ptr %2378, align 8, !tbaa !5
  %2380 = load i32, ptr %9, 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 %10, align 4, !tbaa !14
  %2385 = add nsw i32 %2384, 5
  %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 255, %2389
  %2391 = trunc i32 %2390 to i8
  %2392 = load ptr, ptr %4, align 8, !tbaa !5
  %2393 = getelementptr inbounds %struct.MImage, ptr %2392, i32 0, i32 3
  %2394 = load i32, ptr %8, align 4, !tbaa !14
  %2395 = sext i32 %2394 to i64
  %2396 = getelementptr inbounds [4 x ptr], ptr %2393, i64 0, i64 %2395
  %2397 = load ptr, ptr %2396, align 8, !tbaa !5
  %2398 = load i32, ptr %9, align 4, !tbaa !14
  %2399 = sext i32 %2398 to i64
  %2400 = getelementptr inbounds ptr, ptr %2397, i64 %2399
  %2401 = load ptr, ptr %2400, align 8, !tbaa !5
  %2402 = load i32, ptr %10, align 4, !tbaa !14
  %2403 = add nsw i32 %2402, 5
  %2404 = sext i32 %2403 to i64
  %2405 = getelementptr inbounds i8, ptr %2401, i64 %2404
  store i8 %2391, ptr %2405, align 1, !tbaa !16
  %2406 = load ptr, ptr %3, align 8, !tbaa !5
  %2407 = getelementptr inbounds %struct.MImage, ptr %2406, i32 0, i32 3
  %2408 = load i32, ptr %8, align 4, !tbaa !14
  %2409 = sext i32 %2408 to i64
  %2410 = getelementptr inbounds [4 x ptr], ptr %2407, i64 0, i64 %2409
  %2411 = load ptr, ptr %2410, align 8, !tbaa !5
  %2412 = load i32, ptr %9, align 4, !tbaa !14
  %2413 = sext i32 %2412 to i64
  %2414 = getelementptr inbounds ptr, ptr %2411, i64 %2413
  %2415 = load ptr, ptr %2414, align 8, !tbaa !5
  %2416 = load i32, ptr %10, align 4, !tbaa !14
  %2417 = add nsw i32 %2416, 6
  %2418 = sext i32 %2417 to i64
  %2419 = getelementptr inbounds i8, ptr %2415, i64 %2418
  %2420 = load i8, ptr %2419, align 1, !tbaa !16
  %2421 = zext i8 %2420 to i32
  %2422 = sub nsw i32 255, %2421
  %2423 = trunc i32 %2422 to i8
  %2424 = load ptr, ptr %4, align 8, !tbaa !5
  %2425 = getelementptr inbounds %struct.MImage, ptr %2424, i32 0, i32 3
  %2426 = load i32, ptr %8, align 4, !tbaa !14
  %2427 = sext i32 %2426 to i64
  %2428 = getelementptr inbounds [4 x ptr], ptr %2425, i64 0, i64 %2427
  %2429 = load ptr, ptr %2428, align 8, !tbaa !5
  %2430 = load i32, ptr %9, align 4, !tbaa !14
  %2431 = sext i32 %2430 to i64
  %2432 = getelementptr inbounds ptr, ptr %2429, i64 %2431
  %2433 = load ptr, ptr %2432, align 8, !tbaa !5
  %2434 = load i32, ptr %10, align 4, !tbaa !14
  %2435 = add nsw i32 %2434, 6
  %2436 = sext i32 %2435 to i64
  %2437 = getelementptr inbounds i8, ptr %2433, i64 %2436
  store i8 %2423, ptr %2437, align 1, !tbaa !16
  %2438 = load ptr, ptr %3, align 8, !tbaa !5
  %2439 = getelementptr inbounds %struct.MImage, ptr %2438, i32 0, i32 3
  %2440 = load i32, ptr %8, align 4, !tbaa !14
  %2441 = sext i32 %2440 to i64
  %2442 = getelementptr inbounds [4 x ptr], ptr %2439, i64 0, i64 %2441
  %2443 = load ptr, ptr %2442, align 8, !tbaa !5
  %2444 = load i32, ptr %9, align 4, !tbaa !14
  %2445 = sext i32 %2444 to i64
  %2446 = getelementptr inbounds ptr, ptr %2443, i64 %2445
  %2447 = load ptr, ptr %2446, align 8, !tbaa !5
  %2448 = load i32, ptr %10, align 4, !tbaa !14
  %2449 = add nsw i32 %2448, 7
  %2450 = sext i32 %2449 to i64
  %2451 = getelementptr inbounds i8, ptr %2447, i64 %2450
  %2452 = load i8, ptr %2451, align 1, !tbaa !16
  %2453 = zext i8 %2452 to i32
  %2454 = sub nsw i32 255, %2453
  %2455 = trunc i32 %2454 to i8
  %2456 = load ptr, ptr %4, align 8, !tbaa !5
  %2457 = getelementptr inbounds %struct.MImage, ptr %2456, i32 0, i32 3
  %2458 = load i32, ptr %8, align 4, !tbaa !14
  %2459 = sext i32 %2458 to i64
  %2460 = getelementptr inbounds [4 x ptr], ptr %2457, i64 0, i64 %2459
  %2461 = load ptr, ptr %2460, align 8, !tbaa !5
  %2462 = load i32, ptr %9, align 4, !tbaa !14
  %2463 = sext i32 %2462 to i64
  %2464 = getelementptr inbounds ptr, ptr %2461, i64 %2463
  %2465 = load ptr, ptr %2464, align 8, !tbaa !5
  %2466 = load i32, ptr %10, align 4, !tbaa !14
  %2467 = add nsw i32 %2466, 7
  %2468 = sext i32 %2467 to i64
  %2469 = getelementptr inbounds i8, ptr %2465, i64 %2468
  store i8 %2455, ptr %2469, align 1, !tbaa !16
  %2470 = load ptr, ptr %3, align 8, !tbaa !5
  %2471 = getelementptr inbounds %struct.MImage, ptr %2470, i32 0, i32 3
  %2472 = load i32, ptr %8, align 4, !tbaa !14
  %2473 = sext i32 %2472 to i64
  %2474 = getelementptr inbounds [4 x ptr], ptr %2471, i64 0, i64 %2473
  %2475 = load ptr, ptr %2474, align 8, !tbaa !5
  %2476 = load i32, ptr %9, align 4, !tbaa !14
  %2477 = sext i32 %2476 to i64
  %2478 = getelementptr inbounds ptr, ptr %2475, i64 %2477
  %2479 = load ptr, ptr %2478, align 8, !tbaa !5
  %2480 = load i32, ptr %10, align 4, !tbaa !14
  %2481 = add nsw i32 %2480, 8
  %2482 = sext i32 %2481 to i64
  %2483 = getelementptr inbounds i8, ptr %2479, i64 %2482
  %2484 = load i8, ptr %2483, align 1, !tbaa !16
  %2485 = zext i8 %2484 to i32
  %2486 = sub nsw i32 255, %2485
  %2487 = trunc i32 %2486 to i8
  %2488 = load ptr, ptr %4, align 8, !tbaa !5
  %2489 = getelementptr inbounds %struct.MImage, ptr %2488, i32 0, i32 3
  %2490 = load i32, ptr %8, align 4, !tbaa !14
  %2491 = sext i32 %2490 to i64
  %2492 = getelementptr inbounds [4 x ptr], ptr %2489, i64 0, i64 %2491
  %2493 = load ptr, ptr %2492, align 8, !tbaa !5
  %2494 = load i32, ptr %9, align 4, !tbaa !14
  %2495 = sext i32 %2494 to i64
  %2496 = getelementptr inbounds ptr, ptr %2493, i64 %2495
  %2497 = load ptr, ptr %2496, align 8, !tbaa !5
  %2498 = load i32, ptr %10, align 4, !tbaa !14
  %2499 = add nsw i32 %2498, 8
  %2500 = sext i32 %2499 to i64
  %2501 = getelementptr inbounds i8, ptr %2497, i64 %2500
  store i8 %2487, ptr %2501, align 1, !tbaa !16
  %2502 = load ptr, ptr %3, align 8, !tbaa !5
  %2503 = getelementptr inbounds %struct.MImage, ptr %2502, i32 0, i32 3
  %2504 = load i32, ptr %8, align 4, !tbaa !14
  %2505 = sext i32 %2504 to i64
  %2506 = getelementptr inbounds [4 x ptr], ptr %2503, i64 0, i64 %2505
  %2507 = load ptr, ptr %2506, align 8, !tbaa !5
  %2508 = load i32, ptr %9, align 4, !tbaa !14
  %2509 = sext i32 %2508 to i64
  %2510 = getelementptr inbounds ptr, ptr %2507, i64 %2509
  %2511 = load ptr, ptr %2510, align 8, !tbaa !5
  %2512 = load i32, ptr %10, align 4, !tbaa !14
  %2513 = add nsw i32 %2512, 9
  %2514 = sext i32 %2513 to i64
  %2515 = getelementptr inbounds i8, ptr %2511, i64 %2514
  %2516 = load i8, ptr %2515, align 1, !tbaa !16
  %2517 = zext i8 %2516 to i32
  %2518 = sub nsw i32 255, %2517
  %2519 = trunc i32 %2518 to i8
  %2520 = load ptr, ptr %4, align 8, !tbaa !5
  %2521 = getelementptr inbounds %struct.MImage, ptr %2520, i32 0, i32 3
  %2522 = load i32, ptr %8, align 4, !tbaa !14
  %2523 = sext i32 %2522 to i64
  %2524 = getelementptr inbounds [4 x ptr], ptr %2521, i64 0, i64 %2523
  %2525 = load ptr, ptr %2524, align 8, !tbaa !5
  %2526 = load i32, ptr %9, align 4, !tbaa !14
  %2527 = sext i32 %2526 to i64
  %2528 = getelementptr inbounds ptr, ptr %2525, i64 %2527
  %2529 = load ptr, ptr %2528, align 8, !tbaa !5
  %2530 = load i32, ptr %10, align 4, !tbaa !14
  %2531 = add nsw i32 %2530, 9
  %2532 = sext i32 %2531 to i64
  %2533 = getelementptr inbounds i8, ptr %2529, i64 %2532
  store i8 %2519, ptr %2533, align 1, !tbaa !16
  br label %4659

2534:                                             ; preds = %2206
  %2535 = load ptr, ptr %4, align 8, !tbaa !5
  %2536 = getelementptr inbounds %struct.MImage, ptr %2535, i32 0, i32 2
  %2537 = load i32, ptr %2536, align 8, !tbaa !13
  %2538 = load i32, ptr %10, align 4, !tbaa !14
  %2539 = sub nsw i32 %2537, %2538
  %2540 = icmp eq i32 %2539, 11
  br i1 %2540, label %2541, label %2894

2541:                                             ; preds = %2534
  %2542 = load ptr, ptr %3, align 8, !tbaa !5
  %2543 = getelementptr inbounds %struct.MImage, ptr %2542, i32 0, i32 3
  %2544 = load i32, ptr %8, align 4, !tbaa !14
  %2545 = sext i32 %2544 to i64
  %2546 = getelementptr inbounds [4 x ptr], ptr %2543, i64 0, i64 %2545
  %2547 = load ptr, ptr %2546, align 8, !tbaa !5
  %2548 = load i32, ptr %9, align 4, !tbaa !14
  %2549 = sext i32 %2548 to i64
  %2550 = getelementptr inbounds ptr, ptr %2547, i64 %2549
  %2551 = load ptr, ptr %2550, align 8, !tbaa !5
  %2552 = load i32, ptr %10, align 4, !tbaa !14
  %2553 = add nsw i32 %2552, 0
  %2554 = sext i32 %2553 to i64
  %2555 = getelementptr inbounds i8, ptr %2551, i64 %2554
  %2556 = load i8, ptr %2555, align 1, !tbaa !16
  %2557 = zext i8 %2556 to i32
  %2558 = sub nsw i32 255, %2557
  %2559 = trunc i32 %2558 to i8
  %2560 = load ptr, ptr %4, align 8, !tbaa !5
  %2561 = getelementptr inbounds %struct.MImage, ptr %2560, i32 0, i32 3
  %2562 = load i32, ptr %8, 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 %9, 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 %10, align 4, !tbaa !14
  %2571 = add nsw i32 %2570, 0
  %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 %3, align 8, !tbaa !5
  %2575 = getelementptr inbounds %struct.MImage, ptr %2574, i32 0, i32 3
  %2576 = load i32, ptr %8, align 4, !tbaa !14
  %2577 = sext i32 %2576 to i64
  %2578 = getelementptr inbounds [4 x ptr], ptr %2575, i64 0, i64 %2577
  %2579 = load ptr, ptr %2578, align 8, !tbaa !5
  %2580 = load i32, ptr %9, align 4, !tbaa !14
  %2581 = sext i32 %2580 to i64
  %2582 = getelementptr inbounds ptr, ptr %2579, i64 %2581
  %2583 = load ptr, ptr %2582, align 8, !tbaa !5
  %2584 = load i32, ptr %10, align 4, !tbaa !14
  %2585 = add nsw i32 %2584, 1
  %2586 = sext i32 %2585 to i64
  %2587 = getelementptr inbounds i8, ptr %2583, i64 %2586
  %2588 = load i8, ptr %2587, align 1, !tbaa !16
  %2589 = zext i8 %2588 to i32
  %2590 = sub nsw i32 255, %2589
  %2591 = trunc i32 %2590 to i8
  %2592 = load ptr, ptr %4, align 8, !tbaa !5
  %2593 = getelementptr inbounds %struct.MImage, ptr %2592, i32 0, i32 3
  %2594 = load i32, ptr %8, align 4, !tbaa !14
  %2595 = sext i32 %2594 to i64
  %2596 = getelementptr inbounds [4 x ptr], ptr %2593, i64 0, i64 %2595
  %2597 = load ptr, ptr %2596, align 8, !tbaa !5
  %2598 = load i32, ptr %9, align 4, !tbaa !14
  %2599 = sext i32 %2598 to i64
  %2600 = getelementptr inbounds ptr, ptr %2597, i64 %2599
  %2601 = load ptr, ptr %2600, align 8, !tbaa !5
  %2602 = load i32, ptr %10, align 4, !tbaa !14
  %2603 = add nsw i32 %2602, 1
  %2604 = sext i32 %2603 to i64
  %2605 = getelementptr inbounds i8, ptr %2601, i64 %2604
  store i8 %2591, ptr %2605, align 1, !tbaa !16
  %2606 = load ptr, ptr %3, align 8, !tbaa !5
  %2607 = getelementptr inbounds %struct.MImage, ptr %2606, i32 0, i32 3
  %2608 = load i32, ptr %8, align 4, !tbaa !14
  %2609 = sext i32 %2608 to i64
  %2610 = getelementptr inbounds [4 x ptr], ptr %2607, i64 0, i64 %2609
  %2611 = load ptr, ptr %2610, align 8, !tbaa !5
  %2612 = load i32, ptr %9, align 4, !tbaa !14
  %2613 = sext i32 %2612 to i64
  %2614 = getelementptr inbounds ptr, ptr %2611, i64 %2613
  %2615 = load ptr, ptr %2614, align 8, !tbaa !5
  %2616 = load i32, ptr %10, align 4, !tbaa !14
  %2617 = add nsw i32 %2616, 2
  %2618 = sext i32 %2617 to i64
  %2619 = getelementptr inbounds i8, ptr %2615, i64 %2618
  %2620 = load i8, ptr %2619, align 1, !tbaa !16
  %2621 = zext i8 %2620 to i32
  %2622 = sub nsw i32 255, %2621
  %2623 = trunc i32 %2622 to i8
  %2624 = load ptr, ptr %4, align 8, !tbaa !5
  %2625 = getelementptr inbounds %struct.MImage, ptr %2624, i32 0, i32 3
  %2626 = load i32, ptr %8, align 4, !tbaa !14
  %2627 = sext i32 %2626 to i64
  %2628 = getelementptr inbounds [4 x ptr], ptr %2625, i64 0, i64 %2627
  %2629 = load ptr, ptr %2628, align 8, !tbaa !5
  %2630 = load i32, ptr %9, align 4, !tbaa !14
  %2631 = sext i32 %2630 to i64
  %2632 = getelementptr inbounds ptr, ptr %2629, i64 %2631
  %2633 = load ptr, ptr %2632, align 8, !tbaa !5
  %2634 = load i32, ptr %10, align 4, !tbaa !14
  %2635 = add nsw i32 %2634, 2
  %2636 = sext i32 %2635 to i64
  %2637 = getelementptr inbounds i8, ptr %2633, i64 %2636
  store i8 %2623, ptr %2637, align 1, !tbaa !16
  %2638 = load ptr, ptr %3, align 8, !tbaa !5
  %2639 = getelementptr inbounds %struct.MImage, ptr %2638, i32 0, i32 3
  %2640 = load i32, ptr %8, align 4, !tbaa !14
  %2641 = sext i32 %2640 to i64
  %2642 = getelementptr inbounds [4 x ptr], ptr %2639, i64 0, i64 %2641
  %2643 = load ptr, ptr %2642, align 8, !tbaa !5
  %2644 = load i32, ptr %9, align 4, !tbaa !14
  %2645 = sext i32 %2644 to i64
  %2646 = getelementptr inbounds ptr, ptr %2643, i64 %2645
  %2647 = load ptr, ptr %2646, align 8, !tbaa !5
  %2648 = load i32, ptr %10, align 4, !tbaa !14
  %2649 = add nsw i32 %2648, 3
  %2650 = sext i32 %2649 to i64
  %2651 = getelementptr inbounds i8, ptr %2647, i64 %2650
  %2652 = load i8, ptr %2651, align 1, !tbaa !16
  %2653 = zext i8 %2652 to i32
  %2654 = sub nsw i32 255, %2653
  %2655 = trunc i32 %2654 to i8
  %2656 = load ptr, ptr %4, align 8, !tbaa !5
  %2657 = getelementptr inbounds %struct.MImage, ptr %2656, i32 0, i32 3
  %2658 = load i32, ptr %8, align 4, !tbaa !14
  %2659 = sext i32 %2658 to i64
  %2660 = getelementptr inbounds [4 x ptr], ptr %2657, i64 0, i64 %2659
  %2661 = load ptr, ptr %2660, align 8, !tbaa !5
  %2662 = load i32, ptr %9, align 4, !tbaa !14
  %2663 = sext i32 %2662 to i64
  %2664 = getelementptr inbounds ptr, ptr %2661, i64 %2663
  %2665 = load ptr, ptr %2664, align 8, !tbaa !5
  %2666 = load i32, ptr %10, align 4, !tbaa !14
  %2667 = add nsw i32 %2666, 3
  %2668 = sext i32 %2667 to i64
  %2669 = getelementptr inbounds i8, ptr %2665, i64 %2668
  store i8 %2655, ptr %2669, align 1, !tbaa !16
  %2670 = load ptr, ptr %3, align 8, !tbaa !5
  %2671 = getelementptr inbounds %struct.MImage, ptr %2670, i32 0, i32 3
  %2672 = load i32, ptr %8, align 4, !tbaa !14
  %2673 = sext i32 %2672 to i64
  %2674 = getelementptr inbounds [4 x ptr], ptr %2671, i64 0, i64 %2673
  %2675 = load ptr, ptr %2674, align 8, !tbaa !5
  %2676 = load i32, ptr %9, align 4, !tbaa !14
  %2677 = sext i32 %2676 to i64
  %2678 = getelementptr inbounds ptr, ptr %2675, i64 %2677
  %2679 = load ptr, ptr %2678, align 8, !tbaa !5
  %2680 = load i32, ptr %10, align 4, !tbaa !14
  %2681 = add nsw i32 %2680, 4
  %2682 = sext i32 %2681 to i64
  %2683 = getelementptr inbounds i8, ptr %2679, i64 %2682
  %2684 = load i8, ptr %2683, align 1, !tbaa !16
  %2685 = zext i8 %2684 to i32
  %2686 = sub nsw i32 255, %2685
  %2687 = trunc i32 %2686 to i8
  %2688 = load ptr, ptr %4, align 8, !tbaa !5
  %2689 = getelementptr inbounds %struct.MImage, ptr %2688, i32 0, i32 3
  %2690 = load i32, ptr %8, align 4, !tbaa !14
  %2691 = sext i32 %2690 to i64
  %2692 = getelementptr inbounds [4 x ptr], ptr %2689, i64 0, i64 %2691
  %2693 = load ptr, ptr %2692, align 8, !tbaa !5
  %2694 = load i32, ptr %9, align 4, !tbaa !14
  %2695 = sext i32 %2694 to i64
  %2696 = getelementptr inbounds ptr, ptr %2693, i64 %2695
  %2697 = load ptr, ptr %2696, align 8, !tbaa !5
  %2698 = load i32, ptr %10, align 4, !tbaa !14
  %2699 = add nsw i32 %2698, 4
  %2700 = sext i32 %2699 to i64
  %2701 = getelementptr inbounds i8, ptr %2697, i64 %2700
  store i8 %2687, ptr %2701, align 1, !tbaa !16
  %2702 = load ptr, ptr %3, align 8, !tbaa !5
  %2703 = getelementptr inbounds %struct.MImage, ptr %2702, i32 0, i32 3
  %2704 = load i32, ptr %8, align 4, !tbaa !14
  %2705 = sext i32 %2704 to i64
  %2706 = getelementptr inbounds [4 x ptr], ptr %2703, i64 0, i64 %2705
  %2707 = load ptr, ptr %2706, align 8, !tbaa !5
  %2708 = load i32, ptr %9, align 4, !tbaa !14
  %2709 = sext i32 %2708 to i64
  %2710 = getelementptr inbounds ptr, ptr %2707, i64 %2709
  %2711 = load ptr, ptr %2710, align 8, !tbaa !5
  %2712 = load i32, ptr %10, align 4, !tbaa !14
  %2713 = add nsw i32 %2712, 5
  %2714 = sext i32 %2713 to i64
  %2715 = getelementptr inbounds i8, ptr %2711, i64 %2714
  %2716 = load i8, ptr %2715, align 1, !tbaa !16
  %2717 = zext i8 %2716 to i32
  %2718 = sub nsw i32 255, %2717
  %2719 = trunc i32 %2718 to i8
  %2720 = load ptr, ptr %4, align 8, !tbaa !5
  %2721 = getelementptr inbounds %struct.MImage, ptr %2720, i32 0, i32 3
  %2722 = load i32, ptr %8, align 4, !tbaa !14
  %2723 = sext i32 %2722 to i64
  %2724 = getelementptr inbounds [4 x ptr], ptr %2721, i64 0, i64 %2723
  %2725 = load ptr, ptr %2724, align 8, !tbaa !5
  %2726 = load i32, ptr %9, align 4, !tbaa !14
  %2727 = sext i32 %2726 to i64
  %2728 = getelementptr inbounds ptr, ptr %2725, i64 %2727
  %2729 = load ptr, ptr %2728, align 8, !tbaa !5
  %2730 = load i32, ptr %10, align 4, !tbaa !14
  %2731 = add nsw i32 %2730, 5
  %2732 = sext i32 %2731 to i64
  %2733 = getelementptr inbounds i8, ptr %2729, i64 %2732
  store i8 %2719, ptr %2733, align 1, !tbaa !16
  %2734 = load ptr, ptr %3, align 8, !tbaa !5
  %2735 = getelementptr inbounds %struct.MImage, ptr %2734, i32 0, i32 3
  %2736 = load i32, ptr %8, align 4, !tbaa !14
  %2737 = sext i32 %2736 to i64
  %2738 = getelementptr inbounds [4 x ptr], ptr %2735, i64 0, i64 %2737
  %2739 = load ptr, ptr %2738, align 8, !tbaa !5
  %2740 = load i32, ptr %9, align 4, !tbaa !14
  %2741 = sext i32 %2740 to i64
  %2742 = getelementptr inbounds ptr, ptr %2739, i64 %2741
  %2743 = load ptr, ptr %2742, align 8, !tbaa !5
  %2744 = load i32, ptr %10, align 4, !tbaa !14
  %2745 = add nsw i32 %2744, 6
  %2746 = sext i32 %2745 to i64
  %2747 = getelementptr inbounds i8, ptr %2743, i64 %2746
  %2748 = load i8, ptr %2747, align 1, !tbaa !16
  %2749 = zext i8 %2748 to i32
  %2750 = sub nsw i32 255, %2749
  %2751 = trunc i32 %2750 to i8
  %2752 = load ptr, ptr %4, align 8, !tbaa !5
  %2753 = getelementptr inbounds %struct.MImage, ptr %2752, i32 0, i32 3
  %2754 = load i32, ptr %8, align 4, !tbaa !14
  %2755 = sext i32 %2754 to i64
  %2756 = getelementptr inbounds [4 x ptr], ptr %2753, i64 0, i64 %2755
  %2757 = load ptr, ptr %2756, align 8, !tbaa !5
  %2758 = load i32, ptr %9, align 4, !tbaa !14
  %2759 = sext i32 %2758 to i64
  %2760 = getelementptr inbounds ptr, ptr %2757, i64 %2759
  %2761 = load ptr, ptr %2760, align 8, !tbaa !5
  %2762 = load i32, ptr %10, align 4, !tbaa !14
  %2763 = add nsw i32 %2762, 6
  %2764 = sext i32 %2763 to i64
  %2765 = getelementptr inbounds i8, ptr %2761, i64 %2764
  store i8 %2751, ptr %2765, align 1, !tbaa !16
  %2766 = load ptr, ptr %3, align 8, !tbaa !5
  %2767 = getelementptr inbounds %struct.MImage, ptr %2766, i32 0, i32 3
  %2768 = load i32, ptr %8, align 4, !tbaa !14
  %2769 = sext i32 %2768 to i64
  %2770 = getelementptr inbounds [4 x ptr], ptr %2767, i64 0, i64 %2769
  %2771 = load ptr, ptr %2770, align 8, !tbaa !5
  %2772 = load i32, ptr %9, align 4, !tbaa !14
  %2773 = sext i32 %2772 to i64
  %2774 = getelementptr inbounds ptr, ptr %2771, i64 %2773
  %2775 = load ptr, ptr %2774, align 8, !tbaa !5
  %2776 = load i32, ptr %10, align 4, !tbaa !14
  %2777 = add nsw i32 %2776, 7
  %2778 = sext i32 %2777 to i64
  %2779 = getelementptr inbounds i8, ptr %2775, i64 %2778
  %2780 = load i8, ptr %2779, align 1, !tbaa !16
  %2781 = zext i8 %2780 to i32
  %2782 = sub nsw i32 255, %2781
  %2783 = trunc i32 %2782 to i8
  %2784 = load ptr, ptr %4, align 8, !tbaa !5
  %2785 = getelementptr inbounds %struct.MImage, ptr %2784, i32 0, i32 3
  %2786 = load i32, ptr %8, align 4, !tbaa !14
  %2787 = sext i32 %2786 to i64
  %2788 = getelementptr inbounds [4 x ptr], ptr %2785, i64 0, i64 %2787
  %2789 = load ptr, ptr %2788, align 8, !tbaa !5
  %2790 = load i32, ptr %9, align 4, !tbaa !14
  %2791 = sext i32 %2790 to i64
  %2792 = getelementptr inbounds ptr, ptr %2789, i64 %2791
  %2793 = load ptr, ptr %2792, align 8, !tbaa !5
  %2794 = load i32, ptr %10, align 4, !tbaa !14
  %2795 = add nsw i32 %2794, 7
  %2796 = sext i32 %2795 to i64
  %2797 = getelementptr inbounds i8, ptr %2793, i64 %2796
  store i8 %2783, ptr %2797, align 1, !tbaa !16
  %2798 = load ptr, ptr %3, align 8, !tbaa !5
  %2799 = getelementptr inbounds %struct.MImage, ptr %2798, i32 0, i32 3
  %2800 = load i32, ptr %8, align 4, !tbaa !14
  %2801 = sext i32 %2800 to i64
  %2802 = getelementptr inbounds [4 x ptr], ptr %2799, i64 0, i64 %2801
  %2803 = load ptr, ptr %2802, align 8, !tbaa !5
  %2804 = load i32, ptr %9, align 4, !tbaa !14
  %2805 = sext i32 %2804 to i64
  %2806 = getelementptr inbounds ptr, ptr %2803, i64 %2805
  %2807 = load ptr, ptr %2806, align 8, !tbaa !5
  %2808 = load i32, ptr %10, align 4, !tbaa !14
  %2809 = add nsw i32 %2808, 8
  %2810 = sext i32 %2809 to i64
  %2811 = getelementptr inbounds i8, ptr %2807, i64 %2810
  %2812 = load i8, ptr %2811, align 1, !tbaa !16
  %2813 = zext i8 %2812 to i32
  %2814 = sub nsw i32 255, %2813
  %2815 = trunc i32 %2814 to i8
  %2816 = load ptr, ptr %4, align 8, !tbaa !5
  %2817 = getelementptr inbounds %struct.MImage, ptr %2816, i32 0, i32 3
  %2818 = load i32, ptr %8, align 4, !tbaa !14
  %2819 = sext i32 %2818 to i64
  %2820 = getelementptr inbounds [4 x ptr], ptr %2817, i64 0, i64 %2819
  %2821 = load ptr, ptr %2820, align 8, !tbaa !5
  %2822 = load i32, ptr %9, align 4, !tbaa !14
  %2823 = sext i32 %2822 to i64
  %2824 = getelementptr inbounds ptr, ptr %2821, i64 %2823
  %2825 = load ptr, ptr %2824, align 8, !tbaa !5
  %2826 = load i32, ptr %10, align 4, !tbaa !14
  %2827 = add nsw i32 %2826, 8
  %2828 = sext i32 %2827 to i64
  %2829 = getelementptr inbounds i8, ptr %2825, i64 %2828
  store i8 %2815, ptr %2829, align 1, !tbaa !16
  %2830 = load ptr, ptr %3, align 8, !tbaa !5
  %2831 = getelementptr inbounds %struct.MImage, ptr %2830, i32 0, i32 3
  %2832 = load i32, ptr %8, align 4, !tbaa !14
  %2833 = sext i32 %2832 to i64
  %2834 = getelementptr inbounds [4 x ptr], ptr %2831, i64 0, i64 %2833
  %2835 = load ptr, ptr %2834, align 8, !tbaa !5
  %2836 = load i32, ptr %9, align 4, !tbaa !14
  %2837 = sext i32 %2836 to i64
  %2838 = getelementptr inbounds ptr, ptr %2835, i64 %2837
  %2839 = load ptr, ptr %2838, align 8, !tbaa !5
  %2840 = load i32, ptr %10, align 4, !tbaa !14
  %2841 = add nsw i32 %2840, 9
  %2842 = sext i32 %2841 to i64
  %2843 = getelementptr inbounds i8, ptr %2839, i64 %2842
  %2844 = load i8, ptr %2843, align 1, !tbaa !16
  %2845 = zext i8 %2844 to i32
  %2846 = sub nsw i32 255, %2845
  %2847 = trunc i32 %2846 to i8
  %2848 = load ptr, ptr %4, align 8, !tbaa !5
  %2849 = getelementptr inbounds %struct.MImage, ptr %2848, i32 0, i32 3
  %2850 = load i32, ptr %8, align 4, !tbaa !14
  %2851 = sext i32 %2850 to i64
  %2852 = getelementptr inbounds [4 x ptr], ptr %2849, i64 0, i64 %2851
  %2853 = load ptr, ptr %2852, align 8, !tbaa !5
  %2854 = load i32, ptr %9, align 4, !tbaa !14
  %2855 = sext i32 %2854 to i64
  %2856 = getelementptr inbounds ptr, ptr %2853, i64 %2855
  %2857 = load ptr, ptr %2856, align 8, !tbaa !5
  %2858 = load i32, ptr %10, align 4, !tbaa !14
  %2859 = add nsw i32 %2858, 9
  %2860 = sext i32 %2859 to i64
  %2861 = getelementptr inbounds i8, ptr %2857, i64 %2860
  store i8 %2847, ptr %2861, align 1, !tbaa !16
  %2862 = load ptr, ptr %3, align 8, !tbaa !5
  %2863 = getelementptr inbounds %struct.MImage, ptr %2862, i32 0, i32 3
  %2864 = load i32, ptr %8, align 4, !tbaa !14
  %2865 = sext i32 %2864 to i64
  %2866 = getelementptr inbounds [4 x ptr], ptr %2863, i64 0, i64 %2865
  %2867 = load ptr, ptr %2866, align 8, !tbaa !5
  %2868 = load i32, ptr %9, align 4, !tbaa !14
  %2869 = sext i32 %2868 to i64
  %2870 = getelementptr inbounds ptr, ptr %2867, i64 %2869
  %2871 = load ptr, ptr %2870, align 8, !tbaa !5
  %2872 = load i32, ptr %10, align 4, !tbaa !14
  %2873 = add nsw i32 %2872, 10
  %2874 = sext i32 %2873 to i64
  %2875 = getelementptr inbounds i8, ptr %2871, i64 %2874
  %2876 = load i8, ptr %2875, align 1, !tbaa !16
  %2877 = zext i8 %2876 to i32
  %2878 = sub nsw i32 255, %2877
  %2879 = trunc i32 %2878 to i8
  %2880 = load ptr, ptr %4, align 8, !tbaa !5
  %2881 = getelementptr inbounds %struct.MImage, ptr %2880, i32 0, i32 3
  %2882 = load i32, ptr %8, align 4, !tbaa !14
  %2883 = sext i32 %2882 to i64
  %2884 = getelementptr inbounds [4 x ptr], ptr %2881, i64 0, i64 %2883
  %2885 = load ptr, ptr %2884, align 8, !tbaa !5
  %2886 = load i32, ptr %9, align 4, !tbaa !14
  %2887 = sext i32 %2886 to i64
  %2888 = getelementptr inbounds ptr, ptr %2885, i64 %2887
  %2889 = load ptr, ptr %2888, align 8, !tbaa !5
  %2890 = load i32, ptr %10, align 4, !tbaa !14
  %2891 = add nsw i32 %2890, 10
  %2892 = sext i32 %2891 to i64
  %2893 = getelementptr inbounds i8, ptr %2889, i64 %2892
  store i8 %2879, ptr %2893, align 1, !tbaa !16
  br label %4658

2894:                                             ; preds = %2534
  %2895 = load ptr, ptr %4, align 8, !tbaa !5
  %2896 = getelementptr inbounds %struct.MImage, ptr %2895, i32 0, i32 2
  %2897 = load i32, ptr %2896, align 8, !tbaa !13
  %2898 = load i32, ptr %10, align 4, !tbaa !14
  %2899 = sub nsw i32 %2897, %2898
  %2900 = icmp eq i32 %2899, 12
  br i1 %2900, label %2901, label %3286

2901:                                             ; preds = %2894
  %2902 = load ptr, ptr %3, align 8, !tbaa !5
  %2903 = getelementptr inbounds %struct.MImage, ptr %2902, i32 0, i32 3
  %2904 = load i32, ptr %8, align 4, !tbaa !14
  %2905 = sext i32 %2904 to i64
  %2906 = getelementptr inbounds [4 x ptr], ptr %2903, i64 0, i64 %2905
  %2907 = load ptr, ptr %2906, align 8, !tbaa !5
  %2908 = load i32, ptr %9, align 4, !tbaa !14
  %2909 = sext i32 %2908 to i64
  %2910 = getelementptr inbounds ptr, ptr %2907, i64 %2909
  %2911 = load ptr, ptr %2910, align 8, !tbaa !5
  %2912 = load i32, ptr %10, align 4, !tbaa !14
  %2913 = add nsw i32 %2912, 0
  %2914 = sext i32 %2913 to i64
  %2915 = getelementptr inbounds i8, ptr %2911, i64 %2914
  %2916 = load i8, ptr %2915, align 1, !tbaa !16
  %2917 = zext i8 %2916 to i32
  %2918 = sub nsw i32 255, %2917
  %2919 = trunc i32 %2918 to i8
  %2920 = load ptr, ptr %4, align 8, !tbaa !5
  %2921 = getelementptr inbounds %struct.MImage, ptr %2920, i32 0, i32 3
  %2922 = load i32, ptr %8, align 4, !tbaa !14
  %2923 = sext i32 %2922 to i64
  %2924 = getelementptr inbounds [4 x ptr], ptr %2921, i64 0, i64 %2923
  %2925 = load ptr, ptr %2924, align 8, !tbaa !5
  %2926 = load i32, ptr %9, align 4, !tbaa !14
  %2927 = sext i32 %2926 to i64
  %2928 = getelementptr inbounds ptr, ptr %2925, i64 %2927
  %2929 = load ptr, ptr %2928, align 8, !tbaa !5
  %2930 = load i32, ptr %10, align 4, !tbaa !14
  %2931 = add nsw i32 %2930, 0
  %2932 = sext i32 %2931 to i64
  %2933 = getelementptr inbounds i8, ptr %2929, i64 %2932
  store i8 %2919, ptr %2933, align 1, !tbaa !16
  %2934 = load ptr, ptr %3, align 8, !tbaa !5
  %2935 = getelementptr inbounds %struct.MImage, ptr %2934, i32 0, i32 3
  %2936 = load i32, ptr %8, align 4, !tbaa !14
  %2937 = sext i32 %2936 to i64
  %2938 = getelementptr inbounds [4 x ptr], ptr %2935, i64 0, i64 %2937
  %2939 = load ptr, ptr %2938, align 8, !tbaa !5
  %2940 = load i32, ptr %9, align 4, !tbaa !14
  %2941 = sext i32 %2940 to i64
  %2942 = getelementptr inbounds ptr, ptr %2939, i64 %2941
  %2943 = load ptr, ptr %2942, align 8, !tbaa !5
  %2944 = load i32, ptr %10, align 4, !tbaa !14
  %2945 = add nsw i32 %2944, 1
  %2946 = sext i32 %2945 to i64
  %2947 = getelementptr inbounds i8, ptr %2943, i64 %2946
  %2948 = load i8, ptr %2947, align 1, !tbaa !16
  %2949 = zext i8 %2948 to i32
  %2950 = sub nsw i32 255, %2949
  %2951 = trunc i32 %2950 to i8
  %2952 = load ptr, ptr %4, align 8, !tbaa !5
  %2953 = getelementptr inbounds %struct.MImage, ptr %2952, i32 0, i32 3
  %2954 = load i32, ptr %8, align 4, !tbaa !14
  %2955 = sext i32 %2954 to i64
  %2956 = getelementptr inbounds [4 x ptr], ptr %2953, i64 0, i64 %2955
  %2957 = load ptr, ptr %2956, align 8, !tbaa !5
  %2958 = load i32, ptr %9, align 4, !tbaa !14
  %2959 = sext i32 %2958 to i64
  %2960 = getelementptr inbounds ptr, ptr %2957, i64 %2959
  %2961 = load ptr, ptr %2960, align 8, !tbaa !5
  %2962 = load i32, ptr %10, align 4, !tbaa !14
  %2963 = add nsw i32 %2962, 1
  %2964 = sext i32 %2963 to i64
  %2965 = getelementptr inbounds i8, ptr %2961, i64 %2964
  store i8 %2951, ptr %2965, align 1, !tbaa !16
  %2966 = load ptr, ptr %3, align 8, !tbaa !5
  %2967 = getelementptr inbounds %struct.MImage, ptr %2966, i32 0, i32 3
  %2968 = load i32, ptr %8, align 4, !tbaa !14
  %2969 = sext i32 %2968 to i64
  %2970 = getelementptr inbounds [4 x ptr], ptr %2967, i64 0, i64 %2969
  %2971 = load ptr, ptr %2970, align 8, !tbaa !5
  %2972 = load i32, ptr %9, align 4, !tbaa !14
  %2973 = sext i32 %2972 to i64
  %2974 = getelementptr inbounds ptr, ptr %2971, i64 %2973
  %2975 = load ptr, ptr %2974, align 8, !tbaa !5
  %2976 = load i32, ptr %10, align 4, !tbaa !14
  %2977 = add nsw i32 %2976, 2
  %2978 = sext i32 %2977 to i64
  %2979 = getelementptr inbounds i8, ptr %2975, i64 %2978
  %2980 = load i8, ptr %2979, align 1, !tbaa !16
  %2981 = zext i8 %2980 to i32
  %2982 = sub nsw i32 255, %2981
  %2983 = trunc i32 %2982 to i8
  %2984 = load ptr, ptr %4, align 8, !tbaa !5
  %2985 = getelementptr inbounds %struct.MImage, ptr %2984, i32 0, i32 3
  %2986 = load i32, ptr %8, align 4, !tbaa !14
  %2987 = sext i32 %2986 to i64
  %2988 = getelementptr inbounds [4 x ptr], ptr %2985, i64 0, i64 %2987
  %2989 = load ptr, ptr %2988, align 8, !tbaa !5
  %2990 = load i32, ptr %9, 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 %10, align 4, !tbaa !14
  %2995 = add nsw i32 %2994, 2
  %2996 = sext i32 %2995 to i64
  %2997 = getelementptr inbounds i8, ptr %2993, i64 %2996
  store i8 %2983, ptr %2997, align 1, !tbaa !16
  %2998 = load ptr, ptr %3, align 8, !tbaa !5
  %2999 = getelementptr inbounds %struct.MImage, ptr %2998, i32 0, i32 3
  %3000 = load i32, ptr %8, align 4, !tbaa !14
  %3001 = sext i32 %3000 to i64
  %3002 = getelementptr inbounds [4 x ptr], ptr %2999, i64 0, i64 %3001
  %3003 = load ptr, ptr %3002, align 8, !tbaa !5
  %3004 = load i32, ptr %9, 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 %10, align 4, !tbaa !14
  %3009 = add nsw i32 %3008, 3
  %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 = sub nsw i32 255, %3013
  %3015 = trunc i32 %3014 to i8
  %3016 = load ptr, ptr %4, align 8, !tbaa !5
  %3017 = getelementptr inbounds %struct.MImage, ptr %3016, i32 0, i32 3
  %3018 = load i32, ptr %8, align 4, !tbaa !14
  %3019 = sext i32 %3018 to i64
  %3020 = getelementptr inbounds [4 x ptr], ptr %3017, i64 0, i64 %3019
  %3021 = load ptr, ptr %3020, align 8, !tbaa !5
  %3022 = load i32, ptr %9, align 4, !tbaa !14
  %3023 = sext i32 %3022 to i64
  %3024 = getelementptr inbounds ptr, ptr %3021, i64 %3023
  %3025 = load ptr, ptr %3024, align 8, !tbaa !5
  %3026 = load i32, ptr %10, align 4, !tbaa !14
  %3027 = add nsw i32 %3026, 3
  %3028 = sext i32 %3027 to i64
  %3029 = getelementptr inbounds i8, ptr %3025, i64 %3028
  store i8 %3015, ptr %3029, align 1, !tbaa !16
  %3030 = load ptr, ptr %3, align 8, !tbaa !5
  %3031 = getelementptr inbounds %struct.MImage, ptr %3030, i32 0, i32 3
  %3032 = load i32, ptr %8, 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 %9, 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 %10, align 4, !tbaa !14
  %3041 = add nsw i32 %3040, 4
  %3042 = sext i32 %3041 to i64
  %3043 = getelementptr inbounds i8, ptr %3039, i64 %3042
  %3044 = load i8, ptr %3043, align 1, !tbaa !16
  %3045 = zext i8 %3044 to i32
  %3046 = sub nsw i32 255, %3045
  %3047 = trunc i32 %3046 to i8
  %3048 = load ptr, ptr %4, align 8, !tbaa !5
  %3049 = getelementptr inbounds %struct.MImage, ptr %3048, i32 0, i32 3
  %3050 = load i32, ptr %8, align 4, !tbaa !14
  %3051 = sext i32 %3050 to i64
  %3052 = getelementptr inbounds [4 x ptr], ptr %3049, i64 0, i64 %3051
  %3053 = load ptr, ptr %3052, align 8, !tbaa !5
  %3054 = load i32, ptr %9, align 4, !tbaa !14
  %3055 = sext i32 %3054 to i64
  %3056 = getelementptr inbounds ptr, ptr %3053, i64 %3055
  %3057 = load ptr, ptr %3056, align 8, !tbaa !5
  %3058 = load i32, ptr %10, align 4, !tbaa !14
  %3059 = add nsw i32 %3058, 4
  %3060 = sext i32 %3059 to i64
  %3061 = getelementptr inbounds i8, ptr %3057, i64 %3060
  store i8 %3047, ptr %3061, align 1, !tbaa !16
  %3062 = load ptr, ptr %3, align 8, !tbaa !5
  %3063 = getelementptr inbounds %struct.MImage, ptr %3062, i32 0, i32 3
  %3064 = load i32, ptr %8, align 4, !tbaa !14
  %3065 = sext i32 %3064 to i64
  %3066 = getelementptr inbounds [4 x ptr], ptr %3063, i64 0, i64 %3065
  %3067 = load ptr, ptr %3066, align 8, !tbaa !5
  %3068 = load i32, ptr %9, align 4, !tbaa !14
  %3069 = sext i32 %3068 to i64
  %3070 = getelementptr inbounds ptr, ptr %3067, i64 %3069
  %3071 = load ptr, ptr %3070, align 8, !tbaa !5
  %3072 = load i32, ptr %10, align 4, !tbaa !14
  %3073 = add nsw i32 %3072, 5
  %3074 = sext i32 %3073 to i64
  %3075 = getelementptr inbounds i8, ptr %3071, i64 %3074
  %3076 = load i8, ptr %3075, align 1, !tbaa !16
  %3077 = zext i8 %3076 to i32
  %3078 = sub nsw i32 255, %3077
  %3079 = trunc i32 %3078 to i8
  %3080 = load ptr, ptr %4, align 8, !tbaa !5
  %3081 = getelementptr inbounds %struct.MImage, ptr %3080, i32 0, i32 3
  %3082 = load i32, ptr %8, align 4, !tbaa !14
  %3083 = sext i32 %3082 to i64
  %3084 = getelementptr inbounds [4 x ptr], ptr %3081, i64 0, i64 %3083
  %3085 = load ptr, ptr %3084, align 8, !tbaa !5
  %3086 = load i32, ptr %9, align 4, !tbaa !14
  %3087 = sext i32 %3086 to i64
  %3088 = getelementptr inbounds ptr, ptr %3085, i64 %3087
  %3089 = load ptr, ptr %3088, align 8, !tbaa !5
  %3090 = load i32, ptr %10, align 4, !tbaa !14
  %3091 = add nsw i32 %3090, 5
  %3092 = sext i32 %3091 to i64
  %3093 = getelementptr inbounds i8, ptr %3089, i64 %3092
  store i8 %3079, ptr %3093, align 1, !tbaa !16
  %3094 = load ptr, ptr %3, align 8, !tbaa !5
  %3095 = getelementptr inbounds %struct.MImage, ptr %3094, i32 0, i32 3
  %3096 = load i32, ptr %8, align 4, !tbaa !14
  %3097 = sext i32 %3096 to i64
  %3098 = getelementptr inbounds [4 x ptr], ptr %3095, i64 0, i64 %3097
  %3099 = load ptr, ptr %3098, align 8, !tbaa !5
  %3100 = load i32, ptr %9, align 4, !tbaa !14
  %3101 = sext i32 %3100 to i64
  %3102 = getelementptr inbounds ptr, ptr %3099, i64 %3101
  %3103 = load ptr, ptr %3102, align 8, !tbaa !5
  %3104 = load i32, ptr %10, align 4, !tbaa !14
  %3105 = add nsw i32 %3104, 6
  %3106 = sext i32 %3105 to i64
  %3107 = getelementptr inbounds i8, ptr %3103, i64 %3106
  %3108 = load i8, ptr %3107, align 1, !tbaa !16
  %3109 = zext i8 %3108 to i32
  %3110 = sub nsw i32 255, %3109
  %3111 = trunc i32 %3110 to i8
  %3112 = load ptr, ptr %4, align 8, !tbaa !5
  %3113 = getelementptr inbounds %struct.MImage, ptr %3112, i32 0, i32 3
  %3114 = load i32, ptr %8, align 4, !tbaa !14
  %3115 = sext i32 %3114 to i64
  %3116 = getelementptr inbounds [4 x ptr], ptr %3113, i64 0, i64 %3115
  %3117 = load ptr, ptr %3116, align 8, !tbaa !5
  %3118 = load i32, ptr %9, align 4, !tbaa !14
  %3119 = sext i32 %3118 to i64
  %3120 = getelementptr inbounds ptr, ptr %3117, i64 %3119
  %3121 = load ptr, ptr %3120, align 8, !tbaa !5
  %3122 = load i32, ptr %10, align 4, !tbaa !14
  %3123 = add nsw i32 %3122, 6
  %3124 = sext i32 %3123 to i64
  %3125 = getelementptr inbounds i8, ptr %3121, i64 %3124
  store i8 %3111, ptr %3125, align 1, !tbaa !16
  %3126 = load ptr, ptr %3, align 8, !tbaa !5
  %3127 = getelementptr inbounds %struct.MImage, ptr %3126, i32 0, i32 3
  %3128 = load i32, ptr %8, align 4, !tbaa !14
  %3129 = sext i32 %3128 to i64
  %3130 = getelementptr inbounds [4 x ptr], ptr %3127, i64 0, i64 %3129
  %3131 = load ptr, ptr %3130, align 8, !tbaa !5
  %3132 = load i32, ptr %9, align 4, !tbaa !14
  %3133 = sext i32 %3132 to i64
  %3134 = getelementptr inbounds ptr, ptr %3131, i64 %3133
  %3135 = load ptr, ptr %3134, align 8, !tbaa !5
  %3136 = load i32, ptr %10, align 4, !tbaa !14
  %3137 = add nsw i32 %3136, 7
  %3138 = sext i32 %3137 to i64
  %3139 = getelementptr inbounds i8, ptr %3135, i64 %3138
  %3140 = load i8, ptr %3139, align 1, !tbaa !16
  %3141 = zext i8 %3140 to i32
  %3142 = sub nsw i32 255, %3141
  %3143 = trunc i32 %3142 to i8
  %3144 = load ptr, ptr %4, align 8, !tbaa !5
  %3145 = getelementptr inbounds %struct.MImage, ptr %3144, i32 0, i32 3
  %3146 = load i32, ptr %8, align 4, !tbaa !14
  %3147 = sext i32 %3146 to i64
  %3148 = getelementptr inbounds [4 x ptr], ptr %3145, i64 0, i64 %3147
  %3149 = load ptr, ptr %3148, align 8, !tbaa !5
  %3150 = load i32, ptr %9, align 4, !tbaa !14
  %3151 = sext i32 %3150 to i64
  %3152 = getelementptr inbounds ptr, ptr %3149, i64 %3151
  %3153 = load ptr, ptr %3152, align 8, !tbaa !5
  %3154 = load i32, ptr %10, align 4, !tbaa !14
  %3155 = add nsw i32 %3154, 7
  %3156 = sext i32 %3155 to i64
  %3157 = getelementptr inbounds i8, ptr %3153, i64 %3156
  store i8 %3143, ptr %3157, align 1, !tbaa !16
  %3158 = load ptr, ptr %3, align 8, !tbaa !5
  %3159 = getelementptr inbounds %struct.MImage, ptr %3158, i32 0, i32 3
  %3160 = load i32, ptr %8, align 4, !tbaa !14
  %3161 = sext i32 %3160 to i64
  %3162 = getelementptr inbounds [4 x ptr], ptr %3159, i64 0, i64 %3161
  %3163 = load ptr, ptr %3162, align 8, !tbaa !5
  %3164 = load i32, ptr %9, align 4, !tbaa !14
  %3165 = sext i32 %3164 to i64
  %3166 = getelementptr inbounds ptr, ptr %3163, i64 %3165
  %3167 = load ptr, ptr %3166, align 8, !tbaa !5
  %3168 = load i32, ptr %10, align 4, !tbaa !14
  %3169 = add nsw i32 %3168, 8
  %3170 = sext i32 %3169 to i64
  %3171 = getelementptr inbounds i8, ptr %3167, i64 %3170
  %3172 = load i8, ptr %3171, align 1, !tbaa !16
  %3173 = zext i8 %3172 to i32
  %3174 = sub nsw i32 255, %3173
  %3175 = trunc i32 %3174 to i8
  %3176 = load ptr, ptr %4, align 8, !tbaa !5
  %3177 = getelementptr inbounds %struct.MImage, ptr %3176, i32 0, i32 3
  %3178 = load i32, ptr %8, align 4, !tbaa !14
  %3179 = sext i32 %3178 to i64
  %3180 = getelementptr inbounds [4 x ptr], ptr %3177, i64 0, i64 %3179
  %3181 = load ptr, ptr %3180, align 8, !tbaa !5
  %3182 = load i32, ptr %9, align 4, !tbaa !14
  %3183 = sext i32 %3182 to i64
  %3184 = getelementptr inbounds ptr, ptr %3181, i64 %3183
  %3185 = load ptr, ptr %3184, align 8, !tbaa !5
  %3186 = load i32, ptr %10, align 4, !tbaa !14
  %3187 = add nsw i32 %3186, 8
  %3188 = sext i32 %3187 to i64
  %3189 = getelementptr inbounds i8, ptr %3185, i64 %3188
  store i8 %3175, ptr %3189, align 1, !tbaa !16
  %3190 = load ptr, ptr %3, align 8, !tbaa !5
  %3191 = getelementptr inbounds %struct.MImage, ptr %3190, i32 0, i32 3
  %3192 = load i32, ptr %8, align 4, !tbaa !14
  %3193 = sext i32 %3192 to i64
  %3194 = getelementptr inbounds [4 x ptr], ptr %3191, i64 0, i64 %3193
  %3195 = load ptr, ptr %3194, align 8, !tbaa !5
  %3196 = load i32, ptr %9, align 4, !tbaa !14
  %3197 = sext i32 %3196 to i64
  %3198 = getelementptr inbounds ptr, ptr %3195, i64 %3197
  %3199 = load ptr, ptr %3198, align 8, !tbaa !5
  %3200 = load i32, ptr %10, align 4, !tbaa !14
  %3201 = add nsw i32 %3200, 9
  %3202 = sext i32 %3201 to i64
  %3203 = getelementptr inbounds i8, ptr %3199, i64 %3202
  %3204 = load i8, ptr %3203, align 1, !tbaa !16
  %3205 = zext i8 %3204 to i32
  %3206 = sub nsw i32 255, %3205
  %3207 = trunc i32 %3206 to i8
  %3208 = load ptr, ptr %4, align 8, !tbaa !5
  %3209 = getelementptr inbounds %struct.MImage, ptr %3208, i32 0, i32 3
  %3210 = load i32, ptr %8, align 4, !tbaa !14
  %3211 = sext i32 %3210 to i64
  %3212 = getelementptr inbounds [4 x ptr], ptr %3209, i64 0, i64 %3211
  %3213 = load ptr, ptr %3212, align 8, !tbaa !5
  %3214 = load i32, ptr %9, align 4, !tbaa !14
  %3215 = sext i32 %3214 to i64
  %3216 = getelementptr inbounds ptr, ptr %3213, i64 %3215
  %3217 = load ptr, ptr %3216, align 8, !tbaa !5
  %3218 = load i32, ptr %10, align 4, !tbaa !14
  %3219 = add nsw i32 %3218, 9
  %3220 = sext i32 %3219 to i64
  %3221 = getelementptr inbounds i8, ptr %3217, i64 %3220
  store i8 %3207, ptr %3221, align 1, !tbaa !16
  %3222 = load ptr, ptr %3, align 8, !tbaa !5
  %3223 = getelementptr inbounds %struct.MImage, ptr %3222, i32 0, i32 3
  %3224 = load i32, ptr %8, align 4, !tbaa !14
  %3225 = sext i32 %3224 to i64
  %3226 = getelementptr inbounds [4 x ptr], ptr %3223, i64 0, i64 %3225
  %3227 = load ptr, ptr %3226, align 8, !tbaa !5
  %3228 = load i32, ptr %9, align 4, !tbaa !14
  %3229 = sext i32 %3228 to i64
  %3230 = getelementptr inbounds ptr, ptr %3227, i64 %3229
  %3231 = load ptr, ptr %3230, align 8, !tbaa !5
  %3232 = load i32, ptr %10, align 4, !tbaa !14
  %3233 = add nsw i32 %3232, 10
  %3234 = sext i32 %3233 to i64
  %3235 = getelementptr inbounds i8, ptr %3231, i64 %3234
  %3236 = load i8, ptr %3235, align 1, !tbaa !16
  %3237 = zext i8 %3236 to i32
  %3238 = sub nsw i32 255, %3237
  %3239 = trunc i32 %3238 to i8
  %3240 = load ptr, ptr %4, align 8, !tbaa !5
  %3241 = getelementptr inbounds %struct.MImage, ptr %3240, i32 0, i32 3
  %3242 = load i32, ptr %8, align 4, !tbaa !14
  %3243 = sext i32 %3242 to i64
  %3244 = getelementptr inbounds [4 x ptr], ptr %3241, i64 0, i64 %3243
  %3245 = load ptr, ptr %3244, align 8, !tbaa !5
  %3246 = load i32, ptr %9, align 4, !tbaa !14
  %3247 = sext i32 %3246 to i64
  %3248 = getelementptr inbounds ptr, ptr %3245, i64 %3247
  %3249 = load ptr, ptr %3248, align 8, !tbaa !5
  %3250 = load i32, ptr %10, align 4, !tbaa !14
  %3251 = add nsw i32 %3250, 10
  %3252 = sext i32 %3251 to i64
  %3253 = getelementptr inbounds i8, ptr %3249, i64 %3252
  store i8 %3239, ptr %3253, align 1, !tbaa !16
  %3254 = load ptr, ptr %3, align 8, !tbaa !5
  %3255 = getelementptr inbounds %struct.MImage, ptr %3254, i32 0, i32 3
  %3256 = load i32, ptr %8, align 4, !tbaa !14
  %3257 = sext i32 %3256 to i64
  %3258 = getelementptr inbounds [4 x ptr], ptr %3255, i64 0, i64 %3257
  %3259 = load ptr, ptr %3258, align 8, !tbaa !5
  %3260 = load i32, ptr %9, align 4, !tbaa !14
  %3261 = sext i32 %3260 to i64
  %3262 = getelementptr inbounds ptr, ptr %3259, i64 %3261
  %3263 = load ptr, ptr %3262, align 8, !tbaa !5
  %3264 = load i32, ptr %10, align 4, !tbaa !14
  %3265 = add nsw i32 %3264, 11
  %3266 = sext i32 %3265 to i64
  %3267 = getelementptr inbounds i8, ptr %3263, i64 %3266
  %3268 = load i8, ptr %3267, align 1, !tbaa !16
  %3269 = zext i8 %3268 to i32
  %3270 = sub nsw i32 255, %3269
  %3271 = trunc i32 %3270 to i8
  %3272 = load ptr, ptr %4, align 8, !tbaa !5
  %3273 = getelementptr inbounds %struct.MImage, ptr %3272, i32 0, i32 3
  %3274 = load i32, ptr %8, align 4, !tbaa !14
  %3275 = sext i32 %3274 to i64
  %3276 = getelementptr inbounds [4 x ptr], ptr %3273, i64 0, i64 %3275
  %3277 = load ptr, ptr %3276, align 8, !tbaa !5
  %3278 = load i32, ptr %9, align 4, !tbaa !14
  %3279 = sext i32 %3278 to i64
  %3280 = getelementptr inbounds ptr, ptr %3277, i64 %3279
  %3281 = load ptr, ptr %3280, align 8, !tbaa !5
  %3282 = load i32, ptr %10, align 4, !tbaa !14
  %3283 = add nsw i32 %3282, 11
  %3284 = sext i32 %3283 to i64
  %3285 = getelementptr inbounds i8, ptr %3281, i64 %3284
  store i8 %3271, ptr %3285, align 1, !tbaa !16
  br label %4657

3286:                                             ; preds = %2894
  %3287 = load ptr, ptr %4, align 8, !tbaa !5
  %3288 = getelementptr inbounds %struct.MImage, ptr %3287, i32 0, i32 2
  %3289 = load i32, ptr %3288, align 8, !tbaa !13
  %3290 = load i32, ptr %10, align 4, !tbaa !14
  %3291 = sub nsw i32 %3289, %3290
  %3292 = icmp eq i32 %3291, 13
  br i1 %3292, label %3293, label %3710

3293:                                             ; preds = %3286
  %3294 = load ptr, ptr %3, align 8, !tbaa !5
  %3295 = getelementptr inbounds %struct.MImage, ptr %3294, i32 0, i32 3
  %3296 = load i32, ptr %8, 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 %9, 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 %10, align 4, !tbaa !14
  %3305 = add nsw i32 %3304, 0
  %3306 = sext i32 %3305 to i64
  %3307 = getelementptr inbounds i8, ptr %3303, i64 %3306
  %3308 = load i8, ptr %3307, align 1, !tbaa !16
  %3309 = zext i8 %3308 to i32
  %3310 = sub nsw i32 255, %3309
  %3311 = trunc i32 %3310 to i8
  %3312 = load ptr, ptr %4, align 8, !tbaa !5
  %3313 = getelementptr inbounds %struct.MImage, ptr %3312, i32 0, i32 3
  %3314 = load i32, ptr %8, align 4, !tbaa !14
  %3315 = sext i32 %3314 to i64
  %3316 = getelementptr inbounds [4 x ptr], ptr %3313, i64 0, i64 %3315
  %3317 = load ptr, ptr %3316, align 8, !tbaa !5
  %3318 = load i32, ptr %9, align 4, !tbaa !14
  %3319 = sext i32 %3318 to i64
  %3320 = getelementptr inbounds ptr, ptr %3317, i64 %3319
  %3321 = load ptr, ptr %3320, align 8, !tbaa !5
  %3322 = load i32, ptr %10, align 4, !tbaa !14
  %3323 = add nsw i32 %3322, 0
  %3324 = sext i32 %3323 to i64
  %3325 = getelementptr inbounds i8, ptr %3321, i64 %3324
  store i8 %3311, ptr %3325, align 1, !tbaa !16
  %3326 = load ptr, ptr %3, align 8, !tbaa !5
  %3327 = getelementptr inbounds %struct.MImage, ptr %3326, i32 0, i32 3
  %3328 = load i32, ptr %8, align 4, !tbaa !14
  %3329 = sext i32 %3328 to i64
  %3330 = getelementptr inbounds [4 x ptr], ptr %3327, i64 0, i64 %3329
  %3331 = load ptr, ptr %3330, align 8, !tbaa !5
  %3332 = load i32, ptr %9, align 4, !tbaa !14
  %3333 = sext i32 %3332 to i64
  %3334 = getelementptr inbounds ptr, ptr %3331, i64 %3333
  %3335 = load ptr, ptr %3334, align 8, !tbaa !5
  %3336 = load i32, ptr %10, align 4, !tbaa !14
  %3337 = add nsw i32 %3336, 1
  %3338 = sext i32 %3337 to i64
  %3339 = getelementptr inbounds i8, ptr %3335, i64 %3338
  %3340 = load i8, ptr %3339, align 1, !tbaa !16
  %3341 = zext i8 %3340 to i32
  %3342 = sub nsw i32 255, %3341
  %3343 = trunc i32 %3342 to i8
  %3344 = load ptr, ptr %4, align 8, !tbaa !5
  %3345 = getelementptr inbounds %struct.MImage, ptr %3344, i32 0, i32 3
  %3346 = load i32, ptr %8, align 4, !tbaa !14
  %3347 = sext i32 %3346 to i64
  %3348 = getelementptr inbounds [4 x ptr], ptr %3345, i64 0, i64 %3347
  %3349 = load ptr, ptr %3348, align 8, !tbaa !5
  %3350 = load i32, ptr %9, align 4, !tbaa !14
  %3351 = sext i32 %3350 to i64
  %3352 = getelementptr inbounds ptr, ptr %3349, i64 %3351
  %3353 = load ptr, ptr %3352, align 8, !tbaa !5
  %3354 = load i32, ptr %10, align 4, !tbaa !14
  %3355 = add nsw i32 %3354, 1
  %3356 = sext i32 %3355 to i64
  %3357 = getelementptr inbounds i8, ptr %3353, i64 %3356
  store i8 %3343, ptr %3357, align 1, !tbaa !16
  %3358 = load ptr, ptr %3, align 8, !tbaa !5
  %3359 = getelementptr inbounds %struct.MImage, ptr %3358, i32 0, i32 3
  %3360 = load i32, ptr %8, align 4, !tbaa !14
  %3361 = sext i32 %3360 to i64
  %3362 = getelementptr inbounds [4 x ptr], ptr %3359, i64 0, i64 %3361
  %3363 = load ptr, ptr %3362, align 8, !tbaa !5
  %3364 = load i32, ptr %9, align 4, !tbaa !14
  %3365 = sext i32 %3364 to i64
  %3366 = getelementptr inbounds ptr, ptr %3363, i64 %3365
  %3367 = load ptr, ptr %3366, align 8, !tbaa !5
  %3368 = load i32, ptr %10, align 4, !tbaa !14
  %3369 = add nsw i32 %3368, 2
  %3370 = sext i32 %3369 to i64
  %3371 = getelementptr inbounds i8, ptr %3367, i64 %3370
  %3372 = load i8, ptr %3371, align 1, !tbaa !16
  %3373 = zext i8 %3372 to i32
  %3374 = sub nsw i32 255, %3373
  %3375 = trunc i32 %3374 to i8
  %3376 = load ptr, ptr %4, align 8, !tbaa !5
  %3377 = getelementptr inbounds %struct.MImage, ptr %3376, i32 0, i32 3
  %3378 = load i32, ptr %8, align 4, !tbaa !14
  %3379 = sext i32 %3378 to i64
  %3380 = getelementptr inbounds [4 x ptr], ptr %3377, i64 0, i64 %3379
  %3381 = load ptr, ptr %3380, align 8, !tbaa !5
  %3382 = load i32, ptr %9, align 4, !tbaa !14
  %3383 = sext i32 %3382 to i64
  %3384 = getelementptr inbounds ptr, ptr %3381, i64 %3383
  %3385 = load ptr, ptr %3384, align 8, !tbaa !5
  %3386 = load i32, ptr %10, align 4, !tbaa !14
  %3387 = add nsw i32 %3386, 2
  %3388 = sext i32 %3387 to i64
  %3389 = getelementptr inbounds i8, ptr %3385, i64 %3388
  store i8 %3375, ptr %3389, align 1, !tbaa !16
  %3390 = load ptr, ptr %3, align 8, !tbaa !5
  %3391 = getelementptr inbounds %struct.MImage, ptr %3390, i32 0, i32 3
  %3392 = load i32, ptr %8, align 4, !tbaa !14
  %3393 = sext i32 %3392 to i64
  %3394 = getelementptr inbounds [4 x ptr], ptr %3391, i64 0, i64 %3393
  %3395 = load ptr, ptr %3394, align 8, !tbaa !5
  %3396 = load i32, ptr %9, align 4, !tbaa !14
  %3397 = sext i32 %3396 to i64
  %3398 = getelementptr inbounds ptr, ptr %3395, i64 %3397
  %3399 = load ptr, ptr %3398, align 8, !tbaa !5
  %3400 = load i32, ptr %10, align 4, !tbaa !14
  %3401 = add nsw i32 %3400, 3
  %3402 = sext i32 %3401 to i64
  %3403 = getelementptr inbounds i8, ptr %3399, i64 %3402
  %3404 = load i8, ptr %3403, align 1, !tbaa !16
  %3405 = zext i8 %3404 to i32
  %3406 = sub nsw i32 255, %3405
  %3407 = trunc i32 %3406 to i8
  %3408 = load ptr, ptr %4, align 8, !tbaa !5
  %3409 = getelementptr inbounds %struct.MImage, ptr %3408, i32 0, i32 3
  %3410 = load i32, ptr %8, align 4, !tbaa !14
  %3411 = sext i32 %3410 to i64
  %3412 = getelementptr inbounds [4 x ptr], ptr %3409, i64 0, i64 %3411
  %3413 = load ptr, ptr %3412, align 8, !tbaa !5
  %3414 = load i32, ptr %9, align 4, !tbaa !14
  %3415 = sext i32 %3414 to i64
  %3416 = getelementptr inbounds ptr, ptr %3413, i64 %3415
  %3417 = load ptr, ptr %3416, align 8, !tbaa !5
  %3418 = load i32, ptr %10, align 4, !tbaa !14
  %3419 = add nsw i32 %3418, 3
  %3420 = sext i32 %3419 to i64
  %3421 = getelementptr inbounds i8, ptr %3417, i64 %3420
  store i8 %3407, ptr %3421, align 1, !tbaa !16
  %3422 = load ptr, ptr %3, align 8, !tbaa !5
  %3423 = getelementptr inbounds %struct.MImage, ptr %3422, i32 0, i32 3
  %3424 = load i32, ptr %8, align 4, !tbaa !14
  %3425 = sext i32 %3424 to i64
  %3426 = getelementptr inbounds [4 x ptr], ptr %3423, i64 0, i64 %3425
  %3427 = load ptr, ptr %3426, align 8, !tbaa !5
  %3428 = load i32, ptr %9, align 4, !tbaa !14
  %3429 = sext i32 %3428 to i64
  %3430 = getelementptr inbounds ptr, ptr %3427, i64 %3429
  %3431 = load ptr, ptr %3430, align 8, !tbaa !5
  %3432 = load i32, ptr %10, align 4, !tbaa !14
  %3433 = add nsw i32 %3432, 4
  %3434 = sext i32 %3433 to i64
  %3435 = getelementptr inbounds i8, ptr %3431, i64 %3434
  %3436 = load i8, ptr %3435, align 1, !tbaa !16
  %3437 = zext i8 %3436 to i32
  %3438 = sub nsw i32 255, %3437
  %3439 = trunc i32 %3438 to i8
  %3440 = load ptr, ptr %4, align 8, !tbaa !5
  %3441 = getelementptr inbounds %struct.MImage, ptr %3440, i32 0, i32 3
  %3442 = load i32, ptr %8, align 4, !tbaa !14
  %3443 = sext i32 %3442 to i64
  %3444 = getelementptr inbounds [4 x ptr], ptr %3441, i64 0, i64 %3443
  %3445 = load ptr, ptr %3444, align 8, !tbaa !5
  %3446 = load i32, ptr %9, align 4, !tbaa !14
  %3447 = sext i32 %3446 to i64
  %3448 = getelementptr inbounds ptr, ptr %3445, i64 %3447
  %3449 = load ptr, ptr %3448, align 8, !tbaa !5
  %3450 = load i32, ptr %10, align 4, !tbaa !14
  %3451 = add nsw i32 %3450, 4
  %3452 = sext i32 %3451 to i64
  %3453 = getelementptr inbounds i8, ptr %3449, i64 %3452
  store i8 %3439, ptr %3453, align 1, !tbaa !16
  %3454 = load ptr, ptr %3, align 8, !tbaa !5
  %3455 = getelementptr inbounds %struct.MImage, ptr %3454, i32 0, i32 3
  %3456 = load i32, ptr %8, align 4, !tbaa !14
  %3457 = sext i32 %3456 to i64
  %3458 = getelementptr inbounds [4 x ptr], ptr %3455, i64 0, i64 %3457
  %3459 = load ptr, ptr %3458, align 8, !tbaa !5
  %3460 = load i32, ptr %9, 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 %10, align 4, !tbaa !14
  %3465 = add nsw i32 %3464, 5
  %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 255, %3469
  %3471 = trunc i32 %3470 to i8
  %3472 = load ptr, ptr %4, align 8, !tbaa !5
  %3473 = getelementptr inbounds %struct.MImage, ptr %3472, i32 0, i32 3
  %3474 = load i32, ptr %8, align 4, !tbaa !14
  %3475 = sext i32 %3474 to i64
  %3476 = getelementptr inbounds [4 x ptr], ptr %3473, i64 0, i64 %3475
  %3477 = load ptr, ptr %3476, align 8, !tbaa !5
  %3478 = load i32, ptr %9, align 4, !tbaa !14
  %3479 = sext i32 %3478 to i64
  %3480 = getelementptr inbounds ptr, ptr %3477, i64 %3479
  %3481 = load ptr, ptr %3480, align 8, !tbaa !5
  %3482 = load i32, ptr %10, align 4, !tbaa !14
  %3483 = add nsw i32 %3482, 5
  %3484 = sext i32 %3483 to i64
  %3485 = getelementptr inbounds i8, ptr %3481, i64 %3484
  store i8 %3471, ptr %3485, align 1, !tbaa !16
  %3486 = load ptr, ptr %3, align 8, !tbaa !5
  %3487 = getelementptr inbounds %struct.MImage, ptr %3486, i32 0, i32 3
  %3488 = load i32, ptr %8, align 4, !tbaa !14
  %3489 = sext i32 %3488 to i64
  %3490 = getelementptr inbounds [4 x ptr], ptr %3487, i64 0, i64 %3489
  %3491 = load ptr, ptr %3490, align 8, !tbaa !5
  %3492 = load i32, ptr %9, align 4, !tbaa !14
  %3493 = sext i32 %3492 to i64
  %3494 = getelementptr inbounds ptr, ptr %3491, i64 %3493
  %3495 = load ptr, ptr %3494, align 8, !tbaa !5
  %3496 = load i32, ptr %10, align 4, !tbaa !14
  %3497 = add nsw i32 %3496, 6
  %3498 = sext i32 %3497 to i64
  %3499 = getelementptr inbounds i8, ptr %3495, i64 %3498
  %3500 = load i8, ptr %3499, align 1, !tbaa !16
  %3501 = zext i8 %3500 to i32
  %3502 = sub nsw i32 255, %3501
  %3503 = trunc i32 %3502 to i8
  %3504 = load ptr, ptr %4, align 8, !tbaa !5
  %3505 = getelementptr inbounds %struct.MImage, ptr %3504, i32 0, i32 3
  %3506 = load i32, ptr %8, align 4, !tbaa !14
  %3507 = sext i32 %3506 to i64
  %3508 = getelementptr inbounds [4 x ptr], ptr %3505, i64 0, i64 %3507
  %3509 = load ptr, ptr %3508, align 8, !tbaa !5
  %3510 = load i32, ptr %9, align 4, !tbaa !14
  %3511 = sext i32 %3510 to i64
  %3512 = getelementptr inbounds ptr, ptr %3509, i64 %3511
  %3513 = load ptr, ptr %3512, align 8, !tbaa !5
  %3514 = load i32, ptr %10, align 4, !tbaa !14
  %3515 = add nsw i32 %3514, 6
  %3516 = sext i32 %3515 to i64
  %3517 = getelementptr inbounds i8, ptr %3513, i64 %3516
  store i8 %3503, ptr %3517, align 1, !tbaa !16
  %3518 = load ptr, ptr %3, align 8, !tbaa !5
  %3519 = getelementptr inbounds %struct.MImage, ptr %3518, i32 0, i32 3
  %3520 = load i32, ptr %8, align 4, !tbaa !14
  %3521 = sext i32 %3520 to i64
  %3522 = getelementptr inbounds [4 x ptr], ptr %3519, i64 0, i64 %3521
  %3523 = load ptr, ptr %3522, align 8, !tbaa !5
  %3524 = load i32, ptr %9, align 4, !tbaa !14
  %3525 = sext i32 %3524 to i64
  %3526 = getelementptr inbounds ptr, ptr %3523, i64 %3525
  %3527 = load ptr, ptr %3526, align 8, !tbaa !5
  %3528 = load i32, ptr %10, align 4, !tbaa !14
  %3529 = add nsw i32 %3528, 7
  %3530 = sext i32 %3529 to i64
  %3531 = getelementptr inbounds i8, ptr %3527, i64 %3530
  %3532 = load i8, ptr %3531, align 1, !tbaa !16
  %3533 = zext i8 %3532 to i32
  %3534 = sub nsw i32 255, %3533
  %3535 = trunc i32 %3534 to i8
  %3536 = load ptr, ptr %4, align 8, !tbaa !5
  %3537 = getelementptr inbounds %struct.MImage, ptr %3536, i32 0, i32 3
  %3538 = load i32, ptr %8, align 4, !tbaa !14
  %3539 = sext i32 %3538 to i64
  %3540 = getelementptr inbounds [4 x ptr], ptr %3537, i64 0, i64 %3539
  %3541 = load ptr, ptr %3540, align 8, !tbaa !5
  %3542 = load i32, ptr %9, align 4, !tbaa !14
  %3543 = sext i32 %3542 to i64
  %3544 = getelementptr inbounds ptr, ptr %3541, i64 %3543
  %3545 = load ptr, ptr %3544, align 8, !tbaa !5
  %3546 = load i32, ptr %10, align 4, !tbaa !14
  %3547 = add nsw i32 %3546, 7
  %3548 = sext i32 %3547 to i64
  %3549 = getelementptr inbounds i8, ptr %3545, i64 %3548
  store i8 %3535, ptr %3549, align 1, !tbaa !16
  %3550 = load ptr, ptr %3, align 8, !tbaa !5
  %3551 = getelementptr inbounds %struct.MImage, ptr %3550, i32 0, i32 3
  %3552 = load i32, ptr %8, align 4, !tbaa !14
  %3553 = sext i32 %3552 to i64
  %3554 = getelementptr inbounds [4 x ptr], ptr %3551, i64 0, i64 %3553
  %3555 = load ptr, ptr %3554, align 8, !tbaa !5
  %3556 = load i32, ptr %9, align 4, !tbaa !14
  %3557 = sext i32 %3556 to i64
  %3558 = getelementptr inbounds ptr, ptr %3555, i64 %3557
  %3559 = load ptr, ptr %3558, align 8, !tbaa !5
  %3560 = load i32, ptr %10, align 4, !tbaa !14
  %3561 = add nsw i32 %3560, 8
  %3562 = sext i32 %3561 to i64
  %3563 = getelementptr inbounds i8, ptr %3559, i64 %3562
  %3564 = load i8, ptr %3563, align 1, !tbaa !16
  %3565 = zext i8 %3564 to i32
  %3566 = sub nsw i32 255, %3565
  %3567 = trunc i32 %3566 to i8
  %3568 = load ptr, ptr %4, align 8, !tbaa !5
  %3569 = getelementptr inbounds %struct.MImage, ptr %3568, i32 0, i32 3
  %3570 = load i32, ptr %8, align 4, !tbaa !14
  %3571 = sext i32 %3570 to i64
  %3572 = getelementptr inbounds [4 x ptr], ptr %3569, i64 0, i64 %3571
  %3573 = load ptr, ptr %3572, align 8, !tbaa !5
  %3574 = load i32, ptr %9, align 4, !tbaa !14
  %3575 = sext i32 %3574 to i64
  %3576 = getelementptr inbounds ptr, ptr %3573, i64 %3575
  %3577 = load ptr, ptr %3576, align 8, !tbaa !5
  %3578 = load i32, ptr %10, align 4, !tbaa !14
  %3579 = add nsw i32 %3578, 8
  %3580 = sext i32 %3579 to i64
  %3581 = getelementptr inbounds i8, ptr %3577, i64 %3580
  store i8 %3567, ptr %3581, align 1, !tbaa !16
  %3582 = load ptr, ptr %3, align 8, !tbaa !5
  %3583 = getelementptr inbounds %struct.MImage, ptr %3582, i32 0, i32 3
  %3584 = load i32, ptr %8, align 4, !tbaa !14
  %3585 = sext i32 %3584 to i64
  %3586 = getelementptr inbounds [4 x ptr], ptr %3583, i64 0, i64 %3585
  %3587 = load ptr, ptr %3586, align 8, !tbaa !5
  %3588 = load i32, ptr %9, align 4, !tbaa !14
  %3589 = sext i32 %3588 to i64
  %3590 = getelementptr inbounds ptr, ptr %3587, i64 %3589
  %3591 = load ptr, ptr %3590, align 8, !tbaa !5
  %3592 = load i32, ptr %10, align 4, !tbaa !14
  %3593 = add nsw i32 %3592, 9
  %3594 = sext i32 %3593 to i64
  %3595 = getelementptr inbounds i8, ptr %3591, i64 %3594
  %3596 = load i8, ptr %3595, align 1, !tbaa !16
  %3597 = zext i8 %3596 to i32
  %3598 = sub nsw i32 255, %3597
  %3599 = trunc i32 %3598 to i8
  %3600 = load ptr, ptr %4, align 8, !tbaa !5
  %3601 = getelementptr inbounds %struct.MImage, ptr %3600, i32 0, i32 3
  %3602 = load i32, ptr %8, align 4, !tbaa !14
  %3603 = sext i32 %3602 to i64
  %3604 = getelementptr inbounds [4 x ptr], ptr %3601, i64 0, i64 %3603
  %3605 = load ptr, ptr %3604, align 8, !tbaa !5
  %3606 = load i32, ptr %9, 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 %10, align 4, !tbaa !14
  %3611 = add nsw i32 %3610, 9
  %3612 = sext i32 %3611 to i64
  %3613 = getelementptr inbounds i8, ptr %3609, i64 %3612
  store i8 %3599, ptr %3613, align 1, !tbaa !16
  %3614 = load ptr, ptr %3, align 8, !tbaa !5
  %3615 = getelementptr inbounds %struct.MImage, ptr %3614, i32 0, i32 3
  %3616 = load i32, ptr %8, align 4, !tbaa !14
  %3617 = sext i32 %3616 to i64
  %3618 = getelementptr inbounds [4 x ptr], ptr %3615, i64 0, i64 %3617
  %3619 = load ptr, ptr %3618, align 8, !tbaa !5
  %3620 = load i32, ptr %9, align 4, !tbaa !14
  %3621 = sext i32 %3620 to i64
  %3622 = getelementptr inbounds ptr, ptr %3619, i64 %3621
  %3623 = load ptr, ptr %3622, align 8, !tbaa !5
  %3624 = load i32, ptr %10, align 4, !tbaa !14
  %3625 = add nsw i32 %3624, 10
  %3626 = sext i32 %3625 to i64
  %3627 = getelementptr inbounds i8, ptr %3623, i64 %3626
  %3628 = load i8, ptr %3627, align 1, !tbaa !16
  %3629 = zext i8 %3628 to i32
  %3630 = sub nsw i32 255, %3629
  %3631 = trunc i32 %3630 to i8
  %3632 = load ptr, ptr %4, align 8, !tbaa !5
  %3633 = getelementptr inbounds %struct.MImage, ptr %3632, i32 0, i32 3
  %3634 = load i32, ptr %8, 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 %9, 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 %10, align 4, !tbaa !14
  %3643 = add nsw i32 %3642, 10
  %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 %3, align 8, !tbaa !5
  %3647 = getelementptr inbounds %struct.MImage, ptr %3646, i32 0, i32 3
  %3648 = load i32, ptr %8, align 4, !tbaa !14
  %3649 = sext i32 %3648 to i64
  %3650 = getelementptr inbounds [4 x ptr], ptr %3647, i64 0, i64 %3649
  %3651 = load ptr, ptr %3650, align 8, !tbaa !5
  %3652 = load i32, ptr %9, align 4, !tbaa !14
  %3653 = sext i32 %3652 to i64
  %3654 = getelementptr inbounds ptr, ptr %3651, i64 %3653
  %3655 = load ptr, ptr %3654, align 8, !tbaa !5
  %3656 = load i32, ptr %10, align 4, !tbaa !14
  %3657 = add nsw i32 %3656, 11
  %3658 = sext i32 %3657 to i64
  %3659 = getelementptr inbounds i8, ptr %3655, i64 %3658
  %3660 = load i8, ptr %3659, align 1, !tbaa !16
  %3661 = zext i8 %3660 to i32
  %3662 = sub nsw i32 255, %3661
  %3663 = trunc i32 %3662 to i8
  %3664 = load ptr, ptr %4, align 8, !tbaa !5
  %3665 = getelementptr inbounds %struct.MImage, ptr %3664, i32 0, i32 3
  %3666 = load i32, ptr %8, align 4, !tbaa !14
  %3667 = sext i32 %3666 to i64
  %3668 = getelementptr inbounds [4 x ptr], ptr %3665, i64 0, i64 %3667
  %3669 = load ptr, ptr %3668, align 8, !tbaa !5
  %3670 = load i32, ptr %9, align 4, !tbaa !14
  %3671 = sext i32 %3670 to i64
  %3672 = getelementptr inbounds ptr, ptr %3669, i64 %3671
  %3673 = load ptr, ptr %3672, align 8, !tbaa !5
  %3674 = load i32, ptr %10, align 4, !tbaa !14
  %3675 = add nsw i32 %3674, 11
  %3676 = sext i32 %3675 to i64
  %3677 = getelementptr inbounds i8, ptr %3673, i64 %3676
  store i8 %3663, ptr %3677, align 1, !tbaa !16
  %3678 = load ptr, ptr %3, align 8, !tbaa !5
  %3679 = getelementptr inbounds %struct.MImage, ptr %3678, i32 0, i32 3
  %3680 = load i32, ptr %8, align 4, !tbaa !14
  %3681 = sext i32 %3680 to i64
  %3682 = getelementptr inbounds [4 x ptr], ptr %3679, i64 0, i64 %3681
  %3683 = load ptr, ptr %3682, align 8, !tbaa !5
  %3684 = load i32, ptr %9, align 4, !tbaa !14
  %3685 = sext i32 %3684 to i64
  %3686 = getelementptr inbounds ptr, ptr %3683, i64 %3685
  %3687 = load ptr, ptr %3686, align 8, !tbaa !5
  %3688 = load i32, ptr %10, align 4, !tbaa !14
  %3689 = add nsw i32 %3688, 12
  %3690 = sext i32 %3689 to i64
  %3691 = getelementptr inbounds i8, ptr %3687, i64 %3690
  %3692 = load i8, ptr %3691, align 1, !tbaa !16
  %3693 = zext i8 %3692 to i32
  %3694 = sub nsw i32 255, %3693
  %3695 = trunc i32 %3694 to i8
  %3696 = load ptr, ptr %4, align 8, !tbaa !5
  %3697 = getelementptr inbounds %struct.MImage, ptr %3696, i32 0, i32 3
  %3698 = load i32, ptr %8, align 4, !tbaa !14
  %3699 = sext i32 %3698 to i64
  %3700 = getelementptr inbounds [4 x ptr], ptr %3697, i64 0, i64 %3699
  %3701 = load ptr, ptr %3700, align 8, !tbaa !5
  %3702 = load i32, ptr %9, align 4, !tbaa !14
  %3703 = sext i32 %3702 to i64
  %3704 = getelementptr inbounds ptr, ptr %3701, i64 %3703
  %3705 = load ptr, ptr %3704, align 8, !tbaa !5
  %3706 = load i32, ptr %10, align 4, !tbaa !14
  %3707 = add nsw i32 %3706, 12
  %3708 = sext i32 %3707 to i64
  %3709 = getelementptr inbounds i8, ptr %3705, i64 %3708
  store i8 %3695, ptr %3709, align 1, !tbaa !16
  br label %4656

3710:                                             ; preds = %3286
  %3711 = load ptr, ptr %4, align 8, !tbaa !5
  %3712 = getelementptr inbounds %struct.MImage, ptr %3711, i32 0, i32 2
  %3713 = load i32, ptr %3712, align 8, !tbaa !13
  %3714 = load i32, ptr %10, align 4, !tbaa !14
  %3715 = sub nsw i32 %3713, %3714
  %3716 = icmp eq i32 %3715, 14
  br i1 %3716, label %3717, label %4166

3717:                                             ; preds = %3710
  %3718 = load ptr, ptr %3, align 8, !tbaa !5
  %3719 = getelementptr inbounds %struct.MImage, ptr %3718, i32 0, i32 3
  %3720 = load i32, ptr %8, align 4, !tbaa !14
  %3721 = sext i32 %3720 to i64
  %3722 = getelementptr inbounds [4 x ptr], ptr %3719, i64 0, i64 %3721
  %3723 = load ptr, ptr %3722, align 8, !tbaa !5
  %3724 = load i32, ptr %9, 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 %10, align 4, !tbaa !14
  %3729 = add nsw i32 %3728, 0
  %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 255, %3733
  %3735 = trunc i32 %3734 to i8
  %3736 = load ptr, ptr %4, align 8, !tbaa !5
  %3737 = getelementptr inbounds %struct.MImage, ptr %3736, i32 0, i32 3
  %3738 = load i32, ptr %8, align 4, !tbaa !14
  %3739 = sext i32 %3738 to i64
  %3740 = getelementptr inbounds [4 x ptr], ptr %3737, i64 0, i64 %3739
  %3741 = load ptr, ptr %3740, align 8, !tbaa !5
  %3742 = load i32, ptr %9, align 4, !tbaa !14
  %3743 = sext i32 %3742 to i64
  %3744 = getelementptr inbounds ptr, ptr %3741, i64 %3743
  %3745 = load ptr, ptr %3744, align 8, !tbaa !5
  %3746 = load i32, ptr %10, align 4, !tbaa !14
  %3747 = add nsw i32 %3746, 0
  %3748 = sext i32 %3747 to i64
  %3749 = getelementptr inbounds i8, ptr %3745, i64 %3748
  store i8 %3735, ptr %3749, align 1, !tbaa !16
  %3750 = load ptr, ptr %3, align 8, !tbaa !5
  %3751 = getelementptr inbounds %struct.MImage, ptr %3750, i32 0, i32 3
  %3752 = load i32, ptr %8, align 4, !tbaa !14
  %3753 = sext i32 %3752 to i64
  %3754 = getelementptr inbounds [4 x ptr], ptr %3751, i64 0, i64 %3753
  %3755 = load ptr, ptr %3754, align 8, !tbaa !5
  %3756 = load i32, ptr %9, align 4, !tbaa !14
  %3757 = sext i32 %3756 to i64
  %3758 = getelementptr inbounds ptr, ptr %3755, i64 %3757
  %3759 = load ptr, ptr %3758, align 8, !tbaa !5
  %3760 = load i32, ptr %10, align 4, !tbaa !14
  %3761 = add nsw i32 %3760, 1
  %3762 = sext i32 %3761 to i64
  %3763 = getelementptr inbounds i8, ptr %3759, i64 %3762
  %3764 = load i8, ptr %3763, align 1, !tbaa !16
  %3765 = zext i8 %3764 to i32
  %3766 = sub nsw i32 255, %3765
  %3767 = trunc i32 %3766 to i8
  %3768 = load ptr, ptr %4, align 8, !tbaa !5
  %3769 = getelementptr inbounds %struct.MImage, ptr %3768, i32 0, i32 3
  %3770 = load i32, ptr %8, align 4, !tbaa !14
  %3771 = sext i32 %3770 to i64
  %3772 = getelementptr inbounds [4 x ptr], ptr %3769, i64 0, i64 %3771
  %3773 = load ptr, ptr %3772, align 8, !tbaa !5
  %3774 = load i32, ptr %9, align 4, !tbaa !14
  %3775 = sext i32 %3774 to i64
  %3776 = getelementptr inbounds ptr, ptr %3773, i64 %3775
  %3777 = load ptr, ptr %3776, align 8, !tbaa !5
  %3778 = load i32, ptr %10, align 4, !tbaa !14
  %3779 = add nsw i32 %3778, 1
  %3780 = sext i32 %3779 to i64
  %3781 = getelementptr inbounds i8, ptr %3777, i64 %3780
  store i8 %3767, ptr %3781, align 1, !tbaa !16
  %3782 = load ptr, ptr %3, align 8, !tbaa !5
  %3783 = getelementptr inbounds %struct.MImage, ptr %3782, i32 0, i32 3
  %3784 = load i32, ptr %8, align 4, !tbaa !14
  %3785 = sext i32 %3784 to i64
  %3786 = getelementptr inbounds [4 x ptr], ptr %3783, i64 0, i64 %3785
  %3787 = load ptr, ptr %3786, align 8, !tbaa !5
  %3788 = load i32, ptr %9, align 4, !tbaa !14
  %3789 = sext i32 %3788 to i64
  %3790 = getelementptr inbounds ptr, ptr %3787, i64 %3789
  %3791 = load ptr, ptr %3790, align 8, !tbaa !5
  %3792 = load i32, ptr %10, align 4, !tbaa !14
  %3793 = add nsw i32 %3792, 2
  %3794 = sext i32 %3793 to i64
  %3795 = getelementptr inbounds i8, ptr %3791, i64 %3794
  %3796 = load i8, ptr %3795, align 1, !tbaa !16
  %3797 = zext i8 %3796 to i32
  %3798 = sub nsw i32 255, %3797
  %3799 = trunc i32 %3798 to i8
  %3800 = load ptr, ptr %4, align 8, !tbaa !5
  %3801 = getelementptr inbounds %struct.MImage, ptr %3800, i32 0, i32 3
  %3802 = load i32, ptr %8, align 4, !tbaa !14
  %3803 = sext i32 %3802 to i64
  %3804 = getelementptr inbounds [4 x ptr], ptr %3801, i64 0, i64 %3803
  %3805 = load ptr, ptr %3804, align 8, !tbaa !5
  %3806 = load i32, ptr %9, align 4, !tbaa !14
  %3807 = sext i32 %3806 to i64
  %3808 = getelementptr inbounds ptr, ptr %3805, i64 %3807
  %3809 = load ptr, ptr %3808, align 8, !tbaa !5
  %3810 = load i32, ptr %10, align 4, !tbaa !14
  %3811 = add nsw i32 %3810, 2
  %3812 = sext i32 %3811 to i64
  %3813 = getelementptr inbounds i8, ptr %3809, i64 %3812
  store i8 %3799, ptr %3813, align 1, !tbaa !16
  %3814 = load ptr, ptr %3, align 8, !tbaa !5
  %3815 = getelementptr inbounds %struct.MImage, ptr %3814, i32 0, i32 3
  %3816 = load i32, ptr %8, align 4, !tbaa !14
  %3817 = sext i32 %3816 to i64
  %3818 = getelementptr inbounds [4 x ptr], ptr %3815, i64 0, i64 %3817
  %3819 = load ptr, ptr %3818, align 8, !tbaa !5
  %3820 = load i32, ptr %9, align 4, !tbaa !14
  %3821 = sext i32 %3820 to i64
  %3822 = getelementptr inbounds ptr, ptr %3819, i64 %3821
  %3823 = load ptr, ptr %3822, align 8, !tbaa !5
  %3824 = load i32, ptr %10, align 4, !tbaa !14
  %3825 = add nsw i32 %3824, 3
  %3826 = sext i32 %3825 to i64
  %3827 = getelementptr inbounds i8, ptr %3823, i64 %3826
  %3828 = load i8, ptr %3827, align 1, !tbaa !16
  %3829 = zext i8 %3828 to i32
  %3830 = sub nsw i32 255, %3829
  %3831 = trunc i32 %3830 to i8
  %3832 = load ptr, ptr %4, align 8, !tbaa !5
  %3833 = getelementptr inbounds %struct.MImage, ptr %3832, i32 0, i32 3
  %3834 = load i32, ptr %8, align 4, !tbaa !14
  %3835 = sext i32 %3834 to i64
  %3836 = getelementptr inbounds [4 x ptr], ptr %3833, i64 0, i64 %3835
  %3837 = load ptr, ptr %3836, align 8, !tbaa !5
  %3838 = load i32, ptr %9, align 4, !tbaa !14
  %3839 = sext i32 %3838 to i64
  %3840 = getelementptr inbounds ptr, ptr %3837, i64 %3839
  %3841 = load ptr, ptr %3840, align 8, !tbaa !5
  %3842 = load i32, ptr %10, align 4, !tbaa !14
  %3843 = add nsw i32 %3842, 3
  %3844 = sext i32 %3843 to i64
  %3845 = getelementptr inbounds i8, ptr %3841, i64 %3844
  store i8 %3831, ptr %3845, align 1, !tbaa !16
  %3846 = load ptr, ptr %3, align 8, !tbaa !5
  %3847 = getelementptr inbounds %struct.MImage, ptr %3846, i32 0, i32 3
  %3848 = load i32, ptr %8, align 4, !tbaa !14
  %3849 = sext i32 %3848 to i64
  %3850 = getelementptr inbounds [4 x ptr], ptr %3847, i64 0, i64 %3849
  %3851 = load ptr, ptr %3850, align 8, !tbaa !5
  %3852 = load i32, ptr %9, align 4, !tbaa !14
  %3853 = sext i32 %3852 to i64
  %3854 = getelementptr inbounds ptr, ptr %3851, i64 %3853
  %3855 = load ptr, ptr %3854, align 8, !tbaa !5
  %3856 = load i32, ptr %10, align 4, !tbaa !14
  %3857 = add nsw i32 %3856, 4
  %3858 = sext i32 %3857 to i64
  %3859 = getelementptr inbounds i8, ptr %3855, i64 %3858
  %3860 = load i8, ptr %3859, align 1, !tbaa !16
  %3861 = zext i8 %3860 to i32
  %3862 = sub nsw i32 255, %3861
  %3863 = trunc i32 %3862 to i8
  %3864 = load ptr, ptr %4, align 8, !tbaa !5
  %3865 = getelementptr inbounds %struct.MImage, ptr %3864, i32 0, i32 3
  %3866 = load i32, ptr %8, align 4, !tbaa !14
  %3867 = sext i32 %3866 to i64
  %3868 = getelementptr inbounds [4 x ptr], ptr %3865, i64 0, i64 %3867
  %3869 = load ptr, ptr %3868, align 8, !tbaa !5
  %3870 = load i32, ptr %9, align 4, !tbaa !14
  %3871 = sext i32 %3870 to i64
  %3872 = getelementptr inbounds ptr, ptr %3869, i64 %3871
  %3873 = load ptr, ptr %3872, align 8, !tbaa !5
  %3874 = load i32, ptr %10, align 4, !tbaa !14
  %3875 = add nsw i32 %3874, 4
  %3876 = sext i32 %3875 to i64
  %3877 = getelementptr inbounds i8, ptr %3873, i64 %3876
  store i8 %3863, ptr %3877, align 1, !tbaa !16
  %3878 = load ptr, ptr %3, align 8, !tbaa !5
  %3879 = getelementptr inbounds %struct.MImage, ptr %3878, i32 0, i32 3
  %3880 = load i32, ptr %8, align 4, !tbaa !14
  %3881 = sext i32 %3880 to i64
  %3882 = getelementptr inbounds [4 x ptr], ptr %3879, i64 0, i64 %3881
  %3883 = load ptr, ptr %3882, align 8, !tbaa !5
  %3884 = load i32, ptr %9, align 4, !tbaa !14
  %3885 = sext i32 %3884 to i64
  %3886 = getelementptr inbounds ptr, ptr %3883, i64 %3885
  %3887 = load ptr, ptr %3886, align 8, !tbaa !5
  %3888 = load i32, ptr %10, align 4, !tbaa !14
  %3889 = add nsw i32 %3888, 5
  %3890 = sext i32 %3889 to i64
  %3891 = getelementptr inbounds i8, ptr %3887, i64 %3890
  %3892 = load i8, ptr %3891, align 1, !tbaa !16
  %3893 = zext i8 %3892 to i32
  %3894 = sub nsw i32 255, %3893
  %3895 = trunc i32 %3894 to i8
  %3896 = load ptr, ptr %4, align 8, !tbaa !5
  %3897 = getelementptr inbounds %struct.MImage, ptr %3896, i32 0, i32 3
  %3898 = load i32, ptr %8, align 4, !tbaa !14
  %3899 = sext i32 %3898 to i64
  %3900 = getelementptr inbounds [4 x ptr], ptr %3897, i64 0, i64 %3899
  %3901 = load ptr, ptr %3900, align 8, !tbaa !5
  %3902 = load i32, ptr %9, align 4, !tbaa !14
  %3903 = sext i32 %3902 to i64
  %3904 = getelementptr inbounds ptr, ptr %3901, i64 %3903
  %3905 = load ptr, ptr %3904, align 8, !tbaa !5
  %3906 = load i32, ptr %10, align 4, !tbaa !14
  %3907 = add nsw i32 %3906, 5
  %3908 = sext i32 %3907 to i64
  %3909 = getelementptr inbounds i8, ptr %3905, i64 %3908
  store i8 %3895, ptr %3909, align 1, !tbaa !16
  %3910 = load ptr, ptr %3, align 8, !tbaa !5
  %3911 = getelementptr inbounds %struct.MImage, ptr %3910, i32 0, i32 3
  %3912 = load i32, ptr %8, align 4, !tbaa !14
  %3913 = sext i32 %3912 to i64
  %3914 = getelementptr inbounds [4 x ptr], ptr %3911, i64 0, i64 %3913
  %3915 = load ptr, ptr %3914, align 8, !tbaa !5
  %3916 = load i32, ptr %9, align 4, !tbaa !14
  %3917 = sext i32 %3916 to i64
  %3918 = getelementptr inbounds ptr, ptr %3915, i64 %3917
  %3919 = load ptr, ptr %3918, align 8, !tbaa !5
  %3920 = load i32, ptr %10, align 4, !tbaa !14
  %3921 = add nsw i32 %3920, 6
  %3922 = sext i32 %3921 to i64
  %3923 = getelementptr inbounds i8, ptr %3919, i64 %3922
  %3924 = load i8, ptr %3923, align 1, !tbaa !16
  %3925 = zext i8 %3924 to i32
  %3926 = sub nsw i32 255, %3925
  %3927 = trunc i32 %3926 to i8
  %3928 = load ptr, ptr %4, align 8, !tbaa !5
  %3929 = getelementptr inbounds %struct.MImage, ptr %3928, i32 0, i32 3
  %3930 = load i32, ptr %8, align 4, !tbaa !14
  %3931 = sext i32 %3930 to i64
  %3932 = getelementptr inbounds [4 x ptr], ptr %3929, i64 0, i64 %3931
  %3933 = load ptr, ptr %3932, align 8, !tbaa !5
  %3934 = load i32, ptr %9, align 4, !tbaa !14
  %3935 = sext i32 %3934 to i64
  %3936 = getelementptr inbounds ptr, ptr %3933, i64 %3935
  %3937 = load ptr, ptr %3936, align 8, !tbaa !5
  %3938 = load i32, ptr %10, align 4, !tbaa !14
  %3939 = add nsw i32 %3938, 6
  %3940 = sext i32 %3939 to i64
  %3941 = getelementptr inbounds i8, ptr %3937, i64 %3940
  store i8 %3927, ptr %3941, align 1, !tbaa !16
  %3942 = load ptr, ptr %3, align 8, !tbaa !5
  %3943 = getelementptr inbounds %struct.MImage, ptr %3942, i32 0, i32 3
  %3944 = load i32, ptr %8, align 4, !tbaa !14
  %3945 = sext i32 %3944 to i64
  %3946 = getelementptr inbounds [4 x ptr], ptr %3943, i64 0, i64 %3945
  %3947 = load ptr, ptr %3946, align 8, !tbaa !5
  %3948 = load i32, ptr %9, align 4, !tbaa !14
  %3949 = sext i32 %3948 to i64
  %3950 = getelementptr inbounds ptr, ptr %3947, i64 %3949
  %3951 = load ptr, ptr %3950, align 8, !tbaa !5
  %3952 = load i32, ptr %10, align 4, !tbaa !14
  %3953 = add nsw i32 %3952, 7
  %3954 = sext i32 %3953 to i64
  %3955 = getelementptr inbounds i8, ptr %3951, i64 %3954
  %3956 = load i8, ptr %3955, align 1, !tbaa !16
  %3957 = zext i8 %3956 to i32
  %3958 = sub nsw i32 255, %3957
  %3959 = trunc i32 %3958 to i8
  %3960 = load ptr, ptr %4, align 8, !tbaa !5
  %3961 = getelementptr inbounds %struct.MImage, ptr %3960, i32 0, i32 3
  %3962 = load i32, ptr %8, align 4, !tbaa !14
  %3963 = sext i32 %3962 to i64
  %3964 = getelementptr inbounds [4 x ptr], ptr %3961, i64 0, i64 %3963
  %3965 = load ptr, ptr %3964, align 8, !tbaa !5
  %3966 = load i32, ptr %9, align 4, !tbaa !14
  %3967 = sext i32 %3966 to i64
  %3968 = getelementptr inbounds ptr, ptr %3965, i64 %3967
  %3969 = load ptr, ptr %3968, align 8, !tbaa !5
  %3970 = load i32, ptr %10, align 4, !tbaa !14
  %3971 = add nsw i32 %3970, 7
  %3972 = sext i32 %3971 to i64
  %3973 = getelementptr inbounds i8, ptr %3969, i64 %3972
  store i8 %3959, ptr %3973, align 1, !tbaa !16
  %3974 = load ptr, ptr %3, align 8, !tbaa !5
  %3975 = getelementptr inbounds %struct.MImage, ptr %3974, i32 0, i32 3
  %3976 = load i32, ptr %8, align 4, !tbaa !14
  %3977 = sext i32 %3976 to i64
  %3978 = getelementptr inbounds [4 x ptr], ptr %3975, i64 0, i64 %3977
  %3979 = load ptr, ptr %3978, align 8, !tbaa !5
  %3980 = load i32, ptr %9, align 4, !tbaa !14
  %3981 = sext i32 %3980 to i64
  %3982 = getelementptr inbounds ptr, ptr %3979, i64 %3981
  %3983 = load ptr, ptr %3982, align 8, !tbaa !5
  %3984 = load i32, ptr %10, align 4, !tbaa !14
  %3985 = add nsw i32 %3984, 8
  %3986 = sext i32 %3985 to i64
  %3987 = getelementptr inbounds i8, ptr %3983, i64 %3986
  %3988 = load i8, ptr %3987, align 1, !tbaa !16
  %3989 = zext i8 %3988 to i32
  %3990 = sub nsw i32 255, %3989
  %3991 = trunc i32 %3990 to i8
  %3992 = load ptr, ptr %4, align 8, !tbaa !5
  %3993 = getelementptr inbounds %struct.MImage, ptr %3992, i32 0, i32 3
  %3994 = load i32, ptr %8, align 4, !tbaa !14
  %3995 = sext i32 %3994 to i64
  %3996 = getelementptr inbounds [4 x ptr], ptr %3993, i64 0, i64 %3995
  %3997 = load ptr, ptr %3996, align 8, !tbaa !5
  %3998 = load i32, ptr %9, align 4, !tbaa !14
  %3999 = sext i32 %3998 to i64
  %4000 = getelementptr inbounds ptr, ptr %3997, i64 %3999
  %4001 = load ptr, ptr %4000, align 8, !tbaa !5
  %4002 = load i32, ptr %10, align 4, !tbaa !14
  %4003 = add nsw i32 %4002, 8
  %4004 = sext i32 %4003 to i64
  %4005 = getelementptr inbounds i8, ptr %4001, i64 %4004
  store i8 %3991, ptr %4005, align 1, !tbaa !16
  %4006 = load ptr, ptr %3, align 8, !tbaa !5
  %4007 = getelementptr inbounds %struct.MImage, ptr %4006, i32 0, i32 3
  %4008 = load i32, ptr %8, align 4, !tbaa !14
  %4009 = sext i32 %4008 to i64
  %4010 = getelementptr inbounds [4 x ptr], ptr %4007, i64 0, i64 %4009
  %4011 = load ptr, ptr %4010, align 8, !tbaa !5
  %4012 = load i32, ptr %9, align 4, !tbaa !14
  %4013 = sext i32 %4012 to i64
  %4014 = getelementptr inbounds ptr, ptr %4011, i64 %4013
  %4015 = load ptr, ptr %4014, align 8, !tbaa !5
  %4016 = load i32, ptr %10, align 4, !tbaa !14
  %4017 = add nsw i32 %4016, 9
  %4018 = sext i32 %4017 to i64
  %4019 = getelementptr inbounds i8, ptr %4015, i64 %4018
  %4020 = load i8, ptr %4019, align 1, !tbaa !16
  %4021 = zext i8 %4020 to i32
  %4022 = sub nsw i32 255, %4021
  %4023 = trunc i32 %4022 to i8
  %4024 = load ptr, ptr %4, align 8, !tbaa !5
  %4025 = getelementptr inbounds %struct.MImage, ptr %4024, i32 0, i32 3
  %4026 = load i32, ptr %8, align 4, !tbaa !14
  %4027 = sext i32 %4026 to i64
  %4028 = getelementptr inbounds [4 x ptr], ptr %4025, i64 0, i64 %4027
  %4029 = load ptr, ptr %4028, align 8, !tbaa !5
  %4030 = load i32, ptr %9, align 4, !tbaa !14
  %4031 = sext i32 %4030 to i64
  %4032 = getelementptr inbounds ptr, ptr %4029, i64 %4031
  %4033 = load ptr, ptr %4032, align 8, !tbaa !5
  %4034 = load i32, ptr %10, align 4, !tbaa !14
  %4035 = add nsw i32 %4034, 9
  %4036 = sext i32 %4035 to i64
  %4037 = getelementptr inbounds i8, ptr %4033, i64 %4036
  store i8 %4023, ptr %4037, align 1, !tbaa !16
  %4038 = load ptr, ptr %3, align 8, !tbaa !5
  %4039 = getelementptr inbounds %struct.MImage, ptr %4038, i32 0, i32 3
  %4040 = load i32, ptr %8, align 4, !tbaa !14
  %4041 = sext i32 %4040 to i64
  %4042 = getelementptr inbounds [4 x ptr], ptr %4039, i64 0, i64 %4041
  %4043 = load ptr, ptr %4042, align 8, !tbaa !5
  %4044 = load i32, ptr %9, align 4, !tbaa !14
  %4045 = sext i32 %4044 to i64
  %4046 = getelementptr inbounds ptr, ptr %4043, i64 %4045
  %4047 = load ptr, ptr %4046, align 8, !tbaa !5
  %4048 = load i32, ptr %10, align 4, !tbaa !14
  %4049 = add nsw i32 %4048, 10
  %4050 = sext i32 %4049 to i64
  %4051 = getelementptr inbounds i8, ptr %4047, i64 %4050
  %4052 = load i8, ptr %4051, align 1, !tbaa !16
  %4053 = zext i8 %4052 to i32
  %4054 = sub nsw i32 255, %4053
  %4055 = trunc i32 %4054 to i8
  %4056 = load ptr, ptr %4, align 8, !tbaa !5
  %4057 = getelementptr inbounds %struct.MImage, ptr %4056, i32 0, i32 3
  %4058 = load i32, ptr %8, align 4, !tbaa !14
  %4059 = sext i32 %4058 to i64
  %4060 = getelementptr inbounds [4 x ptr], ptr %4057, i64 0, i64 %4059
  %4061 = load ptr, ptr %4060, align 8, !tbaa !5
  %4062 = load i32, ptr %9, 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 %10, align 4, !tbaa !14
  %4067 = add nsw i32 %4066, 10
  %4068 = sext i32 %4067 to i64
  %4069 = getelementptr inbounds i8, ptr %4065, i64 %4068
  store i8 %4055, ptr %4069, align 1, !tbaa !16
  %4070 = load ptr, ptr %3, align 8, !tbaa !5
  %4071 = getelementptr inbounds %struct.MImage, ptr %4070, i32 0, i32 3
  %4072 = load i32, ptr %8, align 4, !tbaa !14
  %4073 = sext i32 %4072 to i64
  %4074 = getelementptr inbounds [4 x ptr], ptr %4071, i64 0, i64 %4073
  %4075 = load ptr, ptr %4074, align 8, !tbaa !5
  %4076 = load i32, ptr %9, 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 %10, align 4, !tbaa !14
  %4081 = add nsw i32 %4080, 11
  %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 = sub nsw i32 255, %4085
  %4087 = trunc i32 %4086 to i8
  %4088 = load ptr, ptr %4, align 8, !tbaa !5
  %4089 = getelementptr inbounds %struct.MImage, ptr %4088, i32 0, i32 3
  %4090 = load i32, ptr %8, align 4, !tbaa !14
  %4091 = sext i32 %4090 to i64
  %4092 = getelementptr inbounds [4 x ptr], ptr %4089, i64 0, i64 %4091
  %4093 = load ptr, ptr %4092, align 8, !tbaa !5
  %4094 = load i32, ptr %9, align 4, !tbaa !14
  %4095 = sext i32 %4094 to i64
  %4096 = getelementptr inbounds ptr, ptr %4093, i64 %4095
  %4097 = load ptr, ptr %4096, align 8, !tbaa !5
  %4098 = load i32, ptr %10, align 4, !tbaa !14
  %4099 = add nsw i32 %4098, 11
  %4100 = sext i32 %4099 to i64
  %4101 = getelementptr inbounds i8, ptr %4097, i64 %4100
  store i8 %4087, ptr %4101, align 1, !tbaa !16
  %4102 = load ptr, ptr %3, align 8, !tbaa !5
  %4103 = getelementptr inbounds %struct.MImage, ptr %4102, i32 0, i32 3
  %4104 = load i32, ptr %8, 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 %9, 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 %10, align 4, !tbaa !14
  %4113 = add nsw i32 %4112, 12
  %4114 = sext i32 %4113 to i64
  %4115 = getelementptr inbounds i8, ptr %4111, i64 %4114
  %4116 = load i8, ptr %4115, align 1, !tbaa !16
  %4117 = zext i8 %4116 to i32
  %4118 = sub nsw i32 255, %4117
  %4119 = trunc i32 %4118 to i8
  %4120 = load ptr, ptr %4, align 8, !tbaa !5
  %4121 = getelementptr inbounds %struct.MImage, ptr %4120, i32 0, i32 3
  %4122 = load i32, ptr %8, align 4, !tbaa !14
  %4123 = sext i32 %4122 to i64
  %4124 = getelementptr inbounds [4 x ptr], ptr %4121, i64 0, i64 %4123
  %4125 = load ptr, ptr %4124, align 8, !tbaa !5
  %4126 = load i32, ptr %9, align 4, !tbaa !14
  %4127 = sext i32 %4126 to i64
  %4128 = getelementptr inbounds ptr, ptr %4125, i64 %4127
  %4129 = load ptr, ptr %4128, align 8, !tbaa !5
  %4130 = load i32, ptr %10, align 4, !tbaa !14
  %4131 = add nsw i32 %4130, 12
  %4132 = sext i32 %4131 to i64
  %4133 = getelementptr inbounds i8, ptr %4129, i64 %4132
  store i8 %4119, ptr %4133, align 1, !tbaa !16
  %4134 = load ptr, ptr %3, align 8, !tbaa !5
  %4135 = getelementptr inbounds %struct.MImage, ptr %4134, i32 0, i32 3
  %4136 = load i32, ptr %8, align 4, !tbaa !14
  %4137 = sext i32 %4136 to i64
  %4138 = getelementptr inbounds [4 x ptr], ptr %4135, i64 0, i64 %4137
  %4139 = load ptr, ptr %4138, align 8, !tbaa !5
  %4140 = load i32, ptr %9, align 4, !tbaa !14
  %4141 = sext i32 %4140 to i64
  %4142 = getelementptr inbounds ptr, ptr %4139, i64 %4141
  %4143 = load ptr, ptr %4142, align 8, !tbaa !5
  %4144 = load i32, ptr %10, align 4, !tbaa !14
  %4145 = add nsw i32 %4144, 13
  %4146 = sext i32 %4145 to i64
  %4147 = getelementptr inbounds i8, ptr %4143, i64 %4146
  %4148 = load i8, ptr %4147, align 1, !tbaa !16
  %4149 = zext i8 %4148 to i32
  %4150 = sub nsw i32 255, %4149
  %4151 = trunc i32 %4150 to i8
  %4152 = load ptr, ptr %4, align 8, !tbaa !5
  %4153 = getelementptr inbounds %struct.MImage, ptr %4152, i32 0, i32 3
  %4154 = load i32, ptr %8, align 4, !tbaa !14
  %4155 = sext i32 %4154 to i64
  %4156 = getelementptr inbounds [4 x ptr], ptr %4153, i64 0, i64 %4155
  %4157 = load ptr, ptr %4156, align 8, !tbaa !5
  %4158 = load i32, ptr %9, align 4, !tbaa !14
  %4159 = sext i32 %4158 to i64
  %4160 = getelementptr inbounds ptr, ptr %4157, i64 %4159
  %4161 = load ptr, ptr %4160, align 8, !tbaa !5
  %4162 = load i32, ptr %10, align 4, !tbaa !14
  %4163 = add nsw i32 %4162, 13
  %4164 = sext i32 %4163 to i64
  %4165 = getelementptr inbounds i8, ptr %4161, i64 %4164
  store i8 %4151, ptr %4165, align 1, !tbaa !16
  br label %4655

4166:                                             ; preds = %3710
  %4167 = load ptr, ptr %4, align 8, !tbaa !5
  %4168 = getelementptr inbounds %struct.MImage, ptr %4167, i32 0, i32 2
  %4169 = load i32, ptr %4168, align 8, !tbaa !13
  %4170 = load i32, ptr %10, align 4, !tbaa !14
  %4171 = sub nsw i32 %4169, %4170
  %4172 = icmp eq i32 %4171, 15
  br i1 %4172, label %4173, label %4654

4173:                                             ; preds = %4166
  %4174 = load ptr, ptr %3, align 8, !tbaa !5
  %4175 = getelementptr inbounds %struct.MImage, ptr %4174, i32 0, i32 3
  %4176 = load i32, ptr %8, align 4, !tbaa !14
  %4177 = sext i32 %4176 to i64
  %4178 = getelementptr inbounds [4 x ptr], ptr %4175, i64 0, i64 %4177
  %4179 = load ptr, ptr %4178, align 8, !tbaa !5
  %4180 = load i32, ptr %9, align 4, !tbaa !14
  %4181 = sext i32 %4180 to i64
  %4182 = getelementptr inbounds ptr, ptr %4179, i64 %4181
  %4183 = load ptr, ptr %4182, align 8, !tbaa !5
  %4184 = load i32, ptr %10, align 4, !tbaa !14
  %4185 = add nsw i32 %4184, 0
  %4186 = sext i32 %4185 to i64
  %4187 = getelementptr inbounds i8, ptr %4183, i64 %4186
  %4188 = load i8, ptr %4187, align 1, !tbaa !16
  %4189 = zext i8 %4188 to i32
  %4190 = sub nsw i32 255, %4189
  %4191 = trunc i32 %4190 to i8
  %4192 = load ptr, ptr %4, align 8, !tbaa !5
  %4193 = getelementptr inbounds %struct.MImage, ptr %4192, i32 0, i32 3
  %4194 = load i32, ptr %8, align 4, !tbaa !14
  %4195 = sext i32 %4194 to i64
  %4196 = getelementptr inbounds [4 x ptr], ptr %4193, i64 0, i64 %4195
  %4197 = load ptr, ptr %4196, align 8, !tbaa !5
  %4198 = load i32, ptr %9, align 4, !tbaa !14
  %4199 = sext i32 %4198 to i64
  %4200 = getelementptr inbounds ptr, ptr %4197, i64 %4199
  %4201 = load ptr, ptr %4200, align 8, !tbaa !5
  %4202 = load i32, ptr %10, align 4, !tbaa !14
  %4203 = add nsw i32 %4202, 0
  %4204 = sext i32 %4203 to i64
  %4205 = getelementptr inbounds i8, ptr %4201, i64 %4204
  store i8 %4191, ptr %4205, align 1, !tbaa !16
  %4206 = load ptr, ptr %3, align 8, !tbaa !5
  %4207 = getelementptr inbounds %struct.MImage, ptr %4206, i32 0, i32 3
  %4208 = load i32, ptr %8, align 4, !tbaa !14
  %4209 = sext i32 %4208 to i64
  %4210 = getelementptr inbounds [4 x ptr], ptr %4207, i64 0, i64 %4209
  %4211 = load ptr, ptr %4210, align 8, !tbaa !5
  %4212 = load i32, ptr %9, align 4, !tbaa !14
  %4213 = sext i32 %4212 to i64
  %4214 = getelementptr inbounds ptr, ptr %4211, i64 %4213
  %4215 = load ptr, ptr %4214, align 8, !tbaa !5
  %4216 = load i32, ptr %10, align 4, !tbaa !14
  %4217 = add nsw i32 %4216, 1
  %4218 = sext i32 %4217 to i64
  %4219 = getelementptr inbounds i8, ptr %4215, i64 %4218
  %4220 = load i8, ptr %4219, align 1, !tbaa !16
  %4221 = zext i8 %4220 to i32
  %4222 = sub nsw i32 255, %4221
  %4223 = trunc i32 %4222 to i8
  %4224 = load ptr, ptr %4, align 8, !tbaa !5
  %4225 = getelementptr inbounds %struct.MImage, ptr %4224, i32 0, i32 3
  %4226 = load i32, ptr %8, align 4, !tbaa !14
  %4227 = sext i32 %4226 to i64
  %4228 = getelementptr inbounds [4 x ptr], ptr %4225, i64 0, i64 %4227
  %4229 = load ptr, ptr %4228, align 8, !tbaa !5
  %4230 = load i32, ptr %9, align 4, !tbaa !14
  %4231 = sext i32 %4230 to i64
  %4232 = getelementptr inbounds ptr, ptr %4229, i64 %4231
  %4233 = load ptr, ptr %4232, align 8, !tbaa !5
  %4234 = load i32, ptr %10, align 4, !tbaa !14
  %4235 = add nsw i32 %4234, 1
  %4236 = sext i32 %4235 to i64
  %4237 = getelementptr inbounds i8, ptr %4233, i64 %4236
  store i8 %4223, ptr %4237, align 1, !tbaa !16
  %4238 = load ptr, ptr %3, align 8, !tbaa !5
  %4239 = getelementptr inbounds %struct.MImage, ptr %4238, i32 0, i32 3
  %4240 = load i32, ptr %8, align 4, !tbaa !14
  %4241 = sext i32 %4240 to i64
  %4242 = getelementptr inbounds [4 x ptr], ptr %4239, i64 0, i64 %4241
  %4243 = load ptr, ptr %4242, align 8, !tbaa !5
  %4244 = load i32, ptr %9, align 4, !tbaa !14
  %4245 = sext i32 %4244 to i64
  %4246 = getelementptr inbounds ptr, ptr %4243, i64 %4245
  %4247 = load ptr, ptr %4246, align 8, !tbaa !5
  %4248 = load i32, ptr %10, align 4, !tbaa !14
  %4249 = add nsw i32 %4248, 2
  %4250 = sext i32 %4249 to i64
  %4251 = getelementptr inbounds i8, ptr %4247, i64 %4250
  %4252 = load i8, ptr %4251, align 1, !tbaa !16
  %4253 = zext i8 %4252 to i32
  %4254 = sub nsw i32 255, %4253
  %4255 = trunc i32 %4254 to i8
  %4256 = load ptr, ptr %4, align 8, !tbaa !5
  %4257 = getelementptr inbounds %struct.MImage, ptr %4256, i32 0, i32 3
  %4258 = load i32, ptr %8, align 4, !tbaa !14
  %4259 = sext i32 %4258 to i64
  %4260 = getelementptr inbounds [4 x ptr], ptr %4257, i64 0, i64 %4259
  %4261 = load ptr, ptr %4260, align 8, !tbaa !5
  %4262 = load i32, ptr %9, align 4, !tbaa !14
  %4263 = sext i32 %4262 to i64
  %4264 = getelementptr inbounds ptr, ptr %4261, i64 %4263
  %4265 = load ptr, ptr %4264, align 8, !tbaa !5
  %4266 = load i32, ptr %10, align 4, !tbaa !14
  %4267 = add nsw i32 %4266, 2
  %4268 = sext i32 %4267 to i64
  %4269 = getelementptr inbounds i8, ptr %4265, i64 %4268
  store i8 %4255, ptr %4269, align 1, !tbaa !16
  %4270 = load ptr, ptr %3, align 8, !tbaa !5
  %4271 = getelementptr inbounds %struct.MImage, ptr %4270, i32 0, i32 3
  %4272 = load i32, ptr %8, align 4, !tbaa !14
  %4273 = sext i32 %4272 to i64
  %4274 = getelementptr inbounds [4 x ptr], ptr %4271, i64 0, i64 %4273
  %4275 = load ptr, ptr %4274, align 8, !tbaa !5
  %4276 = load i32, ptr %9, align 4, !tbaa !14
  %4277 = sext i32 %4276 to i64
  %4278 = getelementptr inbounds ptr, ptr %4275, i64 %4277
  %4279 = load ptr, ptr %4278, align 8, !tbaa !5
  %4280 = load i32, ptr %10, align 4, !tbaa !14
  %4281 = add nsw i32 %4280, 3
  %4282 = sext i32 %4281 to i64
  %4283 = getelementptr inbounds i8, ptr %4279, i64 %4282
  %4284 = load i8, ptr %4283, align 1, !tbaa !16
  %4285 = zext i8 %4284 to i32
  %4286 = sub nsw i32 255, %4285
  %4287 = trunc i32 %4286 to i8
  %4288 = load ptr, ptr %4, align 8, !tbaa !5
  %4289 = getelementptr inbounds %struct.MImage, ptr %4288, i32 0, i32 3
  %4290 = load i32, ptr %8, align 4, !tbaa !14
  %4291 = sext i32 %4290 to i64
  %4292 = getelementptr inbounds [4 x ptr], ptr %4289, i64 0, i64 %4291
  %4293 = load ptr, ptr %4292, align 8, !tbaa !5
  %4294 = load i32, ptr %9, align 4, !tbaa !14
  %4295 = sext i32 %4294 to i64
  %4296 = getelementptr inbounds ptr, ptr %4293, i64 %4295
  %4297 = load ptr, ptr %4296, align 8, !tbaa !5
  %4298 = load i32, ptr %10, align 4, !tbaa !14
  %4299 = add nsw i32 %4298, 3
  %4300 = sext i32 %4299 to i64
  %4301 = getelementptr inbounds i8, ptr %4297, i64 %4300
  store i8 %4287, ptr %4301, align 1, !tbaa !16
  %4302 = load ptr, ptr %3, align 8, !tbaa !5
  %4303 = getelementptr inbounds %struct.MImage, ptr %4302, i32 0, i32 3
  %4304 = load i32, ptr %8, align 4, !tbaa !14
  %4305 = sext i32 %4304 to i64
  %4306 = getelementptr inbounds [4 x ptr], ptr %4303, i64 0, i64 %4305
  %4307 = load ptr, ptr %4306, align 8, !tbaa !5
  %4308 = load i32, ptr %9, align 4, !tbaa !14
  %4309 = sext i32 %4308 to i64
  %4310 = getelementptr inbounds ptr, ptr %4307, i64 %4309
  %4311 = load ptr, ptr %4310, align 8, !tbaa !5
  %4312 = load i32, ptr %10, align 4, !tbaa !14
  %4313 = add nsw i32 %4312, 4
  %4314 = sext i32 %4313 to i64
  %4315 = getelementptr inbounds i8, ptr %4311, i64 %4314
  %4316 = load i8, ptr %4315, align 1, !tbaa !16
  %4317 = zext i8 %4316 to i32
  %4318 = sub nsw i32 255, %4317
  %4319 = trunc i32 %4318 to i8
  %4320 = load ptr, ptr %4, align 8, !tbaa !5
  %4321 = getelementptr inbounds %struct.MImage, ptr %4320, i32 0, i32 3
  %4322 = load i32, ptr %8, align 4, !tbaa !14
  %4323 = sext i32 %4322 to i64
  %4324 = getelementptr inbounds [4 x ptr], ptr %4321, i64 0, i64 %4323
  %4325 = load ptr, ptr %4324, align 8, !tbaa !5
  %4326 = load i32, ptr %9, 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 %10, align 4, !tbaa !14
  %4331 = add nsw i32 %4330, 4
  %4332 = sext i32 %4331 to i64
  %4333 = getelementptr inbounds i8, ptr %4329, i64 %4332
  store i8 %4319, ptr %4333, align 1, !tbaa !16
  %4334 = load ptr, ptr %3, align 8, !tbaa !5
  %4335 = getelementptr inbounds %struct.MImage, ptr %4334, i32 0, i32 3
  %4336 = load i32, ptr %8, align 4, !tbaa !14
  %4337 = sext i32 %4336 to i64
  %4338 = getelementptr inbounds [4 x ptr], ptr %4335, i64 0, i64 %4337
  %4339 = load ptr, ptr %4338, align 8, !tbaa !5
  %4340 = load i32, ptr %9, 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 %10, align 4, !tbaa !14
  %4345 = add nsw i32 %4344, 5
  %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 = sub nsw i32 255, %4349
  %4351 = trunc i32 %4350 to i8
  %4352 = load ptr, ptr %4, align 8, !tbaa !5
  %4353 = getelementptr inbounds %struct.MImage, ptr %4352, i32 0, i32 3
  %4354 = load i32, ptr %8, align 4, !tbaa !14
  %4355 = sext i32 %4354 to i64
  %4356 = getelementptr inbounds [4 x ptr], ptr %4353, i64 0, i64 %4355
  %4357 = load ptr, ptr %4356, align 8, !tbaa !5
  %4358 = load i32, ptr %9, align 4, !tbaa !14
  %4359 = sext i32 %4358 to i64
  %4360 = getelementptr inbounds ptr, ptr %4357, i64 %4359
  %4361 = load ptr, ptr %4360, align 8, !tbaa !5
  %4362 = load i32, ptr %10, align 4, !tbaa !14
  %4363 = add nsw i32 %4362, 5
  %4364 = sext i32 %4363 to i64
  %4365 = getelementptr inbounds i8, ptr %4361, i64 %4364
  store i8 %4351, ptr %4365, align 1, !tbaa !16
  %4366 = load ptr, ptr %3, align 8, !tbaa !5
  %4367 = getelementptr inbounds %struct.MImage, ptr %4366, i32 0, i32 3
  %4368 = load i32, ptr %8, 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 %9, 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 %10, align 4, !tbaa !14
  %4377 = add nsw i32 %4376, 6
  %4378 = sext i32 %4377 to i64
  %4379 = getelementptr inbounds i8, ptr %4375, i64 %4378
  %4380 = load i8, ptr %4379, align 1, !tbaa !16
  %4381 = zext i8 %4380 to i32
  %4382 = sub nsw i32 255, %4381
  %4383 = trunc i32 %4382 to i8
  %4384 = load ptr, ptr %4, align 8, !tbaa !5
  %4385 = getelementptr inbounds %struct.MImage, ptr %4384, i32 0, i32 3
  %4386 = load i32, ptr %8, align 4, !tbaa !14
  %4387 = sext i32 %4386 to i64
  %4388 = getelementptr inbounds [4 x ptr], ptr %4385, i64 0, i64 %4387
  %4389 = load ptr, ptr %4388, align 8, !tbaa !5
  %4390 = load i32, ptr %9, align 4, !tbaa !14
  %4391 = sext i32 %4390 to i64
  %4392 = getelementptr inbounds ptr, ptr %4389, i64 %4391
  %4393 = load ptr, ptr %4392, align 8, !tbaa !5
  %4394 = load i32, ptr %10, align 4, !tbaa !14
  %4395 = add nsw i32 %4394, 6
  %4396 = sext i32 %4395 to i64
  %4397 = getelementptr inbounds i8, ptr %4393, i64 %4396
  store i8 %4383, ptr %4397, align 1, !tbaa !16
  %4398 = load ptr, ptr %3, align 8, !tbaa !5
  %4399 = getelementptr inbounds %struct.MImage, ptr %4398, i32 0, i32 3
  %4400 = load i32, ptr %8, align 4, !tbaa !14
  %4401 = sext i32 %4400 to i64
  %4402 = getelementptr inbounds [4 x ptr], ptr %4399, i64 0, i64 %4401
  %4403 = load ptr, ptr %4402, align 8, !tbaa !5
  %4404 = load i32, ptr %9, align 4, !tbaa !14
  %4405 = sext i32 %4404 to i64
  %4406 = getelementptr inbounds ptr, ptr %4403, i64 %4405
  %4407 = load ptr, ptr %4406, align 8, !tbaa !5
  %4408 = load i32, ptr %10, align 4, !tbaa !14
  %4409 = add nsw i32 %4408, 7
  %4410 = sext i32 %4409 to i64
  %4411 = getelementptr inbounds i8, ptr %4407, i64 %4410
  %4412 = load i8, ptr %4411, align 1, !tbaa !16
  %4413 = zext i8 %4412 to i32
  %4414 = sub nsw i32 255, %4413
  %4415 = trunc i32 %4414 to i8
  %4416 = load ptr, ptr %4, align 8, !tbaa !5
  %4417 = getelementptr inbounds %struct.MImage, ptr %4416, i32 0, i32 3
  %4418 = load i32, ptr %8, align 4, !tbaa !14
  %4419 = sext i32 %4418 to i64
  %4420 = getelementptr inbounds [4 x ptr], ptr %4417, i64 0, i64 %4419
  %4421 = load ptr, ptr %4420, align 8, !tbaa !5
  %4422 = load i32, ptr %9, align 4, !tbaa !14
  %4423 = sext i32 %4422 to i64
  %4424 = getelementptr inbounds ptr, ptr %4421, i64 %4423
  %4425 = load ptr, ptr %4424, align 8, !tbaa !5
  %4426 = load i32, ptr %10, align 4, !tbaa !14
  %4427 = add nsw i32 %4426, 7
  %4428 = sext i32 %4427 to i64
  %4429 = getelementptr inbounds i8, ptr %4425, i64 %4428
  store i8 %4415, ptr %4429, align 1, !tbaa !16
  %4430 = load ptr, ptr %3, align 8, !tbaa !5
  %4431 = getelementptr inbounds %struct.MImage, ptr %4430, i32 0, i32 3
  %4432 = load i32, ptr %8, align 4, !tbaa !14
  %4433 = sext i32 %4432 to i64
  %4434 = getelementptr inbounds [4 x ptr], ptr %4431, i64 0, i64 %4433
  %4435 = load ptr, ptr %4434, align 8, !tbaa !5
  %4436 = load i32, ptr %9, align 4, !tbaa !14
  %4437 = sext i32 %4436 to i64
  %4438 = getelementptr inbounds ptr, ptr %4435, i64 %4437
  %4439 = load ptr, ptr %4438, align 8, !tbaa !5
  %4440 = load i32, ptr %10, align 4, !tbaa !14
  %4441 = add nsw i32 %4440, 8
  %4442 = sext i32 %4441 to i64
  %4443 = getelementptr inbounds i8, ptr %4439, i64 %4442
  %4444 = load i8, ptr %4443, align 1, !tbaa !16
  %4445 = zext i8 %4444 to i32
  %4446 = sub nsw i32 255, %4445
  %4447 = trunc i32 %4446 to i8
  %4448 = load ptr, ptr %4, align 8, !tbaa !5
  %4449 = getelementptr inbounds %struct.MImage, ptr %4448, i32 0, i32 3
  %4450 = load i32, ptr %8, align 4, !tbaa !14
  %4451 = sext i32 %4450 to i64
  %4452 = getelementptr inbounds [4 x ptr], ptr %4449, i64 0, i64 %4451
  %4453 = load ptr, ptr %4452, align 8, !tbaa !5
  %4454 = load i32, ptr %9, align 4, !tbaa !14
  %4455 = sext i32 %4454 to i64
  %4456 = getelementptr inbounds ptr, ptr %4453, i64 %4455
  %4457 = load ptr, ptr %4456, align 8, !tbaa !5
  %4458 = load i32, ptr %10, align 4, !tbaa !14
  %4459 = add nsw i32 %4458, 8
  %4460 = sext i32 %4459 to i64
  %4461 = getelementptr inbounds i8, ptr %4457, i64 %4460
  store i8 %4447, ptr %4461, align 1, !tbaa !16
  %4462 = load ptr, ptr %3, align 8, !tbaa !5
  %4463 = getelementptr inbounds %struct.MImage, ptr %4462, i32 0, i32 3
  %4464 = load i32, ptr %8, align 4, !tbaa !14
  %4465 = sext i32 %4464 to i64
  %4466 = getelementptr inbounds [4 x ptr], ptr %4463, i64 0, i64 %4465
  %4467 = load ptr, ptr %4466, align 8, !tbaa !5
  %4468 = load i32, ptr %9, align 4, !tbaa !14
  %4469 = sext i32 %4468 to i64
  %4470 = getelementptr inbounds ptr, ptr %4467, i64 %4469
  %4471 = load ptr, ptr %4470, align 8, !tbaa !5
  %4472 = load i32, ptr %10, align 4, !tbaa !14
  %4473 = add nsw i32 %4472, 9
  %4474 = sext i32 %4473 to i64
  %4475 = getelementptr inbounds i8, ptr %4471, i64 %4474
  %4476 = load i8, ptr %4475, align 1, !tbaa !16
  %4477 = zext i8 %4476 to i32
  %4478 = sub nsw i32 255, %4477
  %4479 = trunc i32 %4478 to i8
  %4480 = load ptr, ptr %4, align 8, !tbaa !5
  %4481 = getelementptr inbounds %struct.MImage, ptr %4480, i32 0, i32 3
  %4482 = load i32, ptr %8, align 4, !tbaa !14
  %4483 = sext i32 %4482 to i64
  %4484 = getelementptr inbounds [4 x ptr], ptr %4481, i64 0, i64 %4483
  %4485 = load ptr, ptr %4484, align 8, !tbaa !5
  %4486 = load i32, ptr %9, align 4, !tbaa !14
  %4487 = sext i32 %4486 to i64
  %4488 = getelementptr inbounds ptr, ptr %4485, i64 %4487
  %4489 = load ptr, ptr %4488, align 8, !tbaa !5
  %4490 = load i32, ptr %10, align 4, !tbaa !14
  %4491 = add nsw i32 %4490, 9
  %4492 = sext i32 %4491 to i64
  %4493 = getelementptr inbounds i8, ptr %4489, i64 %4492
  store i8 %4479, ptr %4493, align 1, !tbaa !16
  %4494 = load ptr, ptr %3, align 8, !tbaa !5
  %4495 = getelementptr inbounds %struct.MImage, ptr %4494, i32 0, i32 3
  %4496 = load i32, ptr %8, align 4, !tbaa !14
  %4497 = sext i32 %4496 to i64
  %4498 = getelementptr inbounds [4 x ptr], ptr %4495, i64 0, i64 %4497
  %4499 = load ptr, ptr %4498, align 8, !tbaa !5
  %4500 = load i32, ptr %9, align 4, !tbaa !14
  %4501 = sext i32 %4500 to i64
  %4502 = getelementptr inbounds ptr, ptr %4499, i64 %4501
  %4503 = load ptr, ptr %4502, align 8, !tbaa !5
  %4504 = load i32, ptr %10, align 4, !tbaa !14
  %4505 = add nsw i32 %4504, 10
  %4506 = sext i32 %4505 to i64
  %4507 = getelementptr inbounds i8, ptr %4503, i64 %4506
  %4508 = load i8, ptr %4507, align 1, !tbaa !16
  %4509 = zext i8 %4508 to i32
  %4510 = sub nsw i32 255, %4509
  %4511 = trunc i32 %4510 to i8
  %4512 = load ptr, ptr %4, align 8, !tbaa !5
  %4513 = getelementptr inbounds %struct.MImage, ptr %4512, i32 0, i32 3
  %4514 = load i32, ptr %8, align 4, !tbaa !14
  %4515 = sext i32 %4514 to i64
  %4516 = getelementptr inbounds [4 x ptr], ptr %4513, i64 0, i64 %4515
  %4517 = load ptr, ptr %4516, align 8, !tbaa !5
  %4518 = load i32, ptr %9, align 4, !tbaa !14
  %4519 = sext i32 %4518 to i64
  %4520 = getelementptr inbounds ptr, ptr %4517, i64 %4519
  %4521 = load ptr, ptr %4520, align 8, !tbaa !5
  %4522 = load i32, ptr %10, align 4, !tbaa !14
  %4523 = add nsw i32 %4522, 10
  %4524 = sext i32 %4523 to i64
  %4525 = getelementptr inbounds i8, ptr %4521, i64 %4524
  store i8 %4511, ptr %4525, align 1, !tbaa !16
  %4526 = load ptr, ptr %3, align 8, !tbaa !5
  %4527 = getelementptr inbounds %struct.MImage, ptr %4526, i32 0, i32 3
  %4528 = load i32, ptr %8, align 4, !tbaa !14
  %4529 = sext i32 %4528 to i64
  %4530 = getelementptr inbounds [4 x ptr], ptr %4527, i64 0, i64 %4529
  %4531 = load ptr, ptr %4530, align 8, !tbaa !5
  %4532 = load i32, ptr %9, 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 %10, align 4, !tbaa !14
  %4537 = add nsw i32 %4536, 11
  %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 255, %4541
  %4543 = trunc i32 %4542 to i8
  %4544 = load ptr, ptr %4, align 8, !tbaa !5
  %4545 = getelementptr inbounds %struct.MImage, ptr %4544, i32 0, i32 3
  %4546 = load i32, ptr %8, align 4, !tbaa !14
  %4547 = sext i32 %4546 to i64
  %4548 = getelementptr inbounds [4 x ptr], ptr %4545, i64 0, i64 %4547
  %4549 = load ptr, ptr %4548, align 8, !tbaa !5
  %4550 = load i32, ptr %9, align 4, !tbaa !14
  %4551 = sext i32 %4550 to i64
  %4552 = getelementptr inbounds ptr, ptr %4549, i64 %4551
  %4553 = load ptr, ptr %4552, align 8, !tbaa !5
  %4554 = load i32, ptr %10, align 4, !tbaa !14
  %4555 = add nsw i32 %4554, 11
  %4556 = sext i32 %4555 to i64
  %4557 = getelementptr inbounds i8, ptr %4553, i64 %4556
  store i8 %4543, ptr %4557, align 1, !tbaa !16
  %4558 = load ptr, ptr %3, align 8, !tbaa !5
  %4559 = getelementptr inbounds %struct.MImage, ptr %4558, i32 0, i32 3
  %4560 = load i32, ptr %8, align 4, !tbaa !14
  %4561 = sext i32 %4560 to i64
  %4562 = getelementptr inbounds [4 x ptr], ptr %4559, i64 0, i64 %4561
  %4563 = load ptr, ptr %4562, align 8, !tbaa !5
  %4564 = load i32, ptr %9, align 4, !tbaa !14
  %4565 = sext i32 %4564 to i64
  %4566 = getelementptr inbounds ptr, ptr %4563, i64 %4565
  %4567 = load ptr, ptr %4566, align 8, !tbaa !5
  %4568 = load i32, ptr %10, align 4, !tbaa !14
  %4569 = add nsw i32 %4568, 12
  %4570 = sext i32 %4569 to i64
  %4571 = getelementptr inbounds i8, ptr %4567, i64 %4570
  %4572 = load i8, ptr %4571, align 1, !tbaa !16
  %4573 = zext i8 %4572 to i32
  %4574 = sub nsw i32 255, %4573
  %4575 = trunc i32 %4574 to i8
  %4576 = load ptr, ptr %4, align 8, !tbaa !5
  %4577 = getelementptr inbounds %struct.MImage, ptr %4576, i32 0, i32 3
  %4578 = load i32, ptr %8, align 4, !tbaa !14
  %4579 = sext i32 %4578 to i64
  %4580 = getelementptr inbounds [4 x ptr], ptr %4577, i64 0, i64 %4579
  %4581 = load ptr, ptr %4580, align 8, !tbaa !5
  %4582 = load i32, ptr %9, align 4, !tbaa !14
  %4583 = sext i32 %4582 to i64
  %4584 = getelementptr inbounds ptr, ptr %4581, i64 %4583
  %4585 = load ptr, ptr %4584, align 8, !tbaa !5
  %4586 = load i32, ptr %10, align 4, !tbaa !14
  %4587 = add nsw i32 %4586, 12
  %4588 = sext i32 %4587 to i64
  %4589 = getelementptr inbounds i8, ptr %4585, i64 %4588
  store i8 %4575, ptr %4589, align 1, !tbaa !16
  %4590 = load ptr, ptr %3, align 8, !tbaa !5
  %4591 = getelementptr inbounds %struct.MImage, ptr %4590, i32 0, i32 3
  %4592 = load i32, ptr %8, align 4, !tbaa !14
  %4593 = sext i32 %4592 to i64
  %4594 = getelementptr inbounds [4 x ptr], ptr %4591, i64 0, i64 %4593
  %4595 = load ptr, ptr %4594, align 8, !tbaa !5
  %4596 = load i32, ptr %9, align 4, !tbaa !14
  %4597 = sext i32 %4596 to i64
  %4598 = getelementptr inbounds ptr, ptr %4595, i64 %4597
  %4599 = load ptr, ptr %4598, align 8, !tbaa !5
  %4600 = load i32, ptr %10, align 4, !tbaa !14
  %4601 = add nsw i32 %4600, 13
  %4602 = sext i32 %4601 to i64
  %4603 = getelementptr inbounds i8, ptr %4599, i64 %4602
  %4604 = load i8, ptr %4603, align 1, !tbaa !16
  %4605 = zext i8 %4604 to i32
  %4606 = sub nsw i32 255, %4605
  %4607 = trunc i32 %4606 to i8
  %4608 = load ptr, ptr %4, align 8, !tbaa !5
  %4609 = getelementptr inbounds %struct.MImage, ptr %4608, i32 0, i32 3
  %4610 = load i32, ptr %8, align 4, !tbaa !14
  %4611 = sext i32 %4610 to i64
  %4612 = getelementptr inbounds [4 x ptr], ptr %4609, i64 0, i64 %4611
  %4613 = load ptr, ptr %4612, align 8, !tbaa !5
  %4614 = load i32, ptr %9, align 4, !tbaa !14
  %4615 = sext i32 %4614 to i64
  %4616 = getelementptr inbounds ptr, ptr %4613, i64 %4615
  %4617 = load ptr, ptr %4616, align 8, !tbaa !5
  %4618 = load i32, ptr %10, align 4, !tbaa !14
  %4619 = add nsw i32 %4618, 13
  %4620 = sext i32 %4619 to i64
  %4621 = getelementptr inbounds i8, ptr %4617, i64 %4620
  store i8 %4607, ptr %4621, align 1, !tbaa !16
  %4622 = load ptr, ptr %3, align 8, !tbaa !5
  %4623 = getelementptr inbounds %struct.MImage, ptr %4622, i32 0, i32 3
  %4624 = load i32, ptr %8, align 4, !tbaa !14
  %4625 = sext i32 %4624 to i64
  %4626 = getelementptr inbounds [4 x ptr], ptr %4623, i64 0, i64 %4625
  %4627 = load ptr, ptr %4626, align 8, !tbaa !5
  %4628 = load i32, ptr %9, align 4, !tbaa !14
  %4629 = sext i32 %4628 to i64
  %4630 = getelementptr inbounds ptr, ptr %4627, i64 %4629
  %4631 = load ptr, ptr %4630, align 8, !tbaa !5
  %4632 = load i32, ptr %10, align 4, !tbaa !14
  %4633 = add nsw i32 %4632, 14
  %4634 = sext i32 %4633 to i64
  %4635 = getelementptr inbounds i8, ptr %4631, i64 %4634
  %4636 = load i8, ptr %4635, align 1, !tbaa !16
  %4637 = zext i8 %4636 to i32
  %4638 = sub nsw i32 255, %4637
  %4639 = trunc i32 %4638 to i8
  %4640 = load ptr, ptr %4, align 8, !tbaa !5
  %4641 = getelementptr inbounds %struct.MImage, ptr %4640, i32 0, i32 3
  %4642 = load i32, ptr %8, align 4, !tbaa !14
  %4643 = sext i32 %4642 to i64
  %4644 = getelementptr inbounds [4 x ptr], ptr %4641, i64 0, i64 %4643
  %4645 = load ptr, ptr %4644, align 8, !tbaa !5
  %4646 = load i32, ptr %9, align 4, !tbaa !14
  %4647 = sext i32 %4646 to i64
  %4648 = getelementptr inbounds ptr, ptr %4645, i64 %4647
  %4649 = load ptr, ptr %4648, align 8, !tbaa !5
  %4650 = load i32, ptr %10, align 4, !tbaa !14
  %4651 = add nsw i32 %4650, 14
  %4652 = sext i32 %4651 to i64
  %4653 = getelementptr inbounds i8, ptr %4649, i64 %4652
  store i8 %4639, ptr %4653, align 1, !tbaa !16
  br label %4654

4654:                                             ; preds = %4173, %4166
  br label %4655

4655:                                             ; preds = %4654, %3717
  br label %4656

4656:                                             ; preds = %4655, %3293
  br label %4657

4657:                                             ; preds = %4656, %2901
  br label %4658

4658:                                             ; preds = %4657, %2541
  br label %4659

4659:                                             ; preds = %4658, %2213
  br label %4660

4660:                                             ; preds = %4659, %1917
  br label %4661

4661:                                             ; preds = %4660, %1653
  br label %4662

4662:                                             ; preds = %4661, %1421
  br label %4663

4663:                                             ; preds = %4662, %1221
  br label %4664

4664:                                             ; preds = %4663, %1053
  br label %4665

4665:                                             ; preds = %4664, %917
  br label %4666

4666:                                             ; preds = %4665, %813
  br label %4667

4667:                                             ; preds = %4666, %741
  br label %4668

4668:                                             ; preds = %4667, %701
  br label %4669

4669:                                             ; preds = %4668, %693
  call void @llvm.lifetime.end.p0(i64 4, ptr %10) #3
  br label %4670

4670:                                             ; preds = %4669
  br label %4671

4671:                                             ; preds = %4670
  br label %4672

4672:                                             ; preds = %4671
  %4673 = load i32, ptr %9, align 4, !tbaa !14
  %4674 = add nsw i32 %4673, 1
  store i32 %4674, ptr %9, align 4, !tbaa !14
  br label %155, !llvm.loop !19

4675:                                             ; preds = %155
  call void @llvm.lifetime.end.p0(i64 4, ptr %9) #3
  br label %4676

4676:                                             ; preds = %4675
  %4677 = load i32, ptr %8, align 4, !tbaa !14
  %4678 = add nsw i32 %4677, 1
  store i32 %4678, ptr %8, align 4, !tbaa !14
  br label %147, !llvm.loop !20

4679:                                             ; preds = %153
  %4680 = load ptr, ptr %3, align 8, !tbaa !5
  %4681 = getelementptr inbounds %struct.MImage, ptr %4680, i32 0, i32 4
  %4682 = load ptr, ptr %4681, align 8, !tbaa !15
  %4683 = load ptr, ptr %4, align 8, !tbaa !5
  %4684 = getelementptr inbounds %struct.MImage, ptr %4683, i32 0, i32 4
  store ptr %4682, ptr %4684, align 8, !tbaa !15
  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 = distinct !{!17, !18}
!18 = !{!"llvm.loop.mustprogress"}
!19 = distinct !{!19, !18}
!20 = distinct !{!20, !18}


; 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__.mImageInvert = external hidden unnamed_addr constant [13 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 @mImageInvert(ptr noundef %0, ptr noundef %1) local_unnamed_addr #1 {
  %magicptr = ptrtoint ptr %0 to i64
  switch i64 %magicptr, label %3 [
    i64 -1, label %.thread
    i64 0, label %.thread
  ]

3:                                                ; preds = %2
  %4 = getelementptr inbounds i8, ptr %0, i64 16
  %5 = icmp eq ptr %4, inttoptr (i64 -1 to ptr)
  br i1 %5, label %.thread, label %6

6:                                                ; preds = %3
  %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 sgt i32 %15, 0
  br i1 %16, label %17, label %.thread

.thread:                                          ; preds = %3, %6, %9, %2, %2, %13
  tail call void (i32, i32, ptr, i32, ptr, ptr, ...) @m_Exception(i32 noundef 1, i32 noundef -1, ptr noundef nonnull @.str, i32 noundef 666, ptr noundef nonnull @__FUNCTION__.mImageInvert, ptr noundef nonnull @.str.2) #2
  br label %17

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

18:                                               ; preds = %17
  %19 = load i32, ptr %0, align 8, !tbaa !5
  %20 = getelementptr inbounds i8, ptr %0, i64 4
  %21 = load i32, ptr %20, align 4, !tbaa !11
  %22 = getelementptr inbounds i8, ptr %0, i64 8
  %23 = load i32, ptr %22, align 8, !tbaa !12
  %24 = getelementptr inbounds i8, ptr %1, i64 16
  tail call void @ImageRedefine(ptr noundef %1, i32 noundef %19, i32 noundef %21, i32 noundef %23, ptr noundef nonnull %24)
  br label %25

25:                                               ; preds = %17, %17, %18
  %.01177 = phi ptr [ %1, %18 ], [ %0, %17 ], [ %0, %17 ]
  %26 = getelementptr inbounds i8, ptr %0, i64 48
  %27 = load ptr, ptr %26, align 8, !tbaa !13
  %magicptr1184 = ptrtoint ptr %27 to i64
  switch i64 %magicptr1184, label %28 [
    i64 0, label %30
    i64 -1, label %30
  ]

28:                                               ; preds = %25
  %29 = getelementptr inbounds i8, ptr %.01177, i64 48
  store ptr %27, ptr %29, align 8, !tbaa !13
  br label %30

30:                                               ; preds = %25, %25, %28
  %31 = load i32, ptr %.01177, align 8, !tbaa !5
  %32 = icmp sgt i32 %31, 0
  br i1 %32, label %.preheader1189.lr.ph, label %._crit_edge1195

.preheader1189.lr.ph:                             ; preds = %30
  %33 = getelementptr inbounds i8, ptr %.01177, i64 4
  %34 = getelementptr inbounds i8, ptr %.01177, i64 8
  %35 = getelementptr inbounds i8, ptr %0, i64 16
  %36 = getelementptr inbounds i8, ptr %.01177, i64 16
  %37 = load i32, ptr %33, align 4, !tbaa !11
  %38 = icmp sgt i32 %37, 0
  br i1 %38, label %.preheader1189, label %._crit_edge1195

.preheader1189:                                   ; preds = %.preheader1189.lr.ph, %._crit_edge1193
  %39 = phi i32 [ %1548, %._crit_edge1193 ], [ %31, %.preheader1189.lr.ph ]
  %40 = phi i32 [ %1549, %._crit_edge1193 ], [ %37, %.preheader1189.lr.ph ]
  %indvars.iv1203 = phi i64 [ %indvars.iv.next1204, %._crit_edge1193 ], [ 0, %.preheader1189.lr.ph ]
  %41 = icmp sgt i32 %40, 0
  br i1 %41, label %.preheader.lr.ph, label %._crit_edge1193

.preheader.lr.ph:                                 ; preds = %.preheader1189
  %42 = getelementptr inbounds [4 x ptr], ptr %35, i64 0, i64 %indvars.iv1203
  %43 = getelementptr inbounds [4 x ptr], ptr %36, i64 0, i64 %indvars.iv1203
  br label %.preheader

._crit_edge1195:                                  ; preds = %._crit_edge1193, %.preheader1189.lr.ph, %30
  %44 = load ptr, ptr %26, align 8, !tbaa !13
  %45 = getelementptr inbounds i8, ptr %.01177, i64 48
  store ptr %44, ptr %45, align 8, !tbaa !13
  ret void

.preheader:                                       ; preds = %.preheader.lr.ph, %1544
  %indvars.iv1200 = phi i64 [ 0, %.preheader.lr.ph ], [ %indvars.iv.next1201, %1544 ]
  %46 = load i32, ptr %34, align 8, !tbaa !12
  %47 = icmp sgt i32 %46, 15
  br i1 %47, label %.lr.ph, label %._crit_edge

.lr.ph:                                           ; preds = %.preheader, %.lr.ph
  %indvars.iv = phi i64 [ %indvars.iv.next, %.lr.ph ], [ 0, %.preheader ]
  %48 = load ptr, ptr %42, align 8, !tbaa !14
  %49 = getelementptr inbounds ptr, ptr %48, i64 %indvars.iv1200
  %50 = load ptr, ptr %49, align 8, !tbaa !14
  %51 = getelementptr inbounds i8, ptr %50, i64 %indvars.iv
  %52 = load i8, ptr %51, align 1, !tbaa !15
  %53 = xor i8 %52, -1
  %54 = load ptr, ptr %43, align 8, !tbaa !14
  %55 = getelementptr inbounds ptr, ptr %54, i64 %indvars.iv1200
  %56 = load ptr, ptr %55, align 8, !tbaa !14
  %57 = getelementptr inbounds i8, ptr %56, i64 %indvars.iv
  store i8 %53, ptr %57, align 1, !tbaa !15
  %58 = load ptr, ptr %42, align 8, !tbaa !14
  %59 = getelementptr inbounds ptr, ptr %58, i64 %indvars.iv1200
  %60 = load ptr, ptr %59, align 8, !tbaa !14
  %61 = or disjoint i64 %indvars.iv, 1
  %62 = getelementptr inbounds i8, ptr %60, i64 %61
  %63 = load i8, ptr %62, align 1, !tbaa !15
  %64 = xor i8 %63, -1
  %65 = load ptr, ptr %43, align 8, !tbaa !14
  %66 = getelementptr inbounds ptr, ptr %65, i64 %indvars.iv1200
  %67 = load ptr, ptr %66, align 8, !tbaa !14
  %68 = getelementptr inbounds i8, ptr %67, i64 %61
  store i8 %64, ptr %68, align 1, !tbaa !15
  %69 = load ptr, ptr %42, align 8, !tbaa !14
  %70 = getelementptr inbounds ptr, ptr %69, i64 %indvars.iv1200
  %71 = load ptr, ptr %70, align 8, !tbaa !14
  %72 = or disjoint i64 %indvars.iv, 2
  %73 = getelementptr inbounds i8, ptr %71, i64 %72
  %74 = load i8, ptr %73, align 1, !tbaa !15
  %75 = xor i8 %74, -1
  %76 = load ptr, ptr %43, align 8, !tbaa !14
  %77 = getelementptr inbounds ptr, ptr %76, i64 %indvars.iv1200
  %78 = load ptr, ptr %77, align 8, !tbaa !14
  %79 = getelementptr inbounds i8, ptr %78, i64 %72
  store i8 %75, ptr %79, align 1, !tbaa !15
  %80 = load ptr, ptr %42, align 8, !tbaa !14
  %81 = getelementptr inbounds ptr, ptr %80, i64 %indvars.iv1200
  %82 = load ptr, ptr %81, align 8, !tbaa !14
  %83 = or disjoint i64 %indvars.iv, 3
  %84 = getelementptr inbounds i8, ptr %82, i64 %83
  %85 = load i8, ptr %84, align 1, !tbaa !15
  %86 = xor i8 %85, -1
  %87 = load ptr, ptr %43, align 8, !tbaa !14
  %88 = getelementptr inbounds ptr, ptr %87, i64 %indvars.iv1200
  %89 = load ptr, ptr %88, align 8, !tbaa !14
  %90 = getelementptr inbounds i8, ptr %89, i64 %83
  store i8 %86, ptr %90, align 1, !tbaa !15
  %91 = load ptr, ptr %42, align 8, !tbaa !14
  %92 = getelementptr inbounds ptr, ptr %91, i64 %indvars.iv1200
  %93 = load ptr, ptr %92, align 8, !tbaa !14
  %94 = or disjoint i64 %indvars.iv, 4
  %95 = getelementptr inbounds i8, ptr %93, i64 %94
  %96 = load i8, ptr %95, align 1, !tbaa !15
  %97 = xor i8 %96, -1
  %98 = load ptr, ptr %43, align 8, !tbaa !14
  %99 = getelementptr inbounds ptr, ptr %98, i64 %indvars.iv1200
  %100 = load ptr, ptr %99, align 8, !tbaa !14
  %101 = getelementptr inbounds i8, ptr %100, i64 %94
  store i8 %97, ptr %101, align 1, !tbaa !15
  %102 = load ptr, ptr %42, align 8, !tbaa !14
  %103 = getelementptr inbounds ptr, ptr %102, i64 %indvars.iv1200
  %104 = load ptr, ptr %103, align 8, !tbaa !14
  %105 = or disjoint i64 %indvars.iv, 5
  %106 = getelementptr inbounds i8, ptr %104, i64 %105
  %107 = load i8, ptr %106, align 1, !tbaa !15
  %108 = xor i8 %107, -1
  %109 = load ptr, ptr %43, align 8, !tbaa !14
  %110 = getelementptr inbounds ptr, ptr %109, i64 %indvars.iv1200
  %111 = load ptr, ptr %110, align 8, !tbaa !14
  %112 = getelementptr inbounds i8, ptr %111, i64 %105
  store i8 %108, ptr %112, align 1, !tbaa !15
  %113 = load ptr, ptr %42, align 8, !tbaa !14
  %114 = getelementptr inbounds ptr, ptr %113, i64 %indvars.iv1200
  %115 = load ptr, ptr %114, align 8, !tbaa !14
  %116 = or disjoint i64 %indvars.iv, 6
  %117 = getelementptr inbounds i8, ptr %115, i64 %116
  %118 = load i8, ptr %117, align 1, !tbaa !15
  %119 = xor i8 %118, -1
  %120 = load ptr, ptr %43, align 8, !tbaa !14
  %121 = getelementptr inbounds ptr, ptr %120, i64 %indvars.iv1200
  %122 = load ptr, ptr %121, align 8, !tbaa !14
  %123 = getelementptr inbounds i8, ptr %122, i64 %116
  store i8 %119, ptr %123, align 1, !tbaa !15
  %124 = load ptr, ptr %42, align 8, !tbaa !14
  %125 = getelementptr inbounds ptr, ptr %124, i64 %indvars.iv1200
  %126 = load ptr, ptr %125, align 8, !tbaa !14
  %127 = or disjoint i64 %indvars.iv, 7
  %128 = getelementptr inbounds i8, ptr %126, i64 %127
  %129 = load i8, ptr %128, align 1, !tbaa !15
  %130 = xor i8 %129, -1
  %131 = load ptr, ptr %43, align 8, !tbaa !14
  %132 = getelementptr inbounds ptr, ptr %131, i64 %indvars.iv1200
  %133 = load ptr, ptr %132, align 8, !tbaa !14
  %134 = getelementptr inbounds i8, ptr %133, i64 %127
  store i8 %130, ptr %134, align 1, !tbaa !15
  %135 = load ptr, ptr %42, align 8, !tbaa !14
  %136 = getelementptr inbounds ptr, ptr %135, i64 %indvars.iv1200
  %137 = load ptr, ptr %136, align 8, !tbaa !14
  %138 = or disjoint i64 %indvars.iv, 8
  %139 = getelementptr inbounds i8, ptr %137, i64 %138
  %140 = load i8, ptr %139, align 1, !tbaa !15
  %141 = xor i8 %140, -1
  %142 = load ptr, ptr %43, align 8, !tbaa !14
  %143 = getelementptr inbounds ptr, ptr %142, i64 %indvars.iv1200
  %144 = load ptr, ptr %143, align 8, !tbaa !14
  %145 = getelementptr inbounds i8, ptr %144, i64 %138
  store i8 %141, ptr %145, align 1, !tbaa !15
  %146 = load ptr, ptr %42, align 8, !tbaa !14
  %147 = getelementptr inbounds ptr, ptr %146, i64 %indvars.iv1200
  %148 = load ptr, ptr %147, align 8, !tbaa !14
  %149 = or disjoint i64 %indvars.iv, 9
  %150 = getelementptr inbounds i8, ptr %148, i64 %149
  %151 = load i8, ptr %150, align 1, !tbaa !15
  %152 = xor i8 %151, -1
  %153 = load ptr, ptr %43, align 8, !tbaa !14
  %154 = getelementptr inbounds ptr, ptr %153, i64 %indvars.iv1200
  %155 = load ptr, ptr %154, align 8, !tbaa !14
  %156 = getelementptr inbounds i8, ptr %155, i64 %149
  store i8 %152, ptr %156, align 1, !tbaa !15
  %157 = load ptr, ptr %42, align 8, !tbaa !14
  %158 = getelementptr inbounds ptr, ptr %157, i64 %indvars.iv1200
  %159 = load ptr, ptr %158, align 8, !tbaa !14
  %160 = or disjoint i64 %indvars.iv, 10
  %161 = getelementptr inbounds i8, ptr %159, i64 %160
  %162 = load i8, ptr %161, align 1, !tbaa !15
  %163 = xor i8 %162, -1
  %164 = load ptr, ptr %43, align 8, !tbaa !14
  %165 = getelementptr inbounds ptr, ptr %164, i64 %indvars.iv1200
  %166 = load ptr, ptr %165, align 8, !tbaa !14
  %167 = getelementptr inbounds i8, ptr %166, i64 %160
  store i8 %163, ptr %167, align 1, !tbaa !15
  %168 = load ptr, ptr %42, align 8, !tbaa !14
  %169 = getelementptr inbounds ptr, ptr %168, i64 %indvars.iv1200
  %170 = load ptr, ptr %169, align 8, !tbaa !14
  %171 = or disjoint i64 %indvars.iv, 11
  %172 = getelementptr inbounds i8, ptr %170, i64 %171
  %173 = load i8, ptr %172, align 1, !tbaa !15
  %174 = xor i8 %173, -1
  %175 = load ptr, ptr %43, align 8, !tbaa !14
  %176 = getelementptr inbounds ptr, ptr %175, i64 %indvars.iv1200
  %177 = load ptr, ptr %176, align 8, !tbaa !14
  %178 = getelementptr inbounds i8, ptr %177, i64 %171
  store i8 %174, ptr %178, align 1, !tbaa !15
  %179 = load ptr, ptr %42, align 8, !tbaa !14
  %180 = getelementptr inbounds ptr, ptr %179, i64 %indvars.iv1200
  %181 = load ptr, ptr %180, align 8, !tbaa !14
  %182 = or disjoint i64 %indvars.iv, 12
  %183 = getelementptr inbounds i8, ptr %181, i64 %182
  %184 = load i8, ptr %183, align 1, !tbaa !15
  %185 = xor i8 %184, -1
  %186 = load ptr, ptr %43, align 8, !tbaa !14
  %187 = getelementptr inbounds ptr, ptr %186, i64 %indvars.iv1200
  %188 = load ptr, ptr %187, align 8, !tbaa !14
  %189 = getelementptr inbounds i8, ptr %188, i64 %182
  store i8 %185, ptr %189, align 1, !tbaa !15
  %190 = load ptr, ptr %42, align 8, !tbaa !14
  %191 = getelementptr inbounds ptr, ptr %190, i64 %indvars.iv1200
  %192 = load ptr, ptr %191, align 8, !tbaa !14
  %193 = or disjoint i64 %indvars.iv, 13
  %194 = getelementptr inbounds i8, ptr %192, i64 %193
  %195 = load i8, ptr %194, align 1, !tbaa !15
  %196 = xor i8 %195, -1
  %197 = load ptr, ptr %43, align 8, !tbaa !14
  %198 = getelementptr inbounds ptr, ptr %197, i64 %indvars.iv1200
  %199 = load ptr, ptr %198, align 8, !tbaa !14
  %200 = getelementptr inbounds i8, ptr %199, i64 %193
  store i8 %196, ptr %200, align 1, !tbaa !15
  %201 = load ptr, ptr %42, align 8, !tbaa !14
  %202 = getelementptr inbounds ptr, ptr %201, i64 %indvars.iv1200
  %203 = load ptr, ptr %202, align 8, !tbaa !14
  %204 = or disjoint i64 %indvars.iv, 14
  %205 = getelementptr inbounds i8, ptr %203, i64 %204
  %206 = load i8, ptr %205, align 1, !tbaa !15
  %207 = xor i8 %206, -1
  %208 = load ptr, ptr %43, align 8, !tbaa !14
  %209 = getelementptr inbounds ptr, ptr %208, i64 %indvars.iv1200
  %210 = load ptr, ptr %209, align 8, !tbaa !14
  %211 = getelementptr inbounds i8, ptr %210, i64 %204
  store i8 %207, ptr %211, align 1, !tbaa !15
  %212 = load ptr, ptr %42, align 8, !tbaa !14
  %213 = getelementptr inbounds ptr, ptr %212, i64 %indvars.iv1200
  %214 = load ptr, ptr %213, align 8, !tbaa !14
  %215 = or disjoint i64 %indvars.iv, 15
  %216 = getelementptr inbounds i8, ptr %214, i64 %215
  %217 = load i8, ptr %216, align 1, !tbaa !15
  %218 = xor i8 %217, -1
  %219 = load ptr, ptr %43, align 8, !tbaa !14
  %220 = getelementptr inbounds ptr, ptr %219, i64 %indvars.iv1200
  %221 = load ptr, ptr %220, align 8, !tbaa !14
  %222 = getelementptr inbounds i8, ptr %221, i64 %215
  store i8 %218, ptr %222, align 1, !tbaa !15
  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 16
  %223 = load i32, ptr %34, align 8, !tbaa !12
  %224 = add nsw i32 %223, -15
  %225 = sext i32 %224 to i64
  %226 = icmp slt i64 %indvars.iv.next, %225
  br i1 %226, label %.lr.ph, label %._crit_edge.loopexit, !llvm.loop !16

._crit_edge.loopexit:                             ; preds = %.lr.ph
  %227 = 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 ], [ %227, %._crit_edge.loopexit ]
  %.lcssa = phi i32 [ %46, %.preheader ], [ %223, %._crit_edge.loopexit ]
  %228 = icmp eq i32 %.lcssa, %.0.lcssa
  br i1 %228, label %1544, label %229

229:                                              ; preds = %._crit_edge
  %230 = sub nsw i32 %.lcssa, %.0.lcssa
  switch i32 %230, label %1544 [
    i32 1, label %231
    i32 2, label %234
    i32 3, label %249
    i32 4, label %276
    i32 5, label %315
    i32 6, label %366
    i32 7, label %429
    i32 8, label %504
    i32 9, label %591
    i32 10, label %690
    i32 11, label %801
    i32 12, label %924
    i32 13, label %1059
    i32 14, label %1206
    i32 15, label %1365
  ]

231:                                              ; preds = %229
  %232 = load ptr, ptr %42, align 8, !tbaa !14
  %233 = getelementptr inbounds ptr, ptr %232, i64 %indvars.iv1200
  br label %.sink.split

234:                                              ; preds = %229
  %235 = load ptr, ptr %42, align 8, !tbaa !14
  %236 = getelementptr inbounds ptr, ptr %235, i64 %indvars.iv1200
  %237 = load ptr, ptr %236, align 8, !tbaa !14
  %238 = zext nneg i32 %.0.lcssa to i64
  %239 = getelementptr inbounds i8, ptr %237, i64 %238
  %240 = load i8, ptr %239, align 1, !tbaa !15
  %241 = xor i8 %240, -1
  %242 = load ptr, ptr %43, align 8, !tbaa !14
  %243 = getelementptr inbounds ptr, ptr %242, i64 %indvars.iv1200
  %244 = load ptr, ptr %243, align 8, !tbaa !14
  %245 = getelementptr inbounds i8, ptr %244, i64 %238
  store i8 %241, ptr %245, align 1, !tbaa !15
  %246 = load ptr, ptr %42, align 8, !tbaa !14
  %247 = getelementptr inbounds ptr, ptr %246, i64 %indvars.iv1200
  %248 = or disjoint i32 %.0.lcssa, 1
  br label %.sink.split

249:                                              ; preds = %229
  %250 = load ptr, ptr %42, align 8, !tbaa !14
  %251 = getelementptr inbounds ptr, ptr %250, i64 %indvars.iv1200
  %252 = load ptr, ptr %251, align 8, !tbaa !14
  %253 = zext nneg i32 %.0.lcssa to i64
  %254 = getelementptr inbounds i8, ptr %252, i64 %253
  %255 = load i8, ptr %254, align 1, !tbaa !15
  %256 = xor i8 %255, -1
  %257 = load ptr, ptr %43, align 8, !tbaa !14
  %258 = getelementptr inbounds ptr, ptr %257, i64 %indvars.iv1200
  %259 = load ptr, ptr %258, align 8, !tbaa !14
  %260 = getelementptr inbounds i8, ptr %259, i64 %253
  store i8 %256, ptr %260, align 1, !tbaa !15
  %261 = load ptr, ptr %42, align 8, !tbaa !14
  %262 = getelementptr inbounds ptr, ptr %261, i64 %indvars.iv1200
  %263 = load ptr, ptr %262, align 8, !tbaa !14
  %264 = or disjoint i32 %.0.lcssa, 1
  %265 = zext nneg i32 %264 to i64
  %266 = getelementptr inbounds i8, ptr %263, i64 %265
  %267 = load i8, ptr %266, align 1, !tbaa !15
  %268 = xor i8 %267, -1
  %269 = load ptr, ptr %43, align 8, !tbaa !14
  %270 = getelementptr inbounds ptr, ptr %269, i64 %indvars.iv1200
  %271 = load ptr, ptr %270, align 8, !tbaa !14
  %272 = getelementptr inbounds i8, ptr %271, i64 %265
  store i8 %268, ptr %272, align 1, !tbaa !15
  %273 = load ptr, ptr %42, align 8, !tbaa !14
  %274 = getelementptr inbounds ptr, ptr %273, i64 %indvars.iv1200
  %275 = or disjoint i32 %.0.lcssa, 2
  br label %.sink.split

276:                                              ; preds = %229
  %277 = load ptr, ptr %42, align 8, !tbaa !14
  %278 = getelementptr inbounds ptr, ptr %277, i64 %indvars.iv1200
  %279 = load ptr, ptr %278, align 8, !tbaa !14
  %280 = zext nneg i32 %.0.lcssa to i64
  %281 = getelementptr inbounds i8, ptr %279, i64 %280
  %282 = load i8, ptr %281, align 1, !tbaa !15
  %283 = xor i8 %282, -1
  %284 = load ptr, ptr %43, align 8, !tbaa !14
  %285 = getelementptr inbounds ptr, ptr %284, i64 %indvars.iv1200
  %286 = load ptr, ptr %285, align 8, !tbaa !14
  %287 = getelementptr inbounds i8, ptr %286, i64 %280
  store i8 %283, ptr %287, align 1, !tbaa !15
  %288 = load ptr, ptr %42, align 8, !tbaa !14
  %289 = getelementptr inbounds ptr, ptr %288, i64 %indvars.iv1200
  %290 = load ptr, ptr %289, align 8, !tbaa !14
  %291 = or disjoint i32 %.0.lcssa, 1
  %292 = zext nneg i32 %291 to i64
  %293 = getelementptr inbounds i8, ptr %290, i64 %292
  %294 = load i8, ptr %293, align 1, !tbaa !15
  %295 = xor i8 %294, -1
  %296 = load ptr, ptr %43, align 8, !tbaa !14
  %297 = getelementptr inbounds ptr, ptr %296, i64 %indvars.iv1200
  %298 = load ptr, ptr %297, align 8, !tbaa !14
  %299 = getelementptr inbounds i8, ptr %298, i64 %292
  store i8 %295, ptr %299, align 1, !tbaa !15
  %300 = load ptr, ptr %42, align 8, !tbaa !14
  %301 = getelementptr inbounds ptr, ptr %300, i64 %indvars.iv1200
  %302 = load ptr, ptr %301, align 8, !tbaa !14
  %303 = or disjoint i32 %.0.lcssa, 2
  %304 = zext nneg i32 %303 to i64
  %305 = getelementptr inbounds i8, ptr %302, i64 %304
  %306 = load i8, ptr %305, align 1, !tbaa !15
  %307 = xor i8 %306, -1
  %308 = load ptr, ptr %43, align 8, !tbaa !14
  %309 = getelementptr inbounds ptr, ptr %308, i64 %indvars.iv1200
  %310 = load ptr, ptr %309, align 8, !tbaa !14
  %311 = getelementptr inbounds i8, ptr %310, i64 %304
  store i8 %307, ptr %311, align 1, !tbaa !15
  %312 = load ptr, ptr %42, align 8, !tbaa !14
  %313 = getelementptr inbounds ptr, ptr %312, i64 %indvars.iv1200
  %314 = or disjoint i32 %.0.lcssa, 3
  br label %.sink.split

315:                                              ; preds = %229
  %316 = load ptr, ptr %42, align 8, !tbaa !14
  %317 = getelementptr inbounds ptr, ptr %316, i64 %indvars.iv1200
  %318 = load ptr, ptr %317, align 8, !tbaa !14
  %319 = zext nneg i32 %.0.lcssa to i64
  %320 = getelementptr inbounds i8, ptr %318, i64 %319
  %321 = load i8, ptr %320, align 1, !tbaa !15
  %322 = xor i8 %321, -1
  %323 = load ptr, ptr %43, align 8, !tbaa !14
  %324 = getelementptr inbounds ptr, ptr %323, i64 %indvars.iv1200
  %325 = load ptr, ptr %324, align 8, !tbaa !14
  %326 = getelementptr inbounds i8, ptr %325, i64 %319
  store i8 %322, ptr %326, align 1, !tbaa !15
  %327 = load ptr, ptr %42, align 8, !tbaa !14
  %328 = getelementptr inbounds ptr, ptr %327, i64 %indvars.iv1200
  %329 = load ptr, ptr %328, align 8, !tbaa !14
  %330 = or disjoint i32 %.0.lcssa, 1
  %331 = zext nneg i32 %330 to i64
  %332 = getelementptr inbounds i8, ptr %329, i64 %331
  %333 = load i8, ptr %332, align 1, !tbaa !15
  %334 = xor i8 %333, -1
  %335 = load ptr, ptr %43, align 8, !tbaa !14
  %336 = getelementptr inbounds ptr, ptr %335, i64 %indvars.iv1200
  %337 = load ptr, ptr %336, align 8, !tbaa !14
  %338 = getelementptr inbounds i8, ptr %337, i64 %331
  store i8 %334, ptr %338, align 1, !tbaa !15
  %339 = load ptr, ptr %42, align 8, !tbaa !14
  %340 = getelementptr inbounds ptr, ptr %339, i64 %indvars.iv1200
  %341 = load ptr, ptr %340, align 8, !tbaa !14
  %342 = or disjoint i32 %.0.lcssa, 2
  %343 = zext nneg i32 %342 to i64
  %344 = getelementptr inbounds i8, ptr %341, i64 %343
  %345 = load i8, ptr %344, align 1, !tbaa !15
  %346 = xor i8 %345, -1
  %347 = load ptr, ptr %43, align 8, !tbaa !14
  %348 = getelementptr inbounds ptr, ptr %347, i64 %indvars.iv1200
  %349 = load ptr, ptr %348, align 8, !tbaa !14
  %350 = getelementptr inbounds i8, ptr %349, i64 %343
  store i8 %346, ptr %350, align 1, !tbaa !15
  %351 = load ptr, ptr %42, align 8, !tbaa !14
  %352 = getelementptr inbounds ptr, ptr %351, i64 %indvars.iv1200
  %353 = load ptr, ptr %352, align 8, !tbaa !14
  %354 = or disjoint i32 %.0.lcssa, 3
  %355 = zext nneg i32 %354 to i64
  %356 = getelementptr inbounds i8, ptr %353, i64 %355
  %357 = load i8, ptr %356, align 1, !tbaa !15
  %358 = xor i8 %357, -1
  %359 = load ptr, ptr %43, align 8, !tbaa !14
  %360 = getelementptr inbounds ptr, ptr %359, i64 %indvars.iv1200
  %361 = load ptr, ptr %360, align 8, !tbaa !14
  %362 = getelementptr inbounds i8, ptr %361, i64 %355
  store i8 %358, ptr %362, align 1, !tbaa !15
  %363 = load ptr, ptr %42, align 8, !tbaa !14
  %364 = getelementptr inbounds ptr, ptr %363, i64 %indvars.iv1200
  %365 = or disjoint i32 %.0.lcssa, 4
  br label %.sink.split

366:                                              ; preds = %229
  %367 = load ptr, ptr %42, align 8, !tbaa !14
  %368 = getelementptr inbounds ptr, ptr %367, i64 %indvars.iv1200
  %369 = load ptr, ptr %368, align 8, !tbaa !14
  %370 = zext nneg i32 %.0.lcssa to i64
  %371 = getelementptr inbounds i8, ptr %369, i64 %370
  %372 = load i8, ptr %371, align 1, !tbaa !15
  %373 = xor i8 %372, -1
  %374 = load ptr, ptr %43, align 8, !tbaa !14
  %375 = getelementptr inbounds ptr, ptr %374, i64 %indvars.iv1200
  %376 = load ptr, ptr %375, align 8, !tbaa !14
  %377 = getelementptr inbounds i8, ptr %376, i64 %370
  store i8 %373, ptr %377, align 1, !tbaa !15
  %378 = load ptr, ptr %42, align 8, !tbaa !14
  %379 = getelementptr inbounds ptr, ptr %378, i64 %indvars.iv1200
  %380 = load ptr, ptr %379, align 8, !tbaa !14
  %381 = or disjoint i32 %.0.lcssa, 1
  %382 = zext nneg i32 %381 to i64
  %383 = getelementptr inbounds i8, ptr %380, i64 %382
  %384 = load i8, ptr %383, align 1, !tbaa !15
  %385 = xor i8 %384, -1
  %386 = load ptr, ptr %43, align 8, !tbaa !14
  %387 = getelementptr inbounds ptr, ptr %386, i64 %indvars.iv1200
  %388 = load ptr, ptr %387, align 8, !tbaa !14
  %389 = getelementptr inbounds i8, ptr %388, i64 %382
  store i8 %385, ptr %389, align 1, !tbaa !15
  %390 = load ptr, ptr %42, align 8, !tbaa !14
  %391 = getelementptr inbounds ptr, ptr %390, i64 %indvars.iv1200
  %392 = load ptr, ptr %391, align 8, !tbaa !14
  %393 = or disjoint i32 %.0.lcssa, 2
  %394 = zext nneg i32 %393 to i64
  %395 = getelementptr inbounds i8, ptr %392, i64 %394
  %396 = load i8, ptr %395, align 1, !tbaa !15
  %397 = xor i8 %396, -1
  %398 = load ptr, ptr %43, align 8, !tbaa !14
  %399 = getelementptr inbounds ptr, ptr %398, i64 %indvars.iv1200
  %400 = load ptr, ptr %399, align 8, !tbaa !14
  %401 = getelementptr inbounds i8, ptr %400, i64 %394
  store i8 %397, ptr %401, align 1, !tbaa !15
  %402 = load ptr, ptr %42, align 8, !tbaa !14
  %403 = getelementptr inbounds ptr, ptr %402, i64 %indvars.iv1200
  %404 = load ptr, ptr %403, align 8, !tbaa !14
  %405 = or disjoint i32 %.0.lcssa, 3
  %406 = zext nneg i32 %405 to i64
  %407 = getelementptr inbounds i8, ptr %404, i64 %406
  %408 = load i8, ptr %407, align 1, !tbaa !15
  %409 = xor i8 %408, -1
  %410 = load ptr, ptr %43, align 8, !tbaa !14
  %411 = getelementptr inbounds ptr, ptr %410, i64 %indvars.iv1200
  %412 = load ptr, ptr %411, align 8, !tbaa !14
  %413 = getelementptr inbounds i8, ptr %412, i64 %406
  store i8 %409, ptr %413, align 1, !tbaa !15
  %414 = load ptr, ptr %42, align 8, !tbaa !14
  %415 = getelementptr inbounds ptr, ptr %414, i64 %indvars.iv1200
  %416 = load ptr, ptr %415, align 8, !tbaa !14
  %417 = or disjoint i32 %.0.lcssa, 4
  %418 = zext nneg i32 %417 to i64
  %419 = getelementptr inbounds i8, ptr %416, i64 %418
  %420 = load i8, ptr %419, align 1, !tbaa !15
  %421 = xor i8 %420, -1
  %422 = load ptr, ptr %43, align 8, !tbaa !14
  %423 = getelementptr inbounds ptr, ptr %422, i64 %indvars.iv1200
  %424 = load ptr, ptr %423, align 8, !tbaa !14
  %425 = getelementptr inbounds i8, ptr %424, i64 %418
  store i8 %421, ptr %425, align 1, !tbaa !15
  %426 = load ptr, ptr %42, align 8, !tbaa !14
  %427 = getelementptr inbounds ptr, ptr %426, i64 %indvars.iv1200
  %428 = or disjoint i32 %.0.lcssa, 5
  br label %.sink.split

429:                                              ; preds = %229
  %430 = load ptr, ptr %42, align 8, !tbaa !14
  %431 = getelementptr inbounds ptr, ptr %430, i64 %indvars.iv1200
  %432 = load ptr, ptr %431, align 8, !tbaa !14
  %433 = zext nneg i32 %.0.lcssa to i64
  %434 = getelementptr inbounds i8, ptr %432, i64 %433
  %435 = load i8, ptr %434, align 1, !tbaa !15
  %436 = xor i8 %435, -1
  %437 = load ptr, ptr %43, align 8, !tbaa !14
  %438 = getelementptr inbounds ptr, ptr %437, i64 %indvars.iv1200
  %439 = load ptr, ptr %438, align 8, !tbaa !14
  %440 = getelementptr inbounds i8, ptr %439, i64 %433
  store i8 %436, ptr %440, align 1, !tbaa !15
  %441 = load ptr, ptr %42, align 8, !tbaa !14
  %442 = getelementptr inbounds ptr, ptr %441, i64 %indvars.iv1200
  %443 = load ptr, ptr %442, align 8, !tbaa !14
  %444 = or disjoint i32 %.0.lcssa, 1
  %445 = zext nneg i32 %444 to i64
  %446 = getelementptr inbounds i8, ptr %443, i64 %445
  %447 = load i8, ptr %446, align 1, !tbaa !15
  %448 = xor i8 %447, -1
  %449 = load ptr, ptr %43, align 8, !tbaa !14
  %450 = getelementptr inbounds ptr, ptr %449, i64 %indvars.iv1200
  %451 = load ptr, ptr %450, align 8, !tbaa !14
  %452 = getelementptr inbounds i8, ptr %451, i64 %445
  store i8 %448, ptr %452, align 1, !tbaa !15
  %453 = load ptr, ptr %42, align 8, !tbaa !14
  %454 = getelementptr inbounds ptr, ptr %453, i64 %indvars.iv1200
  %455 = load ptr, ptr %454, align 8, !tbaa !14
  %456 = or disjoint i32 %.0.lcssa, 2
  %457 = zext nneg i32 %456 to i64
  %458 = getelementptr inbounds i8, ptr %455, i64 %457
  %459 = load i8, ptr %458, align 1, !tbaa !15
  %460 = xor i8 %459, -1
  %461 = load ptr, ptr %43, align 8, !tbaa !14
  %462 = getelementptr inbounds ptr, ptr %461, i64 %indvars.iv1200
  %463 = load ptr, ptr %462, align 8, !tbaa !14
  %464 = getelementptr inbounds i8, ptr %463, i64 %457
  store i8 %460, ptr %464, align 1, !tbaa !15
  %465 = load ptr, ptr %42, align 8, !tbaa !14
  %466 = getelementptr inbounds ptr, ptr %465, i64 %indvars.iv1200
  %467 = load ptr, ptr %466, align 8, !tbaa !14
  %468 = or disjoint i32 %.0.lcssa, 3
  %469 = zext nneg i32 %468 to i64
  %470 = getelementptr inbounds i8, ptr %467, i64 %469
  %471 = load i8, ptr %470, align 1, !tbaa !15
  %472 = xor i8 %471, -1
  %473 = load ptr, ptr %43, align 8, !tbaa !14
  %474 = getelementptr inbounds ptr, ptr %473, i64 %indvars.iv1200
  %475 = load ptr, ptr %474, align 8, !tbaa !14
  %476 = getelementptr inbounds i8, ptr %475, i64 %469
  store i8 %472, ptr %476, align 1, !tbaa !15
  %477 = load ptr, ptr %42, align 8, !tbaa !14
  %478 = getelementptr inbounds ptr, ptr %477, i64 %indvars.iv1200
  %479 = load ptr, ptr %478, align 8, !tbaa !14
  %480 = or disjoint i32 %.0.lcssa, 4
  %481 = zext nneg i32 %480 to i64
  %482 = getelementptr inbounds i8, ptr %479, i64 %481
  %483 = load i8, ptr %482, align 1, !tbaa !15
  %484 = xor i8 %483, -1
  %485 = load ptr, ptr %43, align 8, !tbaa !14
  %486 = getelementptr inbounds ptr, ptr %485, i64 %indvars.iv1200
  %487 = load ptr, ptr %486, align 8, !tbaa !14
  %488 = getelementptr inbounds i8, ptr %487, i64 %481
  store i8 %484, ptr %488, align 1, !tbaa !15
  %489 = load ptr, ptr %42, align 8, !tbaa !14
  %490 = getelementptr inbounds ptr, ptr %489, i64 %indvars.iv1200
  %491 = load ptr, ptr %490, align 8, !tbaa !14
  %492 = or disjoint i32 %.0.lcssa, 5
  %493 = zext nneg i32 %492 to i64
  %494 = getelementptr inbounds i8, ptr %491, i64 %493
  %495 = load i8, ptr %494, align 1, !tbaa !15
  %496 = xor i8 %495, -1
  %497 = load ptr, ptr %43, align 8, !tbaa !14
  %498 = getelementptr inbounds ptr, ptr %497, i64 %indvars.iv1200
  %499 = load ptr, ptr %498, align 8, !tbaa !14
  %500 = getelementptr inbounds i8, ptr %499, i64 %493
  store i8 %496, ptr %500, align 1, !tbaa !15
  %501 = load ptr, ptr %42, align 8, !tbaa !14
  %502 = getelementptr inbounds ptr, ptr %501, i64 %indvars.iv1200
  %503 = or disjoint i32 %.0.lcssa, 6
  br label %.sink.split

504:                                              ; preds = %229
  %505 = load ptr, ptr %42, align 8, !tbaa !14
  %506 = getelementptr inbounds ptr, ptr %505, i64 %indvars.iv1200
  %507 = load ptr, ptr %506, align 8, !tbaa !14
  %508 = zext nneg i32 %.0.lcssa to i64
  %509 = getelementptr inbounds i8, ptr %507, i64 %508
  %510 = load i8, ptr %509, align 1, !tbaa !15
  %511 = xor i8 %510, -1
  %512 = load ptr, ptr %43, align 8, !tbaa !14
  %513 = getelementptr inbounds ptr, ptr %512, i64 %indvars.iv1200
  %514 = load ptr, ptr %513, align 8, !tbaa !14
  %515 = getelementptr inbounds i8, ptr %514, i64 %508
  store i8 %511, ptr %515, align 1, !tbaa !15
  %516 = load ptr, ptr %42, align 8, !tbaa !14
  %517 = getelementptr inbounds ptr, ptr %516, i64 %indvars.iv1200
  %518 = load ptr, ptr %517, align 8, !tbaa !14
  %519 = or disjoint i32 %.0.lcssa, 1
  %520 = zext nneg i32 %519 to i64
  %521 = getelementptr inbounds i8, ptr %518, i64 %520
  %522 = load i8, ptr %521, align 1, !tbaa !15
  %523 = xor i8 %522, -1
  %524 = load ptr, ptr %43, align 8, !tbaa !14
  %525 = getelementptr inbounds ptr, ptr %524, i64 %indvars.iv1200
  %526 = load ptr, ptr %525, align 8, !tbaa !14
  %527 = getelementptr inbounds i8, ptr %526, i64 %520
  store i8 %523, ptr %527, align 1, !tbaa !15
  %528 = load ptr, ptr %42, align 8, !tbaa !14
  %529 = getelementptr inbounds ptr, ptr %528, i64 %indvars.iv1200
  %530 = load ptr, ptr %529, align 8, !tbaa !14
  %531 = or disjoint i32 %.0.lcssa, 2
  %532 = zext nneg i32 %531 to i64
  %533 = getelementptr inbounds i8, ptr %530, i64 %532
  %534 = load i8, ptr %533, align 1, !tbaa !15
  %535 = xor i8 %534, -1
  %536 = load ptr, ptr %43, align 8, !tbaa !14
  %537 = getelementptr inbounds ptr, ptr %536, i64 %indvars.iv1200
  %538 = load ptr, ptr %537, align 8, !tbaa !14
  %539 = getelementptr inbounds i8, ptr %538, i64 %532
  store i8 %535, ptr %539, align 1, !tbaa !15
  %540 = load ptr, ptr %42, align 8, !tbaa !14
  %541 = getelementptr inbounds ptr, ptr %540, i64 %indvars.iv1200
  %542 = load ptr, ptr %541, align 8, !tbaa !14
  %543 = or disjoint i32 %.0.lcssa, 3
  %544 = zext nneg i32 %543 to i64
  %545 = getelementptr inbounds i8, ptr %542, i64 %544
  %546 = load i8, ptr %545, align 1, !tbaa !15
  %547 = xor i8 %546, -1
  %548 = load ptr, ptr %43, align 8, !tbaa !14
  %549 = getelementptr inbounds ptr, ptr %548, i64 %indvars.iv1200
  %550 = load ptr, ptr %549, align 8, !tbaa !14
  %551 = getelementptr inbounds i8, ptr %550, i64 %544
  store i8 %547, ptr %551, align 1, !tbaa !15
  %552 = load ptr, ptr %42, align 8, !tbaa !14
  %553 = getelementptr inbounds ptr, ptr %552, i64 %indvars.iv1200
  %554 = load ptr, ptr %553, align 8, !tbaa !14
  %555 = or disjoint i32 %.0.lcssa, 4
  %556 = zext nneg i32 %555 to i64
  %557 = getelementptr inbounds i8, ptr %554, i64 %556
  %558 = load i8, ptr %557, align 1, !tbaa !15
  %559 = xor i8 %558, -1
  %560 = load ptr, ptr %43, align 8, !tbaa !14
  %561 = getelementptr inbounds ptr, ptr %560, i64 %indvars.iv1200
  %562 = load ptr, ptr %561, align 8, !tbaa !14
  %563 = getelementptr inbounds i8, ptr %562, i64 %556
  store i8 %559, ptr %563, align 1, !tbaa !15
  %564 = load ptr, ptr %42, align 8, !tbaa !14
  %565 = getelementptr inbounds ptr, ptr %564, i64 %indvars.iv1200
  %566 = load ptr, ptr %565, align 8, !tbaa !14
  %567 = or disjoint i32 %.0.lcssa, 5
  %568 = zext nneg i32 %567 to i64
  %569 = getelementptr inbounds i8, ptr %566, i64 %568
  %570 = load i8, ptr %569, align 1, !tbaa !15
  %571 = xor i8 %570, -1
  %572 = load ptr, ptr %43, align 8, !tbaa !14
  %573 = getelementptr inbounds ptr, ptr %572, i64 %indvars.iv1200
  %574 = load ptr, ptr %573, align 8, !tbaa !14
  %575 = getelementptr inbounds i8, ptr %574, i64 %568
  store i8 %571, ptr %575, align 1, !tbaa !15
  %576 = load ptr, ptr %42, align 8, !tbaa !14
  %577 = getelementptr inbounds ptr, ptr %576, i64 %indvars.iv1200
  %578 = load ptr, ptr %577, align 8, !tbaa !14
  %579 = or disjoint i32 %.0.lcssa, 6
  %580 = zext nneg i32 %579 to i64
  %581 = getelementptr inbounds i8, ptr %578, i64 %580
  %582 = load i8, ptr %581, align 1, !tbaa !15
  %583 = xor i8 %582, -1
  %584 = load ptr, ptr %43, align 8, !tbaa !14
  %585 = getelementptr inbounds ptr, ptr %584, i64 %indvars.iv1200
  %586 = load ptr, ptr %585, align 8, !tbaa !14
  %587 = getelementptr inbounds i8, ptr %586, i64 %580
  store i8 %583, ptr %587, align 1, !tbaa !15
  %588 = load ptr, ptr %42, align 8, !tbaa !14
  %589 = getelementptr inbounds ptr, ptr %588, i64 %indvars.iv1200
  %590 = or disjoint i32 %.0.lcssa, 7
  br label %.sink.split

591:                                              ; preds = %229
  %592 = load ptr, ptr %42, align 8, !tbaa !14
  %593 = getelementptr inbounds ptr, ptr %592, i64 %indvars.iv1200
  %594 = load ptr, ptr %593, align 8, !tbaa !14
  %595 = zext nneg i32 %.0.lcssa to i64
  %596 = getelementptr inbounds i8, ptr %594, i64 %595
  %597 = load i8, ptr %596, align 1, !tbaa !15
  %598 = xor i8 %597, -1
  %599 = load ptr, ptr %43, align 8, !tbaa !14
  %600 = getelementptr inbounds ptr, ptr %599, i64 %indvars.iv1200
  %601 = load ptr, ptr %600, align 8, !tbaa !14
  %602 = getelementptr inbounds i8, ptr %601, i64 %595
  store i8 %598, ptr %602, align 1, !tbaa !15
  %603 = load ptr, ptr %42, align 8, !tbaa !14
  %604 = getelementptr inbounds ptr, ptr %603, i64 %indvars.iv1200
  %605 = load ptr, ptr %604, align 8, !tbaa !14
  %606 = or disjoint i32 %.0.lcssa, 1
  %607 = zext nneg i32 %606 to i64
  %608 = getelementptr inbounds i8, ptr %605, i64 %607
  %609 = load i8, ptr %608, align 1, !tbaa !15
  %610 = xor i8 %609, -1
  %611 = load ptr, ptr %43, align 8, !tbaa !14
  %612 = getelementptr inbounds ptr, ptr %611, i64 %indvars.iv1200
  %613 = load ptr, ptr %612, align 8, !tbaa !14
  %614 = getelementptr inbounds i8, ptr %613, i64 %607
  store i8 %610, ptr %614, align 1, !tbaa !15
  %615 = load ptr, ptr %42, align 8, !tbaa !14
  %616 = getelementptr inbounds ptr, ptr %615, i64 %indvars.iv1200
  %617 = load ptr, ptr %616, align 8, !tbaa !14
  %618 = or disjoint i32 %.0.lcssa, 2
  %619 = zext nneg i32 %618 to i64
  %620 = getelementptr inbounds i8, ptr %617, i64 %619
  %621 = load i8, ptr %620, align 1, !tbaa !15
  %622 = xor i8 %621, -1
  %623 = load ptr, ptr %43, align 8, !tbaa !14
  %624 = getelementptr inbounds ptr, ptr %623, i64 %indvars.iv1200
  %625 = load ptr, ptr %624, align 8, !tbaa !14
  %626 = getelementptr inbounds i8, ptr %625, i64 %619
  store i8 %622, ptr %626, align 1, !tbaa !15
  %627 = load ptr, ptr %42, align 8, !tbaa !14
  %628 = getelementptr inbounds ptr, ptr %627, i64 %indvars.iv1200
  %629 = load ptr, ptr %628, align 8, !tbaa !14
  %630 = or disjoint i32 %.0.lcssa, 3
  %631 = zext nneg i32 %630 to i64
  %632 = getelementptr inbounds i8, ptr %629, i64 %631
  %633 = load i8, ptr %632, align 1, !tbaa !15
  %634 = xor i8 %633, -1
  %635 = load ptr, ptr %43, align 8, !tbaa !14
  %636 = getelementptr inbounds ptr, ptr %635, i64 %indvars.iv1200
  %637 = load ptr, ptr %636, align 8, !tbaa !14
  %638 = getelementptr inbounds i8, ptr %637, i64 %631
  store i8 %634, ptr %638, align 1, !tbaa !15
  %639 = load ptr, ptr %42, align 8, !tbaa !14
  %640 = getelementptr inbounds ptr, ptr %639, i64 %indvars.iv1200
  %641 = load ptr, ptr %640, align 8, !tbaa !14
  %642 = or disjoint i32 %.0.lcssa, 4
  %643 = zext nneg i32 %642 to i64
  %644 = getelementptr inbounds i8, ptr %641, i64 %643
  %645 = load i8, ptr %644, align 1, !tbaa !15
  %646 = xor i8 %645, -1
  %647 = load ptr, ptr %43, align 8, !tbaa !14
  %648 = getelementptr inbounds ptr, ptr %647, i64 %indvars.iv1200
  %649 = load ptr, ptr %648, align 8, !tbaa !14
  %650 = getelementptr inbounds i8, ptr %649, i64 %643
  store i8 %646, ptr %650, align 1, !tbaa !15
  %651 = load ptr, ptr %42, align 8, !tbaa !14
  %652 = getelementptr inbounds ptr, ptr %651, i64 %indvars.iv1200
  %653 = load ptr, ptr %652, align 8, !tbaa !14
  %654 = or disjoint i32 %.0.lcssa, 5
  %655 = zext nneg i32 %654 to i64
  %656 = getelementptr inbounds i8, ptr %653, i64 %655
  %657 = load i8, ptr %656, align 1, !tbaa !15
  %658 = xor i8 %657, -1
  %659 = load ptr, ptr %43, align 8, !tbaa !14
  %660 = getelementptr inbounds ptr, ptr %659, i64 %indvars.iv1200
  %661 = load ptr, ptr %660, align 8, !tbaa !14
  %662 = getelementptr inbounds i8, ptr %661, i64 %655
  store i8 %658, ptr %662, align 1, !tbaa !15
  %663 = load ptr, ptr %42, align 8, !tbaa !14
  %664 = getelementptr inbounds ptr, ptr %663, i64 %indvars.iv1200
  %665 = load ptr, ptr %664, align 8, !tbaa !14
  %666 = or disjoint i32 %.0.lcssa, 6
  %667 = zext nneg i32 %666 to i64
  %668 = getelementptr inbounds i8, ptr %665, i64 %667
  %669 = load i8, ptr %668, align 1, !tbaa !15
  %670 = xor i8 %669, -1
  %671 = load ptr, ptr %43, align 8, !tbaa !14
  %672 = getelementptr inbounds ptr, ptr %671, i64 %indvars.iv1200
  %673 = load ptr, ptr %672, align 8, !tbaa !14
  %674 = getelementptr inbounds i8, ptr %673, i64 %667
  store i8 %670, ptr %674, align 1, !tbaa !15
  %675 = load ptr, ptr %42, align 8, !tbaa !14
  %676 = getelementptr inbounds ptr, ptr %675, i64 %indvars.iv1200
  %677 = load ptr, ptr %676, align 8, !tbaa !14
  %678 = or disjoint i32 %.0.lcssa, 7
  %679 = zext nneg i32 %678 to i64
  %680 = getelementptr inbounds i8, ptr %677, i64 %679
  %681 = load i8, ptr %680, align 1, !tbaa !15
  %682 = xor i8 %681, -1
  %683 = load ptr, ptr %43, align 8, !tbaa !14
  %684 = getelementptr inbounds ptr, ptr %683, i64 %indvars.iv1200
  %685 = load ptr, ptr %684, align 8, !tbaa !14
  %686 = getelementptr inbounds i8, ptr %685, i64 %679
  store i8 %682, ptr %686, align 1, !tbaa !15
  %687 = load ptr, ptr %42, align 8, !tbaa !14
  %688 = getelementptr inbounds ptr, ptr %687, i64 %indvars.iv1200
  %689 = or disjoint i32 %.0.lcssa, 8
  br label %.sink.split

690:                                              ; preds = %229
  %691 = load ptr, ptr %42, align 8, !tbaa !14
  %692 = getelementptr inbounds ptr, ptr %691, i64 %indvars.iv1200
  %693 = load ptr, ptr %692, align 8, !tbaa !14
  %694 = zext nneg i32 %.0.lcssa to i64
  %695 = getelementptr inbounds i8, ptr %693, i64 %694
  %696 = load i8, ptr %695, align 1, !tbaa !15
  %697 = xor i8 %696, -1
  %698 = load ptr, ptr %43, align 8, !tbaa !14
  %699 = getelementptr inbounds ptr, ptr %698, i64 %indvars.iv1200
  %700 = load ptr, ptr %699, align 8, !tbaa !14
  %701 = getelementptr inbounds i8, ptr %700, i64 %694
  store i8 %697, ptr %701, align 1, !tbaa !15
  %702 = load ptr, ptr %42, align 8, !tbaa !14
  %703 = getelementptr inbounds ptr, ptr %702, i64 %indvars.iv1200
  %704 = load ptr, ptr %703, align 8, !tbaa !14
  %705 = or disjoint i32 %.0.lcssa, 1
  %706 = zext nneg i32 %705 to i64
  %707 = getelementptr inbounds i8, ptr %704, i64 %706
  %708 = load i8, ptr %707, align 1, !tbaa !15
  %709 = xor i8 %708, -1
  %710 = load ptr, ptr %43, align 8, !tbaa !14
  %711 = getelementptr inbounds ptr, ptr %710, i64 %indvars.iv1200
  %712 = load ptr, ptr %711, align 8, !tbaa !14
  %713 = getelementptr inbounds i8, ptr %712, i64 %706
  store i8 %709, ptr %713, align 1, !tbaa !15
  %714 = load ptr, ptr %42, align 8, !tbaa !14
  %715 = getelementptr inbounds ptr, ptr %714, i64 %indvars.iv1200
  %716 = load ptr, ptr %715, align 8, !tbaa !14
  %717 = or disjoint i32 %.0.lcssa, 2
  %718 = zext nneg i32 %717 to i64
  %719 = getelementptr inbounds i8, ptr %716, i64 %718
  %720 = load i8, ptr %719, align 1, !tbaa !15
  %721 = xor i8 %720, -1
  %722 = load ptr, ptr %43, align 8, !tbaa !14
  %723 = getelementptr inbounds ptr, ptr %722, i64 %indvars.iv1200
  %724 = load ptr, ptr %723, align 8, !tbaa !14
  %725 = getelementptr inbounds i8, ptr %724, i64 %718
  store i8 %721, ptr %725, align 1, !tbaa !15
  %726 = load ptr, ptr %42, align 8, !tbaa !14
  %727 = getelementptr inbounds ptr, ptr %726, i64 %indvars.iv1200
  %728 = load ptr, ptr %727, align 8, !tbaa !14
  %729 = or disjoint i32 %.0.lcssa, 3
  %730 = zext nneg i32 %729 to i64
  %731 = getelementptr inbounds i8, ptr %728, i64 %730
  %732 = load i8, ptr %731, align 1, !tbaa !15
  %733 = xor i8 %732, -1
  %734 = load ptr, ptr %43, align 8, !tbaa !14
  %735 = getelementptr inbounds ptr, ptr %734, i64 %indvars.iv1200
  %736 = load ptr, ptr %735, align 8, !tbaa !14
  %737 = getelementptr inbounds i8, ptr %736, i64 %730
  store i8 %733, ptr %737, align 1, !tbaa !15
  %738 = load ptr, ptr %42, align 8, !tbaa !14
  %739 = getelementptr inbounds ptr, ptr %738, i64 %indvars.iv1200
  %740 = load ptr, ptr %739, align 8, !tbaa !14
  %741 = or disjoint i32 %.0.lcssa, 4
  %742 = zext nneg i32 %741 to i64
  %743 = getelementptr inbounds i8, ptr %740, i64 %742
  %744 = load i8, ptr %743, align 1, !tbaa !15
  %745 = xor i8 %744, -1
  %746 = load ptr, ptr %43, align 8, !tbaa !14
  %747 = getelementptr inbounds ptr, ptr %746, i64 %indvars.iv1200
  %748 = load ptr, ptr %747, align 8, !tbaa !14
  %749 = getelementptr inbounds i8, ptr %748, i64 %742
  store i8 %745, ptr %749, align 1, !tbaa !15
  %750 = load ptr, ptr %42, align 8, !tbaa !14
  %751 = getelementptr inbounds ptr, ptr %750, i64 %indvars.iv1200
  %752 = load ptr, ptr %751, align 8, !tbaa !14
  %753 = or disjoint i32 %.0.lcssa, 5
  %754 = zext nneg i32 %753 to i64
  %755 = getelementptr inbounds i8, ptr %752, i64 %754
  %756 = load i8, ptr %755, align 1, !tbaa !15
  %757 = xor i8 %756, -1
  %758 = load ptr, ptr %43, align 8, !tbaa !14
  %759 = getelementptr inbounds ptr, ptr %758, i64 %indvars.iv1200
  %760 = load ptr, ptr %759, align 8, !tbaa !14
  %761 = getelementptr inbounds i8, ptr %760, i64 %754
  store i8 %757, ptr %761, align 1, !tbaa !15
  %762 = load ptr, ptr %42, align 8, !tbaa !14
  %763 = getelementptr inbounds ptr, ptr %762, i64 %indvars.iv1200
  %764 = load ptr, ptr %763, align 8, !tbaa !14
  %765 = or disjoint i32 %.0.lcssa, 6
  %766 = zext nneg i32 %765 to i64
  %767 = getelementptr inbounds i8, ptr %764, i64 %766
  %768 = load i8, ptr %767, align 1, !tbaa !15
  %769 = xor i8 %768, -1
  %770 = load ptr, ptr %43, align 8, !tbaa !14
  %771 = getelementptr inbounds ptr, ptr %770, i64 %indvars.iv1200
  %772 = load ptr, ptr %771, align 8, !tbaa !14
  %773 = getelementptr inbounds i8, ptr %772, i64 %766
  store i8 %769, ptr %773, align 1, !tbaa !15
  %774 = load ptr, ptr %42, align 8, !tbaa !14
  %775 = getelementptr inbounds ptr, ptr %774, i64 %indvars.iv1200
  %776 = load ptr, ptr %775, align 8, !tbaa !14
  %777 = or disjoint i32 %.0.lcssa, 7
  %778 = zext nneg i32 %777 to i64
  %779 = getelementptr inbounds i8, ptr %776, i64 %778
  %780 = load i8, ptr %779, align 1, !tbaa !15
  %781 = xor i8 %780, -1
  %782 = load ptr, ptr %43, align 8, !tbaa !14
  %783 = getelementptr inbounds ptr, ptr %782, i64 %indvars.iv1200
  %784 = load ptr, ptr %783, align 8, !tbaa !14
  %785 = getelementptr inbounds i8, ptr %784, i64 %778
  store i8 %781, ptr %785, align 1, !tbaa !15
  %786 = load ptr, ptr %42, align 8, !tbaa !14
  %787 = getelementptr inbounds ptr, ptr %786, i64 %indvars.iv1200
  %788 = load ptr, ptr %787, align 8, !tbaa !14
  %789 = or disjoint i32 %.0.lcssa, 8
  %790 = zext nneg i32 %789 to i64
  %791 = getelementptr inbounds i8, ptr %788, i64 %790
  %792 = load i8, ptr %791, align 1, !tbaa !15
  %793 = xor i8 %792, -1
  %794 = load ptr, ptr %43, align 8, !tbaa !14
  %795 = getelementptr inbounds ptr, ptr %794, i64 %indvars.iv1200
  %796 = load ptr, ptr %795, align 8, !tbaa !14
  %797 = getelementptr inbounds i8, ptr %796, i64 %790
  store i8 %793, ptr %797, align 1, !tbaa !15
  %798 = load ptr, ptr %42, align 8, !tbaa !14
  %799 = getelementptr inbounds ptr, ptr %798, i64 %indvars.iv1200
  %800 = or disjoint i32 %.0.lcssa, 9
  br label %.sink.split

801:                                              ; preds = %229
  %802 = load ptr, ptr %42, align 8, !tbaa !14
  %803 = getelementptr inbounds ptr, ptr %802, i64 %indvars.iv1200
  %804 = load ptr, ptr %803, align 8, !tbaa !14
  %805 = zext nneg i32 %.0.lcssa to i64
  %806 = getelementptr inbounds i8, ptr %804, i64 %805
  %807 = load i8, ptr %806, align 1, !tbaa !15
  %808 = xor i8 %807, -1
  %809 = load ptr, ptr %43, align 8, !tbaa !14
  %810 = getelementptr inbounds ptr, ptr %809, i64 %indvars.iv1200
  %811 = load ptr, ptr %810, align 8, !tbaa !14
  %812 = getelementptr inbounds i8, ptr %811, i64 %805
  store i8 %808, ptr %812, align 1, !tbaa !15
  %813 = load ptr, ptr %42, align 8, !tbaa !14
  %814 = getelementptr inbounds ptr, ptr %813, i64 %indvars.iv1200
  %815 = load ptr, ptr %814, align 8, !tbaa !14
  %816 = or disjoint i32 %.0.lcssa, 1
  %817 = zext nneg i32 %816 to i64
  %818 = getelementptr inbounds i8, ptr %815, i64 %817
  %819 = load i8, ptr %818, align 1, !tbaa !15
  %820 = xor i8 %819, -1
  %821 = load ptr, ptr %43, align 8, !tbaa !14
  %822 = getelementptr inbounds ptr, ptr %821, i64 %indvars.iv1200
  %823 = load ptr, ptr %822, align 8, !tbaa !14
  %824 = getelementptr inbounds i8, ptr %823, i64 %817
  store i8 %820, ptr %824, align 1, !tbaa !15
  %825 = load ptr, ptr %42, align 8, !tbaa !14
  %826 = getelementptr inbounds ptr, ptr %825, i64 %indvars.iv1200
  %827 = load ptr, ptr %826, align 8, !tbaa !14
  %828 = or disjoint i32 %.0.lcssa, 2
  %829 = zext nneg i32 %828 to i64
  %830 = getelementptr inbounds i8, ptr %827, i64 %829
  %831 = load i8, ptr %830, align 1, !tbaa !15
  %832 = xor i8 %831, -1
  %833 = load ptr, ptr %43, align 8, !tbaa !14
  %834 = getelementptr inbounds ptr, ptr %833, i64 %indvars.iv1200
  %835 = load ptr, ptr %834, align 8, !tbaa !14
  %836 = getelementptr inbounds i8, ptr %835, i64 %829
  store i8 %832, ptr %836, align 1, !tbaa !15
  %837 = load ptr, ptr %42, align 8, !tbaa !14
  %838 = getelementptr inbounds ptr, ptr %837, i64 %indvars.iv1200
  %839 = load ptr, ptr %838, align 8, !tbaa !14
  %840 = or disjoint i32 %.0.lcssa, 3
  %841 = zext nneg i32 %840 to i64
  %842 = getelementptr inbounds i8, ptr %839, i64 %841
  %843 = load i8, ptr %842, align 1, !tbaa !15
  %844 = xor i8 %843, -1
  %845 = load ptr, ptr %43, align 8, !tbaa !14
  %846 = getelementptr inbounds ptr, ptr %845, i64 %indvars.iv1200
  %847 = load ptr, ptr %846, align 8, !tbaa !14
  %848 = getelementptr inbounds i8, ptr %847, i64 %841
  store i8 %844, ptr %848, align 1, !tbaa !15
  %849 = load ptr, ptr %42, align 8, !tbaa !14
  %850 = getelementptr inbounds ptr, ptr %849, i64 %indvars.iv1200
  %851 = load ptr, ptr %850, align 8, !tbaa !14
  %852 = or disjoint i32 %.0.lcssa, 4
  %853 = zext nneg i32 %852 to i64
  %854 = getelementptr inbounds i8, ptr %851, i64 %853
  %855 = load i8, ptr %854, align 1, !tbaa !15
  %856 = xor i8 %855, -1
  %857 = load ptr, ptr %43, align 8, !tbaa !14
  %858 = getelementptr inbounds ptr, ptr %857, i64 %indvars.iv1200
  %859 = load ptr, ptr %858, align 8, !tbaa !14
  %860 = getelementptr inbounds i8, ptr %859, i64 %853
  store i8 %856, ptr %860, align 1, !tbaa !15
  %861 = load ptr, ptr %42, align 8, !tbaa !14
  %862 = getelementptr inbounds ptr, ptr %861, i64 %indvars.iv1200
  %863 = load ptr, ptr %862, align 8, !tbaa !14
  %864 = or disjoint i32 %.0.lcssa, 5
  %865 = zext nneg i32 %864 to i64
  %866 = getelementptr inbounds i8, ptr %863, i64 %865
  %867 = load i8, ptr %866, align 1, !tbaa !15
  %868 = xor i8 %867, -1
  %869 = load ptr, ptr %43, align 8, !tbaa !14
  %870 = getelementptr inbounds ptr, ptr %869, i64 %indvars.iv1200
  %871 = load ptr, ptr %870, align 8, !tbaa !14
  %872 = getelementptr inbounds i8, ptr %871, i64 %865
  store i8 %868, ptr %872, align 1, !tbaa !15
  %873 = load ptr, ptr %42, align 8, !tbaa !14
  %874 = getelementptr inbounds ptr, ptr %873, i64 %indvars.iv1200
  %875 = load ptr, ptr %874, align 8, !tbaa !14
  %876 = or disjoint i32 %.0.lcssa, 6
  %877 = zext nneg i32 %876 to i64
  %878 = getelementptr inbounds i8, ptr %875, i64 %877
  %879 = load i8, ptr %878, align 1, !tbaa !15
  %880 = xor i8 %879, -1
  %881 = load ptr, ptr %43, align 8, !tbaa !14
  %882 = getelementptr inbounds ptr, ptr %881, i64 %indvars.iv1200
  %883 = load ptr, ptr %882, align 8, !tbaa !14
  %884 = getelementptr inbounds i8, ptr %883, i64 %877
  store i8 %880, ptr %884, align 1, !tbaa !15
  %885 = load ptr, ptr %42, align 8, !tbaa !14
  %886 = getelementptr inbounds ptr, ptr %885, i64 %indvars.iv1200
  %887 = load ptr, ptr %886, align 8, !tbaa !14
  %888 = or disjoint i32 %.0.lcssa, 7
  %889 = zext nneg i32 %888 to i64
  %890 = getelementptr inbounds i8, ptr %887, i64 %889
  %891 = load i8, ptr %890, align 1, !tbaa !15
  %892 = xor i8 %891, -1
  %893 = load ptr, ptr %43, align 8, !tbaa !14
  %894 = getelementptr inbounds ptr, ptr %893, i64 %indvars.iv1200
  %895 = load ptr, ptr %894, align 8, !tbaa !14
  %896 = getelementptr inbounds i8, ptr %895, i64 %889
  store i8 %892, ptr %896, align 1, !tbaa !15
  %897 = load ptr, ptr %42, align 8, !tbaa !14
  %898 = getelementptr inbounds ptr, ptr %897, i64 %indvars.iv1200
  %899 = load ptr, ptr %898, align 8, !tbaa !14
  %900 = or disjoint i32 %.0.lcssa, 8
  %901 = zext nneg i32 %900 to i64
  %902 = getelementptr inbounds i8, ptr %899, i64 %901
  %903 = load i8, ptr %902, align 1, !tbaa !15
  %904 = xor i8 %903, -1
  %905 = load ptr, ptr %43, align 8, !tbaa !14
  %906 = getelementptr inbounds ptr, ptr %905, i64 %indvars.iv1200
  %907 = load ptr, ptr %906, align 8, !tbaa !14
  %908 = getelementptr inbounds i8, ptr %907, i64 %901
  store i8 %904, ptr %908, align 1, !tbaa !15
  %909 = load ptr, ptr %42, align 8, !tbaa !14
  %910 = getelementptr inbounds ptr, ptr %909, i64 %indvars.iv1200
  %911 = load ptr, ptr %910, align 8, !tbaa !14
  %912 = or disjoint i32 %.0.lcssa, 9
  %913 = zext nneg i32 %912 to i64
  %914 = getelementptr inbounds i8, ptr %911, i64 %913
  %915 = load i8, ptr %914, align 1, !tbaa !15
  %916 = xor i8 %915, -1
  %917 = load ptr, ptr %43, align 8, !tbaa !14
  %918 = getelementptr inbounds ptr, ptr %917, i64 %indvars.iv1200
  %919 = load ptr, ptr %918, align 8, !tbaa !14
  %920 = getelementptr inbounds i8, ptr %919, i64 %913
  store i8 %916, ptr %920, align 1, !tbaa !15
  %921 = load ptr, ptr %42, align 8, !tbaa !14
  %922 = getelementptr inbounds ptr, ptr %921, i64 %indvars.iv1200
  %923 = or disjoint i32 %.0.lcssa, 10
  br label %.sink.split

924:                                              ; preds = %229
  %925 = load ptr, ptr %42, align 8, !tbaa !14
  %926 = getelementptr inbounds ptr, ptr %925, i64 %indvars.iv1200
  %927 = load ptr, ptr %926, align 8, !tbaa !14
  %928 = zext nneg i32 %.0.lcssa to i64
  %929 = getelementptr inbounds i8, ptr %927, i64 %928
  %930 = load i8, ptr %929, align 1, !tbaa !15
  %931 = xor i8 %930, -1
  %932 = load ptr, ptr %43, align 8, !tbaa !14
  %933 = getelementptr inbounds ptr, ptr %932, i64 %indvars.iv1200
  %934 = load ptr, ptr %933, align 8, !tbaa !14
  %935 = getelementptr inbounds i8, ptr %934, i64 %928
  store i8 %931, ptr %935, align 1, !tbaa !15
  %936 = load ptr, ptr %42, align 8, !tbaa !14
  %937 = getelementptr inbounds ptr, ptr %936, i64 %indvars.iv1200
  %938 = load ptr, ptr %937, align 8, !tbaa !14
  %939 = or disjoint i32 %.0.lcssa, 1
  %940 = zext nneg i32 %939 to i64
  %941 = getelementptr inbounds i8, ptr %938, i64 %940
  %942 = load i8, ptr %941, align 1, !tbaa !15
  %943 = xor i8 %942, -1
  %944 = load ptr, ptr %43, align 8, !tbaa !14
  %945 = getelementptr inbounds ptr, ptr %944, i64 %indvars.iv1200
  %946 = load ptr, ptr %945, align 8, !tbaa !14
  %947 = getelementptr inbounds i8, ptr %946, i64 %940
  store i8 %943, ptr %947, align 1, !tbaa !15
  %948 = load ptr, ptr %42, align 8, !tbaa !14
  %949 = getelementptr inbounds ptr, ptr %948, i64 %indvars.iv1200
  %950 = load ptr, ptr %949, align 8, !tbaa !14
  %951 = or disjoint i32 %.0.lcssa, 2
  %952 = zext nneg i32 %951 to i64
  %953 = getelementptr inbounds i8, ptr %950, i64 %952
  %954 = load i8, ptr %953, align 1, !tbaa !15
  %955 = xor i8 %954, -1
  %956 = load ptr, ptr %43, align 8, !tbaa !14
  %957 = getelementptr inbounds ptr, ptr %956, i64 %indvars.iv1200
  %958 = load ptr, ptr %957, align 8, !tbaa !14
  %959 = getelementptr inbounds i8, ptr %958, i64 %952
  store i8 %955, ptr %959, align 1, !tbaa !15
  %960 = load ptr, ptr %42, align 8, !tbaa !14
  %961 = getelementptr inbounds ptr, ptr %960, i64 %indvars.iv1200
  %962 = load ptr, ptr %961, align 8, !tbaa !14
  %963 = or disjoint i32 %.0.lcssa, 3
  %964 = zext nneg i32 %963 to i64
  %965 = getelementptr inbounds i8, ptr %962, i64 %964
  %966 = load i8, ptr %965, align 1, !tbaa !15
  %967 = xor i8 %966, -1
  %968 = load ptr, ptr %43, align 8, !tbaa !14
  %969 = getelementptr inbounds ptr, ptr %968, i64 %indvars.iv1200
  %970 = load ptr, ptr %969, align 8, !tbaa !14
  %971 = getelementptr inbounds i8, ptr %970, i64 %964
  store i8 %967, ptr %971, align 1, !tbaa !15
  %972 = load ptr, ptr %42, align 8, !tbaa !14
  %973 = getelementptr inbounds ptr, ptr %972, i64 %indvars.iv1200
  %974 = load ptr, ptr %973, align 8, !tbaa !14
  %975 = or disjoint i32 %.0.lcssa, 4
  %976 = zext nneg i32 %975 to i64
  %977 = getelementptr inbounds i8, ptr %974, i64 %976
  %978 = load i8, ptr %977, align 1, !tbaa !15
  %979 = xor i8 %978, -1
  %980 = load ptr, ptr %43, align 8, !tbaa !14
  %981 = getelementptr inbounds ptr, ptr %980, i64 %indvars.iv1200
  %982 = load ptr, ptr %981, align 8, !tbaa !14
  %983 = getelementptr inbounds i8, ptr %982, i64 %976
  store i8 %979, ptr %983, align 1, !tbaa !15
  %984 = load ptr, ptr %42, align 8, !tbaa !14
  %985 = getelementptr inbounds ptr, ptr %984, i64 %indvars.iv1200
  %986 = load ptr, ptr %985, align 8, !tbaa !14
  %987 = or disjoint i32 %.0.lcssa, 5
  %988 = zext nneg i32 %987 to i64
  %989 = getelementptr inbounds i8, ptr %986, i64 %988
  %990 = load i8, ptr %989, align 1, !tbaa !15
  %991 = xor i8 %990, -1
  %992 = load ptr, ptr %43, align 8, !tbaa !14
  %993 = getelementptr inbounds ptr, ptr %992, i64 %indvars.iv1200
  %994 = load ptr, ptr %993, align 8, !tbaa !14
  %995 = getelementptr inbounds i8, ptr %994, i64 %988
  store i8 %991, ptr %995, align 1, !tbaa !15
  %996 = load ptr, ptr %42, align 8, !tbaa !14
  %997 = getelementptr inbounds ptr, ptr %996, i64 %indvars.iv1200
  %998 = load ptr, ptr %997, align 8, !tbaa !14
  %999 = or disjoint i32 %.0.lcssa, 6
  %1000 = zext nneg i32 %999 to i64
  %1001 = getelementptr inbounds i8, ptr %998, i64 %1000
  %1002 = load i8, ptr %1001, align 1, !tbaa !15
  %1003 = xor i8 %1002, -1
  %1004 = load ptr, ptr %43, align 8, !tbaa !14
  %1005 = getelementptr inbounds ptr, ptr %1004, i64 %indvars.iv1200
  %1006 = load ptr, ptr %1005, align 8, !tbaa !14
  %1007 = getelementptr inbounds i8, ptr %1006, i64 %1000
  store i8 %1003, ptr %1007, align 1, !tbaa !15
  %1008 = load ptr, ptr %42, align 8, !tbaa !14
  %1009 = getelementptr inbounds ptr, ptr %1008, i64 %indvars.iv1200
  %1010 = load ptr, ptr %1009, align 8, !tbaa !14
  %1011 = or disjoint i32 %.0.lcssa, 7
  %1012 = zext nneg i32 %1011 to i64
  %1013 = getelementptr inbounds i8, ptr %1010, i64 %1012
  %1014 = load i8, ptr %1013, align 1, !tbaa !15
  %1015 = xor i8 %1014, -1
  %1016 = load ptr, ptr %43, align 8, !tbaa !14
  %1017 = getelementptr inbounds ptr, ptr %1016, i64 %indvars.iv1200
  %1018 = load ptr, ptr %1017, align 8, !tbaa !14
  %1019 = getelementptr inbounds i8, ptr %1018, i64 %1012
  store i8 %1015, ptr %1019, align 1, !tbaa !15
  %1020 = load ptr, ptr %42, align 8, !tbaa !14
  %1021 = getelementptr inbounds ptr, ptr %1020, i64 %indvars.iv1200
  %1022 = load ptr, ptr %1021, align 8, !tbaa !14
  %1023 = or disjoint i32 %.0.lcssa, 8
  %1024 = zext nneg i32 %1023 to i64
  %1025 = getelementptr inbounds i8, ptr %1022, i64 %1024
  %1026 = load i8, ptr %1025, align 1, !tbaa !15
  %1027 = xor i8 %1026, -1
  %1028 = load ptr, ptr %43, align 8, !tbaa !14
  %1029 = getelementptr inbounds ptr, ptr %1028, i64 %indvars.iv1200
  %1030 = load ptr, ptr %1029, align 8, !tbaa !14
  %1031 = getelementptr inbounds i8, ptr %1030, i64 %1024
  store i8 %1027, ptr %1031, align 1, !tbaa !15
  %1032 = load ptr, ptr %42, align 8, !tbaa !14
  %1033 = getelementptr inbounds ptr, ptr %1032, i64 %indvars.iv1200
  %1034 = load ptr, ptr %1033, align 8, !tbaa !14
  %1035 = or disjoint i32 %.0.lcssa, 9
  %1036 = zext nneg i32 %1035 to i64
  %1037 = getelementptr inbounds i8, ptr %1034, i64 %1036
  %1038 = load i8, ptr %1037, align 1, !tbaa !15
  %1039 = xor i8 %1038, -1
  %1040 = load ptr, ptr %43, align 8, !tbaa !14
  %1041 = getelementptr inbounds ptr, ptr %1040, i64 %indvars.iv1200
  %1042 = load ptr, ptr %1041, align 8, !tbaa !14
  %1043 = getelementptr inbounds i8, ptr %1042, i64 %1036
  store i8 %1039, ptr %1043, align 1, !tbaa !15
  %1044 = load ptr, ptr %42, align 8, !tbaa !14
  %1045 = getelementptr inbounds ptr, ptr %1044, i64 %indvars.iv1200
  %1046 = load ptr, ptr %1045, align 8, !tbaa !14
  %1047 = or disjoint i32 %.0.lcssa, 10
  %1048 = zext nneg i32 %1047 to i64
  %1049 = getelementptr inbounds i8, ptr %1046, i64 %1048
  %1050 = load i8, ptr %1049, align 1, !tbaa !15
  %1051 = xor i8 %1050, -1
  %1052 = load ptr, ptr %43, align 8, !tbaa !14
  %1053 = getelementptr inbounds ptr, ptr %1052, i64 %indvars.iv1200
  %1054 = load ptr, ptr %1053, align 8, !tbaa !14
  %1055 = getelementptr inbounds i8, ptr %1054, i64 %1048
  store i8 %1051, ptr %1055, align 1, !tbaa !15
  %1056 = load ptr, ptr %42, align 8, !tbaa !14
  %1057 = getelementptr inbounds ptr, ptr %1056, i64 %indvars.iv1200
  %1058 = or disjoint i32 %.0.lcssa, 11
  br label %.sink.split

1059:                                             ; preds = %229
  %1060 = load ptr, ptr %42, align 8, !tbaa !14
  %1061 = getelementptr inbounds ptr, ptr %1060, i64 %indvars.iv1200
  %1062 = load ptr, ptr %1061, align 8, !tbaa !14
  %1063 = zext nneg i32 %.0.lcssa to i64
  %1064 = getelementptr inbounds i8, ptr %1062, i64 %1063
  %1065 = load i8, ptr %1064, align 1, !tbaa !15
  %1066 = xor i8 %1065, -1
  %1067 = load ptr, ptr %43, align 8, !tbaa !14
  %1068 = getelementptr inbounds ptr, ptr %1067, i64 %indvars.iv1200
  %1069 = load ptr, ptr %1068, align 8, !tbaa !14
  %1070 = getelementptr inbounds i8, ptr %1069, i64 %1063
  store i8 %1066, ptr %1070, align 1, !tbaa !15
  %1071 = load ptr, ptr %42, align 8, !tbaa !14
  %1072 = getelementptr inbounds ptr, ptr %1071, i64 %indvars.iv1200
  %1073 = load ptr, ptr %1072, align 8, !tbaa !14
  %1074 = or disjoint i32 %.0.lcssa, 1
  %1075 = zext nneg i32 %1074 to i64
  %1076 = getelementptr inbounds i8, ptr %1073, i64 %1075
  %1077 = load i8, ptr %1076, align 1, !tbaa !15
  %1078 = xor i8 %1077, -1
  %1079 = load ptr, ptr %43, align 8, !tbaa !14
  %1080 = getelementptr inbounds ptr, ptr %1079, i64 %indvars.iv1200
  %1081 = load ptr, ptr %1080, align 8, !tbaa !14
  %1082 = getelementptr inbounds i8, ptr %1081, i64 %1075
  store i8 %1078, ptr %1082, align 1, !tbaa !15
  %1083 = load ptr, ptr %42, align 8, !tbaa !14
  %1084 = getelementptr inbounds ptr, ptr %1083, i64 %indvars.iv1200
  %1085 = load ptr, ptr %1084, align 8, !tbaa !14
  %1086 = or disjoint i32 %.0.lcssa, 2
  %1087 = zext nneg i32 %1086 to i64
  %1088 = getelementptr inbounds i8, ptr %1085, i64 %1087
  %1089 = load i8, ptr %1088, align 1, !tbaa !15
  %1090 = xor i8 %1089, -1
  %1091 = load ptr, ptr %43, align 8, !tbaa !14
  %1092 = getelementptr inbounds ptr, ptr %1091, i64 %indvars.iv1200
  %1093 = load ptr, ptr %1092, align 8, !tbaa !14
  %1094 = getelementptr inbounds i8, ptr %1093, i64 %1087
  store i8 %1090, ptr %1094, align 1, !tbaa !15
  %1095 = load ptr, ptr %42, align 8, !tbaa !14
  %1096 = getelementptr inbounds ptr, ptr %1095, i64 %indvars.iv1200
  %1097 = load ptr, ptr %1096, align 8, !tbaa !14
  %1098 = or disjoint i32 %.0.lcssa, 3
  %1099 = zext nneg i32 %1098 to i64
  %1100 = getelementptr inbounds i8, ptr %1097, i64 %1099
  %1101 = load i8, ptr %1100, align 1, !tbaa !15
  %1102 = xor i8 %1101, -1
  %1103 = load ptr, ptr %43, align 8, !tbaa !14
  %1104 = getelementptr inbounds ptr, ptr %1103, i64 %indvars.iv1200
  %1105 = load ptr, ptr %1104, align 8, !tbaa !14
  %1106 = getelementptr inbounds i8, ptr %1105, i64 %1099
  store i8 %1102, ptr %1106, align 1, !tbaa !15
  %1107 = load ptr, ptr %42, align 8, !tbaa !14
  %1108 = getelementptr inbounds ptr, ptr %1107, i64 %indvars.iv1200
  %1109 = load ptr, ptr %1108, align 8, !tbaa !14
  %1110 = or disjoint i32 %.0.lcssa, 4
  %1111 = zext nneg i32 %1110 to i64
  %1112 = getelementptr inbounds i8, ptr %1109, i64 %1111
  %1113 = load i8, ptr %1112, align 1, !tbaa !15
  %1114 = xor i8 %1113, -1
  %1115 = load ptr, ptr %43, align 8, !tbaa !14
  %1116 = getelementptr inbounds ptr, ptr %1115, i64 %indvars.iv1200
  %1117 = load ptr, ptr %1116, align 8, !tbaa !14
  %1118 = getelementptr inbounds i8, ptr %1117, i64 %1111
  store i8 %1114, ptr %1118, align 1, !tbaa !15
  %1119 = load ptr, ptr %42, align 8, !tbaa !14
  %1120 = getelementptr inbounds ptr, ptr %1119, i64 %indvars.iv1200
  %1121 = load ptr, ptr %1120, align 8, !tbaa !14
  %1122 = or disjoint i32 %.0.lcssa, 5
  %1123 = zext nneg i32 %1122 to i64
  %1124 = getelementptr inbounds i8, ptr %1121, i64 %1123
  %1125 = load i8, ptr %1124, align 1, !tbaa !15
  %1126 = xor i8 %1125, -1
  %1127 = load ptr, ptr %43, align 8, !tbaa !14
  %1128 = getelementptr inbounds ptr, ptr %1127, i64 %indvars.iv1200
  %1129 = load ptr, ptr %1128, align 8, !tbaa !14
  %1130 = getelementptr inbounds i8, ptr %1129, i64 %1123
  store i8 %1126, ptr %1130, align 1, !tbaa !15
  %1131 = load ptr, ptr %42, align 8, !tbaa !14
  %1132 = getelementptr inbounds ptr, ptr %1131, i64 %indvars.iv1200
  %1133 = load ptr, ptr %1132, align 8, !tbaa !14
  %1134 = or disjoint i32 %.0.lcssa, 6
  %1135 = zext nneg i32 %1134 to i64
  %1136 = getelementptr inbounds i8, ptr %1133, i64 %1135
  %1137 = load i8, ptr %1136, align 1, !tbaa !15
  %1138 = xor i8 %1137, -1
  %1139 = load ptr, ptr %43, align 8, !tbaa !14
  %1140 = getelementptr inbounds ptr, ptr %1139, i64 %indvars.iv1200
  %1141 = load ptr, ptr %1140, align 8, !tbaa !14
  %1142 = getelementptr inbounds i8, ptr %1141, i64 %1135
  store i8 %1138, ptr %1142, align 1, !tbaa !15
  %1143 = load ptr, ptr %42, align 8, !tbaa !14
  %1144 = getelementptr inbounds ptr, ptr %1143, i64 %indvars.iv1200
  %1145 = load ptr, ptr %1144, align 8, !tbaa !14
  %1146 = or disjoint i32 %.0.lcssa, 7
  %1147 = zext nneg i32 %1146 to i64
  %1148 = getelementptr inbounds i8, ptr %1145, i64 %1147
  %1149 = load i8, ptr %1148, align 1, !tbaa !15
  %1150 = xor i8 %1149, -1
  %1151 = load ptr, ptr %43, align 8, !tbaa !14
  %1152 = getelementptr inbounds ptr, ptr %1151, i64 %indvars.iv1200
  %1153 = load ptr, ptr %1152, align 8, !tbaa !14
  %1154 = getelementptr inbounds i8, ptr %1153, i64 %1147
  store i8 %1150, ptr %1154, align 1, !tbaa !15
  %1155 = load ptr, ptr %42, align 8, !tbaa !14
  %1156 = getelementptr inbounds ptr, ptr %1155, i64 %indvars.iv1200
  %1157 = load ptr, ptr %1156, align 8, !tbaa !14
  %1158 = or disjoint i32 %.0.lcssa, 8
  %1159 = zext nneg i32 %1158 to i64
  %1160 = getelementptr inbounds i8, ptr %1157, i64 %1159
  %1161 = load i8, ptr %1160, align 1, !tbaa !15
  %1162 = xor i8 %1161, -1
  %1163 = load ptr, ptr %43, align 8, !tbaa !14
  %1164 = getelementptr inbounds ptr, ptr %1163, i64 %indvars.iv1200
  %1165 = load ptr, ptr %1164, align 8, !tbaa !14
  %1166 = getelementptr inbounds i8, ptr %1165, i64 %1159
  store i8 %1162, ptr %1166, align 1, !tbaa !15
  %1167 = load ptr, ptr %42, align 8, !tbaa !14
  %1168 = getelementptr inbounds ptr, ptr %1167, i64 %indvars.iv1200
  %1169 = load ptr, ptr %1168, align 8, !tbaa !14
  %1170 = or disjoint i32 %.0.lcssa, 9
  %1171 = zext nneg i32 %1170 to i64
  %1172 = getelementptr inbounds i8, ptr %1169, i64 %1171
  %1173 = load i8, ptr %1172, align 1, !tbaa !15
  %1174 = xor i8 %1173, -1
  %1175 = load ptr, ptr %43, align 8, !tbaa !14
  %1176 = getelementptr inbounds ptr, ptr %1175, i64 %indvars.iv1200
  %1177 = load ptr, ptr %1176, align 8, !tbaa !14
  %1178 = getelementptr inbounds i8, ptr %1177, i64 %1171
  store i8 %1174, ptr %1178, align 1, !tbaa !15
  %1179 = load ptr, ptr %42, align 8, !tbaa !14
  %1180 = getelementptr inbounds ptr, ptr %1179, i64 %indvars.iv1200
  %1181 = load ptr, ptr %1180, align 8, !tbaa !14
  %1182 = or disjoint i32 %.0.lcssa, 10
  %1183 = zext nneg i32 %1182 to i64
  %1184 = getelementptr inbounds i8, ptr %1181, i64 %1183
  %1185 = load i8, ptr %1184, align 1, !tbaa !15
  %1186 = xor i8 %1185, -1
  %1187 = load ptr, ptr %43, align 8, !tbaa !14
  %1188 = getelementptr inbounds ptr, ptr %1187, i64 %indvars.iv1200
  %1189 = load ptr, ptr %1188, align 8, !tbaa !14
  %1190 = getelementptr inbounds i8, ptr %1189, i64 %1183
  store i8 %1186, ptr %1190, align 1, !tbaa !15
  %1191 = load ptr, ptr %42, align 8, !tbaa !14
  %1192 = getelementptr inbounds ptr, ptr %1191, i64 %indvars.iv1200
  %1193 = load ptr, ptr %1192, align 8, !tbaa !14
  %1194 = or disjoint i32 %.0.lcssa, 11
  %1195 = zext nneg i32 %1194 to i64
  %1196 = getelementptr inbounds i8, ptr %1193, i64 %1195
  %1197 = load i8, ptr %1196, align 1, !tbaa !15
  %1198 = xor i8 %1197, -1
  %1199 = load ptr, ptr %43, align 8, !tbaa !14
  %1200 = getelementptr inbounds ptr, ptr %1199, i64 %indvars.iv1200
  %1201 = load ptr, ptr %1200, align 8, !tbaa !14
  %1202 = getelementptr inbounds i8, ptr %1201, i64 %1195
  store i8 %1198, ptr %1202, align 1, !tbaa !15
  %1203 = load ptr, ptr %42, align 8, !tbaa !14
  %1204 = getelementptr inbounds ptr, ptr %1203, i64 %indvars.iv1200
  %1205 = or disjoint i32 %.0.lcssa, 12
  br label %.sink.split

1206:                                             ; preds = %229
  %1207 = load ptr, ptr %42, align 8, !tbaa !14
  %1208 = getelementptr inbounds ptr, ptr %1207, i64 %indvars.iv1200
  %1209 = load ptr, ptr %1208, align 8, !tbaa !14
  %1210 = zext nneg i32 %.0.lcssa to i64
  %1211 = getelementptr inbounds i8, ptr %1209, i64 %1210
  %1212 = load i8, ptr %1211, align 1, !tbaa !15
  %1213 = xor i8 %1212, -1
  %1214 = load ptr, ptr %43, align 8, !tbaa !14
  %1215 = getelementptr inbounds ptr, ptr %1214, i64 %indvars.iv1200
  %1216 = load ptr, ptr %1215, align 8, !tbaa !14
  %1217 = getelementptr inbounds i8, ptr %1216, i64 %1210
  store i8 %1213, ptr %1217, align 1, !tbaa !15
  %1218 = load ptr, ptr %42, align 8, !tbaa !14
  %1219 = getelementptr inbounds ptr, ptr %1218, i64 %indvars.iv1200
  %1220 = load ptr, ptr %1219, align 8, !tbaa !14
  %1221 = or disjoint i32 %.0.lcssa, 1
  %1222 = zext nneg i32 %1221 to i64
  %1223 = getelementptr inbounds i8, ptr %1220, i64 %1222
  %1224 = load i8, ptr %1223, align 1, !tbaa !15
  %1225 = xor i8 %1224, -1
  %1226 = load ptr, ptr %43, align 8, !tbaa !14
  %1227 = getelementptr inbounds ptr, ptr %1226, i64 %indvars.iv1200
  %1228 = load ptr, ptr %1227, align 8, !tbaa !14
  %1229 = getelementptr inbounds i8, ptr %1228, i64 %1222
  store i8 %1225, ptr %1229, align 1, !tbaa !15
  %1230 = load ptr, ptr %42, align 8, !tbaa !14
  %1231 = getelementptr inbounds ptr, ptr %1230, i64 %indvars.iv1200
  %1232 = load ptr, ptr %1231, align 8, !tbaa !14
  %1233 = or disjoint i32 %.0.lcssa, 2
  %1234 = zext nneg i32 %1233 to i64
  %1235 = getelementptr inbounds i8, ptr %1232, i64 %1234
  %1236 = load i8, ptr %1235, align 1, !tbaa !15
  %1237 = xor i8 %1236, -1
  %1238 = load ptr, ptr %43, align 8, !tbaa !14
  %1239 = getelementptr inbounds ptr, ptr %1238, i64 %indvars.iv1200
  %1240 = load ptr, ptr %1239, align 8, !tbaa !14
  %1241 = getelementptr inbounds i8, ptr %1240, i64 %1234
  store i8 %1237, ptr %1241, align 1, !tbaa !15
  %1242 = load ptr, ptr %42, align 8, !tbaa !14
  %1243 = getelementptr inbounds ptr, ptr %1242, i64 %indvars.iv1200
  %1244 = load ptr, ptr %1243, align 8, !tbaa !14
  %1245 = or disjoint i32 %.0.lcssa, 3
  %1246 = zext nneg i32 %1245 to i64
  %1247 = getelementptr inbounds i8, ptr %1244, i64 %1246
  %1248 = load i8, ptr %1247, align 1, !tbaa !15
  %1249 = xor i8 %1248, -1
  %1250 = load ptr, ptr %43, align 8, !tbaa !14
  %1251 = getelementptr inbounds ptr, ptr %1250, i64 %indvars.iv1200
  %1252 = load ptr, ptr %1251, align 8, !tbaa !14
  %1253 = getelementptr inbounds i8, ptr %1252, i64 %1246
  store i8 %1249, ptr %1253, align 1, !tbaa !15
  %1254 = load ptr, ptr %42, align 8, !tbaa !14
  %1255 = getelementptr inbounds ptr, ptr %1254, i64 %indvars.iv1200
  %1256 = load ptr, ptr %1255, align 8, !tbaa !14
  %1257 = or disjoint i32 %.0.lcssa, 4
  %1258 = zext nneg i32 %1257 to i64
  %1259 = getelementptr inbounds i8, ptr %1256, i64 %1258
  %1260 = load i8, ptr %1259, align 1, !tbaa !15
  %1261 = xor i8 %1260, -1
  %1262 = load ptr, ptr %43, align 8, !tbaa !14
  %1263 = getelementptr inbounds ptr, ptr %1262, i64 %indvars.iv1200
  %1264 = load ptr, ptr %1263, align 8, !tbaa !14
  %1265 = getelementptr inbounds i8, ptr %1264, i64 %1258
  store i8 %1261, ptr %1265, align 1, !tbaa !15
  %1266 = load ptr, ptr %42, align 8, !tbaa !14
  %1267 = getelementptr inbounds ptr, ptr %1266, i64 %indvars.iv1200
  %1268 = load ptr, ptr %1267, align 8, !tbaa !14
  %1269 = or disjoint i32 %.0.lcssa, 5
  %1270 = zext nneg i32 %1269 to i64
  %1271 = getelementptr inbounds i8, ptr %1268, i64 %1270
  %1272 = load i8, ptr %1271, align 1, !tbaa !15
  %1273 = xor i8 %1272, -1
  %1274 = load ptr, ptr %43, align 8, !tbaa !14
  %1275 = getelementptr inbounds ptr, ptr %1274, i64 %indvars.iv1200
  %1276 = load ptr, ptr %1275, align 8, !tbaa !14
  %1277 = getelementptr inbounds i8, ptr %1276, i64 %1270
  store i8 %1273, ptr %1277, align 1, !tbaa !15
  %1278 = load ptr, ptr %42, align 8, !tbaa !14
  %1279 = getelementptr inbounds ptr, ptr %1278, i64 %indvars.iv1200
  %1280 = load ptr, ptr %1279, align 8, !tbaa !14
  %1281 = or disjoint i32 %.0.lcssa, 6
  %1282 = zext nneg i32 %1281 to i64
  %1283 = getelementptr inbounds i8, ptr %1280, i64 %1282
  %1284 = load i8, ptr %1283, align 1, !tbaa !15
  %1285 = xor i8 %1284, -1
  %1286 = load ptr, ptr %43, align 8, !tbaa !14
  %1287 = getelementptr inbounds ptr, ptr %1286, i64 %indvars.iv1200
  %1288 = load ptr, ptr %1287, align 8, !tbaa !14
  %1289 = getelementptr inbounds i8, ptr %1288, i64 %1282
  store i8 %1285, ptr %1289, align 1, !tbaa !15
  %1290 = load ptr, ptr %42, align 8, !tbaa !14
  %1291 = getelementptr inbounds ptr, ptr %1290, i64 %indvars.iv1200
  %1292 = load ptr, ptr %1291, align 8, !tbaa !14
  %1293 = or disjoint i32 %.0.lcssa, 7
  %1294 = zext nneg i32 %1293 to i64
  %1295 = getelementptr inbounds i8, ptr %1292, i64 %1294
  %1296 = load i8, ptr %1295, align 1, !tbaa !15
  %1297 = xor i8 %1296, -1
  %1298 = load ptr, ptr %43, align 8, !tbaa !14
  %1299 = getelementptr inbounds ptr, ptr %1298, i64 %indvars.iv1200
  %1300 = load ptr, ptr %1299, align 8, !tbaa !14
  %1301 = getelementptr inbounds i8, ptr %1300, i64 %1294
  store i8 %1297, ptr %1301, align 1, !tbaa !15
  %1302 = load ptr, ptr %42, align 8, !tbaa !14
  %1303 = getelementptr inbounds ptr, ptr %1302, i64 %indvars.iv1200
  %1304 = load ptr, ptr %1303, align 8, !tbaa !14
  %1305 = or disjoint i32 %.0.lcssa, 8
  %1306 = zext nneg i32 %1305 to i64
  %1307 = getelementptr inbounds i8, ptr %1304, i64 %1306
  %1308 = load i8, ptr %1307, align 1, !tbaa !15
  %1309 = xor i8 %1308, -1
  %1310 = load ptr, ptr %43, align 8, !tbaa !14
  %1311 = getelementptr inbounds ptr, ptr %1310, i64 %indvars.iv1200
  %1312 = load ptr, ptr %1311, align 8, !tbaa !14
  %1313 = getelementptr inbounds i8, ptr %1312, i64 %1306
  store i8 %1309, ptr %1313, align 1, !tbaa !15
  %1314 = load ptr, ptr %42, align 8, !tbaa !14
  %1315 = getelementptr inbounds ptr, ptr %1314, i64 %indvars.iv1200
  %1316 = load ptr, ptr %1315, align 8, !tbaa !14
  %1317 = or disjoint i32 %.0.lcssa, 9
  %1318 = zext nneg i32 %1317 to i64
  %1319 = getelementptr inbounds i8, ptr %1316, i64 %1318
  %1320 = load i8, ptr %1319, align 1, !tbaa !15
  %1321 = xor i8 %1320, -1
  %1322 = load ptr, ptr %43, align 8, !tbaa !14
  %1323 = getelementptr inbounds ptr, ptr %1322, i64 %indvars.iv1200
  %1324 = load ptr, ptr %1323, align 8, !tbaa !14
  %1325 = getelementptr inbounds i8, ptr %1324, i64 %1318
  store i8 %1321, ptr %1325, align 1, !tbaa !15
  %1326 = load ptr, ptr %42, align 8, !tbaa !14
  %1327 = getelementptr inbounds ptr, ptr %1326, i64 %indvars.iv1200
  %1328 = load ptr, ptr %1327, align 8, !tbaa !14
  %1329 = or disjoint i32 %.0.lcssa, 10
  %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 = xor i8 %1332, -1
  %1334 = load ptr, ptr %43, align 8, !tbaa !14
  %1335 = getelementptr inbounds ptr, ptr %1334, i64 %indvars.iv1200
  %1336 = load ptr, ptr %1335, align 8, !tbaa !14
  %1337 = getelementptr inbounds i8, ptr %1336, i64 %1330
  store i8 %1333, ptr %1337, align 1, !tbaa !15
  %1338 = load ptr, ptr %42, align 8, !tbaa !14
  %1339 = getelementptr inbounds ptr, ptr %1338, i64 %indvars.iv1200
  %1340 = load ptr, ptr %1339, align 8, !tbaa !14
  %1341 = or disjoint i32 %.0.lcssa, 11
  %1342 = zext nneg i32 %1341 to i64
  %1343 = getelementptr inbounds i8, ptr %1340, i64 %1342
  %1344 = load i8, ptr %1343, align 1, !tbaa !15
  %1345 = xor i8 %1344, -1
  %1346 = load ptr, ptr %43, align 8, !tbaa !14
  %1347 = getelementptr inbounds ptr, ptr %1346, i64 %indvars.iv1200
  %1348 = load ptr, ptr %1347, align 8, !tbaa !14
  %1349 = getelementptr inbounds i8, ptr %1348, i64 %1342
  store i8 %1345, ptr %1349, align 1, !tbaa !15
  %1350 = load ptr, ptr %42, align 8, !tbaa !14
  %1351 = getelementptr inbounds ptr, ptr %1350, i64 %indvars.iv1200
  %1352 = load ptr, ptr %1351, align 8, !tbaa !14
  %1353 = or disjoint i32 %.0.lcssa, 12
  %1354 = zext nneg i32 %1353 to i64
  %1355 = getelementptr inbounds i8, ptr %1352, i64 %1354
  %1356 = load i8, ptr %1355, align 1, !tbaa !15
  %1357 = xor i8 %1356, -1
  %1358 = load ptr, ptr %43, align 8, !tbaa !14
  %1359 = getelementptr inbounds ptr, ptr %1358, i64 %indvars.iv1200
  %1360 = load ptr, ptr %1359, align 8, !tbaa !14
  %1361 = getelementptr inbounds i8, ptr %1360, i64 %1354
  store i8 %1357, ptr %1361, align 1, !tbaa !15
  %1362 = load ptr, ptr %42, align 8, !tbaa !14
  %1363 = getelementptr inbounds ptr, ptr %1362, i64 %indvars.iv1200
  %1364 = or disjoint i32 %.0.lcssa, 13
  br label %.sink.split

1365:                                             ; preds = %229
  %1366 = load ptr, ptr %42, align 8, !tbaa !14
  %1367 = getelementptr inbounds ptr, ptr %1366, i64 %indvars.iv1200
  %1368 = load ptr, ptr %1367, align 8, !tbaa !14
  %1369 = zext nneg i32 %.0.lcssa to i64
  %1370 = getelementptr inbounds i8, ptr %1368, i64 %1369
  %1371 = load i8, ptr %1370, align 1, !tbaa !15
  %1372 = xor i8 %1371, -1
  %1373 = load ptr, ptr %43, align 8, !tbaa !14
  %1374 = getelementptr inbounds ptr, ptr %1373, i64 %indvars.iv1200
  %1375 = load ptr, ptr %1374, align 8, !tbaa !14
  %1376 = getelementptr inbounds i8, ptr %1375, i64 %1369
  store i8 %1372, ptr %1376, align 1, !tbaa !15
  %1377 = load ptr, ptr %42, align 8, !tbaa !14
  %1378 = getelementptr inbounds ptr, ptr %1377, i64 %indvars.iv1200
  %1379 = load ptr, ptr %1378, align 8, !tbaa !14
  %1380 = or disjoint i32 %.0.lcssa, 1
  %1381 = zext nneg i32 %1380 to i64
  %1382 = getelementptr inbounds i8, ptr %1379, i64 %1381
  %1383 = load i8, ptr %1382, align 1, !tbaa !15
  %1384 = xor i8 %1383, -1
  %1385 = load ptr, ptr %43, align 8, !tbaa !14
  %1386 = getelementptr inbounds ptr, ptr %1385, i64 %indvars.iv1200
  %1387 = load ptr, ptr %1386, align 8, !tbaa !14
  %1388 = getelementptr inbounds i8, ptr %1387, i64 %1381
  store i8 %1384, ptr %1388, align 1, !tbaa !15
  %1389 = load ptr, ptr %42, align 8, !tbaa !14
  %1390 = getelementptr inbounds ptr, ptr %1389, i64 %indvars.iv1200
  %1391 = load ptr, ptr %1390, align 8, !tbaa !14
  %1392 = or disjoint i32 %.0.lcssa, 2
  %1393 = zext nneg i32 %1392 to i64
  %1394 = getelementptr inbounds i8, ptr %1391, i64 %1393
  %1395 = load i8, ptr %1394, align 1, !tbaa !15
  %1396 = xor i8 %1395, -1
  %1397 = load ptr, ptr %43, align 8, !tbaa !14
  %1398 = getelementptr inbounds ptr, ptr %1397, i64 %indvars.iv1200
  %1399 = load ptr, ptr %1398, align 8, !tbaa !14
  %1400 = getelementptr inbounds i8, ptr %1399, i64 %1393
  store i8 %1396, ptr %1400, align 1, !tbaa !15
  %1401 = load ptr, ptr %42, align 8, !tbaa !14
  %1402 = getelementptr inbounds ptr, ptr %1401, i64 %indvars.iv1200
  %1403 = load ptr, ptr %1402, align 8, !tbaa !14
  %1404 = or disjoint i32 %.0.lcssa, 3
  %1405 = zext nneg i32 %1404 to i64
  %1406 = getelementptr inbounds i8, ptr %1403, i64 %1405
  %1407 = load i8, ptr %1406, align 1, !tbaa !15
  %1408 = xor i8 %1407, -1
  %1409 = load ptr, ptr %43, align 8, !tbaa !14
  %1410 = getelementptr inbounds ptr, ptr %1409, i64 %indvars.iv1200
  %1411 = load ptr, ptr %1410, align 8, !tbaa !14
  %1412 = getelementptr inbounds i8, ptr %1411, i64 %1405
  store i8 %1408, ptr %1412, align 1, !tbaa !15
  %1413 = load ptr, ptr %42, align 8, !tbaa !14
  %1414 = getelementptr inbounds ptr, ptr %1413, i64 %indvars.iv1200
  %1415 = load ptr, ptr %1414, align 8, !tbaa !14
  %1416 = or disjoint i32 %.0.lcssa, 4
  %1417 = zext nneg i32 %1416 to i64
  %1418 = getelementptr inbounds i8, ptr %1415, i64 %1417
  %1419 = load i8, ptr %1418, align 1, !tbaa !15
  %1420 = xor i8 %1419, -1
  %1421 = load ptr, ptr %43, align 8, !tbaa !14
  %1422 = getelementptr inbounds ptr, ptr %1421, i64 %indvars.iv1200
  %1423 = load ptr, ptr %1422, align 8, !tbaa !14
  %1424 = getelementptr inbounds i8, ptr %1423, i64 %1417
  store i8 %1420, ptr %1424, align 1, !tbaa !15
  %1425 = load ptr, ptr %42, align 8, !tbaa !14
  %1426 = getelementptr inbounds ptr, ptr %1425, i64 %indvars.iv1200
  %1427 = load ptr, ptr %1426, align 8, !tbaa !14
  %1428 = or disjoint i32 %.0.lcssa, 5
  %1429 = zext nneg i32 %1428 to i64
  %1430 = getelementptr inbounds i8, ptr %1427, i64 %1429
  %1431 = load i8, ptr %1430, align 1, !tbaa !15
  %1432 = xor i8 %1431, -1
  %1433 = load ptr, ptr %43, align 8, !tbaa !14
  %1434 = getelementptr inbounds ptr, ptr %1433, i64 %indvars.iv1200
  %1435 = load ptr, ptr %1434, align 8, !tbaa !14
  %1436 = getelementptr inbounds i8, ptr %1435, i64 %1429
  store i8 %1432, ptr %1436, align 1, !tbaa !15
  %1437 = load ptr, ptr %42, align 8, !tbaa !14
  %1438 = getelementptr inbounds ptr, ptr %1437, i64 %indvars.iv1200
  %1439 = load ptr, ptr %1438, align 8, !tbaa !14
  %1440 = or disjoint i32 %.0.lcssa, 6
  %1441 = zext nneg i32 %1440 to i64
  %1442 = getelementptr inbounds i8, ptr %1439, i64 %1441
  %1443 = load i8, ptr %1442, align 1, !tbaa !15
  %1444 = xor i8 %1443, -1
  %1445 = load ptr, ptr %43, align 8, !tbaa !14
  %1446 = getelementptr inbounds ptr, ptr %1445, i64 %indvars.iv1200
  %1447 = load ptr, ptr %1446, align 8, !tbaa !14
  %1448 = getelementptr inbounds i8, ptr %1447, i64 %1441
  store i8 %1444, ptr %1448, align 1, !tbaa !15
  %1449 = load ptr, ptr %42, align 8, !tbaa !14
  %1450 = getelementptr inbounds ptr, ptr %1449, i64 %indvars.iv1200
  %1451 = load ptr, ptr %1450, align 8, !tbaa !14
  %1452 = or disjoint i32 %.0.lcssa, 7
  %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 = xor i8 %1455, -1
  %1457 = load ptr, ptr %43, align 8, !tbaa !14
  %1458 = getelementptr inbounds ptr, ptr %1457, i64 %indvars.iv1200
  %1459 = load ptr, ptr %1458, align 8, !tbaa !14
  %1460 = getelementptr inbounds i8, ptr %1459, i64 %1453
  store i8 %1456, ptr %1460, align 1, !tbaa !15
  %1461 = load ptr, ptr %42, align 8, !tbaa !14
  %1462 = getelementptr inbounds ptr, ptr %1461, i64 %indvars.iv1200
  %1463 = load ptr, ptr %1462, align 8, !tbaa !14
  %1464 = or disjoint i32 %.0.lcssa, 8
  %1465 = zext nneg i32 %1464 to i64
  %1466 = getelementptr inbounds i8, ptr %1463, i64 %1465
  %1467 = load i8, ptr %1466, align 1, !tbaa !15
  %1468 = xor i8 %1467, -1
  %1469 = load ptr, ptr %43, align 8, !tbaa !14
  %1470 = getelementptr inbounds ptr, ptr %1469, i64 %indvars.iv1200
  %1471 = load ptr, ptr %1470, align 8, !tbaa !14
  %1472 = getelementptr inbounds i8, ptr %1471, i64 %1465
  store i8 %1468, ptr %1472, align 1, !tbaa !15
  %1473 = load ptr, ptr %42, align 8, !tbaa !14
  %1474 = getelementptr inbounds ptr, ptr %1473, i64 %indvars.iv1200
  %1475 = load ptr, ptr %1474, align 8, !tbaa !14
  %1476 = or disjoint i32 %.0.lcssa, 9
  %1477 = zext nneg i32 %1476 to i64
  %1478 = getelementptr inbounds i8, ptr %1475, i64 %1477
  %1479 = load i8, ptr %1478, align 1, !tbaa !15
  %1480 = xor i8 %1479, -1
  %1481 = load ptr, ptr %43, align 8, !tbaa !14
  %1482 = getelementptr inbounds ptr, ptr %1481, i64 %indvars.iv1200
  %1483 = load ptr, ptr %1482, align 8, !tbaa !14
  %1484 = getelementptr inbounds i8, ptr %1483, i64 %1477
  store i8 %1480, ptr %1484, align 1, !tbaa !15
  %1485 = load ptr, ptr %42, align 8, !tbaa !14
  %1486 = getelementptr inbounds ptr, ptr %1485, i64 %indvars.iv1200
  %1487 = load ptr, ptr %1486, align 8, !tbaa !14
  %1488 = or disjoint i32 %.0.lcssa, 10
  %1489 = zext nneg i32 %1488 to i64
  %1490 = getelementptr inbounds i8, ptr %1487, i64 %1489
  %1491 = load i8, ptr %1490, align 1, !tbaa !15
  %1492 = xor i8 %1491, -1
  %1493 = load ptr, ptr %43, align 8, !tbaa !14
  %1494 = getelementptr inbounds ptr, ptr %1493, i64 %indvars.iv1200
  %1495 = load ptr, ptr %1494, align 8, !tbaa !14
  %1496 = getelementptr inbounds i8, ptr %1495, i64 %1489
  store i8 %1492, ptr %1496, align 1, !tbaa !15
  %1497 = load ptr, ptr %42, align 8, !tbaa !14
  %1498 = getelementptr inbounds ptr, ptr %1497, i64 %indvars.iv1200
  %1499 = load ptr, ptr %1498, align 8, !tbaa !14
  %1500 = or disjoint i32 %.0.lcssa, 11
  %1501 = zext nneg i32 %1500 to i64
  %1502 = getelementptr inbounds i8, ptr %1499, i64 %1501
  %1503 = load i8, ptr %1502, align 1, !tbaa !15
  %1504 = xor i8 %1503, -1
  %1505 = load ptr, ptr %43, align 8, !tbaa !14
  %1506 = getelementptr inbounds ptr, ptr %1505, i64 %indvars.iv1200
  %1507 = load ptr, ptr %1506, align 8, !tbaa !14
  %1508 = getelementptr inbounds i8, ptr %1507, i64 %1501
  store i8 %1504, ptr %1508, align 1, !tbaa !15
  %1509 = load ptr, ptr %42, align 8, !tbaa !14
  %1510 = getelementptr inbounds ptr, ptr %1509, i64 %indvars.iv1200
  %1511 = load ptr, ptr %1510, align 8, !tbaa !14
  %1512 = or disjoint i32 %.0.lcssa, 12
  %1513 = zext nneg i32 %1512 to i64
  %1514 = getelementptr inbounds i8, ptr %1511, i64 %1513
  %1515 = load i8, ptr %1514, align 1, !tbaa !15
  %1516 = xor i8 %1515, -1
  %1517 = load ptr, ptr %43, align 8, !tbaa !14
  %1518 = getelementptr inbounds ptr, ptr %1517, i64 %indvars.iv1200
  %1519 = load ptr, ptr %1518, align 8, !tbaa !14
  %1520 = getelementptr inbounds i8, ptr %1519, i64 %1513
  store i8 %1516, ptr %1520, align 1, !tbaa !15
  %1521 = load ptr, ptr %42, align 8, !tbaa !14
  %1522 = getelementptr inbounds ptr, ptr %1521, i64 %indvars.iv1200
  %1523 = load ptr, ptr %1522, align 8, !tbaa !14
  %1524 = or disjoint i32 %.0.lcssa, 13
  %1525 = zext nneg i32 %1524 to i64
  %1526 = getelementptr inbounds i8, ptr %1523, i64 %1525
  %1527 = load i8, ptr %1526, align 1, !tbaa !15
  %1528 = xor i8 %1527, -1
  %1529 = load ptr, ptr %43, align 8, !tbaa !14
  %1530 = getelementptr inbounds ptr, ptr %1529, i64 %indvars.iv1200
  %1531 = load ptr, ptr %1530, align 8, !tbaa !14
  %1532 = getelementptr inbounds i8, ptr %1531, i64 %1525
  store i8 %1528, ptr %1532, align 1, !tbaa !15
  %1533 = load ptr, ptr %42, align 8, !tbaa !14
  %1534 = getelementptr inbounds ptr, ptr %1533, i64 %indvars.iv1200
  %1535 = or disjoint i32 %.0.lcssa, 14
  br label %.sink.split

.sink.split:                                      ; preds = %234, %276, %366, %504, %690, %924, %1206, %1365, %1059, %801, %591, %429, %315, %249, %231
  %.0.lcssa.sink = phi i32 [ %.0.lcssa, %231 ], [ %275, %249 ], [ %365, %315 ], [ %503, %429 ], [ %689, %591 ], [ %923, %801 ], [ %1205, %1059 ], [ %1535, %1365 ], [ %1364, %1206 ], [ %1058, %924 ], [ %800, %690 ], [ %590, %504 ], [ %428, %366 ], [ %314, %276 ], [ %248, %234 ]
  %.sink1214.in = phi ptr [ %233, %231 ], [ %274, %249 ], [ %364, %315 ], [ %502, %429 ], [ %688, %591 ], [ %922, %801 ], [ %1204, %1059 ], [ %1534, %1365 ], [ %1363, %1206 ], [ %1057, %924 ], [ %799, %690 ], [ %589, %504 ], [ %427, %366 ], [ %313, %276 ], [ %247, %234 ]
  %.sink1214 = load ptr, ptr %.sink1214.in, align 8, !tbaa !14
  %1536 = zext nneg i32 %.0.lcssa.sink to i64
  %1537 = getelementptr inbounds i8, ptr %.sink1214, i64 %1536
  %1538 = load i8, ptr %1537, align 1, !tbaa !15
  %1539 = xor i8 %1538, -1
  %1540 = load ptr, ptr %43, align 8, !tbaa !14
  %1541 = getelementptr inbounds ptr, ptr %1540, i64 %indvars.iv1200
  %1542 = load ptr, ptr %1541, align 8, !tbaa !14
  %1543 = getelementptr inbounds i8, ptr %1542, i64 %1536
  store i8 %1539, ptr %1543, align 1, !tbaa !15
  br label %1544

1544:                                             ; preds = %.sink.split, %229, %._crit_edge
  %indvars.iv.next1201 = add nuw nsw i64 %indvars.iv1200, 1
  %1545 = load i32, ptr %33, align 4, !tbaa !11
  %1546 = sext i32 %1545 to i64
  %1547 = icmp slt i64 %indvars.iv.next1201, %1546
  br i1 %1547, label %.preheader, label %._crit_edge1193.loopexit, !llvm.loop !18

._crit_edge1193.loopexit:                         ; preds = %1544
  %.pre = load i32, ptr %.01177, align 8, !tbaa !5
  br label %._crit_edge1193

._crit_edge1193:                                  ; preds = %._crit_edge1193.loopexit, %.preheader1189
  %1548 = phi i32 [ %.pre, %._crit_edge1193.loopexit ], [ %39, %.preheader1189 ]
  %1549 = phi i32 [ %1545, %._crit_edge1193.loopexit ], [ %40, %.preheader1189 ]
  %indvars.iv.next1204 = add nuw nsw i64 %indvars.iv1203, 1
  %1550 = sext i32 %1548 to i64
  %1551 = icmp slt i64 %indvars.iv.next1204, %1550
  br i1 %1551, label %.preheader1189, label %._crit_edge1195, !llvm.loop !19
}

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 = distinct !{!16, !17}
!17 = !{!"llvm.loop.mustprogress"}
!18 = distinct !{!18, !17}
!19 = distinct !{!19, !17, !20}
!20 = !{!"llvm.loop.unswitch.partial.disable"}


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