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

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

@r_to_y = external dso_local global [256 x i8], align 16
@g_to_y = external dso_local global [256 x i8], align 16
@b_to_y = external dso_local global [256 x i8], align 16
@r_to_v = external dso_local global [512 x i8], align 16
@b_to_u = external dso_local global [512 x i8], align 16
@.str = external hidden unnamed_addr constant [86 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [11 x i8], align 1
@__FUNCTION__.m_ImageRGBToYUV = external hidden unnamed_addr constant [16 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

declare void @ImageRedefine(ptr noundef, i32 noundef, i32 noundef, i32 noundef, ptr noundef) #1

declare ptr @m_PropertyWrite(ptr noundef, ptr noundef, ptr noundef, i32 noundef) #1

; Function Attrs: nounwind uwtable
define dso_local void @m_ImageRGBToYUV(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 ptr, align 8
  %10 = alloca ptr, align 8
  %11 = alloca i32, align 4
  %12 = alloca ptr, align 8
  %13 = alloca ptr, align 8
  %14 = alloca ptr, align 8
  %15 = alloca ptr, align 8
  %16 = alloca ptr, align 8
  %17 = alloca ptr, align 8
  %18 = alloca i32, align 4
  %19 = alloca i32, align 4
  store ptr %0, ptr %3, align 8, !tbaa !5
  store ptr %1, ptr %4, align 8, !tbaa !5
  br label %20

20:                                               ; preds = %2
  call void @llvm.lifetime.start.p0(i64 4, ptr %5) #3
  %21 = load ptr, ptr %3, align 8, !tbaa !5
  %22 = icmp eq ptr %21, null
  br i1 %22, label %27, label %23

23:                                               ; preds = %20
  %24 = load ptr, ptr %3, align 8, !tbaa !5
  %25 = ptrtoint ptr %24 to i64
  %26 = icmp eq i64 %25, -1
  br i1 %26, label %27, label %28

27:                                               ; preds = %23, %20
  br label %57

28:                                               ; preds = %23
  %29 = load ptr, ptr %3, align 8, !tbaa !5
  %30 = getelementptr inbounds %struct.MImage, ptr %29, i32 0, i32 3
  %31 = getelementptr inbounds [4 x ptr], ptr %30, i64 0, i64 0
  %32 = icmp eq ptr %31, null
  br i1 %32, label %54, label %33

33:                                               ; preds = %28
  %34 = load ptr, ptr %3, align 8, !tbaa !5
  %35 = getelementptr inbounds %struct.MImage, ptr %34, i32 0, i32 3
  %36 = getelementptr inbounds [4 x ptr], ptr %35, i64 0, i64 0
  %37 = ptrtoint ptr %36 to i64
  %38 = icmp eq i64 %37, -1
  br i1 %38, label %54, label %39

39:                                               ; preds = %33
  %40 = load ptr, ptr %3, align 8, !tbaa !5
  %41 = getelementptr inbounds %struct.MImage, ptr %40, i32 0, i32 0
  %42 = load i32, ptr %41, align 8, !tbaa !9
  %43 = icmp sle i32 %42, 0
  br i1 %43, label %54, label %44

44:                                               ; preds = %39
  %45 = load ptr, ptr %3, align 8, !tbaa !5
  %46 = getelementptr inbounds %struct.MImage, ptr %45, i32 0, i32 1
  %47 = load i32, ptr %46, align 4, !tbaa !12
  %48 = icmp sle i32 %47, 0
  br i1 %48, label %54, label %49

49:                                               ; preds = %44
  %50 = load ptr, ptr %3, align 8, !tbaa !5
  %51 = getelementptr inbounds %struct.MImage, ptr %50, i32 0, i32 2
  %52 = load i32, ptr %51, align 8, !tbaa !13
  %53 = icmp sle i32 %52, 0
  br label %54

54:                                               ; preds = %49, %44, %39, %33, %28
  %55 = phi i1 [ true, %44 ], [ true, %39 ], [ true, %33 ], [ true, %28 ], [ %53, %49 ]
  %56 = zext i1 %55 to i32
  br label %57

57:                                               ; preds = %54, %27
  %58 = phi i32 [ 1, %27 ], [ %56, %54 ]
  store i32 %58, ptr %5, align 4, !tbaa !14
  %59 = load i32, ptr %5, align 4, !tbaa !14
  %60 = icmp ne i32 %59, 0
  br i1 %60, label %61, label %63

61:                                               ; preds = %57
  %62 = load i32, ptr %5, align 4, !tbaa !14
  call void (i32, i32, ptr, i32, ptr, ptr, ...) @m_Exception(i32 noundef %62, i32 noundef -1, ptr noundef @.str, i32 noundef 105, ptr noundef @__FUNCTION__.m_ImageRGBToYUV, ptr noundef @.str.1)
  br label %63

63:                                               ; preds = %61, %57
  call void @llvm.lifetime.end.p0(i64 4, ptr %5) #3
  br label %64

64:                                               ; preds = %63
  br label %65

65:                                               ; preds = %64
  call void @llvm.lifetime.start.p0(i64 4, ptr %6) #3
  %66 = load ptr, ptr %3, align 8, !tbaa !5
  %67 = getelementptr inbounds %struct.MImage, ptr %66, i32 0, i32 0
  %68 = load i32, ptr %67, align 8, !tbaa !9
  %69 = icmp slt i32 %68, 3
  %70 = zext i1 %69 to i32
  store i32 %70, ptr %6, align 4, !tbaa !14
  %71 = load i32, ptr %6, align 4, !tbaa !14
  %72 = icmp ne i32 %71, 0
  br i1 %72, label %73, label %75

73:                                               ; preds = %65
  %74 = load i32, ptr %6, align 4, !tbaa !14
  call void (i32, i32, ptr, i32, ptr, ptr, ...) @m_Exception(i32 noundef %74, i32 noundef -1, ptr noundef @.str, i32 noundef 106, ptr noundef @__FUNCTION__.m_ImageRGBToYUV, ptr noundef @.str.1)
  br label %75

75:                                               ; preds = %73, %65
  call void @llvm.lifetime.end.p0(i64 4, ptr %6) #3
  br label %76

76:                                               ; preds = %75
  %77 = load ptr, ptr %4, align 8, !tbaa !5
  %78 = icmp eq ptr %77, null
  br i1 %78, label %79, label %81

79:                                               ; preds = %76
  %80 = load ptr, ptr %3, align 8, !tbaa !5
  store ptr %80, ptr %4, align 8, !tbaa !5
  br label %81

81:                                               ; preds = %79, %76
  %82 = load ptr, ptr %4, align 8, !tbaa !5
  %83 = load ptr, ptr %3, align 8, !tbaa !5
  %84 = icmp ne ptr %82, %83
  br i1 %84, label %85, label %138

85:                                               ; preds = %81
  br label %86

86:                                               ; preds = %85
  call void @llvm.lifetime.start.p0(i64 4, ptr %7) #3
  store i32 4, ptr %7, align 4, !tbaa !14
  %87 = load i32, ptr %7, align 4, !tbaa !14
  %88 = icmp eq i32 %87, 2
  br i1 %88, label %89, label %97

89:                                               ; preds = %86
  %90 = load ptr, ptr %4, align 8, !tbaa !5
  %91 = load ptr, ptr %3, align 8, !tbaa !5
  %92 = getelementptr inbounds %struct.MImage, ptr %91, i32 0, i32 1
  %93 = load i32, ptr %92, align 4, !tbaa !12
  %94 = load ptr, ptr %4, align 8, !tbaa !5
  %95 = getelementptr inbounds %struct.MImage, ptr %94, i32 0, i32 3
  %96 = getelementptr inbounds [4 x ptr], ptr %95, i64 0, i64 0
  call void @ImageRedefine(ptr noundef %90, i32 noundef -1, i32 noundef 3, i32 noundef %93, ptr noundef %96)
  br label %136

97:                                               ; preds = %86
  %98 = load i32, ptr %7, align 4, !tbaa !14
  %99 = icmp eq i32 %98, 3
  br i1 %99, label %100, label %111

100:                                              ; preds = %97
  %101 = load ptr, ptr %4, align 8, !tbaa !5
  %102 = load ptr, ptr %3, align 8, !tbaa !5
  %103 = getelementptr inbounds %struct.MImage, ptr %102, i32 0, i32 1
  %104 = load i32, ptr %103, align 4, !tbaa !12
  %105 = load ptr, ptr %3, align 8, !tbaa !5
  %106 = getelementptr inbounds %struct.MImage, ptr %105, i32 0, i32 2
  %107 = load i32, ptr %106, align 8, !tbaa !13
  %108 = load ptr, ptr %4, align 8, !tbaa !5
  %109 = getelementptr inbounds %struct.MImage, ptr %108, i32 0, i32 3
  %110 = getelementptr inbounds [4 x ptr], ptr %109, i64 0, i64 0
  call void @ImageRedefine(ptr noundef %101, i32 noundef 3, i32 noundef %104, i32 noundef %107, ptr noundef %110)
  br label %135

111:                                              ; preds = %97
  %112 = load i32, ptr %7, align 4, !tbaa !14
  %113 = icmp eq i32 %112, 4
  br i1 %113, label %114, label %125

114:                                              ; preds = %111
  %115 = load ptr, ptr %4, align 8, !tbaa !5
  %116 = load ptr, ptr %3, align 8, !tbaa !5
  %117 = getelementptr inbounds %struct.MImage, ptr %116, i32 0, i32 1
  %118 = load i32, ptr %117, align 4, !tbaa !12
  %119 = load ptr, ptr %3, align 8, !tbaa !5
  %120 = getelementptr inbounds %struct.MImage, ptr %119, i32 0, i32 2
  %121 = load i32, ptr %120, align 8, !tbaa !13
  %122 = load ptr, ptr %4, align 8, !tbaa !5
  %123 = getelementptr inbounds %struct.MImage, ptr %122, i32 0, i32 3
  %124 = getelementptr inbounds [4 x ptr], ptr %123, i64 0, i64 0
  call void @ImageRedefine(ptr noundef %115, i32 noundef 3, i32 noundef %118, i32 noundef %121, ptr noundef %124)
  br label %134

125:                                              ; preds = %111
  br label %126

126:                                              ; preds = %125
  call void @llvm.lifetime.start.p0(i64 4, ptr %8) #3
  store i32 1, ptr %8, align 4, !tbaa !14
  %127 = load i32, ptr %8, align 4, !tbaa !14
  %128 = icmp ne i32 %127, 0
  br i1 %128, label %129, label %131

129:                                              ; preds = %126
  %130 = load i32, ptr %8, align 4, !tbaa !14
  call void (i32, i32, ptr, i32, ptr, ptr, ...) @m_Exception(i32 noundef %130, i32 noundef -1, ptr noundef @.str, i32 noundef 109, ptr noundef @__FUNCTION__.m_ImageRGBToYUV, ptr noundef @.str.2)
  br label %131

131:                                              ; preds = %129, %126
  call void @llvm.lifetime.end.p0(i64 4, ptr %8) #3
  br label %132

132:                                              ; preds = %131
  br label %133

133:                                              ; preds = %132
  br label %134

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

135:                                              ; preds = %134, %100
  br label %136

136:                                              ; preds = %135, %89
  call void @llvm.lifetime.end.p0(i64 4, ptr %7) #3
  br label %137

137:                                              ; preds = %136
  br label %138

138:                                              ; preds = %137, %81
  call void @llvm.lifetime.start.p0(i64 8, ptr %9) #3
  store ptr getelementptr inbounds (i8, ptr @r_to_v, i64 256), ptr %9, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %10) #3
  store ptr getelementptr inbounds (i8, ptr @b_to_u, i64 256), ptr %10, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %11) #3
  store i32 0, ptr %11, align 4, !tbaa !14
  br label %139

139:                                              ; preds = %12048, %138
  %140 = load i32, ptr %11, align 4, !tbaa !14
  %141 = load ptr, ptr %4, align 8, !tbaa !5
  %142 = getelementptr inbounds %struct.MImage, ptr %141, i32 0, i32 1
  %143 = load i32, ptr %142, align 4, !tbaa !12
  %144 = icmp slt i32 %140, %143
  br i1 %144, label %145, label %12051

145:                                              ; preds = %139
  call void @llvm.lifetime.start.p0(i64 8, ptr %12) #3
  %146 = load ptr, ptr %3, align 8, !tbaa !5
  %147 = getelementptr inbounds %struct.MImage, ptr %146, i32 0, i32 3
  %148 = getelementptr inbounds [4 x ptr], ptr %147, i64 0, i64 0
  %149 = load ptr, ptr %148, align 8, !tbaa !5
  %150 = load i32, ptr %11, align 4, !tbaa !14
  %151 = sext i32 %150 to i64
  %152 = getelementptr inbounds ptr, ptr %149, i64 %151
  %153 = load ptr, ptr %152, align 8, !tbaa !5
  store ptr %153, ptr %12, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %13) #3
  %154 = load ptr, ptr %3, align 8, !tbaa !5
  %155 = getelementptr inbounds %struct.MImage, ptr %154, i32 0, i32 3
  %156 = getelementptr inbounds [4 x ptr], ptr %155, i64 0, i64 1
  %157 = load ptr, ptr %156, align 8, !tbaa !5
  %158 = load i32, ptr %11, align 4, !tbaa !14
  %159 = sext i32 %158 to i64
  %160 = getelementptr inbounds ptr, ptr %157, i64 %159
  %161 = load ptr, ptr %160, align 8, !tbaa !5
  store ptr %161, ptr %13, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %14) #3
  %162 = load ptr, ptr %3, align 8, !tbaa !5
  %163 = getelementptr inbounds %struct.MImage, ptr %162, i32 0, i32 3
  %164 = getelementptr inbounds [4 x ptr], ptr %163, i64 0, i64 2
  %165 = load ptr, ptr %164, align 8, !tbaa !5
  %166 = load i32, ptr %11, align 4, !tbaa !14
  %167 = sext i32 %166 to i64
  %168 = getelementptr inbounds ptr, ptr %165, i64 %167
  %169 = load ptr, ptr %168, align 8, !tbaa !5
  store ptr %169, ptr %14, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %15) #3
  %170 = load ptr, ptr %4, align 8, !tbaa !5
  %171 = getelementptr inbounds %struct.MImage, ptr %170, i32 0, i32 3
  %172 = getelementptr inbounds [4 x ptr], ptr %171, i64 0, i64 0
  %173 = load ptr, ptr %172, align 8, !tbaa !5
  %174 = load i32, ptr %11, align 4, !tbaa !14
  %175 = sext i32 %174 to i64
  %176 = getelementptr inbounds ptr, ptr %173, i64 %175
  %177 = load ptr, ptr %176, align 8, !tbaa !5
  store ptr %177, ptr %15, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %16) #3
  %178 = load ptr, ptr %4, align 8, !tbaa !5
  %179 = getelementptr inbounds %struct.MImage, ptr %178, i32 0, i32 3
  %180 = getelementptr inbounds [4 x ptr], ptr %179, i64 0, i64 1
  %181 = load ptr, ptr %180, align 8, !tbaa !5
  %182 = load i32, ptr %11, align 4, !tbaa !14
  %183 = sext i32 %182 to i64
  %184 = getelementptr inbounds ptr, ptr %181, i64 %183
  %185 = load ptr, ptr %184, align 8, !tbaa !5
  store ptr %185, ptr %16, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %17) #3
  %186 = load ptr, ptr %4, align 8, !tbaa !5
  %187 = getelementptr inbounds %struct.MImage, ptr %186, i32 0, i32 3
  %188 = getelementptr inbounds [4 x ptr], ptr %187, i64 0, i64 2
  %189 = load ptr, ptr %188, align 8, !tbaa !5
  %190 = load i32, ptr %11, align 4, !tbaa !14
  %191 = sext i32 %190 to i64
  %192 = getelementptr inbounds ptr, ptr %189, i64 %191
  %193 = load ptr, ptr %192, align 8, !tbaa !5
  store ptr %193, ptr %17, align 8, !tbaa !5
  br label %194

194:                                              ; preds = %145
  call void @llvm.lifetime.start.p0(i64 4, ptr %18) #3
  store i32 0, ptr %18, align 4, !tbaa !14
  store i32 0, ptr %18, align 4, !tbaa !14
  br label %195

195:                                              ; preds = %1579, %194
  %196 = load i32, ptr %18, align 4, !tbaa !14
  %197 = load ptr, ptr %4, align 8, !tbaa !5
  %198 = getelementptr inbounds %struct.MImage, ptr %197, i32 0, i32 2
  %199 = load i32, ptr %198, align 8, !tbaa !13
  %200 = sub nsw i32 %199, 15
  %201 = icmp slt i32 %196, %200
  br i1 %201, label %202, label %1582

202:                                              ; preds = %195
  %203 = load ptr, ptr %14, align 8, !tbaa !5
  %204 = load i32, ptr %18, align 4, !tbaa !14
  %205 = add nsw i32 %204, 0
  %206 = sext i32 %205 to i64
  %207 = getelementptr inbounds i8, ptr %203, i64 %206
  %208 = load i8, ptr %207, align 1, !tbaa !15
  %209 = zext i8 %208 to i64
  %210 = getelementptr inbounds [256 x i8], ptr @r_to_y, i64 0, i64 %209
  %211 = load i8, ptr %210, align 1, !tbaa !15
  %212 = zext i8 %211 to i32
  %213 = load ptr, ptr %13, align 8, !tbaa !5
  %214 = load i32, ptr %18, align 4, !tbaa !14
  %215 = add nsw i32 %214, 0
  %216 = sext i32 %215 to i64
  %217 = getelementptr inbounds i8, ptr %213, i64 %216
  %218 = load i8, ptr %217, align 1, !tbaa !15
  %219 = zext i8 %218 to i64
  %220 = getelementptr inbounds [256 x i8], ptr @g_to_y, i64 0, i64 %219
  %221 = load i8, ptr %220, align 1, !tbaa !15
  %222 = zext i8 %221 to i32
  %223 = add nsw i32 %212, %222
  %224 = load ptr, ptr %12, align 8, !tbaa !5
  %225 = load i32, ptr %18, align 4, !tbaa !14
  %226 = add nsw i32 %225, 0
  %227 = sext i32 %226 to i64
  %228 = getelementptr inbounds i8, ptr %224, i64 %227
  %229 = load i8, ptr %228, align 1, !tbaa !15
  %230 = zext i8 %229 to i64
  %231 = getelementptr inbounds [256 x i8], ptr @b_to_y, i64 0, i64 %230
  %232 = load i8, ptr %231, align 1, !tbaa !15
  %233 = zext i8 %232 to i32
  %234 = add nsw i32 %223, %233
  %235 = trunc i32 %234 to i8
  %236 = load ptr, ptr %15, align 8, !tbaa !5
  %237 = load i32, ptr %18, align 4, !tbaa !14
  %238 = add nsw i32 %237, 0
  %239 = sext i32 %238 to i64
  %240 = getelementptr inbounds i8, ptr %236, i64 %239
  store i8 %235, ptr %240, align 1, !tbaa !15
  %241 = load ptr, ptr %10, align 8, !tbaa !5
  %242 = load ptr, ptr %12, align 8, !tbaa !5
  %243 = load i32, ptr %18, align 4, !tbaa !14
  %244 = add nsw i32 %243, 0
  %245 = sext i32 %244 to i64
  %246 = getelementptr inbounds i8, ptr %242, i64 %245
  %247 = load i8, ptr %246, align 1, !tbaa !15
  %248 = zext i8 %247 to i32
  %249 = load ptr, ptr %15, align 8, !tbaa !5
  %250 = load i32, ptr %18, align 4, !tbaa !14
  %251 = add nsw i32 %250, 0
  %252 = sext i32 %251 to i64
  %253 = getelementptr inbounds i8, ptr %249, i64 %252
  %254 = load i8, ptr %253, align 1, !tbaa !15
  %255 = zext i8 %254 to i32
  %256 = sub nsw i32 %248, %255
  %257 = sext i32 %256 to i64
  %258 = getelementptr inbounds i8, ptr %241, i64 %257
  %259 = load i8, ptr %258, align 1, !tbaa !15
  %260 = load ptr, ptr %16, align 8, !tbaa !5
  %261 = load i32, ptr %18, align 4, !tbaa !14
  %262 = add nsw i32 %261, 0
  %263 = sext i32 %262 to i64
  %264 = getelementptr inbounds i8, ptr %260, i64 %263
  store i8 %259, ptr %264, align 1, !tbaa !15
  %265 = load ptr, ptr %9, align 8, !tbaa !5
  %266 = load ptr, ptr %14, align 8, !tbaa !5
  %267 = load i32, ptr %18, align 4, !tbaa !14
  %268 = add nsw i32 %267, 0
  %269 = sext i32 %268 to i64
  %270 = getelementptr inbounds i8, ptr %266, i64 %269
  %271 = load i8, ptr %270, align 1, !tbaa !15
  %272 = zext i8 %271 to i32
  %273 = load ptr, ptr %15, align 8, !tbaa !5
  %274 = load i32, ptr %18, align 4, !tbaa !14
  %275 = add nsw i32 %274, 0
  %276 = sext i32 %275 to i64
  %277 = getelementptr inbounds i8, ptr %273, i64 %276
  %278 = load i8, ptr %277, align 1, !tbaa !15
  %279 = zext i8 %278 to i32
  %280 = sub nsw i32 %272, %279
  %281 = sext i32 %280 to i64
  %282 = getelementptr inbounds i8, ptr %265, i64 %281
  %283 = load i8, ptr %282, align 1, !tbaa !15
  %284 = load ptr, ptr %17, align 8, !tbaa !5
  %285 = load i32, ptr %18, align 4, !tbaa !14
  %286 = add nsw i32 %285, 0
  %287 = sext i32 %286 to i64
  %288 = getelementptr inbounds i8, ptr %284, i64 %287
  store i8 %283, ptr %288, align 1, !tbaa !15
  %289 = load ptr, ptr %14, align 8, !tbaa !5
  %290 = load i32, ptr %18, align 4, !tbaa !14
  %291 = add nsw i32 %290, 1
  %292 = sext i32 %291 to i64
  %293 = getelementptr inbounds i8, ptr %289, i64 %292
  %294 = load i8, ptr %293, align 1, !tbaa !15
  %295 = zext i8 %294 to i64
  %296 = getelementptr inbounds [256 x i8], ptr @r_to_y, i64 0, i64 %295
  %297 = load i8, ptr %296, align 1, !tbaa !15
  %298 = zext i8 %297 to i32
  %299 = load ptr, ptr %13, align 8, !tbaa !5
  %300 = load i32, ptr %18, align 4, !tbaa !14
  %301 = add nsw i32 %300, 1
  %302 = sext i32 %301 to i64
  %303 = getelementptr inbounds i8, ptr %299, i64 %302
  %304 = load i8, ptr %303, align 1, !tbaa !15
  %305 = zext i8 %304 to i64
  %306 = getelementptr inbounds [256 x i8], ptr @g_to_y, i64 0, i64 %305
  %307 = load i8, ptr %306, align 1, !tbaa !15
  %308 = zext i8 %307 to i32
  %309 = add nsw i32 %298, %308
  %310 = load ptr, ptr %12, align 8, !tbaa !5
  %311 = load i32, ptr %18, align 4, !tbaa !14
  %312 = add nsw i32 %311, 1
  %313 = sext i32 %312 to i64
  %314 = getelementptr inbounds i8, ptr %310, i64 %313
  %315 = load i8, ptr %314, align 1, !tbaa !15
  %316 = zext i8 %315 to i64
  %317 = getelementptr inbounds [256 x i8], ptr @b_to_y, i64 0, i64 %316
  %318 = load i8, ptr %317, align 1, !tbaa !15
  %319 = zext i8 %318 to i32
  %320 = add nsw i32 %309, %319
  %321 = trunc i32 %320 to i8
  %322 = load ptr, ptr %15, align 8, !tbaa !5
  %323 = load i32, ptr %18, align 4, !tbaa !14
  %324 = add nsw i32 %323, 1
  %325 = sext i32 %324 to i64
  %326 = getelementptr inbounds i8, ptr %322, i64 %325
  store i8 %321, ptr %326, align 1, !tbaa !15
  %327 = load ptr, ptr %10, align 8, !tbaa !5
  %328 = load ptr, ptr %12, align 8, !tbaa !5
  %329 = load i32, ptr %18, align 4, !tbaa !14
  %330 = add nsw i32 %329, 1
  %331 = sext i32 %330 to i64
  %332 = getelementptr inbounds i8, ptr %328, i64 %331
  %333 = load i8, ptr %332, align 1, !tbaa !15
  %334 = zext i8 %333 to i32
  %335 = load ptr, ptr %15, align 8, !tbaa !5
  %336 = load i32, ptr %18, align 4, !tbaa !14
  %337 = add nsw i32 %336, 1
  %338 = sext i32 %337 to i64
  %339 = getelementptr inbounds i8, ptr %335, i64 %338
  %340 = load i8, ptr %339, align 1, !tbaa !15
  %341 = zext i8 %340 to i32
  %342 = sub nsw i32 %334, %341
  %343 = sext i32 %342 to i64
  %344 = getelementptr inbounds i8, ptr %327, i64 %343
  %345 = load i8, ptr %344, align 1, !tbaa !15
  %346 = load ptr, ptr %16, align 8, !tbaa !5
  %347 = load i32, ptr %18, align 4, !tbaa !14
  %348 = add nsw i32 %347, 1
  %349 = sext i32 %348 to i64
  %350 = getelementptr inbounds i8, ptr %346, i64 %349
  store i8 %345, ptr %350, align 1, !tbaa !15
  %351 = load ptr, ptr %9, align 8, !tbaa !5
  %352 = load ptr, ptr %14, align 8, !tbaa !5
  %353 = load i32, ptr %18, align 4, !tbaa !14
  %354 = add nsw i32 %353, 1
  %355 = sext i32 %354 to i64
  %356 = getelementptr inbounds i8, ptr %352, i64 %355
  %357 = load i8, ptr %356, align 1, !tbaa !15
  %358 = zext i8 %357 to i32
  %359 = load ptr, ptr %15, align 8, !tbaa !5
  %360 = load i32, ptr %18, align 4, !tbaa !14
  %361 = add nsw i32 %360, 1
  %362 = sext i32 %361 to i64
  %363 = getelementptr inbounds i8, ptr %359, i64 %362
  %364 = load i8, ptr %363, align 1, !tbaa !15
  %365 = zext i8 %364 to i32
  %366 = sub nsw i32 %358, %365
  %367 = sext i32 %366 to i64
  %368 = getelementptr inbounds i8, ptr %351, i64 %367
  %369 = load i8, ptr %368, align 1, !tbaa !15
  %370 = load ptr, ptr %17, align 8, !tbaa !5
  %371 = load i32, ptr %18, align 4, !tbaa !14
  %372 = add nsw i32 %371, 1
  %373 = sext i32 %372 to i64
  %374 = getelementptr inbounds i8, ptr %370, i64 %373
  store i8 %369, ptr %374, align 1, !tbaa !15
  %375 = load ptr, ptr %14, align 8, !tbaa !5
  %376 = load i32, ptr %18, align 4, !tbaa !14
  %377 = add nsw i32 %376, 2
  %378 = sext i32 %377 to i64
  %379 = getelementptr inbounds i8, ptr %375, i64 %378
  %380 = load i8, ptr %379, align 1, !tbaa !15
  %381 = zext i8 %380 to i64
  %382 = getelementptr inbounds [256 x i8], ptr @r_to_y, i64 0, i64 %381
  %383 = load i8, ptr %382, align 1, !tbaa !15
  %384 = zext i8 %383 to i32
  %385 = load ptr, ptr %13, align 8, !tbaa !5
  %386 = load i32, ptr %18, align 4, !tbaa !14
  %387 = add nsw i32 %386, 2
  %388 = sext i32 %387 to i64
  %389 = getelementptr inbounds i8, ptr %385, i64 %388
  %390 = load i8, ptr %389, align 1, !tbaa !15
  %391 = zext i8 %390 to i64
  %392 = getelementptr inbounds [256 x i8], ptr @g_to_y, i64 0, i64 %391
  %393 = load i8, ptr %392, align 1, !tbaa !15
  %394 = zext i8 %393 to i32
  %395 = add nsw i32 %384, %394
  %396 = load ptr, ptr %12, align 8, !tbaa !5
  %397 = load i32, ptr %18, align 4, !tbaa !14
  %398 = add nsw i32 %397, 2
  %399 = sext i32 %398 to i64
  %400 = getelementptr inbounds i8, ptr %396, i64 %399
  %401 = load i8, ptr %400, align 1, !tbaa !15
  %402 = zext i8 %401 to i64
  %403 = getelementptr inbounds [256 x i8], ptr @b_to_y, i64 0, i64 %402
  %404 = load i8, ptr %403, align 1, !tbaa !15
  %405 = zext i8 %404 to i32
  %406 = add nsw i32 %395, %405
  %407 = trunc i32 %406 to i8
  %408 = load ptr, ptr %15, align 8, !tbaa !5
  %409 = load i32, ptr %18, align 4, !tbaa !14
  %410 = add nsw i32 %409, 2
  %411 = sext i32 %410 to i64
  %412 = getelementptr inbounds i8, ptr %408, i64 %411
  store i8 %407, ptr %412, align 1, !tbaa !15
  %413 = load ptr, ptr %10, align 8, !tbaa !5
  %414 = load ptr, ptr %12, align 8, !tbaa !5
  %415 = load i32, ptr %18, align 4, !tbaa !14
  %416 = add nsw i32 %415, 2
  %417 = sext i32 %416 to i64
  %418 = getelementptr inbounds i8, ptr %414, i64 %417
  %419 = load i8, ptr %418, align 1, !tbaa !15
  %420 = zext i8 %419 to i32
  %421 = load ptr, ptr %15, align 8, !tbaa !5
  %422 = load i32, ptr %18, align 4, !tbaa !14
  %423 = add nsw i32 %422, 2
  %424 = sext i32 %423 to i64
  %425 = getelementptr inbounds i8, ptr %421, i64 %424
  %426 = load i8, ptr %425, align 1, !tbaa !15
  %427 = zext i8 %426 to i32
  %428 = sub nsw i32 %420, %427
  %429 = sext i32 %428 to i64
  %430 = getelementptr inbounds i8, ptr %413, i64 %429
  %431 = load i8, ptr %430, align 1, !tbaa !15
  %432 = load ptr, ptr %16, align 8, !tbaa !5
  %433 = load i32, ptr %18, align 4, !tbaa !14
  %434 = add nsw i32 %433, 2
  %435 = sext i32 %434 to i64
  %436 = getelementptr inbounds i8, ptr %432, i64 %435
  store i8 %431, ptr %436, align 1, !tbaa !15
  %437 = load ptr, ptr %9, align 8, !tbaa !5
  %438 = load ptr, ptr %14, align 8, !tbaa !5
  %439 = load i32, ptr %18, align 4, !tbaa !14
  %440 = add nsw i32 %439, 2
  %441 = sext i32 %440 to i64
  %442 = getelementptr inbounds i8, ptr %438, i64 %441
  %443 = load i8, ptr %442, align 1, !tbaa !15
  %444 = zext i8 %443 to i32
  %445 = load ptr, ptr %15, align 8, !tbaa !5
  %446 = load i32, ptr %18, align 4, !tbaa !14
  %447 = add nsw i32 %446, 2
  %448 = sext i32 %447 to i64
  %449 = getelementptr inbounds i8, ptr %445, i64 %448
  %450 = load i8, ptr %449, align 1, !tbaa !15
  %451 = zext i8 %450 to i32
  %452 = sub nsw i32 %444, %451
  %453 = sext i32 %452 to i64
  %454 = getelementptr inbounds i8, ptr %437, i64 %453
  %455 = load i8, ptr %454, align 1, !tbaa !15
  %456 = load ptr, ptr %17, align 8, !tbaa !5
  %457 = load i32, ptr %18, align 4, !tbaa !14
  %458 = add nsw i32 %457, 2
  %459 = sext i32 %458 to i64
  %460 = getelementptr inbounds i8, ptr %456, i64 %459
  store i8 %455, ptr %460, align 1, !tbaa !15
  %461 = load ptr, ptr %14, align 8, !tbaa !5
  %462 = load i32, ptr %18, align 4, !tbaa !14
  %463 = add nsw i32 %462, 3
  %464 = sext i32 %463 to i64
  %465 = getelementptr inbounds i8, ptr %461, i64 %464
  %466 = load i8, ptr %465, align 1, !tbaa !15
  %467 = zext i8 %466 to i64
  %468 = getelementptr inbounds [256 x i8], ptr @r_to_y, i64 0, i64 %467
  %469 = load i8, ptr %468, align 1, !tbaa !15
  %470 = zext i8 %469 to i32
  %471 = load ptr, ptr %13, align 8, !tbaa !5
  %472 = load i32, ptr %18, align 4, !tbaa !14
  %473 = add nsw i32 %472, 3
  %474 = sext i32 %473 to i64
  %475 = getelementptr inbounds i8, ptr %471, i64 %474
  %476 = load i8, ptr %475, align 1, !tbaa !15
  %477 = zext i8 %476 to i64
  %478 = getelementptr inbounds [256 x i8], ptr @g_to_y, i64 0, i64 %477
  %479 = load i8, ptr %478, align 1, !tbaa !15
  %480 = zext i8 %479 to i32
  %481 = add nsw i32 %470, %480
  %482 = load ptr, ptr %12, align 8, !tbaa !5
  %483 = load i32, ptr %18, align 4, !tbaa !14
  %484 = add nsw i32 %483, 3
  %485 = sext i32 %484 to i64
  %486 = getelementptr inbounds i8, ptr %482, i64 %485
  %487 = load i8, ptr %486, align 1, !tbaa !15
  %488 = zext i8 %487 to i64
  %489 = getelementptr inbounds [256 x i8], ptr @b_to_y, i64 0, i64 %488
  %490 = load i8, ptr %489, align 1, !tbaa !15
  %491 = zext i8 %490 to i32
  %492 = add nsw i32 %481, %491
  %493 = trunc i32 %492 to i8
  %494 = load ptr, ptr %15, align 8, !tbaa !5
  %495 = load i32, ptr %18, align 4, !tbaa !14
  %496 = add nsw i32 %495, 3
  %497 = sext i32 %496 to i64
  %498 = getelementptr inbounds i8, ptr %494, i64 %497
  store i8 %493, ptr %498, align 1, !tbaa !15
  %499 = load ptr, ptr %10, align 8, !tbaa !5
  %500 = load ptr, ptr %12, align 8, !tbaa !5
  %501 = load i32, ptr %18, align 4, !tbaa !14
  %502 = add nsw i32 %501, 3
  %503 = sext i32 %502 to i64
  %504 = getelementptr inbounds i8, ptr %500, i64 %503
  %505 = load i8, ptr %504, align 1, !tbaa !15
  %506 = zext i8 %505 to i32
  %507 = load ptr, ptr %15, align 8, !tbaa !5
  %508 = load i32, ptr %18, align 4, !tbaa !14
  %509 = add nsw i32 %508, 3
  %510 = sext i32 %509 to i64
  %511 = getelementptr inbounds i8, ptr %507, i64 %510
  %512 = load i8, ptr %511, align 1, !tbaa !15
  %513 = zext i8 %512 to i32
  %514 = sub nsw i32 %506, %513
  %515 = sext i32 %514 to i64
  %516 = getelementptr inbounds i8, ptr %499, i64 %515
  %517 = load i8, ptr %516, align 1, !tbaa !15
  %518 = load ptr, ptr %16, align 8, !tbaa !5
  %519 = load i32, ptr %18, align 4, !tbaa !14
  %520 = add nsw i32 %519, 3
  %521 = sext i32 %520 to i64
  %522 = getelementptr inbounds i8, ptr %518, i64 %521
  store i8 %517, ptr %522, align 1, !tbaa !15
  %523 = load ptr, ptr %9, align 8, !tbaa !5
  %524 = load ptr, ptr %14, align 8, !tbaa !5
  %525 = load i32, ptr %18, align 4, !tbaa !14
  %526 = add nsw i32 %525, 3
  %527 = sext i32 %526 to i64
  %528 = getelementptr inbounds i8, ptr %524, i64 %527
  %529 = load i8, ptr %528, align 1, !tbaa !15
  %530 = zext i8 %529 to i32
  %531 = load ptr, ptr %15, align 8, !tbaa !5
  %532 = load i32, ptr %18, align 4, !tbaa !14
  %533 = add nsw i32 %532, 3
  %534 = sext i32 %533 to i64
  %535 = getelementptr inbounds i8, ptr %531, i64 %534
  %536 = load i8, ptr %535, align 1, !tbaa !15
  %537 = zext i8 %536 to i32
  %538 = sub nsw i32 %530, %537
  %539 = sext i32 %538 to i64
  %540 = getelementptr inbounds i8, ptr %523, i64 %539
  %541 = load i8, ptr %540, align 1, !tbaa !15
  %542 = load ptr, ptr %17, align 8, !tbaa !5
  %543 = load i32, ptr %18, align 4, !tbaa !14
  %544 = add nsw i32 %543, 3
  %545 = sext i32 %544 to i64
  %546 = getelementptr inbounds i8, ptr %542, i64 %545
  store i8 %541, ptr %546, align 1, !tbaa !15
  %547 = load ptr, ptr %14, align 8, !tbaa !5
  %548 = load i32, ptr %18, align 4, !tbaa !14
  %549 = add nsw i32 %548, 4
  %550 = sext i32 %549 to i64
  %551 = getelementptr inbounds i8, ptr %547, i64 %550
  %552 = load i8, ptr %551, align 1, !tbaa !15
  %553 = zext i8 %552 to i64
  %554 = getelementptr inbounds [256 x i8], ptr @r_to_y, i64 0, i64 %553
  %555 = load i8, ptr %554, align 1, !tbaa !15
  %556 = zext i8 %555 to i32
  %557 = load ptr, ptr %13, align 8, !tbaa !5
  %558 = load i32, ptr %18, align 4, !tbaa !14
  %559 = add nsw i32 %558, 4
  %560 = sext i32 %559 to i64
  %561 = getelementptr inbounds i8, ptr %557, i64 %560
  %562 = load i8, ptr %561, align 1, !tbaa !15
  %563 = zext i8 %562 to i64
  %564 = getelementptr inbounds [256 x i8], ptr @g_to_y, i64 0, i64 %563
  %565 = load i8, ptr %564, align 1, !tbaa !15
  %566 = zext i8 %565 to i32
  %567 = add nsw i32 %556, %566
  %568 = load ptr, ptr %12, align 8, !tbaa !5
  %569 = load i32, ptr %18, align 4, !tbaa !14
  %570 = add nsw i32 %569, 4
  %571 = sext i32 %570 to i64
  %572 = getelementptr inbounds i8, ptr %568, i64 %571
  %573 = load i8, ptr %572, align 1, !tbaa !15
  %574 = zext i8 %573 to i64
  %575 = getelementptr inbounds [256 x i8], ptr @b_to_y, i64 0, i64 %574
  %576 = load i8, ptr %575, align 1, !tbaa !15
  %577 = zext i8 %576 to i32
  %578 = add nsw i32 %567, %577
  %579 = trunc i32 %578 to i8
  %580 = load ptr, ptr %15, align 8, !tbaa !5
  %581 = load i32, ptr %18, align 4, !tbaa !14
  %582 = add nsw i32 %581, 4
  %583 = sext i32 %582 to i64
  %584 = getelementptr inbounds i8, ptr %580, i64 %583
  store i8 %579, ptr %584, align 1, !tbaa !15
  %585 = load ptr, ptr %10, align 8, !tbaa !5
  %586 = load ptr, ptr %12, align 8, !tbaa !5
  %587 = load i32, ptr %18, align 4, !tbaa !14
  %588 = add nsw i32 %587, 4
  %589 = sext i32 %588 to i64
  %590 = getelementptr inbounds i8, ptr %586, i64 %589
  %591 = load i8, ptr %590, align 1, !tbaa !15
  %592 = zext i8 %591 to i32
  %593 = load ptr, ptr %15, align 8, !tbaa !5
  %594 = load i32, ptr %18, align 4, !tbaa !14
  %595 = add nsw i32 %594, 4
  %596 = sext i32 %595 to i64
  %597 = getelementptr inbounds i8, ptr %593, i64 %596
  %598 = load i8, ptr %597, align 1, !tbaa !15
  %599 = zext i8 %598 to i32
  %600 = sub nsw i32 %592, %599
  %601 = sext i32 %600 to i64
  %602 = getelementptr inbounds i8, ptr %585, i64 %601
  %603 = load i8, ptr %602, align 1, !tbaa !15
  %604 = load ptr, ptr %16, align 8, !tbaa !5
  %605 = load i32, ptr %18, align 4, !tbaa !14
  %606 = add nsw i32 %605, 4
  %607 = sext i32 %606 to i64
  %608 = getelementptr inbounds i8, ptr %604, i64 %607
  store i8 %603, ptr %608, align 1, !tbaa !15
  %609 = load ptr, ptr %9, align 8, !tbaa !5
  %610 = load ptr, ptr %14, align 8, !tbaa !5
  %611 = load i32, ptr %18, align 4, !tbaa !14
  %612 = add nsw i32 %611, 4
  %613 = sext i32 %612 to i64
  %614 = getelementptr inbounds i8, ptr %610, i64 %613
  %615 = load i8, ptr %614, align 1, !tbaa !15
  %616 = zext i8 %615 to i32
  %617 = load ptr, ptr %15, align 8, !tbaa !5
  %618 = load i32, ptr %18, align 4, !tbaa !14
  %619 = add nsw i32 %618, 4
  %620 = sext i32 %619 to i64
  %621 = getelementptr inbounds i8, ptr %617, i64 %620
  %622 = load i8, ptr %621, align 1, !tbaa !15
  %623 = zext i8 %622 to i32
  %624 = sub nsw i32 %616, %623
  %625 = sext i32 %624 to i64
  %626 = getelementptr inbounds i8, ptr %609, i64 %625
  %627 = load i8, ptr %626, align 1, !tbaa !15
  %628 = load ptr, ptr %17, align 8, !tbaa !5
  %629 = load i32, ptr %18, align 4, !tbaa !14
  %630 = add nsw i32 %629, 4
  %631 = sext i32 %630 to i64
  %632 = getelementptr inbounds i8, ptr %628, i64 %631
  store i8 %627, ptr %632, align 1, !tbaa !15
  %633 = load ptr, ptr %14, align 8, !tbaa !5
  %634 = load i32, ptr %18, align 4, !tbaa !14
  %635 = add nsw i32 %634, 5
  %636 = sext i32 %635 to i64
  %637 = getelementptr inbounds i8, ptr %633, i64 %636
  %638 = load i8, ptr %637, align 1, !tbaa !15
  %639 = zext i8 %638 to i64
  %640 = getelementptr inbounds [256 x i8], ptr @r_to_y, i64 0, i64 %639
  %641 = load i8, ptr %640, align 1, !tbaa !15
  %642 = zext i8 %641 to i32
  %643 = load ptr, ptr %13, align 8, !tbaa !5
  %644 = load i32, ptr %18, align 4, !tbaa !14
  %645 = add nsw i32 %644, 5
  %646 = sext i32 %645 to i64
  %647 = getelementptr inbounds i8, ptr %643, i64 %646
  %648 = load i8, ptr %647, align 1, !tbaa !15
  %649 = zext i8 %648 to i64
  %650 = getelementptr inbounds [256 x i8], ptr @g_to_y, i64 0, i64 %649
  %651 = load i8, ptr %650, align 1, !tbaa !15
  %652 = zext i8 %651 to i32
  %653 = add nsw i32 %642, %652
  %654 = load ptr, ptr %12, align 8, !tbaa !5
  %655 = load i32, ptr %18, align 4, !tbaa !14
  %656 = add nsw i32 %655, 5
  %657 = sext i32 %656 to i64
  %658 = getelementptr inbounds i8, ptr %654, i64 %657
  %659 = load i8, ptr %658, align 1, !tbaa !15
  %660 = zext i8 %659 to i64
  %661 = getelementptr inbounds [256 x i8], ptr @b_to_y, i64 0, i64 %660
  %662 = load i8, ptr %661, align 1, !tbaa !15
  %663 = zext i8 %662 to i32
  %664 = add nsw i32 %653, %663
  %665 = trunc i32 %664 to i8
  %666 = load ptr, ptr %15, align 8, !tbaa !5
  %667 = load i32, ptr %18, align 4, !tbaa !14
  %668 = add nsw i32 %667, 5
  %669 = sext i32 %668 to i64
  %670 = getelementptr inbounds i8, ptr %666, i64 %669
  store i8 %665, ptr %670, align 1, !tbaa !15
  %671 = load ptr, ptr %10, align 8, !tbaa !5
  %672 = load ptr, ptr %12, align 8, !tbaa !5
  %673 = load i32, ptr %18, align 4, !tbaa !14
  %674 = add nsw i32 %673, 5
  %675 = sext i32 %674 to i64
  %676 = getelementptr inbounds i8, ptr %672, i64 %675
  %677 = load i8, ptr %676, align 1, !tbaa !15
  %678 = zext i8 %677 to i32
  %679 = load ptr, ptr %15, align 8, !tbaa !5
  %680 = load i32, ptr %18, align 4, !tbaa !14
  %681 = add nsw i32 %680, 5
  %682 = sext i32 %681 to i64
  %683 = getelementptr inbounds i8, ptr %679, i64 %682
  %684 = load i8, ptr %683, align 1, !tbaa !15
  %685 = zext i8 %684 to i32
  %686 = sub nsw i32 %678, %685
  %687 = sext i32 %686 to i64
  %688 = getelementptr inbounds i8, ptr %671, i64 %687
  %689 = load i8, ptr %688, align 1, !tbaa !15
  %690 = load ptr, ptr %16, align 8, !tbaa !5
  %691 = load i32, ptr %18, align 4, !tbaa !14
  %692 = add nsw i32 %691, 5
  %693 = sext i32 %692 to i64
  %694 = getelementptr inbounds i8, ptr %690, i64 %693
  store i8 %689, ptr %694, align 1, !tbaa !15
  %695 = load ptr, ptr %9, align 8, !tbaa !5
  %696 = load ptr, ptr %14, align 8, !tbaa !5
  %697 = load i32, ptr %18, align 4, !tbaa !14
  %698 = add nsw i32 %697, 5
  %699 = sext i32 %698 to i64
  %700 = getelementptr inbounds i8, ptr %696, i64 %699
  %701 = load i8, ptr %700, align 1, !tbaa !15
  %702 = zext i8 %701 to i32
  %703 = load ptr, ptr %15, align 8, !tbaa !5
  %704 = load i32, ptr %18, align 4, !tbaa !14
  %705 = add nsw i32 %704, 5
  %706 = sext i32 %705 to i64
  %707 = getelementptr inbounds i8, ptr %703, i64 %706
  %708 = load i8, ptr %707, align 1, !tbaa !15
  %709 = zext i8 %708 to i32
  %710 = sub nsw i32 %702, %709
  %711 = sext i32 %710 to i64
  %712 = getelementptr inbounds i8, ptr %695, i64 %711
  %713 = load i8, ptr %712, align 1, !tbaa !15
  %714 = load ptr, ptr %17, align 8, !tbaa !5
  %715 = load i32, ptr %18, align 4, !tbaa !14
  %716 = add nsw i32 %715, 5
  %717 = sext i32 %716 to i64
  %718 = getelementptr inbounds i8, ptr %714, i64 %717
  store i8 %713, ptr %718, align 1, !tbaa !15
  %719 = load ptr, ptr %14, align 8, !tbaa !5
  %720 = load i32, ptr %18, align 4, !tbaa !14
  %721 = add nsw i32 %720, 6
  %722 = sext i32 %721 to i64
  %723 = getelementptr inbounds i8, ptr %719, i64 %722
  %724 = load i8, ptr %723, align 1, !tbaa !15
  %725 = zext i8 %724 to i64
  %726 = getelementptr inbounds [256 x i8], ptr @r_to_y, i64 0, i64 %725
  %727 = load i8, ptr %726, align 1, !tbaa !15
  %728 = zext i8 %727 to i32
  %729 = load ptr, ptr %13, align 8, !tbaa !5
  %730 = load i32, ptr %18, align 4, !tbaa !14
  %731 = add nsw i32 %730, 6
  %732 = sext i32 %731 to i64
  %733 = getelementptr inbounds i8, ptr %729, i64 %732
  %734 = load i8, ptr %733, align 1, !tbaa !15
  %735 = zext i8 %734 to i64
  %736 = getelementptr inbounds [256 x i8], ptr @g_to_y, i64 0, i64 %735
  %737 = load i8, ptr %736, align 1, !tbaa !15
  %738 = zext i8 %737 to i32
  %739 = add nsw i32 %728, %738
  %740 = load ptr, ptr %12, align 8, !tbaa !5
  %741 = load i32, ptr %18, align 4, !tbaa !14
  %742 = add nsw i32 %741, 6
  %743 = sext i32 %742 to i64
  %744 = getelementptr inbounds i8, ptr %740, i64 %743
  %745 = load i8, ptr %744, align 1, !tbaa !15
  %746 = zext i8 %745 to i64
  %747 = getelementptr inbounds [256 x i8], ptr @b_to_y, i64 0, i64 %746
  %748 = load i8, ptr %747, align 1, !tbaa !15
  %749 = zext i8 %748 to i32
  %750 = add nsw i32 %739, %749
  %751 = trunc i32 %750 to i8
  %752 = load ptr, ptr %15, align 8, !tbaa !5
  %753 = load i32, ptr %18, align 4, !tbaa !14
  %754 = add nsw i32 %753, 6
  %755 = sext i32 %754 to i64
  %756 = getelementptr inbounds i8, ptr %752, i64 %755
  store i8 %751, ptr %756, align 1, !tbaa !15
  %757 = load ptr, ptr %10, align 8, !tbaa !5
  %758 = load ptr, ptr %12, align 8, !tbaa !5
  %759 = load i32, ptr %18, align 4, !tbaa !14
  %760 = add nsw i32 %759, 6
  %761 = sext i32 %760 to i64
  %762 = getelementptr inbounds i8, ptr %758, i64 %761
  %763 = load i8, ptr %762, align 1, !tbaa !15
  %764 = zext i8 %763 to i32
  %765 = load ptr, ptr %15, align 8, !tbaa !5
  %766 = load i32, ptr %18, align 4, !tbaa !14
  %767 = add nsw i32 %766, 6
  %768 = sext i32 %767 to i64
  %769 = getelementptr inbounds i8, ptr %765, i64 %768
  %770 = load i8, ptr %769, align 1, !tbaa !15
  %771 = zext i8 %770 to i32
  %772 = sub nsw i32 %764, %771
  %773 = sext i32 %772 to i64
  %774 = getelementptr inbounds i8, ptr %757, i64 %773
  %775 = load i8, ptr %774, align 1, !tbaa !15
  %776 = load ptr, ptr %16, align 8, !tbaa !5
  %777 = load i32, ptr %18, align 4, !tbaa !14
  %778 = add nsw i32 %777, 6
  %779 = sext i32 %778 to i64
  %780 = getelementptr inbounds i8, ptr %776, i64 %779
  store i8 %775, ptr %780, align 1, !tbaa !15
  %781 = load ptr, ptr %9, align 8, !tbaa !5
  %782 = load ptr, ptr %14, align 8, !tbaa !5
  %783 = load i32, ptr %18, align 4, !tbaa !14
  %784 = add nsw i32 %783, 6
  %785 = sext i32 %784 to i64
  %786 = getelementptr inbounds i8, ptr %782, i64 %785
  %787 = load i8, ptr %786, align 1, !tbaa !15
  %788 = zext i8 %787 to i32
  %789 = load ptr, ptr %15, align 8, !tbaa !5
  %790 = load i32, ptr %18, align 4, !tbaa !14
  %791 = add nsw i32 %790, 6
  %792 = sext i32 %791 to i64
  %793 = getelementptr inbounds i8, ptr %789, i64 %792
  %794 = load i8, ptr %793, align 1, !tbaa !15
  %795 = zext i8 %794 to i32
  %796 = sub nsw i32 %788, %795
  %797 = sext i32 %796 to i64
  %798 = getelementptr inbounds i8, ptr %781, i64 %797
  %799 = load i8, ptr %798, align 1, !tbaa !15
  %800 = load ptr, ptr %17, align 8, !tbaa !5
  %801 = load i32, ptr %18, align 4, !tbaa !14
  %802 = add nsw i32 %801, 6
  %803 = sext i32 %802 to i64
  %804 = getelementptr inbounds i8, ptr %800, i64 %803
  store i8 %799, ptr %804, align 1, !tbaa !15
  %805 = load ptr, ptr %14, align 8, !tbaa !5
  %806 = load i32, ptr %18, align 4, !tbaa !14
  %807 = add nsw i32 %806, 7
  %808 = sext i32 %807 to i64
  %809 = getelementptr inbounds i8, ptr %805, i64 %808
  %810 = load i8, ptr %809, align 1, !tbaa !15
  %811 = zext i8 %810 to i64
  %812 = getelementptr inbounds [256 x i8], ptr @r_to_y, i64 0, i64 %811
  %813 = load i8, ptr %812, align 1, !tbaa !15
  %814 = zext i8 %813 to i32
  %815 = load ptr, ptr %13, align 8, !tbaa !5
  %816 = load i32, ptr %18, align 4, !tbaa !14
  %817 = add nsw i32 %816, 7
  %818 = sext i32 %817 to i64
  %819 = getelementptr inbounds i8, ptr %815, i64 %818
  %820 = load i8, ptr %819, align 1, !tbaa !15
  %821 = zext i8 %820 to i64
  %822 = getelementptr inbounds [256 x i8], ptr @g_to_y, i64 0, i64 %821
  %823 = load i8, ptr %822, align 1, !tbaa !15
  %824 = zext i8 %823 to i32
  %825 = add nsw i32 %814, %824
  %826 = load ptr, ptr %12, align 8, !tbaa !5
  %827 = load i32, ptr %18, align 4, !tbaa !14
  %828 = add nsw i32 %827, 7
  %829 = sext i32 %828 to i64
  %830 = getelementptr inbounds i8, ptr %826, i64 %829
  %831 = load i8, ptr %830, align 1, !tbaa !15
  %832 = zext i8 %831 to i64
  %833 = getelementptr inbounds [256 x i8], ptr @b_to_y, i64 0, i64 %832
  %834 = load i8, ptr %833, align 1, !tbaa !15
  %835 = zext i8 %834 to i32
  %836 = add nsw i32 %825, %835
  %837 = trunc i32 %836 to i8
  %838 = load ptr, ptr %15, align 8, !tbaa !5
  %839 = load i32, ptr %18, align 4, !tbaa !14
  %840 = add nsw i32 %839, 7
  %841 = sext i32 %840 to i64
  %842 = getelementptr inbounds i8, ptr %838, i64 %841
  store i8 %837, ptr %842, align 1, !tbaa !15
  %843 = load ptr, ptr %10, align 8, !tbaa !5
  %844 = load ptr, ptr %12, align 8, !tbaa !5
  %845 = load i32, ptr %18, align 4, !tbaa !14
  %846 = add nsw i32 %845, 7
  %847 = sext i32 %846 to i64
  %848 = getelementptr inbounds i8, ptr %844, i64 %847
  %849 = load i8, ptr %848, align 1, !tbaa !15
  %850 = zext i8 %849 to i32
  %851 = load ptr, ptr %15, align 8, !tbaa !5
  %852 = load i32, ptr %18, align 4, !tbaa !14
  %853 = add nsw i32 %852, 7
  %854 = sext i32 %853 to i64
  %855 = getelementptr inbounds i8, ptr %851, i64 %854
  %856 = load i8, ptr %855, align 1, !tbaa !15
  %857 = zext i8 %856 to i32
  %858 = sub nsw i32 %850, %857
  %859 = sext i32 %858 to i64
  %860 = getelementptr inbounds i8, ptr %843, i64 %859
  %861 = load i8, ptr %860, align 1, !tbaa !15
  %862 = load ptr, ptr %16, align 8, !tbaa !5
  %863 = load i32, ptr %18, align 4, !tbaa !14
  %864 = add nsw i32 %863, 7
  %865 = sext i32 %864 to i64
  %866 = getelementptr inbounds i8, ptr %862, i64 %865
  store i8 %861, ptr %866, align 1, !tbaa !15
  %867 = load ptr, ptr %9, align 8, !tbaa !5
  %868 = load ptr, ptr %14, align 8, !tbaa !5
  %869 = load i32, ptr %18, align 4, !tbaa !14
  %870 = add nsw i32 %869, 7
  %871 = sext i32 %870 to i64
  %872 = getelementptr inbounds i8, ptr %868, i64 %871
  %873 = load i8, ptr %872, align 1, !tbaa !15
  %874 = zext i8 %873 to i32
  %875 = load ptr, ptr %15, align 8, !tbaa !5
  %876 = load i32, ptr %18, align 4, !tbaa !14
  %877 = add nsw i32 %876, 7
  %878 = sext i32 %877 to i64
  %879 = getelementptr inbounds i8, ptr %875, i64 %878
  %880 = load i8, ptr %879, align 1, !tbaa !15
  %881 = zext i8 %880 to i32
  %882 = sub nsw i32 %874, %881
  %883 = sext i32 %882 to i64
  %884 = getelementptr inbounds i8, ptr %867, i64 %883
  %885 = load i8, ptr %884, align 1, !tbaa !15
  %886 = load ptr, ptr %17, align 8, !tbaa !5
  %887 = load i32, ptr %18, align 4, !tbaa !14
  %888 = add nsw i32 %887, 7
  %889 = sext i32 %888 to i64
  %890 = getelementptr inbounds i8, ptr %886, i64 %889
  store i8 %885, ptr %890, align 1, !tbaa !15
  %891 = load ptr, ptr %14, align 8, !tbaa !5
  %892 = load i32, ptr %18, align 4, !tbaa !14
  %893 = add nsw i32 %892, 8
  %894 = sext i32 %893 to i64
  %895 = getelementptr inbounds i8, ptr %891, i64 %894
  %896 = load i8, ptr %895, align 1, !tbaa !15
  %897 = zext i8 %896 to i64
  %898 = getelementptr inbounds [256 x i8], ptr @r_to_y, i64 0, i64 %897
  %899 = load i8, ptr %898, align 1, !tbaa !15
  %900 = zext i8 %899 to i32
  %901 = load ptr, ptr %13, align 8, !tbaa !5
  %902 = load i32, ptr %18, align 4, !tbaa !14
  %903 = add nsw i32 %902, 8
  %904 = sext i32 %903 to i64
  %905 = getelementptr inbounds i8, ptr %901, i64 %904
  %906 = load i8, ptr %905, align 1, !tbaa !15
  %907 = zext i8 %906 to i64
  %908 = getelementptr inbounds [256 x i8], ptr @g_to_y, i64 0, i64 %907
  %909 = load i8, ptr %908, align 1, !tbaa !15
  %910 = zext i8 %909 to i32
  %911 = add nsw i32 %900, %910
  %912 = load ptr, ptr %12, align 8, !tbaa !5
  %913 = load i32, ptr %18, align 4, !tbaa !14
  %914 = add nsw i32 %913, 8
  %915 = sext i32 %914 to i64
  %916 = getelementptr inbounds i8, ptr %912, i64 %915
  %917 = load i8, ptr %916, align 1, !tbaa !15
  %918 = zext i8 %917 to i64
  %919 = getelementptr inbounds [256 x i8], ptr @b_to_y, i64 0, i64 %918
  %920 = load i8, ptr %919, align 1, !tbaa !15
  %921 = zext i8 %920 to i32
  %922 = add nsw i32 %911, %921
  %923 = trunc i32 %922 to i8
  %924 = load ptr, ptr %15, align 8, !tbaa !5
  %925 = load i32, ptr %18, align 4, !tbaa !14
  %926 = add nsw i32 %925, 8
  %927 = sext i32 %926 to i64
  %928 = getelementptr inbounds i8, ptr %924, i64 %927
  store i8 %923, ptr %928, align 1, !tbaa !15
  %929 = load ptr, ptr %10, align 8, !tbaa !5
  %930 = load ptr, ptr %12, align 8, !tbaa !5
  %931 = load i32, ptr %18, align 4, !tbaa !14
  %932 = add nsw i32 %931, 8
  %933 = sext i32 %932 to i64
  %934 = getelementptr inbounds i8, ptr %930, i64 %933
  %935 = load i8, ptr %934, align 1, !tbaa !15
  %936 = zext i8 %935 to i32
  %937 = load ptr, ptr %15, align 8, !tbaa !5
  %938 = load i32, ptr %18, align 4, !tbaa !14
  %939 = add nsw i32 %938, 8
  %940 = sext i32 %939 to i64
  %941 = getelementptr inbounds i8, ptr %937, i64 %940
  %942 = load i8, ptr %941, align 1, !tbaa !15
  %943 = zext i8 %942 to i32
  %944 = sub nsw i32 %936, %943
  %945 = sext i32 %944 to i64
  %946 = getelementptr inbounds i8, ptr %929, i64 %945
  %947 = load i8, ptr %946, align 1, !tbaa !15
  %948 = load ptr, ptr %16, align 8, !tbaa !5
  %949 = load i32, ptr %18, align 4, !tbaa !14
  %950 = add nsw i32 %949, 8
  %951 = sext i32 %950 to i64
  %952 = getelementptr inbounds i8, ptr %948, i64 %951
  store i8 %947, ptr %952, align 1, !tbaa !15
  %953 = load ptr, ptr %9, align 8, !tbaa !5
  %954 = load ptr, ptr %14, align 8, !tbaa !5
  %955 = load i32, ptr %18, align 4, !tbaa !14
  %956 = add nsw i32 %955, 8
  %957 = sext i32 %956 to i64
  %958 = getelementptr inbounds i8, ptr %954, i64 %957
  %959 = load i8, ptr %958, align 1, !tbaa !15
  %960 = zext i8 %959 to i32
  %961 = load ptr, ptr %15, align 8, !tbaa !5
  %962 = load i32, ptr %18, align 4, !tbaa !14
  %963 = add nsw i32 %962, 8
  %964 = sext i32 %963 to i64
  %965 = getelementptr inbounds i8, ptr %961, i64 %964
  %966 = load i8, ptr %965, align 1, !tbaa !15
  %967 = zext i8 %966 to i32
  %968 = sub nsw i32 %960, %967
  %969 = sext i32 %968 to i64
  %970 = getelementptr inbounds i8, ptr %953, i64 %969
  %971 = load i8, ptr %970, align 1, !tbaa !15
  %972 = load ptr, ptr %17, align 8, !tbaa !5
  %973 = load i32, ptr %18, align 4, !tbaa !14
  %974 = add nsw i32 %973, 8
  %975 = sext i32 %974 to i64
  %976 = getelementptr inbounds i8, ptr %972, i64 %975
  store i8 %971, ptr %976, align 1, !tbaa !15
  %977 = load ptr, ptr %14, align 8, !tbaa !5
  %978 = load i32, ptr %18, align 4, !tbaa !14
  %979 = add nsw i32 %978, 9
  %980 = sext i32 %979 to i64
  %981 = getelementptr inbounds i8, ptr %977, i64 %980
  %982 = load i8, ptr %981, align 1, !tbaa !15
  %983 = zext i8 %982 to i64
  %984 = getelementptr inbounds [256 x i8], ptr @r_to_y, i64 0, i64 %983
  %985 = load i8, ptr %984, align 1, !tbaa !15
  %986 = zext i8 %985 to i32
  %987 = load ptr, ptr %13, align 8, !tbaa !5
  %988 = load i32, ptr %18, align 4, !tbaa !14
  %989 = add nsw i32 %988, 9
  %990 = sext i32 %989 to i64
  %991 = getelementptr inbounds i8, ptr %987, i64 %990
  %992 = load i8, ptr %991, align 1, !tbaa !15
  %993 = zext i8 %992 to i64
  %994 = getelementptr inbounds [256 x i8], ptr @g_to_y, i64 0, i64 %993
  %995 = load i8, ptr %994, align 1, !tbaa !15
  %996 = zext i8 %995 to i32
  %997 = add nsw i32 %986, %996
  %998 = load ptr, ptr %12, align 8, !tbaa !5
  %999 = load i32, ptr %18, align 4, !tbaa !14
  %1000 = add nsw i32 %999, 9
  %1001 = sext i32 %1000 to i64
  %1002 = getelementptr inbounds i8, ptr %998, i64 %1001
  %1003 = load i8, ptr %1002, align 1, !tbaa !15
  %1004 = zext i8 %1003 to i64
  %1005 = getelementptr inbounds [256 x i8], ptr @b_to_y, i64 0, i64 %1004
  %1006 = load i8, ptr %1005, align 1, !tbaa !15
  %1007 = zext i8 %1006 to i32
  %1008 = add nsw i32 %997, %1007
  %1009 = trunc i32 %1008 to i8
  %1010 = load ptr, ptr %15, align 8, !tbaa !5
  %1011 = load i32, ptr %18, align 4, !tbaa !14
  %1012 = add nsw i32 %1011, 9
  %1013 = sext i32 %1012 to i64
  %1014 = getelementptr inbounds i8, ptr %1010, i64 %1013
  store i8 %1009, ptr %1014, align 1, !tbaa !15
  %1015 = load ptr, ptr %10, align 8, !tbaa !5
  %1016 = load ptr, ptr %12, align 8, !tbaa !5
  %1017 = load i32, ptr %18, align 4, !tbaa !14
  %1018 = add nsw i32 %1017, 9
  %1019 = sext i32 %1018 to i64
  %1020 = getelementptr inbounds i8, ptr %1016, i64 %1019
  %1021 = load i8, ptr %1020, align 1, !tbaa !15
  %1022 = zext i8 %1021 to i32
  %1023 = load ptr, ptr %15, align 8, !tbaa !5
  %1024 = load i32, ptr %18, align 4, !tbaa !14
  %1025 = add nsw i32 %1024, 9
  %1026 = sext i32 %1025 to i64
  %1027 = getelementptr inbounds i8, ptr %1023, i64 %1026
  %1028 = load i8, ptr %1027, align 1, !tbaa !15
  %1029 = zext i8 %1028 to i32
  %1030 = sub nsw i32 %1022, %1029
  %1031 = sext i32 %1030 to i64
  %1032 = getelementptr inbounds i8, ptr %1015, i64 %1031
  %1033 = load i8, ptr %1032, align 1, !tbaa !15
  %1034 = load ptr, ptr %16, align 8, !tbaa !5
  %1035 = load i32, ptr %18, align 4, !tbaa !14
  %1036 = add nsw i32 %1035, 9
  %1037 = sext i32 %1036 to i64
  %1038 = getelementptr inbounds i8, ptr %1034, i64 %1037
  store i8 %1033, ptr %1038, align 1, !tbaa !15
  %1039 = load ptr, ptr %9, align 8, !tbaa !5
  %1040 = load ptr, ptr %14, align 8, !tbaa !5
  %1041 = load i32, ptr %18, align 4, !tbaa !14
  %1042 = add nsw i32 %1041, 9
  %1043 = sext i32 %1042 to i64
  %1044 = getelementptr inbounds i8, ptr %1040, i64 %1043
  %1045 = load i8, ptr %1044, align 1, !tbaa !15
  %1046 = zext i8 %1045 to i32
  %1047 = load ptr, ptr %15, align 8, !tbaa !5
  %1048 = load i32, ptr %18, align 4, !tbaa !14
  %1049 = add nsw i32 %1048, 9
  %1050 = sext i32 %1049 to i64
  %1051 = getelementptr inbounds i8, ptr %1047, i64 %1050
  %1052 = load i8, ptr %1051, align 1, !tbaa !15
  %1053 = zext i8 %1052 to i32
  %1054 = sub nsw i32 %1046, %1053
  %1055 = sext i32 %1054 to i64
  %1056 = getelementptr inbounds i8, ptr %1039, i64 %1055
  %1057 = load i8, ptr %1056, align 1, !tbaa !15
  %1058 = load ptr, ptr %17, align 8, !tbaa !5
  %1059 = load i32, ptr %18, align 4, !tbaa !14
  %1060 = add nsw i32 %1059, 9
  %1061 = sext i32 %1060 to i64
  %1062 = getelementptr inbounds i8, ptr %1058, i64 %1061
  store i8 %1057, ptr %1062, align 1, !tbaa !15
  %1063 = load ptr, ptr %14, align 8, !tbaa !5
  %1064 = load i32, ptr %18, align 4, !tbaa !14
  %1065 = add nsw i32 %1064, 10
  %1066 = sext i32 %1065 to i64
  %1067 = getelementptr inbounds i8, ptr %1063, i64 %1066
  %1068 = load i8, ptr %1067, align 1, !tbaa !15
  %1069 = zext i8 %1068 to i64
  %1070 = getelementptr inbounds [256 x i8], ptr @r_to_y, i64 0, i64 %1069
  %1071 = load i8, ptr %1070, align 1, !tbaa !15
  %1072 = zext i8 %1071 to i32
  %1073 = load ptr, ptr %13, align 8, !tbaa !5
  %1074 = load i32, ptr %18, align 4, !tbaa !14
  %1075 = add nsw i32 %1074, 10
  %1076 = sext i32 %1075 to i64
  %1077 = getelementptr inbounds i8, ptr %1073, i64 %1076
  %1078 = load i8, ptr %1077, align 1, !tbaa !15
  %1079 = zext i8 %1078 to i64
  %1080 = getelementptr inbounds [256 x i8], ptr @g_to_y, i64 0, i64 %1079
  %1081 = load i8, ptr %1080, align 1, !tbaa !15
  %1082 = zext i8 %1081 to i32
  %1083 = add nsw i32 %1072, %1082
  %1084 = load ptr, ptr %12, align 8, !tbaa !5
  %1085 = load i32, ptr %18, align 4, !tbaa !14
  %1086 = add nsw i32 %1085, 10
  %1087 = sext i32 %1086 to i64
  %1088 = getelementptr inbounds i8, ptr %1084, i64 %1087
  %1089 = load i8, ptr %1088, align 1, !tbaa !15
  %1090 = zext i8 %1089 to i64
  %1091 = getelementptr inbounds [256 x i8], ptr @b_to_y, i64 0, i64 %1090
  %1092 = load i8, ptr %1091, align 1, !tbaa !15
  %1093 = zext i8 %1092 to i32
  %1094 = add nsw i32 %1083, %1093
  %1095 = trunc i32 %1094 to i8
  %1096 = load ptr, ptr %15, align 8, !tbaa !5
  %1097 = load i32, ptr %18, align 4, !tbaa !14
  %1098 = add nsw i32 %1097, 10
  %1099 = sext i32 %1098 to i64
  %1100 = getelementptr inbounds i8, ptr %1096, i64 %1099
  store i8 %1095, ptr %1100, align 1, !tbaa !15
  %1101 = load ptr, ptr %10, align 8, !tbaa !5
  %1102 = load ptr, ptr %12, align 8, !tbaa !5
  %1103 = load i32, ptr %18, align 4, !tbaa !14
  %1104 = add nsw i32 %1103, 10
  %1105 = sext i32 %1104 to i64
  %1106 = getelementptr inbounds i8, ptr %1102, i64 %1105
  %1107 = load i8, ptr %1106, align 1, !tbaa !15
  %1108 = zext i8 %1107 to i32
  %1109 = load ptr, ptr %15, align 8, !tbaa !5
  %1110 = load i32, ptr %18, align 4, !tbaa !14
  %1111 = add nsw i32 %1110, 10
  %1112 = sext i32 %1111 to i64
  %1113 = getelementptr inbounds i8, ptr %1109, i64 %1112
  %1114 = load i8, ptr %1113, align 1, !tbaa !15
  %1115 = zext i8 %1114 to i32
  %1116 = sub nsw i32 %1108, %1115
  %1117 = sext i32 %1116 to i64
  %1118 = getelementptr inbounds i8, ptr %1101, i64 %1117
  %1119 = load i8, ptr %1118, align 1, !tbaa !15
  %1120 = load ptr, ptr %16, align 8, !tbaa !5
  %1121 = load i32, ptr %18, align 4, !tbaa !14
  %1122 = add nsw i32 %1121, 10
  %1123 = sext i32 %1122 to i64
  %1124 = getelementptr inbounds i8, ptr %1120, i64 %1123
  store i8 %1119, ptr %1124, align 1, !tbaa !15
  %1125 = load ptr, ptr %9, align 8, !tbaa !5
  %1126 = load ptr, ptr %14, align 8, !tbaa !5
  %1127 = load i32, ptr %18, align 4, !tbaa !14
  %1128 = add nsw i32 %1127, 10
  %1129 = sext i32 %1128 to i64
  %1130 = getelementptr inbounds i8, ptr %1126, i64 %1129
  %1131 = load i8, ptr %1130, align 1, !tbaa !15
  %1132 = zext i8 %1131 to i32
  %1133 = load ptr, ptr %15, align 8, !tbaa !5
  %1134 = load i32, ptr %18, align 4, !tbaa !14
  %1135 = add nsw i32 %1134, 10
  %1136 = sext i32 %1135 to i64
  %1137 = getelementptr inbounds i8, ptr %1133, i64 %1136
  %1138 = load i8, ptr %1137, align 1, !tbaa !15
  %1139 = zext i8 %1138 to i32
  %1140 = sub nsw i32 %1132, %1139
  %1141 = sext i32 %1140 to i64
  %1142 = getelementptr inbounds i8, ptr %1125, i64 %1141
  %1143 = load i8, ptr %1142, align 1, !tbaa !15
  %1144 = load ptr, ptr %17, align 8, !tbaa !5
  %1145 = load i32, ptr %18, align 4, !tbaa !14
  %1146 = add nsw i32 %1145, 10
  %1147 = sext i32 %1146 to i64
  %1148 = getelementptr inbounds i8, ptr %1144, i64 %1147
  store i8 %1143, ptr %1148, align 1, !tbaa !15
  %1149 = load ptr, ptr %14, align 8, !tbaa !5
  %1150 = load i32, ptr %18, align 4, !tbaa !14
  %1151 = add nsw i32 %1150, 11
  %1152 = sext i32 %1151 to i64
  %1153 = getelementptr inbounds i8, ptr %1149, i64 %1152
  %1154 = load i8, ptr %1153, align 1, !tbaa !15
  %1155 = zext i8 %1154 to i64
  %1156 = getelementptr inbounds [256 x i8], ptr @r_to_y, i64 0, i64 %1155
  %1157 = load i8, ptr %1156, align 1, !tbaa !15
  %1158 = zext i8 %1157 to i32
  %1159 = load ptr, ptr %13, align 8, !tbaa !5
  %1160 = load i32, ptr %18, align 4, !tbaa !14
  %1161 = add nsw i32 %1160, 11
  %1162 = sext i32 %1161 to i64
  %1163 = getelementptr inbounds i8, ptr %1159, i64 %1162
  %1164 = load i8, ptr %1163, align 1, !tbaa !15
  %1165 = zext i8 %1164 to i64
  %1166 = getelementptr inbounds [256 x i8], ptr @g_to_y, i64 0, i64 %1165
  %1167 = load i8, ptr %1166, align 1, !tbaa !15
  %1168 = zext i8 %1167 to i32
  %1169 = add nsw i32 %1158, %1168
  %1170 = load ptr, ptr %12, align 8, !tbaa !5
  %1171 = load i32, ptr %18, align 4, !tbaa !14
  %1172 = add nsw i32 %1171, 11
  %1173 = sext i32 %1172 to i64
  %1174 = getelementptr inbounds i8, ptr %1170, i64 %1173
  %1175 = load i8, ptr %1174, align 1, !tbaa !15
  %1176 = zext i8 %1175 to i64
  %1177 = getelementptr inbounds [256 x i8], ptr @b_to_y, i64 0, i64 %1176
  %1178 = load i8, ptr %1177, align 1, !tbaa !15
  %1179 = zext i8 %1178 to i32
  %1180 = add nsw i32 %1169, %1179
  %1181 = trunc i32 %1180 to i8
  %1182 = load ptr, ptr %15, align 8, !tbaa !5
  %1183 = load i32, ptr %18, align 4, !tbaa !14
  %1184 = add nsw i32 %1183, 11
  %1185 = sext i32 %1184 to i64
  %1186 = getelementptr inbounds i8, ptr %1182, i64 %1185
  store i8 %1181, ptr %1186, align 1, !tbaa !15
  %1187 = load ptr, ptr %10, align 8, !tbaa !5
  %1188 = load ptr, ptr %12, align 8, !tbaa !5
  %1189 = load i32, ptr %18, align 4, !tbaa !14
  %1190 = add nsw i32 %1189, 11
  %1191 = sext i32 %1190 to i64
  %1192 = getelementptr inbounds i8, ptr %1188, i64 %1191
  %1193 = load i8, ptr %1192, align 1, !tbaa !15
  %1194 = zext i8 %1193 to i32
  %1195 = load ptr, ptr %15, align 8, !tbaa !5
  %1196 = load i32, ptr %18, align 4, !tbaa !14
  %1197 = add nsw i32 %1196, 11
  %1198 = sext i32 %1197 to i64
  %1199 = getelementptr inbounds i8, ptr %1195, i64 %1198
  %1200 = load i8, ptr %1199, align 1, !tbaa !15
  %1201 = zext i8 %1200 to i32
  %1202 = sub nsw i32 %1194, %1201
  %1203 = sext i32 %1202 to i64
  %1204 = getelementptr inbounds i8, ptr %1187, i64 %1203
  %1205 = load i8, ptr %1204, align 1, !tbaa !15
  %1206 = load ptr, ptr %16, align 8, !tbaa !5
  %1207 = load i32, ptr %18, align 4, !tbaa !14
  %1208 = add nsw i32 %1207, 11
  %1209 = sext i32 %1208 to i64
  %1210 = getelementptr inbounds i8, ptr %1206, i64 %1209
  store i8 %1205, ptr %1210, align 1, !tbaa !15
  %1211 = load ptr, ptr %9, align 8, !tbaa !5
  %1212 = load ptr, ptr %14, align 8, !tbaa !5
  %1213 = load i32, ptr %18, align 4, !tbaa !14
  %1214 = add nsw i32 %1213, 11
  %1215 = sext i32 %1214 to i64
  %1216 = getelementptr inbounds i8, ptr %1212, i64 %1215
  %1217 = load i8, ptr %1216, align 1, !tbaa !15
  %1218 = zext i8 %1217 to i32
  %1219 = load ptr, ptr %15, align 8, !tbaa !5
  %1220 = load i32, ptr %18, align 4, !tbaa !14
  %1221 = add nsw i32 %1220, 11
  %1222 = sext i32 %1221 to i64
  %1223 = getelementptr inbounds i8, ptr %1219, i64 %1222
  %1224 = load i8, ptr %1223, align 1, !tbaa !15
  %1225 = zext i8 %1224 to i32
  %1226 = sub nsw i32 %1218, %1225
  %1227 = sext i32 %1226 to i64
  %1228 = getelementptr inbounds i8, ptr %1211, i64 %1227
  %1229 = load i8, ptr %1228, align 1, !tbaa !15
  %1230 = load ptr, ptr %17, align 8, !tbaa !5
  %1231 = load i32, ptr %18, align 4, !tbaa !14
  %1232 = add nsw i32 %1231, 11
  %1233 = sext i32 %1232 to i64
  %1234 = getelementptr inbounds i8, ptr %1230, i64 %1233
  store i8 %1229, ptr %1234, align 1, !tbaa !15
  %1235 = load ptr, ptr %14, align 8, !tbaa !5
  %1236 = load i32, ptr %18, align 4, !tbaa !14
  %1237 = add nsw i32 %1236, 12
  %1238 = sext i32 %1237 to i64
  %1239 = getelementptr inbounds i8, ptr %1235, i64 %1238
  %1240 = load i8, ptr %1239, align 1, !tbaa !15
  %1241 = zext i8 %1240 to i64
  %1242 = getelementptr inbounds [256 x i8], ptr @r_to_y, i64 0, i64 %1241
  %1243 = load i8, ptr %1242, align 1, !tbaa !15
  %1244 = zext i8 %1243 to i32
  %1245 = load ptr, ptr %13, align 8, !tbaa !5
  %1246 = load i32, ptr %18, align 4, !tbaa !14
  %1247 = add nsw i32 %1246, 12
  %1248 = sext i32 %1247 to i64
  %1249 = getelementptr inbounds i8, ptr %1245, i64 %1248
  %1250 = load i8, ptr %1249, align 1, !tbaa !15
  %1251 = zext i8 %1250 to i64
  %1252 = getelementptr inbounds [256 x i8], ptr @g_to_y, i64 0, i64 %1251
  %1253 = load i8, ptr %1252, align 1, !tbaa !15
  %1254 = zext i8 %1253 to i32
  %1255 = add nsw i32 %1244, %1254
  %1256 = load ptr, ptr %12, align 8, !tbaa !5
  %1257 = load i32, ptr %18, align 4, !tbaa !14
  %1258 = add nsw i32 %1257, 12
  %1259 = sext i32 %1258 to i64
  %1260 = getelementptr inbounds i8, ptr %1256, i64 %1259
  %1261 = load i8, ptr %1260, align 1, !tbaa !15
  %1262 = zext i8 %1261 to i64
  %1263 = getelementptr inbounds [256 x i8], ptr @b_to_y, i64 0, i64 %1262
  %1264 = load i8, ptr %1263, align 1, !tbaa !15
  %1265 = zext i8 %1264 to i32
  %1266 = add nsw i32 %1255, %1265
  %1267 = trunc i32 %1266 to i8
  %1268 = load ptr, ptr %15, align 8, !tbaa !5
  %1269 = load i32, ptr %18, align 4, !tbaa !14
  %1270 = add nsw i32 %1269, 12
  %1271 = sext i32 %1270 to i64
  %1272 = getelementptr inbounds i8, ptr %1268, i64 %1271
  store i8 %1267, ptr %1272, align 1, !tbaa !15
  %1273 = load ptr, ptr %10, align 8, !tbaa !5
  %1274 = load ptr, ptr %12, align 8, !tbaa !5
  %1275 = load i32, ptr %18, align 4, !tbaa !14
  %1276 = add nsw i32 %1275, 12
  %1277 = sext i32 %1276 to i64
  %1278 = getelementptr inbounds i8, ptr %1274, i64 %1277
  %1279 = load i8, ptr %1278, align 1, !tbaa !15
  %1280 = zext i8 %1279 to i32
  %1281 = load ptr, ptr %15, align 8, !tbaa !5
  %1282 = load i32, ptr %18, align 4, !tbaa !14
  %1283 = add nsw i32 %1282, 12
  %1284 = sext i32 %1283 to i64
  %1285 = getelementptr inbounds i8, ptr %1281, i64 %1284
  %1286 = load i8, ptr %1285, align 1, !tbaa !15
  %1287 = zext i8 %1286 to i32
  %1288 = sub nsw i32 %1280, %1287
  %1289 = sext i32 %1288 to i64
  %1290 = getelementptr inbounds i8, ptr %1273, i64 %1289
  %1291 = load i8, ptr %1290, align 1, !tbaa !15
  %1292 = load ptr, ptr %16, align 8, !tbaa !5
  %1293 = load i32, ptr %18, align 4, !tbaa !14
  %1294 = add nsw i32 %1293, 12
  %1295 = sext i32 %1294 to i64
  %1296 = getelementptr inbounds i8, ptr %1292, i64 %1295
  store i8 %1291, ptr %1296, align 1, !tbaa !15
  %1297 = load ptr, ptr %9, align 8, !tbaa !5
  %1298 = load ptr, ptr %14, align 8, !tbaa !5
  %1299 = load i32, ptr %18, align 4, !tbaa !14
  %1300 = add nsw i32 %1299, 12
  %1301 = sext i32 %1300 to i64
  %1302 = getelementptr inbounds i8, ptr %1298, i64 %1301
  %1303 = load i8, ptr %1302, align 1, !tbaa !15
  %1304 = zext i8 %1303 to i32
  %1305 = load ptr, ptr %15, align 8, !tbaa !5
  %1306 = load i32, ptr %18, align 4, !tbaa !14
  %1307 = add nsw i32 %1306, 12
  %1308 = sext i32 %1307 to i64
  %1309 = getelementptr inbounds i8, ptr %1305, i64 %1308
  %1310 = load i8, ptr %1309, align 1, !tbaa !15
  %1311 = zext i8 %1310 to i32
  %1312 = sub nsw i32 %1304, %1311
  %1313 = sext i32 %1312 to i64
  %1314 = getelementptr inbounds i8, ptr %1297, i64 %1313
  %1315 = load i8, ptr %1314, align 1, !tbaa !15
  %1316 = load ptr, ptr %17, align 8, !tbaa !5
  %1317 = load i32, ptr %18, align 4, !tbaa !14
  %1318 = add nsw i32 %1317, 12
  %1319 = sext i32 %1318 to i64
  %1320 = getelementptr inbounds i8, ptr %1316, i64 %1319
  store i8 %1315, ptr %1320, align 1, !tbaa !15
  %1321 = load ptr, ptr %14, align 8, !tbaa !5
  %1322 = load i32, ptr %18, align 4, !tbaa !14
  %1323 = add nsw i32 %1322, 13
  %1324 = sext i32 %1323 to i64
  %1325 = getelementptr inbounds i8, ptr %1321, i64 %1324
  %1326 = load i8, ptr %1325, align 1, !tbaa !15
  %1327 = zext i8 %1326 to i64
  %1328 = getelementptr inbounds [256 x i8], ptr @r_to_y, i64 0, i64 %1327
  %1329 = load i8, ptr %1328, align 1, !tbaa !15
  %1330 = zext i8 %1329 to i32
  %1331 = load ptr, ptr %13, align 8, !tbaa !5
  %1332 = load i32, ptr %18, align 4, !tbaa !14
  %1333 = add nsw i32 %1332, 13
  %1334 = sext i32 %1333 to i64
  %1335 = getelementptr inbounds i8, ptr %1331, i64 %1334
  %1336 = load i8, ptr %1335, align 1, !tbaa !15
  %1337 = zext i8 %1336 to i64
  %1338 = getelementptr inbounds [256 x i8], ptr @g_to_y, i64 0, i64 %1337
  %1339 = load i8, ptr %1338, align 1, !tbaa !15
  %1340 = zext i8 %1339 to i32
  %1341 = add nsw i32 %1330, %1340
  %1342 = load ptr, ptr %12, align 8, !tbaa !5
  %1343 = load i32, ptr %18, align 4, !tbaa !14
  %1344 = add nsw i32 %1343, 13
  %1345 = sext i32 %1344 to i64
  %1346 = getelementptr inbounds i8, ptr %1342, i64 %1345
  %1347 = load i8, ptr %1346, align 1, !tbaa !15
  %1348 = zext i8 %1347 to i64
  %1349 = getelementptr inbounds [256 x i8], ptr @b_to_y, i64 0, i64 %1348
  %1350 = load i8, ptr %1349, align 1, !tbaa !15
  %1351 = zext i8 %1350 to i32
  %1352 = add nsw i32 %1341, %1351
  %1353 = trunc i32 %1352 to i8
  %1354 = load ptr, ptr %15, align 8, !tbaa !5
  %1355 = load i32, ptr %18, align 4, !tbaa !14
  %1356 = add nsw i32 %1355, 13
  %1357 = sext i32 %1356 to i64
  %1358 = getelementptr inbounds i8, ptr %1354, i64 %1357
  store i8 %1353, ptr %1358, align 1, !tbaa !15
  %1359 = load ptr, ptr %10, align 8, !tbaa !5
  %1360 = load ptr, ptr %12, align 8, !tbaa !5
  %1361 = load i32, ptr %18, align 4, !tbaa !14
  %1362 = add nsw i32 %1361, 13
  %1363 = sext i32 %1362 to i64
  %1364 = getelementptr inbounds i8, ptr %1360, i64 %1363
  %1365 = load i8, ptr %1364, align 1, !tbaa !15
  %1366 = zext i8 %1365 to i32
  %1367 = load ptr, ptr %15, align 8, !tbaa !5
  %1368 = load i32, ptr %18, align 4, !tbaa !14
  %1369 = add nsw i32 %1368, 13
  %1370 = sext i32 %1369 to i64
  %1371 = getelementptr inbounds i8, ptr %1367, i64 %1370
  %1372 = load i8, ptr %1371, align 1, !tbaa !15
  %1373 = zext i8 %1372 to i32
  %1374 = sub nsw i32 %1366, %1373
  %1375 = sext i32 %1374 to i64
  %1376 = getelementptr inbounds i8, ptr %1359, i64 %1375
  %1377 = load i8, ptr %1376, align 1, !tbaa !15
  %1378 = load ptr, ptr %16, align 8, !tbaa !5
  %1379 = load i32, ptr %18, align 4, !tbaa !14
  %1380 = add nsw i32 %1379, 13
  %1381 = sext i32 %1380 to i64
  %1382 = getelementptr inbounds i8, ptr %1378, i64 %1381
  store i8 %1377, ptr %1382, align 1, !tbaa !15
  %1383 = load ptr, ptr %9, align 8, !tbaa !5
  %1384 = load ptr, ptr %14, align 8, !tbaa !5
  %1385 = load i32, ptr %18, align 4, !tbaa !14
  %1386 = add nsw i32 %1385, 13
  %1387 = sext i32 %1386 to i64
  %1388 = getelementptr inbounds i8, ptr %1384, i64 %1387
  %1389 = load i8, ptr %1388, align 1, !tbaa !15
  %1390 = zext i8 %1389 to i32
  %1391 = load ptr, ptr %15, align 8, !tbaa !5
  %1392 = load i32, ptr %18, align 4, !tbaa !14
  %1393 = add nsw i32 %1392, 13
  %1394 = sext i32 %1393 to i64
  %1395 = getelementptr inbounds i8, ptr %1391, i64 %1394
  %1396 = load i8, ptr %1395, align 1, !tbaa !15
  %1397 = zext i8 %1396 to i32
  %1398 = sub nsw i32 %1390, %1397
  %1399 = sext i32 %1398 to i64
  %1400 = getelementptr inbounds i8, ptr %1383, i64 %1399
  %1401 = load i8, ptr %1400, align 1, !tbaa !15
  %1402 = load ptr, ptr %17, align 8, !tbaa !5
  %1403 = load i32, ptr %18, align 4, !tbaa !14
  %1404 = add nsw i32 %1403, 13
  %1405 = sext i32 %1404 to i64
  %1406 = getelementptr inbounds i8, ptr %1402, i64 %1405
  store i8 %1401, ptr %1406, align 1, !tbaa !15
  %1407 = load ptr, ptr %14, align 8, !tbaa !5
  %1408 = load i32, ptr %18, align 4, !tbaa !14
  %1409 = add nsw i32 %1408, 14
  %1410 = sext i32 %1409 to i64
  %1411 = getelementptr inbounds i8, ptr %1407, i64 %1410
  %1412 = load i8, ptr %1411, align 1, !tbaa !15
  %1413 = zext i8 %1412 to i64
  %1414 = getelementptr inbounds [256 x i8], ptr @r_to_y, i64 0, i64 %1413
  %1415 = load i8, ptr %1414, align 1, !tbaa !15
  %1416 = zext i8 %1415 to i32
  %1417 = load ptr, ptr %13, align 8, !tbaa !5
  %1418 = load i32, ptr %18, align 4, !tbaa !14
  %1419 = add nsw i32 %1418, 14
  %1420 = sext i32 %1419 to i64
  %1421 = getelementptr inbounds i8, ptr %1417, i64 %1420
  %1422 = load i8, ptr %1421, align 1, !tbaa !15
  %1423 = zext i8 %1422 to i64
  %1424 = getelementptr inbounds [256 x i8], ptr @g_to_y, i64 0, i64 %1423
  %1425 = load i8, ptr %1424, align 1, !tbaa !15
  %1426 = zext i8 %1425 to i32
  %1427 = add nsw i32 %1416, %1426
  %1428 = load ptr, ptr %12, align 8, !tbaa !5
  %1429 = load i32, ptr %18, align 4, !tbaa !14
  %1430 = add nsw i32 %1429, 14
  %1431 = sext i32 %1430 to i64
  %1432 = getelementptr inbounds i8, ptr %1428, i64 %1431
  %1433 = load i8, ptr %1432, align 1, !tbaa !15
  %1434 = zext i8 %1433 to i64
  %1435 = getelementptr inbounds [256 x i8], ptr @b_to_y, i64 0, i64 %1434
  %1436 = load i8, ptr %1435, align 1, !tbaa !15
  %1437 = zext i8 %1436 to i32
  %1438 = add nsw i32 %1427, %1437
  %1439 = trunc i32 %1438 to i8
  %1440 = load ptr, ptr %15, align 8, !tbaa !5
  %1441 = load i32, ptr %18, align 4, !tbaa !14
  %1442 = add nsw i32 %1441, 14
  %1443 = sext i32 %1442 to i64
  %1444 = getelementptr inbounds i8, ptr %1440, i64 %1443
  store i8 %1439, ptr %1444, align 1, !tbaa !15
  %1445 = load ptr, ptr %10, align 8, !tbaa !5
  %1446 = load ptr, ptr %12, align 8, !tbaa !5
  %1447 = load i32, ptr %18, align 4, !tbaa !14
  %1448 = add nsw i32 %1447, 14
  %1449 = sext i32 %1448 to i64
  %1450 = getelementptr inbounds i8, ptr %1446, i64 %1449
  %1451 = load i8, ptr %1450, align 1, !tbaa !15
  %1452 = zext i8 %1451 to i32
  %1453 = load ptr, ptr %15, align 8, !tbaa !5
  %1454 = load i32, ptr %18, align 4, !tbaa !14
  %1455 = add nsw i32 %1454, 14
  %1456 = sext i32 %1455 to i64
  %1457 = getelementptr inbounds i8, ptr %1453, i64 %1456
  %1458 = load i8, ptr %1457, align 1, !tbaa !15
  %1459 = zext i8 %1458 to i32
  %1460 = sub nsw i32 %1452, %1459
  %1461 = sext i32 %1460 to i64
  %1462 = getelementptr inbounds i8, ptr %1445, i64 %1461
  %1463 = load i8, ptr %1462, align 1, !tbaa !15
  %1464 = load ptr, ptr %16, align 8, !tbaa !5
  %1465 = load i32, ptr %18, align 4, !tbaa !14
  %1466 = add nsw i32 %1465, 14
  %1467 = sext i32 %1466 to i64
  %1468 = getelementptr inbounds i8, ptr %1464, i64 %1467
  store i8 %1463, ptr %1468, align 1, !tbaa !15
  %1469 = load ptr, ptr %9, align 8, !tbaa !5
  %1470 = load ptr, ptr %14, align 8, !tbaa !5
  %1471 = load i32, ptr %18, align 4, !tbaa !14
  %1472 = add nsw i32 %1471, 14
  %1473 = sext i32 %1472 to i64
  %1474 = getelementptr inbounds i8, ptr %1470, i64 %1473
  %1475 = load i8, ptr %1474, align 1, !tbaa !15
  %1476 = zext i8 %1475 to i32
  %1477 = load ptr, ptr %15, align 8, !tbaa !5
  %1478 = load i32, ptr %18, align 4, !tbaa !14
  %1479 = add nsw i32 %1478, 14
  %1480 = sext i32 %1479 to i64
  %1481 = getelementptr inbounds i8, ptr %1477, i64 %1480
  %1482 = load i8, ptr %1481, align 1, !tbaa !15
  %1483 = zext i8 %1482 to i32
  %1484 = sub nsw i32 %1476, %1483
  %1485 = sext i32 %1484 to i64
  %1486 = getelementptr inbounds i8, ptr %1469, i64 %1485
  %1487 = load i8, ptr %1486, align 1, !tbaa !15
  %1488 = load ptr, ptr %17, align 8, !tbaa !5
  %1489 = load i32, ptr %18, align 4, !tbaa !14
  %1490 = add nsw i32 %1489, 14
  %1491 = sext i32 %1490 to i64
  %1492 = getelementptr inbounds i8, ptr %1488, i64 %1491
  store i8 %1487, ptr %1492, align 1, !tbaa !15
  %1493 = load ptr, ptr %14, align 8, !tbaa !5
  %1494 = load i32, ptr %18, align 4, !tbaa !14
  %1495 = add nsw i32 %1494, 15
  %1496 = sext i32 %1495 to i64
  %1497 = getelementptr inbounds i8, ptr %1493, i64 %1496
  %1498 = load i8, ptr %1497, align 1, !tbaa !15
  %1499 = zext i8 %1498 to i64
  %1500 = getelementptr inbounds [256 x i8], ptr @r_to_y, i64 0, i64 %1499
  %1501 = load i8, ptr %1500, align 1, !tbaa !15
  %1502 = zext i8 %1501 to i32
  %1503 = load ptr, ptr %13, align 8, !tbaa !5
  %1504 = load i32, ptr %18, align 4, !tbaa !14
  %1505 = add nsw i32 %1504, 15
  %1506 = sext i32 %1505 to i64
  %1507 = getelementptr inbounds i8, ptr %1503, i64 %1506
  %1508 = load i8, ptr %1507, align 1, !tbaa !15
  %1509 = zext i8 %1508 to i64
  %1510 = getelementptr inbounds [256 x i8], ptr @g_to_y, i64 0, i64 %1509
  %1511 = load i8, ptr %1510, align 1, !tbaa !15
  %1512 = zext i8 %1511 to i32
  %1513 = add nsw i32 %1502, %1512
  %1514 = load ptr, ptr %12, align 8, !tbaa !5
  %1515 = load i32, ptr %18, align 4, !tbaa !14
  %1516 = add nsw i32 %1515, 15
  %1517 = sext i32 %1516 to i64
  %1518 = getelementptr inbounds i8, ptr %1514, i64 %1517
  %1519 = load i8, ptr %1518, align 1, !tbaa !15
  %1520 = zext i8 %1519 to i64
  %1521 = getelementptr inbounds [256 x i8], ptr @b_to_y, i64 0, i64 %1520
  %1522 = load i8, ptr %1521, align 1, !tbaa !15
  %1523 = zext i8 %1522 to i32
  %1524 = add nsw i32 %1513, %1523
  %1525 = trunc i32 %1524 to i8
  %1526 = load ptr, ptr %15, align 8, !tbaa !5
  %1527 = load i32, ptr %18, align 4, !tbaa !14
  %1528 = add nsw i32 %1527, 15
  %1529 = sext i32 %1528 to i64
  %1530 = getelementptr inbounds i8, ptr %1526, i64 %1529
  store i8 %1525, ptr %1530, align 1, !tbaa !15
  %1531 = load ptr, ptr %10, align 8, !tbaa !5
  %1532 = load ptr, ptr %12, align 8, !tbaa !5
  %1533 = load i32, ptr %18, align 4, !tbaa !14
  %1534 = add nsw i32 %1533, 15
  %1535 = sext i32 %1534 to i64
  %1536 = getelementptr inbounds i8, ptr %1532, i64 %1535
  %1537 = load i8, ptr %1536, align 1, !tbaa !15
  %1538 = zext i8 %1537 to i32
  %1539 = load ptr, ptr %15, align 8, !tbaa !5
  %1540 = load i32, ptr %18, align 4, !tbaa !14
  %1541 = add nsw i32 %1540, 15
  %1542 = sext i32 %1541 to i64
  %1543 = getelementptr inbounds i8, ptr %1539, i64 %1542
  %1544 = load i8, ptr %1543, align 1, !tbaa !15
  %1545 = zext i8 %1544 to i32
  %1546 = sub nsw i32 %1538, %1545
  %1547 = sext i32 %1546 to i64
  %1548 = getelementptr inbounds i8, ptr %1531, i64 %1547
  %1549 = load i8, ptr %1548, align 1, !tbaa !15
  %1550 = load ptr, ptr %16, align 8, !tbaa !5
  %1551 = load i32, ptr %18, align 4, !tbaa !14
  %1552 = add nsw i32 %1551, 15
  %1553 = sext i32 %1552 to i64
  %1554 = getelementptr inbounds i8, ptr %1550, i64 %1553
  store i8 %1549, ptr %1554, align 1, !tbaa !15
  %1555 = load ptr, ptr %9, align 8, !tbaa !5
  %1556 = load ptr, ptr %14, align 8, !tbaa !5
  %1557 = load i32, ptr %18, align 4, !tbaa !14
  %1558 = add nsw i32 %1557, 15
  %1559 = sext i32 %1558 to i64
  %1560 = getelementptr inbounds i8, ptr %1556, i64 %1559
  %1561 = load i8, ptr %1560, align 1, !tbaa !15
  %1562 = zext i8 %1561 to i32
  %1563 = load ptr, ptr %15, align 8, !tbaa !5
  %1564 = load i32, ptr %18, align 4, !tbaa !14
  %1565 = add nsw i32 %1564, 15
  %1566 = sext i32 %1565 to i64
  %1567 = getelementptr inbounds i8, ptr %1563, i64 %1566
  %1568 = load i8, ptr %1567, align 1, !tbaa !15
  %1569 = zext i8 %1568 to i32
  %1570 = sub nsw i32 %1562, %1569
  %1571 = sext i32 %1570 to i64
  %1572 = getelementptr inbounds i8, ptr %1555, i64 %1571
  %1573 = load i8, ptr %1572, align 1, !tbaa !15
  %1574 = load ptr, ptr %17, align 8, !tbaa !5
  %1575 = load i32, ptr %18, align 4, !tbaa !14
  %1576 = add nsw i32 %1575, 15
  %1577 = sext i32 %1576 to i64
  %1578 = getelementptr inbounds i8, ptr %1574, i64 %1577
  store i8 %1573, ptr %1578, align 1, !tbaa !15
  br label %1579

1579:                                             ; preds = %202
  %1580 = load i32, ptr %18, align 4, !tbaa !14
  %1581 = add nsw i32 %1580, 16
  store i32 %1581, ptr %18, align 4, !tbaa !14
  br label %195, !llvm.loop !16

1582:                                             ; preds = %195
  %1583 = load ptr, ptr %4, align 8, !tbaa !5
  %1584 = getelementptr inbounds %struct.MImage, ptr %1583, i32 0, i32 2
  %1585 = load i32, ptr %1584, align 8, !tbaa !13
  %1586 = load i32, ptr %18, align 4, !tbaa !14
  %1587 = sub nsw i32 %1585, %1586
  %1588 = icmp eq i32 %1587, 0
  br i1 %1588, label %1589, label %1590

1589:                                             ; preds = %1582
  br label %12045

1590:                                             ; preds = %1582
  %1591 = load ptr, ptr %4, align 8, !tbaa !5
  %1592 = getelementptr inbounds %struct.MImage, ptr %1591, i32 0, i32 2
  %1593 = load i32, ptr %1592, align 8, !tbaa !13
  %1594 = load i32, ptr %18, align 4, !tbaa !14
  %1595 = sub nsw i32 %1593, %1594
  %1596 = icmp eq i32 %1595, 1
  br i1 %1596, label %1597, label %1684

1597:                                             ; preds = %1590
  %1598 = load ptr, ptr %14, align 8, !tbaa !5
  %1599 = load i32, ptr %18, align 4, !tbaa !14
  %1600 = add nsw i32 %1599, 0
  %1601 = sext i32 %1600 to i64
  %1602 = getelementptr inbounds i8, ptr %1598, i64 %1601
  %1603 = load i8, ptr %1602, align 1, !tbaa !15
  %1604 = zext i8 %1603 to i64
  %1605 = getelementptr inbounds [256 x i8], ptr @r_to_y, i64 0, i64 %1604
  %1606 = load i8, ptr %1605, align 1, !tbaa !15
  %1607 = zext i8 %1606 to i32
  %1608 = load ptr, ptr %13, align 8, !tbaa !5
  %1609 = load i32, ptr %18, align 4, !tbaa !14
  %1610 = add nsw i32 %1609, 0
  %1611 = sext i32 %1610 to i64
  %1612 = getelementptr inbounds i8, ptr %1608, i64 %1611
  %1613 = load i8, ptr %1612, align 1, !tbaa !15
  %1614 = zext i8 %1613 to i64
  %1615 = getelementptr inbounds [256 x i8], ptr @g_to_y, i64 0, i64 %1614
  %1616 = load i8, ptr %1615, align 1, !tbaa !15
  %1617 = zext i8 %1616 to i32
  %1618 = add nsw i32 %1607, %1617
  %1619 = load ptr, ptr %12, align 8, !tbaa !5
  %1620 = load i32, ptr %18, align 4, !tbaa !14
  %1621 = add nsw i32 %1620, 0
  %1622 = sext i32 %1621 to i64
  %1623 = getelementptr inbounds i8, ptr %1619, i64 %1622
  %1624 = load i8, ptr %1623, align 1, !tbaa !15
  %1625 = zext i8 %1624 to i64
  %1626 = getelementptr inbounds [256 x i8], ptr @b_to_y, i64 0, i64 %1625
  %1627 = load i8, ptr %1626, align 1, !tbaa !15
  %1628 = zext i8 %1627 to i32
  %1629 = add nsw i32 %1618, %1628
  %1630 = trunc i32 %1629 to i8
  %1631 = load ptr, ptr %15, align 8, !tbaa !5
  %1632 = load i32, ptr %18, align 4, !tbaa !14
  %1633 = add nsw i32 %1632, 0
  %1634 = sext i32 %1633 to i64
  %1635 = getelementptr inbounds i8, ptr %1631, i64 %1634
  store i8 %1630, ptr %1635, align 1, !tbaa !15
  %1636 = load ptr, ptr %10, align 8, !tbaa !5
  %1637 = load ptr, ptr %12, align 8, !tbaa !5
  %1638 = load i32, ptr %18, align 4, !tbaa !14
  %1639 = add nsw i32 %1638, 0
  %1640 = sext i32 %1639 to i64
  %1641 = getelementptr inbounds i8, ptr %1637, i64 %1640
  %1642 = load i8, ptr %1641, align 1, !tbaa !15
  %1643 = zext i8 %1642 to i32
  %1644 = load ptr, ptr %15, align 8, !tbaa !5
  %1645 = load i32, ptr %18, align 4, !tbaa !14
  %1646 = add nsw i32 %1645, 0
  %1647 = sext i32 %1646 to i64
  %1648 = getelementptr inbounds i8, ptr %1644, i64 %1647
  %1649 = load i8, ptr %1648, align 1, !tbaa !15
  %1650 = zext i8 %1649 to i32
  %1651 = sub nsw i32 %1643, %1650
  %1652 = sext i32 %1651 to i64
  %1653 = getelementptr inbounds i8, ptr %1636, i64 %1652
  %1654 = load i8, ptr %1653, align 1, !tbaa !15
  %1655 = load ptr, ptr %16, align 8, !tbaa !5
  %1656 = load i32, ptr %18, align 4, !tbaa !14
  %1657 = add nsw i32 %1656, 0
  %1658 = sext i32 %1657 to i64
  %1659 = getelementptr inbounds i8, ptr %1655, i64 %1658
  store i8 %1654, ptr %1659, align 1, !tbaa !15
  %1660 = load ptr, ptr %9, align 8, !tbaa !5
  %1661 = load ptr, ptr %14, align 8, !tbaa !5
  %1662 = load i32, ptr %18, align 4, !tbaa !14
  %1663 = add nsw i32 %1662, 0
  %1664 = sext i32 %1663 to i64
  %1665 = getelementptr inbounds i8, ptr %1661, i64 %1664
  %1666 = load i8, ptr %1665, align 1, !tbaa !15
  %1667 = zext i8 %1666 to i32
  %1668 = load ptr, ptr %15, align 8, !tbaa !5
  %1669 = load i32, ptr %18, align 4, !tbaa !14
  %1670 = add nsw i32 %1669, 0
  %1671 = sext i32 %1670 to i64
  %1672 = getelementptr inbounds i8, ptr %1668, i64 %1671
  %1673 = load i8, ptr %1672, align 1, !tbaa !15
  %1674 = zext i8 %1673 to i32
  %1675 = sub nsw i32 %1667, %1674
  %1676 = sext i32 %1675 to i64
  %1677 = getelementptr inbounds i8, ptr %1660, i64 %1676
  %1678 = load i8, ptr %1677, align 1, !tbaa !15
  %1679 = load ptr, ptr %17, align 8, !tbaa !5
  %1680 = load i32, ptr %18, align 4, !tbaa !14
  %1681 = add nsw i32 %1680, 0
  %1682 = sext i32 %1681 to i64
  %1683 = getelementptr inbounds i8, ptr %1679, i64 %1682
  store i8 %1678, ptr %1683, align 1, !tbaa !15
  br label %12044

1684:                                             ; preds = %1590
  %1685 = load ptr, ptr %4, align 8, !tbaa !5
  %1686 = getelementptr inbounds %struct.MImage, ptr %1685, i32 0, i32 2
  %1687 = load i32, ptr %1686, align 8, !tbaa !13
  %1688 = load i32, ptr %18, align 4, !tbaa !14
  %1689 = sub nsw i32 %1687, %1688
  %1690 = icmp eq i32 %1689, 2
  br i1 %1690, label %1691, label %1864

1691:                                             ; preds = %1684
  %1692 = load ptr, ptr %14, align 8, !tbaa !5
  %1693 = load i32, ptr %18, align 4, !tbaa !14
  %1694 = add nsw i32 %1693, 0
  %1695 = sext i32 %1694 to i64
  %1696 = getelementptr inbounds i8, ptr %1692, i64 %1695
  %1697 = load i8, ptr %1696, align 1, !tbaa !15
  %1698 = zext i8 %1697 to i64
  %1699 = getelementptr inbounds [256 x i8], ptr @r_to_y, i64 0, i64 %1698
  %1700 = load i8, ptr %1699, align 1, !tbaa !15
  %1701 = zext i8 %1700 to i32
  %1702 = load ptr, ptr %13, align 8, !tbaa !5
  %1703 = load i32, ptr %18, align 4, !tbaa !14
  %1704 = add nsw i32 %1703, 0
  %1705 = sext i32 %1704 to i64
  %1706 = getelementptr inbounds i8, ptr %1702, i64 %1705
  %1707 = load i8, ptr %1706, align 1, !tbaa !15
  %1708 = zext i8 %1707 to i64
  %1709 = getelementptr inbounds [256 x i8], ptr @g_to_y, i64 0, i64 %1708
  %1710 = load i8, ptr %1709, align 1, !tbaa !15
  %1711 = zext i8 %1710 to i32
  %1712 = add nsw i32 %1701, %1711
  %1713 = load ptr, ptr %12, align 8, !tbaa !5
  %1714 = load i32, ptr %18, align 4, !tbaa !14
  %1715 = add nsw i32 %1714, 0
  %1716 = sext i32 %1715 to i64
  %1717 = getelementptr inbounds i8, ptr %1713, i64 %1716
  %1718 = load i8, ptr %1717, align 1, !tbaa !15
  %1719 = zext i8 %1718 to i64
  %1720 = getelementptr inbounds [256 x i8], ptr @b_to_y, i64 0, i64 %1719
  %1721 = load i8, ptr %1720, align 1, !tbaa !15
  %1722 = zext i8 %1721 to i32
  %1723 = add nsw i32 %1712, %1722
  %1724 = trunc i32 %1723 to i8
  %1725 = load ptr, ptr %15, align 8, !tbaa !5
  %1726 = load i32, ptr %18, align 4, !tbaa !14
  %1727 = add nsw i32 %1726, 0
  %1728 = sext i32 %1727 to i64
  %1729 = getelementptr inbounds i8, ptr %1725, i64 %1728
  store i8 %1724, ptr %1729, align 1, !tbaa !15
  %1730 = load ptr, ptr %10, align 8, !tbaa !5
  %1731 = load ptr, ptr %12, align 8, !tbaa !5
  %1732 = load i32, ptr %18, align 4, !tbaa !14
  %1733 = add nsw i32 %1732, 0
  %1734 = sext i32 %1733 to i64
  %1735 = getelementptr inbounds i8, ptr %1731, i64 %1734
  %1736 = load i8, ptr %1735, align 1, !tbaa !15
  %1737 = zext i8 %1736 to i32
  %1738 = load ptr, ptr %15, align 8, !tbaa !5
  %1739 = load i32, ptr %18, align 4, !tbaa !14
  %1740 = add nsw i32 %1739, 0
  %1741 = sext i32 %1740 to i64
  %1742 = getelementptr inbounds i8, ptr %1738, i64 %1741
  %1743 = load i8, ptr %1742, align 1, !tbaa !15
  %1744 = zext i8 %1743 to i32
  %1745 = sub nsw i32 %1737, %1744
  %1746 = sext i32 %1745 to i64
  %1747 = getelementptr inbounds i8, ptr %1730, i64 %1746
  %1748 = load i8, ptr %1747, align 1, !tbaa !15
  %1749 = load ptr, ptr %16, align 8, !tbaa !5
  %1750 = load i32, ptr %18, align 4, !tbaa !14
  %1751 = add nsw i32 %1750, 0
  %1752 = sext i32 %1751 to i64
  %1753 = getelementptr inbounds i8, ptr %1749, i64 %1752
  store i8 %1748, ptr %1753, align 1, !tbaa !15
  %1754 = load ptr, ptr %9, align 8, !tbaa !5
  %1755 = load ptr, ptr %14, align 8, !tbaa !5
  %1756 = load i32, ptr %18, align 4, !tbaa !14
  %1757 = add nsw i32 %1756, 0
  %1758 = sext i32 %1757 to i64
  %1759 = getelementptr inbounds i8, ptr %1755, i64 %1758
  %1760 = load i8, ptr %1759, align 1, !tbaa !15
  %1761 = zext i8 %1760 to i32
  %1762 = load ptr, ptr %15, align 8, !tbaa !5
  %1763 = load i32, ptr %18, align 4, !tbaa !14
  %1764 = add nsw i32 %1763, 0
  %1765 = sext i32 %1764 to i64
  %1766 = getelementptr inbounds i8, ptr %1762, i64 %1765
  %1767 = load i8, ptr %1766, align 1, !tbaa !15
  %1768 = zext i8 %1767 to i32
  %1769 = sub nsw i32 %1761, %1768
  %1770 = sext i32 %1769 to i64
  %1771 = getelementptr inbounds i8, ptr %1754, i64 %1770
  %1772 = load i8, ptr %1771, align 1, !tbaa !15
  %1773 = load ptr, ptr %17, align 8, !tbaa !5
  %1774 = load i32, ptr %18, align 4, !tbaa !14
  %1775 = add nsw i32 %1774, 0
  %1776 = sext i32 %1775 to i64
  %1777 = getelementptr inbounds i8, ptr %1773, i64 %1776
  store i8 %1772, ptr %1777, align 1, !tbaa !15
  %1778 = load ptr, ptr %14, align 8, !tbaa !5
  %1779 = load i32, ptr %18, align 4, !tbaa !14
  %1780 = add nsw i32 %1779, 1
  %1781 = sext i32 %1780 to i64
  %1782 = getelementptr inbounds i8, ptr %1778, i64 %1781
  %1783 = load i8, ptr %1782, align 1, !tbaa !15
  %1784 = zext i8 %1783 to i64
  %1785 = getelementptr inbounds [256 x i8], ptr @r_to_y, i64 0, i64 %1784
  %1786 = load i8, ptr %1785, align 1, !tbaa !15
  %1787 = zext i8 %1786 to i32
  %1788 = load ptr, ptr %13, align 8, !tbaa !5
  %1789 = load i32, ptr %18, align 4, !tbaa !14
  %1790 = add nsw i32 %1789, 1
  %1791 = sext i32 %1790 to i64
  %1792 = getelementptr inbounds i8, ptr %1788, i64 %1791
  %1793 = load i8, ptr %1792, align 1, !tbaa !15
  %1794 = zext i8 %1793 to i64
  %1795 = getelementptr inbounds [256 x i8], ptr @g_to_y, i64 0, i64 %1794
  %1796 = load i8, ptr %1795, align 1, !tbaa !15
  %1797 = zext i8 %1796 to i32
  %1798 = add nsw i32 %1787, %1797
  %1799 = load ptr, ptr %12, align 8, !tbaa !5
  %1800 = load i32, ptr %18, align 4, !tbaa !14
  %1801 = add nsw i32 %1800, 1
  %1802 = sext i32 %1801 to i64
  %1803 = getelementptr inbounds i8, ptr %1799, i64 %1802
  %1804 = load i8, ptr %1803, align 1, !tbaa !15
  %1805 = zext i8 %1804 to i64
  %1806 = getelementptr inbounds [256 x i8], ptr @b_to_y, i64 0, i64 %1805
  %1807 = load i8, ptr %1806, align 1, !tbaa !15
  %1808 = zext i8 %1807 to i32
  %1809 = add nsw i32 %1798, %1808
  %1810 = trunc i32 %1809 to i8
  %1811 = load ptr, ptr %15, align 8, !tbaa !5
  %1812 = load i32, ptr %18, align 4, !tbaa !14
  %1813 = add nsw i32 %1812, 1
  %1814 = sext i32 %1813 to i64
  %1815 = getelementptr inbounds i8, ptr %1811, i64 %1814
  store i8 %1810, ptr %1815, align 1, !tbaa !15
  %1816 = load ptr, ptr %10, align 8, !tbaa !5
  %1817 = load ptr, ptr %12, align 8, !tbaa !5
  %1818 = load i32, ptr %18, align 4, !tbaa !14
  %1819 = add nsw i32 %1818, 1
  %1820 = sext i32 %1819 to i64
  %1821 = getelementptr inbounds i8, ptr %1817, i64 %1820
  %1822 = load i8, ptr %1821, align 1, !tbaa !15
  %1823 = zext i8 %1822 to i32
  %1824 = load ptr, ptr %15, align 8, !tbaa !5
  %1825 = load i32, ptr %18, align 4, !tbaa !14
  %1826 = add nsw i32 %1825, 1
  %1827 = sext i32 %1826 to i64
  %1828 = getelementptr inbounds i8, ptr %1824, i64 %1827
  %1829 = load i8, ptr %1828, align 1, !tbaa !15
  %1830 = zext i8 %1829 to i32
  %1831 = sub nsw i32 %1823, %1830
  %1832 = sext i32 %1831 to i64
  %1833 = getelementptr inbounds i8, ptr %1816, i64 %1832
  %1834 = load i8, ptr %1833, align 1, !tbaa !15
  %1835 = load ptr, ptr %16, align 8, !tbaa !5
  %1836 = load i32, ptr %18, align 4, !tbaa !14
  %1837 = add nsw i32 %1836, 1
  %1838 = sext i32 %1837 to i64
  %1839 = getelementptr inbounds i8, ptr %1835, i64 %1838
  store i8 %1834, ptr %1839, align 1, !tbaa !15
  %1840 = load ptr, ptr %9, align 8, !tbaa !5
  %1841 = load ptr, ptr %14, align 8, !tbaa !5
  %1842 = load i32, ptr %18, align 4, !tbaa !14
  %1843 = add nsw i32 %1842, 1
  %1844 = sext i32 %1843 to i64
  %1845 = getelementptr inbounds i8, ptr %1841, i64 %1844
  %1846 = load i8, ptr %1845, align 1, !tbaa !15
  %1847 = zext i8 %1846 to i32
  %1848 = load ptr, ptr %15, align 8, !tbaa !5
  %1849 = load i32, ptr %18, align 4, !tbaa !14
  %1850 = add nsw i32 %1849, 1
  %1851 = sext i32 %1850 to i64
  %1852 = getelementptr inbounds i8, ptr %1848, i64 %1851
  %1853 = load i8, ptr %1852, align 1, !tbaa !15
  %1854 = zext i8 %1853 to i32
  %1855 = sub nsw i32 %1847, %1854
  %1856 = sext i32 %1855 to i64
  %1857 = getelementptr inbounds i8, ptr %1840, i64 %1856
  %1858 = load i8, ptr %1857, align 1, !tbaa !15
  %1859 = load ptr, ptr %17, align 8, !tbaa !5
  %1860 = load i32, ptr %18, align 4, !tbaa !14
  %1861 = add nsw i32 %1860, 1
  %1862 = sext i32 %1861 to i64
  %1863 = getelementptr inbounds i8, ptr %1859, i64 %1862
  store i8 %1858, ptr %1863, align 1, !tbaa !15
  br label %12043

1864:                                             ; preds = %1684
  %1865 = load ptr, ptr %4, align 8, !tbaa !5
  %1866 = getelementptr inbounds %struct.MImage, ptr %1865, i32 0, i32 2
  %1867 = load i32, ptr %1866, align 8, !tbaa !13
  %1868 = load i32, ptr %18, align 4, !tbaa !14
  %1869 = sub nsw i32 %1867, %1868
  %1870 = icmp eq i32 %1869, 3
  br i1 %1870, label %1871, label %2130

1871:                                             ; preds = %1864
  %1872 = load ptr, ptr %14, align 8, !tbaa !5
  %1873 = load i32, ptr %18, align 4, !tbaa !14
  %1874 = add nsw i32 %1873, 0
  %1875 = sext i32 %1874 to i64
  %1876 = getelementptr inbounds i8, ptr %1872, i64 %1875
  %1877 = load i8, ptr %1876, align 1, !tbaa !15
  %1878 = zext i8 %1877 to i64
  %1879 = getelementptr inbounds [256 x i8], ptr @r_to_y, i64 0, i64 %1878
  %1880 = load i8, ptr %1879, align 1, !tbaa !15
  %1881 = zext i8 %1880 to i32
  %1882 = load ptr, ptr %13, align 8, !tbaa !5
  %1883 = load i32, ptr %18, align 4, !tbaa !14
  %1884 = add nsw i32 %1883, 0
  %1885 = sext i32 %1884 to i64
  %1886 = getelementptr inbounds i8, ptr %1882, i64 %1885
  %1887 = load i8, ptr %1886, align 1, !tbaa !15
  %1888 = zext i8 %1887 to i64
  %1889 = getelementptr inbounds [256 x i8], ptr @g_to_y, i64 0, i64 %1888
  %1890 = load i8, ptr %1889, align 1, !tbaa !15
  %1891 = zext i8 %1890 to i32
  %1892 = add nsw i32 %1881, %1891
  %1893 = load ptr, ptr %12, align 8, !tbaa !5
  %1894 = load i32, ptr %18, align 4, !tbaa !14
  %1895 = add nsw i32 %1894, 0
  %1896 = sext i32 %1895 to i64
  %1897 = getelementptr inbounds i8, ptr %1893, i64 %1896
  %1898 = load i8, ptr %1897, align 1, !tbaa !15
  %1899 = zext i8 %1898 to i64
  %1900 = getelementptr inbounds [256 x i8], ptr @b_to_y, i64 0, i64 %1899
  %1901 = load i8, ptr %1900, align 1, !tbaa !15
  %1902 = zext i8 %1901 to i32
  %1903 = add nsw i32 %1892, %1902
  %1904 = trunc i32 %1903 to i8
  %1905 = load ptr, ptr %15, align 8, !tbaa !5
  %1906 = load i32, ptr %18, align 4, !tbaa !14
  %1907 = add nsw i32 %1906, 0
  %1908 = sext i32 %1907 to i64
  %1909 = getelementptr inbounds i8, ptr %1905, i64 %1908
  store i8 %1904, ptr %1909, align 1, !tbaa !15
  %1910 = load ptr, ptr %10, align 8, !tbaa !5
  %1911 = load ptr, ptr %12, align 8, !tbaa !5
  %1912 = load i32, ptr %18, align 4, !tbaa !14
  %1913 = add nsw i32 %1912, 0
  %1914 = sext i32 %1913 to i64
  %1915 = getelementptr inbounds i8, ptr %1911, i64 %1914
  %1916 = load i8, ptr %1915, align 1, !tbaa !15
  %1917 = zext i8 %1916 to i32
  %1918 = load ptr, ptr %15, align 8, !tbaa !5
  %1919 = load i32, ptr %18, align 4, !tbaa !14
  %1920 = add nsw i32 %1919, 0
  %1921 = sext i32 %1920 to i64
  %1922 = getelementptr inbounds i8, ptr %1918, i64 %1921
  %1923 = load i8, ptr %1922, align 1, !tbaa !15
  %1924 = zext i8 %1923 to i32
  %1925 = sub nsw i32 %1917, %1924
  %1926 = sext i32 %1925 to i64
  %1927 = getelementptr inbounds i8, ptr %1910, i64 %1926
  %1928 = load i8, ptr %1927, align 1, !tbaa !15
  %1929 = load ptr, ptr %16, align 8, !tbaa !5
  %1930 = load i32, ptr %18, align 4, !tbaa !14
  %1931 = add nsw i32 %1930, 0
  %1932 = sext i32 %1931 to i64
  %1933 = getelementptr inbounds i8, ptr %1929, i64 %1932
  store i8 %1928, ptr %1933, align 1, !tbaa !15
  %1934 = load ptr, ptr %9, align 8, !tbaa !5
  %1935 = load ptr, ptr %14, align 8, !tbaa !5
  %1936 = load i32, ptr %18, align 4, !tbaa !14
  %1937 = add nsw i32 %1936, 0
  %1938 = sext i32 %1937 to i64
  %1939 = getelementptr inbounds i8, ptr %1935, i64 %1938
  %1940 = load i8, ptr %1939, align 1, !tbaa !15
  %1941 = zext i8 %1940 to i32
  %1942 = load ptr, ptr %15, align 8, !tbaa !5
  %1943 = load i32, ptr %18, align 4, !tbaa !14
  %1944 = add nsw i32 %1943, 0
  %1945 = sext i32 %1944 to i64
  %1946 = getelementptr inbounds i8, ptr %1942, i64 %1945
  %1947 = load i8, ptr %1946, align 1, !tbaa !15
  %1948 = zext i8 %1947 to i32
  %1949 = sub nsw i32 %1941, %1948
  %1950 = sext i32 %1949 to i64
  %1951 = getelementptr inbounds i8, ptr %1934, i64 %1950
  %1952 = load i8, ptr %1951, align 1, !tbaa !15
  %1953 = load ptr, ptr %17, align 8, !tbaa !5
  %1954 = load i32, ptr %18, align 4, !tbaa !14
  %1955 = add nsw i32 %1954, 0
  %1956 = sext i32 %1955 to i64
  %1957 = getelementptr inbounds i8, ptr %1953, i64 %1956
  store i8 %1952, ptr %1957, align 1, !tbaa !15
  %1958 = load ptr, ptr %14, align 8, !tbaa !5
  %1959 = load i32, ptr %18, align 4, !tbaa !14
  %1960 = add nsw i32 %1959, 1
  %1961 = sext i32 %1960 to i64
  %1962 = getelementptr inbounds i8, ptr %1958, i64 %1961
  %1963 = load i8, ptr %1962, align 1, !tbaa !15
  %1964 = zext i8 %1963 to i64
  %1965 = getelementptr inbounds [256 x i8], ptr @r_to_y, i64 0, i64 %1964
  %1966 = load i8, ptr %1965, align 1, !tbaa !15
  %1967 = zext i8 %1966 to i32
  %1968 = load ptr, ptr %13, align 8, !tbaa !5
  %1969 = load i32, ptr %18, align 4, !tbaa !14
  %1970 = add nsw i32 %1969, 1
  %1971 = sext i32 %1970 to i64
  %1972 = getelementptr inbounds i8, ptr %1968, i64 %1971
  %1973 = load i8, ptr %1972, align 1, !tbaa !15
  %1974 = zext i8 %1973 to i64
  %1975 = getelementptr inbounds [256 x i8], ptr @g_to_y, i64 0, i64 %1974
  %1976 = load i8, ptr %1975, align 1, !tbaa !15
  %1977 = zext i8 %1976 to i32
  %1978 = add nsw i32 %1967, %1977
  %1979 = load ptr, ptr %12, align 8, !tbaa !5
  %1980 = load i32, ptr %18, align 4, !tbaa !14
  %1981 = add nsw i32 %1980, 1
  %1982 = sext i32 %1981 to i64
  %1983 = getelementptr inbounds i8, ptr %1979, i64 %1982
  %1984 = load i8, ptr %1983, align 1, !tbaa !15
  %1985 = zext i8 %1984 to i64
  %1986 = getelementptr inbounds [256 x i8], ptr @b_to_y, i64 0, i64 %1985
  %1987 = load i8, ptr %1986, align 1, !tbaa !15
  %1988 = zext i8 %1987 to i32
  %1989 = add nsw i32 %1978, %1988
  %1990 = trunc i32 %1989 to i8
  %1991 = load ptr, ptr %15, align 8, !tbaa !5
  %1992 = load i32, ptr %18, align 4, !tbaa !14
  %1993 = add nsw i32 %1992, 1
  %1994 = sext i32 %1993 to i64
  %1995 = getelementptr inbounds i8, ptr %1991, i64 %1994
  store i8 %1990, ptr %1995, align 1, !tbaa !15
  %1996 = load ptr, ptr %10, align 8, !tbaa !5
  %1997 = load ptr, ptr %12, align 8, !tbaa !5
  %1998 = load i32, ptr %18, align 4, !tbaa !14
  %1999 = add nsw i32 %1998, 1
  %2000 = sext i32 %1999 to i64
  %2001 = getelementptr inbounds i8, ptr %1997, i64 %2000
  %2002 = load i8, ptr %2001, align 1, !tbaa !15
  %2003 = zext i8 %2002 to i32
  %2004 = load ptr, ptr %15, align 8, !tbaa !5
  %2005 = load i32, ptr %18, align 4, !tbaa !14
  %2006 = add nsw i32 %2005, 1
  %2007 = sext i32 %2006 to i64
  %2008 = getelementptr inbounds i8, ptr %2004, i64 %2007
  %2009 = load i8, ptr %2008, align 1, !tbaa !15
  %2010 = zext i8 %2009 to i32
  %2011 = sub nsw i32 %2003, %2010
  %2012 = sext i32 %2011 to i64
  %2013 = getelementptr inbounds i8, ptr %1996, i64 %2012
  %2014 = load i8, ptr %2013, align 1, !tbaa !15
  %2015 = load ptr, ptr %16, align 8, !tbaa !5
  %2016 = load i32, ptr %18, align 4, !tbaa !14
  %2017 = add nsw i32 %2016, 1
  %2018 = sext i32 %2017 to i64
  %2019 = getelementptr inbounds i8, ptr %2015, i64 %2018
  store i8 %2014, ptr %2019, align 1, !tbaa !15
  %2020 = load ptr, ptr %9, align 8, !tbaa !5
  %2021 = load ptr, ptr %14, align 8, !tbaa !5
  %2022 = load i32, ptr %18, align 4, !tbaa !14
  %2023 = add nsw i32 %2022, 1
  %2024 = sext i32 %2023 to i64
  %2025 = getelementptr inbounds i8, ptr %2021, i64 %2024
  %2026 = load i8, ptr %2025, align 1, !tbaa !15
  %2027 = zext i8 %2026 to i32
  %2028 = load ptr, ptr %15, align 8, !tbaa !5
  %2029 = load i32, ptr %18, align 4, !tbaa !14
  %2030 = add nsw i32 %2029, 1
  %2031 = sext i32 %2030 to i64
  %2032 = getelementptr inbounds i8, ptr %2028, i64 %2031
  %2033 = load i8, ptr %2032, align 1, !tbaa !15
  %2034 = zext i8 %2033 to i32
  %2035 = sub nsw i32 %2027, %2034
  %2036 = sext i32 %2035 to i64
  %2037 = getelementptr inbounds i8, ptr %2020, i64 %2036
  %2038 = load i8, ptr %2037, align 1, !tbaa !15
  %2039 = load ptr, ptr %17, align 8, !tbaa !5
  %2040 = load i32, ptr %18, align 4, !tbaa !14
  %2041 = add nsw i32 %2040, 1
  %2042 = sext i32 %2041 to i64
  %2043 = getelementptr inbounds i8, ptr %2039, i64 %2042
  store i8 %2038, ptr %2043, align 1, !tbaa !15
  %2044 = load ptr, ptr %14, align 8, !tbaa !5
  %2045 = load i32, ptr %18, align 4, !tbaa !14
  %2046 = add nsw i32 %2045, 2
  %2047 = sext i32 %2046 to i64
  %2048 = getelementptr inbounds i8, ptr %2044, i64 %2047
  %2049 = load i8, ptr %2048, align 1, !tbaa !15
  %2050 = zext i8 %2049 to i64
  %2051 = getelementptr inbounds [256 x i8], ptr @r_to_y, i64 0, i64 %2050
  %2052 = load i8, ptr %2051, align 1, !tbaa !15
  %2053 = zext i8 %2052 to i32
  %2054 = load ptr, ptr %13, align 8, !tbaa !5
  %2055 = load i32, ptr %18, align 4, !tbaa !14
  %2056 = add nsw i32 %2055, 2
  %2057 = sext i32 %2056 to i64
  %2058 = getelementptr inbounds i8, ptr %2054, i64 %2057
  %2059 = load i8, ptr %2058, align 1, !tbaa !15
  %2060 = zext i8 %2059 to i64
  %2061 = getelementptr inbounds [256 x i8], ptr @g_to_y, i64 0, i64 %2060
  %2062 = load i8, ptr %2061, align 1, !tbaa !15
  %2063 = zext i8 %2062 to i32
  %2064 = add nsw i32 %2053, %2063
  %2065 = load ptr, ptr %12, align 8, !tbaa !5
  %2066 = load i32, ptr %18, align 4, !tbaa !14
  %2067 = add nsw i32 %2066, 2
  %2068 = sext i32 %2067 to i64
  %2069 = getelementptr inbounds i8, ptr %2065, i64 %2068
  %2070 = load i8, ptr %2069, align 1, !tbaa !15
  %2071 = zext i8 %2070 to i64
  %2072 = getelementptr inbounds [256 x i8], ptr @b_to_y, i64 0, i64 %2071
  %2073 = load i8, ptr %2072, align 1, !tbaa !15
  %2074 = zext i8 %2073 to i32
  %2075 = add nsw i32 %2064, %2074
  %2076 = trunc i32 %2075 to i8
  %2077 = load ptr, ptr %15, align 8, !tbaa !5
  %2078 = load i32, ptr %18, align 4, !tbaa !14
  %2079 = add nsw i32 %2078, 2
  %2080 = sext i32 %2079 to i64
  %2081 = getelementptr inbounds i8, ptr %2077, i64 %2080
  store i8 %2076, ptr %2081, align 1, !tbaa !15
  %2082 = load ptr, ptr %10, align 8, !tbaa !5
  %2083 = load ptr, ptr %12, align 8, !tbaa !5
  %2084 = load i32, ptr %18, align 4, !tbaa !14
  %2085 = add nsw i32 %2084, 2
  %2086 = sext i32 %2085 to i64
  %2087 = getelementptr inbounds i8, ptr %2083, i64 %2086
  %2088 = load i8, ptr %2087, align 1, !tbaa !15
  %2089 = zext i8 %2088 to i32
  %2090 = load ptr, ptr %15, align 8, !tbaa !5
  %2091 = load i32, ptr %18, align 4, !tbaa !14
  %2092 = add nsw i32 %2091, 2
  %2093 = sext i32 %2092 to i64
  %2094 = getelementptr inbounds i8, ptr %2090, i64 %2093
  %2095 = load i8, ptr %2094, align 1, !tbaa !15
  %2096 = zext i8 %2095 to i32
  %2097 = sub nsw i32 %2089, %2096
  %2098 = sext i32 %2097 to i64
  %2099 = getelementptr inbounds i8, ptr %2082, i64 %2098
  %2100 = load i8, ptr %2099, align 1, !tbaa !15
  %2101 = load ptr, ptr %16, align 8, !tbaa !5
  %2102 = load i32, ptr %18, align 4, !tbaa !14
  %2103 = add nsw i32 %2102, 2
  %2104 = sext i32 %2103 to i64
  %2105 = getelementptr inbounds i8, ptr %2101, i64 %2104
  store i8 %2100, ptr %2105, align 1, !tbaa !15
  %2106 = load ptr, ptr %9, align 8, !tbaa !5
  %2107 = load ptr, ptr %14, align 8, !tbaa !5
  %2108 = load i32, ptr %18, align 4, !tbaa !14
  %2109 = add nsw i32 %2108, 2
  %2110 = sext i32 %2109 to i64
  %2111 = getelementptr inbounds i8, ptr %2107, i64 %2110
  %2112 = load i8, ptr %2111, align 1, !tbaa !15
  %2113 = zext i8 %2112 to i32
  %2114 = load ptr, ptr %15, align 8, !tbaa !5
  %2115 = load i32, ptr %18, align 4, !tbaa !14
  %2116 = add nsw i32 %2115, 2
  %2117 = sext i32 %2116 to i64
  %2118 = getelementptr inbounds i8, ptr %2114, i64 %2117
  %2119 = load i8, ptr %2118, align 1, !tbaa !15
  %2120 = zext i8 %2119 to i32
  %2121 = sub nsw i32 %2113, %2120
  %2122 = sext i32 %2121 to i64
  %2123 = getelementptr inbounds i8, ptr %2106, i64 %2122
  %2124 = load i8, ptr %2123, align 1, !tbaa !15
  %2125 = load ptr, ptr %17, align 8, !tbaa !5
  %2126 = load i32, ptr %18, align 4, !tbaa !14
  %2127 = add nsw i32 %2126, 2
  %2128 = sext i32 %2127 to i64
  %2129 = getelementptr inbounds i8, ptr %2125, i64 %2128
  store i8 %2124, ptr %2129, align 1, !tbaa !15
  br label %12042

2130:                                             ; preds = %1864
  %2131 = load ptr, ptr %4, align 8, !tbaa !5
  %2132 = getelementptr inbounds %struct.MImage, ptr %2131, i32 0, i32 2
  %2133 = load i32, ptr %2132, align 8, !tbaa !13
  %2134 = load i32, ptr %18, align 4, !tbaa !14
  %2135 = sub nsw i32 %2133, %2134
  %2136 = icmp eq i32 %2135, 4
  br i1 %2136, label %2137, label %2482

2137:                                             ; preds = %2130
  %2138 = load ptr, ptr %14, align 8, !tbaa !5
  %2139 = load i32, ptr %18, align 4, !tbaa !14
  %2140 = add nsw i32 %2139, 0
  %2141 = sext i32 %2140 to i64
  %2142 = getelementptr inbounds i8, ptr %2138, i64 %2141
  %2143 = load i8, ptr %2142, align 1, !tbaa !15
  %2144 = zext i8 %2143 to i64
  %2145 = getelementptr inbounds [256 x i8], ptr @r_to_y, i64 0, i64 %2144
  %2146 = load i8, ptr %2145, align 1, !tbaa !15
  %2147 = zext i8 %2146 to i32
  %2148 = load ptr, ptr %13, align 8, !tbaa !5
  %2149 = load i32, ptr %18, align 4, !tbaa !14
  %2150 = add nsw i32 %2149, 0
  %2151 = sext i32 %2150 to i64
  %2152 = getelementptr inbounds i8, ptr %2148, i64 %2151
  %2153 = load i8, ptr %2152, align 1, !tbaa !15
  %2154 = zext i8 %2153 to i64
  %2155 = getelementptr inbounds [256 x i8], ptr @g_to_y, i64 0, i64 %2154
  %2156 = load i8, ptr %2155, align 1, !tbaa !15
  %2157 = zext i8 %2156 to i32
  %2158 = add nsw i32 %2147, %2157
  %2159 = load ptr, ptr %12, align 8, !tbaa !5
  %2160 = load i32, ptr %18, align 4, !tbaa !14
  %2161 = add nsw i32 %2160, 0
  %2162 = sext i32 %2161 to i64
  %2163 = getelementptr inbounds i8, ptr %2159, i64 %2162
  %2164 = load i8, ptr %2163, align 1, !tbaa !15
  %2165 = zext i8 %2164 to i64
  %2166 = getelementptr inbounds [256 x i8], ptr @b_to_y, i64 0, i64 %2165
  %2167 = load i8, ptr %2166, align 1, !tbaa !15
  %2168 = zext i8 %2167 to i32
  %2169 = add nsw i32 %2158, %2168
  %2170 = trunc i32 %2169 to i8
  %2171 = load ptr, ptr %15, align 8, !tbaa !5
  %2172 = load i32, ptr %18, align 4, !tbaa !14
  %2173 = add nsw i32 %2172, 0
  %2174 = sext i32 %2173 to i64
  %2175 = getelementptr inbounds i8, ptr %2171, i64 %2174
  store i8 %2170, ptr %2175, align 1, !tbaa !15
  %2176 = load ptr, ptr %10, align 8, !tbaa !5
  %2177 = load ptr, ptr %12, align 8, !tbaa !5
  %2178 = load i32, ptr %18, align 4, !tbaa !14
  %2179 = add nsw i32 %2178, 0
  %2180 = sext i32 %2179 to i64
  %2181 = getelementptr inbounds i8, ptr %2177, i64 %2180
  %2182 = load i8, ptr %2181, align 1, !tbaa !15
  %2183 = zext i8 %2182 to i32
  %2184 = load ptr, ptr %15, align 8, !tbaa !5
  %2185 = load i32, ptr %18, align 4, !tbaa !14
  %2186 = add nsw i32 %2185, 0
  %2187 = sext i32 %2186 to i64
  %2188 = getelementptr inbounds i8, ptr %2184, i64 %2187
  %2189 = load i8, ptr %2188, align 1, !tbaa !15
  %2190 = zext i8 %2189 to i32
  %2191 = sub nsw i32 %2183, %2190
  %2192 = sext i32 %2191 to i64
  %2193 = getelementptr inbounds i8, ptr %2176, i64 %2192
  %2194 = load i8, ptr %2193, align 1, !tbaa !15
  %2195 = load ptr, ptr %16, align 8, !tbaa !5
  %2196 = load i32, ptr %18, align 4, !tbaa !14
  %2197 = add nsw i32 %2196, 0
  %2198 = sext i32 %2197 to i64
  %2199 = getelementptr inbounds i8, ptr %2195, i64 %2198
  store i8 %2194, ptr %2199, align 1, !tbaa !15
  %2200 = load ptr, ptr %9, align 8, !tbaa !5
  %2201 = load ptr, ptr %14, align 8, !tbaa !5
  %2202 = load i32, ptr %18, align 4, !tbaa !14
  %2203 = add nsw i32 %2202, 0
  %2204 = sext i32 %2203 to i64
  %2205 = getelementptr inbounds i8, ptr %2201, i64 %2204
  %2206 = load i8, ptr %2205, align 1, !tbaa !15
  %2207 = zext i8 %2206 to i32
  %2208 = load ptr, ptr %15, align 8, !tbaa !5
  %2209 = load i32, ptr %18, align 4, !tbaa !14
  %2210 = add nsw i32 %2209, 0
  %2211 = sext i32 %2210 to i64
  %2212 = getelementptr inbounds i8, ptr %2208, i64 %2211
  %2213 = load i8, ptr %2212, align 1, !tbaa !15
  %2214 = zext i8 %2213 to i32
  %2215 = sub nsw i32 %2207, %2214
  %2216 = sext i32 %2215 to i64
  %2217 = getelementptr inbounds i8, ptr %2200, i64 %2216
  %2218 = load i8, ptr %2217, align 1, !tbaa !15
  %2219 = load ptr, ptr %17, align 8, !tbaa !5
  %2220 = load i32, ptr %18, align 4, !tbaa !14
  %2221 = add nsw i32 %2220, 0
  %2222 = sext i32 %2221 to i64
  %2223 = getelementptr inbounds i8, ptr %2219, i64 %2222
  store i8 %2218, ptr %2223, align 1, !tbaa !15
  %2224 = load ptr, ptr %14, align 8, !tbaa !5
  %2225 = load i32, ptr %18, align 4, !tbaa !14
  %2226 = add nsw i32 %2225, 1
  %2227 = sext i32 %2226 to i64
  %2228 = getelementptr inbounds i8, ptr %2224, i64 %2227
  %2229 = load i8, ptr %2228, align 1, !tbaa !15
  %2230 = zext i8 %2229 to i64
  %2231 = getelementptr inbounds [256 x i8], ptr @r_to_y, i64 0, i64 %2230
  %2232 = load i8, ptr %2231, align 1, !tbaa !15
  %2233 = zext i8 %2232 to i32
  %2234 = load ptr, ptr %13, align 8, !tbaa !5
  %2235 = load i32, ptr %18, align 4, !tbaa !14
  %2236 = add nsw i32 %2235, 1
  %2237 = sext i32 %2236 to i64
  %2238 = getelementptr inbounds i8, ptr %2234, i64 %2237
  %2239 = load i8, ptr %2238, align 1, !tbaa !15
  %2240 = zext i8 %2239 to i64
  %2241 = getelementptr inbounds [256 x i8], ptr @g_to_y, i64 0, i64 %2240
  %2242 = load i8, ptr %2241, align 1, !tbaa !15
  %2243 = zext i8 %2242 to i32
  %2244 = add nsw i32 %2233, %2243
  %2245 = load ptr, ptr %12, align 8, !tbaa !5
  %2246 = load i32, ptr %18, align 4, !tbaa !14
  %2247 = add nsw i32 %2246, 1
  %2248 = sext i32 %2247 to i64
  %2249 = getelementptr inbounds i8, ptr %2245, i64 %2248
  %2250 = load i8, ptr %2249, align 1, !tbaa !15
  %2251 = zext i8 %2250 to i64
  %2252 = getelementptr inbounds [256 x i8], ptr @b_to_y, i64 0, i64 %2251
  %2253 = load i8, ptr %2252, align 1, !tbaa !15
  %2254 = zext i8 %2253 to i32
  %2255 = add nsw i32 %2244, %2254
  %2256 = trunc i32 %2255 to i8
  %2257 = load ptr, ptr %15, align 8, !tbaa !5
  %2258 = load i32, ptr %18, align 4, !tbaa !14
  %2259 = add nsw i32 %2258, 1
  %2260 = sext i32 %2259 to i64
  %2261 = getelementptr inbounds i8, ptr %2257, i64 %2260
  store i8 %2256, ptr %2261, align 1, !tbaa !15
  %2262 = load ptr, ptr %10, align 8, !tbaa !5
  %2263 = load ptr, ptr %12, align 8, !tbaa !5
  %2264 = load i32, ptr %18, align 4, !tbaa !14
  %2265 = add nsw i32 %2264, 1
  %2266 = sext i32 %2265 to i64
  %2267 = getelementptr inbounds i8, ptr %2263, i64 %2266
  %2268 = load i8, ptr %2267, align 1, !tbaa !15
  %2269 = zext i8 %2268 to i32
  %2270 = load ptr, ptr %15, align 8, !tbaa !5
  %2271 = load i32, ptr %18, align 4, !tbaa !14
  %2272 = add nsw i32 %2271, 1
  %2273 = sext i32 %2272 to i64
  %2274 = getelementptr inbounds i8, ptr %2270, i64 %2273
  %2275 = load i8, ptr %2274, align 1, !tbaa !15
  %2276 = zext i8 %2275 to i32
  %2277 = sub nsw i32 %2269, %2276
  %2278 = sext i32 %2277 to i64
  %2279 = getelementptr inbounds i8, ptr %2262, i64 %2278
  %2280 = load i8, ptr %2279, align 1, !tbaa !15
  %2281 = load ptr, ptr %16, align 8, !tbaa !5
  %2282 = load i32, ptr %18, align 4, !tbaa !14
  %2283 = add nsw i32 %2282, 1
  %2284 = sext i32 %2283 to i64
  %2285 = getelementptr inbounds i8, ptr %2281, i64 %2284
  store i8 %2280, ptr %2285, align 1, !tbaa !15
  %2286 = load ptr, ptr %9, align 8, !tbaa !5
  %2287 = load ptr, ptr %14, align 8, !tbaa !5
  %2288 = load i32, ptr %18, align 4, !tbaa !14
  %2289 = add nsw i32 %2288, 1
  %2290 = sext i32 %2289 to i64
  %2291 = getelementptr inbounds i8, ptr %2287, i64 %2290
  %2292 = load i8, ptr %2291, align 1, !tbaa !15
  %2293 = zext i8 %2292 to i32
  %2294 = load ptr, ptr %15, align 8, !tbaa !5
  %2295 = load i32, ptr %18, align 4, !tbaa !14
  %2296 = add nsw i32 %2295, 1
  %2297 = sext i32 %2296 to i64
  %2298 = getelementptr inbounds i8, ptr %2294, i64 %2297
  %2299 = load i8, ptr %2298, align 1, !tbaa !15
  %2300 = zext i8 %2299 to i32
  %2301 = sub nsw i32 %2293, %2300
  %2302 = sext i32 %2301 to i64
  %2303 = getelementptr inbounds i8, ptr %2286, i64 %2302
  %2304 = load i8, ptr %2303, align 1, !tbaa !15
  %2305 = load ptr, ptr %17, align 8, !tbaa !5
  %2306 = load i32, ptr %18, align 4, !tbaa !14
  %2307 = add nsw i32 %2306, 1
  %2308 = sext i32 %2307 to i64
  %2309 = getelementptr inbounds i8, ptr %2305, i64 %2308
  store i8 %2304, ptr %2309, align 1, !tbaa !15
  %2310 = load ptr, ptr %14, align 8, !tbaa !5
  %2311 = load i32, ptr %18, align 4, !tbaa !14
  %2312 = add nsw i32 %2311, 2
  %2313 = sext i32 %2312 to i64
  %2314 = getelementptr inbounds i8, ptr %2310, i64 %2313
  %2315 = load i8, ptr %2314, align 1, !tbaa !15
  %2316 = zext i8 %2315 to i64
  %2317 = getelementptr inbounds [256 x i8], ptr @r_to_y, i64 0, i64 %2316
  %2318 = load i8, ptr %2317, align 1, !tbaa !15
  %2319 = zext i8 %2318 to i32
  %2320 = load ptr, ptr %13, align 8, !tbaa !5
  %2321 = load i32, ptr %18, align 4, !tbaa !14
  %2322 = add nsw i32 %2321, 2
  %2323 = sext i32 %2322 to i64
  %2324 = getelementptr inbounds i8, ptr %2320, i64 %2323
  %2325 = load i8, ptr %2324, align 1, !tbaa !15
  %2326 = zext i8 %2325 to i64
  %2327 = getelementptr inbounds [256 x i8], ptr @g_to_y, i64 0, i64 %2326
  %2328 = load i8, ptr %2327, align 1, !tbaa !15
  %2329 = zext i8 %2328 to i32
  %2330 = add nsw i32 %2319, %2329
  %2331 = load ptr, ptr %12, align 8, !tbaa !5
  %2332 = load i32, ptr %18, align 4, !tbaa !14
  %2333 = add nsw i32 %2332, 2
  %2334 = sext i32 %2333 to i64
  %2335 = getelementptr inbounds i8, ptr %2331, i64 %2334
  %2336 = load i8, ptr %2335, align 1, !tbaa !15
  %2337 = zext i8 %2336 to i64
  %2338 = getelementptr inbounds [256 x i8], ptr @b_to_y, i64 0, i64 %2337
  %2339 = load i8, ptr %2338, align 1, !tbaa !15
  %2340 = zext i8 %2339 to i32
  %2341 = add nsw i32 %2330, %2340
  %2342 = trunc i32 %2341 to i8
  %2343 = load ptr, ptr %15, align 8, !tbaa !5
  %2344 = load i32, ptr %18, align 4, !tbaa !14
  %2345 = add nsw i32 %2344, 2
  %2346 = sext i32 %2345 to i64
  %2347 = getelementptr inbounds i8, ptr %2343, i64 %2346
  store i8 %2342, ptr %2347, align 1, !tbaa !15
  %2348 = load ptr, ptr %10, align 8, !tbaa !5
  %2349 = load ptr, ptr %12, align 8, !tbaa !5
  %2350 = load i32, ptr %18, align 4, !tbaa !14
  %2351 = add nsw i32 %2350, 2
  %2352 = sext i32 %2351 to i64
  %2353 = getelementptr inbounds i8, ptr %2349, i64 %2352
  %2354 = load i8, ptr %2353, align 1, !tbaa !15
  %2355 = zext i8 %2354 to i32
  %2356 = load ptr, ptr %15, align 8, !tbaa !5
  %2357 = load i32, ptr %18, align 4, !tbaa !14
  %2358 = add nsw i32 %2357, 2
  %2359 = sext i32 %2358 to i64
  %2360 = getelementptr inbounds i8, ptr %2356, i64 %2359
  %2361 = load i8, ptr %2360, align 1, !tbaa !15
  %2362 = zext i8 %2361 to i32
  %2363 = sub nsw i32 %2355, %2362
  %2364 = sext i32 %2363 to i64
  %2365 = getelementptr inbounds i8, ptr %2348, i64 %2364
  %2366 = load i8, ptr %2365, align 1, !tbaa !15
  %2367 = load ptr, ptr %16, align 8, !tbaa !5
  %2368 = load i32, ptr %18, align 4, !tbaa !14
  %2369 = add nsw i32 %2368, 2
  %2370 = sext i32 %2369 to i64
  %2371 = getelementptr inbounds i8, ptr %2367, i64 %2370
  store i8 %2366, ptr %2371, align 1, !tbaa !15
  %2372 = load ptr, ptr %9, align 8, !tbaa !5
  %2373 = load ptr, ptr %14, align 8, !tbaa !5
  %2374 = load i32, ptr %18, align 4, !tbaa !14
  %2375 = add nsw i32 %2374, 2
  %2376 = sext i32 %2375 to i64
  %2377 = getelementptr inbounds i8, ptr %2373, i64 %2376
  %2378 = load i8, ptr %2377, align 1, !tbaa !15
  %2379 = zext i8 %2378 to i32
  %2380 = load ptr, ptr %15, align 8, !tbaa !5
  %2381 = load i32, ptr %18, align 4, !tbaa !14
  %2382 = add nsw i32 %2381, 2
  %2383 = sext i32 %2382 to i64
  %2384 = getelementptr inbounds i8, ptr %2380, i64 %2383
  %2385 = load i8, ptr %2384, align 1, !tbaa !15
  %2386 = zext i8 %2385 to i32
  %2387 = sub nsw i32 %2379, %2386
  %2388 = sext i32 %2387 to i64
  %2389 = getelementptr inbounds i8, ptr %2372, i64 %2388
  %2390 = load i8, ptr %2389, align 1, !tbaa !15
  %2391 = load ptr, ptr %17, align 8, !tbaa !5
  %2392 = load i32, ptr %18, align 4, !tbaa !14
  %2393 = add nsw i32 %2392, 2
  %2394 = sext i32 %2393 to i64
  %2395 = getelementptr inbounds i8, ptr %2391, i64 %2394
  store i8 %2390, ptr %2395, align 1, !tbaa !15
  %2396 = load ptr, ptr %14, align 8, !tbaa !5
  %2397 = load i32, ptr %18, align 4, !tbaa !14
  %2398 = add nsw i32 %2397, 3
  %2399 = sext i32 %2398 to i64
  %2400 = getelementptr inbounds i8, ptr %2396, i64 %2399
  %2401 = load i8, ptr %2400, align 1, !tbaa !15
  %2402 = zext i8 %2401 to i64
  %2403 = getelementptr inbounds [256 x i8], ptr @r_to_y, i64 0, i64 %2402
  %2404 = load i8, ptr %2403, align 1, !tbaa !15
  %2405 = zext i8 %2404 to i32
  %2406 = load ptr, ptr %13, align 8, !tbaa !5
  %2407 = load i32, ptr %18, align 4, !tbaa !14
  %2408 = add nsw i32 %2407, 3
  %2409 = sext i32 %2408 to i64
  %2410 = getelementptr inbounds i8, ptr %2406, i64 %2409
  %2411 = load i8, ptr %2410, align 1, !tbaa !15
  %2412 = zext i8 %2411 to i64
  %2413 = getelementptr inbounds [256 x i8], ptr @g_to_y, i64 0, i64 %2412
  %2414 = load i8, ptr %2413, align 1, !tbaa !15
  %2415 = zext i8 %2414 to i32
  %2416 = add nsw i32 %2405, %2415
  %2417 = load ptr, ptr %12, align 8, !tbaa !5
  %2418 = load i32, ptr %18, align 4, !tbaa !14
  %2419 = add nsw i32 %2418, 3
  %2420 = sext i32 %2419 to i64
  %2421 = getelementptr inbounds i8, ptr %2417, i64 %2420
  %2422 = load i8, ptr %2421, align 1, !tbaa !15
  %2423 = zext i8 %2422 to i64
  %2424 = getelementptr inbounds [256 x i8], ptr @b_to_y, i64 0, i64 %2423
  %2425 = load i8, ptr %2424, align 1, !tbaa !15
  %2426 = zext i8 %2425 to i32
  %2427 = add nsw i32 %2416, %2426
  %2428 = trunc i32 %2427 to i8
  %2429 = load ptr, ptr %15, align 8, !tbaa !5
  %2430 = load i32, ptr %18, align 4, !tbaa !14
  %2431 = add nsw i32 %2430, 3
  %2432 = sext i32 %2431 to i64
  %2433 = getelementptr inbounds i8, ptr %2429, i64 %2432
  store i8 %2428, ptr %2433, align 1, !tbaa !15
  %2434 = load ptr, ptr %10, align 8, !tbaa !5
  %2435 = load ptr, ptr %12, align 8, !tbaa !5
  %2436 = load i32, ptr %18, align 4, !tbaa !14
  %2437 = add nsw i32 %2436, 3
  %2438 = sext i32 %2437 to i64
  %2439 = getelementptr inbounds i8, ptr %2435, i64 %2438
  %2440 = load i8, ptr %2439, align 1, !tbaa !15
  %2441 = zext i8 %2440 to i32
  %2442 = load ptr, ptr %15, align 8, !tbaa !5
  %2443 = load i32, ptr %18, align 4, !tbaa !14
  %2444 = add nsw i32 %2443, 3
  %2445 = sext i32 %2444 to i64
  %2446 = getelementptr inbounds i8, ptr %2442, i64 %2445
  %2447 = load i8, ptr %2446, align 1, !tbaa !15
  %2448 = zext i8 %2447 to i32
  %2449 = sub nsw i32 %2441, %2448
  %2450 = sext i32 %2449 to i64
  %2451 = getelementptr inbounds i8, ptr %2434, i64 %2450
  %2452 = load i8, ptr %2451, align 1, !tbaa !15
  %2453 = load ptr, ptr %16, align 8, !tbaa !5
  %2454 = load i32, ptr %18, align 4, !tbaa !14
  %2455 = add nsw i32 %2454, 3
  %2456 = sext i32 %2455 to i64
  %2457 = getelementptr inbounds i8, ptr %2453, i64 %2456
  store i8 %2452, ptr %2457, align 1, !tbaa !15
  %2458 = load ptr, ptr %9, align 8, !tbaa !5
  %2459 = load ptr, ptr %14, align 8, !tbaa !5
  %2460 = load i32, ptr %18, align 4, !tbaa !14
  %2461 = add nsw i32 %2460, 3
  %2462 = sext i32 %2461 to i64
  %2463 = getelementptr inbounds i8, ptr %2459, i64 %2462
  %2464 = load i8, ptr %2463, align 1, !tbaa !15
  %2465 = zext i8 %2464 to i32
  %2466 = load ptr, ptr %15, align 8, !tbaa !5
  %2467 = load i32, ptr %18, align 4, !tbaa !14
  %2468 = add nsw i32 %2467, 3
  %2469 = sext i32 %2468 to i64
  %2470 = getelementptr inbounds i8, ptr %2466, i64 %2469
  %2471 = load i8, ptr %2470, align 1, !tbaa !15
  %2472 = zext i8 %2471 to i32
  %2473 = sub nsw i32 %2465, %2472
  %2474 = sext i32 %2473 to i64
  %2475 = getelementptr inbounds i8, ptr %2458, i64 %2474
  %2476 = load i8, ptr %2475, align 1, !tbaa !15
  %2477 = load ptr, ptr %17, align 8, !tbaa !5
  %2478 = load i32, ptr %18, align 4, !tbaa !14
  %2479 = add nsw i32 %2478, 3
  %2480 = sext i32 %2479 to i64
  %2481 = getelementptr inbounds i8, ptr %2477, i64 %2480
  store i8 %2476, ptr %2481, align 1, !tbaa !15
  br label %12041

2482:                                             ; preds = %2130
  %2483 = load ptr, ptr %4, align 8, !tbaa !5
  %2484 = getelementptr inbounds %struct.MImage, ptr %2483, i32 0, i32 2
  %2485 = load i32, ptr %2484, align 8, !tbaa !13
  %2486 = load i32, ptr %18, align 4, !tbaa !14
  %2487 = sub nsw i32 %2485, %2486
  %2488 = icmp eq i32 %2487, 5
  br i1 %2488, label %2489, label %2920

2489:                                             ; preds = %2482
  %2490 = load ptr, ptr %14, align 8, !tbaa !5
  %2491 = load i32, ptr %18, align 4, !tbaa !14
  %2492 = add nsw i32 %2491, 0
  %2493 = sext i32 %2492 to i64
  %2494 = getelementptr inbounds i8, ptr %2490, i64 %2493
  %2495 = load i8, ptr %2494, align 1, !tbaa !15
  %2496 = zext i8 %2495 to i64
  %2497 = getelementptr inbounds [256 x i8], ptr @r_to_y, i64 0, i64 %2496
  %2498 = load i8, ptr %2497, align 1, !tbaa !15
  %2499 = zext i8 %2498 to i32
  %2500 = load ptr, ptr %13, align 8, !tbaa !5
  %2501 = load i32, ptr %18, align 4, !tbaa !14
  %2502 = add nsw i32 %2501, 0
  %2503 = sext i32 %2502 to i64
  %2504 = getelementptr inbounds i8, ptr %2500, i64 %2503
  %2505 = load i8, ptr %2504, align 1, !tbaa !15
  %2506 = zext i8 %2505 to i64
  %2507 = getelementptr inbounds [256 x i8], ptr @g_to_y, i64 0, i64 %2506
  %2508 = load i8, ptr %2507, align 1, !tbaa !15
  %2509 = zext i8 %2508 to i32
  %2510 = add nsw i32 %2499, %2509
  %2511 = load ptr, ptr %12, align 8, !tbaa !5
  %2512 = load i32, ptr %18, align 4, !tbaa !14
  %2513 = add nsw i32 %2512, 0
  %2514 = sext i32 %2513 to i64
  %2515 = getelementptr inbounds i8, ptr %2511, i64 %2514
  %2516 = load i8, ptr %2515, align 1, !tbaa !15
  %2517 = zext i8 %2516 to i64
  %2518 = getelementptr inbounds [256 x i8], ptr @b_to_y, i64 0, i64 %2517
  %2519 = load i8, ptr %2518, align 1, !tbaa !15
  %2520 = zext i8 %2519 to i32
  %2521 = add nsw i32 %2510, %2520
  %2522 = trunc i32 %2521 to i8
  %2523 = load ptr, ptr %15, align 8, !tbaa !5
  %2524 = load i32, ptr %18, align 4, !tbaa !14
  %2525 = add nsw i32 %2524, 0
  %2526 = sext i32 %2525 to i64
  %2527 = getelementptr inbounds i8, ptr %2523, i64 %2526
  store i8 %2522, ptr %2527, align 1, !tbaa !15
  %2528 = load ptr, ptr %10, align 8, !tbaa !5
  %2529 = load ptr, ptr %12, align 8, !tbaa !5
  %2530 = load i32, ptr %18, align 4, !tbaa !14
  %2531 = add nsw i32 %2530, 0
  %2532 = sext i32 %2531 to i64
  %2533 = getelementptr inbounds i8, ptr %2529, i64 %2532
  %2534 = load i8, ptr %2533, align 1, !tbaa !15
  %2535 = zext i8 %2534 to i32
  %2536 = load ptr, ptr %15, align 8, !tbaa !5
  %2537 = load i32, ptr %18, align 4, !tbaa !14
  %2538 = add nsw i32 %2537, 0
  %2539 = sext i32 %2538 to i64
  %2540 = getelementptr inbounds i8, ptr %2536, i64 %2539
  %2541 = load i8, ptr %2540, align 1, !tbaa !15
  %2542 = zext i8 %2541 to i32
  %2543 = sub nsw i32 %2535, %2542
  %2544 = sext i32 %2543 to i64
  %2545 = getelementptr inbounds i8, ptr %2528, i64 %2544
  %2546 = load i8, ptr %2545, align 1, !tbaa !15
  %2547 = load ptr, ptr %16, align 8, !tbaa !5
  %2548 = load i32, ptr %18, align 4, !tbaa !14
  %2549 = add nsw i32 %2548, 0
  %2550 = sext i32 %2549 to i64
  %2551 = getelementptr inbounds i8, ptr %2547, i64 %2550
  store i8 %2546, ptr %2551, align 1, !tbaa !15
  %2552 = load ptr, ptr %9, align 8, !tbaa !5
  %2553 = load ptr, ptr %14, align 8, !tbaa !5
  %2554 = load i32, ptr %18, align 4, !tbaa !14
  %2555 = add nsw i32 %2554, 0
  %2556 = sext i32 %2555 to i64
  %2557 = getelementptr inbounds i8, ptr %2553, i64 %2556
  %2558 = load i8, ptr %2557, align 1, !tbaa !15
  %2559 = zext i8 %2558 to i32
  %2560 = load ptr, ptr %15, align 8, !tbaa !5
  %2561 = load i32, ptr %18, align 4, !tbaa !14
  %2562 = add nsw i32 %2561, 0
  %2563 = sext i32 %2562 to i64
  %2564 = getelementptr inbounds i8, ptr %2560, i64 %2563
  %2565 = load i8, ptr %2564, align 1, !tbaa !15
  %2566 = zext i8 %2565 to i32
  %2567 = sub nsw i32 %2559, %2566
  %2568 = sext i32 %2567 to i64
  %2569 = getelementptr inbounds i8, ptr %2552, i64 %2568
  %2570 = load i8, ptr %2569, align 1, !tbaa !15
  %2571 = load ptr, ptr %17, align 8, !tbaa !5
  %2572 = load i32, ptr %18, align 4, !tbaa !14
  %2573 = add nsw i32 %2572, 0
  %2574 = sext i32 %2573 to i64
  %2575 = getelementptr inbounds i8, ptr %2571, i64 %2574
  store i8 %2570, ptr %2575, align 1, !tbaa !15
  %2576 = load ptr, ptr %14, align 8, !tbaa !5
  %2577 = load i32, ptr %18, align 4, !tbaa !14
  %2578 = add nsw i32 %2577, 1
  %2579 = sext i32 %2578 to i64
  %2580 = getelementptr inbounds i8, ptr %2576, i64 %2579
  %2581 = load i8, ptr %2580, align 1, !tbaa !15
  %2582 = zext i8 %2581 to i64
  %2583 = getelementptr inbounds [256 x i8], ptr @r_to_y, i64 0, i64 %2582
  %2584 = load i8, ptr %2583, align 1, !tbaa !15
  %2585 = zext i8 %2584 to i32
  %2586 = load ptr, ptr %13, align 8, !tbaa !5
  %2587 = load i32, ptr %18, align 4, !tbaa !14
  %2588 = add nsw i32 %2587, 1
  %2589 = sext i32 %2588 to i64
  %2590 = getelementptr inbounds i8, ptr %2586, i64 %2589
  %2591 = load i8, ptr %2590, align 1, !tbaa !15
  %2592 = zext i8 %2591 to i64
  %2593 = getelementptr inbounds [256 x i8], ptr @g_to_y, i64 0, i64 %2592
  %2594 = load i8, ptr %2593, align 1, !tbaa !15
  %2595 = zext i8 %2594 to i32
  %2596 = add nsw i32 %2585, %2595
  %2597 = load ptr, ptr %12, align 8, !tbaa !5
  %2598 = load i32, ptr %18, align 4, !tbaa !14
  %2599 = add nsw i32 %2598, 1
  %2600 = sext i32 %2599 to i64
  %2601 = getelementptr inbounds i8, ptr %2597, i64 %2600
  %2602 = load i8, ptr %2601, align 1, !tbaa !15
  %2603 = zext i8 %2602 to i64
  %2604 = getelementptr inbounds [256 x i8], ptr @b_to_y, i64 0, i64 %2603
  %2605 = load i8, ptr %2604, align 1, !tbaa !15
  %2606 = zext i8 %2605 to i32
  %2607 = add nsw i32 %2596, %2606
  %2608 = trunc i32 %2607 to i8
  %2609 = load ptr, ptr %15, align 8, !tbaa !5
  %2610 = load i32, ptr %18, align 4, !tbaa !14
  %2611 = add nsw i32 %2610, 1
  %2612 = sext i32 %2611 to i64
  %2613 = getelementptr inbounds i8, ptr %2609, i64 %2612
  store i8 %2608, ptr %2613, align 1, !tbaa !15
  %2614 = load ptr, ptr %10, align 8, !tbaa !5
  %2615 = load ptr, ptr %12, align 8, !tbaa !5
  %2616 = load i32, ptr %18, align 4, !tbaa !14
  %2617 = add nsw i32 %2616, 1
  %2618 = sext i32 %2617 to i64
  %2619 = getelementptr inbounds i8, ptr %2615, i64 %2618
  %2620 = load i8, ptr %2619, align 1, !tbaa !15
  %2621 = zext i8 %2620 to i32
  %2622 = load ptr, ptr %15, align 8, !tbaa !5
  %2623 = load i32, ptr %18, align 4, !tbaa !14
  %2624 = add nsw i32 %2623, 1
  %2625 = sext i32 %2624 to i64
  %2626 = getelementptr inbounds i8, ptr %2622, i64 %2625
  %2627 = load i8, ptr %2626, align 1, !tbaa !15
  %2628 = zext i8 %2627 to i32
  %2629 = sub nsw i32 %2621, %2628
  %2630 = sext i32 %2629 to i64
  %2631 = getelementptr inbounds i8, ptr %2614, i64 %2630
  %2632 = load i8, ptr %2631, align 1, !tbaa !15
  %2633 = load ptr, ptr %16, align 8, !tbaa !5
  %2634 = load i32, ptr %18, align 4, !tbaa !14
  %2635 = add nsw i32 %2634, 1
  %2636 = sext i32 %2635 to i64
  %2637 = getelementptr inbounds i8, ptr %2633, i64 %2636
  store i8 %2632, ptr %2637, align 1, !tbaa !15
  %2638 = load ptr, ptr %9, align 8, !tbaa !5
  %2639 = load ptr, ptr %14, align 8, !tbaa !5
  %2640 = load i32, ptr %18, align 4, !tbaa !14
  %2641 = add nsw i32 %2640, 1
  %2642 = sext i32 %2641 to i64
  %2643 = getelementptr inbounds i8, ptr %2639, i64 %2642
  %2644 = load i8, ptr %2643, align 1, !tbaa !15
  %2645 = zext i8 %2644 to i32
  %2646 = load ptr, ptr %15, align 8, !tbaa !5
  %2647 = load i32, ptr %18, align 4, !tbaa !14
  %2648 = add nsw i32 %2647, 1
  %2649 = sext i32 %2648 to i64
  %2650 = getelementptr inbounds i8, ptr %2646, i64 %2649
  %2651 = load i8, ptr %2650, align 1, !tbaa !15
  %2652 = zext i8 %2651 to i32
  %2653 = sub nsw i32 %2645, %2652
  %2654 = sext i32 %2653 to i64
  %2655 = getelementptr inbounds i8, ptr %2638, i64 %2654
  %2656 = load i8, ptr %2655, align 1, !tbaa !15
  %2657 = load ptr, ptr %17, align 8, !tbaa !5
  %2658 = load i32, ptr %18, align 4, !tbaa !14
  %2659 = add nsw i32 %2658, 1
  %2660 = sext i32 %2659 to i64
  %2661 = getelementptr inbounds i8, ptr %2657, i64 %2660
  store i8 %2656, ptr %2661, align 1, !tbaa !15
  %2662 = load ptr, ptr %14, align 8, !tbaa !5
  %2663 = load i32, ptr %18, align 4, !tbaa !14
  %2664 = add nsw i32 %2663, 2
  %2665 = sext i32 %2664 to i64
  %2666 = getelementptr inbounds i8, ptr %2662, i64 %2665
  %2667 = load i8, ptr %2666, align 1, !tbaa !15
  %2668 = zext i8 %2667 to i64
  %2669 = getelementptr inbounds [256 x i8], ptr @r_to_y, i64 0, i64 %2668
  %2670 = load i8, ptr %2669, align 1, !tbaa !15
  %2671 = zext i8 %2670 to i32
  %2672 = load ptr, ptr %13, align 8, !tbaa !5
  %2673 = load i32, ptr %18, align 4, !tbaa !14
  %2674 = add nsw i32 %2673, 2
  %2675 = sext i32 %2674 to i64
  %2676 = getelementptr inbounds i8, ptr %2672, i64 %2675
  %2677 = load i8, ptr %2676, align 1, !tbaa !15
  %2678 = zext i8 %2677 to i64
  %2679 = getelementptr inbounds [256 x i8], ptr @g_to_y, i64 0, i64 %2678
  %2680 = load i8, ptr %2679, align 1, !tbaa !15
  %2681 = zext i8 %2680 to i32
  %2682 = add nsw i32 %2671, %2681
  %2683 = load ptr, ptr %12, align 8, !tbaa !5
  %2684 = load i32, ptr %18, align 4, !tbaa !14
  %2685 = add nsw i32 %2684, 2
  %2686 = sext i32 %2685 to i64
  %2687 = getelementptr inbounds i8, ptr %2683, i64 %2686
  %2688 = load i8, ptr %2687, align 1, !tbaa !15
  %2689 = zext i8 %2688 to i64
  %2690 = getelementptr inbounds [256 x i8], ptr @b_to_y, i64 0, i64 %2689
  %2691 = load i8, ptr %2690, align 1, !tbaa !15
  %2692 = zext i8 %2691 to i32
  %2693 = add nsw i32 %2682, %2692
  %2694 = trunc i32 %2693 to i8
  %2695 = load ptr, ptr %15, align 8, !tbaa !5
  %2696 = load i32, ptr %18, align 4, !tbaa !14
  %2697 = add nsw i32 %2696, 2
  %2698 = sext i32 %2697 to i64
  %2699 = getelementptr inbounds i8, ptr %2695, i64 %2698
  store i8 %2694, ptr %2699, align 1, !tbaa !15
  %2700 = load ptr, ptr %10, align 8, !tbaa !5
  %2701 = load ptr, ptr %12, align 8, !tbaa !5
  %2702 = load i32, ptr %18, align 4, !tbaa !14
  %2703 = add nsw i32 %2702, 2
  %2704 = sext i32 %2703 to i64
  %2705 = getelementptr inbounds i8, ptr %2701, i64 %2704
  %2706 = load i8, ptr %2705, align 1, !tbaa !15
  %2707 = zext i8 %2706 to i32
  %2708 = load ptr, ptr %15, align 8, !tbaa !5
  %2709 = load i32, ptr %18, align 4, !tbaa !14
  %2710 = add nsw i32 %2709, 2
  %2711 = sext i32 %2710 to i64
  %2712 = getelementptr inbounds i8, ptr %2708, i64 %2711
  %2713 = load i8, ptr %2712, align 1, !tbaa !15
  %2714 = zext i8 %2713 to i32
  %2715 = sub nsw i32 %2707, %2714
  %2716 = sext i32 %2715 to i64
  %2717 = getelementptr inbounds i8, ptr %2700, i64 %2716
  %2718 = load i8, ptr %2717, align 1, !tbaa !15
  %2719 = load ptr, ptr %16, align 8, !tbaa !5
  %2720 = load i32, ptr %18, align 4, !tbaa !14
  %2721 = add nsw i32 %2720, 2
  %2722 = sext i32 %2721 to i64
  %2723 = getelementptr inbounds i8, ptr %2719, i64 %2722
  store i8 %2718, ptr %2723, align 1, !tbaa !15
  %2724 = load ptr, ptr %9, align 8, !tbaa !5
  %2725 = load ptr, ptr %14, align 8, !tbaa !5
  %2726 = load i32, ptr %18, align 4, !tbaa !14
  %2727 = add nsw i32 %2726, 2
  %2728 = sext i32 %2727 to i64
  %2729 = getelementptr inbounds i8, ptr %2725, i64 %2728
  %2730 = load i8, ptr %2729, align 1, !tbaa !15
  %2731 = zext i8 %2730 to i32
  %2732 = load ptr, ptr %15, align 8, !tbaa !5
  %2733 = load i32, ptr %18, align 4, !tbaa !14
  %2734 = add nsw i32 %2733, 2
  %2735 = sext i32 %2734 to i64
  %2736 = getelementptr inbounds i8, ptr %2732, i64 %2735
  %2737 = load i8, ptr %2736, align 1, !tbaa !15
  %2738 = zext i8 %2737 to i32
  %2739 = sub nsw i32 %2731, %2738
  %2740 = sext i32 %2739 to i64
  %2741 = getelementptr inbounds i8, ptr %2724, i64 %2740
  %2742 = load i8, ptr %2741, align 1, !tbaa !15
  %2743 = load ptr, ptr %17, align 8, !tbaa !5
  %2744 = load i32, ptr %18, align 4, !tbaa !14
  %2745 = add nsw i32 %2744, 2
  %2746 = sext i32 %2745 to i64
  %2747 = getelementptr inbounds i8, ptr %2743, i64 %2746
  store i8 %2742, ptr %2747, align 1, !tbaa !15
  %2748 = load ptr, ptr %14, align 8, !tbaa !5
  %2749 = load i32, ptr %18, align 4, !tbaa !14
  %2750 = add nsw i32 %2749, 3
  %2751 = sext i32 %2750 to i64
  %2752 = getelementptr inbounds i8, ptr %2748, i64 %2751
  %2753 = load i8, ptr %2752, align 1, !tbaa !15
  %2754 = zext i8 %2753 to i64
  %2755 = getelementptr inbounds [256 x i8], ptr @r_to_y, i64 0, i64 %2754
  %2756 = load i8, ptr %2755, align 1, !tbaa !15
  %2757 = zext i8 %2756 to i32
  %2758 = load ptr, ptr %13, align 8, !tbaa !5
  %2759 = load i32, ptr %18, align 4, !tbaa !14
  %2760 = add nsw i32 %2759, 3
  %2761 = sext i32 %2760 to i64
  %2762 = getelementptr inbounds i8, ptr %2758, i64 %2761
  %2763 = load i8, ptr %2762, align 1, !tbaa !15
  %2764 = zext i8 %2763 to i64
  %2765 = getelementptr inbounds [256 x i8], ptr @g_to_y, i64 0, i64 %2764
  %2766 = load i8, ptr %2765, align 1, !tbaa !15
  %2767 = zext i8 %2766 to i32
  %2768 = add nsw i32 %2757, %2767
  %2769 = load ptr, ptr %12, align 8, !tbaa !5
  %2770 = load i32, ptr %18, align 4, !tbaa !14
  %2771 = add nsw i32 %2770, 3
  %2772 = sext i32 %2771 to i64
  %2773 = getelementptr inbounds i8, ptr %2769, i64 %2772
  %2774 = load i8, ptr %2773, align 1, !tbaa !15
  %2775 = zext i8 %2774 to i64
  %2776 = getelementptr inbounds [256 x i8], ptr @b_to_y, i64 0, i64 %2775
  %2777 = load i8, ptr %2776, align 1, !tbaa !15
  %2778 = zext i8 %2777 to i32
  %2779 = add nsw i32 %2768, %2778
  %2780 = trunc i32 %2779 to i8
  %2781 = load ptr, ptr %15, align 8, !tbaa !5
  %2782 = load i32, ptr %18, align 4, !tbaa !14
  %2783 = add nsw i32 %2782, 3
  %2784 = sext i32 %2783 to i64
  %2785 = getelementptr inbounds i8, ptr %2781, i64 %2784
  store i8 %2780, ptr %2785, align 1, !tbaa !15
  %2786 = load ptr, ptr %10, align 8, !tbaa !5
  %2787 = load ptr, ptr %12, align 8, !tbaa !5
  %2788 = load i32, ptr %18, align 4, !tbaa !14
  %2789 = add nsw i32 %2788, 3
  %2790 = sext i32 %2789 to i64
  %2791 = getelementptr inbounds i8, ptr %2787, i64 %2790
  %2792 = load i8, ptr %2791, align 1, !tbaa !15
  %2793 = zext i8 %2792 to i32
  %2794 = load ptr, ptr %15, align 8, !tbaa !5
  %2795 = load i32, ptr %18, align 4, !tbaa !14
  %2796 = add nsw i32 %2795, 3
  %2797 = sext i32 %2796 to i64
  %2798 = getelementptr inbounds i8, ptr %2794, i64 %2797
  %2799 = load i8, ptr %2798, align 1, !tbaa !15
  %2800 = zext i8 %2799 to i32
  %2801 = sub nsw i32 %2793, %2800
  %2802 = sext i32 %2801 to i64
  %2803 = getelementptr inbounds i8, ptr %2786, i64 %2802
  %2804 = load i8, ptr %2803, align 1, !tbaa !15
  %2805 = load ptr, ptr %16, align 8, !tbaa !5
  %2806 = load i32, ptr %18, align 4, !tbaa !14
  %2807 = add nsw i32 %2806, 3
  %2808 = sext i32 %2807 to i64
  %2809 = getelementptr inbounds i8, ptr %2805, i64 %2808
  store i8 %2804, ptr %2809, align 1, !tbaa !15
  %2810 = load ptr, ptr %9, align 8, !tbaa !5
  %2811 = load ptr, ptr %14, align 8, !tbaa !5
  %2812 = load i32, ptr %18, align 4, !tbaa !14
  %2813 = add nsw i32 %2812, 3
  %2814 = sext i32 %2813 to i64
  %2815 = getelementptr inbounds i8, ptr %2811, i64 %2814
  %2816 = load i8, ptr %2815, align 1, !tbaa !15
  %2817 = zext i8 %2816 to i32
  %2818 = load ptr, ptr %15, align 8, !tbaa !5
  %2819 = load i32, ptr %18, align 4, !tbaa !14
  %2820 = add nsw i32 %2819, 3
  %2821 = sext i32 %2820 to i64
  %2822 = getelementptr inbounds i8, ptr %2818, i64 %2821
  %2823 = load i8, ptr %2822, align 1, !tbaa !15
  %2824 = zext i8 %2823 to i32
  %2825 = sub nsw i32 %2817, %2824
  %2826 = sext i32 %2825 to i64
  %2827 = getelementptr inbounds i8, ptr %2810, i64 %2826
  %2828 = load i8, ptr %2827, align 1, !tbaa !15
  %2829 = load ptr, ptr %17, align 8, !tbaa !5
  %2830 = load i32, ptr %18, align 4, !tbaa !14
  %2831 = add nsw i32 %2830, 3
  %2832 = sext i32 %2831 to i64
  %2833 = getelementptr inbounds i8, ptr %2829, i64 %2832
  store i8 %2828, ptr %2833, align 1, !tbaa !15
  %2834 = load ptr, ptr %14, align 8, !tbaa !5
  %2835 = load i32, ptr %18, align 4, !tbaa !14
  %2836 = add nsw i32 %2835, 4
  %2837 = sext i32 %2836 to i64
  %2838 = getelementptr inbounds i8, ptr %2834, i64 %2837
  %2839 = load i8, ptr %2838, align 1, !tbaa !15
  %2840 = zext i8 %2839 to i64
  %2841 = getelementptr inbounds [256 x i8], ptr @r_to_y, i64 0, i64 %2840
  %2842 = load i8, ptr %2841, align 1, !tbaa !15
  %2843 = zext i8 %2842 to i32
  %2844 = load ptr, ptr %13, align 8, !tbaa !5
  %2845 = load i32, ptr %18, align 4, !tbaa !14
  %2846 = add nsw i32 %2845, 4
  %2847 = sext i32 %2846 to i64
  %2848 = getelementptr inbounds i8, ptr %2844, i64 %2847
  %2849 = load i8, ptr %2848, align 1, !tbaa !15
  %2850 = zext i8 %2849 to i64
  %2851 = getelementptr inbounds [256 x i8], ptr @g_to_y, i64 0, i64 %2850
  %2852 = load i8, ptr %2851, align 1, !tbaa !15
  %2853 = zext i8 %2852 to i32
  %2854 = add nsw i32 %2843, %2853
  %2855 = load ptr, ptr %12, align 8, !tbaa !5
  %2856 = load i32, ptr %18, align 4, !tbaa !14
  %2857 = add nsw i32 %2856, 4
  %2858 = sext i32 %2857 to i64
  %2859 = getelementptr inbounds i8, ptr %2855, i64 %2858
  %2860 = load i8, ptr %2859, align 1, !tbaa !15
  %2861 = zext i8 %2860 to i64
  %2862 = getelementptr inbounds [256 x i8], ptr @b_to_y, i64 0, i64 %2861
  %2863 = load i8, ptr %2862, align 1, !tbaa !15
  %2864 = zext i8 %2863 to i32
  %2865 = add nsw i32 %2854, %2864
  %2866 = trunc i32 %2865 to i8
  %2867 = load ptr, ptr %15, align 8, !tbaa !5
  %2868 = load i32, ptr %18, align 4, !tbaa !14
  %2869 = add nsw i32 %2868, 4
  %2870 = sext i32 %2869 to i64
  %2871 = getelementptr inbounds i8, ptr %2867, i64 %2870
  store i8 %2866, ptr %2871, align 1, !tbaa !15
  %2872 = load ptr, ptr %10, align 8, !tbaa !5
  %2873 = load ptr, ptr %12, align 8, !tbaa !5
  %2874 = load i32, ptr %18, align 4, !tbaa !14
  %2875 = add nsw i32 %2874, 4
  %2876 = sext i32 %2875 to i64
  %2877 = getelementptr inbounds i8, ptr %2873, i64 %2876
  %2878 = load i8, ptr %2877, align 1, !tbaa !15
  %2879 = zext i8 %2878 to i32
  %2880 = load ptr, ptr %15, align 8, !tbaa !5
  %2881 = load i32, ptr %18, align 4, !tbaa !14
  %2882 = add nsw i32 %2881, 4
  %2883 = sext i32 %2882 to i64
  %2884 = getelementptr inbounds i8, ptr %2880, i64 %2883
  %2885 = load i8, ptr %2884, align 1, !tbaa !15
  %2886 = zext i8 %2885 to i32
  %2887 = sub nsw i32 %2879, %2886
  %2888 = sext i32 %2887 to i64
  %2889 = getelementptr inbounds i8, ptr %2872, i64 %2888
  %2890 = load i8, ptr %2889, align 1, !tbaa !15
  %2891 = load ptr, ptr %16, align 8, !tbaa !5
  %2892 = load i32, ptr %18, align 4, !tbaa !14
  %2893 = add nsw i32 %2892, 4
  %2894 = sext i32 %2893 to i64
  %2895 = getelementptr inbounds i8, ptr %2891, i64 %2894
  store i8 %2890, ptr %2895, align 1, !tbaa !15
  %2896 = load ptr, ptr %9, align 8, !tbaa !5
  %2897 = load ptr, ptr %14, align 8, !tbaa !5
  %2898 = load i32, ptr %18, align 4, !tbaa !14
  %2899 = add nsw i32 %2898, 4
  %2900 = sext i32 %2899 to i64
  %2901 = getelementptr inbounds i8, ptr %2897, i64 %2900
  %2902 = load i8, ptr %2901, align 1, !tbaa !15
  %2903 = zext i8 %2902 to i32
  %2904 = load ptr, ptr %15, align 8, !tbaa !5
  %2905 = load i32, ptr %18, align 4, !tbaa !14
  %2906 = add nsw i32 %2905, 4
  %2907 = sext i32 %2906 to i64
  %2908 = getelementptr inbounds i8, ptr %2904, i64 %2907
  %2909 = load i8, ptr %2908, align 1, !tbaa !15
  %2910 = zext i8 %2909 to i32
  %2911 = sub nsw i32 %2903, %2910
  %2912 = sext i32 %2911 to i64
  %2913 = getelementptr inbounds i8, ptr %2896, i64 %2912
  %2914 = load i8, ptr %2913, align 1, !tbaa !15
  %2915 = load ptr, ptr %17, align 8, !tbaa !5
  %2916 = load i32, ptr %18, align 4, !tbaa !14
  %2917 = add nsw i32 %2916, 4
  %2918 = sext i32 %2917 to i64
  %2919 = getelementptr inbounds i8, ptr %2915, i64 %2918
  store i8 %2914, ptr %2919, align 1, !tbaa !15
  br label %12040

2920:                                             ; preds = %2482
  %2921 = load ptr, ptr %4, align 8, !tbaa !5
  %2922 = getelementptr inbounds %struct.MImage, ptr %2921, i32 0, i32 2
  %2923 = load i32, ptr %2922, align 8, !tbaa !13
  %2924 = load i32, ptr %18, align 4, !tbaa !14
  %2925 = sub nsw i32 %2923, %2924
  %2926 = icmp eq i32 %2925, 6
  br i1 %2926, label %2927, label %3444

2927:                                             ; preds = %2920
  %2928 = load ptr, ptr %14, align 8, !tbaa !5
  %2929 = load i32, ptr %18, align 4, !tbaa !14
  %2930 = add nsw i32 %2929, 0
  %2931 = sext i32 %2930 to i64
  %2932 = getelementptr inbounds i8, ptr %2928, i64 %2931
  %2933 = load i8, ptr %2932, align 1, !tbaa !15
  %2934 = zext i8 %2933 to i64
  %2935 = getelementptr inbounds [256 x i8], ptr @r_to_y, i64 0, i64 %2934
  %2936 = load i8, ptr %2935, align 1, !tbaa !15
  %2937 = zext i8 %2936 to i32
  %2938 = load ptr, ptr %13, align 8, !tbaa !5
  %2939 = load i32, ptr %18, align 4, !tbaa !14
  %2940 = add nsw i32 %2939, 0
  %2941 = sext i32 %2940 to i64
  %2942 = getelementptr inbounds i8, ptr %2938, i64 %2941
  %2943 = load i8, ptr %2942, align 1, !tbaa !15
  %2944 = zext i8 %2943 to i64
  %2945 = getelementptr inbounds [256 x i8], ptr @g_to_y, i64 0, i64 %2944
  %2946 = load i8, ptr %2945, align 1, !tbaa !15
  %2947 = zext i8 %2946 to i32
  %2948 = add nsw i32 %2937, %2947
  %2949 = load ptr, ptr %12, align 8, !tbaa !5
  %2950 = load i32, ptr %18, align 4, !tbaa !14
  %2951 = add nsw i32 %2950, 0
  %2952 = sext i32 %2951 to i64
  %2953 = getelementptr inbounds i8, ptr %2949, i64 %2952
  %2954 = load i8, ptr %2953, align 1, !tbaa !15
  %2955 = zext i8 %2954 to i64
  %2956 = getelementptr inbounds [256 x i8], ptr @b_to_y, i64 0, i64 %2955
  %2957 = load i8, ptr %2956, align 1, !tbaa !15
  %2958 = zext i8 %2957 to i32
  %2959 = add nsw i32 %2948, %2958
  %2960 = trunc i32 %2959 to i8
  %2961 = load ptr, ptr %15, align 8, !tbaa !5
  %2962 = load i32, ptr %18, align 4, !tbaa !14
  %2963 = add nsw i32 %2962, 0
  %2964 = sext i32 %2963 to i64
  %2965 = getelementptr inbounds i8, ptr %2961, i64 %2964
  store i8 %2960, ptr %2965, align 1, !tbaa !15
  %2966 = load ptr, ptr %10, align 8, !tbaa !5
  %2967 = load ptr, ptr %12, align 8, !tbaa !5
  %2968 = load i32, ptr %18, align 4, !tbaa !14
  %2969 = add nsw i32 %2968, 0
  %2970 = sext i32 %2969 to i64
  %2971 = getelementptr inbounds i8, ptr %2967, i64 %2970
  %2972 = load i8, ptr %2971, align 1, !tbaa !15
  %2973 = zext i8 %2972 to i32
  %2974 = load ptr, ptr %15, align 8, !tbaa !5
  %2975 = load i32, ptr %18, align 4, !tbaa !14
  %2976 = add nsw i32 %2975, 0
  %2977 = sext i32 %2976 to i64
  %2978 = getelementptr inbounds i8, ptr %2974, i64 %2977
  %2979 = load i8, ptr %2978, align 1, !tbaa !15
  %2980 = zext i8 %2979 to i32
  %2981 = sub nsw i32 %2973, %2980
  %2982 = sext i32 %2981 to i64
  %2983 = getelementptr inbounds i8, ptr %2966, i64 %2982
  %2984 = load i8, ptr %2983, align 1, !tbaa !15
  %2985 = load ptr, ptr %16, align 8, !tbaa !5
  %2986 = load i32, ptr %18, align 4, !tbaa !14
  %2987 = add nsw i32 %2986, 0
  %2988 = sext i32 %2987 to i64
  %2989 = getelementptr inbounds i8, ptr %2985, i64 %2988
  store i8 %2984, ptr %2989, align 1, !tbaa !15
  %2990 = load ptr, ptr %9, align 8, !tbaa !5
  %2991 = load ptr, ptr %14, align 8, !tbaa !5
  %2992 = load i32, ptr %18, align 4, !tbaa !14
  %2993 = add nsw i32 %2992, 0
  %2994 = sext i32 %2993 to i64
  %2995 = getelementptr inbounds i8, ptr %2991, i64 %2994
  %2996 = load i8, ptr %2995, align 1, !tbaa !15
  %2997 = zext i8 %2996 to i32
  %2998 = load ptr, ptr %15, align 8, !tbaa !5
  %2999 = load i32, ptr %18, align 4, !tbaa !14
  %3000 = add nsw i32 %2999, 0
  %3001 = sext i32 %3000 to i64
  %3002 = getelementptr inbounds i8, ptr %2998, i64 %3001
  %3003 = load i8, ptr %3002, align 1, !tbaa !15
  %3004 = zext i8 %3003 to i32
  %3005 = sub nsw i32 %2997, %3004
  %3006 = sext i32 %3005 to i64
  %3007 = getelementptr inbounds i8, ptr %2990, i64 %3006
  %3008 = load i8, ptr %3007, align 1, !tbaa !15
  %3009 = load ptr, ptr %17, align 8, !tbaa !5
  %3010 = load i32, ptr %18, align 4, !tbaa !14
  %3011 = add nsw i32 %3010, 0
  %3012 = sext i32 %3011 to i64
  %3013 = getelementptr inbounds i8, ptr %3009, i64 %3012
  store i8 %3008, ptr %3013, align 1, !tbaa !15
  %3014 = load ptr, ptr %14, align 8, !tbaa !5
  %3015 = load i32, ptr %18, align 4, !tbaa !14
  %3016 = add nsw i32 %3015, 1
  %3017 = sext i32 %3016 to i64
  %3018 = getelementptr inbounds i8, ptr %3014, i64 %3017
  %3019 = load i8, ptr %3018, align 1, !tbaa !15
  %3020 = zext i8 %3019 to i64
  %3021 = getelementptr inbounds [256 x i8], ptr @r_to_y, i64 0, i64 %3020
  %3022 = load i8, ptr %3021, align 1, !tbaa !15
  %3023 = zext i8 %3022 to i32
  %3024 = load ptr, ptr %13, align 8, !tbaa !5
  %3025 = load i32, ptr %18, align 4, !tbaa !14
  %3026 = add nsw i32 %3025, 1
  %3027 = sext i32 %3026 to i64
  %3028 = getelementptr inbounds i8, ptr %3024, i64 %3027
  %3029 = load i8, ptr %3028, align 1, !tbaa !15
  %3030 = zext i8 %3029 to i64
  %3031 = getelementptr inbounds [256 x i8], ptr @g_to_y, i64 0, i64 %3030
  %3032 = load i8, ptr %3031, align 1, !tbaa !15
  %3033 = zext i8 %3032 to i32
  %3034 = add nsw i32 %3023, %3033
  %3035 = load ptr, ptr %12, align 8, !tbaa !5
  %3036 = load i32, ptr %18, align 4, !tbaa !14
  %3037 = add nsw i32 %3036, 1
  %3038 = sext i32 %3037 to i64
  %3039 = getelementptr inbounds i8, ptr %3035, i64 %3038
  %3040 = load i8, ptr %3039, align 1, !tbaa !15
  %3041 = zext i8 %3040 to i64
  %3042 = getelementptr inbounds [256 x i8], ptr @b_to_y, i64 0, i64 %3041
  %3043 = load i8, ptr %3042, align 1, !tbaa !15
  %3044 = zext i8 %3043 to i32
  %3045 = add nsw i32 %3034, %3044
  %3046 = trunc i32 %3045 to i8
  %3047 = load ptr, ptr %15, align 8, !tbaa !5
  %3048 = load i32, ptr %18, align 4, !tbaa !14
  %3049 = add nsw i32 %3048, 1
  %3050 = sext i32 %3049 to i64
  %3051 = getelementptr inbounds i8, ptr %3047, i64 %3050
  store i8 %3046, ptr %3051, align 1, !tbaa !15
  %3052 = load ptr, ptr %10, align 8, !tbaa !5
  %3053 = load ptr, ptr %12, align 8, !tbaa !5
  %3054 = load i32, ptr %18, align 4, !tbaa !14
  %3055 = add nsw i32 %3054, 1
  %3056 = sext i32 %3055 to i64
  %3057 = getelementptr inbounds i8, ptr %3053, i64 %3056
  %3058 = load i8, ptr %3057, align 1, !tbaa !15
  %3059 = zext i8 %3058 to i32
  %3060 = load ptr, ptr %15, align 8, !tbaa !5
  %3061 = load i32, ptr %18, align 4, !tbaa !14
  %3062 = add nsw i32 %3061, 1
  %3063 = sext i32 %3062 to i64
  %3064 = getelementptr inbounds i8, ptr %3060, i64 %3063
  %3065 = load i8, ptr %3064, align 1, !tbaa !15
  %3066 = zext i8 %3065 to i32
  %3067 = sub nsw i32 %3059, %3066
  %3068 = sext i32 %3067 to i64
  %3069 = getelementptr inbounds i8, ptr %3052, i64 %3068
  %3070 = load i8, ptr %3069, align 1, !tbaa !15
  %3071 = load ptr, ptr %16, align 8, !tbaa !5
  %3072 = load i32, ptr %18, align 4, !tbaa !14
  %3073 = add nsw i32 %3072, 1
  %3074 = sext i32 %3073 to i64
  %3075 = getelementptr inbounds i8, ptr %3071, i64 %3074
  store i8 %3070, ptr %3075, align 1, !tbaa !15
  %3076 = load ptr, ptr %9, align 8, !tbaa !5
  %3077 = load ptr, ptr %14, align 8, !tbaa !5
  %3078 = load i32, ptr %18, align 4, !tbaa !14
  %3079 = add nsw i32 %3078, 1
  %3080 = sext i32 %3079 to i64
  %3081 = getelementptr inbounds i8, ptr %3077, i64 %3080
  %3082 = load i8, ptr %3081, align 1, !tbaa !15
  %3083 = zext i8 %3082 to i32
  %3084 = load ptr, ptr %15, align 8, !tbaa !5
  %3085 = load i32, ptr %18, align 4, !tbaa !14
  %3086 = add nsw i32 %3085, 1
  %3087 = sext i32 %3086 to i64
  %3088 = getelementptr inbounds i8, ptr %3084, i64 %3087
  %3089 = load i8, ptr %3088, align 1, !tbaa !15
  %3090 = zext i8 %3089 to i32
  %3091 = sub nsw i32 %3083, %3090
  %3092 = sext i32 %3091 to i64
  %3093 = getelementptr inbounds i8, ptr %3076, i64 %3092
  %3094 = load i8, ptr %3093, align 1, !tbaa !15
  %3095 = load ptr, ptr %17, align 8, !tbaa !5
  %3096 = load i32, ptr %18, align 4, !tbaa !14
  %3097 = add nsw i32 %3096, 1
  %3098 = sext i32 %3097 to i64
  %3099 = getelementptr inbounds i8, ptr %3095, i64 %3098
  store i8 %3094, ptr %3099, align 1, !tbaa !15
  %3100 = load ptr, ptr %14, align 8, !tbaa !5
  %3101 = load i32, ptr %18, align 4, !tbaa !14
  %3102 = add nsw i32 %3101, 2
  %3103 = sext i32 %3102 to i64
  %3104 = getelementptr inbounds i8, ptr %3100, i64 %3103
  %3105 = load i8, ptr %3104, align 1, !tbaa !15
  %3106 = zext i8 %3105 to i64
  %3107 = getelementptr inbounds [256 x i8], ptr @r_to_y, i64 0, i64 %3106
  %3108 = load i8, ptr %3107, align 1, !tbaa !15
  %3109 = zext i8 %3108 to i32
  %3110 = load ptr, ptr %13, align 8, !tbaa !5
  %3111 = load i32, ptr %18, align 4, !tbaa !14
  %3112 = add nsw i32 %3111, 2
  %3113 = sext i32 %3112 to i64
  %3114 = getelementptr inbounds i8, ptr %3110, i64 %3113
  %3115 = load i8, ptr %3114, align 1, !tbaa !15
  %3116 = zext i8 %3115 to i64
  %3117 = getelementptr inbounds [256 x i8], ptr @g_to_y, i64 0, i64 %3116
  %3118 = load i8, ptr %3117, align 1, !tbaa !15
  %3119 = zext i8 %3118 to i32
  %3120 = add nsw i32 %3109, %3119
  %3121 = load ptr, ptr %12, align 8, !tbaa !5
  %3122 = load i32, ptr %18, align 4, !tbaa !14
  %3123 = add nsw i32 %3122, 2
  %3124 = sext i32 %3123 to i64
  %3125 = getelementptr inbounds i8, ptr %3121, i64 %3124
  %3126 = load i8, ptr %3125, align 1, !tbaa !15
  %3127 = zext i8 %3126 to i64
  %3128 = getelementptr inbounds [256 x i8], ptr @b_to_y, i64 0, i64 %3127
  %3129 = load i8, ptr %3128, align 1, !tbaa !15
  %3130 = zext i8 %3129 to i32
  %3131 = add nsw i32 %3120, %3130
  %3132 = trunc i32 %3131 to i8
  %3133 = load ptr, ptr %15, align 8, !tbaa !5
  %3134 = load i32, ptr %18, align 4, !tbaa !14
  %3135 = add nsw i32 %3134, 2
  %3136 = sext i32 %3135 to i64
  %3137 = getelementptr inbounds i8, ptr %3133, i64 %3136
  store i8 %3132, ptr %3137, align 1, !tbaa !15
  %3138 = load ptr, ptr %10, align 8, !tbaa !5
  %3139 = load ptr, ptr %12, align 8, !tbaa !5
  %3140 = load i32, ptr %18, align 4, !tbaa !14
  %3141 = add nsw i32 %3140, 2
  %3142 = sext i32 %3141 to i64
  %3143 = getelementptr inbounds i8, ptr %3139, i64 %3142
  %3144 = load i8, ptr %3143, align 1, !tbaa !15
  %3145 = zext i8 %3144 to i32
  %3146 = load ptr, ptr %15, align 8, !tbaa !5
  %3147 = load i32, ptr %18, align 4, !tbaa !14
  %3148 = add nsw i32 %3147, 2
  %3149 = sext i32 %3148 to i64
  %3150 = getelementptr inbounds i8, ptr %3146, i64 %3149
  %3151 = load i8, ptr %3150, align 1, !tbaa !15
  %3152 = zext i8 %3151 to i32
  %3153 = sub nsw i32 %3145, %3152
  %3154 = sext i32 %3153 to i64
  %3155 = getelementptr inbounds i8, ptr %3138, i64 %3154
  %3156 = load i8, ptr %3155, align 1, !tbaa !15
  %3157 = load ptr, ptr %16, align 8, !tbaa !5
  %3158 = load i32, ptr %18, align 4, !tbaa !14
  %3159 = add nsw i32 %3158, 2
  %3160 = sext i32 %3159 to i64
  %3161 = getelementptr inbounds i8, ptr %3157, i64 %3160
  store i8 %3156, ptr %3161, align 1, !tbaa !15
  %3162 = load ptr, ptr %9, align 8, !tbaa !5
  %3163 = load ptr, ptr %14, align 8, !tbaa !5
  %3164 = load i32, ptr %18, align 4, !tbaa !14
  %3165 = add nsw i32 %3164, 2
  %3166 = sext i32 %3165 to i64
  %3167 = getelementptr inbounds i8, ptr %3163, i64 %3166
  %3168 = load i8, ptr %3167, align 1, !tbaa !15
  %3169 = zext i8 %3168 to i32
  %3170 = load ptr, ptr %15, align 8, !tbaa !5
  %3171 = load i32, ptr %18, align 4, !tbaa !14
  %3172 = add nsw i32 %3171, 2
  %3173 = sext i32 %3172 to i64
  %3174 = getelementptr inbounds i8, ptr %3170, i64 %3173
  %3175 = load i8, ptr %3174, align 1, !tbaa !15
  %3176 = zext i8 %3175 to i32
  %3177 = sub nsw i32 %3169, %3176
  %3178 = sext i32 %3177 to i64
  %3179 = getelementptr inbounds i8, ptr %3162, i64 %3178
  %3180 = load i8, ptr %3179, align 1, !tbaa !15
  %3181 = load ptr, ptr %17, align 8, !tbaa !5
  %3182 = load i32, ptr %18, align 4, !tbaa !14
  %3183 = add nsw i32 %3182, 2
  %3184 = sext i32 %3183 to i64
  %3185 = getelementptr inbounds i8, ptr %3181, i64 %3184
  store i8 %3180, ptr %3185, align 1, !tbaa !15
  %3186 = load ptr, ptr %14, align 8, !tbaa !5
  %3187 = load i32, ptr %18, align 4, !tbaa !14
  %3188 = add nsw i32 %3187, 3
  %3189 = sext i32 %3188 to i64
  %3190 = getelementptr inbounds i8, ptr %3186, i64 %3189
  %3191 = load i8, ptr %3190, align 1, !tbaa !15
  %3192 = zext i8 %3191 to i64
  %3193 = getelementptr inbounds [256 x i8], ptr @r_to_y, i64 0, i64 %3192
  %3194 = load i8, ptr %3193, align 1, !tbaa !15
  %3195 = zext i8 %3194 to i32
  %3196 = load ptr, ptr %13, align 8, !tbaa !5
  %3197 = load i32, ptr %18, align 4, !tbaa !14
  %3198 = add nsw i32 %3197, 3
  %3199 = sext i32 %3198 to i64
  %3200 = getelementptr inbounds i8, ptr %3196, i64 %3199
  %3201 = load i8, ptr %3200, align 1, !tbaa !15
  %3202 = zext i8 %3201 to i64
  %3203 = getelementptr inbounds [256 x i8], ptr @g_to_y, i64 0, i64 %3202
  %3204 = load i8, ptr %3203, align 1, !tbaa !15
  %3205 = zext i8 %3204 to i32
  %3206 = add nsw i32 %3195, %3205
  %3207 = load ptr, ptr %12, align 8, !tbaa !5
  %3208 = load i32, ptr %18, align 4, !tbaa !14
  %3209 = add nsw i32 %3208, 3
  %3210 = sext i32 %3209 to i64
  %3211 = getelementptr inbounds i8, ptr %3207, i64 %3210
  %3212 = load i8, ptr %3211, align 1, !tbaa !15
  %3213 = zext i8 %3212 to i64
  %3214 = getelementptr inbounds [256 x i8], ptr @b_to_y, i64 0, i64 %3213
  %3215 = load i8, ptr %3214, align 1, !tbaa !15
  %3216 = zext i8 %3215 to i32
  %3217 = add nsw i32 %3206, %3216
  %3218 = trunc i32 %3217 to i8
  %3219 = load ptr, ptr %15, align 8, !tbaa !5
  %3220 = load i32, ptr %18, align 4, !tbaa !14
  %3221 = add nsw i32 %3220, 3
  %3222 = sext i32 %3221 to i64
  %3223 = getelementptr inbounds i8, ptr %3219, i64 %3222
  store i8 %3218, ptr %3223, align 1, !tbaa !15
  %3224 = load ptr, ptr %10, align 8, !tbaa !5
  %3225 = load ptr, ptr %12, align 8, !tbaa !5
  %3226 = load i32, ptr %18, align 4, !tbaa !14
  %3227 = add nsw i32 %3226, 3
  %3228 = sext i32 %3227 to i64
  %3229 = getelementptr inbounds i8, ptr %3225, i64 %3228
  %3230 = load i8, ptr %3229, align 1, !tbaa !15
  %3231 = zext i8 %3230 to i32
  %3232 = load ptr, ptr %15, align 8, !tbaa !5
  %3233 = load i32, ptr %18, align 4, !tbaa !14
  %3234 = add nsw i32 %3233, 3
  %3235 = sext i32 %3234 to i64
  %3236 = getelementptr inbounds i8, ptr %3232, i64 %3235
  %3237 = load i8, ptr %3236, align 1, !tbaa !15
  %3238 = zext i8 %3237 to i32
  %3239 = sub nsw i32 %3231, %3238
  %3240 = sext i32 %3239 to i64
  %3241 = getelementptr inbounds i8, ptr %3224, i64 %3240
  %3242 = load i8, ptr %3241, align 1, !tbaa !15
  %3243 = load ptr, ptr %16, align 8, !tbaa !5
  %3244 = load i32, ptr %18, align 4, !tbaa !14
  %3245 = add nsw i32 %3244, 3
  %3246 = sext i32 %3245 to i64
  %3247 = getelementptr inbounds i8, ptr %3243, i64 %3246
  store i8 %3242, ptr %3247, align 1, !tbaa !15
  %3248 = load ptr, ptr %9, align 8, !tbaa !5
  %3249 = load ptr, ptr %14, align 8, !tbaa !5
  %3250 = load i32, ptr %18, align 4, !tbaa !14
  %3251 = add nsw i32 %3250, 3
  %3252 = sext i32 %3251 to i64
  %3253 = getelementptr inbounds i8, ptr %3249, i64 %3252
  %3254 = load i8, ptr %3253, align 1, !tbaa !15
  %3255 = zext i8 %3254 to i32
  %3256 = load ptr, ptr %15, align 8, !tbaa !5
  %3257 = load i32, ptr %18, align 4, !tbaa !14
  %3258 = add nsw i32 %3257, 3
  %3259 = sext i32 %3258 to i64
  %3260 = getelementptr inbounds i8, ptr %3256, i64 %3259
  %3261 = load i8, ptr %3260, align 1, !tbaa !15
  %3262 = zext i8 %3261 to i32
  %3263 = sub nsw i32 %3255, %3262
  %3264 = sext i32 %3263 to i64
  %3265 = getelementptr inbounds i8, ptr %3248, i64 %3264
  %3266 = load i8, ptr %3265, align 1, !tbaa !15
  %3267 = load ptr, ptr %17, align 8, !tbaa !5
  %3268 = load i32, ptr %18, align 4, !tbaa !14
  %3269 = add nsw i32 %3268, 3
  %3270 = sext i32 %3269 to i64
  %3271 = getelementptr inbounds i8, ptr %3267, i64 %3270
  store i8 %3266, ptr %3271, align 1, !tbaa !15
  %3272 = load ptr, ptr %14, align 8, !tbaa !5
  %3273 = load i32, ptr %18, align 4, !tbaa !14
  %3274 = add nsw i32 %3273, 4
  %3275 = sext i32 %3274 to i64
  %3276 = getelementptr inbounds i8, ptr %3272, i64 %3275
  %3277 = load i8, ptr %3276, align 1, !tbaa !15
  %3278 = zext i8 %3277 to i64
  %3279 = getelementptr inbounds [256 x i8], ptr @r_to_y, i64 0, i64 %3278
  %3280 = load i8, ptr %3279, align 1, !tbaa !15
  %3281 = zext i8 %3280 to i32
  %3282 = load ptr, ptr %13, align 8, !tbaa !5
  %3283 = load i32, ptr %18, align 4, !tbaa !14
  %3284 = add nsw i32 %3283, 4
  %3285 = sext i32 %3284 to i64
  %3286 = getelementptr inbounds i8, ptr %3282, i64 %3285
  %3287 = load i8, ptr %3286, align 1, !tbaa !15
  %3288 = zext i8 %3287 to i64
  %3289 = getelementptr inbounds [256 x i8], ptr @g_to_y, i64 0, i64 %3288
  %3290 = load i8, ptr %3289, align 1, !tbaa !15
  %3291 = zext i8 %3290 to i32
  %3292 = add nsw i32 %3281, %3291
  %3293 = load ptr, ptr %12, align 8, !tbaa !5
  %3294 = load i32, ptr %18, align 4, !tbaa !14
  %3295 = add nsw i32 %3294, 4
  %3296 = sext i32 %3295 to i64
  %3297 = getelementptr inbounds i8, ptr %3293, i64 %3296
  %3298 = load i8, ptr %3297, align 1, !tbaa !15
  %3299 = zext i8 %3298 to i64
  %3300 = getelementptr inbounds [256 x i8], ptr @b_to_y, i64 0, i64 %3299
  %3301 = load i8, ptr %3300, align 1, !tbaa !15
  %3302 = zext i8 %3301 to i32
  %3303 = add nsw i32 %3292, %3302
  %3304 = trunc i32 %3303 to i8
  %3305 = load ptr, ptr %15, align 8, !tbaa !5
  %3306 = load i32, ptr %18, align 4, !tbaa !14
  %3307 = add nsw i32 %3306, 4
  %3308 = sext i32 %3307 to i64
  %3309 = getelementptr inbounds i8, ptr %3305, i64 %3308
  store i8 %3304, ptr %3309, align 1, !tbaa !15
  %3310 = load ptr, ptr %10, align 8, !tbaa !5
  %3311 = load ptr, ptr %12, align 8, !tbaa !5
  %3312 = load i32, ptr %18, align 4, !tbaa !14
  %3313 = add nsw i32 %3312, 4
  %3314 = sext i32 %3313 to i64
  %3315 = getelementptr inbounds i8, ptr %3311, i64 %3314
  %3316 = load i8, ptr %3315, align 1, !tbaa !15
  %3317 = zext i8 %3316 to i32
  %3318 = load ptr, ptr %15, align 8, !tbaa !5
  %3319 = load i32, ptr %18, align 4, !tbaa !14
  %3320 = add nsw i32 %3319, 4
  %3321 = sext i32 %3320 to i64
  %3322 = getelementptr inbounds i8, ptr %3318, i64 %3321
  %3323 = load i8, ptr %3322, align 1, !tbaa !15
  %3324 = zext i8 %3323 to i32
  %3325 = sub nsw i32 %3317, %3324
  %3326 = sext i32 %3325 to i64
  %3327 = getelementptr inbounds i8, ptr %3310, i64 %3326
  %3328 = load i8, ptr %3327, align 1, !tbaa !15
  %3329 = load ptr, ptr %16, align 8, !tbaa !5
  %3330 = load i32, ptr %18, align 4, !tbaa !14
  %3331 = add nsw i32 %3330, 4
  %3332 = sext i32 %3331 to i64
  %3333 = getelementptr inbounds i8, ptr %3329, i64 %3332
  store i8 %3328, ptr %3333, align 1, !tbaa !15
  %3334 = load ptr, ptr %9, align 8, !tbaa !5
  %3335 = load ptr, ptr %14, align 8, !tbaa !5
  %3336 = load i32, ptr %18, align 4, !tbaa !14
  %3337 = add nsw i32 %3336, 4
  %3338 = sext i32 %3337 to i64
  %3339 = getelementptr inbounds i8, ptr %3335, i64 %3338
  %3340 = load i8, ptr %3339, align 1, !tbaa !15
  %3341 = zext i8 %3340 to i32
  %3342 = load ptr, ptr %15, align 8, !tbaa !5
  %3343 = load i32, ptr %18, align 4, !tbaa !14
  %3344 = add nsw i32 %3343, 4
  %3345 = sext i32 %3344 to i64
  %3346 = getelementptr inbounds i8, ptr %3342, i64 %3345
  %3347 = load i8, ptr %3346, align 1, !tbaa !15
  %3348 = zext i8 %3347 to i32
  %3349 = sub nsw i32 %3341, %3348
  %3350 = sext i32 %3349 to i64
  %3351 = getelementptr inbounds i8, ptr %3334, i64 %3350
  %3352 = load i8, ptr %3351, align 1, !tbaa !15
  %3353 = load ptr, ptr %17, align 8, !tbaa !5
  %3354 = load i32, ptr %18, align 4, !tbaa !14
  %3355 = add nsw i32 %3354, 4
  %3356 = sext i32 %3355 to i64
  %3357 = getelementptr inbounds i8, ptr %3353, i64 %3356
  store i8 %3352, ptr %3357, align 1, !tbaa !15
  %3358 = load ptr, ptr %14, align 8, !tbaa !5
  %3359 = load i32, ptr %18, align 4, !tbaa !14
  %3360 = add nsw i32 %3359, 5
  %3361 = sext i32 %3360 to i64
  %3362 = getelementptr inbounds i8, ptr %3358, i64 %3361
  %3363 = load i8, ptr %3362, align 1, !tbaa !15
  %3364 = zext i8 %3363 to i64
  %3365 = getelementptr inbounds [256 x i8], ptr @r_to_y, i64 0, i64 %3364
  %3366 = load i8, ptr %3365, align 1, !tbaa !15
  %3367 = zext i8 %3366 to i32
  %3368 = load ptr, ptr %13, align 8, !tbaa !5
  %3369 = load i32, ptr %18, align 4, !tbaa !14
  %3370 = add nsw i32 %3369, 5
  %3371 = sext i32 %3370 to i64
  %3372 = getelementptr inbounds i8, ptr %3368, i64 %3371
  %3373 = load i8, ptr %3372, align 1, !tbaa !15
  %3374 = zext i8 %3373 to i64
  %3375 = getelementptr inbounds [256 x i8], ptr @g_to_y, i64 0, i64 %3374
  %3376 = load i8, ptr %3375, align 1, !tbaa !15
  %3377 = zext i8 %3376 to i32
  %3378 = add nsw i32 %3367, %3377
  %3379 = load ptr, ptr %12, align 8, !tbaa !5
  %3380 = load i32, ptr %18, align 4, !tbaa !14
  %3381 = add nsw i32 %3380, 5
  %3382 = sext i32 %3381 to i64
  %3383 = getelementptr inbounds i8, ptr %3379, i64 %3382
  %3384 = load i8, ptr %3383, align 1, !tbaa !15
  %3385 = zext i8 %3384 to i64
  %3386 = getelementptr inbounds [256 x i8], ptr @b_to_y, i64 0, i64 %3385
  %3387 = load i8, ptr %3386, align 1, !tbaa !15
  %3388 = zext i8 %3387 to i32
  %3389 = add nsw i32 %3378, %3388
  %3390 = trunc i32 %3389 to i8
  %3391 = load ptr, ptr %15, align 8, !tbaa !5
  %3392 = load i32, ptr %18, align 4, !tbaa !14
  %3393 = add nsw i32 %3392, 5
  %3394 = sext i32 %3393 to i64
  %3395 = getelementptr inbounds i8, ptr %3391, i64 %3394
  store i8 %3390, ptr %3395, align 1, !tbaa !15
  %3396 = load ptr, ptr %10, align 8, !tbaa !5
  %3397 = load ptr, ptr %12, align 8, !tbaa !5
  %3398 = load i32, ptr %18, align 4, !tbaa !14
  %3399 = add nsw i32 %3398, 5
  %3400 = sext i32 %3399 to i64
  %3401 = getelementptr inbounds i8, ptr %3397, i64 %3400
  %3402 = load i8, ptr %3401, align 1, !tbaa !15
  %3403 = zext i8 %3402 to i32
  %3404 = load ptr, ptr %15, align 8, !tbaa !5
  %3405 = load i32, ptr %18, align 4, !tbaa !14
  %3406 = add nsw i32 %3405, 5
  %3407 = sext i32 %3406 to i64
  %3408 = getelementptr inbounds i8, ptr %3404, i64 %3407
  %3409 = load i8, ptr %3408, align 1, !tbaa !15
  %3410 = zext i8 %3409 to i32
  %3411 = sub nsw i32 %3403, %3410
  %3412 = sext i32 %3411 to i64
  %3413 = getelementptr inbounds i8, ptr %3396, i64 %3412
  %3414 = load i8, ptr %3413, align 1, !tbaa !15
  %3415 = load ptr, ptr %16, align 8, !tbaa !5
  %3416 = load i32, ptr %18, align 4, !tbaa !14
  %3417 = add nsw i32 %3416, 5
  %3418 = sext i32 %3417 to i64
  %3419 = getelementptr inbounds i8, ptr %3415, i64 %3418
  store i8 %3414, ptr %3419, align 1, !tbaa !15
  %3420 = load ptr, ptr %9, align 8, !tbaa !5
  %3421 = load ptr, ptr %14, align 8, !tbaa !5
  %3422 = load i32, ptr %18, align 4, !tbaa !14
  %3423 = add nsw i32 %3422, 5
  %3424 = sext i32 %3423 to i64
  %3425 = getelementptr inbounds i8, ptr %3421, i64 %3424
  %3426 = load i8, ptr %3425, align 1, !tbaa !15
  %3427 = zext i8 %3426 to i32
  %3428 = load ptr, ptr %15, align 8, !tbaa !5
  %3429 = load i32, ptr %18, align 4, !tbaa !14
  %3430 = add nsw i32 %3429, 5
  %3431 = sext i32 %3430 to i64
  %3432 = getelementptr inbounds i8, ptr %3428, i64 %3431
  %3433 = load i8, ptr %3432, align 1, !tbaa !15
  %3434 = zext i8 %3433 to i32
  %3435 = sub nsw i32 %3427, %3434
  %3436 = sext i32 %3435 to i64
  %3437 = getelementptr inbounds i8, ptr %3420, i64 %3436
  %3438 = load i8, ptr %3437, align 1, !tbaa !15
  %3439 = load ptr, ptr %17, align 8, !tbaa !5
  %3440 = load i32, ptr %18, align 4, !tbaa !14
  %3441 = add nsw i32 %3440, 5
  %3442 = sext i32 %3441 to i64
  %3443 = getelementptr inbounds i8, ptr %3439, i64 %3442
  store i8 %3438, ptr %3443, align 1, !tbaa !15
  br label %12039

3444:                                             ; preds = %2920
  %3445 = load ptr, ptr %4, align 8, !tbaa !5
  %3446 = getelementptr inbounds %struct.MImage, ptr %3445, i32 0, i32 2
  %3447 = load i32, ptr %3446, align 8, !tbaa !13
  %3448 = load i32, ptr %18, align 4, !tbaa !14
  %3449 = sub nsw i32 %3447, %3448
  %3450 = icmp eq i32 %3449, 7
  br i1 %3450, label %3451, label %4054

3451:                                             ; preds = %3444
  %3452 = load ptr, ptr %14, align 8, !tbaa !5
  %3453 = load i32, ptr %18, align 4, !tbaa !14
  %3454 = add nsw i32 %3453, 0
  %3455 = sext i32 %3454 to i64
  %3456 = getelementptr inbounds i8, ptr %3452, i64 %3455
  %3457 = load i8, ptr %3456, align 1, !tbaa !15
  %3458 = zext i8 %3457 to i64
  %3459 = getelementptr inbounds [256 x i8], ptr @r_to_y, i64 0, i64 %3458
  %3460 = load i8, ptr %3459, align 1, !tbaa !15
  %3461 = zext i8 %3460 to i32
  %3462 = load ptr, ptr %13, align 8, !tbaa !5
  %3463 = load i32, ptr %18, align 4, !tbaa !14
  %3464 = add nsw i32 %3463, 0
  %3465 = sext i32 %3464 to i64
  %3466 = getelementptr inbounds i8, ptr %3462, i64 %3465
  %3467 = load i8, ptr %3466, align 1, !tbaa !15
  %3468 = zext i8 %3467 to i64
  %3469 = getelementptr inbounds [256 x i8], ptr @g_to_y, i64 0, i64 %3468
  %3470 = load i8, ptr %3469, align 1, !tbaa !15
  %3471 = zext i8 %3470 to i32
  %3472 = add nsw i32 %3461, %3471
  %3473 = load ptr, ptr %12, align 8, !tbaa !5
  %3474 = load i32, ptr %18, align 4, !tbaa !14
  %3475 = add nsw i32 %3474, 0
  %3476 = sext i32 %3475 to i64
  %3477 = getelementptr inbounds i8, ptr %3473, i64 %3476
  %3478 = load i8, ptr %3477, align 1, !tbaa !15
  %3479 = zext i8 %3478 to i64
  %3480 = getelementptr inbounds [256 x i8], ptr @b_to_y, i64 0, i64 %3479
  %3481 = load i8, ptr %3480, align 1, !tbaa !15
  %3482 = zext i8 %3481 to i32
  %3483 = add nsw i32 %3472, %3482
  %3484 = trunc i32 %3483 to i8
  %3485 = load ptr, ptr %15, align 8, !tbaa !5
  %3486 = load i32, ptr %18, align 4, !tbaa !14
  %3487 = add nsw i32 %3486, 0
  %3488 = sext i32 %3487 to i64
  %3489 = getelementptr inbounds i8, ptr %3485, i64 %3488
  store i8 %3484, ptr %3489, align 1, !tbaa !15
  %3490 = load ptr, ptr %10, align 8, !tbaa !5
  %3491 = load ptr, ptr %12, align 8, !tbaa !5
  %3492 = load i32, ptr %18, align 4, !tbaa !14
  %3493 = add nsw i32 %3492, 0
  %3494 = sext i32 %3493 to i64
  %3495 = getelementptr inbounds i8, ptr %3491, i64 %3494
  %3496 = load i8, ptr %3495, align 1, !tbaa !15
  %3497 = zext i8 %3496 to i32
  %3498 = load ptr, ptr %15, align 8, !tbaa !5
  %3499 = load i32, ptr %18, align 4, !tbaa !14
  %3500 = add nsw i32 %3499, 0
  %3501 = sext i32 %3500 to i64
  %3502 = getelementptr inbounds i8, ptr %3498, i64 %3501
  %3503 = load i8, ptr %3502, align 1, !tbaa !15
  %3504 = zext i8 %3503 to i32
  %3505 = sub nsw i32 %3497, %3504
  %3506 = sext i32 %3505 to i64
  %3507 = getelementptr inbounds i8, ptr %3490, i64 %3506
  %3508 = load i8, ptr %3507, align 1, !tbaa !15
  %3509 = load ptr, ptr %16, align 8, !tbaa !5
  %3510 = load i32, ptr %18, align 4, !tbaa !14
  %3511 = add nsw i32 %3510, 0
  %3512 = sext i32 %3511 to i64
  %3513 = getelementptr inbounds i8, ptr %3509, i64 %3512
  store i8 %3508, ptr %3513, align 1, !tbaa !15
  %3514 = load ptr, ptr %9, align 8, !tbaa !5
  %3515 = load ptr, ptr %14, align 8, !tbaa !5
  %3516 = load i32, ptr %18, align 4, !tbaa !14
  %3517 = add nsw i32 %3516, 0
  %3518 = sext i32 %3517 to i64
  %3519 = getelementptr inbounds i8, ptr %3515, i64 %3518
  %3520 = load i8, ptr %3519, align 1, !tbaa !15
  %3521 = zext i8 %3520 to i32
  %3522 = load ptr, ptr %15, align 8, !tbaa !5
  %3523 = load i32, ptr %18, align 4, !tbaa !14
  %3524 = add nsw i32 %3523, 0
  %3525 = sext i32 %3524 to i64
  %3526 = getelementptr inbounds i8, ptr %3522, i64 %3525
  %3527 = load i8, ptr %3526, align 1, !tbaa !15
  %3528 = zext i8 %3527 to i32
  %3529 = sub nsw i32 %3521, %3528
  %3530 = sext i32 %3529 to i64
  %3531 = getelementptr inbounds i8, ptr %3514, i64 %3530
  %3532 = load i8, ptr %3531, align 1, !tbaa !15
  %3533 = load ptr, ptr %17, align 8, !tbaa !5
  %3534 = load i32, ptr %18, align 4, !tbaa !14
  %3535 = add nsw i32 %3534, 0
  %3536 = sext i32 %3535 to i64
  %3537 = getelementptr inbounds i8, ptr %3533, i64 %3536
  store i8 %3532, ptr %3537, align 1, !tbaa !15
  %3538 = load ptr, ptr %14, align 8, !tbaa !5
  %3539 = load i32, ptr %18, align 4, !tbaa !14
  %3540 = add nsw i32 %3539, 1
  %3541 = sext i32 %3540 to i64
  %3542 = getelementptr inbounds i8, ptr %3538, i64 %3541
  %3543 = load i8, ptr %3542, align 1, !tbaa !15
  %3544 = zext i8 %3543 to i64
  %3545 = getelementptr inbounds [256 x i8], ptr @r_to_y, i64 0, i64 %3544
  %3546 = load i8, ptr %3545, align 1, !tbaa !15
  %3547 = zext i8 %3546 to i32
  %3548 = load ptr, ptr %13, align 8, !tbaa !5
  %3549 = load i32, ptr %18, align 4, !tbaa !14
  %3550 = add nsw i32 %3549, 1
  %3551 = sext i32 %3550 to i64
  %3552 = getelementptr inbounds i8, ptr %3548, i64 %3551
  %3553 = load i8, ptr %3552, align 1, !tbaa !15
  %3554 = zext i8 %3553 to i64
  %3555 = getelementptr inbounds [256 x i8], ptr @g_to_y, i64 0, i64 %3554
  %3556 = load i8, ptr %3555, align 1, !tbaa !15
  %3557 = zext i8 %3556 to i32
  %3558 = add nsw i32 %3547, %3557
  %3559 = load ptr, ptr %12, align 8, !tbaa !5
  %3560 = load i32, ptr %18, align 4, !tbaa !14
  %3561 = add nsw i32 %3560, 1
  %3562 = sext i32 %3561 to i64
  %3563 = getelementptr inbounds i8, ptr %3559, i64 %3562
  %3564 = load i8, ptr %3563, align 1, !tbaa !15
  %3565 = zext i8 %3564 to i64
  %3566 = getelementptr inbounds [256 x i8], ptr @b_to_y, i64 0, i64 %3565
  %3567 = load i8, ptr %3566, align 1, !tbaa !15
  %3568 = zext i8 %3567 to i32
  %3569 = add nsw i32 %3558, %3568
  %3570 = trunc i32 %3569 to i8
  %3571 = load ptr, ptr %15, align 8, !tbaa !5
  %3572 = load i32, ptr %18, align 4, !tbaa !14
  %3573 = add nsw i32 %3572, 1
  %3574 = sext i32 %3573 to i64
  %3575 = getelementptr inbounds i8, ptr %3571, i64 %3574
  store i8 %3570, ptr %3575, align 1, !tbaa !15
  %3576 = load ptr, ptr %10, align 8, !tbaa !5
  %3577 = load ptr, ptr %12, align 8, !tbaa !5
  %3578 = load i32, ptr %18, align 4, !tbaa !14
  %3579 = add nsw i32 %3578, 1
  %3580 = sext i32 %3579 to i64
  %3581 = getelementptr inbounds i8, ptr %3577, i64 %3580
  %3582 = load i8, ptr %3581, align 1, !tbaa !15
  %3583 = zext i8 %3582 to i32
  %3584 = load ptr, ptr %15, align 8, !tbaa !5
  %3585 = load i32, ptr %18, align 4, !tbaa !14
  %3586 = add nsw i32 %3585, 1
  %3587 = sext i32 %3586 to i64
  %3588 = getelementptr inbounds i8, ptr %3584, i64 %3587
  %3589 = load i8, ptr %3588, align 1, !tbaa !15
  %3590 = zext i8 %3589 to i32
  %3591 = sub nsw i32 %3583, %3590
  %3592 = sext i32 %3591 to i64
  %3593 = getelementptr inbounds i8, ptr %3576, i64 %3592
  %3594 = load i8, ptr %3593, align 1, !tbaa !15
  %3595 = load ptr, ptr %16, align 8, !tbaa !5
  %3596 = load i32, ptr %18, align 4, !tbaa !14
  %3597 = add nsw i32 %3596, 1
  %3598 = sext i32 %3597 to i64
  %3599 = getelementptr inbounds i8, ptr %3595, i64 %3598
  store i8 %3594, ptr %3599, align 1, !tbaa !15
  %3600 = load ptr, ptr %9, align 8, !tbaa !5
  %3601 = load ptr, ptr %14, align 8, !tbaa !5
  %3602 = load i32, ptr %18, align 4, !tbaa !14
  %3603 = add nsw i32 %3602, 1
  %3604 = sext i32 %3603 to i64
  %3605 = getelementptr inbounds i8, ptr %3601, i64 %3604
  %3606 = load i8, ptr %3605, align 1, !tbaa !15
  %3607 = zext i8 %3606 to i32
  %3608 = load ptr, ptr %15, align 8, !tbaa !5
  %3609 = load i32, ptr %18, align 4, !tbaa !14
  %3610 = add nsw i32 %3609, 1
  %3611 = sext i32 %3610 to i64
  %3612 = getelementptr inbounds i8, ptr %3608, i64 %3611
  %3613 = load i8, ptr %3612, align 1, !tbaa !15
  %3614 = zext i8 %3613 to i32
  %3615 = sub nsw i32 %3607, %3614
  %3616 = sext i32 %3615 to i64
  %3617 = getelementptr inbounds i8, ptr %3600, i64 %3616
  %3618 = load i8, ptr %3617, align 1, !tbaa !15
  %3619 = load ptr, ptr %17, align 8, !tbaa !5
  %3620 = load i32, ptr %18, align 4, !tbaa !14
  %3621 = add nsw i32 %3620, 1
  %3622 = sext i32 %3621 to i64
  %3623 = getelementptr inbounds i8, ptr %3619, i64 %3622
  store i8 %3618, ptr %3623, align 1, !tbaa !15
  %3624 = load ptr, ptr %14, align 8, !tbaa !5
  %3625 = load i32, ptr %18, align 4, !tbaa !14
  %3626 = add nsw i32 %3625, 2
  %3627 = sext i32 %3626 to i64
  %3628 = getelementptr inbounds i8, ptr %3624, i64 %3627
  %3629 = load i8, ptr %3628, align 1, !tbaa !15
  %3630 = zext i8 %3629 to i64
  %3631 = getelementptr inbounds [256 x i8], ptr @r_to_y, i64 0, i64 %3630
  %3632 = load i8, ptr %3631, align 1, !tbaa !15
  %3633 = zext i8 %3632 to i32
  %3634 = load ptr, ptr %13, align 8, !tbaa !5
  %3635 = load i32, ptr %18, align 4, !tbaa !14
  %3636 = add nsw i32 %3635, 2
  %3637 = sext i32 %3636 to i64
  %3638 = getelementptr inbounds i8, ptr %3634, i64 %3637
  %3639 = load i8, ptr %3638, align 1, !tbaa !15
  %3640 = zext i8 %3639 to i64
  %3641 = getelementptr inbounds [256 x i8], ptr @g_to_y, i64 0, i64 %3640
  %3642 = load i8, ptr %3641, align 1, !tbaa !15
  %3643 = zext i8 %3642 to i32
  %3644 = add nsw i32 %3633, %3643
  %3645 = load ptr, ptr %12, align 8, !tbaa !5
  %3646 = load i32, ptr %18, align 4, !tbaa !14
  %3647 = add nsw i32 %3646, 2
  %3648 = sext i32 %3647 to i64
  %3649 = getelementptr inbounds i8, ptr %3645, i64 %3648
  %3650 = load i8, ptr %3649, align 1, !tbaa !15
  %3651 = zext i8 %3650 to i64
  %3652 = getelementptr inbounds [256 x i8], ptr @b_to_y, i64 0, i64 %3651
  %3653 = load i8, ptr %3652, align 1, !tbaa !15
  %3654 = zext i8 %3653 to i32
  %3655 = add nsw i32 %3644, %3654
  %3656 = trunc i32 %3655 to i8
  %3657 = load ptr, ptr %15, align 8, !tbaa !5
  %3658 = load i32, ptr %18, align 4, !tbaa !14
  %3659 = add nsw i32 %3658, 2
  %3660 = sext i32 %3659 to i64
  %3661 = getelementptr inbounds i8, ptr %3657, i64 %3660
  store i8 %3656, ptr %3661, align 1, !tbaa !15
  %3662 = load ptr, ptr %10, align 8, !tbaa !5
  %3663 = load ptr, ptr %12, align 8, !tbaa !5
  %3664 = load i32, ptr %18, align 4, !tbaa !14
  %3665 = add nsw i32 %3664, 2
  %3666 = sext i32 %3665 to i64
  %3667 = getelementptr inbounds i8, ptr %3663, i64 %3666
  %3668 = load i8, ptr %3667, align 1, !tbaa !15
  %3669 = zext i8 %3668 to i32
  %3670 = load ptr, ptr %15, align 8, !tbaa !5
  %3671 = load i32, ptr %18, align 4, !tbaa !14
  %3672 = add nsw i32 %3671, 2
  %3673 = sext i32 %3672 to i64
  %3674 = getelementptr inbounds i8, ptr %3670, i64 %3673
  %3675 = load i8, ptr %3674, align 1, !tbaa !15
  %3676 = zext i8 %3675 to i32
  %3677 = sub nsw i32 %3669, %3676
  %3678 = sext i32 %3677 to i64
  %3679 = getelementptr inbounds i8, ptr %3662, i64 %3678
  %3680 = load i8, ptr %3679, align 1, !tbaa !15
  %3681 = load ptr, ptr %16, align 8, !tbaa !5
  %3682 = load i32, ptr %18, align 4, !tbaa !14
  %3683 = add nsw i32 %3682, 2
  %3684 = sext i32 %3683 to i64
  %3685 = getelementptr inbounds i8, ptr %3681, i64 %3684
  store i8 %3680, ptr %3685, align 1, !tbaa !15
  %3686 = load ptr, ptr %9, align 8, !tbaa !5
  %3687 = load ptr, ptr %14, align 8, !tbaa !5
  %3688 = load i32, ptr %18, align 4, !tbaa !14
  %3689 = add nsw i32 %3688, 2
  %3690 = sext i32 %3689 to i64
  %3691 = getelementptr inbounds i8, ptr %3687, i64 %3690
  %3692 = load i8, ptr %3691, align 1, !tbaa !15
  %3693 = zext i8 %3692 to i32
  %3694 = load ptr, ptr %15, align 8, !tbaa !5
  %3695 = load i32, ptr %18, align 4, !tbaa !14
  %3696 = add nsw i32 %3695, 2
  %3697 = sext i32 %3696 to i64
  %3698 = getelementptr inbounds i8, ptr %3694, i64 %3697
  %3699 = load i8, ptr %3698, align 1, !tbaa !15
  %3700 = zext i8 %3699 to i32
  %3701 = sub nsw i32 %3693, %3700
  %3702 = sext i32 %3701 to i64
  %3703 = getelementptr inbounds i8, ptr %3686, i64 %3702
  %3704 = load i8, ptr %3703, align 1, !tbaa !15
  %3705 = load ptr, ptr %17, align 8, !tbaa !5
  %3706 = load i32, ptr %18, align 4, !tbaa !14
  %3707 = add nsw i32 %3706, 2
  %3708 = sext i32 %3707 to i64
  %3709 = getelementptr inbounds i8, ptr %3705, i64 %3708
  store i8 %3704, ptr %3709, align 1, !tbaa !15
  %3710 = load ptr, ptr %14, align 8, !tbaa !5
  %3711 = load i32, ptr %18, align 4, !tbaa !14
  %3712 = add nsw i32 %3711, 3
  %3713 = sext i32 %3712 to i64
  %3714 = getelementptr inbounds i8, ptr %3710, i64 %3713
  %3715 = load i8, ptr %3714, align 1, !tbaa !15
  %3716 = zext i8 %3715 to i64
  %3717 = getelementptr inbounds [256 x i8], ptr @r_to_y, i64 0, i64 %3716
  %3718 = load i8, ptr %3717, align 1, !tbaa !15
  %3719 = zext i8 %3718 to i32
  %3720 = load ptr, ptr %13, align 8, !tbaa !5
  %3721 = load i32, ptr %18, align 4, !tbaa !14
  %3722 = add nsw i32 %3721, 3
  %3723 = sext i32 %3722 to i64
  %3724 = getelementptr inbounds i8, ptr %3720, i64 %3723
  %3725 = load i8, ptr %3724, align 1, !tbaa !15
  %3726 = zext i8 %3725 to i64
  %3727 = getelementptr inbounds [256 x i8], ptr @g_to_y, i64 0, i64 %3726
  %3728 = load i8, ptr %3727, align 1, !tbaa !15
  %3729 = zext i8 %3728 to i32
  %3730 = add nsw i32 %3719, %3729
  %3731 = load ptr, ptr %12, align 8, !tbaa !5
  %3732 = load i32, ptr %18, align 4, !tbaa !14
  %3733 = add nsw i32 %3732, 3
  %3734 = sext i32 %3733 to i64
  %3735 = getelementptr inbounds i8, ptr %3731, i64 %3734
  %3736 = load i8, ptr %3735, align 1, !tbaa !15
  %3737 = zext i8 %3736 to i64
  %3738 = getelementptr inbounds [256 x i8], ptr @b_to_y, i64 0, i64 %3737
  %3739 = load i8, ptr %3738, align 1, !tbaa !15
  %3740 = zext i8 %3739 to i32
  %3741 = add nsw i32 %3730, %3740
  %3742 = trunc i32 %3741 to i8
  %3743 = load ptr, ptr %15, align 8, !tbaa !5
  %3744 = load i32, ptr %18, align 4, !tbaa !14
  %3745 = add nsw i32 %3744, 3
  %3746 = sext i32 %3745 to i64
  %3747 = getelementptr inbounds i8, ptr %3743, i64 %3746
  store i8 %3742, ptr %3747, align 1, !tbaa !15
  %3748 = load ptr, ptr %10, align 8, !tbaa !5
  %3749 = load ptr, ptr %12, align 8, !tbaa !5
  %3750 = load i32, ptr %18, align 4, !tbaa !14
  %3751 = add nsw i32 %3750, 3
  %3752 = sext i32 %3751 to i64
  %3753 = getelementptr inbounds i8, ptr %3749, i64 %3752
  %3754 = load i8, ptr %3753, align 1, !tbaa !15
  %3755 = zext i8 %3754 to i32
  %3756 = load ptr, ptr %15, align 8, !tbaa !5
  %3757 = load i32, ptr %18, align 4, !tbaa !14
  %3758 = add nsw i32 %3757, 3
  %3759 = sext i32 %3758 to i64
  %3760 = getelementptr inbounds i8, ptr %3756, i64 %3759
  %3761 = load i8, ptr %3760, align 1, !tbaa !15
  %3762 = zext i8 %3761 to i32
  %3763 = sub nsw i32 %3755, %3762
  %3764 = sext i32 %3763 to i64
  %3765 = getelementptr inbounds i8, ptr %3748, i64 %3764
  %3766 = load i8, ptr %3765, align 1, !tbaa !15
  %3767 = load ptr, ptr %16, align 8, !tbaa !5
  %3768 = load i32, ptr %18, align 4, !tbaa !14
  %3769 = add nsw i32 %3768, 3
  %3770 = sext i32 %3769 to i64
  %3771 = getelementptr inbounds i8, ptr %3767, i64 %3770
  store i8 %3766, ptr %3771, align 1, !tbaa !15
  %3772 = load ptr, ptr %9, align 8, !tbaa !5
  %3773 = load ptr, ptr %14, align 8, !tbaa !5
  %3774 = load i32, ptr %18, align 4, !tbaa !14
  %3775 = add nsw i32 %3774, 3
  %3776 = sext i32 %3775 to i64
  %3777 = getelementptr inbounds i8, ptr %3773, i64 %3776
  %3778 = load i8, ptr %3777, align 1, !tbaa !15
  %3779 = zext i8 %3778 to i32
  %3780 = load ptr, ptr %15, align 8, !tbaa !5
  %3781 = load i32, ptr %18, align 4, !tbaa !14
  %3782 = add nsw i32 %3781, 3
  %3783 = sext i32 %3782 to i64
  %3784 = getelementptr inbounds i8, ptr %3780, i64 %3783
  %3785 = load i8, ptr %3784, align 1, !tbaa !15
  %3786 = zext i8 %3785 to i32
  %3787 = sub nsw i32 %3779, %3786
  %3788 = sext i32 %3787 to i64
  %3789 = getelementptr inbounds i8, ptr %3772, i64 %3788
  %3790 = load i8, ptr %3789, align 1, !tbaa !15
  %3791 = load ptr, ptr %17, align 8, !tbaa !5
  %3792 = load i32, ptr %18, align 4, !tbaa !14
  %3793 = add nsw i32 %3792, 3
  %3794 = sext i32 %3793 to i64
  %3795 = getelementptr inbounds i8, ptr %3791, i64 %3794
  store i8 %3790, ptr %3795, align 1, !tbaa !15
  %3796 = load ptr, ptr %14, align 8, !tbaa !5
  %3797 = load i32, ptr %18, align 4, !tbaa !14
  %3798 = add nsw i32 %3797, 4
  %3799 = sext i32 %3798 to i64
  %3800 = getelementptr inbounds i8, ptr %3796, i64 %3799
  %3801 = load i8, ptr %3800, align 1, !tbaa !15
  %3802 = zext i8 %3801 to i64
  %3803 = getelementptr inbounds [256 x i8], ptr @r_to_y, i64 0, i64 %3802
  %3804 = load i8, ptr %3803, align 1, !tbaa !15
  %3805 = zext i8 %3804 to i32
  %3806 = load ptr, ptr %13, align 8, !tbaa !5
  %3807 = load i32, ptr %18, align 4, !tbaa !14
  %3808 = add nsw i32 %3807, 4
  %3809 = sext i32 %3808 to i64
  %3810 = getelementptr inbounds i8, ptr %3806, i64 %3809
  %3811 = load i8, ptr %3810, align 1, !tbaa !15
  %3812 = zext i8 %3811 to i64
  %3813 = getelementptr inbounds [256 x i8], ptr @g_to_y, i64 0, i64 %3812
  %3814 = load i8, ptr %3813, align 1, !tbaa !15
  %3815 = zext i8 %3814 to i32
  %3816 = add nsw i32 %3805, %3815
  %3817 = load ptr, ptr %12, align 8, !tbaa !5
  %3818 = load i32, ptr %18, align 4, !tbaa !14
  %3819 = add nsw i32 %3818, 4
  %3820 = sext i32 %3819 to i64
  %3821 = getelementptr inbounds i8, ptr %3817, i64 %3820
  %3822 = load i8, ptr %3821, align 1, !tbaa !15
  %3823 = zext i8 %3822 to i64
  %3824 = getelementptr inbounds [256 x i8], ptr @b_to_y, i64 0, i64 %3823
  %3825 = load i8, ptr %3824, align 1, !tbaa !15
  %3826 = zext i8 %3825 to i32
  %3827 = add nsw i32 %3816, %3826
  %3828 = trunc i32 %3827 to i8
  %3829 = load ptr, ptr %15, align 8, !tbaa !5
  %3830 = load i32, ptr %18, align 4, !tbaa !14
  %3831 = add nsw i32 %3830, 4
  %3832 = sext i32 %3831 to i64
  %3833 = getelementptr inbounds i8, ptr %3829, i64 %3832
  store i8 %3828, ptr %3833, align 1, !tbaa !15
  %3834 = load ptr, ptr %10, align 8, !tbaa !5
  %3835 = load ptr, ptr %12, align 8, !tbaa !5
  %3836 = load i32, ptr %18, align 4, !tbaa !14
  %3837 = add nsw i32 %3836, 4
  %3838 = sext i32 %3837 to i64
  %3839 = getelementptr inbounds i8, ptr %3835, i64 %3838
  %3840 = load i8, ptr %3839, align 1, !tbaa !15
  %3841 = zext i8 %3840 to i32
  %3842 = load ptr, ptr %15, align 8, !tbaa !5
  %3843 = load i32, ptr %18, align 4, !tbaa !14
  %3844 = add nsw i32 %3843, 4
  %3845 = sext i32 %3844 to i64
  %3846 = getelementptr inbounds i8, ptr %3842, i64 %3845
  %3847 = load i8, ptr %3846, align 1, !tbaa !15
  %3848 = zext i8 %3847 to i32
  %3849 = sub nsw i32 %3841, %3848
  %3850 = sext i32 %3849 to i64
  %3851 = getelementptr inbounds i8, ptr %3834, i64 %3850
  %3852 = load i8, ptr %3851, align 1, !tbaa !15
  %3853 = load ptr, ptr %16, align 8, !tbaa !5
  %3854 = load i32, ptr %18, align 4, !tbaa !14
  %3855 = add nsw i32 %3854, 4
  %3856 = sext i32 %3855 to i64
  %3857 = getelementptr inbounds i8, ptr %3853, i64 %3856
  store i8 %3852, ptr %3857, align 1, !tbaa !15
  %3858 = load ptr, ptr %9, align 8, !tbaa !5
  %3859 = load ptr, ptr %14, align 8, !tbaa !5
  %3860 = load i32, ptr %18, align 4, !tbaa !14
  %3861 = add nsw i32 %3860, 4
  %3862 = sext i32 %3861 to i64
  %3863 = getelementptr inbounds i8, ptr %3859, i64 %3862
  %3864 = load i8, ptr %3863, align 1, !tbaa !15
  %3865 = zext i8 %3864 to i32
  %3866 = load ptr, ptr %15, align 8, !tbaa !5
  %3867 = load i32, ptr %18, align 4, !tbaa !14
  %3868 = add nsw i32 %3867, 4
  %3869 = sext i32 %3868 to i64
  %3870 = getelementptr inbounds i8, ptr %3866, i64 %3869
  %3871 = load i8, ptr %3870, align 1, !tbaa !15
  %3872 = zext i8 %3871 to i32
  %3873 = sub nsw i32 %3865, %3872
  %3874 = sext i32 %3873 to i64
  %3875 = getelementptr inbounds i8, ptr %3858, i64 %3874
  %3876 = load i8, ptr %3875, align 1, !tbaa !15
  %3877 = load ptr, ptr %17, align 8, !tbaa !5
  %3878 = load i32, ptr %18, align 4, !tbaa !14
  %3879 = add nsw i32 %3878, 4
  %3880 = sext i32 %3879 to i64
  %3881 = getelementptr inbounds i8, ptr %3877, i64 %3880
  store i8 %3876, ptr %3881, align 1, !tbaa !15
  %3882 = load ptr, ptr %14, align 8, !tbaa !5
  %3883 = load i32, ptr %18, align 4, !tbaa !14
  %3884 = add nsw i32 %3883, 5
  %3885 = sext i32 %3884 to i64
  %3886 = getelementptr inbounds i8, ptr %3882, i64 %3885
  %3887 = load i8, ptr %3886, align 1, !tbaa !15
  %3888 = zext i8 %3887 to i64
  %3889 = getelementptr inbounds [256 x i8], ptr @r_to_y, i64 0, i64 %3888
  %3890 = load i8, ptr %3889, align 1, !tbaa !15
  %3891 = zext i8 %3890 to i32
  %3892 = load ptr, ptr %13, align 8, !tbaa !5
  %3893 = load i32, ptr %18, align 4, !tbaa !14
  %3894 = add nsw i32 %3893, 5
  %3895 = sext i32 %3894 to i64
  %3896 = getelementptr inbounds i8, ptr %3892, i64 %3895
  %3897 = load i8, ptr %3896, align 1, !tbaa !15
  %3898 = zext i8 %3897 to i64
  %3899 = getelementptr inbounds [256 x i8], ptr @g_to_y, i64 0, i64 %3898
  %3900 = load i8, ptr %3899, align 1, !tbaa !15
  %3901 = zext i8 %3900 to i32
  %3902 = add nsw i32 %3891, %3901
  %3903 = load ptr, ptr %12, align 8, !tbaa !5
  %3904 = load i32, ptr %18, align 4, !tbaa !14
  %3905 = add nsw i32 %3904, 5
  %3906 = sext i32 %3905 to i64
  %3907 = getelementptr inbounds i8, ptr %3903, i64 %3906
  %3908 = load i8, ptr %3907, align 1, !tbaa !15
  %3909 = zext i8 %3908 to i64
  %3910 = getelementptr inbounds [256 x i8], ptr @b_to_y, i64 0, i64 %3909
  %3911 = load i8, ptr %3910, align 1, !tbaa !15
  %3912 = zext i8 %3911 to i32
  %3913 = add nsw i32 %3902, %3912
  %3914 = trunc i32 %3913 to i8
  %3915 = load ptr, ptr %15, align 8, !tbaa !5
  %3916 = load i32, ptr %18, align 4, !tbaa !14
  %3917 = add nsw i32 %3916, 5
  %3918 = sext i32 %3917 to i64
  %3919 = getelementptr inbounds i8, ptr %3915, i64 %3918
  store i8 %3914, ptr %3919, align 1, !tbaa !15
  %3920 = load ptr, ptr %10, align 8, !tbaa !5
  %3921 = load ptr, ptr %12, align 8, !tbaa !5
  %3922 = load i32, ptr %18, align 4, !tbaa !14
  %3923 = add nsw i32 %3922, 5
  %3924 = sext i32 %3923 to i64
  %3925 = getelementptr inbounds i8, ptr %3921, i64 %3924
  %3926 = load i8, ptr %3925, align 1, !tbaa !15
  %3927 = zext i8 %3926 to i32
  %3928 = load ptr, ptr %15, align 8, !tbaa !5
  %3929 = load i32, ptr %18, align 4, !tbaa !14
  %3930 = add nsw i32 %3929, 5
  %3931 = sext i32 %3930 to i64
  %3932 = getelementptr inbounds i8, ptr %3928, i64 %3931
  %3933 = load i8, ptr %3932, align 1, !tbaa !15
  %3934 = zext i8 %3933 to i32
  %3935 = sub nsw i32 %3927, %3934
  %3936 = sext i32 %3935 to i64
  %3937 = getelementptr inbounds i8, ptr %3920, i64 %3936
  %3938 = load i8, ptr %3937, align 1, !tbaa !15
  %3939 = load ptr, ptr %16, align 8, !tbaa !5
  %3940 = load i32, ptr %18, align 4, !tbaa !14
  %3941 = add nsw i32 %3940, 5
  %3942 = sext i32 %3941 to i64
  %3943 = getelementptr inbounds i8, ptr %3939, i64 %3942
  store i8 %3938, ptr %3943, align 1, !tbaa !15
  %3944 = load ptr, ptr %9, align 8, !tbaa !5
  %3945 = load ptr, ptr %14, align 8, !tbaa !5
  %3946 = load i32, ptr %18, align 4, !tbaa !14
  %3947 = add nsw i32 %3946, 5
  %3948 = sext i32 %3947 to i64
  %3949 = getelementptr inbounds i8, ptr %3945, i64 %3948
  %3950 = load i8, ptr %3949, align 1, !tbaa !15
  %3951 = zext i8 %3950 to i32
  %3952 = load ptr, ptr %15, align 8, !tbaa !5
  %3953 = load i32, ptr %18, align 4, !tbaa !14
  %3954 = add nsw i32 %3953, 5
  %3955 = sext i32 %3954 to i64
  %3956 = getelementptr inbounds i8, ptr %3952, i64 %3955
  %3957 = load i8, ptr %3956, align 1, !tbaa !15
  %3958 = zext i8 %3957 to i32
  %3959 = sub nsw i32 %3951, %3958
  %3960 = sext i32 %3959 to i64
  %3961 = getelementptr inbounds i8, ptr %3944, i64 %3960
  %3962 = load i8, ptr %3961, align 1, !tbaa !15
  %3963 = load ptr, ptr %17, align 8, !tbaa !5
  %3964 = load i32, ptr %18, align 4, !tbaa !14
  %3965 = add nsw i32 %3964, 5
  %3966 = sext i32 %3965 to i64
  %3967 = getelementptr inbounds i8, ptr %3963, i64 %3966
  store i8 %3962, ptr %3967, align 1, !tbaa !15
  %3968 = load ptr, ptr %14, align 8, !tbaa !5
  %3969 = load i32, ptr %18, align 4, !tbaa !14
  %3970 = add nsw i32 %3969, 6
  %3971 = sext i32 %3970 to i64
  %3972 = getelementptr inbounds i8, ptr %3968, i64 %3971
  %3973 = load i8, ptr %3972, align 1, !tbaa !15
  %3974 = zext i8 %3973 to i64
  %3975 = getelementptr inbounds [256 x i8], ptr @r_to_y, i64 0, i64 %3974
  %3976 = load i8, ptr %3975, align 1, !tbaa !15
  %3977 = zext i8 %3976 to i32
  %3978 = load ptr, ptr %13, align 8, !tbaa !5
  %3979 = load i32, ptr %18, align 4, !tbaa !14
  %3980 = add nsw i32 %3979, 6
  %3981 = sext i32 %3980 to i64
  %3982 = getelementptr inbounds i8, ptr %3978, i64 %3981
  %3983 = load i8, ptr %3982, align 1, !tbaa !15
  %3984 = zext i8 %3983 to i64
  %3985 = getelementptr inbounds [256 x i8], ptr @g_to_y, i64 0, i64 %3984
  %3986 = load i8, ptr %3985, align 1, !tbaa !15
  %3987 = zext i8 %3986 to i32
  %3988 = add nsw i32 %3977, %3987
  %3989 = load ptr, ptr %12, align 8, !tbaa !5
  %3990 = load i32, ptr %18, align 4, !tbaa !14
  %3991 = add nsw i32 %3990, 6
  %3992 = sext i32 %3991 to i64
  %3993 = getelementptr inbounds i8, ptr %3989, i64 %3992
  %3994 = load i8, ptr %3993, align 1, !tbaa !15
  %3995 = zext i8 %3994 to i64
  %3996 = getelementptr inbounds [256 x i8], ptr @b_to_y, i64 0, i64 %3995
  %3997 = load i8, ptr %3996, align 1, !tbaa !15
  %3998 = zext i8 %3997 to i32
  %3999 = add nsw i32 %3988, %3998
  %4000 = trunc i32 %3999 to i8
  %4001 = load ptr, ptr %15, align 8, !tbaa !5
  %4002 = load i32, ptr %18, align 4, !tbaa !14
  %4003 = add nsw i32 %4002, 6
  %4004 = sext i32 %4003 to i64
  %4005 = getelementptr inbounds i8, ptr %4001, i64 %4004
  store i8 %4000, ptr %4005, align 1, !tbaa !15
  %4006 = load ptr, ptr %10, align 8, !tbaa !5
  %4007 = load ptr, ptr %12, align 8, !tbaa !5
  %4008 = load i32, ptr %18, align 4, !tbaa !14
  %4009 = add nsw i32 %4008, 6
  %4010 = sext i32 %4009 to i64
  %4011 = getelementptr inbounds i8, ptr %4007, i64 %4010
  %4012 = load i8, ptr %4011, align 1, !tbaa !15
  %4013 = zext i8 %4012 to i32
  %4014 = load ptr, ptr %15, align 8, !tbaa !5
  %4015 = load i32, ptr %18, align 4, !tbaa !14
  %4016 = add nsw i32 %4015, 6
  %4017 = sext i32 %4016 to i64
  %4018 = getelementptr inbounds i8, ptr %4014, i64 %4017
  %4019 = load i8, ptr %4018, align 1, !tbaa !15
  %4020 = zext i8 %4019 to i32
  %4021 = sub nsw i32 %4013, %4020
  %4022 = sext i32 %4021 to i64
  %4023 = getelementptr inbounds i8, ptr %4006, i64 %4022
  %4024 = load i8, ptr %4023, align 1, !tbaa !15
  %4025 = load ptr, ptr %16, align 8, !tbaa !5
  %4026 = load i32, ptr %18, align 4, !tbaa !14
  %4027 = add nsw i32 %4026, 6
  %4028 = sext i32 %4027 to i64
  %4029 = getelementptr inbounds i8, ptr %4025, i64 %4028
  store i8 %4024, ptr %4029, align 1, !tbaa !15
  %4030 = load ptr, ptr %9, align 8, !tbaa !5
  %4031 = load ptr, ptr %14, align 8, !tbaa !5
  %4032 = load i32, ptr %18, align 4, !tbaa !14
  %4033 = add nsw i32 %4032, 6
  %4034 = sext i32 %4033 to i64
  %4035 = getelementptr inbounds i8, ptr %4031, i64 %4034
  %4036 = load i8, ptr %4035, align 1, !tbaa !15
  %4037 = zext i8 %4036 to i32
  %4038 = load ptr, ptr %15, align 8, !tbaa !5
  %4039 = load i32, ptr %18, align 4, !tbaa !14
  %4040 = add nsw i32 %4039, 6
  %4041 = sext i32 %4040 to i64
  %4042 = getelementptr inbounds i8, ptr %4038, i64 %4041
  %4043 = load i8, ptr %4042, align 1, !tbaa !15
  %4044 = zext i8 %4043 to i32
  %4045 = sub nsw i32 %4037, %4044
  %4046 = sext i32 %4045 to i64
  %4047 = getelementptr inbounds i8, ptr %4030, i64 %4046
  %4048 = load i8, ptr %4047, align 1, !tbaa !15
  %4049 = load ptr, ptr %17, align 8, !tbaa !5
  %4050 = load i32, ptr %18, align 4, !tbaa !14
  %4051 = add nsw i32 %4050, 6
  %4052 = sext i32 %4051 to i64
  %4053 = getelementptr inbounds i8, ptr %4049, i64 %4052
  store i8 %4048, ptr %4053, align 1, !tbaa !15
  br label %12038

4054:                                             ; preds = %3444
  %4055 = load ptr, ptr %4, align 8, !tbaa !5
  %4056 = getelementptr inbounds %struct.MImage, ptr %4055, i32 0, i32 2
  %4057 = load i32, ptr %4056, align 8, !tbaa !13
  %4058 = load i32, ptr %18, align 4, !tbaa !14
  %4059 = sub nsw i32 %4057, %4058
  %4060 = icmp eq i32 %4059, 8
  br i1 %4060, label %4061, label %4750

4061:                                             ; preds = %4054
  %4062 = load ptr, ptr %14, align 8, !tbaa !5
  %4063 = load i32, ptr %18, align 4, !tbaa !14
  %4064 = add nsw i32 %4063, 0
  %4065 = sext i32 %4064 to i64
  %4066 = getelementptr inbounds i8, ptr %4062, i64 %4065
  %4067 = load i8, ptr %4066, align 1, !tbaa !15
  %4068 = zext i8 %4067 to i64
  %4069 = getelementptr inbounds [256 x i8], ptr @r_to_y, i64 0, i64 %4068
  %4070 = load i8, ptr %4069, align 1, !tbaa !15
  %4071 = zext i8 %4070 to i32
  %4072 = load ptr, ptr %13, align 8, !tbaa !5
  %4073 = load i32, ptr %18, align 4, !tbaa !14
  %4074 = add nsw i32 %4073, 0
  %4075 = sext i32 %4074 to i64
  %4076 = getelementptr inbounds i8, ptr %4072, i64 %4075
  %4077 = load i8, ptr %4076, align 1, !tbaa !15
  %4078 = zext i8 %4077 to i64
  %4079 = getelementptr inbounds [256 x i8], ptr @g_to_y, i64 0, i64 %4078
  %4080 = load i8, ptr %4079, align 1, !tbaa !15
  %4081 = zext i8 %4080 to i32
  %4082 = add nsw i32 %4071, %4081
  %4083 = load ptr, ptr %12, align 8, !tbaa !5
  %4084 = load i32, ptr %18, align 4, !tbaa !14
  %4085 = add nsw i32 %4084, 0
  %4086 = sext i32 %4085 to i64
  %4087 = getelementptr inbounds i8, ptr %4083, i64 %4086
  %4088 = load i8, ptr %4087, align 1, !tbaa !15
  %4089 = zext i8 %4088 to i64
  %4090 = getelementptr inbounds [256 x i8], ptr @b_to_y, i64 0, i64 %4089
  %4091 = load i8, ptr %4090, align 1, !tbaa !15
  %4092 = zext i8 %4091 to i32
  %4093 = add nsw i32 %4082, %4092
  %4094 = trunc i32 %4093 to i8
  %4095 = load ptr, ptr %15, align 8, !tbaa !5
  %4096 = load i32, ptr %18, align 4, !tbaa !14
  %4097 = add nsw i32 %4096, 0
  %4098 = sext i32 %4097 to i64
  %4099 = getelementptr inbounds i8, ptr %4095, i64 %4098
  store i8 %4094, ptr %4099, align 1, !tbaa !15
  %4100 = load ptr, ptr %10, align 8, !tbaa !5
  %4101 = load ptr, ptr %12, align 8, !tbaa !5
  %4102 = load i32, ptr %18, align 4, !tbaa !14
  %4103 = add nsw i32 %4102, 0
  %4104 = sext i32 %4103 to i64
  %4105 = getelementptr inbounds i8, ptr %4101, i64 %4104
  %4106 = load i8, ptr %4105, align 1, !tbaa !15
  %4107 = zext i8 %4106 to i32
  %4108 = load ptr, ptr %15, align 8, !tbaa !5
  %4109 = load i32, ptr %18, align 4, !tbaa !14
  %4110 = add nsw i32 %4109, 0
  %4111 = sext i32 %4110 to i64
  %4112 = getelementptr inbounds i8, ptr %4108, i64 %4111
  %4113 = load i8, ptr %4112, align 1, !tbaa !15
  %4114 = zext i8 %4113 to i32
  %4115 = sub nsw i32 %4107, %4114
  %4116 = sext i32 %4115 to i64
  %4117 = getelementptr inbounds i8, ptr %4100, i64 %4116
  %4118 = load i8, ptr %4117, align 1, !tbaa !15
  %4119 = load ptr, ptr %16, align 8, !tbaa !5
  %4120 = load i32, ptr %18, align 4, !tbaa !14
  %4121 = add nsw i32 %4120, 0
  %4122 = sext i32 %4121 to i64
  %4123 = getelementptr inbounds i8, ptr %4119, i64 %4122
  store i8 %4118, ptr %4123, align 1, !tbaa !15
  %4124 = load ptr, ptr %9, align 8, !tbaa !5
  %4125 = load ptr, ptr %14, align 8, !tbaa !5
  %4126 = load i32, ptr %18, align 4, !tbaa !14
  %4127 = add nsw i32 %4126, 0
  %4128 = sext i32 %4127 to i64
  %4129 = getelementptr inbounds i8, ptr %4125, i64 %4128
  %4130 = load i8, ptr %4129, align 1, !tbaa !15
  %4131 = zext i8 %4130 to i32
  %4132 = load ptr, ptr %15, align 8, !tbaa !5
  %4133 = load i32, ptr %18, align 4, !tbaa !14
  %4134 = add nsw i32 %4133, 0
  %4135 = sext i32 %4134 to i64
  %4136 = getelementptr inbounds i8, ptr %4132, i64 %4135
  %4137 = load i8, ptr %4136, align 1, !tbaa !15
  %4138 = zext i8 %4137 to i32
  %4139 = sub nsw i32 %4131, %4138
  %4140 = sext i32 %4139 to i64
  %4141 = getelementptr inbounds i8, ptr %4124, i64 %4140
  %4142 = load i8, ptr %4141, align 1, !tbaa !15
  %4143 = load ptr, ptr %17, align 8, !tbaa !5
  %4144 = load i32, ptr %18, align 4, !tbaa !14
  %4145 = add nsw i32 %4144, 0
  %4146 = sext i32 %4145 to i64
  %4147 = getelementptr inbounds i8, ptr %4143, i64 %4146
  store i8 %4142, ptr %4147, align 1, !tbaa !15
  %4148 = load ptr, ptr %14, align 8, !tbaa !5
  %4149 = load i32, ptr %18, align 4, !tbaa !14
  %4150 = add nsw i32 %4149, 1
  %4151 = sext i32 %4150 to i64
  %4152 = getelementptr inbounds i8, ptr %4148, i64 %4151
  %4153 = load i8, ptr %4152, align 1, !tbaa !15
  %4154 = zext i8 %4153 to i64
  %4155 = getelementptr inbounds [256 x i8], ptr @r_to_y, i64 0, i64 %4154
  %4156 = load i8, ptr %4155, align 1, !tbaa !15
  %4157 = zext i8 %4156 to i32
  %4158 = load ptr, ptr %13, align 8, !tbaa !5
  %4159 = load i32, ptr %18, align 4, !tbaa !14
  %4160 = add nsw i32 %4159, 1
  %4161 = sext i32 %4160 to i64
  %4162 = getelementptr inbounds i8, ptr %4158, i64 %4161
  %4163 = load i8, ptr %4162, align 1, !tbaa !15
  %4164 = zext i8 %4163 to i64
  %4165 = getelementptr inbounds [256 x i8], ptr @g_to_y, i64 0, i64 %4164
  %4166 = load i8, ptr %4165, align 1, !tbaa !15
  %4167 = zext i8 %4166 to i32
  %4168 = add nsw i32 %4157, %4167
  %4169 = load ptr, ptr %12, align 8, !tbaa !5
  %4170 = load i32, ptr %18, align 4, !tbaa !14
  %4171 = add nsw i32 %4170, 1
  %4172 = sext i32 %4171 to i64
  %4173 = getelementptr inbounds i8, ptr %4169, i64 %4172
  %4174 = load i8, ptr %4173, align 1, !tbaa !15
  %4175 = zext i8 %4174 to i64
  %4176 = getelementptr inbounds [256 x i8], ptr @b_to_y, i64 0, i64 %4175
  %4177 = load i8, ptr %4176, align 1, !tbaa !15
  %4178 = zext i8 %4177 to i32
  %4179 = add nsw i32 %4168, %4178
  %4180 = trunc i32 %4179 to i8
  %4181 = load ptr, ptr %15, align 8, !tbaa !5
  %4182 = load i32, ptr %18, align 4, !tbaa !14
  %4183 = add nsw i32 %4182, 1
  %4184 = sext i32 %4183 to i64
  %4185 = getelementptr inbounds i8, ptr %4181, i64 %4184
  store i8 %4180, ptr %4185, align 1, !tbaa !15
  %4186 = load ptr, ptr %10, align 8, !tbaa !5
  %4187 = load ptr, ptr %12, align 8, !tbaa !5
  %4188 = load i32, ptr %18, align 4, !tbaa !14
  %4189 = add nsw i32 %4188, 1
  %4190 = sext i32 %4189 to i64
  %4191 = getelementptr inbounds i8, ptr %4187, i64 %4190
  %4192 = load i8, ptr %4191, align 1, !tbaa !15
  %4193 = zext i8 %4192 to i32
  %4194 = load ptr, ptr %15, align 8, !tbaa !5
  %4195 = load i32, ptr %18, align 4, !tbaa !14
  %4196 = add nsw i32 %4195, 1
  %4197 = sext i32 %4196 to i64
  %4198 = getelementptr inbounds i8, ptr %4194, i64 %4197
  %4199 = load i8, ptr %4198, align 1, !tbaa !15
  %4200 = zext i8 %4199 to i32
  %4201 = sub nsw i32 %4193, %4200
  %4202 = sext i32 %4201 to i64
  %4203 = getelementptr inbounds i8, ptr %4186, i64 %4202
  %4204 = load i8, ptr %4203, align 1, !tbaa !15
  %4205 = load ptr, ptr %16, align 8, !tbaa !5
  %4206 = load i32, ptr %18, align 4, !tbaa !14
  %4207 = add nsw i32 %4206, 1
  %4208 = sext i32 %4207 to i64
  %4209 = getelementptr inbounds i8, ptr %4205, i64 %4208
  store i8 %4204, ptr %4209, align 1, !tbaa !15
  %4210 = load ptr, ptr %9, align 8, !tbaa !5
  %4211 = load ptr, ptr %14, align 8, !tbaa !5
  %4212 = load i32, ptr %18, align 4, !tbaa !14
  %4213 = add nsw i32 %4212, 1
  %4214 = sext i32 %4213 to i64
  %4215 = getelementptr inbounds i8, ptr %4211, i64 %4214
  %4216 = load i8, ptr %4215, align 1, !tbaa !15
  %4217 = zext i8 %4216 to i32
  %4218 = load ptr, ptr %15, align 8, !tbaa !5
  %4219 = load i32, ptr %18, align 4, !tbaa !14
  %4220 = add nsw i32 %4219, 1
  %4221 = sext i32 %4220 to i64
  %4222 = getelementptr inbounds i8, ptr %4218, i64 %4221
  %4223 = load i8, ptr %4222, align 1, !tbaa !15
  %4224 = zext i8 %4223 to i32
  %4225 = sub nsw i32 %4217, %4224
  %4226 = sext i32 %4225 to i64
  %4227 = getelementptr inbounds i8, ptr %4210, i64 %4226
  %4228 = load i8, ptr %4227, align 1, !tbaa !15
  %4229 = load ptr, ptr %17, align 8, !tbaa !5
  %4230 = load i32, ptr %18, align 4, !tbaa !14
  %4231 = add nsw i32 %4230, 1
  %4232 = sext i32 %4231 to i64
  %4233 = getelementptr inbounds i8, ptr %4229, i64 %4232
  store i8 %4228, ptr %4233, align 1, !tbaa !15
  %4234 = load ptr, ptr %14, align 8, !tbaa !5
  %4235 = load i32, ptr %18, align 4, !tbaa !14
  %4236 = add nsw i32 %4235, 2
  %4237 = sext i32 %4236 to i64
  %4238 = getelementptr inbounds i8, ptr %4234, i64 %4237
  %4239 = load i8, ptr %4238, align 1, !tbaa !15
  %4240 = zext i8 %4239 to i64
  %4241 = getelementptr inbounds [256 x i8], ptr @r_to_y, i64 0, i64 %4240
  %4242 = load i8, ptr %4241, align 1, !tbaa !15
  %4243 = zext i8 %4242 to i32
  %4244 = load ptr, ptr %13, align 8, !tbaa !5
  %4245 = load i32, ptr %18, align 4, !tbaa !14
  %4246 = add nsw i32 %4245, 2
  %4247 = sext i32 %4246 to i64
  %4248 = getelementptr inbounds i8, ptr %4244, i64 %4247
  %4249 = load i8, ptr %4248, align 1, !tbaa !15
  %4250 = zext i8 %4249 to i64
  %4251 = getelementptr inbounds [256 x i8], ptr @g_to_y, i64 0, i64 %4250
  %4252 = load i8, ptr %4251, align 1, !tbaa !15
  %4253 = zext i8 %4252 to i32
  %4254 = add nsw i32 %4243, %4253
  %4255 = load ptr, ptr %12, align 8, !tbaa !5
  %4256 = load i32, ptr %18, align 4, !tbaa !14
  %4257 = add nsw i32 %4256, 2
  %4258 = sext i32 %4257 to i64
  %4259 = getelementptr inbounds i8, ptr %4255, i64 %4258
  %4260 = load i8, ptr %4259, align 1, !tbaa !15
  %4261 = zext i8 %4260 to i64
  %4262 = getelementptr inbounds [256 x i8], ptr @b_to_y, i64 0, i64 %4261
  %4263 = load i8, ptr %4262, align 1, !tbaa !15
  %4264 = zext i8 %4263 to i32
  %4265 = add nsw i32 %4254, %4264
  %4266 = trunc i32 %4265 to i8
  %4267 = load ptr, ptr %15, align 8, !tbaa !5
  %4268 = load i32, ptr %18, align 4, !tbaa !14
  %4269 = add nsw i32 %4268, 2
  %4270 = sext i32 %4269 to i64
  %4271 = getelementptr inbounds i8, ptr %4267, i64 %4270
  store i8 %4266, ptr %4271, align 1, !tbaa !15
  %4272 = load ptr, ptr %10, align 8, !tbaa !5
  %4273 = load ptr, ptr %12, align 8, !tbaa !5
  %4274 = load i32, ptr %18, align 4, !tbaa !14
  %4275 = add nsw i32 %4274, 2
  %4276 = sext i32 %4275 to i64
  %4277 = getelementptr inbounds i8, ptr %4273, i64 %4276
  %4278 = load i8, ptr %4277, align 1, !tbaa !15
  %4279 = zext i8 %4278 to i32
  %4280 = load ptr, ptr %15, align 8, !tbaa !5
  %4281 = load i32, ptr %18, align 4, !tbaa !14
  %4282 = add nsw i32 %4281, 2
  %4283 = sext i32 %4282 to i64
  %4284 = getelementptr inbounds i8, ptr %4280, i64 %4283
  %4285 = load i8, ptr %4284, align 1, !tbaa !15
  %4286 = zext i8 %4285 to i32
  %4287 = sub nsw i32 %4279, %4286
  %4288 = sext i32 %4287 to i64
  %4289 = getelementptr inbounds i8, ptr %4272, i64 %4288
  %4290 = load i8, ptr %4289, align 1, !tbaa !15
  %4291 = load ptr, ptr %16, align 8, !tbaa !5
  %4292 = load i32, ptr %18, align 4, !tbaa !14
  %4293 = add nsw i32 %4292, 2
  %4294 = sext i32 %4293 to i64
  %4295 = getelementptr inbounds i8, ptr %4291, i64 %4294
  store i8 %4290, ptr %4295, align 1, !tbaa !15
  %4296 = load ptr, ptr %9, align 8, !tbaa !5
  %4297 = load ptr, ptr %14, align 8, !tbaa !5
  %4298 = load i32, ptr %18, align 4, !tbaa !14
  %4299 = add nsw i32 %4298, 2
  %4300 = sext i32 %4299 to i64
  %4301 = getelementptr inbounds i8, ptr %4297, i64 %4300
  %4302 = load i8, ptr %4301, align 1, !tbaa !15
  %4303 = zext i8 %4302 to i32
  %4304 = load ptr, ptr %15, align 8, !tbaa !5
  %4305 = load i32, ptr %18, align 4, !tbaa !14
  %4306 = add nsw i32 %4305, 2
  %4307 = sext i32 %4306 to i64
  %4308 = getelementptr inbounds i8, ptr %4304, i64 %4307
  %4309 = load i8, ptr %4308, align 1, !tbaa !15
  %4310 = zext i8 %4309 to i32
  %4311 = sub nsw i32 %4303, %4310
  %4312 = sext i32 %4311 to i64
  %4313 = getelementptr inbounds i8, ptr %4296, i64 %4312
  %4314 = load i8, ptr %4313, align 1, !tbaa !15
  %4315 = load ptr, ptr %17, align 8, !tbaa !5
  %4316 = load i32, ptr %18, align 4, !tbaa !14
  %4317 = add nsw i32 %4316, 2
  %4318 = sext i32 %4317 to i64
  %4319 = getelementptr inbounds i8, ptr %4315, i64 %4318
  store i8 %4314, ptr %4319, align 1, !tbaa !15
  %4320 = load ptr, ptr %14, align 8, !tbaa !5
  %4321 = load i32, ptr %18, align 4, !tbaa !14
  %4322 = add nsw i32 %4321, 3
  %4323 = sext i32 %4322 to i64
  %4324 = getelementptr inbounds i8, ptr %4320, i64 %4323
  %4325 = load i8, ptr %4324, align 1, !tbaa !15
  %4326 = zext i8 %4325 to i64
  %4327 = getelementptr inbounds [256 x i8], ptr @r_to_y, i64 0, i64 %4326
  %4328 = load i8, ptr %4327, align 1, !tbaa !15
  %4329 = zext i8 %4328 to i32
  %4330 = load ptr, ptr %13, align 8, !tbaa !5
  %4331 = load i32, ptr %18, align 4, !tbaa !14
  %4332 = add nsw i32 %4331, 3
  %4333 = sext i32 %4332 to i64
  %4334 = getelementptr inbounds i8, ptr %4330, i64 %4333
  %4335 = load i8, ptr %4334, align 1, !tbaa !15
  %4336 = zext i8 %4335 to i64
  %4337 = getelementptr inbounds [256 x i8], ptr @g_to_y, i64 0, i64 %4336
  %4338 = load i8, ptr %4337, align 1, !tbaa !15
  %4339 = zext i8 %4338 to i32
  %4340 = add nsw i32 %4329, %4339
  %4341 = load ptr, ptr %12, align 8, !tbaa !5
  %4342 = load i32, ptr %18, align 4, !tbaa !14
  %4343 = add nsw i32 %4342, 3
  %4344 = sext i32 %4343 to i64
  %4345 = getelementptr inbounds i8, ptr %4341, i64 %4344
  %4346 = load i8, ptr %4345, align 1, !tbaa !15
  %4347 = zext i8 %4346 to i64
  %4348 = getelementptr inbounds [256 x i8], ptr @b_to_y, i64 0, i64 %4347
  %4349 = load i8, ptr %4348, align 1, !tbaa !15
  %4350 = zext i8 %4349 to i32
  %4351 = add nsw i32 %4340, %4350
  %4352 = trunc i32 %4351 to i8
  %4353 = load ptr, ptr %15, align 8, !tbaa !5
  %4354 = load i32, ptr %18, align 4, !tbaa !14
  %4355 = add nsw i32 %4354, 3
  %4356 = sext i32 %4355 to i64
  %4357 = getelementptr inbounds i8, ptr %4353, i64 %4356
  store i8 %4352, ptr %4357, align 1, !tbaa !15
  %4358 = load ptr, ptr %10, align 8, !tbaa !5
  %4359 = load ptr, ptr %12, align 8, !tbaa !5
  %4360 = load i32, ptr %18, align 4, !tbaa !14
  %4361 = add nsw i32 %4360, 3
  %4362 = sext i32 %4361 to i64
  %4363 = getelementptr inbounds i8, ptr %4359, i64 %4362
  %4364 = load i8, ptr %4363, align 1, !tbaa !15
  %4365 = zext i8 %4364 to i32
  %4366 = load ptr, ptr %15, align 8, !tbaa !5
  %4367 = load i32, ptr %18, align 4, !tbaa !14
  %4368 = add nsw i32 %4367, 3
  %4369 = sext i32 %4368 to i64
  %4370 = getelementptr inbounds i8, ptr %4366, i64 %4369
  %4371 = load i8, ptr %4370, align 1, !tbaa !15
  %4372 = zext i8 %4371 to i32
  %4373 = sub nsw i32 %4365, %4372
  %4374 = sext i32 %4373 to i64
  %4375 = getelementptr inbounds i8, ptr %4358, i64 %4374
  %4376 = load i8, ptr %4375, align 1, !tbaa !15
  %4377 = load ptr, ptr %16, align 8, !tbaa !5
  %4378 = load i32, ptr %18, align 4, !tbaa !14
  %4379 = add nsw i32 %4378, 3
  %4380 = sext i32 %4379 to i64
  %4381 = getelementptr inbounds i8, ptr %4377, i64 %4380
  store i8 %4376, ptr %4381, align 1, !tbaa !15
  %4382 = load ptr, ptr %9, align 8, !tbaa !5
  %4383 = load ptr, ptr %14, align 8, !tbaa !5
  %4384 = load i32, ptr %18, align 4, !tbaa !14
  %4385 = add nsw i32 %4384, 3
  %4386 = sext i32 %4385 to i64
  %4387 = getelementptr inbounds i8, ptr %4383, i64 %4386
  %4388 = load i8, ptr %4387, align 1, !tbaa !15
  %4389 = zext i8 %4388 to i32
  %4390 = load ptr, ptr %15, align 8, !tbaa !5
  %4391 = load i32, ptr %18, align 4, !tbaa !14
  %4392 = add nsw i32 %4391, 3
  %4393 = sext i32 %4392 to i64
  %4394 = getelementptr inbounds i8, ptr %4390, i64 %4393
  %4395 = load i8, ptr %4394, align 1, !tbaa !15
  %4396 = zext i8 %4395 to i32
  %4397 = sub nsw i32 %4389, %4396
  %4398 = sext i32 %4397 to i64
  %4399 = getelementptr inbounds i8, ptr %4382, i64 %4398
  %4400 = load i8, ptr %4399, align 1, !tbaa !15
  %4401 = load ptr, ptr %17, align 8, !tbaa !5
  %4402 = load i32, ptr %18, align 4, !tbaa !14
  %4403 = add nsw i32 %4402, 3
  %4404 = sext i32 %4403 to i64
  %4405 = getelementptr inbounds i8, ptr %4401, i64 %4404
  store i8 %4400, ptr %4405, align 1, !tbaa !15
  %4406 = load ptr, ptr %14, align 8, !tbaa !5
  %4407 = load i32, ptr %18, align 4, !tbaa !14
  %4408 = add nsw i32 %4407, 4
  %4409 = sext i32 %4408 to i64
  %4410 = getelementptr inbounds i8, ptr %4406, i64 %4409
  %4411 = load i8, ptr %4410, align 1, !tbaa !15
  %4412 = zext i8 %4411 to i64
  %4413 = getelementptr inbounds [256 x i8], ptr @r_to_y, i64 0, i64 %4412
  %4414 = load i8, ptr %4413, align 1, !tbaa !15
  %4415 = zext i8 %4414 to i32
  %4416 = load ptr, ptr %13, align 8, !tbaa !5
  %4417 = load i32, ptr %18, align 4, !tbaa !14
  %4418 = add nsw i32 %4417, 4
  %4419 = sext i32 %4418 to i64
  %4420 = getelementptr inbounds i8, ptr %4416, i64 %4419
  %4421 = load i8, ptr %4420, align 1, !tbaa !15
  %4422 = zext i8 %4421 to i64
  %4423 = getelementptr inbounds [256 x i8], ptr @g_to_y, i64 0, i64 %4422
  %4424 = load i8, ptr %4423, align 1, !tbaa !15
  %4425 = zext i8 %4424 to i32
  %4426 = add nsw i32 %4415, %4425
  %4427 = load ptr, ptr %12, align 8, !tbaa !5
  %4428 = load i32, ptr %18, align 4, !tbaa !14
  %4429 = add nsw i32 %4428, 4
  %4430 = sext i32 %4429 to i64
  %4431 = getelementptr inbounds i8, ptr %4427, i64 %4430
  %4432 = load i8, ptr %4431, align 1, !tbaa !15
  %4433 = zext i8 %4432 to i64
  %4434 = getelementptr inbounds [256 x i8], ptr @b_to_y, i64 0, i64 %4433
  %4435 = load i8, ptr %4434, align 1, !tbaa !15
  %4436 = zext i8 %4435 to i32
  %4437 = add nsw i32 %4426, %4436
  %4438 = trunc i32 %4437 to i8
  %4439 = load ptr, ptr %15, align 8, !tbaa !5
  %4440 = load i32, ptr %18, align 4, !tbaa !14
  %4441 = add nsw i32 %4440, 4
  %4442 = sext i32 %4441 to i64
  %4443 = getelementptr inbounds i8, ptr %4439, i64 %4442
  store i8 %4438, ptr %4443, align 1, !tbaa !15
  %4444 = load ptr, ptr %10, align 8, !tbaa !5
  %4445 = load ptr, ptr %12, align 8, !tbaa !5
  %4446 = load i32, ptr %18, align 4, !tbaa !14
  %4447 = add nsw i32 %4446, 4
  %4448 = sext i32 %4447 to i64
  %4449 = getelementptr inbounds i8, ptr %4445, i64 %4448
  %4450 = load i8, ptr %4449, align 1, !tbaa !15
  %4451 = zext i8 %4450 to i32
  %4452 = load ptr, ptr %15, align 8, !tbaa !5
  %4453 = load i32, ptr %18, align 4, !tbaa !14
  %4454 = add nsw i32 %4453, 4
  %4455 = sext i32 %4454 to i64
  %4456 = getelementptr inbounds i8, ptr %4452, i64 %4455
  %4457 = load i8, ptr %4456, align 1, !tbaa !15
  %4458 = zext i8 %4457 to i32
  %4459 = sub nsw i32 %4451, %4458
  %4460 = sext i32 %4459 to i64
  %4461 = getelementptr inbounds i8, ptr %4444, i64 %4460
  %4462 = load i8, ptr %4461, align 1, !tbaa !15
  %4463 = load ptr, ptr %16, align 8, !tbaa !5
  %4464 = load i32, ptr %18, align 4, !tbaa !14
  %4465 = add nsw i32 %4464, 4
  %4466 = sext i32 %4465 to i64
  %4467 = getelementptr inbounds i8, ptr %4463, i64 %4466
  store i8 %4462, ptr %4467, align 1, !tbaa !15
  %4468 = load ptr, ptr %9, align 8, !tbaa !5
  %4469 = load ptr, ptr %14, align 8, !tbaa !5
  %4470 = load i32, ptr %18, align 4, !tbaa !14
  %4471 = add nsw i32 %4470, 4
  %4472 = sext i32 %4471 to i64
  %4473 = getelementptr inbounds i8, ptr %4469, i64 %4472
  %4474 = load i8, ptr %4473, align 1, !tbaa !15
  %4475 = zext i8 %4474 to i32
  %4476 = load ptr, ptr %15, align 8, !tbaa !5
  %4477 = load i32, ptr %18, align 4, !tbaa !14
  %4478 = add nsw i32 %4477, 4
  %4479 = sext i32 %4478 to i64
  %4480 = getelementptr inbounds i8, ptr %4476, i64 %4479
  %4481 = load i8, ptr %4480, align 1, !tbaa !15
  %4482 = zext i8 %4481 to i32
  %4483 = sub nsw i32 %4475, %4482
  %4484 = sext i32 %4483 to i64
  %4485 = getelementptr inbounds i8, ptr %4468, i64 %4484
  %4486 = load i8, ptr %4485, align 1, !tbaa !15
  %4487 = load ptr, ptr %17, align 8, !tbaa !5
  %4488 = load i32, ptr %18, align 4, !tbaa !14
  %4489 = add nsw i32 %4488, 4
  %4490 = sext i32 %4489 to i64
  %4491 = getelementptr inbounds i8, ptr %4487, i64 %4490
  store i8 %4486, ptr %4491, align 1, !tbaa !15
  %4492 = load ptr, ptr %14, align 8, !tbaa !5
  %4493 = load i32, ptr %18, align 4, !tbaa !14
  %4494 = add nsw i32 %4493, 5
  %4495 = sext i32 %4494 to i64
  %4496 = getelementptr inbounds i8, ptr %4492, i64 %4495
  %4497 = load i8, ptr %4496, align 1, !tbaa !15
  %4498 = zext i8 %4497 to i64
  %4499 = getelementptr inbounds [256 x i8], ptr @r_to_y, i64 0, i64 %4498
  %4500 = load i8, ptr %4499, align 1, !tbaa !15
  %4501 = zext i8 %4500 to i32
  %4502 = load ptr, ptr %13, align 8, !tbaa !5
  %4503 = load i32, ptr %18, align 4, !tbaa !14
  %4504 = add nsw i32 %4503, 5
  %4505 = sext i32 %4504 to i64
  %4506 = getelementptr inbounds i8, ptr %4502, i64 %4505
  %4507 = load i8, ptr %4506, align 1, !tbaa !15
  %4508 = zext i8 %4507 to i64
  %4509 = getelementptr inbounds [256 x i8], ptr @g_to_y, i64 0, i64 %4508
  %4510 = load i8, ptr %4509, align 1, !tbaa !15
  %4511 = zext i8 %4510 to i32
  %4512 = add nsw i32 %4501, %4511
  %4513 = load ptr, ptr %12, align 8, !tbaa !5
  %4514 = load i32, ptr %18, align 4, !tbaa !14
  %4515 = add nsw i32 %4514, 5
  %4516 = sext i32 %4515 to i64
  %4517 = getelementptr inbounds i8, ptr %4513, i64 %4516
  %4518 = load i8, ptr %4517, align 1, !tbaa !15
  %4519 = zext i8 %4518 to i64
  %4520 = getelementptr inbounds [256 x i8], ptr @b_to_y, i64 0, i64 %4519
  %4521 = load i8, ptr %4520, align 1, !tbaa !15
  %4522 = zext i8 %4521 to i32
  %4523 = add nsw i32 %4512, %4522
  %4524 = trunc i32 %4523 to i8
  %4525 = load ptr, ptr %15, align 8, !tbaa !5
  %4526 = load i32, ptr %18, align 4, !tbaa !14
  %4527 = add nsw i32 %4526, 5
  %4528 = sext i32 %4527 to i64
  %4529 = getelementptr inbounds i8, ptr %4525, i64 %4528
  store i8 %4524, ptr %4529, align 1, !tbaa !15
  %4530 = load ptr, ptr %10, align 8, !tbaa !5
  %4531 = load ptr, ptr %12, align 8, !tbaa !5
  %4532 = load i32, ptr %18, align 4, !tbaa !14
  %4533 = add nsw i32 %4532, 5
  %4534 = sext i32 %4533 to i64
  %4535 = getelementptr inbounds i8, ptr %4531, i64 %4534
  %4536 = load i8, ptr %4535, align 1, !tbaa !15
  %4537 = zext i8 %4536 to i32
  %4538 = load ptr, ptr %15, align 8, !tbaa !5
  %4539 = load i32, ptr %18, align 4, !tbaa !14
  %4540 = add nsw i32 %4539, 5
  %4541 = sext i32 %4540 to i64
  %4542 = getelementptr inbounds i8, ptr %4538, i64 %4541
  %4543 = load i8, ptr %4542, align 1, !tbaa !15
  %4544 = zext i8 %4543 to i32
  %4545 = sub nsw i32 %4537, %4544
  %4546 = sext i32 %4545 to i64
  %4547 = getelementptr inbounds i8, ptr %4530, i64 %4546
  %4548 = load i8, ptr %4547, align 1, !tbaa !15
  %4549 = load ptr, ptr %16, align 8, !tbaa !5
  %4550 = load i32, ptr %18, align 4, !tbaa !14
  %4551 = add nsw i32 %4550, 5
  %4552 = sext i32 %4551 to i64
  %4553 = getelementptr inbounds i8, ptr %4549, i64 %4552
  store i8 %4548, ptr %4553, align 1, !tbaa !15
  %4554 = load ptr, ptr %9, align 8, !tbaa !5
  %4555 = load ptr, ptr %14, align 8, !tbaa !5
  %4556 = load i32, ptr %18, align 4, !tbaa !14
  %4557 = add nsw i32 %4556, 5
  %4558 = sext i32 %4557 to i64
  %4559 = getelementptr inbounds i8, ptr %4555, i64 %4558
  %4560 = load i8, ptr %4559, align 1, !tbaa !15
  %4561 = zext i8 %4560 to i32
  %4562 = load ptr, ptr %15, align 8, !tbaa !5
  %4563 = load i32, ptr %18, align 4, !tbaa !14
  %4564 = add nsw i32 %4563, 5
  %4565 = sext i32 %4564 to i64
  %4566 = getelementptr inbounds i8, ptr %4562, i64 %4565
  %4567 = load i8, ptr %4566, align 1, !tbaa !15
  %4568 = zext i8 %4567 to i32
  %4569 = sub nsw i32 %4561, %4568
  %4570 = sext i32 %4569 to i64
  %4571 = getelementptr inbounds i8, ptr %4554, i64 %4570
  %4572 = load i8, ptr %4571, align 1, !tbaa !15
  %4573 = load ptr, ptr %17, align 8, !tbaa !5
  %4574 = load i32, ptr %18, align 4, !tbaa !14
  %4575 = add nsw i32 %4574, 5
  %4576 = sext i32 %4575 to i64
  %4577 = getelementptr inbounds i8, ptr %4573, i64 %4576
  store i8 %4572, ptr %4577, align 1, !tbaa !15
  %4578 = load ptr, ptr %14, align 8, !tbaa !5
  %4579 = load i32, ptr %18, align 4, !tbaa !14
  %4580 = add nsw i32 %4579, 6
  %4581 = sext i32 %4580 to i64
  %4582 = getelementptr inbounds i8, ptr %4578, i64 %4581
  %4583 = load i8, ptr %4582, align 1, !tbaa !15
  %4584 = zext i8 %4583 to i64
  %4585 = getelementptr inbounds [256 x i8], ptr @r_to_y, i64 0, i64 %4584
  %4586 = load i8, ptr %4585, align 1, !tbaa !15
  %4587 = zext i8 %4586 to i32
  %4588 = load ptr, ptr %13, align 8, !tbaa !5
  %4589 = load i32, ptr %18, align 4, !tbaa !14
  %4590 = add nsw i32 %4589, 6
  %4591 = sext i32 %4590 to i64
  %4592 = getelementptr inbounds i8, ptr %4588, i64 %4591
  %4593 = load i8, ptr %4592, align 1, !tbaa !15
  %4594 = zext i8 %4593 to i64
  %4595 = getelementptr inbounds [256 x i8], ptr @g_to_y, i64 0, i64 %4594
  %4596 = load i8, ptr %4595, align 1, !tbaa !15
  %4597 = zext i8 %4596 to i32
  %4598 = add nsw i32 %4587, %4597
  %4599 = load ptr, ptr %12, align 8, !tbaa !5
  %4600 = load i32, ptr %18, align 4, !tbaa !14
  %4601 = add nsw i32 %4600, 6
  %4602 = sext i32 %4601 to i64
  %4603 = getelementptr inbounds i8, ptr %4599, i64 %4602
  %4604 = load i8, ptr %4603, align 1, !tbaa !15
  %4605 = zext i8 %4604 to i64
  %4606 = getelementptr inbounds [256 x i8], ptr @b_to_y, i64 0, i64 %4605
  %4607 = load i8, ptr %4606, align 1, !tbaa !15
  %4608 = zext i8 %4607 to i32
  %4609 = add nsw i32 %4598, %4608
  %4610 = trunc i32 %4609 to i8
  %4611 = load ptr, ptr %15, align 8, !tbaa !5
  %4612 = load i32, ptr %18, align 4, !tbaa !14
  %4613 = add nsw i32 %4612, 6
  %4614 = sext i32 %4613 to i64
  %4615 = getelementptr inbounds i8, ptr %4611, i64 %4614
  store i8 %4610, ptr %4615, align 1, !tbaa !15
  %4616 = load ptr, ptr %10, align 8, !tbaa !5
  %4617 = load ptr, ptr %12, align 8, !tbaa !5
  %4618 = load i32, ptr %18, align 4, !tbaa !14
  %4619 = add nsw i32 %4618, 6
  %4620 = sext i32 %4619 to i64
  %4621 = getelementptr inbounds i8, ptr %4617, i64 %4620
  %4622 = load i8, ptr %4621, align 1, !tbaa !15
  %4623 = zext i8 %4622 to i32
  %4624 = load ptr, ptr %15, align 8, !tbaa !5
  %4625 = load i32, ptr %18, align 4, !tbaa !14
  %4626 = add nsw i32 %4625, 6
  %4627 = sext i32 %4626 to i64
  %4628 = getelementptr inbounds i8, ptr %4624, i64 %4627
  %4629 = load i8, ptr %4628, align 1, !tbaa !15
  %4630 = zext i8 %4629 to i32
  %4631 = sub nsw i32 %4623, %4630
  %4632 = sext i32 %4631 to i64
  %4633 = getelementptr inbounds i8, ptr %4616, i64 %4632
  %4634 = load i8, ptr %4633, align 1, !tbaa !15
  %4635 = load ptr, ptr %16, align 8, !tbaa !5
  %4636 = load i32, ptr %18, align 4, !tbaa !14
  %4637 = add nsw i32 %4636, 6
  %4638 = sext i32 %4637 to i64
  %4639 = getelementptr inbounds i8, ptr %4635, i64 %4638
  store i8 %4634, ptr %4639, align 1, !tbaa !15
  %4640 = load ptr, ptr %9, align 8, !tbaa !5
  %4641 = load ptr, ptr %14, align 8, !tbaa !5
  %4642 = load i32, ptr %18, align 4, !tbaa !14
  %4643 = add nsw i32 %4642, 6
  %4644 = sext i32 %4643 to i64
  %4645 = getelementptr inbounds i8, ptr %4641, i64 %4644
  %4646 = load i8, ptr %4645, align 1, !tbaa !15
  %4647 = zext i8 %4646 to i32
  %4648 = load ptr, ptr %15, align 8, !tbaa !5
  %4649 = load i32, ptr %18, align 4, !tbaa !14
  %4650 = add nsw i32 %4649, 6
  %4651 = sext i32 %4650 to i64
  %4652 = getelementptr inbounds i8, ptr %4648, i64 %4651
  %4653 = load i8, ptr %4652, align 1, !tbaa !15
  %4654 = zext i8 %4653 to i32
  %4655 = sub nsw i32 %4647, %4654
  %4656 = sext i32 %4655 to i64
  %4657 = getelementptr inbounds i8, ptr %4640, i64 %4656
  %4658 = load i8, ptr %4657, align 1, !tbaa !15
  %4659 = load ptr, ptr %17, align 8, !tbaa !5
  %4660 = load i32, ptr %18, align 4, !tbaa !14
  %4661 = add nsw i32 %4660, 6
  %4662 = sext i32 %4661 to i64
  %4663 = getelementptr inbounds i8, ptr %4659, i64 %4662
  store i8 %4658, ptr %4663, align 1, !tbaa !15
  %4664 = load ptr, ptr %14, align 8, !tbaa !5
  %4665 = load i32, ptr %18, align 4, !tbaa !14
  %4666 = add nsw i32 %4665, 7
  %4667 = sext i32 %4666 to i64
  %4668 = getelementptr inbounds i8, ptr %4664, i64 %4667
  %4669 = load i8, ptr %4668, align 1, !tbaa !15
  %4670 = zext i8 %4669 to i64
  %4671 = getelementptr inbounds [256 x i8], ptr @r_to_y, i64 0, i64 %4670
  %4672 = load i8, ptr %4671, align 1, !tbaa !15
  %4673 = zext i8 %4672 to i32
  %4674 = load ptr, ptr %13, align 8, !tbaa !5
  %4675 = load i32, ptr %18, align 4, !tbaa !14
  %4676 = add nsw i32 %4675, 7
  %4677 = sext i32 %4676 to i64
  %4678 = getelementptr inbounds i8, ptr %4674, i64 %4677
  %4679 = load i8, ptr %4678, align 1, !tbaa !15
  %4680 = zext i8 %4679 to i64
  %4681 = getelementptr inbounds [256 x i8], ptr @g_to_y, i64 0, i64 %4680
  %4682 = load i8, ptr %4681, align 1, !tbaa !15
  %4683 = zext i8 %4682 to i32
  %4684 = add nsw i32 %4673, %4683
  %4685 = load ptr, ptr %12, align 8, !tbaa !5
  %4686 = load i32, ptr %18, align 4, !tbaa !14
  %4687 = add nsw i32 %4686, 7
  %4688 = sext i32 %4687 to i64
  %4689 = getelementptr inbounds i8, ptr %4685, i64 %4688
  %4690 = load i8, ptr %4689, align 1, !tbaa !15
  %4691 = zext i8 %4690 to i64
  %4692 = getelementptr inbounds [256 x i8], ptr @b_to_y, i64 0, i64 %4691
  %4693 = load i8, ptr %4692, align 1, !tbaa !15
  %4694 = zext i8 %4693 to i32
  %4695 = add nsw i32 %4684, %4694
  %4696 = trunc i32 %4695 to i8
  %4697 = load ptr, ptr %15, align 8, !tbaa !5
  %4698 = load i32, ptr %18, align 4, !tbaa !14
  %4699 = add nsw i32 %4698, 7
  %4700 = sext i32 %4699 to i64
  %4701 = getelementptr inbounds i8, ptr %4697, i64 %4700
  store i8 %4696, ptr %4701, align 1, !tbaa !15
  %4702 = load ptr, ptr %10, align 8, !tbaa !5
  %4703 = load ptr, ptr %12, align 8, !tbaa !5
  %4704 = load i32, ptr %18, align 4, !tbaa !14
  %4705 = add nsw i32 %4704, 7
  %4706 = sext i32 %4705 to i64
  %4707 = getelementptr inbounds i8, ptr %4703, i64 %4706
  %4708 = load i8, ptr %4707, align 1, !tbaa !15
  %4709 = zext i8 %4708 to i32
  %4710 = load ptr, ptr %15, align 8, !tbaa !5
  %4711 = load i32, ptr %18, align 4, !tbaa !14
  %4712 = add nsw i32 %4711, 7
  %4713 = sext i32 %4712 to i64
  %4714 = getelementptr inbounds i8, ptr %4710, i64 %4713
  %4715 = load i8, ptr %4714, align 1, !tbaa !15
  %4716 = zext i8 %4715 to i32
  %4717 = sub nsw i32 %4709, %4716
  %4718 = sext i32 %4717 to i64
  %4719 = getelementptr inbounds i8, ptr %4702, i64 %4718
  %4720 = load i8, ptr %4719, align 1, !tbaa !15
  %4721 = load ptr, ptr %16, align 8, !tbaa !5
  %4722 = load i32, ptr %18, align 4, !tbaa !14
  %4723 = add nsw i32 %4722, 7
  %4724 = sext i32 %4723 to i64
  %4725 = getelementptr inbounds i8, ptr %4721, i64 %4724
  store i8 %4720, ptr %4725, align 1, !tbaa !15
  %4726 = load ptr, ptr %9, align 8, !tbaa !5
  %4727 = load ptr, ptr %14, align 8, !tbaa !5
  %4728 = load i32, ptr %18, align 4, !tbaa !14
  %4729 = add nsw i32 %4728, 7
  %4730 = sext i32 %4729 to i64
  %4731 = getelementptr inbounds i8, ptr %4727, i64 %4730
  %4732 = load i8, ptr %4731, align 1, !tbaa !15
  %4733 = zext i8 %4732 to i32
  %4734 = load ptr, ptr %15, align 8, !tbaa !5
  %4735 = load i32, ptr %18, align 4, !tbaa !14
  %4736 = add nsw i32 %4735, 7
  %4737 = sext i32 %4736 to i64
  %4738 = getelementptr inbounds i8, ptr %4734, i64 %4737
  %4739 = load i8, ptr %4738, align 1, !tbaa !15
  %4740 = zext i8 %4739 to i32
  %4741 = sub nsw i32 %4733, %4740
  %4742 = sext i32 %4741 to i64
  %4743 = getelementptr inbounds i8, ptr %4726, i64 %4742
  %4744 = load i8, ptr %4743, align 1, !tbaa !15
  %4745 = load ptr, ptr %17, align 8, !tbaa !5
  %4746 = load i32, ptr %18, align 4, !tbaa !14
  %4747 = add nsw i32 %4746, 7
  %4748 = sext i32 %4747 to i64
  %4749 = getelementptr inbounds i8, ptr %4745, i64 %4748
  store i8 %4744, ptr %4749, align 1, !tbaa !15
  br label %12037

4750:                                             ; preds = %4054
  %4751 = load ptr, ptr %4, align 8, !tbaa !5
  %4752 = getelementptr inbounds %struct.MImage, ptr %4751, i32 0, i32 2
  %4753 = load i32, ptr %4752, align 8, !tbaa !13
  %4754 = load i32, ptr %18, align 4, !tbaa !14
  %4755 = sub nsw i32 %4753, %4754
  %4756 = icmp eq i32 %4755, 9
  br i1 %4756, label %4757, label %5532

4757:                                             ; preds = %4750
  %4758 = load ptr, ptr %14, align 8, !tbaa !5
  %4759 = load i32, ptr %18, align 4, !tbaa !14
  %4760 = add nsw i32 %4759, 0
  %4761 = sext i32 %4760 to i64
  %4762 = getelementptr inbounds i8, ptr %4758, i64 %4761
  %4763 = load i8, ptr %4762, align 1, !tbaa !15
  %4764 = zext i8 %4763 to i64
  %4765 = getelementptr inbounds [256 x i8], ptr @r_to_y, i64 0, i64 %4764
  %4766 = load i8, ptr %4765, align 1, !tbaa !15
  %4767 = zext i8 %4766 to i32
  %4768 = load ptr, ptr %13, align 8, !tbaa !5
  %4769 = load i32, ptr %18, align 4, !tbaa !14
  %4770 = add nsw i32 %4769, 0
  %4771 = sext i32 %4770 to i64
  %4772 = getelementptr inbounds i8, ptr %4768, i64 %4771
  %4773 = load i8, ptr %4772, align 1, !tbaa !15
  %4774 = zext i8 %4773 to i64
  %4775 = getelementptr inbounds [256 x i8], ptr @g_to_y, i64 0, i64 %4774
  %4776 = load i8, ptr %4775, align 1, !tbaa !15
  %4777 = zext i8 %4776 to i32
  %4778 = add nsw i32 %4767, %4777
  %4779 = load ptr, ptr %12, align 8, !tbaa !5
  %4780 = load i32, ptr %18, align 4, !tbaa !14
  %4781 = add nsw i32 %4780, 0
  %4782 = sext i32 %4781 to i64
  %4783 = getelementptr inbounds i8, ptr %4779, i64 %4782
  %4784 = load i8, ptr %4783, align 1, !tbaa !15
  %4785 = zext i8 %4784 to i64
  %4786 = getelementptr inbounds [256 x i8], ptr @b_to_y, i64 0, i64 %4785
  %4787 = load i8, ptr %4786, align 1, !tbaa !15
  %4788 = zext i8 %4787 to i32
  %4789 = add nsw i32 %4778, %4788
  %4790 = trunc i32 %4789 to i8
  %4791 = load ptr, ptr %15, align 8, !tbaa !5
  %4792 = load i32, ptr %18, align 4, !tbaa !14
  %4793 = add nsw i32 %4792, 0
  %4794 = sext i32 %4793 to i64
  %4795 = getelementptr inbounds i8, ptr %4791, i64 %4794
  store i8 %4790, ptr %4795, align 1, !tbaa !15
  %4796 = load ptr, ptr %10, align 8, !tbaa !5
  %4797 = load ptr, ptr %12, align 8, !tbaa !5
  %4798 = load i32, ptr %18, align 4, !tbaa !14
  %4799 = add nsw i32 %4798, 0
  %4800 = sext i32 %4799 to i64
  %4801 = getelementptr inbounds i8, ptr %4797, i64 %4800
  %4802 = load i8, ptr %4801, align 1, !tbaa !15
  %4803 = zext i8 %4802 to i32
  %4804 = load ptr, ptr %15, align 8, !tbaa !5
  %4805 = load i32, ptr %18, align 4, !tbaa !14
  %4806 = add nsw i32 %4805, 0
  %4807 = sext i32 %4806 to i64
  %4808 = getelementptr inbounds i8, ptr %4804, i64 %4807
  %4809 = load i8, ptr %4808, align 1, !tbaa !15
  %4810 = zext i8 %4809 to i32
  %4811 = sub nsw i32 %4803, %4810
  %4812 = sext i32 %4811 to i64
  %4813 = getelementptr inbounds i8, ptr %4796, i64 %4812
  %4814 = load i8, ptr %4813, align 1, !tbaa !15
  %4815 = load ptr, ptr %16, align 8, !tbaa !5
  %4816 = load i32, ptr %18, align 4, !tbaa !14
  %4817 = add nsw i32 %4816, 0
  %4818 = sext i32 %4817 to i64
  %4819 = getelementptr inbounds i8, ptr %4815, i64 %4818
  store i8 %4814, ptr %4819, align 1, !tbaa !15
  %4820 = load ptr, ptr %9, align 8, !tbaa !5
  %4821 = load ptr, ptr %14, align 8, !tbaa !5
  %4822 = load i32, ptr %18, align 4, !tbaa !14
  %4823 = add nsw i32 %4822, 0
  %4824 = sext i32 %4823 to i64
  %4825 = getelementptr inbounds i8, ptr %4821, i64 %4824
  %4826 = load i8, ptr %4825, align 1, !tbaa !15
  %4827 = zext i8 %4826 to i32
  %4828 = load ptr, ptr %15, align 8, !tbaa !5
  %4829 = load i32, ptr %18, align 4, !tbaa !14
  %4830 = add nsw i32 %4829, 0
  %4831 = sext i32 %4830 to i64
  %4832 = getelementptr inbounds i8, ptr %4828, i64 %4831
  %4833 = load i8, ptr %4832, align 1, !tbaa !15
  %4834 = zext i8 %4833 to i32
  %4835 = sub nsw i32 %4827, %4834
  %4836 = sext i32 %4835 to i64
  %4837 = getelementptr inbounds i8, ptr %4820, i64 %4836
  %4838 = load i8, ptr %4837, align 1, !tbaa !15
  %4839 = load ptr, ptr %17, align 8, !tbaa !5
  %4840 = load i32, ptr %18, align 4, !tbaa !14
  %4841 = add nsw i32 %4840, 0
  %4842 = sext i32 %4841 to i64
  %4843 = getelementptr inbounds i8, ptr %4839, i64 %4842
  store i8 %4838, ptr %4843, align 1, !tbaa !15
  %4844 = load ptr, ptr %14, align 8, !tbaa !5
  %4845 = load i32, ptr %18, align 4, !tbaa !14
  %4846 = add nsw i32 %4845, 1
  %4847 = sext i32 %4846 to i64
  %4848 = getelementptr inbounds i8, ptr %4844, i64 %4847
  %4849 = load i8, ptr %4848, align 1, !tbaa !15
  %4850 = zext i8 %4849 to i64
  %4851 = getelementptr inbounds [256 x i8], ptr @r_to_y, i64 0, i64 %4850
  %4852 = load i8, ptr %4851, align 1, !tbaa !15
  %4853 = zext i8 %4852 to i32
  %4854 = load ptr, ptr %13, align 8, !tbaa !5
  %4855 = load i32, ptr %18, align 4, !tbaa !14
  %4856 = add nsw i32 %4855, 1
  %4857 = sext i32 %4856 to i64
  %4858 = getelementptr inbounds i8, ptr %4854, i64 %4857
  %4859 = load i8, ptr %4858, align 1, !tbaa !15
  %4860 = zext i8 %4859 to i64
  %4861 = getelementptr inbounds [256 x i8], ptr @g_to_y, i64 0, i64 %4860
  %4862 = load i8, ptr %4861, align 1, !tbaa !15
  %4863 = zext i8 %4862 to i32
  %4864 = add nsw i32 %4853, %4863
  %4865 = load ptr, ptr %12, align 8, !tbaa !5
  %4866 = load i32, ptr %18, align 4, !tbaa !14
  %4867 = add nsw i32 %4866, 1
  %4868 = sext i32 %4867 to i64
  %4869 = getelementptr inbounds i8, ptr %4865, i64 %4868
  %4870 = load i8, ptr %4869, align 1, !tbaa !15
  %4871 = zext i8 %4870 to i64
  %4872 = getelementptr inbounds [256 x i8], ptr @b_to_y, i64 0, i64 %4871
  %4873 = load i8, ptr %4872, align 1, !tbaa !15
  %4874 = zext i8 %4873 to i32
  %4875 = add nsw i32 %4864, %4874
  %4876 = trunc i32 %4875 to i8
  %4877 = load ptr, ptr %15, align 8, !tbaa !5
  %4878 = load i32, ptr %18, align 4, !tbaa !14
  %4879 = add nsw i32 %4878, 1
  %4880 = sext i32 %4879 to i64
  %4881 = getelementptr inbounds i8, ptr %4877, i64 %4880
  store i8 %4876, ptr %4881, align 1, !tbaa !15
  %4882 = load ptr, ptr %10, align 8, !tbaa !5
  %4883 = load ptr, ptr %12, align 8, !tbaa !5
  %4884 = load i32, ptr %18, align 4, !tbaa !14
  %4885 = add nsw i32 %4884, 1
  %4886 = sext i32 %4885 to i64
  %4887 = getelementptr inbounds i8, ptr %4883, i64 %4886
  %4888 = load i8, ptr %4887, align 1, !tbaa !15
  %4889 = zext i8 %4888 to i32
  %4890 = load ptr, ptr %15, align 8, !tbaa !5
  %4891 = load i32, ptr %18, align 4, !tbaa !14
  %4892 = add nsw i32 %4891, 1
  %4893 = sext i32 %4892 to i64
  %4894 = getelementptr inbounds i8, ptr %4890, i64 %4893
  %4895 = load i8, ptr %4894, align 1, !tbaa !15
  %4896 = zext i8 %4895 to i32
  %4897 = sub nsw i32 %4889, %4896
  %4898 = sext i32 %4897 to i64
  %4899 = getelementptr inbounds i8, ptr %4882, i64 %4898
  %4900 = load i8, ptr %4899, align 1, !tbaa !15
  %4901 = load ptr, ptr %16, align 8, !tbaa !5
  %4902 = load i32, ptr %18, align 4, !tbaa !14
  %4903 = add nsw i32 %4902, 1
  %4904 = sext i32 %4903 to i64
  %4905 = getelementptr inbounds i8, ptr %4901, i64 %4904
  store i8 %4900, ptr %4905, align 1, !tbaa !15
  %4906 = load ptr, ptr %9, align 8, !tbaa !5
  %4907 = load ptr, ptr %14, align 8, !tbaa !5
  %4908 = load i32, ptr %18, align 4, !tbaa !14
  %4909 = add nsw i32 %4908, 1
  %4910 = sext i32 %4909 to i64
  %4911 = getelementptr inbounds i8, ptr %4907, i64 %4910
  %4912 = load i8, ptr %4911, align 1, !tbaa !15
  %4913 = zext i8 %4912 to i32
  %4914 = load ptr, ptr %15, align 8, !tbaa !5
  %4915 = load i32, ptr %18, align 4, !tbaa !14
  %4916 = add nsw i32 %4915, 1
  %4917 = sext i32 %4916 to i64
  %4918 = getelementptr inbounds i8, ptr %4914, i64 %4917
  %4919 = load i8, ptr %4918, align 1, !tbaa !15
  %4920 = zext i8 %4919 to i32
  %4921 = sub nsw i32 %4913, %4920
  %4922 = sext i32 %4921 to i64
  %4923 = getelementptr inbounds i8, ptr %4906, i64 %4922
  %4924 = load i8, ptr %4923, align 1, !tbaa !15
  %4925 = load ptr, ptr %17, align 8, !tbaa !5
  %4926 = load i32, ptr %18, align 4, !tbaa !14
  %4927 = add nsw i32 %4926, 1
  %4928 = sext i32 %4927 to i64
  %4929 = getelementptr inbounds i8, ptr %4925, i64 %4928
  store i8 %4924, ptr %4929, align 1, !tbaa !15
  %4930 = load ptr, ptr %14, align 8, !tbaa !5
  %4931 = load i32, ptr %18, align 4, !tbaa !14
  %4932 = add nsw i32 %4931, 2
  %4933 = sext i32 %4932 to i64
  %4934 = getelementptr inbounds i8, ptr %4930, i64 %4933
  %4935 = load i8, ptr %4934, align 1, !tbaa !15
  %4936 = zext i8 %4935 to i64
  %4937 = getelementptr inbounds [256 x i8], ptr @r_to_y, i64 0, i64 %4936
  %4938 = load i8, ptr %4937, align 1, !tbaa !15
  %4939 = zext i8 %4938 to i32
  %4940 = load ptr, ptr %13, align 8, !tbaa !5
  %4941 = load i32, ptr %18, align 4, !tbaa !14
  %4942 = add nsw i32 %4941, 2
  %4943 = sext i32 %4942 to i64
  %4944 = getelementptr inbounds i8, ptr %4940, i64 %4943
  %4945 = load i8, ptr %4944, align 1, !tbaa !15
  %4946 = zext i8 %4945 to i64
  %4947 = getelementptr inbounds [256 x i8], ptr @g_to_y, i64 0, i64 %4946
  %4948 = load i8, ptr %4947, align 1, !tbaa !15
  %4949 = zext i8 %4948 to i32
  %4950 = add nsw i32 %4939, %4949
  %4951 = load ptr, ptr %12, align 8, !tbaa !5
  %4952 = load i32, ptr %18, align 4, !tbaa !14
  %4953 = add nsw i32 %4952, 2
  %4954 = sext i32 %4953 to i64
  %4955 = getelementptr inbounds i8, ptr %4951, i64 %4954
  %4956 = load i8, ptr %4955, align 1, !tbaa !15
  %4957 = zext i8 %4956 to i64
  %4958 = getelementptr inbounds [256 x i8], ptr @b_to_y, i64 0, i64 %4957
  %4959 = load i8, ptr %4958, align 1, !tbaa !15
  %4960 = zext i8 %4959 to i32
  %4961 = add nsw i32 %4950, %4960
  %4962 = trunc i32 %4961 to i8
  %4963 = load ptr, ptr %15, align 8, !tbaa !5
  %4964 = load i32, ptr %18, align 4, !tbaa !14
  %4965 = add nsw i32 %4964, 2
  %4966 = sext i32 %4965 to i64
  %4967 = getelementptr inbounds i8, ptr %4963, i64 %4966
  store i8 %4962, ptr %4967, align 1, !tbaa !15
  %4968 = load ptr, ptr %10, align 8, !tbaa !5
  %4969 = load ptr, ptr %12, align 8, !tbaa !5
  %4970 = load i32, ptr %18, align 4, !tbaa !14
  %4971 = add nsw i32 %4970, 2
  %4972 = sext i32 %4971 to i64
  %4973 = getelementptr inbounds i8, ptr %4969, i64 %4972
  %4974 = load i8, ptr %4973, align 1, !tbaa !15
  %4975 = zext i8 %4974 to i32
  %4976 = load ptr, ptr %15, align 8, !tbaa !5
  %4977 = load i32, ptr %18, align 4, !tbaa !14
  %4978 = add nsw i32 %4977, 2
  %4979 = sext i32 %4978 to i64
  %4980 = getelementptr inbounds i8, ptr %4976, i64 %4979
  %4981 = load i8, ptr %4980, align 1, !tbaa !15
  %4982 = zext i8 %4981 to i32
  %4983 = sub nsw i32 %4975, %4982
  %4984 = sext i32 %4983 to i64
  %4985 = getelementptr inbounds i8, ptr %4968, i64 %4984
  %4986 = load i8, ptr %4985, align 1, !tbaa !15
  %4987 = load ptr, ptr %16, align 8, !tbaa !5
  %4988 = load i32, ptr %18, align 4, !tbaa !14
  %4989 = add nsw i32 %4988, 2
  %4990 = sext i32 %4989 to i64
  %4991 = getelementptr inbounds i8, ptr %4987, i64 %4990
  store i8 %4986, ptr %4991, align 1, !tbaa !15
  %4992 = load ptr, ptr %9, align 8, !tbaa !5
  %4993 = load ptr, ptr %14, align 8, !tbaa !5
  %4994 = load i32, ptr %18, align 4, !tbaa !14
  %4995 = add nsw i32 %4994, 2
  %4996 = sext i32 %4995 to i64
  %4997 = getelementptr inbounds i8, ptr %4993, i64 %4996
  %4998 = load i8, ptr %4997, align 1, !tbaa !15
  %4999 = zext i8 %4998 to i32
  %5000 = load ptr, ptr %15, align 8, !tbaa !5
  %5001 = load i32, ptr %18, align 4, !tbaa !14
  %5002 = add nsw i32 %5001, 2
  %5003 = sext i32 %5002 to i64
  %5004 = getelementptr inbounds i8, ptr %5000, i64 %5003
  %5005 = load i8, ptr %5004, align 1, !tbaa !15
  %5006 = zext i8 %5005 to i32
  %5007 = sub nsw i32 %4999, %5006
  %5008 = sext i32 %5007 to i64
  %5009 = getelementptr inbounds i8, ptr %4992, i64 %5008
  %5010 = load i8, ptr %5009, align 1, !tbaa !15
  %5011 = load ptr, ptr %17, align 8, !tbaa !5
  %5012 = load i32, ptr %18, align 4, !tbaa !14
  %5013 = add nsw i32 %5012, 2
  %5014 = sext i32 %5013 to i64
  %5015 = getelementptr inbounds i8, ptr %5011, i64 %5014
  store i8 %5010, ptr %5015, align 1, !tbaa !15
  %5016 = load ptr, ptr %14, align 8, !tbaa !5
  %5017 = load i32, ptr %18, align 4, !tbaa !14
  %5018 = add nsw i32 %5017, 3
  %5019 = sext i32 %5018 to i64
  %5020 = getelementptr inbounds i8, ptr %5016, i64 %5019
  %5021 = load i8, ptr %5020, align 1, !tbaa !15
  %5022 = zext i8 %5021 to i64
  %5023 = getelementptr inbounds [256 x i8], ptr @r_to_y, i64 0, i64 %5022
  %5024 = load i8, ptr %5023, align 1, !tbaa !15
  %5025 = zext i8 %5024 to i32
  %5026 = load ptr, ptr %13, align 8, !tbaa !5
  %5027 = load i32, ptr %18, align 4, !tbaa !14
  %5028 = add nsw i32 %5027, 3
  %5029 = sext i32 %5028 to i64
  %5030 = getelementptr inbounds i8, ptr %5026, i64 %5029
  %5031 = load i8, ptr %5030, align 1, !tbaa !15
  %5032 = zext i8 %5031 to i64
  %5033 = getelementptr inbounds [256 x i8], ptr @g_to_y, i64 0, i64 %5032
  %5034 = load i8, ptr %5033, align 1, !tbaa !15
  %5035 = zext i8 %5034 to i32
  %5036 = add nsw i32 %5025, %5035
  %5037 = load ptr, ptr %12, align 8, !tbaa !5
  %5038 = load i32, ptr %18, align 4, !tbaa !14
  %5039 = add nsw i32 %5038, 3
  %5040 = sext i32 %5039 to i64
  %5041 = getelementptr inbounds i8, ptr %5037, i64 %5040
  %5042 = load i8, ptr %5041, align 1, !tbaa !15
  %5043 = zext i8 %5042 to i64
  %5044 = getelementptr inbounds [256 x i8], ptr @b_to_y, i64 0, i64 %5043
  %5045 = load i8, ptr %5044, align 1, !tbaa !15
  %5046 = zext i8 %5045 to i32
  %5047 = add nsw i32 %5036, %5046
  %5048 = trunc i32 %5047 to i8
  %5049 = load ptr, ptr %15, align 8, !tbaa !5
  %5050 = load i32, ptr %18, align 4, !tbaa !14
  %5051 = add nsw i32 %5050, 3
  %5052 = sext i32 %5051 to i64
  %5053 = getelementptr inbounds i8, ptr %5049, i64 %5052
  store i8 %5048, ptr %5053, align 1, !tbaa !15
  %5054 = load ptr, ptr %10, align 8, !tbaa !5
  %5055 = load ptr, ptr %12, align 8, !tbaa !5
  %5056 = load i32, ptr %18, align 4, !tbaa !14
  %5057 = add nsw i32 %5056, 3
  %5058 = sext i32 %5057 to i64
  %5059 = getelementptr inbounds i8, ptr %5055, i64 %5058
  %5060 = load i8, ptr %5059, align 1, !tbaa !15
  %5061 = zext i8 %5060 to i32
  %5062 = load ptr, ptr %15, align 8, !tbaa !5
  %5063 = load i32, ptr %18, align 4, !tbaa !14
  %5064 = add nsw i32 %5063, 3
  %5065 = sext i32 %5064 to i64
  %5066 = getelementptr inbounds i8, ptr %5062, i64 %5065
  %5067 = load i8, ptr %5066, align 1, !tbaa !15
  %5068 = zext i8 %5067 to i32
  %5069 = sub nsw i32 %5061, %5068
  %5070 = sext i32 %5069 to i64
  %5071 = getelementptr inbounds i8, ptr %5054, i64 %5070
  %5072 = load i8, ptr %5071, align 1, !tbaa !15
  %5073 = load ptr, ptr %16, align 8, !tbaa !5
  %5074 = load i32, ptr %18, align 4, !tbaa !14
  %5075 = add nsw i32 %5074, 3
  %5076 = sext i32 %5075 to i64
  %5077 = getelementptr inbounds i8, ptr %5073, i64 %5076
  store i8 %5072, ptr %5077, align 1, !tbaa !15
  %5078 = load ptr, ptr %9, align 8, !tbaa !5
  %5079 = load ptr, ptr %14, align 8, !tbaa !5
  %5080 = load i32, ptr %18, align 4, !tbaa !14
  %5081 = add nsw i32 %5080, 3
  %5082 = sext i32 %5081 to i64
  %5083 = getelementptr inbounds i8, ptr %5079, i64 %5082
  %5084 = load i8, ptr %5083, align 1, !tbaa !15
  %5085 = zext i8 %5084 to i32
  %5086 = load ptr, ptr %15, align 8, !tbaa !5
  %5087 = load i32, ptr %18, align 4, !tbaa !14
  %5088 = add nsw i32 %5087, 3
  %5089 = sext i32 %5088 to i64
  %5090 = getelementptr inbounds i8, ptr %5086, i64 %5089
  %5091 = load i8, ptr %5090, align 1, !tbaa !15
  %5092 = zext i8 %5091 to i32
  %5093 = sub nsw i32 %5085, %5092
  %5094 = sext i32 %5093 to i64
  %5095 = getelementptr inbounds i8, ptr %5078, i64 %5094
  %5096 = load i8, ptr %5095, align 1, !tbaa !15
  %5097 = load ptr, ptr %17, align 8, !tbaa !5
  %5098 = load i32, ptr %18, align 4, !tbaa !14
  %5099 = add nsw i32 %5098, 3
  %5100 = sext i32 %5099 to i64
  %5101 = getelementptr inbounds i8, ptr %5097, i64 %5100
  store i8 %5096, ptr %5101, align 1, !tbaa !15
  %5102 = load ptr, ptr %14, align 8, !tbaa !5
  %5103 = load i32, ptr %18, align 4, !tbaa !14
  %5104 = add nsw i32 %5103, 4
  %5105 = sext i32 %5104 to i64
  %5106 = getelementptr inbounds i8, ptr %5102, i64 %5105
  %5107 = load i8, ptr %5106, align 1, !tbaa !15
  %5108 = zext i8 %5107 to i64
  %5109 = getelementptr inbounds [256 x i8], ptr @r_to_y, i64 0, i64 %5108
  %5110 = load i8, ptr %5109, align 1, !tbaa !15
  %5111 = zext i8 %5110 to i32
  %5112 = load ptr, ptr %13, align 8, !tbaa !5
  %5113 = load i32, ptr %18, align 4, !tbaa !14
  %5114 = add nsw i32 %5113, 4
  %5115 = sext i32 %5114 to i64
  %5116 = getelementptr inbounds i8, ptr %5112, i64 %5115
  %5117 = load i8, ptr %5116, align 1, !tbaa !15
  %5118 = zext i8 %5117 to i64
  %5119 = getelementptr inbounds [256 x i8], ptr @g_to_y, i64 0, i64 %5118
  %5120 = load i8, ptr %5119, align 1, !tbaa !15
  %5121 = zext i8 %5120 to i32
  %5122 = add nsw i32 %5111, %5121
  %5123 = load ptr, ptr %12, align 8, !tbaa !5
  %5124 = load i32, ptr %18, align 4, !tbaa !14
  %5125 = add nsw i32 %5124, 4
  %5126 = sext i32 %5125 to i64
  %5127 = getelementptr inbounds i8, ptr %5123, i64 %5126
  %5128 = load i8, ptr %5127, align 1, !tbaa !15
  %5129 = zext i8 %5128 to i64
  %5130 = getelementptr inbounds [256 x i8], ptr @b_to_y, i64 0, i64 %5129
  %5131 = load i8, ptr %5130, align 1, !tbaa !15
  %5132 = zext i8 %5131 to i32
  %5133 = add nsw i32 %5122, %5132
  %5134 = trunc i32 %5133 to i8
  %5135 = load ptr, ptr %15, align 8, !tbaa !5
  %5136 = load i32, ptr %18, align 4, !tbaa !14
  %5137 = add nsw i32 %5136, 4
  %5138 = sext i32 %5137 to i64
  %5139 = getelementptr inbounds i8, ptr %5135, i64 %5138
  store i8 %5134, ptr %5139, align 1, !tbaa !15
  %5140 = load ptr, ptr %10, align 8, !tbaa !5
  %5141 = load ptr, ptr %12, align 8, !tbaa !5
  %5142 = load i32, ptr %18, align 4, !tbaa !14
  %5143 = add nsw i32 %5142, 4
  %5144 = sext i32 %5143 to i64
  %5145 = getelementptr inbounds i8, ptr %5141, i64 %5144
  %5146 = load i8, ptr %5145, align 1, !tbaa !15
  %5147 = zext i8 %5146 to i32
  %5148 = load ptr, ptr %15, align 8, !tbaa !5
  %5149 = load i32, ptr %18, align 4, !tbaa !14
  %5150 = add nsw i32 %5149, 4
  %5151 = sext i32 %5150 to i64
  %5152 = getelementptr inbounds i8, ptr %5148, i64 %5151
  %5153 = load i8, ptr %5152, align 1, !tbaa !15
  %5154 = zext i8 %5153 to i32
  %5155 = sub nsw i32 %5147, %5154
  %5156 = sext i32 %5155 to i64
  %5157 = getelementptr inbounds i8, ptr %5140, i64 %5156
  %5158 = load i8, ptr %5157, align 1, !tbaa !15
  %5159 = load ptr, ptr %16, align 8, !tbaa !5
  %5160 = load i32, ptr %18, align 4, !tbaa !14
  %5161 = add nsw i32 %5160, 4
  %5162 = sext i32 %5161 to i64
  %5163 = getelementptr inbounds i8, ptr %5159, i64 %5162
  store i8 %5158, ptr %5163, align 1, !tbaa !15
  %5164 = load ptr, ptr %9, align 8, !tbaa !5
  %5165 = load ptr, ptr %14, align 8, !tbaa !5
  %5166 = load i32, ptr %18, align 4, !tbaa !14
  %5167 = add nsw i32 %5166, 4
  %5168 = sext i32 %5167 to i64
  %5169 = getelementptr inbounds i8, ptr %5165, i64 %5168
  %5170 = load i8, ptr %5169, align 1, !tbaa !15
  %5171 = zext i8 %5170 to i32
  %5172 = load ptr, ptr %15, align 8, !tbaa !5
  %5173 = load i32, ptr %18, align 4, !tbaa !14
  %5174 = add nsw i32 %5173, 4
  %5175 = sext i32 %5174 to i64
  %5176 = getelementptr inbounds i8, ptr %5172, i64 %5175
  %5177 = load i8, ptr %5176, align 1, !tbaa !15
  %5178 = zext i8 %5177 to i32
  %5179 = sub nsw i32 %5171, %5178
  %5180 = sext i32 %5179 to i64
  %5181 = getelementptr inbounds i8, ptr %5164, i64 %5180
  %5182 = load i8, ptr %5181, align 1, !tbaa !15
  %5183 = load ptr, ptr %17, align 8, !tbaa !5
  %5184 = load i32, ptr %18, align 4, !tbaa !14
  %5185 = add nsw i32 %5184, 4
  %5186 = sext i32 %5185 to i64
  %5187 = getelementptr inbounds i8, ptr %5183, i64 %5186
  store i8 %5182, ptr %5187, align 1, !tbaa !15
  %5188 = load ptr, ptr %14, align 8, !tbaa !5
  %5189 = load i32, ptr %18, align 4, !tbaa !14
  %5190 = add nsw i32 %5189, 5
  %5191 = sext i32 %5190 to i64
  %5192 = getelementptr inbounds i8, ptr %5188, i64 %5191
  %5193 = load i8, ptr %5192, align 1, !tbaa !15
  %5194 = zext i8 %5193 to i64
  %5195 = getelementptr inbounds [256 x i8], ptr @r_to_y, i64 0, i64 %5194
  %5196 = load i8, ptr %5195, align 1, !tbaa !15
  %5197 = zext i8 %5196 to i32
  %5198 = load ptr, ptr %13, align 8, !tbaa !5
  %5199 = load i32, ptr %18, align 4, !tbaa !14
  %5200 = add nsw i32 %5199, 5
  %5201 = sext i32 %5200 to i64
  %5202 = getelementptr inbounds i8, ptr %5198, i64 %5201
  %5203 = load i8, ptr %5202, align 1, !tbaa !15
  %5204 = zext i8 %5203 to i64
  %5205 = getelementptr inbounds [256 x i8], ptr @g_to_y, i64 0, i64 %5204
  %5206 = load i8, ptr %5205, align 1, !tbaa !15
  %5207 = zext i8 %5206 to i32
  %5208 = add nsw i32 %5197, %5207
  %5209 = load ptr, ptr %12, align 8, !tbaa !5
  %5210 = load i32, ptr %18, align 4, !tbaa !14
  %5211 = add nsw i32 %5210, 5
  %5212 = sext i32 %5211 to i64
  %5213 = getelementptr inbounds i8, ptr %5209, i64 %5212
  %5214 = load i8, ptr %5213, align 1, !tbaa !15
  %5215 = zext i8 %5214 to i64
  %5216 = getelementptr inbounds [256 x i8], ptr @b_to_y, i64 0, i64 %5215
  %5217 = load i8, ptr %5216, align 1, !tbaa !15
  %5218 = zext i8 %5217 to i32
  %5219 = add nsw i32 %5208, %5218
  %5220 = trunc i32 %5219 to i8
  %5221 = load ptr, ptr %15, align 8, !tbaa !5
  %5222 = load i32, ptr %18, align 4, !tbaa !14
  %5223 = add nsw i32 %5222, 5
  %5224 = sext i32 %5223 to i64
  %5225 = getelementptr inbounds i8, ptr %5221, i64 %5224
  store i8 %5220, ptr %5225, align 1, !tbaa !15
  %5226 = load ptr, ptr %10, align 8, !tbaa !5
  %5227 = load ptr, ptr %12, align 8, !tbaa !5
  %5228 = load i32, ptr %18, align 4, !tbaa !14
  %5229 = add nsw i32 %5228, 5
  %5230 = sext i32 %5229 to i64
  %5231 = getelementptr inbounds i8, ptr %5227, i64 %5230
  %5232 = load i8, ptr %5231, align 1, !tbaa !15
  %5233 = zext i8 %5232 to i32
  %5234 = load ptr, ptr %15, align 8, !tbaa !5
  %5235 = load i32, ptr %18, align 4, !tbaa !14
  %5236 = add nsw i32 %5235, 5
  %5237 = sext i32 %5236 to i64
  %5238 = getelementptr inbounds i8, ptr %5234, i64 %5237
  %5239 = load i8, ptr %5238, align 1, !tbaa !15
  %5240 = zext i8 %5239 to i32
  %5241 = sub nsw i32 %5233, %5240
  %5242 = sext i32 %5241 to i64
  %5243 = getelementptr inbounds i8, ptr %5226, i64 %5242
  %5244 = load i8, ptr %5243, align 1, !tbaa !15
  %5245 = load ptr, ptr %16, align 8, !tbaa !5
  %5246 = load i32, ptr %18, align 4, !tbaa !14
  %5247 = add nsw i32 %5246, 5
  %5248 = sext i32 %5247 to i64
  %5249 = getelementptr inbounds i8, ptr %5245, i64 %5248
  store i8 %5244, ptr %5249, align 1, !tbaa !15
  %5250 = load ptr, ptr %9, align 8, !tbaa !5
  %5251 = load ptr, ptr %14, align 8, !tbaa !5
  %5252 = load i32, ptr %18, align 4, !tbaa !14
  %5253 = add nsw i32 %5252, 5
  %5254 = sext i32 %5253 to i64
  %5255 = getelementptr inbounds i8, ptr %5251, i64 %5254
  %5256 = load i8, ptr %5255, align 1, !tbaa !15
  %5257 = zext i8 %5256 to i32
  %5258 = load ptr, ptr %15, align 8, !tbaa !5
  %5259 = load i32, ptr %18, align 4, !tbaa !14
  %5260 = add nsw i32 %5259, 5
  %5261 = sext i32 %5260 to i64
  %5262 = getelementptr inbounds i8, ptr %5258, i64 %5261
  %5263 = load i8, ptr %5262, align 1, !tbaa !15
  %5264 = zext i8 %5263 to i32
  %5265 = sub nsw i32 %5257, %5264
  %5266 = sext i32 %5265 to i64
  %5267 = getelementptr inbounds i8, ptr %5250, i64 %5266
  %5268 = load i8, ptr %5267, align 1, !tbaa !15
  %5269 = load ptr, ptr %17, align 8, !tbaa !5
  %5270 = load i32, ptr %18, align 4, !tbaa !14
  %5271 = add nsw i32 %5270, 5
  %5272 = sext i32 %5271 to i64
  %5273 = getelementptr inbounds i8, ptr %5269, i64 %5272
  store i8 %5268, ptr %5273, align 1, !tbaa !15
  %5274 = load ptr, ptr %14, align 8, !tbaa !5
  %5275 = load i32, ptr %18, align 4, !tbaa !14
  %5276 = add nsw i32 %5275, 6
  %5277 = sext i32 %5276 to i64
  %5278 = getelementptr inbounds i8, ptr %5274, i64 %5277
  %5279 = load i8, ptr %5278, align 1, !tbaa !15
  %5280 = zext i8 %5279 to i64
  %5281 = getelementptr inbounds [256 x i8], ptr @r_to_y, i64 0, i64 %5280
  %5282 = load i8, ptr %5281, align 1, !tbaa !15
  %5283 = zext i8 %5282 to i32
  %5284 = load ptr, ptr %13, align 8, !tbaa !5
  %5285 = load i32, ptr %18, align 4, !tbaa !14
  %5286 = add nsw i32 %5285, 6
  %5287 = sext i32 %5286 to i64
  %5288 = getelementptr inbounds i8, ptr %5284, i64 %5287
  %5289 = load i8, ptr %5288, align 1, !tbaa !15
  %5290 = zext i8 %5289 to i64
  %5291 = getelementptr inbounds [256 x i8], ptr @g_to_y, i64 0, i64 %5290
  %5292 = load i8, ptr %5291, align 1, !tbaa !15
  %5293 = zext i8 %5292 to i32
  %5294 = add nsw i32 %5283, %5293
  %5295 = load ptr, ptr %12, align 8, !tbaa !5
  %5296 = load i32, ptr %18, align 4, !tbaa !14
  %5297 = add nsw i32 %5296, 6
  %5298 = sext i32 %5297 to i64
  %5299 = getelementptr inbounds i8, ptr %5295, i64 %5298
  %5300 = load i8, ptr %5299, align 1, !tbaa !15
  %5301 = zext i8 %5300 to i64
  %5302 = getelementptr inbounds [256 x i8], ptr @b_to_y, i64 0, i64 %5301
  %5303 = load i8, ptr %5302, align 1, !tbaa !15
  %5304 = zext i8 %5303 to i32
  %5305 = add nsw i32 %5294, %5304
  %5306 = trunc i32 %5305 to i8
  %5307 = load ptr, ptr %15, align 8, !tbaa !5
  %5308 = load i32, ptr %18, align 4, !tbaa !14
  %5309 = add nsw i32 %5308, 6
  %5310 = sext i32 %5309 to i64
  %5311 = getelementptr inbounds i8, ptr %5307, i64 %5310
  store i8 %5306, ptr %5311, align 1, !tbaa !15
  %5312 = load ptr, ptr %10, align 8, !tbaa !5
  %5313 = load ptr, ptr %12, align 8, !tbaa !5
  %5314 = load i32, ptr %18, align 4, !tbaa !14
  %5315 = add nsw i32 %5314, 6
  %5316 = sext i32 %5315 to i64
  %5317 = getelementptr inbounds i8, ptr %5313, i64 %5316
  %5318 = load i8, ptr %5317, align 1, !tbaa !15
  %5319 = zext i8 %5318 to i32
  %5320 = load ptr, ptr %15, align 8, !tbaa !5
  %5321 = load i32, ptr %18, align 4, !tbaa !14
  %5322 = add nsw i32 %5321, 6
  %5323 = sext i32 %5322 to i64
  %5324 = getelementptr inbounds i8, ptr %5320, i64 %5323
  %5325 = load i8, ptr %5324, align 1, !tbaa !15
  %5326 = zext i8 %5325 to i32
  %5327 = sub nsw i32 %5319, %5326
  %5328 = sext i32 %5327 to i64
  %5329 = getelementptr inbounds i8, ptr %5312, i64 %5328
  %5330 = load i8, ptr %5329, align 1, !tbaa !15
  %5331 = load ptr, ptr %16, align 8, !tbaa !5
  %5332 = load i32, ptr %18, align 4, !tbaa !14
  %5333 = add nsw i32 %5332, 6
  %5334 = sext i32 %5333 to i64
  %5335 = getelementptr inbounds i8, ptr %5331, i64 %5334
  store i8 %5330, ptr %5335, align 1, !tbaa !15
  %5336 = load ptr, ptr %9, align 8, !tbaa !5
  %5337 = load ptr, ptr %14, align 8, !tbaa !5
  %5338 = load i32, ptr %18, align 4, !tbaa !14
  %5339 = add nsw i32 %5338, 6
  %5340 = sext i32 %5339 to i64
  %5341 = getelementptr inbounds i8, ptr %5337, i64 %5340
  %5342 = load i8, ptr %5341, align 1, !tbaa !15
  %5343 = zext i8 %5342 to i32
  %5344 = load ptr, ptr %15, align 8, !tbaa !5
  %5345 = load i32, ptr %18, align 4, !tbaa !14
  %5346 = add nsw i32 %5345, 6
  %5347 = sext i32 %5346 to i64
  %5348 = getelementptr inbounds i8, ptr %5344, i64 %5347
  %5349 = load i8, ptr %5348, align 1, !tbaa !15
  %5350 = zext i8 %5349 to i32
  %5351 = sub nsw i32 %5343, %5350
  %5352 = sext i32 %5351 to i64
  %5353 = getelementptr inbounds i8, ptr %5336, i64 %5352
  %5354 = load i8, ptr %5353, align 1, !tbaa !15
  %5355 = load ptr, ptr %17, align 8, !tbaa !5
  %5356 = load i32, ptr %18, align 4, !tbaa !14
  %5357 = add nsw i32 %5356, 6
  %5358 = sext i32 %5357 to i64
  %5359 = getelementptr inbounds i8, ptr %5355, i64 %5358
  store i8 %5354, ptr %5359, align 1, !tbaa !15
  %5360 = load ptr, ptr %14, align 8, !tbaa !5
  %5361 = load i32, ptr %18, align 4, !tbaa !14
  %5362 = add nsw i32 %5361, 7
  %5363 = sext i32 %5362 to i64
  %5364 = getelementptr inbounds i8, ptr %5360, i64 %5363
  %5365 = load i8, ptr %5364, align 1, !tbaa !15
  %5366 = zext i8 %5365 to i64
  %5367 = getelementptr inbounds [256 x i8], ptr @r_to_y, i64 0, i64 %5366
  %5368 = load i8, ptr %5367, align 1, !tbaa !15
  %5369 = zext i8 %5368 to i32
  %5370 = load ptr, ptr %13, align 8, !tbaa !5
  %5371 = load i32, ptr %18, align 4, !tbaa !14
  %5372 = add nsw i32 %5371, 7
  %5373 = sext i32 %5372 to i64
  %5374 = getelementptr inbounds i8, ptr %5370, i64 %5373
  %5375 = load i8, ptr %5374, align 1, !tbaa !15
  %5376 = zext i8 %5375 to i64
  %5377 = getelementptr inbounds [256 x i8], ptr @g_to_y, i64 0, i64 %5376
  %5378 = load i8, ptr %5377, align 1, !tbaa !15
  %5379 = zext i8 %5378 to i32
  %5380 = add nsw i32 %5369, %5379
  %5381 = load ptr, ptr %12, align 8, !tbaa !5
  %5382 = load i32, ptr %18, align 4, !tbaa !14
  %5383 = add nsw i32 %5382, 7
  %5384 = sext i32 %5383 to i64
  %5385 = getelementptr inbounds i8, ptr %5381, i64 %5384
  %5386 = load i8, ptr %5385, align 1, !tbaa !15
  %5387 = zext i8 %5386 to i64
  %5388 = getelementptr inbounds [256 x i8], ptr @b_to_y, i64 0, i64 %5387
  %5389 = load i8, ptr %5388, align 1, !tbaa !15
  %5390 = zext i8 %5389 to i32
  %5391 = add nsw i32 %5380, %5390
  %5392 = trunc i32 %5391 to i8
  %5393 = load ptr, ptr %15, align 8, !tbaa !5
  %5394 = load i32, ptr %18, align 4, !tbaa !14
  %5395 = add nsw i32 %5394, 7
  %5396 = sext i32 %5395 to i64
  %5397 = getelementptr inbounds i8, ptr %5393, i64 %5396
  store i8 %5392, ptr %5397, align 1, !tbaa !15
  %5398 = load ptr, ptr %10, align 8, !tbaa !5
  %5399 = load ptr, ptr %12, align 8, !tbaa !5
  %5400 = load i32, ptr %18, align 4, !tbaa !14
  %5401 = add nsw i32 %5400, 7
  %5402 = sext i32 %5401 to i64
  %5403 = getelementptr inbounds i8, ptr %5399, i64 %5402
  %5404 = load i8, ptr %5403, align 1, !tbaa !15
  %5405 = zext i8 %5404 to i32
  %5406 = load ptr, ptr %15, align 8, !tbaa !5
  %5407 = load i32, ptr %18, align 4, !tbaa !14
  %5408 = add nsw i32 %5407, 7
  %5409 = sext i32 %5408 to i64
  %5410 = getelementptr inbounds i8, ptr %5406, i64 %5409
  %5411 = load i8, ptr %5410, align 1, !tbaa !15
  %5412 = zext i8 %5411 to i32
  %5413 = sub nsw i32 %5405, %5412
  %5414 = sext i32 %5413 to i64
  %5415 = getelementptr inbounds i8, ptr %5398, i64 %5414
  %5416 = load i8, ptr %5415, align 1, !tbaa !15
  %5417 = load ptr, ptr %16, align 8, !tbaa !5
  %5418 = load i32, ptr %18, align 4, !tbaa !14
  %5419 = add nsw i32 %5418, 7
  %5420 = sext i32 %5419 to i64
  %5421 = getelementptr inbounds i8, ptr %5417, i64 %5420
  store i8 %5416, ptr %5421, align 1, !tbaa !15
  %5422 = load ptr, ptr %9, align 8, !tbaa !5
  %5423 = load ptr, ptr %14, align 8, !tbaa !5
  %5424 = load i32, ptr %18, align 4, !tbaa !14
  %5425 = add nsw i32 %5424, 7
  %5426 = sext i32 %5425 to i64
  %5427 = getelementptr inbounds i8, ptr %5423, i64 %5426
  %5428 = load i8, ptr %5427, align 1, !tbaa !15
  %5429 = zext i8 %5428 to i32
  %5430 = load ptr, ptr %15, align 8, !tbaa !5
  %5431 = load i32, ptr %18, align 4, !tbaa !14
  %5432 = add nsw i32 %5431, 7
  %5433 = sext i32 %5432 to i64
  %5434 = getelementptr inbounds i8, ptr %5430, i64 %5433
  %5435 = load i8, ptr %5434, align 1, !tbaa !15
  %5436 = zext i8 %5435 to i32
  %5437 = sub nsw i32 %5429, %5436
  %5438 = sext i32 %5437 to i64
  %5439 = getelementptr inbounds i8, ptr %5422, i64 %5438
  %5440 = load i8, ptr %5439, align 1, !tbaa !15
  %5441 = load ptr, ptr %17, align 8, !tbaa !5
  %5442 = load i32, ptr %18, align 4, !tbaa !14
  %5443 = add nsw i32 %5442, 7
  %5444 = sext i32 %5443 to i64
  %5445 = getelementptr inbounds i8, ptr %5441, i64 %5444
  store i8 %5440, ptr %5445, align 1, !tbaa !15
  %5446 = load ptr, ptr %14, align 8, !tbaa !5
  %5447 = load i32, ptr %18, align 4, !tbaa !14
  %5448 = add nsw i32 %5447, 8
  %5449 = sext i32 %5448 to i64
  %5450 = getelementptr inbounds i8, ptr %5446, i64 %5449
  %5451 = load i8, ptr %5450, align 1, !tbaa !15
  %5452 = zext i8 %5451 to i64
  %5453 = getelementptr inbounds [256 x i8], ptr @r_to_y, i64 0, i64 %5452
  %5454 = load i8, ptr %5453, align 1, !tbaa !15
  %5455 = zext i8 %5454 to i32
  %5456 = load ptr, ptr %13, align 8, !tbaa !5
  %5457 = load i32, ptr %18, align 4, !tbaa !14
  %5458 = add nsw i32 %5457, 8
  %5459 = sext i32 %5458 to i64
  %5460 = getelementptr inbounds i8, ptr %5456, i64 %5459
  %5461 = load i8, ptr %5460, align 1, !tbaa !15
  %5462 = zext i8 %5461 to i64
  %5463 = getelementptr inbounds [256 x i8], ptr @g_to_y, i64 0, i64 %5462
  %5464 = load i8, ptr %5463, align 1, !tbaa !15
  %5465 = zext i8 %5464 to i32
  %5466 = add nsw i32 %5455, %5465
  %5467 = load ptr, ptr %12, align 8, !tbaa !5
  %5468 = load i32, ptr %18, align 4, !tbaa !14
  %5469 = add nsw i32 %5468, 8
  %5470 = sext i32 %5469 to i64
  %5471 = getelementptr inbounds i8, ptr %5467, i64 %5470
  %5472 = load i8, ptr %5471, align 1, !tbaa !15
  %5473 = zext i8 %5472 to i64
  %5474 = getelementptr inbounds [256 x i8], ptr @b_to_y, i64 0, i64 %5473
  %5475 = load i8, ptr %5474, align 1, !tbaa !15
  %5476 = zext i8 %5475 to i32
  %5477 = add nsw i32 %5466, %5476
  %5478 = trunc i32 %5477 to i8
  %5479 = load ptr, ptr %15, align 8, !tbaa !5
  %5480 = load i32, ptr %18, align 4, !tbaa !14
  %5481 = add nsw i32 %5480, 8
  %5482 = sext i32 %5481 to i64
  %5483 = getelementptr inbounds i8, ptr %5479, i64 %5482
  store i8 %5478, ptr %5483, align 1, !tbaa !15
  %5484 = load ptr, ptr %10, align 8, !tbaa !5
  %5485 = load ptr, ptr %12, align 8, !tbaa !5
  %5486 = load i32, ptr %18, align 4, !tbaa !14
  %5487 = add nsw i32 %5486, 8
  %5488 = sext i32 %5487 to i64
  %5489 = getelementptr inbounds i8, ptr %5485, i64 %5488
  %5490 = load i8, ptr %5489, align 1, !tbaa !15
  %5491 = zext i8 %5490 to i32
  %5492 = load ptr, ptr %15, align 8, !tbaa !5
  %5493 = load i32, ptr %18, align 4, !tbaa !14
  %5494 = add nsw i32 %5493, 8
  %5495 = sext i32 %5494 to i64
  %5496 = getelementptr inbounds i8, ptr %5492, i64 %5495
  %5497 = load i8, ptr %5496, align 1, !tbaa !15
  %5498 = zext i8 %5497 to i32
  %5499 = sub nsw i32 %5491, %5498
  %5500 = sext i32 %5499 to i64
  %5501 = getelementptr inbounds i8, ptr %5484, i64 %5500
  %5502 = load i8, ptr %5501, align 1, !tbaa !15
  %5503 = load ptr, ptr %16, align 8, !tbaa !5
  %5504 = load i32, ptr %18, align 4, !tbaa !14
  %5505 = add nsw i32 %5504, 8
  %5506 = sext i32 %5505 to i64
  %5507 = getelementptr inbounds i8, ptr %5503, i64 %5506
  store i8 %5502, ptr %5507, align 1, !tbaa !15
  %5508 = load ptr, ptr %9, align 8, !tbaa !5
  %5509 = load ptr, ptr %14, align 8, !tbaa !5
  %5510 = load i32, ptr %18, align 4, !tbaa !14
  %5511 = add nsw i32 %5510, 8
  %5512 = sext i32 %5511 to i64
  %5513 = getelementptr inbounds i8, ptr %5509, i64 %5512
  %5514 = load i8, ptr %5513, align 1, !tbaa !15
  %5515 = zext i8 %5514 to i32
  %5516 = load ptr, ptr %15, align 8, !tbaa !5
  %5517 = load i32, ptr %18, align 4, !tbaa !14
  %5518 = add nsw i32 %5517, 8
  %5519 = sext i32 %5518 to i64
  %5520 = getelementptr inbounds i8, ptr %5516, i64 %5519
  %5521 = load i8, ptr %5520, align 1, !tbaa !15
  %5522 = zext i8 %5521 to i32
  %5523 = sub nsw i32 %5515, %5522
  %5524 = sext i32 %5523 to i64
  %5525 = getelementptr inbounds i8, ptr %5508, i64 %5524
  %5526 = load i8, ptr %5525, align 1, !tbaa !15
  %5527 = load ptr, ptr %17, align 8, !tbaa !5
  %5528 = load i32, ptr %18, align 4, !tbaa !14
  %5529 = add nsw i32 %5528, 8
  %5530 = sext i32 %5529 to i64
  %5531 = getelementptr inbounds i8, ptr %5527, i64 %5530
  store i8 %5526, ptr %5531, align 1, !tbaa !15
  br label %12036

5532:                                             ; preds = %4750
  %5533 = load ptr, ptr %4, align 8, !tbaa !5
  %5534 = getelementptr inbounds %struct.MImage, ptr %5533, i32 0, i32 2
  %5535 = load i32, ptr %5534, align 8, !tbaa !13
  %5536 = load i32, ptr %18, align 4, !tbaa !14
  %5537 = sub nsw i32 %5535, %5536
  %5538 = icmp eq i32 %5537, 10
  br i1 %5538, label %5539, label %6400

5539:                                             ; preds = %5532
  %5540 = load ptr, ptr %14, align 8, !tbaa !5
  %5541 = load i32, ptr %18, align 4, !tbaa !14
  %5542 = add nsw i32 %5541, 0
  %5543 = sext i32 %5542 to i64
  %5544 = getelementptr inbounds i8, ptr %5540, i64 %5543
  %5545 = load i8, ptr %5544, align 1, !tbaa !15
  %5546 = zext i8 %5545 to i64
  %5547 = getelementptr inbounds [256 x i8], ptr @r_to_y, i64 0, i64 %5546
  %5548 = load i8, ptr %5547, align 1, !tbaa !15
  %5549 = zext i8 %5548 to i32
  %5550 = load ptr, ptr %13, align 8, !tbaa !5
  %5551 = load i32, ptr %18, align 4, !tbaa !14
  %5552 = add nsw i32 %5551, 0
  %5553 = sext i32 %5552 to i64
  %5554 = getelementptr inbounds i8, ptr %5550, i64 %5553
  %5555 = load i8, ptr %5554, align 1, !tbaa !15
  %5556 = zext i8 %5555 to i64
  %5557 = getelementptr inbounds [256 x i8], ptr @g_to_y, i64 0, i64 %5556
  %5558 = load i8, ptr %5557, align 1, !tbaa !15
  %5559 = zext i8 %5558 to i32
  %5560 = add nsw i32 %5549, %5559
  %5561 = load ptr, ptr %12, align 8, !tbaa !5
  %5562 = load i32, ptr %18, align 4, !tbaa !14
  %5563 = add nsw i32 %5562, 0
  %5564 = sext i32 %5563 to i64
  %5565 = getelementptr inbounds i8, ptr %5561, i64 %5564
  %5566 = load i8, ptr %5565, align 1, !tbaa !15
  %5567 = zext i8 %5566 to i64
  %5568 = getelementptr inbounds [256 x i8], ptr @b_to_y, i64 0, i64 %5567
  %5569 = load i8, ptr %5568, align 1, !tbaa !15
  %5570 = zext i8 %5569 to i32
  %5571 = add nsw i32 %5560, %5570
  %5572 = trunc i32 %5571 to i8
  %5573 = load ptr, ptr %15, align 8, !tbaa !5
  %5574 = load i32, ptr %18, align 4, !tbaa !14
  %5575 = add nsw i32 %5574, 0
  %5576 = sext i32 %5575 to i64
  %5577 = getelementptr inbounds i8, ptr %5573, i64 %5576
  store i8 %5572, ptr %5577, align 1, !tbaa !15
  %5578 = load ptr, ptr %10, align 8, !tbaa !5
  %5579 = load ptr, ptr %12, align 8, !tbaa !5
  %5580 = load i32, ptr %18, align 4, !tbaa !14
  %5581 = add nsw i32 %5580, 0
  %5582 = sext i32 %5581 to i64
  %5583 = getelementptr inbounds i8, ptr %5579, i64 %5582
  %5584 = load i8, ptr %5583, align 1, !tbaa !15
  %5585 = zext i8 %5584 to i32
  %5586 = load ptr, ptr %15, align 8, !tbaa !5
  %5587 = load i32, ptr %18, align 4, !tbaa !14
  %5588 = add nsw i32 %5587, 0
  %5589 = sext i32 %5588 to i64
  %5590 = getelementptr inbounds i8, ptr %5586, i64 %5589
  %5591 = load i8, ptr %5590, align 1, !tbaa !15
  %5592 = zext i8 %5591 to i32
  %5593 = sub nsw i32 %5585, %5592
  %5594 = sext i32 %5593 to i64
  %5595 = getelementptr inbounds i8, ptr %5578, i64 %5594
  %5596 = load i8, ptr %5595, align 1, !tbaa !15
  %5597 = load ptr, ptr %16, align 8, !tbaa !5
  %5598 = load i32, ptr %18, align 4, !tbaa !14
  %5599 = add nsw i32 %5598, 0
  %5600 = sext i32 %5599 to i64
  %5601 = getelementptr inbounds i8, ptr %5597, i64 %5600
  store i8 %5596, ptr %5601, align 1, !tbaa !15
  %5602 = load ptr, ptr %9, align 8, !tbaa !5
  %5603 = load ptr, ptr %14, align 8, !tbaa !5
  %5604 = load i32, ptr %18, align 4, !tbaa !14
  %5605 = add nsw i32 %5604, 0
  %5606 = sext i32 %5605 to i64
  %5607 = getelementptr inbounds i8, ptr %5603, i64 %5606
  %5608 = load i8, ptr %5607, align 1, !tbaa !15
  %5609 = zext i8 %5608 to i32
  %5610 = load ptr, ptr %15, align 8, !tbaa !5
  %5611 = load i32, ptr %18, align 4, !tbaa !14
  %5612 = add nsw i32 %5611, 0
  %5613 = sext i32 %5612 to i64
  %5614 = getelementptr inbounds i8, ptr %5610, i64 %5613
  %5615 = load i8, ptr %5614, align 1, !tbaa !15
  %5616 = zext i8 %5615 to i32
  %5617 = sub nsw i32 %5609, %5616
  %5618 = sext i32 %5617 to i64
  %5619 = getelementptr inbounds i8, ptr %5602, i64 %5618
  %5620 = load i8, ptr %5619, align 1, !tbaa !15
  %5621 = load ptr, ptr %17, align 8, !tbaa !5
  %5622 = load i32, ptr %18, align 4, !tbaa !14
  %5623 = add nsw i32 %5622, 0
  %5624 = sext i32 %5623 to i64
  %5625 = getelementptr inbounds i8, ptr %5621, i64 %5624
  store i8 %5620, ptr %5625, align 1, !tbaa !15
  %5626 = load ptr, ptr %14, align 8, !tbaa !5
  %5627 = load i32, ptr %18, align 4, !tbaa !14
  %5628 = add nsw i32 %5627, 1
  %5629 = sext i32 %5628 to i64
  %5630 = getelementptr inbounds i8, ptr %5626, i64 %5629
  %5631 = load i8, ptr %5630, align 1, !tbaa !15
  %5632 = zext i8 %5631 to i64
  %5633 = getelementptr inbounds [256 x i8], ptr @r_to_y, i64 0, i64 %5632
  %5634 = load i8, ptr %5633, align 1, !tbaa !15
  %5635 = zext i8 %5634 to i32
  %5636 = load ptr, ptr %13, align 8, !tbaa !5
  %5637 = load i32, ptr %18, align 4, !tbaa !14
  %5638 = add nsw i32 %5637, 1
  %5639 = sext i32 %5638 to i64
  %5640 = getelementptr inbounds i8, ptr %5636, i64 %5639
  %5641 = load i8, ptr %5640, align 1, !tbaa !15
  %5642 = zext i8 %5641 to i64
  %5643 = getelementptr inbounds [256 x i8], ptr @g_to_y, i64 0, i64 %5642
  %5644 = load i8, ptr %5643, align 1, !tbaa !15
  %5645 = zext i8 %5644 to i32
  %5646 = add nsw i32 %5635, %5645
  %5647 = load ptr, ptr %12, align 8, !tbaa !5
  %5648 = load i32, ptr %18, align 4, !tbaa !14
  %5649 = add nsw i32 %5648, 1
  %5650 = sext i32 %5649 to i64
  %5651 = getelementptr inbounds i8, ptr %5647, i64 %5650
  %5652 = load i8, ptr %5651, align 1, !tbaa !15
  %5653 = zext i8 %5652 to i64
  %5654 = getelementptr inbounds [256 x i8], ptr @b_to_y, i64 0, i64 %5653
  %5655 = load i8, ptr %5654, align 1, !tbaa !15
  %5656 = zext i8 %5655 to i32
  %5657 = add nsw i32 %5646, %5656
  %5658 = trunc i32 %5657 to i8
  %5659 = load ptr, ptr %15, align 8, !tbaa !5
  %5660 = load i32, ptr %18, align 4, !tbaa !14
  %5661 = add nsw i32 %5660, 1
  %5662 = sext i32 %5661 to i64
  %5663 = getelementptr inbounds i8, ptr %5659, i64 %5662
  store i8 %5658, ptr %5663, align 1, !tbaa !15
  %5664 = load ptr, ptr %10, align 8, !tbaa !5
  %5665 = load ptr, ptr %12, align 8, !tbaa !5
  %5666 = load i32, ptr %18, align 4, !tbaa !14
  %5667 = add nsw i32 %5666, 1
  %5668 = sext i32 %5667 to i64
  %5669 = getelementptr inbounds i8, ptr %5665, i64 %5668
  %5670 = load i8, ptr %5669, align 1, !tbaa !15
  %5671 = zext i8 %5670 to i32
  %5672 = load ptr, ptr %15, align 8, !tbaa !5
  %5673 = load i32, ptr %18, align 4, !tbaa !14
  %5674 = add nsw i32 %5673, 1
  %5675 = sext i32 %5674 to i64
  %5676 = getelementptr inbounds i8, ptr %5672, i64 %5675
  %5677 = load i8, ptr %5676, align 1, !tbaa !15
  %5678 = zext i8 %5677 to i32
  %5679 = sub nsw i32 %5671, %5678
  %5680 = sext i32 %5679 to i64
  %5681 = getelementptr inbounds i8, ptr %5664, i64 %5680
  %5682 = load i8, ptr %5681, align 1, !tbaa !15
  %5683 = load ptr, ptr %16, align 8, !tbaa !5
  %5684 = load i32, ptr %18, align 4, !tbaa !14
  %5685 = add nsw i32 %5684, 1
  %5686 = sext i32 %5685 to i64
  %5687 = getelementptr inbounds i8, ptr %5683, i64 %5686
  store i8 %5682, ptr %5687, align 1, !tbaa !15
  %5688 = load ptr, ptr %9, align 8, !tbaa !5
  %5689 = load ptr, ptr %14, align 8, !tbaa !5
  %5690 = load i32, ptr %18, align 4, !tbaa !14
  %5691 = add nsw i32 %5690, 1
  %5692 = sext i32 %5691 to i64
  %5693 = getelementptr inbounds i8, ptr %5689, i64 %5692
  %5694 = load i8, ptr %5693, align 1, !tbaa !15
  %5695 = zext i8 %5694 to i32
  %5696 = load ptr, ptr %15, align 8, !tbaa !5
  %5697 = load i32, ptr %18, align 4, !tbaa !14
  %5698 = add nsw i32 %5697, 1
  %5699 = sext i32 %5698 to i64
  %5700 = getelementptr inbounds i8, ptr %5696, i64 %5699
  %5701 = load i8, ptr %5700, align 1, !tbaa !15
  %5702 = zext i8 %5701 to i32
  %5703 = sub nsw i32 %5695, %5702
  %5704 = sext i32 %5703 to i64
  %5705 = getelementptr inbounds i8, ptr %5688, i64 %5704
  %5706 = load i8, ptr %5705, align 1, !tbaa !15
  %5707 = load ptr, ptr %17, align 8, !tbaa !5
  %5708 = load i32, ptr %18, align 4, !tbaa !14
  %5709 = add nsw i32 %5708, 1
  %5710 = sext i32 %5709 to i64
  %5711 = getelementptr inbounds i8, ptr %5707, i64 %5710
  store i8 %5706, ptr %5711, align 1, !tbaa !15
  %5712 = load ptr, ptr %14, align 8, !tbaa !5
  %5713 = load i32, ptr %18, align 4, !tbaa !14
  %5714 = add nsw i32 %5713, 2
  %5715 = sext i32 %5714 to i64
  %5716 = getelementptr inbounds i8, ptr %5712, i64 %5715
  %5717 = load i8, ptr %5716, align 1, !tbaa !15
  %5718 = zext i8 %5717 to i64
  %5719 = getelementptr inbounds [256 x i8], ptr @r_to_y, i64 0, i64 %5718
  %5720 = load i8, ptr %5719, align 1, !tbaa !15
  %5721 = zext i8 %5720 to i32
  %5722 = load ptr, ptr %13, align 8, !tbaa !5
  %5723 = load i32, ptr %18, align 4, !tbaa !14
  %5724 = add nsw i32 %5723, 2
  %5725 = sext i32 %5724 to i64
  %5726 = getelementptr inbounds i8, ptr %5722, i64 %5725
  %5727 = load i8, ptr %5726, align 1, !tbaa !15
  %5728 = zext i8 %5727 to i64
  %5729 = getelementptr inbounds [256 x i8], ptr @g_to_y, i64 0, i64 %5728
  %5730 = load i8, ptr %5729, align 1, !tbaa !15
  %5731 = zext i8 %5730 to i32
  %5732 = add nsw i32 %5721, %5731
  %5733 = load ptr, ptr %12, align 8, !tbaa !5
  %5734 = load i32, ptr %18, align 4, !tbaa !14
  %5735 = add nsw i32 %5734, 2
  %5736 = sext i32 %5735 to i64
  %5737 = getelementptr inbounds i8, ptr %5733, i64 %5736
  %5738 = load i8, ptr %5737, align 1, !tbaa !15
  %5739 = zext i8 %5738 to i64
  %5740 = getelementptr inbounds [256 x i8], ptr @b_to_y, i64 0, i64 %5739
  %5741 = load i8, ptr %5740, align 1, !tbaa !15
  %5742 = zext i8 %5741 to i32
  %5743 = add nsw i32 %5732, %5742
  %5744 = trunc i32 %5743 to i8
  %5745 = load ptr, ptr %15, align 8, !tbaa !5
  %5746 = load i32, ptr %18, align 4, !tbaa !14
  %5747 = add nsw i32 %5746, 2
  %5748 = sext i32 %5747 to i64
  %5749 = getelementptr inbounds i8, ptr %5745, i64 %5748
  store i8 %5744, ptr %5749, align 1, !tbaa !15
  %5750 = load ptr, ptr %10, align 8, !tbaa !5
  %5751 = load ptr, ptr %12, align 8, !tbaa !5
  %5752 = load i32, ptr %18, align 4, !tbaa !14
  %5753 = add nsw i32 %5752, 2
  %5754 = sext i32 %5753 to i64
  %5755 = getelementptr inbounds i8, ptr %5751, i64 %5754
  %5756 = load i8, ptr %5755, align 1, !tbaa !15
  %5757 = zext i8 %5756 to i32
  %5758 = load ptr, ptr %15, align 8, !tbaa !5
  %5759 = load i32, ptr %18, align 4, !tbaa !14
  %5760 = add nsw i32 %5759, 2
  %5761 = sext i32 %5760 to i64
  %5762 = getelementptr inbounds i8, ptr %5758, i64 %5761
  %5763 = load i8, ptr %5762, align 1, !tbaa !15
  %5764 = zext i8 %5763 to i32
  %5765 = sub nsw i32 %5757, %5764
  %5766 = sext i32 %5765 to i64
  %5767 = getelementptr inbounds i8, ptr %5750, i64 %5766
  %5768 = load i8, ptr %5767, align 1, !tbaa !15
  %5769 = load ptr, ptr %16, align 8, !tbaa !5
  %5770 = load i32, ptr %18, align 4, !tbaa !14
  %5771 = add nsw i32 %5770, 2
  %5772 = sext i32 %5771 to i64
  %5773 = getelementptr inbounds i8, ptr %5769, i64 %5772
  store i8 %5768, ptr %5773, align 1, !tbaa !15
  %5774 = load ptr, ptr %9, align 8, !tbaa !5
  %5775 = load ptr, ptr %14, align 8, !tbaa !5
  %5776 = load i32, ptr %18, align 4, !tbaa !14
  %5777 = add nsw i32 %5776, 2
  %5778 = sext i32 %5777 to i64
  %5779 = getelementptr inbounds i8, ptr %5775, i64 %5778
  %5780 = load i8, ptr %5779, align 1, !tbaa !15
  %5781 = zext i8 %5780 to i32
  %5782 = load ptr, ptr %15, align 8, !tbaa !5
  %5783 = load i32, ptr %18, align 4, !tbaa !14
  %5784 = add nsw i32 %5783, 2
  %5785 = sext i32 %5784 to i64
  %5786 = getelementptr inbounds i8, ptr %5782, i64 %5785
  %5787 = load i8, ptr %5786, align 1, !tbaa !15
  %5788 = zext i8 %5787 to i32
  %5789 = sub nsw i32 %5781, %5788
  %5790 = sext i32 %5789 to i64
  %5791 = getelementptr inbounds i8, ptr %5774, i64 %5790
  %5792 = load i8, ptr %5791, align 1, !tbaa !15
  %5793 = load ptr, ptr %17, align 8, !tbaa !5
  %5794 = load i32, ptr %18, align 4, !tbaa !14
  %5795 = add nsw i32 %5794, 2
  %5796 = sext i32 %5795 to i64
  %5797 = getelementptr inbounds i8, ptr %5793, i64 %5796
  store i8 %5792, ptr %5797, align 1, !tbaa !15
  %5798 = load ptr, ptr %14, align 8, !tbaa !5
  %5799 = load i32, ptr %18, align 4, !tbaa !14
  %5800 = add nsw i32 %5799, 3
  %5801 = sext i32 %5800 to i64
  %5802 = getelementptr inbounds i8, ptr %5798, i64 %5801
  %5803 = load i8, ptr %5802, align 1, !tbaa !15
  %5804 = zext i8 %5803 to i64
  %5805 = getelementptr inbounds [256 x i8], ptr @r_to_y, i64 0, i64 %5804
  %5806 = load i8, ptr %5805, align 1, !tbaa !15
  %5807 = zext i8 %5806 to i32
  %5808 = load ptr, ptr %13, align 8, !tbaa !5
  %5809 = load i32, ptr %18, align 4, !tbaa !14
  %5810 = add nsw i32 %5809, 3
  %5811 = sext i32 %5810 to i64
  %5812 = getelementptr inbounds i8, ptr %5808, i64 %5811
  %5813 = load i8, ptr %5812, align 1, !tbaa !15
  %5814 = zext i8 %5813 to i64
  %5815 = getelementptr inbounds [256 x i8], ptr @g_to_y, i64 0, i64 %5814
  %5816 = load i8, ptr %5815, align 1, !tbaa !15
  %5817 = zext i8 %5816 to i32
  %5818 = add nsw i32 %5807, %5817
  %5819 = load ptr, ptr %12, align 8, !tbaa !5
  %5820 = load i32, ptr %18, align 4, !tbaa !14
  %5821 = add nsw i32 %5820, 3
  %5822 = sext i32 %5821 to i64
  %5823 = getelementptr inbounds i8, ptr %5819, i64 %5822
  %5824 = load i8, ptr %5823, align 1, !tbaa !15
  %5825 = zext i8 %5824 to i64
  %5826 = getelementptr inbounds [256 x i8], ptr @b_to_y, i64 0, i64 %5825
  %5827 = load i8, ptr %5826, align 1, !tbaa !15
  %5828 = zext i8 %5827 to i32
  %5829 = add nsw i32 %5818, %5828
  %5830 = trunc i32 %5829 to i8
  %5831 = load ptr, ptr %15, align 8, !tbaa !5
  %5832 = load i32, ptr %18, align 4, !tbaa !14
  %5833 = add nsw i32 %5832, 3
  %5834 = sext i32 %5833 to i64
  %5835 = getelementptr inbounds i8, ptr %5831, i64 %5834
  store i8 %5830, ptr %5835, align 1, !tbaa !15
  %5836 = load ptr, ptr %10, align 8, !tbaa !5
  %5837 = load ptr, ptr %12, align 8, !tbaa !5
  %5838 = load i32, ptr %18, align 4, !tbaa !14
  %5839 = add nsw i32 %5838, 3
  %5840 = sext i32 %5839 to i64
  %5841 = getelementptr inbounds i8, ptr %5837, i64 %5840
  %5842 = load i8, ptr %5841, align 1, !tbaa !15
  %5843 = zext i8 %5842 to i32
  %5844 = load ptr, ptr %15, align 8, !tbaa !5
  %5845 = load i32, ptr %18, align 4, !tbaa !14
  %5846 = add nsw i32 %5845, 3
  %5847 = sext i32 %5846 to i64
  %5848 = getelementptr inbounds i8, ptr %5844, i64 %5847
  %5849 = load i8, ptr %5848, align 1, !tbaa !15
  %5850 = zext i8 %5849 to i32
  %5851 = sub nsw i32 %5843, %5850
  %5852 = sext i32 %5851 to i64
  %5853 = getelementptr inbounds i8, ptr %5836, i64 %5852
  %5854 = load i8, ptr %5853, align 1, !tbaa !15
  %5855 = load ptr, ptr %16, align 8, !tbaa !5
  %5856 = load i32, ptr %18, align 4, !tbaa !14
  %5857 = add nsw i32 %5856, 3
  %5858 = sext i32 %5857 to i64
  %5859 = getelementptr inbounds i8, ptr %5855, i64 %5858
  store i8 %5854, ptr %5859, align 1, !tbaa !15
  %5860 = load ptr, ptr %9, align 8, !tbaa !5
  %5861 = load ptr, ptr %14, align 8, !tbaa !5
  %5862 = load i32, ptr %18, align 4, !tbaa !14
  %5863 = add nsw i32 %5862, 3
  %5864 = sext i32 %5863 to i64
  %5865 = getelementptr inbounds i8, ptr %5861, i64 %5864
  %5866 = load i8, ptr %5865, align 1, !tbaa !15
  %5867 = zext i8 %5866 to i32
  %5868 = load ptr, ptr %15, align 8, !tbaa !5
  %5869 = load i32, ptr %18, align 4, !tbaa !14
  %5870 = add nsw i32 %5869, 3
  %5871 = sext i32 %5870 to i64
  %5872 = getelementptr inbounds i8, ptr %5868, i64 %5871
  %5873 = load i8, ptr %5872, align 1, !tbaa !15
  %5874 = zext i8 %5873 to i32
  %5875 = sub nsw i32 %5867, %5874
  %5876 = sext i32 %5875 to i64
  %5877 = getelementptr inbounds i8, ptr %5860, i64 %5876
  %5878 = load i8, ptr %5877, align 1, !tbaa !15
  %5879 = load ptr, ptr %17, align 8, !tbaa !5
  %5880 = load i32, ptr %18, align 4, !tbaa !14
  %5881 = add nsw i32 %5880, 3
  %5882 = sext i32 %5881 to i64
  %5883 = getelementptr inbounds i8, ptr %5879, i64 %5882
  store i8 %5878, ptr %5883, align 1, !tbaa !15
  %5884 = load ptr, ptr %14, align 8, !tbaa !5
  %5885 = load i32, ptr %18, align 4, !tbaa !14
  %5886 = add nsw i32 %5885, 4
  %5887 = sext i32 %5886 to i64
  %5888 = getelementptr inbounds i8, ptr %5884, i64 %5887
  %5889 = load i8, ptr %5888, align 1, !tbaa !15
  %5890 = zext i8 %5889 to i64
  %5891 = getelementptr inbounds [256 x i8], ptr @r_to_y, i64 0, i64 %5890
  %5892 = load i8, ptr %5891, align 1, !tbaa !15
  %5893 = zext i8 %5892 to i32
  %5894 = load ptr, ptr %13, align 8, !tbaa !5
  %5895 = load i32, ptr %18, align 4, !tbaa !14
  %5896 = add nsw i32 %5895, 4
  %5897 = sext i32 %5896 to i64
  %5898 = getelementptr inbounds i8, ptr %5894, i64 %5897
  %5899 = load i8, ptr %5898, align 1, !tbaa !15
  %5900 = zext i8 %5899 to i64
  %5901 = getelementptr inbounds [256 x i8], ptr @g_to_y, i64 0, i64 %5900
  %5902 = load i8, ptr %5901, align 1, !tbaa !15
  %5903 = zext i8 %5902 to i32
  %5904 = add nsw i32 %5893, %5903
  %5905 = load ptr, ptr %12, align 8, !tbaa !5
  %5906 = load i32, ptr %18, align 4, !tbaa !14
  %5907 = add nsw i32 %5906, 4
  %5908 = sext i32 %5907 to i64
  %5909 = getelementptr inbounds i8, ptr %5905, i64 %5908
  %5910 = load i8, ptr %5909, align 1, !tbaa !15
  %5911 = zext i8 %5910 to i64
  %5912 = getelementptr inbounds [256 x i8], ptr @b_to_y, i64 0, i64 %5911
  %5913 = load i8, ptr %5912, align 1, !tbaa !15
  %5914 = zext i8 %5913 to i32
  %5915 = add nsw i32 %5904, %5914
  %5916 = trunc i32 %5915 to i8
  %5917 = load ptr, ptr %15, align 8, !tbaa !5
  %5918 = load i32, ptr %18, align 4, !tbaa !14
  %5919 = add nsw i32 %5918, 4
  %5920 = sext i32 %5919 to i64
  %5921 = getelementptr inbounds i8, ptr %5917, i64 %5920
  store i8 %5916, ptr %5921, align 1, !tbaa !15
  %5922 = load ptr, ptr %10, align 8, !tbaa !5
  %5923 = load ptr, ptr %12, align 8, !tbaa !5
  %5924 = load i32, ptr %18, align 4, !tbaa !14
  %5925 = add nsw i32 %5924, 4
  %5926 = sext i32 %5925 to i64
  %5927 = getelementptr inbounds i8, ptr %5923, i64 %5926
  %5928 = load i8, ptr %5927, align 1, !tbaa !15
  %5929 = zext i8 %5928 to i32
  %5930 = load ptr, ptr %15, align 8, !tbaa !5
  %5931 = load i32, ptr %18, align 4, !tbaa !14
  %5932 = add nsw i32 %5931, 4
  %5933 = sext i32 %5932 to i64
  %5934 = getelementptr inbounds i8, ptr %5930, i64 %5933
  %5935 = load i8, ptr %5934, align 1, !tbaa !15
  %5936 = zext i8 %5935 to i32
  %5937 = sub nsw i32 %5929, %5936
  %5938 = sext i32 %5937 to i64
  %5939 = getelementptr inbounds i8, ptr %5922, i64 %5938
  %5940 = load i8, ptr %5939, align 1, !tbaa !15
  %5941 = load ptr, ptr %16, align 8, !tbaa !5
  %5942 = load i32, ptr %18, align 4, !tbaa !14
  %5943 = add nsw i32 %5942, 4
  %5944 = sext i32 %5943 to i64
  %5945 = getelementptr inbounds i8, ptr %5941, i64 %5944
  store i8 %5940, ptr %5945, align 1, !tbaa !15
  %5946 = load ptr, ptr %9, align 8, !tbaa !5
  %5947 = load ptr, ptr %14, align 8, !tbaa !5
  %5948 = load i32, ptr %18, align 4, !tbaa !14
  %5949 = add nsw i32 %5948, 4
  %5950 = sext i32 %5949 to i64
  %5951 = getelementptr inbounds i8, ptr %5947, i64 %5950
  %5952 = load i8, ptr %5951, align 1, !tbaa !15
  %5953 = zext i8 %5952 to i32
  %5954 = load ptr, ptr %15, align 8, !tbaa !5
  %5955 = load i32, ptr %18, align 4, !tbaa !14
  %5956 = add nsw i32 %5955, 4
  %5957 = sext i32 %5956 to i64
  %5958 = getelementptr inbounds i8, ptr %5954, i64 %5957
  %5959 = load i8, ptr %5958, align 1, !tbaa !15
  %5960 = zext i8 %5959 to i32
  %5961 = sub nsw i32 %5953, %5960
  %5962 = sext i32 %5961 to i64
  %5963 = getelementptr inbounds i8, ptr %5946, i64 %5962
  %5964 = load i8, ptr %5963, align 1, !tbaa !15
  %5965 = load ptr, ptr %17, align 8, !tbaa !5
  %5966 = load i32, ptr %18, align 4, !tbaa !14
  %5967 = add nsw i32 %5966, 4
  %5968 = sext i32 %5967 to i64
  %5969 = getelementptr inbounds i8, ptr %5965, i64 %5968
  store i8 %5964, ptr %5969, align 1, !tbaa !15
  %5970 = load ptr, ptr %14, align 8, !tbaa !5
  %5971 = load i32, ptr %18, align 4, !tbaa !14
  %5972 = add nsw i32 %5971, 5
  %5973 = sext i32 %5972 to i64
  %5974 = getelementptr inbounds i8, ptr %5970, i64 %5973
  %5975 = load i8, ptr %5974, align 1, !tbaa !15
  %5976 = zext i8 %5975 to i64
  %5977 = getelementptr inbounds [256 x i8], ptr @r_to_y, i64 0, i64 %5976
  %5978 = load i8, ptr %5977, align 1, !tbaa !15
  %5979 = zext i8 %5978 to i32
  %5980 = load ptr, ptr %13, align 8, !tbaa !5
  %5981 = load i32, ptr %18, align 4, !tbaa !14
  %5982 = add nsw i32 %5981, 5
  %5983 = sext i32 %5982 to i64
  %5984 = getelementptr inbounds i8, ptr %5980, i64 %5983
  %5985 = load i8, ptr %5984, align 1, !tbaa !15
  %5986 = zext i8 %5985 to i64
  %5987 = getelementptr inbounds [256 x i8], ptr @g_to_y, i64 0, i64 %5986
  %5988 = load i8, ptr %5987, align 1, !tbaa !15
  %5989 = zext i8 %5988 to i32
  %5990 = add nsw i32 %5979, %5989
  %5991 = load ptr, ptr %12, align 8, !tbaa !5
  %5992 = load i32, ptr %18, align 4, !tbaa !14
  %5993 = add nsw i32 %5992, 5
  %5994 = sext i32 %5993 to i64
  %5995 = getelementptr inbounds i8, ptr %5991, i64 %5994
  %5996 = load i8, ptr %5995, align 1, !tbaa !15
  %5997 = zext i8 %5996 to i64
  %5998 = getelementptr inbounds [256 x i8], ptr @b_to_y, i64 0, i64 %5997
  %5999 = load i8, ptr %5998, align 1, !tbaa !15
  %6000 = zext i8 %5999 to i32
  %6001 = add nsw i32 %5990, %6000
  %6002 = trunc i32 %6001 to i8
  %6003 = load ptr, ptr %15, align 8, !tbaa !5
  %6004 = load i32, ptr %18, align 4, !tbaa !14
  %6005 = add nsw i32 %6004, 5
  %6006 = sext i32 %6005 to i64
  %6007 = getelementptr inbounds i8, ptr %6003, i64 %6006
  store i8 %6002, ptr %6007, align 1, !tbaa !15
  %6008 = load ptr, ptr %10, align 8, !tbaa !5
  %6009 = load ptr, ptr %12, align 8, !tbaa !5
  %6010 = load i32, ptr %18, align 4, !tbaa !14
  %6011 = add nsw i32 %6010, 5
  %6012 = sext i32 %6011 to i64
  %6013 = getelementptr inbounds i8, ptr %6009, i64 %6012
  %6014 = load i8, ptr %6013, align 1, !tbaa !15
  %6015 = zext i8 %6014 to i32
  %6016 = load ptr, ptr %15, align 8, !tbaa !5
  %6017 = load i32, ptr %18, align 4, !tbaa !14
  %6018 = add nsw i32 %6017, 5
  %6019 = sext i32 %6018 to i64
  %6020 = getelementptr inbounds i8, ptr %6016, i64 %6019
  %6021 = load i8, ptr %6020, align 1, !tbaa !15
  %6022 = zext i8 %6021 to i32
  %6023 = sub nsw i32 %6015, %6022
  %6024 = sext i32 %6023 to i64
  %6025 = getelementptr inbounds i8, ptr %6008, i64 %6024
  %6026 = load i8, ptr %6025, align 1, !tbaa !15
  %6027 = load ptr, ptr %16, align 8, !tbaa !5
  %6028 = load i32, ptr %18, align 4, !tbaa !14
  %6029 = add nsw i32 %6028, 5
  %6030 = sext i32 %6029 to i64
  %6031 = getelementptr inbounds i8, ptr %6027, i64 %6030
  store i8 %6026, ptr %6031, align 1, !tbaa !15
  %6032 = load ptr, ptr %9, align 8, !tbaa !5
  %6033 = load ptr, ptr %14, align 8, !tbaa !5
  %6034 = load i32, ptr %18, align 4, !tbaa !14
  %6035 = add nsw i32 %6034, 5
  %6036 = sext i32 %6035 to i64
  %6037 = getelementptr inbounds i8, ptr %6033, i64 %6036
  %6038 = load i8, ptr %6037, align 1, !tbaa !15
  %6039 = zext i8 %6038 to i32
  %6040 = load ptr, ptr %15, align 8, !tbaa !5
  %6041 = load i32, ptr %18, align 4, !tbaa !14
  %6042 = add nsw i32 %6041, 5
  %6043 = sext i32 %6042 to i64
  %6044 = getelementptr inbounds i8, ptr %6040, i64 %6043
  %6045 = load i8, ptr %6044, align 1, !tbaa !15
  %6046 = zext i8 %6045 to i32
  %6047 = sub nsw i32 %6039, %6046
  %6048 = sext i32 %6047 to i64
  %6049 = getelementptr inbounds i8, ptr %6032, i64 %6048
  %6050 = load i8, ptr %6049, align 1, !tbaa !15
  %6051 = load ptr, ptr %17, align 8, !tbaa !5
  %6052 = load i32, ptr %18, align 4, !tbaa !14
  %6053 = add nsw i32 %6052, 5
  %6054 = sext i32 %6053 to i64
  %6055 = getelementptr inbounds i8, ptr %6051, i64 %6054
  store i8 %6050, ptr %6055, align 1, !tbaa !15
  %6056 = load ptr, ptr %14, align 8, !tbaa !5
  %6057 = load i32, ptr %18, align 4, !tbaa !14
  %6058 = add nsw i32 %6057, 6
  %6059 = sext i32 %6058 to i64
  %6060 = getelementptr inbounds i8, ptr %6056, i64 %6059
  %6061 = load i8, ptr %6060, align 1, !tbaa !15
  %6062 = zext i8 %6061 to i64
  %6063 = getelementptr inbounds [256 x i8], ptr @r_to_y, i64 0, i64 %6062
  %6064 = load i8, ptr %6063, align 1, !tbaa !15
  %6065 = zext i8 %6064 to i32
  %6066 = load ptr, ptr %13, align 8, !tbaa !5
  %6067 = load i32, ptr %18, align 4, !tbaa !14
  %6068 = add nsw i32 %6067, 6
  %6069 = sext i32 %6068 to i64
  %6070 = getelementptr inbounds i8, ptr %6066, i64 %6069
  %6071 = load i8, ptr %6070, align 1, !tbaa !15
  %6072 = zext i8 %6071 to i64
  %6073 = getelementptr inbounds [256 x i8], ptr @g_to_y, i64 0, i64 %6072
  %6074 = load i8, ptr %6073, align 1, !tbaa !15
  %6075 = zext i8 %6074 to i32
  %6076 = add nsw i32 %6065, %6075
  %6077 = load ptr, ptr %12, align 8, !tbaa !5
  %6078 = load i32, ptr %18, align 4, !tbaa !14
  %6079 = add nsw i32 %6078, 6
  %6080 = sext i32 %6079 to i64
  %6081 = getelementptr inbounds i8, ptr %6077, i64 %6080
  %6082 = load i8, ptr %6081, align 1, !tbaa !15
  %6083 = zext i8 %6082 to i64
  %6084 = getelementptr inbounds [256 x i8], ptr @b_to_y, i64 0, i64 %6083
  %6085 = load i8, ptr %6084, align 1, !tbaa !15
  %6086 = zext i8 %6085 to i32
  %6087 = add nsw i32 %6076, %6086
  %6088 = trunc i32 %6087 to i8
  %6089 = load ptr, ptr %15, align 8, !tbaa !5
  %6090 = load i32, ptr %18, align 4, !tbaa !14
  %6091 = add nsw i32 %6090, 6
  %6092 = sext i32 %6091 to i64
  %6093 = getelementptr inbounds i8, ptr %6089, i64 %6092
  store i8 %6088, ptr %6093, align 1, !tbaa !15
  %6094 = load ptr, ptr %10, align 8, !tbaa !5
  %6095 = load ptr, ptr %12, align 8, !tbaa !5
  %6096 = load i32, ptr %18, align 4, !tbaa !14
  %6097 = add nsw i32 %6096, 6
  %6098 = sext i32 %6097 to i64
  %6099 = getelementptr inbounds i8, ptr %6095, i64 %6098
  %6100 = load i8, ptr %6099, align 1, !tbaa !15
  %6101 = zext i8 %6100 to i32
  %6102 = load ptr, ptr %15, align 8, !tbaa !5
  %6103 = load i32, ptr %18, align 4, !tbaa !14
  %6104 = add nsw i32 %6103, 6
  %6105 = sext i32 %6104 to i64
  %6106 = getelementptr inbounds i8, ptr %6102, i64 %6105
  %6107 = load i8, ptr %6106, align 1, !tbaa !15
  %6108 = zext i8 %6107 to i32
  %6109 = sub nsw i32 %6101, %6108
  %6110 = sext i32 %6109 to i64
  %6111 = getelementptr inbounds i8, ptr %6094, i64 %6110
  %6112 = load i8, ptr %6111, align 1, !tbaa !15
  %6113 = load ptr, ptr %16, align 8, !tbaa !5
  %6114 = load i32, ptr %18, align 4, !tbaa !14
  %6115 = add nsw i32 %6114, 6
  %6116 = sext i32 %6115 to i64
  %6117 = getelementptr inbounds i8, ptr %6113, i64 %6116
  store i8 %6112, ptr %6117, align 1, !tbaa !15
  %6118 = load ptr, ptr %9, align 8, !tbaa !5
  %6119 = load ptr, ptr %14, align 8, !tbaa !5
  %6120 = load i32, ptr %18, align 4, !tbaa !14
  %6121 = add nsw i32 %6120, 6
  %6122 = sext i32 %6121 to i64
  %6123 = getelementptr inbounds i8, ptr %6119, i64 %6122
  %6124 = load i8, ptr %6123, align 1, !tbaa !15
  %6125 = zext i8 %6124 to i32
  %6126 = load ptr, ptr %15, align 8, !tbaa !5
  %6127 = load i32, ptr %18, align 4, !tbaa !14
  %6128 = add nsw i32 %6127, 6
  %6129 = sext i32 %6128 to i64
  %6130 = getelementptr inbounds i8, ptr %6126, i64 %6129
  %6131 = load i8, ptr %6130, align 1, !tbaa !15
  %6132 = zext i8 %6131 to i32
  %6133 = sub nsw i32 %6125, %6132
  %6134 = sext i32 %6133 to i64
  %6135 = getelementptr inbounds i8, ptr %6118, i64 %6134
  %6136 = load i8, ptr %6135, align 1, !tbaa !15
  %6137 = load ptr, ptr %17, align 8, !tbaa !5
  %6138 = load i32, ptr %18, align 4, !tbaa !14
  %6139 = add nsw i32 %6138, 6
  %6140 = sext i32 %6139 to i64
  %6141 = getelementptr inbounds i8, ptr %6137, i64 %6140
  store i8 %6136, ptr %6141, align 1, !tbaa !15
  %6142 = load ptr, ptr %14, align 8, !tbaa !5
  %6143 = load i32, ptr %18, align 4, !tbaa !14
  %6144 = add nsw i32 %6143, 7
  %6145 = sext i32 %6144 to i64
  %6146 = getelementptr inbounds i8, ptr %6142, i64 %6145
  %6147 = load i8, ptr %6146, align 1, !tbaa !15
  %6148 = zext i8 %6147 to i64
  %6149 = getelementptr inbounds [256 x i8], ptr @r_to_y, i64 0, i64 %6148
  %6150 = load i8, ptr %6149, align 1, !tbaa !15
  %6151 = zext i8 %6150 to i32
  %6152 = load ptr, ptr %13, align 8, !tbaa !5
  %6153 = load i32, ptr %18, align 4, !tbaa !14
  %6154 = add nsw i32 %6153, 7
  %6155 = sext i32 %6154 to i64
  %6156 = getelementptr inbounds i8, ptr %6152, i64 %6155
  %6157 = load i8, ptr %6156, align 1, !tbaa !15
  %6158 = zext i8 %6157 to i64
  %6159 = getelementptr inbounds [256 x i8], ptr @g_to_y, i64 0, i64 %6158
  %6160 = load i8, ptr %6159, align 1, !tbaa !15
  %6161 = zext i8 %6160 to i32
  %6162 = add nsw i32 %6151, %6161
  %6163 = load ptr, ptr %12, align 8, !tbaa !5
  %6164 = load i32, ptr %18, align 4, !tbaa !14
  %6165 = add nsw i32 %6164, 7
  %6166 = sext i32 %6165 to i64
  %6167 = getelementptr inbounds i8, ptr %6163, i64 %6166
  %6168 = load i8, ptr %6167, align 1, !tbaa !15
  %6169 = zext i8 %6168 to i64
  %6170 = getelementptr inbounds [256 x i8], ptr @b_to_y, i64 0, i64 %6169
  %6171 = load i8, ptr %6170, align 1, !tbaa !15
  %6172 = zext i8 %6171 to i32
  %6173 = add nsw i32 %6162, %6172
  %6174 = trunc i32 %6173 to i8
  %6175 = load ptr, ptr %15, align 8, !tbaa !5
  %6176 = load i32, ptr %18, align 4, !tbaa !14
  %6177 = add nsw i32 %6176, 7
  %6178 = sext i32 %6177 to i64
  %6179 = getelementptr inbounds i8, ptr %6175, i64 %6178
  store i8 %6174, ptr %6179, align 1, !tbaa !15
  %6180 = load ptr, ptr %10, align 8, !tbaa !5
  %6181 = load ptr, ptr %12, align 8, !tbaa !5
  %6182 = load i32, ptr %18, align 4, !tbaa !14
  %6183 = add nsw i32 %6182, 7
  %6184 = sext i32 %6183 to i64
  %6185 = getelementptr inbounds i8, ptr %6181, i64 %6184
  %6186 = load i8, ptr %6185, align 1, !tbaa !15
  %6187 = zext i8 %6186 to i32
  %6188 = load ptr, ptr %15, align 8, !tbaa !5
  %6189 = load i32, ptr %18, align 4, !tbaa !14
  %6190 = add nsw i32 %6189, 7
  %6191 = sext i32 %6190 to i64
  %6192 = getelementptr inbounds i8, ptr %6188, i64 %6191
  %6193 = load i8, ptr %6192, align 1, !tbaa !15
  %6194 = zext i8 %6193 to i32
  %6195 = sub nsw i32 %6187, %6194
  %6196 = sext i32 %6195 to i64
  %6197 = getelementptr inbounds i8, ptr %6180, i64 %6196
  %6198 = load i8, ptr %6197, align 1, !tbaa !15
  %6199 = load ptr, ptr %16, align 8, !tbaa !5
  %6200 = load i32, ptr %18, align 4, !tbaa !14
  %6201 = add nsw i32 %6200, 7
  %6202 = sext i32 %6201 to i64
  %6203 = getelementptr inbounds i8, ptr %6199, i64 %6202
  store i8 %6198, ptr %6203, align 1, !tbaa !15
  %6204 = load ptr, ptr %9, align 8, !tbaa !5
  %6205 = load ptr, ptr %14, align 8, !tbaa !5
  %6206 = load i32, ptr %18, align 4, !tbaa !14
  %6207 = add nsw i32 %6206, 7
  %6208 = sext i32 %6207 to i64
  %6209 = getelementptr inbounds i8, ptr %6205, i64 %6208
  %6210 = load i8, ptr %6209, align 1, !tbaa !15
  %6211 = zext i8 %6210 to i32
  %6212 = load ptr, ptr %15, align 8, !tbaa !5
  %6213 = load i32, ptr %18, align 4, !tbaa !14
  %6214 = add nsw i32 %6213, 7
  %6215 = sext i32 %6214 to i64
  %6216 = getelementptr inbounds i8, ptr %6212, i64 %6215
  %6217 = load i8, ptr %6216, align 1, !tbaa !15
  %6218 = zext i8 %6217 to i32
  %6219 = sub nsw i32 %6211, %6218
  %6220 = sext i32 %6219 to i64
  %6221 = getelementptr inbounds i8, ptr %6204, i64 %6220
  %6222 = load i8, ptr %6221, align 1, !tbaa !15
  %6223 = load ptr, ptr %17, align 8, !tbaa !5
  %6224 = load i32, ptr %18, align 4, !tbaa !14
  %6225 = add nsw i32 %6224, 7
  %6226 = sext i32 %6225 to i64
  %6227 = getelementptr inbounds i8, ptr %6223, i64 %6226
  store i8 %6222, ptr %6227, align 1, !tbaa !15
  %6228 = load ptr, ptr %14, align 8, !tbaa !5
  %6229 = load i32, ptr %18, align 4, !tbaa !14
  %6230 = add nsw i32 %6229, 8
  %6231 = sext i32 %6230 to i64
  %6232 = getelementptr inbounds i8, ptr %6228, i64 %6231
  %6233 = load i8, ptr %6232, align 1, !tbaa !15
  %6234 = zext i8 %6233 to i64
  %6235 = getelementptr inbounds [256 x i8], ptr @r_to_y, i64 0, i64 %6234
  %6236 = load i8, ptr %6235, align 1, !tbaa !15
  %6237 = zext i8 %6236 to i32
  %6238 = load ptr, ptr %13, align 8, !tbaa !5
  %6239 = load i32, ptr %18, align 4, !tbaa !14
  %6240 = add nsw i32 %6239, 8
  %6241 = sext i32 %6240 to i64
  %6242 = getelementptr inbounds i8, ptr %6238, i64 %6241
  %6243 = load i8, ptr %6242, align 1, !tbaa !15
  %6244 = zext i8 %6243 to i64
  %6245 = getelementptr inbounds [256 x i8], ptr @g_to_y, i64 0, i64 %6244
  %6246 = load i8, ptr %6245, align 1, !tbaa !15
  %6247 = zext i8 %6246 to i32
  %6248 = add nsw i32 %6237, %6247
  %6249 = load ptr, ptr %12, align 8, !tbaa !5
  %6250 = load i32, ptr %18, align 4, !tbaa !14
  %6251 = add nsw i32 %6250, 8
  %6252 = sext i32 %6251 to i64
  %6253 = getelementptr inbounds i8, ptr %6249, i64 %6252
  %6254 = load i8, ptr %6253, align 1, !tbaa !15
  %6255 = zext i8 %6254 to i64
  %6256 = getelementptr inbounds [256 x i8], ptr @b_to_y, i64 0, i64 %6255
  %6257 = load i8, ptr %6256, align 1, !tbaa !15
  %6258 = zext i8 %6257 to i32
  %6259 = add nsw i32 %6248, %6258
  %6260 = trunc i32 %6259 to i8
  %6261 = load ptr, ptr %15, align 8, !tbaa !5
  %6262 = load i32, ptr %18, align 4, !tbaa !14
  %6263 = add nsw i32 %6262, 8
  %6264 = sext i32 %6263 to i64
  %6265 = getelementptr inbounds i8, ptr %6261, i64 %6264
  store i8 %6260, ptr %6265, align 1, !tbaa !15
  %6266 = load ptr, ptr %10, align 8, !tbaa !5
  %6267 = load ptr, ptr %12, align 8, !tbaa !5
  %6268 = load i32, ptr %18, align 4, !tbaa !14
  %6269 = add nsw i32 %6268, 8
  %6270 = sext i32 %6269 to i64
  %6271 = getelementptr inbounds i8, ptr %6267, i64 %6270
  %6272 = load i8, ptr %6271, align 1, !tbaa !15
  %6273 = zext i8 %6272 to i32
  %6274 = load ptr, ptr %15, align 8, !tbaa !5
  %6275 = load i32, ptr %18, align 4, !tbaa !14
  %6276 = add nsw i32 %6275, 8
  %6277 = sext i32 %6276 to i64
  %6278 = getelementptr inbounds i8, ptr %6274, i64 %6277
  %6279 = load i8, ptr %6278, align 1, !tbaa !15
  %6280 = zext i8 %6279 to i32
  %6281 = sub nsw i32 %6273, %6280
  %6282 = sext i32 %6281 to i64
  %6283 = getelementptr inbounds i8, ptr %6266, i64 %6282
  %6284 = load i8, ptr %6283, align 1, !tbaa !15
  %6285 = load ptr, ptr %16, align 8, !tbaa !5
  %6286 = load i32, ptr %18, align 4, !tbaa !14
  %6287 = add nsw i32 %6286, 8
  %6288 = sext i32 %6287 to i64
  %6289 = getelementptr inbounds i8, ptr %6285, i64 %6288
  store i8 %6284, ptr %6289, align 1, !tbaa !15
  %6290 = load ptr, ptr %9, align 8, !tbaa !5
  %6291 = load ptr, ptr %14, align 8, !tbaa !5
  %6292 = load i32, ptr %18, align 4, !tbaa !14
  %6293 = add nsw i32 %6292, 8
  %6294 = sext i32 %6293 to i64
  %6295 = getelementptr inbounds i8, ptr %6291, i64 %6294
  %6296 = load i8, ptr %6295, align 1, !tbaa !15
  %6297 = zext i8 %6296 to i32
  %6298 = load ptr, ptr %15, align 8, !tbaa !5
  %6299 = load i32, ptr %18, align 4, !tbaa !14
  %6300 = add nsw i32 %6299, 8
  %6301 = sext i32 %6300 to i64
  %6302 = getelementptr inbounds i8, ptr %6298, i64 %6301
  %6303 = load i8, ptr %6302, align 1, !tbaa !15
  %6304 = zext i8 %6303 to i32
  %6305 = sub nsw i32 %6297, %6304
  %6306 = sext i32 %6305 to i64
  %6307 = getelementptr inbounds i8, ptr %6290, i64 %6306
  %6308 = load i8, ptr %6307, align 1, !tbaa !15
  %6309 = load ptr, ptr %17, align 8, !tbaa !5
  %6310 = load i32, ptr %18, align 4, !tbaa !14
  %6311 = add nsw i32 %6310, 8
  %6312 = sext i32 %6311 to i64
  %6313 = getelementptr inbounds i8, ptr %6309, i64 %6312
  store i8 %6308, ptr %6313, align 1, !tbaa !15
  %6314 = load ptr, ptr %14, align 8, !tbaa !5
  %6315 = load i32, ptr %18, align 4, !tbaa !14
  %6316 = add nsw i32 %6315, 9
  %6317 = sext i32 %6316 to i64
  %6318 = getelementptr inbounds i8, ptr %6314, i64 %6317
  %6319 = load i8, ptr %6318, align 1, !tbaa !15
  %6320 = zext i8 %6319 to i64
  %6321 = getelementptr inbounds [256 x i8], ptr @r_to_y, i64 0, i64 %6320
  %6322 = load i8, ptr %6321, align 1, !tbaa !15
  %6323 = zext i8 %6322 to i32
  %6324 = load ptr, ptr %13, align 8, !tbaa !5
  %6325 = load i32, ptr %18, align 4, !tbaa !14
  %6326 = add nsw i32 %6325, 9
  %6327 = sext i32 %6326 to i64
  %6328 = getelementptr inbounds i8, ptr %6324, i64 %6327
  %6329 = load i8, ptr %6328, align 1, !tbaa !15
  %6330 = zext i8 %6329 to i64
  %6331 = getelementptr inbounds [256 x i8], ptr @g_to_y, i64 0, i64 %6330
  %6332 = load i8, ptr %6331, align 1, !tbaa !15
  %6333 = zext i8 %6332 to i32
  %6334 = add nsw i32 %6323, %6333
  %6335 = load ptr, ptr %12, align 8, !tbaa !5
  %6336 = load i32, ptr %18, align 4, !tbaa !14
  %6337 = add nsw i32 %6336, 9
  %6338 = sext i32 %6337 to i64
  %6339 = getelementptr inbounds i8, ptr %6335, i64 %6338
  %6340 = load i8, ptr %6339, align 1, !tbaa !15
  %6341 = zext i8 %6340 to i64
  %6342 = getelementptr inbounds [256 x i8], ptr @b_to_y, i64 0, i64 %6341
  %6343 = load i8, ptr %6342, align 1, !tbaa !15
  %6344 = zext i8 %6343 to i32
  %6345 = add nsw i32 %6334, %6344
  %6346 = trunc i32 %6345 to i8
  %6347 = load ptr, ptr %15, align 8, !tbaa !5
  %6348 = load i32, ptr %18, align 4, !tbaa !14
  %6349 = add nsw i32 %6348, 9
  %6350 = sext i32 %6349 to i64
  %6351 = getelementptr inbounds i8, ptr %6347, i64 %6350
  store i8 %6346, ptr %6351, align 1, !tbaa !15
  %6352 = load ptr, ptr %10, align 8, !tbaa !5
  %6353 = load ptr, ptr %12, align 8, !tbaa !5
  %6354 = load i32, ptr %18, align 4, !tbaa !14
  %6355 = add nsw i32 %6354, 9
  %6356 = sext i32 %6355 to i64
  %6357 = getelementptr inbounds i8, ptr %6353, i64 %6356
  %6358 = load i8, ptr %6357, align 1, !tbaa !15
  %6359 = zext i8 %6358 to i32
  %6360 = load ptr, ptr %15, align 8, !tbaa !5
  %6361 = load i32, ptr %18, align 4, !tbaa !14
  %6362 = add nsw i32 %6361, 9
  %6363 = sext i32 %6362 to i64
  %6364 = getelementptr inbounds i8, ptr %6360, i64 %6363
  %6365 = load i8, ptr %6364, align 1, !tbaa !15
  %6366 = zext i8 %6365 to i32
  %6367 = sub nsw i32 %6359, %6366
  %6368 = sext i32 %6367 to i64
  %6369 = getelementptr inbounds i8, ptr %6352, i64 %6368
  %6370 = load i8, ptr %6369, align 1, !tbaa !15
  %6371 = load ptr, ptr %16, align 8, !tbaa !5
  %6372 = load i32, ptr %18, align 4, !tbaa !14
  %6373 = add nsw i32 %6372, 9
  %6374 = sext i32 %6373 to i64
  %6375 = getelementptr inbounds i8, ptr %6371, i64 %6374
  store i8 %6370, ptr %6375, align 1, !tbaa !15
  %6376 = load ptr, ptr %9, align 8, !tbaa !5
  %6377 = load ptr, ptr %14, align 8, !tbaa !5
  %6378 = load i32, ptr %18, align 4, !tbaa !14
  %6379 = add nsw i32 %6378, 9
  %6380 = sext i32 %6379 to i64
  %6381 = getelementptr inbounds i8, ptr %6377, i64 %6380
  %6382 = load i8, ptr %6381, align 1, !tbaa !15
  %6383 = zext i8 %6382 to i32
  %6384 = load ptr, ptr %15, align 8, !tbaa !5
  %6385 = load i32, ptr %18, align 4, !tbaa !14
  %6386 = add nsw i32 %6385, 9
  %6387 = sext i32 %6386 to i64
  %6388 = getelementptr inbounds i8, ptr %6384, i64 %6387
  %6389 = load i8, ptr %6388, align 1, !tbaa !15
  %6390 = zext i8 %6389 to i32
  %6391 = sub nsw i32 %6383, %6390
  %6392 = sext i32 %6391 to i64
  %6393 = getelementptr inbounds i8, ptr %6376, i64 %6392
  %6394 = load i8, ptr %6393, align 1, !tbaa !15
  %6395 = load ptr, ptr %17, align 8, !tbaa !5
  %6396 = load i32, ptr %18, align 4, !tbaa !14
  %6397 = add nsw i32 %6396, 9
  %6398 = sext i32 %6397 to i64
  %6399 = getelementptr inbounds i8, ptr %6395, i64 %6398
  store i8 %6394, ptr %6399, align 1, !tbaa !15
  br label %12035

6400:                                             ; preds = %5532
  %6401 = load ptr, ptr %4, align 8, !tbaa !5
  %6402 = getelementptr inbounds %struct.MImage, ptr %6401, i32 0, i32 2
  %6403 = load i32, ptr %6402, align 8, !tbaa !13
  %6404 = load i32, ptr %18, align 4, !tbaa !14
  %6405 = sub nsw i32 %6403, %6404
  %6406 = icmp eq i32 %6405, 11
  br i1 %6406, label %6407, label %7354

6407:                                             ; preds = %6400
  %6408 = load ptr, ptr %14, align 8, !tbaa !5
  %6409 = load i32, ptr %18, align 4, !tbaa !14
  %6410 = add nsw i32 %6409, 0
  %6411 = sext i32 %6410 to i64
  %6412 = getelementptr inbounds i8, ptr %6408, i64 %6411
  %6413 = load i8, ptr %6412, align 1, !tbaa !15
  %6414 = zext i8 %6413 to i64
  %6415 = getelementptr inbounds [256 x i8], ptr @r_to_y, i64 0, i64 %6414
  %6416 = load i8, ptr %6415, align 1, !tbaa !15
  %6417 = zext i8 %6416 to i32
  %6418 = load ptr, ptr %13, align 8, !tbaa !5
  %6419 = load i32, ptr %18, align 4, !tbaa !14
  %6420 = add nsw i32 %6419, 0
  %6421 = sext i32 %6420 to i64
  %6422 = getelementptr inbounds i8, ptr %6418, i64 %6421
  %6423 = load i8, ptr %6422, align 1, !tbaa !15
  %6424 = zext i8 %6423 to i64
  %6425 = getelementptr inbounds [256 x i8], ptr @g_to_y, i64 0, i64 %6424
  %6426 = load i8, ptr %6425, align 1, !tbaa !15
  %6427 = zext i8 %6426 to i32
  %6428 = add nsw i32 %6417, %6427
  %6429 = load ptr, ptr %12, align 8, !tbaa !5
  %6430 = load i32, ptr %18, align 4, !tbaa !14
  %6431 = add nsw i32 %6430, 0
  %6432 = sext i32 %6431 to i64
  %6433 = getelementptr inbounds i8, ptr %6429, i64 %6432
  %6434 = load i8, ptr %6433, align 1, !tbaa !15
  %6435 = zext i8 %6434 to i64
  %6436 = getelementptr inbounds [256 x i8], ptr @b_to_y, i64 0, i64 %6435
  %6437 = load i8, ptr %6436, align 1, !tbaa !15
  %6438 = zext i8 %6437 to i32
  %6439 = add nsw i32 %6428, %6438
  %6440 = trunc i32 %6439 to i8
  %6441 = load ptr, ptr %15, align 8, !tbaa !5
  %6442 = load i32, ptr %18, align 4, !tbaa !14
  %6443 = add nsw i32 %6442, 0
  %6444 = sext i32 %6443 to i64
  %6445 = getelementptr inbounds i8, ptr %6441, i64 %6444
  store i8 %6440, ptr %6445, align 1, !tbaa !15
  %6446 = load ptr, ptr %10, align 8, !tbaa !5
  %6447 = load ptr, ptr %12, align 8, !tbaa !5
  %6448 = load i32, ptr %18, align 4, !tbaa !14
  %6449 = add nsw i32 %6448, 0
  %6450 = sext i32 %6449 to i64
  %6451 = getelementptr inbounds i8, ptr %6447, i64 %6450
  %6452 = load i8, ptr %6451, align 1, !tbaa !15
  %6453 = zext i8 %6452 to i32
  %6454 = load ptr, ptr %15, align 8, !tbaa !5
  %6455 = load i32, ptr %18, align 4, !tbaa !14
  %6456 = add nsw i32 %6455, 0
  %6457 = sext i32 %6456 to i64
  %6458 = getelementptr inbounds i8, ptr %6454, i64 %6457
  %6459 = load i8, ptr %6458, align 1, !tbaa !15
  %6460 = zext i8 %6459 to i32
  %6461 = sub nsw i32 %6453, %6460
  %6462 = sext i32 %6461 to i64
  %6463 = getelementptr inbounds i8, ptr %6446, i64 %6462
  %6464 = load i8, ptr %6463, align 1, !tbaa !15
  %6465 = load ptr, ptr %16, align 8, !tbaa !5
  %6466 = load i32, ptr %18, align 4, !tbaa !14
  %6467 = add nsw i32 %6466, 0
  %6468 = sext i32 %6467 to i64
  %6469 = getelementptr inbounds i8, ptr %6465, i64 %6468
  store i8 %6464, ptr %6469, align 1, !tbaa !15
  %6470 = load ptr, ptr %9, align 8, !tbaa !5
  %6471 = load ptr, ptr %14, align 8, !tbaa !5
  %6472 = load i32, ptr %18, align 4, !tbaa !14
  %6473 = add nsw i32 %6472, 0
  %6474 = sext i32 %6473 to i64
  %6475 = getelementptr inbounds i8, ptr %6471, i64 %6474
  %6476 = load i8, ptr %6475, align 1, !tbaa !15
  %6477 = zext i8 %6476 to i32
  %6478 = load ptr, ptr %15, align 8, !tbaa !5
  %6479 = load i32, ptr %18, align 4, !tbaa !14
  %6480 = add nsw i32 %6479, 0
  %6481 = sext i32 %6480 to i64
  %6482 = getelementptr inbounds i8, ptr %6478, i64 %6481
  %6483 = load i8, ptr %6482, align 1, !tbaa !15
  %6484 = zext i8 %6483 to i32
  %6485 = sub nsw i32 %6477, %6484
  %6486 = sext i32 %6485 to i64
  %6487 = getelementptr inbounds i8, ptr %6470, i64 %6486
  %6488 = load i8, ptr %6487, align 1, !tbaa !15
  %6489 = load ptr, ptr %17, align 8, !tbaa !5
  %6490 = load i32, ptr %18, align 4, !tbaa !14
  %6491 = add nsw i32 %6490, 0
  %6492 = sext i32 %6491 to i64
  %6493 = getelementptr inbounds i8, ptr %6489, i64 %6492
  store i8 %6488, ptr %6493, align 1, !tbaa !15
  %6494 = load ptr, ptr %14, align 8, !tbaa !5
  %6495 = load i32, ptr %18, align 4, !tbaa !14
  %6496 = add nsw i32 %6495, 1
  %6497 = sext i32 %6496 to i64
  %6498 = getelementptr inbounds i8, ptr %6494, i64 %6497
  %6499 = load i8, ptr %6498, align 1, !tbaa !15
  %6500 = zext i8 %6499 to i64
  %6501 = getelementptr inbounds [256 x i8], ptr @r_to_y, i64 0, i64 %6500
  %6502 = load i8, ptr %6501, align 1, !tbaa !15
  %6503 = zext i8 %6502 to i32
  %6504 = load ptr, ptr %13, align 8, !tbaa !5
  %6505 = load i32, ptr %18, align 4, !tbaa !14
  %6506 = add nsw i32 %6505, 1
  %6507 = sext i32 %6506 to i64
  %6508 = getelementptr inbounds i8, ptr %6504, i64 %6507
  %6509 = load i8, ptr %6508, align 1, !tbaa !15
  %6510 = zext i8 %6509 to i64
  %6511 = getelementptr inbounds [256 x i8], ptr @g_to_y, i64 0, i64 %6510
  %6512 = load i8, ptr %6511, align 1, !tbaa !15
  %6513 = zext i8 %6512 to i32
  %6514 = add nsw i32 %6503, %6513
  %6515 = load ptr, ptr %12, align 8, !tbaa !5
  %6516 = load i32, ptr %18, align 4, !tbaa !14
  %6517 = add nsw i32 %6516, 1
  %6518 = sext i32 %6517 to i64
  %6519 = getelementptr inbounds i8, ptr %6515, i64 %6518
  %6520 = load i8, ptr %6519, align 1, !tbaa !15
  %6521 = zext i8 %6520 to i64
  %6522 = getelementptr inbounds [256 x i8], ptr @b_to_y, i64 0, i64 %6521
  %6523 = load i8, ptr %6522, align 1, !tbaa !15
  %6524 = zext i8 %6523 to i32
  %6525 = add nsw i32 %6514, %6524
  %6526 = trunc i32 %6525 to i8
  %6527 = load ptr, ptr %15, align 8, !tbaa !5
  %6528 = load i32, ptr %18, align 4, !tbaa !14
  %6529 = add nsw i32 %6528, 1
  %6530 = sext i32 %6529 to i64
  %6531 = getelementptr inbounds i8, ptr %6527, i64 %6530
  store i8 %6526, ptr %6531, align 1, !tbaa !15
  %6532 = load ptr, ptr %10, align 8, !tbaa !5
  %6533 = load ptr, ptr %12, align 8, !tbaa !5
  %6534 = load i32, ptr %18, align 4, !tbaa !14
  %6535 = add nsw i32 %6534, 1
  %6536 = sext i32 %6535 to i64
  %6537 = getelementptr inbounds i8, ptr %6533, i64 %6536
  %6538 = load i8, ptr %6537, align 1, !tbaa !15
  %6539 = zext i8 %6538 to i32
  %6540 = load ptr, ptr %15, align 8, !tbaa !5
  %6541 = load i32, ptr %18, align 4, !tbaa !14
  %6542 = add nsw i32 %6541, 1
  %6543 = sext i32 %6542 to i64
  %6544 = getelementptr inbounds i8, ptr %6540, i64 %6543
  %6545 = load i8, ptr %6544, align 1, !tbaa !15
  %6546 = zext i8 %6545 to i32
  %6547 = sub nsw i32 %6539, %6546
  %6548 = sext i32 %6547 to i64
  %6549 = getelementptr inbounds i8, ptr %6532, i64 %6548
  %6550 = load i8, ptr %6549, align 1, !tbaa !15
  %6551 = load ptr, ptr %16, align 8, !tbaa !5
  %6552 = load i32, ptr %18, align 4, !tbaa !14
  %6553 = add nsw i32 %6552, 1
  %6554 = sext i32 %6553 to i64
  %6555 = getelementptr inbounds i8, ptr %6551, i64 %6554
  store i8 %6550, ptr %6555, align 1, !tbaa !15
  %6556 = load ptr, ptr %9, align 8, !tbaa !5
  %6557 = load ptr, ptr %14, align 8, !tbaa !5
  %6558 = load i32, ptr %18, align 4, !tbaa !14
  %6559 = add nsw i32 %6558, 1
  %6560 = sext i32 %6559 to i64
  %6561 = getelementptr inbounds i8, ptr %6557, i64 %6560
  %6562 = load i8, ptr %6561, align 1, !tbaa !15
  %6563 = zext i8 %6562 to i32
  %6564 = load ptr, ptr %15, align 8, !tbaa !5
  %6565 = load i32, ptr %18, align 4, !tbaa !14
  %6566 = add nsw i32 %6565, 1
  %6567 = sext i32 %6566 to i64
  %6568 = getelementptr inbounds i8, ptr %6564, i64 %6567
  %6569 = load i8, ptr %6568, align 1, !tbaa !15
  %6570 = zext i8 %6569 to i32
  %6571 = sub nsw i32 %6563, %6570
  %6572 = sext i32 %6571 to i64
  %6573 = getelementptr inbounds i8, ptr %6556, i64 %6572
  %6574 = load i8, ptr %6573, align 1, !tbaa !15
  %6575 = load ptr, ptr %17, align 8, !tbaa !5
  %6576 = load i32, ptr %18, align 4, !tbaa !14
  %6577 = add nsw i32 %6576, 1
  %6578 = sext i32 %6577 to i64
  %6579 = getelementptr inbounds i8, ptr %6575, i64 %6578
  store i8 %6574, ptr %6579, align 1, !tbaa !15
  %6580 = load ptr, ptr %14, align 8, !tbaa !5
  %6581 = load i32, ptr %18, align 4, !tbaa !14
  %6582 = add nsw i32 %6581, 2
  %6583 = sext i32 %6582 to i64
  %6584 = getelementptr inbounds i8, ptr %6580, i64 %6583
  %6585 = load i8, ptr %6584, align 1, !tbaa !15
  %6586 = zext i8 %6585 to i64
  %6587 = getelementptr inbounds [256 x i8], ptr @r_to_y, i64 0, i64 %6586
  %6588 = load i8, ptr %6587, align 1, !tbaa !15
  %6589 = zext i8 %6588 to i32
  %6590 = load ptr, ptr %13, align 8, !tbaa !5
  %6591 = load i32, ptr %18, align 4, !tbaa !14
  %6592 = add nsw i32 %6591, 2
  %6593 = sext i32 %6592 to i64
  %6594 = getelementptr inbounds i8, ptr %6590, i64 %6593
  %6595 = load i8, ptr %6594, align 1, !tbaa !15
  %6596 = zext i8 %6595 to i64
  %6597 = getelementptr inbounds [256 x i8], ptr @g_to_y, i64 0, i64 %6596
  %6598 = load i8, ptr %6597, align 1, !tbaa !15
  %6599 = zext i8 %6598 to i32
  %6600 = add nsw i32 %6589, %6599
  %6601 = load ptr, ptr %12, align 8, !tbaa !5
  %6602 = load i32, ptr %18, align 4, !tbaa !14
  %6603 = add nsw i32 %6602, 2
  %6604 = sext i32 %6603 to i64
  %6605 = getelementptr inbounds i8, ptr %6601, i64 %6604
  %6606 = load i8, ptr %6605, align 1, !tbaa !15
  %6607 = zext i8 %6606 to i64
  %6608 = getelementptr inbounds [256 x i8], ptr @b_to_y, i64 0, i64 %6607
  %6609 = load i8, ptr %6608, align 1, !tbaa !15
  %6610 = zext i8 %6609 to i32
  %6611 = add nsw i32 %6600, %6610
  %6612 = trunc i32 %6611 to i8
  %6613 = load ptr, ptr %15, align 8, !tbaa !5
  %6614 = load i32, ptr %18, align 4, !tbaa !14
  %6615 = add nsw i32 %6614, 2
  %6616 = sext i32 %6615 to i64
  %6617 = getelementptr inbounds i8, ptr %6613, i64 %6616
  store i8 %6612, ptr %6617, align 1, !tbaa !15
  %6618 = load ptr, ptr %10, align 8, !tbaa !5
  %6619 = load ptr, ptr %12, align 8, !tbaa !5
  %6620 = load i32, ptr %18, align 4, !tbaa !14
  %6621 = add nsw i32 %6620, 2
  %6622 = sext i32 %6621 to i64
  %6623 = getelementptr inbounds i8, ptr %6619, i64 %6622
  %6624 = load i8, ptr %6623, align 1, !tbaa !15
  %6625 = zext i8 %6624 to i32
  %6626 = load ptr, ptr %15, align 8, !tbaa !5
  %6627 = load i32, ptr %18, align 4, !tbaa !14
  %6628 = add nsw i32 %6627, 2
  %6629 = sext i32 %6628 to i64
  %6630 = getelementptr inbounds i8, ptr %6626, i64 %6629
  %6631 = load i8, ptr %6630, align 1, !tbaa !15
  %6632 = zext i8 %6631 to i32
  %6633 = sub nsw i32 %6625, %6632
  %6634 = sext i32 %6633 to i64
  %6635 = getelementptr inbounds i8, ptr %6618, i64 %6634
  %6636 = load i8, ptr %6635, align 1, !tbaa !15
  %6637 = load ptr, ptr %16, align 8, !tbaa !5
  %6638 = load i32, ptr %18, align 4, !tbaa !14
  %6639 = add nsw i32 %6638, 2
  %6640 = sext i32 %6639 to i64
  %6641 = getelementptr inbounds i8, ptr %6637, i64 %6640
  store i8 %6636, ptr %6641, align 1, !tbaa !15
  %6642 = load ptr, ptr %9, align 8, !tbaa !5
  %6643 = load ptr, ptr %14, align 8, !tbaa !5
  %6644 = load i32, ptr %18, align 4, !tbaa !14
  %6645 = add nsw i32 %6644, 2
  %6646 = sext i32 %6645 to i64
  %6647 = getelementptr inbounds i8, ptr %6643, i64 %6646
  %6648 = load i8, ptr %6647, align 1, !tbaa !15
  %6649 = zext i8 %6648 to i32
  %6650 = load ptr, ptr %15, align 8, !tbaa !5
  %6651 = load i32, ptr %18, align 4, !tbaa !14
  %6652 = add nsw i32 %6651, 2
  %6653 = sext i32 %6652 to i64
  %6654 = getelementptr inbounds i8, ptr %6650, i64 %6653
  %6655 = load i8, ptr %6654, align 1, !tbaa !15
  %6656 = zext i8 %6655 to i32
  %6657 = sub nsw i32 %6649, %6656
  %6658 = sext i32 %6657 to i64
  %6659 = getelementptr inbounds i8, ptr %6642, i64 %6658
  %6660 = load i8, ptr %6659, align 1, !tbaa !15
  %6661 = load ptr, ptr %17, align 8, !tbaa !5
  %6662 = load i32, ptr %18, align 4, !tbaa !14
  %6663 = add nsw i32 %6662, 2
  %6664 = sext i32 %6663 to i64
  %6665 = getelementptr inbounds i8, ptr %6661, i64 %6664
  store i8 %6660, ptr %6665, align 1, !tbaa !15
  %6666 = load ptr, ptr %14, align 8, !tbaa !5
  %6667 = load i32, ptr %18, align 4, !tbaa !14
  %6668 = add nsw i32 %6667, 3
  %6669 = sext i32 %6668 to i64
  %6670 = getelementptr inbounds i8, ptr %6666, i64 %6669
  %6671 = load i8, ptr %6670, align 1, !tbaa !15
  %6672 = zext i8 %6671 to i64
  %6673 = getelementptr inbounds [256 x i8], ptr @r_to_y, i64 0, i64 %6672
  %6674 = load i8, ptr %6673, align 1, !tbaa !15
  %6675 = zext i8 %6674 to i32
  %6676 = load ptr, ptr %13, align 8, !tbaa !5
  %6677 = load i32, ptr %18, align 4, !tbaa !14
  %6678 = add nsw i32 %6677, 3
  %6679 = sext i32 %6678 to i64
  %6680 = getelementptr inbounds i8, ptr %6676, i64 %6679
  %6681 = load i8, ptr %6680, align 1, !tbaa !15
  %6682 = zext i8 %6681 to i64
  %6683 = getelementptr inbounds [256 x i8], ptr @g_to_y, i64 0, i64 %6682
  %6684 = load i8, ptr %6683, align 1, !tbaa !15
  %6685 = zext i8 %6684 to i32
  %6686 = add nsw i32 %6675, %6685
  %6687 = load ptr, ptr %12, align 8, !tbaa !5
  %6688 = load i32, ptr %18, align 4, !tbaa !14
  %6689 = add nsw i32 %6688, 3
  %6690 = sext i32 %6689 to i64
  %6691 = getelementptr inbounds i8, ptr %6687, i64 %6690
  %6692 = load i8, ptr %6691, align 1, !tbaa !15
  %6693 = zext i8 %6692 to i64
  %6694 = getelementptr inbounds [256 x i8], ptr @b_to_y, i64 0, i64 %6693
  %6695 = load i8, ptr %6694, align 1, !tbaa !15
  %6696 = zext i8 %6695 to i32
  %6697 = add nsw i32 %6686, %6696
  %6698 = trunc i32 %6697 to i8
  %6699 = load ptr, ptr %15, align 8, !tbaa !5
  %6700 = load i32, ptr %18, align 4, !tbaa !14
  %6701 = add nsw i32 %6700, 3
  %6702 = sext i32 %6701 to i64
  %6703 = getelementptr inbounds i8, ptr %6699, i64 %6702
  store i8 %6698, ptr %6703, align 1, !tbaa !15
  %6704 = load ptr, ptr %10, align 8, !tbaa !5
  %6705 = load ptr, ptr %12, align 8, !tbaa !5
  %6706 = load i32, ptr %18, align 4, !tbaa !14
  %6707 = add nsw i32 %6706, 3
  %6708 = sext i32 %6707 to i64
  %6709 = getelementptr inbounds i8, ptr %6705, i64 %6708
  %6710 = load i8, ptr %6709, align 1, !tbaa !15
  %6711 = zext i8 %6710 to i32
  %6712 = load ptr, ptr %15, align 8, !tbaa !5
  %6713 = load i32, ptr %18, align 4, !tbaa !14
  %6714 = add nsw i32 %6713, 3
  %6715 = sext i32 %6714 to i64
  %6716 = getelementptr inbounds i8, ptr %6712, i64 %6715
  %6717 = load i8, ptr %6716, align 1, !tbaa !15
  %6718 = zext i8 %6717 to i32
  %6719 = sub nsw i32 %6711, %6718
  %6720 = sext i32 %6719 to i64
  %6721 = getelementptr inbounds i8, ptr %6704, i64 %6720
  %6722 = load i8, ptr %6721, align 1, !tbaa !15
  %6723 = load ptr, ptr %16, align 8, !tbaa !5
  %6724 = load i32, ptr %18, align 4, !tbaa !14
  %6725 = add nsw i32 %6724, 3
  %6726 = sext i32 %6725 to i64
  %6727 = getelementptr inbounds i8, ptr %6723, i64 %6726
  store i8 %6722, ptr %6727, align 1, !tbaa !15
  %6728 = load ptr, ptr %9, align 8, !tbaa !5
  %6729 = load ptr, ptr %14, align 8, !tbaa !5
  %6730 = load i32, ptr %18, align 4, !tbaa !14
  %6731 = add nsw i32 %6730, 3
  %6732 = sext i32 %6731 to i64
  %6733 = getelementptr inbounds i8, ptr %6729, i64 %6732
  %6734 = load i8, ptr %6733, align 1, !tbaa !15
  %6735 = zext i8 %6734 to i32
  %6736 = load ptr, ptr %15, align 8, !tbaa !5
  %6737 = load i32, ptr %18, align 4, !tbaa !14
  %6738 = add nsw i32 %6737, 3
  %6739 = sext i32 %6738 to i64
  %6740 = getelementptr inbounds i8, ptr %6736, i64 %6739
  %6741 = load i8, ptr %6740, align 1, !tbaa !15
  %6742 = zext i8 %6741 to i32
  %6743 = sub nsw i32 %6735, %6742
  %6744 = sext i32 %6743 to i64
  %6745 = getelementptr inbounds i8, ptr %6728, i64 %6744
  %6746 = load i8, ptr %6745, align 1, !tbaa !15
  %6747 = load ptr, ptr %17, align 8, !tbaa !5
  %6748 = load i32, ptr %18, align 4, !tbaa !14
  %6749 = add nsw i32 %6748, 3
  %6750 = sext i32 %6749 to i64
  %6751 = getelementptr inbounds i8, ptr %6747, i64 %6750
  store i8 %6746, ptr %6751, align 1, !tbaa !15
  %6752 = load ptr, ptr %14, align 8, !tbaa !5
  %6753 = load i32, ptr %18, align 4, !tbaa !14
  %6754 = add nsw i32 %6753, 4
  %6755 = sext i32 %6754 to i64
  %6756 = getelementptr inbounds i8, ptr %6752, i64 %6755
  %6757 = load i8, ptr %6756, align 1, !tbaa !15
  %6758 = zext i8 %6757 to i64
  %6759 = getelementptr inbounds [256 x i8], ptr @r_to_y, i64 0, i64 %6758
  %6760 = load i8, ptr %6759, align 1, !tbaa !15
  %6761 = zext i8 %6760 to i32
  %6762 = load ptr, ptr %13, align 8, !tbaa !5
  %6763 = load i32, ptr %18, align 4, !tbaa !14
  %6764 = add nsw i32 %6763, 4
  %6765 = sext i32 %6764 to i64
  %6766 = getelementptr inbounds i8, ptr %6762, i64 %6765
  %6767 = load i8, ptr %6766, align 1, !tbaa !15
  %6768 = zext i8 %6767 to i64
  %6769 = getelementptr inbounds [256 x i8], ptr @g_to_y, i64 0, i64 %6768
  %6770 = load i8, ptr %6769, align 1, !tbaa !15
  %6771 = zext i8 %6770 to i32
  %6772 = add nsw i32 %6761, %6771
  %6773 = load ptr, ptr %12, align 8, !tbaa !5
  %6774 = load i32, ptr %18, align 4, !tbaa !14
  %6775 = add nsw i32 %6774, 4
  %6776 = sext i32 %6775 to i64
  %6777 = getelementptr inbounds i8, ptr %6773, i64 %6776
  %6778 = load i8, ptr %6777, align 1, !tbaa !15
  %6779 = zext i8 %6778 to i64
  %6780 = getelementptr inbounds [256 x i8], ptr @b_to_y, i64 0, i64 %6779
  %6781 = load i8, ptr %6780, align 1, !tbaa !15
  %6782 = zext i8 %6781 to i32
  %6783 = add nsw i32 %6772, %6782
  %6784 = trunc i32 %6783 to i8
  %6785 = load ptr, ptr %15, align 8, !tbaa !5
  %6786 = load i32, ptr %18, align 4, !tbaa !14
  %6787 = add nsw i32 %6786, 4
  %6788 = sext i32 %6787 to i64
  %6789 = getelementptr inbounds i8, ptr %6785, i64 %6788
  store i8 %6784, ptr %6789, align 1, !tbaa !15
  %6790 = load ptr, ptr %10, align 8, !tbaa !5
  %6791 = load ptr, ptr %12, align 8, !tbaa !5
  %6792 = load i32, ptr %18, align 4, !tbaa !14
  %6793 = add nsw i32 %6792, 4
  %6794 = sext i32 %6793 to i64
  %6795 = getelementptr inbounds i8, ptr %6791, i64 %6794
  %6796 = load i8, ptr %6795, align 1, !tbaa !15
  %6797 = zext i8 %6796 to i32
  %6798 = load ptr, ptr %15, align 8, !tbaa !5
  %6799 = load i32, ptr %18, align 4, !tbaa !14
  %6800 = add nsw i32 %6799, 4
  %6801 = sext i32 %6800 to i64
  %6802 = getelementptr inbounds i8, ptr %6798, i64 %6801
  %6803 = load i8, ptr %6802, align 1, !tbaa !15
  %6804 = zext i8 %6803 to i32
  %6805 = sub nsw i32 %6797, %6804
  %6806 = sext i32 %6805 to i64
  %6807 = getelementptr inbounds i8, ptr %6790, i64 %6806
  %6808 = load i8, ptr %6807, align 1, !tbaa !15
  %6809 = load ptr, ptr %16, align 8, !tbaa !5
  %6810 = load i32, ptr %18, align 4, !tbaa !14
  %6811 = add nsw i32 %6810, 4
  %6812 = sext i32 %6811 to i64
  %6813 = getelementptr inbounds i8, ptr %6809, i64 %6812
  store i8 %6808, ptr %6813, align 1, !tbaa !15
  %6814 = load ptr, ptr %9, align 8, !tbaa !5
  %6815 = load ptr, ptr %14, align 8, !tbaa !5
  %6816 = load i32, ptr %18, align 4, !tbaa !14
  %6817 = add nsw i32 %6816, 4
  %6818 = sext i32 %6817 to i64
  %6819 = getelementptr inbounds i8, ptr %6815, i64 %6818
  %6820 = load i8, ptr %6819, align 1, !tbaa !15
  %6821 = zext i8 %6820 to i32
  %6822 = load ptr, ptr %15, align 8, !tbaa !5
  %6823 = load i32, ptr %18, align 4, !tbaa !14
  %6824 = add nsw i32 %6823, 4
  %6825 = sext i32 %6824 to i64
  %6826 = getelementptr inbounds i8, ptr %6822, i64 %6825
  %6827 = load i8, ptr %6826, align 1, !tbaa !15
  %6828 = zext i8 %6827 to i32
  %6829 = sub nsw i32 %6821, %6828
  %6830 = sext i32 %6829 to i64
  %6831 = getelementptr inbounds i8, ptr %6814, i64 %6830
  %6832 = load i8, ptr %6831, align 1, !tbaa !15
  %6833 = load ptr, ptr %17, align 8, !tbaa !5
  %6834 = load i32, ptr %18, align 4, !tbaa !14
  %6835 = add nsw i32 %6834, 4
  %6836 = sext i32 %6835 to i64
  %6837 = getelementptr inbounds i8, ptr %6833, i64 %6836
  store i8 %6832, ptr %6837, align 1, !tbaa !15
  %6838 = load ptr, ptr %14, align 8, !tbaa !5
  %6839 = load i32, ptr %18, align 4, !tbaa !14
  %6840 = add nsw i32 %6839, 5
  %6841 = sext i32 %6840 to i64
  %6842 = getelementptr inbounds i8, ptr %6838, i64 %6841
  %6843 = load i8, ptr %6842, align 1, !tbaa !15
  %6844 = zext i8 %6843 to i64
  %6845 = getelementptr inbounds [256 x i8], ptr @r_to_y, i64 0, i64 %6844
  %6846 = load i8, ptr %6845, align 1, !tbaa !15
  %6847 = zext i8 %6846 to i32
  %6848 = load ptr, ptr %13, align 8, !tbaa !5
  %6849 = load i32, ptr %18, align 4, !tbaa !14
  %6850 = add nsw i32 %6849, 5
  %6851 = sext i32 %6850 to i64
  %6852 = getelementptr inbounds i8, ptr %6848, i64 %6851
  %6853 = load i8, ptr %6852, align 1, !tbaa !15
  %6854 = zext i8 %6853 to i64
  %6855 = getelementptr inbounds [256 x i8], ptr @g_to_y, i64 0, i64 %6854
  %6856 = load i8, ptr %6855, align 1, !tbaa !15
  %6857 = zext i8 %6856 to i32
  %6858 = add nsw i32 %6847, %6857
  %6859 = load ptr, ptr %12, align 8, !tbaa !5
  %6860 = load i32, ptr %18, align 4, !tbaa !14
  %6861 = add nsw i32 %6860, 5
  %6862 = sext i32 %6861 to i64
  %6863 = getelementptr inbounds i8, ptr %6859, i64 %6862
  %6864 = load i8, ptr %6863, align 1, !tbaa !15
  %6865 = zext i8 %6864 to i64
  %6866 = getelementptr inbounds [256 x i8], ptr @b_to_y, i64 0, i64 %6865
  %6867 = load i8, ptr %6866, align 1, !tbaa !15
  %6868 = zext i8 %6867 to i32
  %6869 = add nsw i32 %6858, %6868
  %6870 = trunc i32 %6869 to i8
  %6871 = load ptr, ptr %15, align 8, !tbaa !5
  %6872 = load i32, ptr %18, align 4, !tbaa !14
  %6873 = add nsw i32 %6872, 5
  %6874 = sext i32 %6873 to i64
  %6875 = getelementptr inbounds i8, ptr %6871, i64 %6874
  store i8 %6870, ptr %6875, align 1, !tbaa !15
  %6876 = load ptr, ptr %10, align 8, !tbaa !5
  %6877 = load ptr, ptr %12, align 8, !tbaa !5
  %6878 = load i32, ptr %18, align 4, !tbaa !14
  %6879 = add nsw i32 %6878, 5
  %6880 = sext i32 %6879 to i64
  %6881 = getelementptr inbounds i8, ptr %6877, i64 %6880
  %6882 = load i8, ptr %6881, align 1, !tbaa !15
  %6883 = zext i8 %6882 to i32
  %6884 = load ptr, ptr %15, align 8, !tbaa !5
  %6885 = load i32, ptr %18, align 4, !tbaa !14
  %6886 = add nsw i32 %6885, 5
  %6887 = sext i32 %6886 to i64
  %6888 = getelementptr inbounds i8, ptr %6884, i64 %6887
  %6889 = load i8, ptr %6888, align 1, !tbaa !15
  %6890 = zext i8 %6889 to i32
  %6891 = sub nsw i32 %6883, %6890
  %6892 = sext i32 %6891 to i64
  %6893 = getelementptr inbounds i8, ptr %6876, i64 %6892
  %6894 = load i8, ptr %6893, align 1, !tbaa !15
  %6895 = load ptr, ptr %16, align 8, !tbaa !5
  %6896 = load i32, ptr %18, align 4, !tbaa !14
  %6897 = add nsw i32 %6896, 5
  %6898 = sext i32 %6897 to i64
  %6899 = getelementptr inbounds i8, ptr %6895, i64 %6898
  store i8 %6894, ptr %6899, align 1, !tbaa !15
  %6900 = load ptr, ptr %9, align 8, !tbaa !5
  %6901 = load ptr, ptr %14, align 8, !tbaa !5
  %6902 = load i32, ptr %18, align 4, !tbaa !14
  %6903 = add nsw i32 %6902, 5
  %6904 = sext i32 %6903 to i64
  %6905 = getelementptr inbounds i8, ptr %6901, i64 %6904
  %6906 = load i8, ptr %6905, align 1, !tbaa !15
  %6907 = zext i8 %6906 to i32
  %6908 = load ptr, ptr %15, align 8, !tbaa !5
  %6909 = load i32, ptr %18, align 4, !tbaa !14
  %6910 = add nsw i32 %6909, 5
  %6911 = sext i32 %6910 to i64
  %6912 = getelementptr inbounds i8, ptr %6908, i64 %6911
  %6913 = load i8, ptr %6912, align 1, !tbaa !15
  %6914 = zext i8 %6913 to i32
  %6915 = sub nsw i32 %6907, %6914
  %6916 = sext i32 %6915 to i64
  %6917 = getelementptr inbounds i8, ptr %6900, i64 %6916
  %6918 = load i8, ptr %6917, align 1, !tbaa !15
  %6919 = load ptr, ptr %17, align 8, !tbaa !5
  %6920 = load i32, ptr %18, align 4, !tbaa !14
  %6921 = add nsw i32 %6920, 5
  %6922 = sext i32 %6921 to i64
  %6923 = getelementptr inbounds i8, ptr %6919, i64 %6922
  store i8 %6918, ptr %6923, align 1, !tbaa !15
  %6924 = load ptr, ptr %14, align 8, !tbaa !5
  %6925 = load i32, ptr %18, align 4, !tbaa !14
  %6926 = add nsw i32 %6925, 6
  %6927 = sext i32 %6926 to i64
  %6928 = getelementptr inbounds i8, ptr %6924, i64 %6927
  %6929 = load i8, ptr %6928, align 1, !tbaa !15
  %6930 = zext i8 %6929 to i64
  %6931 = getelementptr inbounds [256 x i8], ptr @r_to_y, i64 0, i64 %6930
  %6932 = load i8, ptr %6931, align 1, !tbaa !15
  %6933 = zext i8 %6932 to i32
  %6934 = load ptr, ptr %13, align 8, !tbaa !5
  %6935 = load i32, ptr %18, align 4, !tbaa !14
  %6936 = add nsw i32 %6935, 6
  %6937 = sext i32 %6936 to i64
  %6938 = getelementptr inbounds i8, ptr %6934, i64 %6937
  %6939 = load i8, ptr %6938, align 1, !tbaa !15
  %6940 = zext i8 %6939 to i64
  %6941 = getelementptr inbounds [256 x i8], ptr @g_to_y, i64 0, i64 %6940
  %6942 = load i8, ptr %6941, align 1, !tbaa !15
  %6943 = zext i8 %6942 to i32
  %6944 = add nsw i32 %6933, %6943
  %6945 = load ptr, ptr %12, align 8, !tbaa !5
  %6946 = load i32, ptr %18, align 4, !tbaa !14
  %6947 = add nsw i32 %6946, 6
  %6948 = sext i32 %6947 to i64
  %6949 = getelementptr inbounds i8, ptr %6945, i64 %6948
  %6950 = load i8, ptr %6949, align 1, !tbaa !15
  %6951 = zext i8 %6950 to i64
  %6952 = getelementptr inbounds [256 x i8], ptr @b_to_y, i64 0, i64 %6951
  %6953 = load i8, ptr %6952, align 1, !tbaa !15
  %6954 = zext i8 %6953 to i32
  %6955 = add nsw i32 %6944, %6954
  %6956 = trunc i32 %6955 to i8
  %6957 = load ptr, ptr %15, align 8, !tbaa !5
  %6958 = load i32, ptr %18, align 4, !tbaa !14
  %6959 = add nsw i32 %6958, 6
  %6960 = sext i32 %6959 to i64
  %6961 = getelementptr inbounds i8, ptr %6957, i64 %6960
  store i8 %6956, ptr %6961, align 1, !tbaa !15
  %6962 = load ptr, ptr %10, align 8, !tbaa !5
  %6963 = load ptr, ptr %12, align 8, !tbaa !5
  %6964 = load i32, ptr %18, align 4, !tbaa !14
  %6965 = add nsw i32 %6964, 6
  %6966 = sext i32 %6965 to i64
  %6967 = getelementptr inbounds i8, ptr %6963, i64 %6966
  %6968 = load i8, ptr %6967, align 1, !tbaa !15
  %6969 = zext i8 %6968 to i32
  %6970 = load ptr, ptr %15, align 8, !tbaa !5
  %6971 = load i32, ptr %18, align 4, !tbaa !14
  %6972 = add nsw i32 %6971, 6
  %6973 = sext i32 %6972 to i64
  %6974 = getelementptr inbounds i8, ptr %6970, i64 %6973
  %6975 = load i8, ptr %6974, align 1, !tbaa !15
  %6976 = zext i8 %6975 to i32
  %6977 = sub nsw i32 %6969, %6976
  %6978 = sext i32 %6977 to i64
  %6979 = getelementptr inbounds i8, ptr %6962, i64 %6978
  %6980 = load i8, ptr %6979, align 1, !tbaa !15
  %6981 = load ptr, ptr %16, align 8, !tbaa !5
  %6982 = load i32, ptr %18, align 4, !tbaa !14
  %6983 = add nsw i32 %6982, 6
  %6984 = sext i32 %6983 to i64
  %6985 = getelementptr inbounds i8, ptr %6981, i64 %6984
  store i8 %6980, ptr %6985, align 1, !tbaa !15
  %6986 = load ptr, ptr %9, align 8, !tbaa !5
  %6987 = load ptr, ptr %14, align 8, !tbaa !5
  %6988 = load i32, ptr %18, align 4, !tbaa !14
  %6989 = add nsw i32 %6988, 6
  %6990 = sext i32 %6989 to i64
  %6991 = getelementptr inbounds i8, ptr %6987, i64 %6990
  %6992 = load i8, ptr %6991, align 1, !tbaa !15
  %6993 = zext i8 %6992 to i32
  %6994 = load ptr, ptr %15, align 8, !tbaa !5
  %6995 = load i32, ptr %18, align 4, !tbaa !14
  %6996 = add nsw i32 %6995, 6
  %6997 = sext i32 %6996 to i64
  %6998 = getelementptr inbounds i8, ptr %6994, i64 %6997
  %6999 = load i8, ptr %6998, align 1, !tbaa !15
  %7000 = zext i8 %6999 to i32
  %7001 = sub nsw i32 %6993, %7000
  %7002 = sext i32 %7001 to i64
  %7003 = getelementptr inbounds i8, ptr %6986, i64 %7002
  %7004 = load i8, ptr %7003, align 1, !tbaa !15
  %7005 = load ptr, ptr %17, align 8, !tbaa !5
  %7006 = load i32, ptr %18, align 4, !tbaa !14
  %7007 = add nsw i32 %7006, 6
  %7008 = sext i32 %7007 to i64
  %7009 = getelementptr inbounds i8, ptr %7005, i64 %7008
  store i8 %7004, ptr %7009, align 1, !tbaa !15
  %7010 = load ptr, ptr %14, align 8, !tbaa !5
  %7011 = load i32, ptr %18, align 4, !tbaa !14
  %7012 = add nsw i32 %7011, 7
  %7013 = sext i32 %7012 to i64
  %7014 = getelementptr inbounds i8, ptr %7010, i64 %7013
  %7015 = load i8, ptr %7014, align 1, !tbaa !15
  %7016 = zext i8 %7015 to i64
  %7017 = getelementptr inbounds [256 x i8], ptr @r_to_y, i64 0, i64 %7016
  %7018 = load i8, ptr %7017, align 1, !tbaa !15
  %7019 = zext i8 %7018 to i32
  %7020 = load ptr, ptr %13, align 8, !tbaa !5
  %7021 = load i32, ptr %18, align 4, !tbaa !14
  %7022 = add nsw i32 %7021, 7
  %7023 = sext i32 %7022 to i64
  %7024 = getelementptr inbounds i8, ptr %7020, i64 %7023
  %7025 = load i8, ptr %7024, align 1, !tbaa !15
  %7026 = zext i8 %7025 to i64
  %7027 = getelementptr inbounds [256 x i8], ptr @g_to_y, i64 0, i64 %7026
  %7028 = load i8, ptr %7027, align 1, !tbaa !15
  %7029 = zext i8 %7028 to i32
  %7030 = add nsw i32 %7019, %7029
  %7031 = load ptr, ptr %12, align 8, !tbaa !5
  %7032 = load i32, ptr %18, align 4, !tbaa !14
  %7033 = add nsw i32 %7032, 7
  %7034 = sext i32 %7033 to i64
  %7035 = getelementptr inbounds i8, ptr %7031, i64 %7034
  %7036 = load i8, ptr %7035, align 1, !tbaa !15
  %7037 = zext i8 %7036 to i64
  %7038 = getelementptr inbounds [256 x i8], ptr @b_to_y, i64 0, i64 %7037
  %7039 = load i8, ptr %7038, align 1, !tbaa !15
  %7040 = zext i8 %7039 to i32
  %7041 = add nsw i32 %7030, %7040
  %7042 = trunc i32 %7041 to i8
  %7043 = load ptr, ptr %15, align 8, !tbaa !5
  %7044 = load i32, ptr %18, align 4, !tbaa !14
  %7045 = add nsw i32 %7044, 7
  %7046 = sext i32 %7045 to i64
  %7047 = getelementptr inbounds i8, ptr %7043, i64 %7046
  store i8 %7042, ptr %7047, align 1, !tbaa !15
  %7048 = load ptr, ptr %10, align 8, !tbaa !5
  %7049 = load ptr, ptr %12, align 8, !tbaa !5
  %7050 = load i32, ptr %18, align 4, !tbaa !14
  %7051 = add nsw i32 %7050, 7
  %7052 = sext i32 %7051 to i64
  %7053 = getelementptr inbounds i8, ptr %7049, i64 %7052
  %7054 = load i8, ptr %7053, align 1, !tbaa !15
  %7055 = zext i8 %7054 to i32
  %7056 = load ptr, ptr %15, align 8, !tbaa !5
  %7057 = load i32, ptr %18, align 4, !tbaa !14
  %7058 = add nsw i32 %7057, 7
  %7059 = sext i32 %7058 to i64
  %7060 = getelementptr inbounds i8, ptr %7056, i64 %7059
  %7061 = load i8, ptr %7060, align 1, !tbaa !15
  %7062 = zext i8 %7061 to i32
  %7063 = sub nsw i32 %7055, %7062
  %7064 = sext i32 %7063 to i64
  %7065 = getelementptr inbounds i8, ptr %7048, i64 %7064
  %7066 = load i8, ptr %7065, align 1, !tbaa !15
  %7067 = load ptr, ptr %16, align 8, !tbaa !5
  %7068 = load i32, ptr %18, align 4, !tbaa !14
  %7069 = add nsw i32 %7068, 7
  %7070 = sext i32 %7069 to i64
  %7071 = getelementptr inbounds i8, ptr %7067, i64 %7070
  store i8 %7066, ptr %7071, align 1, !tbaa !15
  %7072 = load ptr, ptr %9, align 8, !tbaa !5
  %7073 = load ptr, ptr %14, align 8, !tbaa !5
  %7074 = load i32, ptr %18, align 4, !tbaa !14
  %7075 = add nsw i32 %7074, 7
  %7076 = sext i32 %7075 to i64
  %7077 = getelementptr inbounds i8, ptr %7073, i64 %7076
  %7078 = load i8, ptr %7077, align 1, !tbaa !15
  %7079 = zext i8 %7078 to i32
  %7080 = load ptr, ptr %15, align 8, !tbaa !5
  %7081 = load i32, ptr %18, align 4, !tbaa !14
  %7082 = add nsw i32 %7081, 7
  %7083 = sext i32 %7082 to i64
  %7084 = getelementptr inbounds i8, ptr %7080, i64 %7083
  %7085 = load i8, ptr %7084, align 1, !tbaa !15
  %7086 = zext i8 %7085 to i32
  %7087 = sub nsw i32 %7079, %7086
  %7088 = sext i32 %7087 to i64
  %7089 = getelementptr inbounds i8, ptr %7072, i64 %7088
  %7090 = load i8, ptr %7089, align 1, !tbaa !15
  %7091 = load ptr, ptr %17, align 8, !tbaa !5
  %7092 = load i32, ptr %18, align 4, !tbaa !14
  %7093 = add nsw i32 %7092, 7
  %7094 = sext i32 %7093 to i64
  %7095 = getelementptr inbounds i8, ptr %7091, i64 %7094
  store i8 %7090, ptr %7095, align 1, !tbaa !15
  %7096 = load ptr, ptr %14, align 8, !tbaa !5
  %7097 = load i32, ptr %18, align 4, !tbaa !14
  %7098 = add nsw i32 %7097, 8
  %7099 = sext i32 %7098 to i64
  %7100 = getelementptr inbounds i8, ptr %7096, i64 %7099
  %7101 = load i8, ptr %7100, align 1, !tbaa !15
  %7102 = zext i8 %7101 to i64
  %7103 = getelementptr inbounds [256 x i8], ptr @r_to_y, i64 0, i64 %7102
  %7104 = load i8, ptr %7103, align 1, !tbaa !15
  %7105 = zext i8 %7104 to i32
  %7106 = load ptr, ptr %13, align 8, !tbaa !5
  %7107 = load i32, ptr %18, align 4, !tbaa !14
  %7108 = add nsw i32 %7107, 8
  %7109 = sext i32 %7108 to i64
  %7110 = getelementptr inbounds i8, ptr %7106, i64 %7109
  %7111 = load i8, ptr %7110, align 1, !tbaa !15
  %7112 = zext i8 %7111 to i64
  %7113 = getelementptr inbounds [256 x i8], ptr @g_to_y, i64 0, i64 %7112
  %7114 = load i8, ptr %7113, align 1, !tbaa !15
  %7115 = zext i8 %7114 to i32
  %7116 = add nsw i32 %7105, %7115
  %7117 = load ptr, ptr %12, align 8, !tbaa !5
  %7118 = load i32, ptr %18, align 4, !tbaa !14
  %7119 = add nsw i32 %7118, 8
  %7120 = sext i32 %7119 to i64
  %7121 = getelementptr inbounds i8, ptr %7117, i64 %7120
  %7122 = load i8, ptr %7121, align 1, !tbaa !15
  %7123 = zext i8 %7122 to i64
  %7124 = getelementptr inbounds [256 x i8], ptr @b_to_y, i64 0, i64 %7123
  %7125 = load i8, ptr %7124, align 1, !tbaa !15
  %7126 = zext i8 %7125 to i32
  %7127 = add nsw i32 %7116, %7126
  %7128 = trunc i32 %7127 to i8
  %7129 = load ptr, ptr %15, align 8, !tbaa !5
  %7130 = load i32, ptr %18, align 4, !tbaa !14
  %7131 = add nsw i32 %7130, 8
  %7132 = sext i32 %7131 to i64
  %7133 = getelementptr inbounds i8, ptr %7129, i64 %7132
  store i8 %7128, ptr %7133, align 1, !tbaa !15
  %7134 = load ptr, ptr %10, align 8, !tbaa !5
  %7135 = load ptr, ptr %12, align 8, !tbaa !5
  %7136 = load i32, ptr %18, align 4, !tbaa !14
  %7137 = add nsw i32 %7136, 8
  %7138 = sext i32 %7137 to i64
  %7139 = getelementptr inbounds i8, ptr %7135, i64 %7138
  %7140 = load i8, ptr %7139, align 1, !tbaa !15
  %7141 = zext i8 %7140 to i32
  %7142 = load ptr, ptr %15, align 8, !tbaa !5
  %7143 = load i32, ptr %18, align 4, !tbaa !14
  %7144 = add nsw i32 %7143, 8
  %7145 = sext i32 %7144 to i64
  %7146 = getelementptr inbounds i8, ptr %7142, i64 %7145
  %7147 = load i8, ptr %7146, align 1, !tbaa !15
  %7148 = zext i8 %7147 to i32
  %7149 = sub nsw i32 %7141, %7148
  %7150 = sext i32 %7149 to i64
  %7151 = getelementptr inbounds i8, ptr %7134, i64 %7150
  %7152 = load i8, ptr %7151, align 1, !tbaa !15
  %7153 = load ptr, ptr %16, align 8, !tbaa !5
  %7154 = load i32, ptr %18, align 4, !tbaa !14
  %7155 = add nsw i32 %7154, 8
  %7156 = sext i32 %7155 to i64
  %7157 = getelementptr inbounds i8, ptr %7153, i64 %7156
  store i8 %7152, ptr %7157, align 1, !tbaa !15
  %7158 = load ptr, ptr %9, align 8, !tbaa !5
  %7159 = load ptr, ptr %14, align 8, !tbaa !5
  %7160 = load i32, ptr %18, align 4, !tbaa !14
  %7161 = add nsw i32 %7160, 8
  %7162 = sext i32 %7161 to i64
  %7163 = getelementptr inbounds i8, ptr %7159, i64 %7162
  %7164 = load i8, ptr %7163, align 1, !tbaa !15
  %7165 = zext i8 %7164 to i32
  %7166 = load ptr, ptr %15, align 8, !tbaa !5
  %7167 = load i32, ptr %18, align 4, !tbaa !14
  %7168 = add nsw i32 %7167, 8
  %7169 = sext i32 %7168 to i64
  %7170 = getelementptr inbounds i8, ptr %7166, i64 %7169
  %7171 = load i8, ptr %7170, align 1, !tbaa !15
  %7172 = zext i8 %7171 to i32
  %7173 = sub nsw i32 %7165, %7172
  %7174 = sext i32 %7173 to i64
  %7175 = getelementptr inbounds i8, ptr %7158, i64 %7174
  %7176 = load i8, ptr %7175, align 1, !tbaa !15
  %7177 = load ptr, ptr %17, align 8, !tbaa !5
  %7178 = load i32, ptr %18, align 4, !tbaa !14
  %7179 = add nsw i32 %7178, 8
  %7180 = sext i32 %7179 to i64
  %7181 = getelementptr inbounds i8, ptr %7177, i64 %7180
  store i8 %7176, ptr %7181, align 1, !tbaa !15
  %7182 = load ptr, ptr %14, align 8, !tbaa !5
  %7183 = load i32, ptr %18, align 4, !tbaa !14
  %7184 = add nsw i32 %7183, 9
  %7185 = sext i32 %7184 to i64
  %7186 = getelementptr inbounds i8, ptr %7182, i64 %7185
  %7187 = load i8, ptr %7186, align 1, !tbaa !15
  %7188 = zext i8 %7187 to i64
  %7189 = getelementptr inbounds [256 x i8], ptr @r_to_y, i64 0, i64 %7188
  %7190 = load i8, ptr %7189, align 1, !tbaa !15
  %7191 = zext i8 %7190 to i32
  %7192 = load ptr, ptr %13, align 8, !tbaa !5
  %7193 = load i32, ptr %18, align 4, !tbaa !14
  %7194 = add nsw i32 %7193, 9
  %7195 = sext i32 %7194 to i64
  %7196 = getelementptr inbounds i8, ptr %7192, i64 %7195
  %7197 = load i8, ptr %7196, align 1, !tbaa !15
  %7198 = zext i8 %7197 to i64
  %7199 = getelementptr inbounds [256 x i8], ptr @g_to_y, i64 0, i64 %7198
  %7200 = load i8, ptr %7199, align 1, !tbaa !15
  %7201 = zext i8 %7200 to i32
  %7202 = add nsw i32 %7191, %7201
  %7203 = load ptr, ptr %12, align 8, !tbaa !5
  %7204 = load i32, ptr %18, align 4, !tbaa !14
  %7205 = add nsw i32 %7204, 9
  %7206 = sext i32 %7205 to i64
  %7207 = getelementptr inbounds i8, ptr %7203, i64 %7206
  %7208 = load i8, ptr %7207, align 1, !tbaa !15
  %7209 = zext i8 %7208 to i64
  %7210 = getelementptr inbounds [256 x i8], ptr @b_to_y, i64 0, i64 %7209
  %7211 = load i8, ptr %7210, align 1, !tbaa !15
  %7212 = zext i8 %7211 to i32
  %7213 = add nsw i32 %7202, %7212
  %7214 = trunc i32 %7213 to i8
  %7215 = load ptr, ptr %15, align 8, !tbaa !5
  %7216 = load i32, ptr %18, align 4, !tbaa !14
  %7217 = add nsw i32 %7216, 9
  %7218 = sext i32 %7217 to i64
  %7219 = getelementptr inbounds i8, ptr %7215, i64 %7218
  store i8 %7214, ptr %7219, align 1, !tbaa !15
  %7220 = load ptr, ptr %10, align 8, !tbaa !5
  %7221 = load ptr, ptr %12, align 8, !tbaa !5
  %7222 = load i32, ptr %18, align 4, !tbaa !14
  %7223 = add nsw i32 %7222, 9
  %7224 = sext i32 %7223 to i64
  %7225 = getelementptr inbounds i8, ptr %7221, i64 %7224
  %7226 = load i8, ptr %7225, align 1, !tbaa !15
  %7227 = zext i8 %7226 to i32
  %7228 = load ptr, ptr %15, align 8, !tbaa !5
  %7229 = load i32, ptr %18, align 4, !tbaa !14
  %7230 = add nsw i32 %7229, 9
  %7231 = sext i32 %7230 to i64
  %7232 = getelementptr inbounds i8, ptr %7228, i64 %7231
  %7233 = load i8, ptr %7232, align 1, !tbaa !15
  %7234 = zext i8 %7233 to i32
  %7235 = sub nsw i32 %7227, %7234
  %7236 = sext i32 %7235 to i64
  %7237 = getelementptr inbounds i8, ptr %7220, i64 %7236
  %7238 = load i8, ptr %7237, align 1, !tbaa !15
  %7239 = load ptr, ptr %16, align 8, !tbaa !5
  %7240 = load i32, ptr %18, align 4, !tbaa !14
  %7241 = add nsw i32 %7240, 9
  %7242 = sext i32 %7241 to i64
  %7243 = getelementptr inbounds i8, ptr %7239, i64 %7242
  store i8 %7238, ptr %7243, align 1, !tbaa !15
  %7244 = load ptr, ptr %9, align 8, !tbaa !5
  %7245 = load ptr, ptr %14, align 8, !tbaa !5
  %7246 = load i32, ptr %18, align 4, !tbaa !14
  %7247 = add nsw i32 %7246, 9
  %7248 = sext i32 %7247 to i64
  %7249 = getelementptr inbounds i8, ptr %7245, i64 %7248
  %7250 = load i8, ptr %7249, align 1, !tbaa !15
  %7251 = zext i8 %7250 to i32
  %7252 = load ptr, ptr %15, align 8, !tbaa !5
  %7253 = load i32, ptr %18, align 4, !tbaa !14
  %7254 = add nsw i32 %7253, 9
  %7255 = sext i32 %7254 to i64
  %7256 = getelementptr inbounds i8, ptr %7252, i64 %7255
  %7257 = load i8, ptr %7256, align 1, !tbaa !15
  %7258 = zext i8 %7257 to i32
  %7259 = sub nsw i32 %7251, %7258
  %7260 = sext i32 %7259 to i64
  %7261 = getelementptr inbounds i8, ptr %7244, i64 %7260
  %7262 = load i8, ptr %7261, align 1, !tbaa !15
  %7263 = load ptr, ptr %17, align 8, !tbaa !5
  %7264 = load i32, ptr %18, align 4, !tbaa !14
  %7265 = add nsw i32 %7264, 9
  %7266 = sext i32 %7265 to i64
  %7267 = getelementptr inbounds i8, ptr %7263, i64 %7266
  store i8 %7262, ptr %7267, align 1, !tbaa !15
  %7268 = load ptr, ptr %14, align 8, !tbaa !5
  %7269 = load i32, ptr %18, align 4, !tbaa !14
  %7270 = add nsw i32 %7269, 10
  %7271 = sext i32 %7270 to i64
  %7272 = getelementptr inbounds i8, ptr %7268, i64 %7271
  %7273 = load i8, ptr %7272, align 1, !tbaa !15
  %7274 = zext i8 %7273 to i64
  %7275 = getelementptr inbounds [256 x i8], ptr @r_to_y, i64 0, i64 %7274
  %7276 = load i8, ptr %7275, align 1, !tbaa !15
  %7277 = zext i8 %7276 to i32
  %7278 = load ptr, ptr %13, align 8, !tbaa !5
  %7279 = load i32, ptr %18, align 4, !tbaa !14
  %7280 = add nsw i32 %7279, 10
  %7281 = sext i32 %7280 to i64
  %7282 = getelementptr inbounds i8, ptr %7278, i64 %7281
  %7283 = load i8, ptr %7282, align 1, !tbaa !15
  %7284 = zext i8 %7283 to i64
  %7285 = getelementptr inbounds [256 x i8], ptr @g_to_y, i64 0, i64 %7284
  %7286 = load i8, ptr %7285, align 1, !tbaa !15
  %7287 = zext i8 %7286 to i32
  %7288 = add nsw i32 %7277, %7287
  %7289 = load ptr, ptr %12, align 8, !tbaa !5
  %7290 = load i32, ptr %18, align 4, !tbaa !14
  %7291 = add nsw i32 %7290, 10
  %7292 = sext i32 %7291 to i64
  %7293 = getelementptr inbounds i8, ptr %7289, i64 %7292
  %7294 = load i8, ptr %7293, align 1, !tbaa !15
  %7295 = zext i8 %7294 to i64
  %7296 = getelementptr inbounds [256 x i8], ptr @b_to_y, i64 0, i64 %7295
  %7297 = load i8, ptr %7296, align 1, !tbaa !15
  %7298 = zext i8 %7297 to i32
  %7299 = add nsw i32 %7288, %7298
  %7300 = trunc i32 %7299 to i8
  %7301 = load ptr, ptr %15, align 8, !tbaa !5
  %7302 = load i32, ptr %18, align 4, !tbaa !14
  %7303 = add nsw i32 %7302, 10
  %7304 = sext i32 %7303 to i64
  %7305 = getelementptr inbounds i8, ptr %7301, i64 %7304
  store i8 %7300, ptr %7305, align 1, !tbaa !15
  %7306 = load ptr, ptr %10, align 8, !tbaa !5
  %7307 = load ptr, ptr %12, align 8, !tbaa !5
  %7308 = load i32, ptr %18, align 4, !tbaa !14
  %7309 = add nsw i32 %7308, 10
  %7310 = sext i32 %7309 to i64
  %7311 = getelementptr inbounds i8, ptr %7307, i64 %7310
  %7312 = load i8, ptr %7311, align 1, !tbaa !15
  %7313 = zext i8 %7312 to i32
  %7314 = load ptr, ptr %15, align 8, !tbaa !5
  %7315 = load i32, ptr %18, align 4, !tbaa !14
  %7316 = add nsw i32 %7315, 10
  %7317 = sext i32 %7316 to i64
  %7318 = getelementptr inbounds i8, ptr %7314, i64 %7317
  %7319 = load i8, ptr %7318, align 1, !tbaa !15
  %7320 = zext i8 %7319 to i32
  %7321 = sub nsw i32 %7313, %7320
  %7322 = sext i32 %7321 to i64
  %7323 = getelementptr inbounds i8, ptr %7306, i64 %7322
  %7324 = load i8, ptr %7323, align 1, !tbaa !15
  %7325 = load ptr, ptr %16, align 8, !tbaa !5
  %7326 = load i32, ptr %18, align 4, !tbaa !14
  %7327 = add nsw i32 %7326, 10
  %7328 = sext i32 %7327 to i64
  %7329 = getelementptr inbounds i8, ptr %7325, i64 %7328
  store i8 %7324, ptr %7329, align 1, !tbaa !15
  %7330 = load ptr, ptr %9, align 8, !tbaa !5
  %7331 = load ptr, ptr %14, align 8, !tbaa !5
  %7332 = load i32, ptr %18, align 4, !tbaa !14
  %7333 = add nsw i32 %7332, 10
  %7334 = sext i32 %7333 to i64
  %7335 = getelementptr inbounds i8, ptr %7331, i64 %7334
  %7336 = load i8, ptr %7335, align 1, !tbaa !15
  %7337 = zext i8 %7336 to i32
  %7338 = load ptr, ptr %15, align 8, !tbaa !5
  %7339 = load i32, ptr %18, align 4, !tbaa !14
  %7340 = add nsw i32 %7339, 10
  %7341 = sext i32 %7340 to i64
  %7342 = getelementptr inbounds i8, ptr %7338, i64 %7341
  %7343 = load i8, ptr %7342, align 1, !tbaa !15
  %7344 = zext i8 %7343 to i32
  %7345 = sub nsw i32 %7337, %7344
  %7346 = sext i32 %7345 to i64
  %7347 = getelementptr inbounds i8, ptr %7330, i64 %7346
  %7348 = load i8, ptr %7347, align 1, !tbaa !15
  %7349 = load ptr, ptr %17, align 8, !tbaa !5
  %7350 = load i32, ptr %18, align 4, !tbaa !14
  %7351 = add nsw i32 %7350, 10
  %7352 = sext i32 %7351 to i64
  %7353 = getelementptr inbounds i8, ptr %7349, i64 %7352
  store i8 %7348, ptr %7353, align 1, !tbaa !15
  br label %12034

7354:                                             ; preds = %6400
  %7355 = load ptr, ptr %4, align 8, !tbaa !5
  %7356 = getelementptr inbounds %struct.MImage, ptr %7355, i32 0, i32 2
  %7357 = load i32, ptr %7356, align 8, !tbaa !13
  %7358 = load i32, ptr %18, align 4, !tbaa !14
  %7359 = sub nsw i32 %7357, %7358
  %7360 = icmp eq i32 %7359, 12
  br i1 %7360, label %7361, label %8394

7361:                                             ; preds = %7354
  %7362 = load ptr, ptr %14, align 8, !tbaa !5
  %7363 = load i32, ptr %18, align 4, !tbaa !14
  %7364 = add nsw i32 %7363, 0
  %7365 = sext i32 %7364 to i64
  %7366 = getelementptr inbounds i8, ptr %7362, i64 %7365
  %7367 = load i8, ptr %7366, align 1, !tbaa !15
  %7368 = zext i8 %7367 to i64
  %7369 = getelementptr inbounds [256 x i8], ptr @r_to_y, i64 0, i64 %7368
  %7370 = load i8, ptr %7369, align 1, !tbaa !15
  %7371 = zext i8 %7370 to i32
  %7372 = load ptr, ptr %13, align 8, !tbaa !5
  %7373 = load i32, ptr %18, align 4, !tbaa !14
  %7374 = add nsw i32 %7373, 0
  %7375 = sext i32 %7374 to i64
  %7376 = getelementptr inbounds i8, ptr %7372, i64 %7375
  %7377 = load i8, ptr %7376, align 1, !tbaa !15
  %7378 = zext i8 %7377 to i64
  %7379 = getelementptr inbounds [256 x i8], ptr @g_to_y, i64 0, i64 %7378
  %7380 = load i8, ptr %7379, align 1, !tbaa !15
  %7381 = zext i8 %7380 to i32
  %7382 = add nsw i32 %7371, %7381
  %7383 = load ptr, ptr %12, align 8, !tbaa !5
  %7384 = load i32, ptr %18, align 4, !tbaa !14
  %7385 = add nsw i32 %7384, 0
  %7386 = sext i32 %7385 to i64
  %7387 = getelementptr inbounds i8, ptr %7383, i64 %7386
  %7388 = load i8, ptr %7387, align 1, !tbaa !15
  %7389 = zext i8 %7388 to i64
  %7390 = getelementptr inbounds [256 x i8], ptr @b_to_y, i64 0, i64 %7389
  %7391 = load i8, ptr %7390, align 1, !tbaa !15
  %7392 = zext i8 %7391 to i32
  %7393 = add nsw i32 %7382, %7392
  %7394 = trunc i32 %7393 to i8
  %7395 = load ptr, ptr %15, align 8, !tbaa !5
  %7396 = load i32, ptr %18, align 4, !tbaa !14
  %7397 = add nsw i32 %7396, 0
  %7398 = sext i32 %7397 to i64
  %7399 = getelementptr inbounds i8, ptr %7395, i64 %7398
  store i8 %7394, ptr %7399, align 1, !tbaa !15
  %7400 = load ptr, ptr %10, align 8, !tbaa !5
  %7401 = load ptr, ptr %12, align 8, !tbaa !5
  %7402 = load i32, ptr %18, align 4, !tbaa !14
  %7403 = add nsw i32 %7402, 0
  %7404 = sext i32 %7403 to i64
  %7405 = getelementptr inbounds i8, ptr %7401, i64 %7404
  %7406 = load i8, ptr %7405, align 1, !tbaa !15
  %7407 = zext i8 %7406 to i32
  %7408 = load ptr, ptr %15, align 8, !tbaa !5
  %7409 = load i32, ptr %18, align 4, !tbaa !14
  %7410 = add nsw i32 %7409, 0
  %7411 = sext i32 %7410 to i64
  %7412 = getelementptr inbounds i8, ptr %7408, i64 %7411
  %7413 = load i8, ptr %7412, align 1, !tbaa !15
  %7414 = zext i8 %7413 to i32
  %7415 = sub nsw i32 %7407, %7414
  %7416 = sext i32 %7415 to i64
  %7417 = getelementptr inbounds i8, ptr %7400, i64 %7416
  %7418 = load i8, ptr %7417, align 1, !tbaa !15
  %7419 = load ptr, ptr %16, align 8, !tbaa !5
  %7420 = load i32, ptr %18, align 4, !tbaa !14
  %7421 = add nsw i32 %7420, 0
  %7422 = sext i32 %7421 to i64
  %7423 = getelementptr inbounds i8, ptr %7419, i64 %7422
  store i8 %7418, ptr %7423, align 1, !tbaa !15
  %7424 = load ptr, ptr %9, align 8, !tbaa !5
  %7425 = load ptr, ptr %14, align 8, !tbaa !5
  %7426 = load i32, ptr %18, align 4, !tbaa !14
  %7427 = add nsw i32 %7426, 0
  %7428 = sext i32 %7427 to i64
  %7429 = getelementptr inbounds i8, ptr %7425, i64 %7428
  %7430 = load i8, ptr %7429, align 1, !tbaa !15
  %7431 = zext i8 %7430 to i32
  %7432 = load ptr, ptr %15, align 8, !tbaa !5
  %7433 = load i32, ptr %18, align 4, !tbaa !14
  %7434 = add nsw i32 %7433, 0
  %7435 = sext i32 %7434 to i64
  %7436 = getelementptr inbounds i8, ptr %7432, i64 %7435
  %7437 = load i8, ptr %7436, align 1, !tbaa !15
  %7438 = zext i8 %7437 to i32
  %7439 = sub nsw i32 %7431, %7438
  %7440 = sext i32 %7439 to i64
  %7441 = getelementptr inbounds i8, ptr %7424, i64 %7440
  %7442 = load i8, ptr %7441, align 1, !tbaa !15
  %7443 = load ptr, ptr %17, align 8, !tbaa !5
  %7444 = load i32, ptr %18, align 4, !tbaa !14
  %7445 = add nsw i32 %7444, 0
  %7446 = sext i32 %7445 to i64
  %7447 = getelementptr inbounds i8, ptr %7443, i64 %7446
  store i8 %7442, ptr %7447, align 1, !tbaa !15
  %7448 = load ptr, ptr %14, align 8, !tbaa !5
  %7449 = load i32, ptr %18, align 4, !tbaa !14
  %7450 = add nsw i32 %7449, 1
  %7451 = sext i32 %7450 to i64
  %7452 = getelementptr inbounds i8, ptr %7448, i64 %7451
  %7453 = load i8, ptr %7452, align 1, !tbaa !15
  %7454 = zext i8 %7453 to i64
  %7455 = getelementptr inbounds [256 x i8], ptr @r_to_y, i64 0, i64 %7454
  %7456 = load i8, ptr %7455, align 1, !tbaa !15
  %7457 = zext i8 %7456 to i32
  %7458 = load ptr, ptr %13, align 8, !tbaa !5
  %7459 = load i32, ptr %18, align 4, !tbaa !14
  %7460 = add nsw i32 %7459, 1
  %7461 = sext i32 %7460 to i64
  %7462 = getelementptr inbounds i8, ptr %7458, i64 %7461
  %7463 = load i8, ptr %7462, align 1, !tbaa !15
  %7464 = zext i8 %7463 to i64
  %7465 = getelementptr inbounds [256 x i8], ptr @g_to_y, i64 0, i64 %7464
  %7466 = load i8, ptr %7465, align 1, !tbaa !15
  %7467 = zext i8 %7466 to i32
  %7468 = add nsw i32 %7457, %7467
  %7469 = load ptr, ptr %12, align 8, !tbaa !5
  %7470 = load i32, ptr %18, align 4, !tbaa !14
  %7471 = add nsw i32 %7470, 1
  %7472 = sext i32 %7471 to i64
  %7473 = getelementptr inbounds i8, ptr %7469, i64 %7472
  %7474 = load i8, ptr %7473, align 1, !tbaa !15
  %7475 = zext i8 %7474 to i64
  %7476 = getelementptr inbounds [256 x i8], ptr @b_to_y, i64 0, i64 %7475
  %7477 = load i8, ptr %7476, align 1, !tbaa !15
  %7478 = zext i8 %7477 to i32
  %7479 = add nsw i32 %7468, %7478
  %7480 = trunc i32 %7479 to i8
  %7481 = load ptr, ptr %15, align 8, !tbaa !5
  %7482 = load i32, ptr %18, align 4, !tbaa !14
  %7483 = add nsw i32 %7482, 1
  %7484 = sext i32 %7483 to i64
  %7485 = getelementptr inbounds i8, ptr %7481, i64 %7484
  store i8 %7480, ptr %7485, align 1, !tbaa !15
  %7486 = load ptr, ptr %10, align 8, !tbaa !5
  %7487 = load ptr, ptr %12, align 8, !tbaa !5
  %7488 = load i32, ptr %18, align 4, !tbaa !14
  %7489 = add nsw i32 %7488, 1
  %7490 = sext i32 %7489 to i64
  %7491 = getelementptr inbounds i8, ptr %7487, i64 %7490
  %7492 = load i8, ptr %7491, align 1, !tbaa !15
  %7493 = zext i8 %7492 to i32
  %7494 = load ptr, ptr %15, align 8, !tbaa !5
  %7495 = load i32, ptr %18, align 4, !tbaa !14
  %7496 = add nsw i32 %7495, 1
  %7497 = sext i32 %7496 to i64
  %7498 = getelementptr inbounds i8, ptr %7494, i64 %7497
  %7499 = load i8, ptr %7498, align 1, !tbaa !15
  %7500 = zext i8 %7499 to i32
  %7501 = sub nsw i32 %7493, %7500
  %7502 = sext i32 %7501 to i64
  %7503 = getelementptr inbounds i8, ptr %7486, i64 %7502
  %7504 = load i8, ptr %7503, align 1, !tbaa !15
  %7505 = load ptr, ptr %16, align 8, !tbaa !5
  %7506 = load i32, ptr %18, align 4, !tbaa !14
  %7507 = add nsw i32 %7506, 1
  %7508 = sext i32 %7507 to i64
  %7509 = getelementptr inbounds i8, ptr %7505, i64 %7508
  store i8 %7504, ptr %7509, align 1, !tbaa !15
  %7510 = load ptr, ptr %9, align 8, !tbaa !5
  %7511 = load ptr, ptr %14, align 8, !tbaa !5
  %7512 = load i32, ptr %18, align 4, !tbaa !14
  %7513 = add nsw i32 %7512, 1
  %7514 = sext i32 %7513 to i64
  %7515 = getelementptr inbounds i8, ptr %7511, i64 %7514
  %7516 = load i8, ptr %7515, align 1, !tbaa !15
  %7517 = zext i8 %7516 to i32
  %7518 = load ptr, ptr %15, align 8, !tbaa !5
  %7519 = load i32, ptr %18, align 4, !tbaa !14
  %7520 = add nsw i32 %7519, 1
  %7521 = sext i32 %7520 to i64
  %7522 = getelementptr inbounds i8, ptr %7518, i64 %7521
  %7523 = load i8, ptr %7522, align 1, !tbaa !15
  %7524 = zext i8 %7523 to i32
  %7525 = sub nsw i32 %7517, %7524
  %7526 = sext i32 %7525 to i64
  %7527 = getelementptr inbounds i8, ptr %7510, i64 %7526
  %7528 = load i8, ptr %7527, align 1, !tbaa !15
  %7529 = load ptr, ptr %17, align 8, !tbaa !5
  %7530 = load i32, ptr %18, align 4, !tbaa !14
  %7531 = add nsw i32 %7530, 1
  %7532 = sext i32 %7531 to i64
  %7533 = getelementptr inbounds i8, ptr %7529, i64 %7532
  store i8 %7528, ptr %7533, align 1, !tbaa !15
  %7534 = load ptr, ptr %14, align 8, !tbaa !5
  %7535 = load i32, ptr %18, align 4, !tbaa !14
  %7536 = add nsw i32 %7535, 2
  %7537 = sext i32 %7536 to i64
  %7538 = getelementptr inbounds i8, ptr %7534, i64 %7537
  %7539 = load i8, ptr %7538, align 1, !tbaa !15
  %7540 = zext i8 %7539 to i64
  %7541 = getelementptr inbounds [256 x i8], ptr @r_to_y, i64 0, i64 %7540
  %7542 = load i8, ptr %7541, align 1, !tbaa !15
  %7543 = zext i8 %7542 to i32
  %7544 = load ptr, ptr %13, align 8, !tbaa !5
  %7545 = load i32, ptr %18, align 4, !tbaa !14
  %7546 = add nsw i32 %7545, 2
  %7547 = sext i32 %7546 to i64
  %7548 = getelementptr inbounds i8, ptr %7544, i64 %7547
  %7549 = load i8, ptr %7548, align 1, !tbaa !15
  %7550 = zext i8 %7549 to i64
  %7551 = getelementptr inbounds [256 x i8], ptr @g_to_y, i64 0, i64 %7550
  %7552 = load i8, ptr %7551, align 1, !tbaa !15
  %7553 = zext i8 %7552 to i32
  %7554 = add nsw i32 %7543, %7553
  %7555 = load ptr, ptr %12, align 8, !tbaa !5
  %7556 = load i32, ptr %18, align 4, !tbaa !14
  %7557 = add nsw i32 %7556, 2
  %7558 = sext i32 %7557 to i64
  %7559 = getelementptr inbounds i8, ptr %7555, i64 %7558
  %7560 = load i8, ptr %7559, align 1, !tbaa !15
  %7561 = zext i8 %7560 to i64
  %7562 = getelementptr inbounds [256 x i8], ptr @b_to_y, i64 0, i64 %7561
  %7563 = load i8, ptr %7562, align 1, !tbaa !15
  %7564 = zext i8 %7563 to i32
  %7565 = add nsw i32 %7554, %7564
  %7566 = trunc i32 %7565 to i8
  %7567 = load ptr, ptr %15, align 8, !tbaa !5
  %7568 = load i32, ptr %18, align 4, !tbaa !14
  %7569 = add nsw i32 %7568, 2
  %7570 = sext i32 %7569 to i64
  %7571 = getelementptr inbounds i8, ptr %7567, i64 %7570
  store i8 %7566, ptr %7571, align 1, !tbaa !15
  %7572 = load ptr, ptr %10, align 8, !tbaa !5
  %7573 = load ptr, ptr %12, align 8, !tbaa !5
  %7574 = load i32, ptr %18, align 4, !tbaa !14
  %7575 = add nsw i32 %7574, 2
  %7576 = sext i32 %7575 to i64
  %7577 = getelementptr inbounds i8, ptr %7573, i64 %7576
  %7578 = load i8, ptr %7577, align 1, !tbaa !15
  %7579 = zext i8 %7578 to i32
  %7580 = load ptr, ptr %15, align 8, !tbaa !5
  %7581 = load i32, ptr %18, align 4, !tbaa !14
  %7582 = add nsw i32 %7581, 2
  %7583 = sext i32 %7582 to i64
  %7584 = getelementptr inbounds i8, ptr %7580, i64 %7583
  %7585 = load i8, ptr %7584, align 1, !tbaa !15
  %7586 = zext i8 %7585 to i32
  %7587 = sub nsw i32 %7579, %7586
  %7588 = sext i32 %7587 to i64
  %7589 = getelementptr inbounds i8, ptr %7572, i64 %7588
  %7590 = load i8, ptr %7589, align 1, !tbaa !15
  %7591 = load ptr, ptr %16, align 8, !tbaa !5
  %7592 = load i32, ptr %18, align 4, !tbaa !14
  %7593 = add nsw i32 %7592, 2
  %7594 = sext i32 %7593 to i64
  %7595 = getelementptr inbounds i8, ptr %7591, i64 %7594
  store i8 %7590, ptr %7595, align 1, !tbaa !15
  %7596 = load ptr, ptr %9, align 8, !tbaa !5
  %7597 = load ptr, ptr %14, align 8, !tbaa !5
  %7598 = load i32, ptr %18, align 4, !tbaa !14
  %7599 = add nsw i32 %7598, 2
  %7600 = sext i32 %7599 to i64
  %7601 = getelementptr inbounds i8, ptr %7597, i64 %7600
  %7602 = load i8, ptr %7601, align 1, !tbaa !15
  %7603 = zext i8 %7602 to i32
  %7604 = load ptr, ptr %15, align 8, !tbaa !5
  %7605 = load i32, ptr %18, align 4, !tbaa !14
  %7606 = add nsw i32 %7605, 2
  %7607 = sext i32 %7606 to i64
  %7608 = getelementptr inbounds i8, ptr %7604, i64 %7607
  %7609 = load i8, ptr %7608, align 1, !tbaa !15
  %7610 = zext i8 %7609 to i32
  %7611 = sub nsw i32 %7603, %7610
  %7612 = sext i32 %7611 to i64
  %7613 = getelementptr inbounds i8, ptr %7596, i64 %7612
  %7614 = load i8, ptr %7613, align 1, !tbaa !15
  %7615 = load ptr, ptr %17, align 8, !tbaa !5
  %7616 = load i32, ptr %18, align 4, !tbaa !14
  %7617 = add nsw i32 %7616, 2
  %7618 = sext i32 %7617 to i64
  %7619 = getelementptr inbounds i8, ptr %7615, i64 %7618
  store i8 %7614, ptr %7619, align 1, !tbaa !15
  %7620 = load ptr, ptr %14, align 8, !tbaa !5
  %7621 = load i32, ptr %18, align 4, !tbaa !14
  %7622 = add nsw i32 %7621, 3
  %7623 = sext i32 %7622 to i64
  %7624 = getelementptr inbounds i8, ptr %7620, i64 %7623
  %7625 = load i8, ptr %7624, align 1, !tbaa !15
  %7626 = zext i8 %7625 to i64
  %7627 = getelementptr inbounds [256 x i8], ptr @r_to_y, i64 0, i64 %7626
  %7628 = load i8, ptr %7627, align 1, !tbaa !15
  %7629 = zext i8 %7628 to i32
  %7630 = load ptr, ptr %13, align 8, !tbaa !5
  %7631 = load i32, ptr %18, align 4, !tbaa !14
  %7632 = add nsw i32 %7631, 3
  %7633 = sext i32 %7632 to i64
  %7634 = getelementptr inbounds i8, ptr %7630, i64 %7633
  %7635 = load i8, ptr %7634, align 1, !tbaa !15
  %7636 = zext i8 %7635 to i64
  %7637 = getelementptr inbounds [256 x i8], ptr @g_to_y, i64 0, i64 %7636
  %7638 = load i8, ptr %7637, align 1, !tbaa !15
  %7639 = zext i8 %7638 to i32
  %7640 = add nsw i32 %7629, %7639
  %7641 = load ptr, ptr %12, align 8, !tbaa !5
  %7642 = load i32, ptr %18, align 4, !tbaa !14
  %7643 = add nsw i32 %7642, 3
  %7644 = sext i32 %7643 to i64
  %7645 = getelementptr inbounds i8, ptr %7641, i64 %7644
  %7646 = load i8, ptr %7645, align 1, !tbaa !15
  %7647 = zext i8 %7646 to i64
  %7648 = getelementptr inbounds [256 x i8], ptr @b_to_y, i64 0, i64 %7647
  %7649 = load i8, ptr %7648, align 1, !tbaa !15
  %7650 = zext i8 %7649 to i32
  %7651 = add nsw i32 %7640, %7650
  %7652 = trunc i32 %7651 to i8
  %7653 = load ptr, ptr %15, align 8, !tbaa !5
  %7654 = load i32, ptr %18, align 4, !tbaa !14
  %7655 = add nsw i32 %7654, 3
  %7656 = sext i32 %7655 to i64
  %7657 = getelementptr inbounds i8, ptr %7653, i64 %7656
  store i8 %7652, ptr %7657, align 1, !tbaa !15
  %7658 = load ptr, ptr %10, align 8, !tbaa !5
  %7659 = load ptr, ptr %12, align 8, !tbaa !5
  %7660 = load i32, ptr %18, align 4, !tbaa !14
  %7661 = add nsw i32 %7660, 3
  %7662 = sext i32 %7661 to i64
  %7663 = getelementptr inbounds i8, ptr %7659, i64 %7662
  %7664 = load i8, ptr %7663, align 1, !tbaa !15
  %7665 = zext i8 %7664 to i32
  %7666 = load ptr, ptr %15, align 8, !tbaa !5
  %7667 = load i32, ptr %18, align 4, !tbaa !14
  %7668 = add nsw i32 %7667, 3
  %7669 = sext i32 %7668 to i64
  %7670 = getelementptr inbounds i8, ptr %7666, i64 %7669
  %7671 = load i8, ptr %7670, align 1, !tbaa !15
  %7672 = zext i8 %7671 to i32
  %7673 = sub nsw i32 %7665, %7672
  %7674 = sext i32 %7673 to i64
  %7675 = getelementptr inbounds i8, ptr %7658, i64 %7674
  %7676 = load i8, ptr %7675, align 1, !tbaa !15
  %7677 = load ptr, ptr %16, align 8, !tbaa !5
  %7678 = load i32, ptr %18, align 4, !tbaa !14
  %7679 = add nsw i32 %7678, 3
  %7680 = sext i32 %7679 to i64
  %7681 = getelementptr inbounds i8, ptr %7677, i64 %7680
  store i8 %7676, ptr %7681, align 1, !tbaa !15
  %7682 = load ptr, ptr %9, align 8, !tbaa !5
  %7683 = load ptr, ptr %14, align 8, !tbaa !5
  %7684 = load i32, ptr %18, align 4, !tbaa !14
  %7685 = add nsw i32 %7684, 3
  %7686 = sext i32 %7685 to i64
  %7687 = getelementptr inbounds i8, ptr %7683, i64 %7686
  %7688 = load i8, ptr %7687, align 1, !tbaa !15
  %7689 = zext i8 %7688 to i32
  %7690 = load ptr, ptr %15, align 8, !tbaa !5
  %7691 = load i32, ptr %18, align 4, !tbaa !14
  %7692 = add nsw i32 %7691, 3
  %7693 = sext i32 %7692 to i64
  %7694 = getelementptr inbounds i8, ptr %7690, i64 %7693
  %7695 = load i8, ptr %7694, align 1, !tbaa !15
  %7696 = zext i8 %7695 to i32
  %7697 = sub nsw i32 %7689, %7696
  %7698 = sext i32 %7697 to i64
  %7699 = getelementptr inbounds i8, ptr %7682, i64 %7698
  %7700 = load i8, ptr %7699, align 1, !tbaa !15
  %7701 = load ptr, ptr %17, align 8, !tbaa !5
  %7702 = load i32, ptr %18, align 4, !tbaa !14
  %7703 = add nsw i32 %7702, 3
  %7704 = sext i32 %7703 to i64
  %7705 = getelementptr inbounds i8, ptr %7701, i64 %7704
  store i8 %7700, ptr %7705, align 1, !tbaa !15
  %7706 = load ptr, ptr %14, align 8, !tbaa !5
  %7707 = load i32, ptr %18, align 4, !tbaa !14
  %7708 = add nsw i32 %7707, 4
  %7709 = sext i32 %7708 to i64
  %7710 = getelementptr inbounds i8, ptr %7706, i64 %7709
  %7711 = load i8, ptr %7710, align 1, !tbaa !15
  %7712 = zext i8 %7711 to i64
  %7713 = getelementptr inbounds [256 x i8], ptr @r_to_y, i64 0, i64 %7712
  %7714 = load i8, ptr %7713, align 1, !tbaa !15
  %7715 = zext i8 %7714 to i32
  %7716 = load ptr, ptr %13, align 8, !tbaa !5
  %7717 = load i32, ptr %18, align 4, !tbaa !14
  %7718 = add nsw i32 %7717, 4
  %7719 = sext i32 %7718 to i64
  %7720 = getelementptr inbounds i8, ptr %7716, i64 %7719
  %7721 = load i8, ptr %7720, align 1, !tbaa !15
  %7722 = zext i8 %7721 to i64
  %7723 = getelementptr inbounds [256 x i8], ptr @g_to_y, i64 0, i64 %7722
  %7724 = load i8, ptr %7723, align 1, !tbaa !15
  %7725 = zext i8 %7724 to i32
  %7726 = add nsw i32 %7715, %7725
  %7727 = load ptr, ptr %12, align 8, !tbaa !5
  %7728 = load i32, ptr %18, align 4, !tbaa !14
  %7729 = add nsw i32 %7728, 4
  %7730 = sext i32 %7729 to i64
  %7731 = getelementptr inbounds i8, ptr %7727, i64 %7730
  %7732 = load i8, ptr %7731, align 1, !tbaa !15
  %7733 = zext i8 %7732 to i64
  %7734 = getelementptr inbounds [256 x i8], ptr @b_to_y, i64 0, i64 %7733
  %7735 = load i8, ptr %7734, align 1, !tbaa !15
  %7736 = zext i8 %7735 to i32
  %7737 = add nsw i32 %7726, %7736
  %7738 = trunc i32 %7737 to i8
  %7739 = load ptr, ptr %15, align 8, !tbaa !5
  %7740 = load i32, ptr %18, align 4, !tbaa !14
  %7741 = add nsw i32 %7740, 4
  %7742 = sext i32 %7741 to i64
  %7743 = getelementptr inbounds i8, ptr %7739, i64 %7742
  store i8 %7738, ptr %7743, align 1, !tbaa !15
  %7744 = load ptr, ptr %10, align 8, !tbaa !5
  %7745 = load ptr, ptr %12, align 8, !tbaa !5
  %7746 = load i32, ptr %18, align 4, !tbaa !14
  %7747 = add nsw i32 %7746, 4
  %7748 = sext i32 %7747 to i64
  %7749 = getelementptr inbounds i8, ptr %7745, i64 %7748
  %7750 = load i8, ptr %7749, align 1, !tbaa !15
  %7751 = zext i8 %7750 to i32
  %7752 = load ptr, ptr %15, align 8, !tbaa !5
  %7753 = load i32, ptr %18, align 4, !tbaa !14
  %7754 = add nsw i32 %7753, 4
  %7755 = sext i32 %7754 to i64
  %7756 = getelementptr inbounds i8, ptr %7752, i64 %7755
  %7757 = load i8, ptr %7756, align 1, !tbaa !15
  %7758 = zext i8 %7757 to i32
  %7759 = sub nsw i32 %7751, %7758
  %7760 = sext i32 %7759 to i64
  %7761 = getelementptr inbounds i8, ptr %7744, i64 %7760
  %7762 = load i8, ptr %7761, align 1, !tbaa !15
  %7763 = load ptr, ptr %16, align 8, !tbaa !5
  %7764 = load i32, ptr %18, align 4, !tbaa !14
  %7765 = add nsw i32 %7764, 4
  %7766 = sext i32 %7765 to i64
  %7767 = getelementptr inbounds i8, ptr %7763, i64 %7766
  store i8 %7762, ptr %7767, align 1, !tbaa !15
  %7768 = load ptr, ptr %9, align 8, !tbaa !5
  %7769 = load ptr, ptr %14, align 8, !tbaa !5
  %7770 = load i32, ptr %18, align 4, !tbaa !14
  %7771 = add nsw i32 %7770, 4
  %7772 = sext i32 %7771 to i64
  %7773 = getelementptr inbounds i8, ptr %7769, i64 %7772
  %7774 = load i8, ptr %7773, align 1, !tbaa !15
  %7775 = zext i8 %7774 to i32
  %7776 = load ptr, ptr %15, align 8, !tbaa !5
  %7777 = load i32, ptr %18, align 4, !tbaa !14
  %7778 = add nsw i32 %7777, 4
  %7779 = sext i32 %7778 to i64
  %7780 = getelementptr inbounds i8, ptr %7776, i64 %7779
  %7781 = load i8, ptr %7780, align 1, !tbaa !15
  %7782 = zext i8 %7781 to i32
  %7783 = sub nsw i32 %7775, %7782
  %7784 = sext i32 %7783 to i64
  %7785 = getelementptr inbounds i8, ptr %7768, i64 %7784
  %7786 = load i8, ptr %7785, align 1, !tbaa !15
  %7787 = load ptr, ptr %17, align 8, !tbaa !5
  %7788 = load i32, ptr %18, align 4, !tbaa !14
  %7789 = add nsw i32 %7788, 4
  %7790 = sext i32 %7789 to i64
  %7791 = getelementptr inbounds i8, ptr %7787, i64 %7790
  store i8 %7786, ptr %7791, align 1, !tbaa !15
  %7792 = load ptr, ptr %14, align 8, !tbaa !5
  %7793 = load i32, ptr %18, align 4, !tbaa !14
  %7794 = add nsw i32 %7793, 5
  %7795 = sext i32 %7794 to i64
  %7796 = getelementptr inbounds i8, ptr %7792, i64 %7795
  %7797 = load i8, ptr %7796, align 1, !tbaa !15
  %7798 = zext i8 %7797 to i64
  %7799 = getelementptr inbounds [256 x i8], ptr @r_to_y, i64 0, i64 %7798
  %7800 = load i8, ptr %7799, align 1, !tbaa !15
  %7801 = zext i8 %7800 to i32
  %7802 = load ptr, ptr %13, align 8, !tbaa !5
  %7803 = load i32, ptr %18, align 4, !tbaa !14
  %7804 = add nsw i32 %7803, 5
  %7805 = sext i32 %7804 to i64
  %7806 = getelementptr inbounds i8, ptr %7802, i64 %7805
  %7807 = load i8, ptr %7806, align 1, !tbaa !15
  %7808 = zext i8 %7807 to i64
  %7809 = getelementptr inbounds [256 x i8], ptr @g_to_y, i64 0, i64 %7808
  %7810 = load i8, ptr %7809, align 1, !tbaa !15
  %7811 = zext i8 %7810 to i32
  %7812 = add nsw i32 %7801, %7811
  %7813 = load ptr, ptr %12, align 8, !tbaa !5
  %7814 = load i32, ptr %18, align 4, !tbaa !14
  %7815 = add nsw i32 %7814, 5
  %7816 = sext i32 %7815 to i64
  %7817 = getelementptr inbounds i8, ptr %7813, i64 %7816
  %7818 = load i8, ptr %7817, align 1, !tbaa !15
  %7819 = zext i8 %7818 to i64
  %7820 = getelementptr inbounds [256 x i8], ptr @b_to_y, i64 0, i64 %7819
  %7821 = load i8, ptr %7820, align 1, !tbaa !15
  %7822 = zext i8 %7821 to i32
  %7823 = add nsw i32 %7812, %7822
  %7824 = trunc i32 %7823 to i8
  %7825 = load ptr, ptr %15, align 8, !tbaa !5
  %7826 = load i32, ptr %18, align 4, !tbaa !14
  %7827 = add nsw i32 %7826, 5
  %7828 = sext i32 %7827 to i64
  %7829 = getelementptr inbounds i8, ptr %7825, i64 %7828
  store i8 %7824, ptr %7829, align 1, !tbaa !15
  %7830 = load ptr, ptr %10, align 8, !tbaa !5
  %7831 = load ptr, ptr %12, align 8, !tbaa !5
  %7832 = load i32, ptr %18, align 4, !tbaa !14
  %7833 = add nsw i32 %7832, 5
  %7834 = sext i32 %7833 to i64
  %7835 = getelementptr inbounds i8, ptr %7831, i64 %7834
  %7836 = load i8, ptr %7835, align 1, !tbaa !15
  %7837 = zext i8 %7836 to i32
  %7838 = load ptr, ptr %15, align 8, !tbaa !5
  %7839 = load i32, ptr %18, align 4, !tbaa !14
  %7840 = add nsw i32 %7839, 5
  %7841 = sext i32 %7840 to i64
  %7842 = getelementptr inbounds i8, ptr %7838, i64 %7841
  %7843 = load i8, ptr %7842, align 1, !tbaa !15
  %7844 = zext i8 %7843 to i32
  %7845 = sub nsw i32 %7837, %7844
  %7846 = sext i32 %7845 to i64
  %7847 = getelementptr inbounds i8, ptr %7830, i64 %7846
  %7848 = load i8, ptr %7847, align 1, !tbaa !15
  %7849 = load ptr, ptr %16, align 8, !tbaa !5
  %7850 = load i32, ptr %18, align 4, !tbaa !14
  %7851 = add nsw i32 %7850, 5
  %7852 = sext i32 %7851 to i64
  %7853 = getelementptr inbounds i8, ptr %7849, i64 %7852
  store i8 %7848, ptr %7853, align 1, !tbaa !15
  %7854 = load ptr, ptr %9, align 8, !tbaa !5
  %7855 = load ptr, ptr %14, align 8, !tbaa !5
  %7856 = load i32, ptr %18, align 4, !tbaa !14
  %7857 = add nsw i32 %7856, 5
  %7858 = sext i32 %7857 to i64
  %7859 = getelementptr inbounds i8, ptr %7855, i64 %7858
  %7860 = load i8, ptr %7859, align 1, !tbaa !15
  %7861 = zext i8 %7860 to i32
  %7862 = load ptr, ptr %15, align 8, !tbaa !5
  %7863 = load i32, ptr %18, align 4, !tbaa !14
  %7864 = add nsw i32 %7863, 5
  %7865 = sext i32 %7864 to i64
  %7866 = getelementptr inbounds i8, ptr %7862, i64 %7865
  %7867 = load i8, ptr %7866, align 1, !tbaa !15
  %7868 = zext i8 %7867 to i32
  %7869 = sub nsw i32 %7861, %7868
  %7870 = sext i32 %7869 to i64
  %7871 = getelementptr inbounds i8, ptr %7854, i64 %7870
  %7872 = load i8, ptr %7871, align 1, !tbaa !15
  %7873 = load ptr, ptr %17, align 8, !tbaa !5
  %7874 = load i32, ptr %18, align 4, !tbaa !14
  %7875 = add nsw i32 %7874, 5
  %7876 = sext i32 %7875 to i64
  %7877 = getelementptr inbounds i8, ptr %7873, i64 %7876
  store i8 %7872, ptr %7877, align 1, !tbaa !15
  %7878 = load ptr, ptr %14, align 8, !tbaa !5
  %7879 = load i32, ptr %18, align 4, !tbaa !14
  %7880 = add nsw i32 %7879, 6
  %7881 = sext i32 %7880 to i64
  %7882 = getelementptr inbounds i8, ptr %7878, i64 %7881
  %7883 = load i8, ptr %7882, align 1, !tbaa !15
  %7884 = zext i8 %7883 to i64
  %7885 = getelementptr inbounds [256 x i8], ptr @r_to_y, i64 0, i64 %7884
  %7886 = load i8, ptr %7885, align 1, !tbaa !15
  %7887 = zext i8 %7886 to i32
  %7888 = load ptr, ptr %13, align 8, !tbaa !5
  %7889 = load i32, ptr %18, align 4, !tbaa !14
  %7890 = add nsw i32 %7889, 6
  %7891 = sext i32 %7890 to i64
  %7892 = getelementptr inbounds i8, ptr %7888, i64 %7891
  %7893 = load i8, ptr %7892, align 1, !tbaa !15
  %7894 = zext i8 %7893 to i64
  %7895 = getelementptr inbounds [256 x i8], ptr @g_to_y, i64 0, i64 %7894
  %7896 = load i8, ptr %7895, align 1, !tbaa !15
  %7897 = zext i8 %7896 to i32
  %7898 = add nsw i32 %7887, %7897
  %7899 = load ptr, ptr %12, align 8, !tbaa !5
  %7900 = load i32, ptr %18, align 4, !tbaa !14
  %7901 = add nsw i32 %7900, 6
  %7902 = sext i32 %7901 to i64
  %7903 = getelementptr inbounds i8, ptr %7899, i64 %7902
  %7904 = load i8, ptr %7903, align 1, !tbaa !15
  %7905 = zext i8 %7904 to i64
  %7906 = getelementptr inbounds [256 x i8], ptr @b_to_y, i64 0, i64 %7905
  %7907 = load i8, ptr %7906, align 1, !tbaa !15
  %7908 = zext i8 %7907 to i32
  %7909 = add nsw i32 %7898, %7908
  %7910 = trunc i32 %7909 to i8
  %7911 = load ptr, ptr %15, align 8, !tbaa !5
  %7912 = load i32, ptr %18, align 4, !tbaa !14
  %7913 = add nsw i32 %7912, 6
  %7914 = sext i32 %7913 to i64
  %7915 = getelementptr inbounds i8, ptr %7911, i64 %7914
  store i8 %7910, ptr %7915, align 1, !tbaa !15
  %7916 = load ptr, ptr %10, align 8, !tbaa !5
  %7917 = load ptr, ptr %12, align 8, !tbaa !5
  %7918 = load i32, ptr %18, align 4, !tbaa !14
  %7919 = add nsw i32 %7918, 6
  %7920 = sext i32 %7919 to i64
  %7921 = getelementptr inbounds i8, ptr %7917, i64 %7920
  %7922 = load i8, ptr %7921, align 1, !tbaa !15
  %7923 = zext i8 %7922 to i32
  %7924 = load ptr, ptr %15, align 8, !tbaa !5
  %7925 = load i32, ptr %18, align 4, !tbaa !14
  %7926 = add nsw i32 %7925, 6
  %7927 = sext i32 %7926 to i64
  %7928 = getelementptr inbounds i8, ptr %7924, i64 %7927
  %7929 = load i8, ptr %7928, align 1, !tbaa !15
  %7930 = zext i8 %7929 to i32
  %7931 = sub nsw i32 %7923, %7930
  %7932 = sext i32 %7931 to i64
  %7933 = getelementptr inbounds i8, ptr %7916, i64 %7932
  %7934 = load i8, ptr %7933, align 1, !tbaa !15
  %7935 = load ptr, ptr %16, align 8, !tbaa !5
  %7936 = load i32, ptr %18, align 4, !tbaa !14
  %7937 = add nsw i32 %7936, 6
  %7938 = sext i32 %7937 to i64
  %7939 = getelementptr inbounds i8, ptr %7935, i64 %7938
  store i8 %7934, ptr %7939, align 1, !tbaa !15
  %7940 = load ptr, ptr %9, align 8, !tbaa !5
  %7941 = load ptr, ptr %14, align 8, !tbaa !5
  %7942 = load i32, ptr %18, align 4, !tbaa !14
  %7943 = add nsw i32 %7942, 6
  %7944 = sext i32 %7943 to i64
  %7945 = getelementptr inbounds i8, ptr %7941, i64 %7944
  %7946 = load i8, ptr %7945, align 1, !tbaa !15
  %7947 = zext i8 %7946 to i32
  %7948 = load ptr, ptr %15, align 8, !tbaa !5
  %7949 = load i32, ptr %18, align 4, !tbaa !14
  %7950 = add nsw i32 %7949, 6
  %7951 = sext i32 %7950 to i64
  %7952 = getelementptr inbounds i8, ptr %7948, i64 %7951
  %7953 = load i8, ptr %7952, align 1, !tbaa !15
  %7954 = zext i8 %7953 to i32
  %7955 = sub nsw i32 %7947, %7954
  %7956 = sext i32 %7955 to i64
  %7957 = getelementptr inbounds i8, ptr %7940, i64 %7956
  %7958 = load i8, ptr %7957, align 1, !tbaa !15
  %7959 = load ptr, ptr %17, align 8, !tbaa !5
  %7960 = load i32, ptr %18, align 4, !tbaa !14
  %7961 = add nsw i32 %7960, 6
  %7962 = sext i32 %7961 to i64
  %7963 = getelementptr inbounds i8, ptr %7959, i64 %7962
  store i8 %7958, ptr %7963, align 1, !tbaa !15
  %7964 = load ptr, ptr %14, align 8, !tbaa !5
  %7965 = load i32, ptr %18, align 4, !tbaa !14
  %7966 = add nsw i32 %7965, 7
  %7967 = sext i32 %7966 to i64
  %7968 = getelementptr inbounds i8, ptr %7964, i64 %7967
  %7969 = load i8, ptr %7968, align 1, !tbaa !15
  %7970 = zext i8 %7969 to i64
  %7971 = getelementptr inbounds [256 x i8], ptr @r_to_y, i64 0, i64 %7970
  %7972 = load i8, ptr %7971, align 1, !tbaa !15
  %7973 = zext i8 %7972 to i32
  %7974 = load ptr, ptr %13, align 8, !tbaa !5
  %7975 = load i32, ptr %18, align 4, !tbaa !14
  %7976 = add nsw i32 %7975, 7
  %7977 = sext i32 %7976 to i64
  %7978 = getelementptr inbounds i8, ptr %7974, i64 %7977
  %7979 = load i8, ptr %7978, align 1, !tbaa !15
  %7980 = zext i8 %7979 to i64
  %7981 = getelementptr inbounds [256 x i8], ptr @g_to_y, i64 0, i64 %7980
  %7982 = load i8, ptr %7981, align 1, !tbaa !15
  %7983 = zext i8 %7982 to i32
  %7984 = add nsw i32 %7973, %7983
  %7985 = load ptr, ptr %12, align 8, !tbaa !5
  %7986 = load i32, ptr %18, align 4, !tbaa !14
  %7987 = add nsw i32 %7986, 7
  %7988 = sext i32 %7987 to i64
  %7989 = getelementptr inbounds i8, ptr %7985, i64 %7988
  %7990 = load i8, ptr %7989, align 1, !tbaa !15
  %7991 = zext i8 %7990 to i64
  %7992 = getelementptr inbounds [256 x i8], ptr @b_to_y, i64 0, i64 %7991
  %7993 = load i8, ptr %7992, align 1, !tbaa !15
  %7994 = zext i8 %7993 to i32
  %7995 = add nsw i32 %7984, %7994
  %7996 = trunc i32 %7995 to i8
  %7997 = load ptr, ptr %15, align 8, !tbaa !5
  %7998 = load i32, ptr %18, align 4, !tbaa !14
  %7999 = add nsw i32 %7998, 7
  %8000 = sext i32 %7999 to i64
  %8001 = getelementptr inbounds i8, ptr %7997, i64 %8000
  store i8 %7996, ptr %8001, align 1, !tbaa !15
  %8002 = load ptr, ptr %10, align 8, !tbaa !5
  %8003 = load ptr, ptr %12, align 8, !tbaa !5
  %8004 = load i32, ptr %18, align 4, !tbaa !14
  %8005 = add nsw i32 %8004, 7
  %8006 = sext i32 %8005 to i64
  %8007 = getelementptr inbounds i8, ptr %8003, i64 %8006
  %8008 = load i8, ptr %8007, align 1, !tbaa !15
  %8009 = zext i8 %8008 to i32
  %8010 = load ptr, ptr %15, align 8, !tbaa !5
  %8011 = load i32, ptr %18, align 4, !tbaa !14
  %8012 = add nsw i32 %8011, 7
  %8013 = sext i32 %8012 to i64
  %8014 = getelementptr inbounds i8, ptr %8010, i64 %8013
  %8015 = load i8, ptr %8014, align 1, !tbaa !15
  %8016 = zext i8 %8015 to i32
  %8017 = sub nsw i32 %8009, %8016
  %8018 = sext i32 %8017 to i64
  %8019 = getelementptr inbounds i8, ptr %8002, i64 %8018
  %8020 = load i8, ptr %8019, align 1, !tbaa !15
  %8021 = load ptr, ptr %16, align 8, !tbaa !5
  %8022 = load i32, ptr %18, align 4, !tbaa !14
  %8023 = add nsw i32 %8022, 7
  %8024 = sext i32 %8023 to i64
  %8025 = getelementptr inbounds i8, ptr %8021, i64 %8024
  store i8 %8020, ptr %8025, align 1, !tbaa !15
  %8026 = load ptr, ptr %9, align 8, !tbaa !5
  %8027 = load ptr, ptr %14, align 8, !tbaa !5
  %8028 = load i32, ptr %18, align 4, !tbaa !14
  %8029 = add nsw i32 %8028, 7
  %8030 = sext i32 %8029 to i64
  %8031 = getelementptr inbounds i8, ptr %8027, i64 %8030
  %8032 = load i8, ptr %8031, align 1, !tbaa !15
  %8033 = zext i8 %8032 to i32
  %8034 = load ptr, ptr %15, align 8, !tbaa !5
  %8035 = load i32, ptr %18, align 4, !tbaa !14
  %8036 = add nsw i32 %8035, 7
  %8037 = sext i32 %8036 to i64
  %8038 = getelementptr inbounds i8, ptr %8034, i64 %8037
  %8039 = load i8, ptr %8038, align 1, !tbaa !15
  %8040 = zext i8 %8039 to i32
  %8041 = sub nsw i32 %8033, %8040
  %8042 = sext i32 %8041 to i64
  %8043 = getelementptr inbounds i8, ptr %8026, i64 %8042
  %8044 = load i8, ptr %8043, align 1, !tbaa !15
  %8045 = load ptr, ptr %17, align 8, !tbaa !5
  %8046 = load i32, ptr %18, align 4, !tbaa !14
  %8047 = add nsw i32 %8046, 7
  %8048 = sext i32 %8047 to i64
  %8049 = getelementptr inbounds i8, ptr %8045, i64 %8048
  store i8 %8044, ptr %8049, align 1, !tbaa !15
  %8050 = load ptr, ptr %14, align 8, !tbaa !5
  %8051 = load i32, ptr %18, align 4, !tbaa !14
  %8052 = add nsw i32 %8051, 8
  %8053 = sext i32 %8052 to i64
  %8054 = getelementptr inbounds i8, ptr %8050, i64 %8053
  %8055 = load i8, ptr %8054, align 1, !tbaa !15
  %8056 = zext i8 %8055 to i64
  %8057 = getelementptr inbounds [256 x i8], ptr @r_to_y, i64 0, i64 %8056
  %8058 = load i8, ptr %8057, align 1, !tbaa !15
  %8059 = zext i8 %8058 to i32
  %8060 = load ptr, ptr %13, align 8, !tbaa !5
  %8061 = load i32, ptr %18, align 4, !tbaa !14
  %8062 = add nsw i32 %8061, 8
  %8063 = sext i32 %8062 to i64
  %8064 = getelementptr inbounds i8, ptr %8060, i64 %8063
  %8065 = load i8, ptr %8064, align 1, !tbaa !15
  %8066 = zext i8 %8065 to i64
  %8067 = getelementptr inbounds [256 x i8], ptr @g_to_y, i64 0, i64 %8066
  %8068 = load i8, ptr %8067, align 1, !tbaa !15
  %8069 = zext i8 %8068 to i32
  %8070 = add nsw i32 %8059, %8069
  %8071 = load ptr, ptr %12, align 8, !tbaa !5
  %8072 = load i32, ptr %18, align 4, !tbaa !14
  %8073 = add nsw i32 %8072, 8
  %8074 = sext i32 %8073 to i64
  %8075 = getelementptr inbounds i8, ptr %8071, i64 %8074
  %8076 = load i8, ptr %8075, align 1, !tbaa !15
  %8077 = zext i8 %8076 to i64
  %8078 = getelementptr inbounds [256 x i8], ptr @b_to_y, i64 0, i64 %8077
  %8079 = load i8, ptr %8078, align 1, !tbaa !15
  %8080 = zext i8 %8079 to i32
  %8081 = add nsw i32 %8070, %8080
  %8082 = trunc i32 %8081 to i8
  %8083 = load ptr, ptr %15, align 8, !tbaa !5
  %8084 = load i32, ptr %18, align 4, !tbaa !14
  %8085 = add nsw i32 %8084, 8
  %8086 = sext i32 %8085 to i64
  %8087 = getelementptr inbounds i8, ptr %8083, i64 %8086
  store i8 %8082, ptr %8087, align 1, !tbaa !15
  %8088 = load ptr, ptr %10, align 8, !tbaa !5
  %8089 = load ptr, ptr %12, align 8, !tbaa !5
  %8090 = load i32, ptr %18, align 4, !tbaa !14
  %8091 = add nsw i32 %8090, 8
  %8092 = sext i32 %8091 to i64
  %8093 = getelementptr inbounds i8, ptr %8089, i64 %8092
  %8094 = load i8, ptr %8093, align 1, !tbaa !15
  %8095 = zext i8 %8094 to i32
  %8096 = load ptr, ptr %15, align 8, !tbaa !5
  %8097 = load i32, ptr %18, align 4, !tbaa !14
  %8098 = add nsw i32 %8097, 8
  %8099 = sext i32 %8098 to i64
  %8100 = getelementptr inbounds i8, ptr %8096, i64 %8099
  %8101 = load i8, ptr %8100, align 1, !tbaa !15
  %8102 = zext i8 %8101 to i32
  %8103 = sub nsw i32 %8095, %8102
  %8104 = sext i32 %8103 to i64
  %8105 = getelementptr inbounds i8, ptr %8088, i64 %8104
  %8106 = load i8, ptr %8105, align 1, !tbaa !15
  %8107 = load ptr, ptr %16, align 8, !tbaa !5
  %8108 = load i32, ptr %18, align 4, !tbaa !14
  %8109 = add nsw i32 %8108, 8
  %8110 = sext i32 %8109 to i64
  %8111 = getelementptr inbounds i8, ptr %8107, i64 %8110
  store i8 %8106, ptr %8111, align 1, !tbaa !15
  %8112 = load ptr, ptr %9, align 8, !tbaa !5
  %8113 = load ptr, ptr %14, align 8, !tbaa !5
  %8114 = load i32, ptr %18, align 4, !tbaa !14
  %8115 = add nsw i32 %8114, 8
  %8116 = sext i32 %8115 to i64
  %8117 = getelementptr inbounds i8, ptr %8113, i64 %8116
  %8118 = load i8, ptr %8117, align 1, !tbaa !15
  %8119 = zext i8 %8118 to i32
  %8120 = load ptr, ptr %15, align 8, !tbaa !5
  %8121 = load i32, ptr %18, align 4, !tbaa !14
  %8122 = add nsw i32 %8121, 8
  %8123 = sext i32 %8122 to i64
  %8124 = getelementptr inbounds i8, ptr %8120, i64 %8123
  %8125 = load i8, ptr %8124, align 1, !tbaa !15
  %8126 = zext i8 %8125 to i32
  %8127 = sub nsw i32 %8119, %8126
  %8128 = sext i32 %8127 to i64
  %8129 = getelementptr inbounds i8, ptr %8112, i64 %8128
  %8130 = load i8, ptr %8129, align 1, !tbaa !15
  %8131 = load ptr, ptr %17, align 8, !tbaa !5
  %8132 = load i32, ptr %18, align 4, !tbaa !14
  %8133 = add nsw i32 %8132, 8
  %8134 = sext i32 %8133 to i64
  %8135 = getelementptr inbounds i8, ptr %8131, i64 %8134
  store i8 %8130, ptr %8135, align 1, !tbaa !15
  %8136 = load ptr, ptr %14, align 8, !tbaa !5
  %8137 = load i32, ptr %18, align 4, !tbaa !14
  %8138 = add nsw i32 %8137, 9
  %8139 = sext i32 %8138 to i64
  %8140 = getelementptr inbounds i8, ptr %8136, i64 %8139
  %8141 = load i8, ptr %8140, align 1, !tbaa !15
  %8142 = zext i8 %8141 to i64
  %8143 = getelementptr inbounds [256 x i8], ptr @r_to_y, i64 0, i64 %8142
  %8144 = load i8, ptr %8143, align 1, !tbaa !15
  %8145 = zext i8 %8144 to i32
  %8146 = load ptr, ptr %13, align 8, !tbaa !5
  %8147 = load i32, ptr %18, align 4, !tbaa !14
  %8148 = add nsw i32 %8147, 9
  %8149 = sext i32 %8148 to i64
  %8150 = getelementptr inbounds i8, ptr %8146, i64 %8149
  %8151 = load i8, ptr %8150, align 1, !tbaa !15
  %8152 = zext i8 %8151 to i64
  %8153 = getelementptr inbounds [256 x i8], ptr @g_to_y, i64 0, i64 %8152
  %8154 = load i8, ptr %8153, align 1, !tbaa !15
  %8155 = zext i8 %8154 to i32
  %8156 = add nsw i32 %8145, %8155
  %8157 = load ptr, ptr %12, align 8, !tbaa !5
  %8158 = load i32, ptr %18, align 4, !tbaa !14
  %8159 = add nsw i32 %8158, 9
  %8160 = sext i32 %8159 to i64
  %8161 = getelementptr inbounds i8, ptr %8157, i64 %8160
  %8162 = load i8, ptr %8161, align 1, !tbaa !15
  %8163 = zext i8 %8162 to i64
  %8164 = getelementptr inbounds [256 x i8], ptr @b_to_y, i64 0, i64 %8163
  %8165 = load i8, ptr %8164, align 1, !tbaa !15
  %8166 = zext i8 %8165 to i32
  %8167 = add nsw i32 %8156, %8166
  %8168 = trunc i32 %8167 to i8
  %8169 = load ptr, ptr %15, align 8, !tbaa !5
  %8170 = load i32, ptr %18, align 4, !tbaa !14
  %8171 = add nsw i32 %8170, 9
  %8172 = sext i32 %8171 to i64
  %8173 = getelementptr inbounds i8, ptr %8169, i64 %8172
  store i8 %8168, ptr %8173, align 1, !tbaa !15
  %8174 = load ptr, ptr %10, align 8, !tbaa !5
  %8175 = load ptr, ptr %12, align 8, !tbaa !5
  %8176 = load i32, ptr %18, align 4, !tbaa !14
  %8177 = add nsw i32 %8176, 9
  %8178 = sext i32 %8177 to i64
  %8179 = getelementptr inbounds i8, ptr %8175, i64 %8178
  %8180 = load i8, ptr %8179, align 1, !tbaa !15
  %8181 = zext i8 %8180 to i32
  %8182 = load ptr, ptr %15, align 8, !tbaa !5
  %8183 = load i32, ptr %18, align 4, !tbaa !14
  %8184 = add nsw i32 %8183, 9
  %8185 = sext i32 %8184 to i64
  %8186 = getelementptr inbounds i8, ptr %8182, i64 %8185
  %8187 = load i8, ptr %8186, align 1, !tbaa !15
  %8188 = zext i8 %8187 to i32
  %8189 = sub nsw i32 %8181, %8188
  %8190 = sext i32 %8189 to i64
  %8191 = getelementptr inbounds i8, ptr %8174, i64 %8190
  %8192 = load i8, ptr %8191, align 1, !tbaa !15
  %8193 = load ptr, ptr %16, align 8, !tbaa !5
  %8194 = load i32, ptr %18, align 4, !tbaa !14
  %8195 = add nsw i32 %8194, 9
  %8196 = sext i32 %8195 to i64
  %8197 = getelementptr inbounds i8, ptr %8193, i64 %8196
  store i8 %8192, ptr %8197, align 1, !tbaa !15
  %8198 = load ptr, ptr %9, align 8, !tbaa !5
  %8199 = load ptr, ptr %14, align 8, !tbaa !5
  %8200 = load i32, ptr %18, align 4, !tbaa !14
  %8201 = add nsw i32 %8200, 9
  %8202 = sext i32 %8201 to i64
  %8203 = getelementptr inbounds i8, ptr %8199, i64 %8202
  %8204 = load i8, ptr %8203, align 1, !tbaa !15
  %8205 = zext i8 %8204 to i32
  %8206 = load ptr, ptr %15, align 8, !tbaa !5
  %8207 = load i32, ptr %18, align 4, !tbaa !14
  %8208 = add nsw i32 %8207, 9
  %8209 = sext i32 %8208 to i64
  %8210 = getelementptr inbounds i8, ptr %8206, i64 %8209
  %8211 = load i8, ptr %8210, align 1, !tbaa !15
  %8212 = zext i8 %8211 to i32
  %8213 = sub nsw i32 %8205, %8212
  %8214 = sext i32 %8213 to i64
  %8215 = getelementptr inbounds i8, ptr %8198, i64 %8214
  %8216 = load i8, ptr %8215, align 1, !tbaa !15
  %8217 = load ptr, ptr %17, align 8, !tbaa !5
  %8218 = load i32, ptr %18, align 4, !tbaa !14
  %8219 = add nsw i32 %8218, 9
  %8220 = sext i32 %8219 to i64
  %8221 = getelementptr inbounds i8, ptr %8217, i64 %8220
  store i8 %8216, ptr %8221, align 1, !tbaa !15
  %8222 = load ptr, ptr %14, align 8, !tbaa !5
  %8223 = load i32, ptr %18, align 4, !tbaa !14
  %8224 = add nsw i32 %8223, 10
  %8225 = sext i32 %8224 to i64
  %8226 = getelementptr inbounds i8, ptr %8222, i64 %8225
  %8227 = load i8, ptr %8226, align 1, !tbaa !15
  %8228 = zext i8 %8227 to i64
  %8229 = getelementptr inbounds [256 x i8], ptr @r_to_y, i64 0, i64 %8228
  %8230 = load i8, ptr %8229, align 1, !tbaa !15
  %8231 = zext i8 %8230 to i32
  %8232 = load ptr, ptr %13, align 8, !tbaa !5
  %8233 = load i32, ptr %18, align 4, !tbaa !14
  %8234 = add nsw i32 %8233, 10
  %8235 = sext i32 %8234 to i64
  %8236 = getelementptr inbounds i8, ptr %8232, i64 %8235
  %8237 = load i8, ptr %8236, align 1, !tbaa !15
  %8238 = zext i8 %8237 to i64
  %8239 = getelementptr inbounds [256 x i8], ptr @g_to_y, i64 0, i64 %8238
  %8240 = load i8, ptr %8239, align 1, !tbaa !15
  %8241 = zext i8 %8240 to i32
  %8242 = add nsw i32 %8231, %8241
  %8243 = load ptr, ptr %12, align 8, !tbaa !5
  %8244 = load i32, ptr %18, align 4, !tbaa !14
  %8245 = add nsw i32 %8244, 10
  %8246 = sext i32 %8245 to i64
  %8247 = getelementptr inbounds i8, ptr %8243, i64 %8246
  %8248 = load i8, ptr %8247, align 1, !tbaa !15
  %8249 = zext i8 %8248 to i64
  %8250 = getelementptr inbounds [256 x i8], ptr @b_to_y, i64 0, i64 %8249
  %8251 = load i8, ptr %8250, align 1, !tbaa !15
  %8252 = zext i8 %8251 to i32
  %8253 = add nsw i32 %8242, %8252
  %8254 = trunc i32 %8253 to i8
  %8255 = load ptr, ptr %15, align 8, !tbaa !5
  %8256 = load i32, ptr %18, align 4, !tbaa !14
  %8257 = add nsw i32 %8256, 10
  %8258 = sext i32 %8257 to i64
  %8259 = getelementptr inbounds i8, ptr %8255, i64 %8258
  store i8 %8254, ptr %8259, align 1, !tbaa !15
  %8260 = load ptr, ptr %10, align 8, !tbaa !5
  %8261 = load ptr, ptr %12, align 8, !tbaa !5
  %8262 = load i32, ptr %18, align 4, !tbaa !14
  %8263 = add nsw i32 %8262, 10
  %8264 = sext i32 %8263 to i64
  %8265 = getelementptr inbounds i8, ptr %8261, i64 %8264
  %8266 = load i8, ptr %8265, align 1, !tbaa !15
  %8267 = zext i8 %8266 to i32
  %8268 = load ptr, ptr %15, align 8, !tbaa !5
  %8269 = load i32, ptr %18, align 4, !tbaa !14
  %8270 = add nsw i32 %8269, 10
  %8271 = sext i32 %8270 to i64
  %8272 = getelementptr inbounds i8, ptr %8268, i64 %8271
  %8273 = load i8, ptr %8272, align 1, !tbaa !15
  %8274 = zext i8 %8273 to i32
  %8275 = sub nsw i32 %8267, %8274
  %8276 = sext i32 %8275 to i64
  %8277 = getelementptr inbounds i8, ptr %8260, i64 %8276
  %8278 = load i8, ptr %8277, align 1, !tbaa !15
  %8279 = load ptr, ptr %16, align 8, !tbaa !5
  %8280 = load i32, ptr %18, align 4, !tbaa !14
  %8281 = add nsw i32 %8280, 10
  %8282 = sext i32 %8281 to i64
  %8283 = getelementptr inbounds i8, ptr %8279, i64 %8282
  store i8 %8278, ptr %8283, align 1, !tbaa !15
  %8284 = load ptr, ptr %9, align 8, !tbaa !5
  %8285 = load ptr, ptr %14, align 8, !tbaa !5
  %8286 = load i32, ptr %18, align 4, !tbaa !14
  %8287 = add nsw i32 %8286, 10
  %8288 = sext i32 %8287 to i64
  %8289 = getelementptr inbounds i8, ptr %8285, i64 %8288
  %8290 = load i8, ptr %8289, align 1, !tbaa !15
  %8291 = zext i8 %8290 to i32
  %8292 = load ptr, ptr %15, align 8, !tbaa !5
  %8293 = load i32, ptr %18, align 4, !tbaa !14
  %8294 = add nsw i32 %8293, 10
  %8295 = sext i32 %8294 to i64
  %8296 = getelementptr inbounds i8, ptr %8292, i64 %8295
  %8297 = load i8, ptr %8296, align 1, !tbaa !15
  %8298 = zext i8 %8297 to i32
  %8299 = sub nsw i32 %8291, %8298
  %8300 = sext i32 %8299 to i64
  %8301 = getelementptr inbounds i8, ptr %8284, i64 %8300
  %8302 = load i8, ptr %8301, align 1, !tbaa !15
  %8303 = load ptr, ptr %17, align 8, !tbaa !5
  %8304 = load i32, ptr %18, align 4, !tbaa !14
  %8305 = add nsw i32 %8304, 10
  %8306 = sext i32 %8305 to i64
  %8307 = getelementptr inbounds i8, ptr %8303, i64 %8306
  store i8 %8302, ptr %8307, align 1, !tbaa !15
  %8308 = load ptr, ptr %14, align 8, !tbaa !5
  %8309 = load i32, ptr %18, align 4, !tbaa !14
  %8310 = add nsw i32 %8309, 11
  %8311 = sext i32 %8310 to i64
  %8312 = getelementptr inbounds i8, ptr %8308, i64 %8311
  %8313 = load i8, ptr %8312, align 1, !tbaa !15
  %8314 = zext i8 %8313 to i64
  %8315 = getelementptr inbounds [256 x i8], ptr @r_to_y, i64 0, i64 %8314
  %8316 = load i8, ptr %8315, align 1, !tbaa !15
  %8317 = zext i8 %8316 to i32
  %8318 = load ptr, ptr %13, align 8, !tbaa !5
  %8319 = load i32, ptr %18, align 4, !tbaa !14
  %8320 = add nsw i32 %8319, 11
  %8321 = sext i32 %8320 to i64
  %8322 = getelementptr inbounds i8, ptr %8318, i64 %8321
  %8323 = load i8, ptr %8322, align 1, !tbaa !15
  %8324 = zext i8 %8323 to i64
  %8325 = getelementptr inbounds [256 x i8], ptr @g_to_y, i64 0, i64 %8324
  %8326 = load i8, ptr %8325, align 1, !tbaa !15
  %8327 = zext i8 %8326 to i32
  %8328 = add nsw i32 %8317, %8327
  %8329 = load ptr, ptr %12, align 8, !tbaa !5
  %8330 = load i32, ptr %18, align 4, !tbaa !14
  %8331 = add nsw i32 %8330, 11
  %8332 = sext i32 %8331 to i64
  %8333 = getelementptr inbounds i8, ptr %8329, i64 %8332
  %8334 = load i8, ptr %8333, align 1, !tbaa !15
  %8335 = zext i8 %8334 to i64
  %8336 = getelementptr inbounds [256 x i8], ptr @b_to_y, i64 0, i64 %8335
  %8337 = load i8, ptr %8336, align 1, !tbaa !15
  %8338 = zext i8 %8337 to i32
  %8339 = add nsw i32 %8328, %8338
  %8340 = trunc i32 %8339 to i8
  %8341 = load ptr, ptr %15, align 8, !tbaa !5
  %8342 = load i32, ptr %18, align 4, !tbaa !14
  %8343 = add nsw i32 %8342, 11
  %8344 = sext i32 %8343 to i64
  %8345 = getelementptr inbounds i8, ptr %8341, i64 %8344
  store i8 %8340, ptr %8345, align 1, !tbaa !15
  %8346 = load ptr, ptr %10, align 8, !tbaa !5
  %8347 = load ptr, ptr %12, align 8, !tbaa !5
  %8348 = load i32, ptr %18, align 4, !tbaa !14
  %8349 = add nsw i32 %8348, 11
  %8350 = sext i32 %8349 to i64
  %8351 = getelementptr inbounds i8, ptr %8347, i64 %8350
  %8352 = load i8, ptr %8351, align 1, !tbaa !15
  %8353 = zext i8 %8352 to i32
  %8354 = load ptr, ptr %15, align 8, !tbaa !5
  %8355 = load i32, ptr %18, align 4, !tbaa !14
  %8356 = add nsw i32 %8355, 11
  %8357 = sext i32 %8356 to i64
  %8358 = getelementptr inbounds i8, ptr %8354, i64 %8357
  %8359 = load i8, ptr %8358, align 1, !tbaa !15
  %8360 = zext i8 %8359 to i32
  %8361 = sub nsw i32 %8353, %8360
  %8362 = sext i32 %8361 to i64
  %8363 = getelementptr inbounds i8, ptr %8346, i64 %8362
  %8364 = load i8, ptr %8363, align 1, !tbaa !15
  %8365 = load ptr, ptr %16, align 8, !tbaa !5
  %8366 = load i32, ptr %18, align 4, !tbaa !14
  %8367 = add nsw i32 %8366, 11
  %8368 = sext i32 %8367 to i64
  %8369 = getelementptr inbounds i8, ptr %8365, i64 %8368
  store i8 %8364, ptr %8369, align 1, !tbaa !15
  %8370 = load ptr, ptr %9, align 8, !tbaa !5
  %8371 = load ptr, ptr %14, align 8, !tbaa !5
  %8372 = load i32, ptr %18, align 4, !tbaa !14
  %8373 = add nsw i32 %8372, 11
  %8374 = sext i32 %8373 to i64
  %8375 = getelementptr inbounds i8, ptr %8371, i64 %8374
  %8376 = load i8, ptr %8375, align 1, !tbaa !15
  %8377 = zext i8 %8376 to i32
  %8378 = load ptr, ptr %15, align 8, !tbaa !5
  %8379 = load i32, ptr %18, align 4, !tbaa !14
  %8380 = add nsw i32 %8379, 11
  %8381 = sext i32 %8380 to i64
  %8382 = getelementptr inbounds i8, ptr %8378, i64 %8381
  %8383 = load i8, ptr %8382, align 1, !tbaa !15
  %8384 = zext i8 %8383 to i32
  %8385 = sub nsw i32 %8377, %8384
  %8386 = sext i32 %8385 to i64
  %8387 = getelementptr inbounds i8, ptr %8370, i64 %8386
  %8388 = load i8, ptr %8387, align 1, !tbaa !15
  %8389 = load ptr, ptr %17, align 8, !tbaa !5
  %8390 = load i32, ptr %18, align 4, !tbaa !14
  %8391 = add nsw i32 %8390, 11
  %8392 = sext i32 %8391 to i64
  %8393 = getelementptr inbounds i8, ptr %8389, i64 %8392
  store i8 %8388, ptr %8393, align 1, !tbaa !15
  br label %12033

8394:                                             ; preds = %7354
  %8395 = load ptr, ptr %4, align 8, !tbaa !5
  %8396 = getelementptr inbounds %struct.MImage, ptr %8395, i32 0, i32 2
  %8397 = load i32, ptr %8396, align 8, !tbaa !13
  %8398 = load i32, ptr %18, align 4, !tbaa !14
  %8399 = sub nsw i32 %8397, %8398
  %8400 = icmp eq i32 %8399, 13
  br i1 %8400, label %8401, label %9520

8401:                                             ; preds = %8394
  %8402 = load ptr, ptr %14, align 8, !tbaa !5
  %8403 = load i32, ptr %18, align 4, !tbaa !14
  %8404 = add nsw i32 %8403, 0
  %8405 = sext i32 %8404 to i64
  %8406 = getelementptr inbounds i8, ptr %8402, i64 %8405
  %8407 = load i8, ptr %8406, align 1, !tbaa !15
  %8408 = zext i8 %8407 to i64
  %8409 = getelementptr inbounds [256 x i8], ptr @r_to_y, i64 0, i64 %8408
  %8410 = load i8, ptr %8409, align 1, !tbaa !15
  %8411 = zext i8 %8410 to i32
  %8412 = load ptr, ptr %13, align 8, !tbaa !5
  %8413 = load i32, ptr %18, align 4, !tbaa !14
  %8414 = add nsw i32 %8413, 0
  %8415 = sext i32 %8414 to i64
  %8416 = getelementptr inbounds i8, ptr %8412, i64 %8415
  %8417 = load i8, ptr %8416, align 1, !tbaa !15
  %8418 = zext i8 %8417 to i64
  %8419 = getelementptr inbounds [256 x i8], ptr @g_to_y, i64 0, i64 %8418
  %8420 = load i8, ptr %8419, align 1, !tbaa !15
  %8421 = zext i8 %8420 to i32
  %8422 = add nsw i32 %8411, %8421
  %8423 = load ptr, ptr %12, align 8, !tbaa !5
  %8424 = load i32, ptr %18, align 4, !tbaa !14
  %8425 = add nsw i32 %8424, 0
  %8426 = sext i32 %8425 to i64
  %8427 = getelementptr inbounds i8, ptr %8423, i64 %8426
  %8428 = load i8, ptr %8427, align 1, !tbaa !15
  %8429 = zext i8 %8428 to i64
  %8430 = getelementptr inbounds [256 x i8], ptr @b_to_y, i64 0, i64 %8429
  %8431 = load i8, ptr %8430, align 1, !tbaa !15
  %8432 = zext i8 %8431 to i32
  %8433 = add nsw i32 %8422, %8432
  %8434 = trunc i32 %8433 to i8
  %8435 = load ptr, ptr %15, align 8, !tbaa !5
  %8436 = load i32, ptr %18, align 4, !tbaa !14
  %8437 = add nsw i32 %8436, 0
  %8438 = sext i32 %8437 to i64
  %8439 = getelementptr inbounds i8, ptr %8435, i64 %8438
  store i8 %8434, ptr %8439, align 1, !tbaa !15
  %8440 = load ptr, ptr %10, align 8, !tbaa !5
  %8441 = load ptr, ptr %12, align 8, !tbaa !5
  %8442 = load i32, ptr %18, align 4, !tbaa !14
  %8443 = add nsw i32 %8442, 0
  %8444 = sext i32 %8443 to i64
  %8445 = getelementptr inbounds i8, ptr %8441, i64 %8444
  %8446 = load i8, ptr %8445, align 1, !tbaa !15
  %8447 = zext i8 %8446 to i32
  %8448 = load ptr, ptr %15, align 8, !tbaa !5
  %8449 = load i32, ptr %18, align 4, !tbaa !14
  %8450 = add nsw i32 %8449, 0
  %8451 = sext i32 %8450 to i64
  %8452 = getelementptr inbounds i8, ptr %8448, i64 %8451
  %8453 = load i8, ptr %8452, align 1, !tbaa !15
  %8454 = zext i8 %8453 to i32
  %8455 = sub nsw i32 %8447, %8454
  %8456 = sext i32 %8455 to i64
  %8457 = getelementptr inbounds i8, ptr %8440, i64 %8456
  %8458 = load i8, ptr %8457, align 1, !tbaa !15
  %8459 = load ptr, ptr %16, align 8, !tbaa !5
  %8460 = load i32, ptr %18, align 4, !tbaa !14
  %8461 = add nsw i32 %8460, 0
  %8462 = sext i32 %8461 to i64
  %8463 = getelementptr inbounds i8, ptr %8459, i64 %8462
  store i8 %8458, ptr %8463, align 1, !tbaa !15
  %8464 = load ptr, ptr %9, align 8, !tbaa !5
  %8465 = load ptr, ptr %14, align 8, !tbaa !5
  %8466 = load i32, ptr %18, align 4, !tbaa !14
  %8467 = add nsw i32 %8466, 0
  %8468 = sext i32 %8467 to i64
  %8469 = getelementptr inbounds i8, ptr %8465, i64 %8468
  %8470 = load i8, ptr %8469, align 1, !tbaa !15
  %8471 = zext i8 %8470 to i32
  %8472 = load ptr, ptr %15, align 8, !tbaa !5
  %8473 = load i32, ptr %18, align 4, !tbaa !14
  %8474 = add nsw i32 %8473, 0
  %8475 = sext i32 %8474 to i64
  %8476 = getelementptr inbounds i8, ptr %8472, i64 %8475
  %8477 = load i8, ptr %8476, align 1, !tbaa !15
  %8478 = zext i8 %8477 to i32
  %8479 = sub nsw i32 %8471, %8478
  %8480 = sext i32 %8479 to i64
  %8481 = getelementptr inbounds i8, ptr %8464, i64 %8480
  %8482 = load i8, ptr %8481, align 1, !tbaa !15
  %8483 = load ptr, ptr %17, align 8, !tbaa !5
  %8484 = load i32, ptr %18, align 4, !tbaa !14
  %8485 = add nsw i32 %8484, 0
  %8486 = sext i32 %8485 to i64
  %8487 = getelementptr inbounds i8, ptr %8483, i64 %8486
  store i8 %8482, ptr %8487, align 1, !tbaa !15
  %8488 = load ptr, ptr %14, align 8, !tbaa !5
  %8489 = load i32, ptr %18, align 4, !tbaa !14
  %8490 = add nsw i32 %8489, 1
  %8491 = sext i32 %8490 to i64
  %8492 = getelementptr inbounds i8, ptr %8488, i64 %8491
  %8493 = load i8, ptr %8492, align 1, !tbaa !15
  %8494 = zext i8 %8493 to i64
  %8495 = getelementptr inbounds [256 x i8], ptr @r_to_y, i64 0, i64 %8494
  %8496 = load i8, ptr %8495, align 1, !tbaa !15
  %8497 = zext i8 %8496 to i32
  %8498 = load ptr, ptr %13, align 8, !tbaa !5
  %8499 = load i32, ptr %18, align 4, !tbaa !14
  %8500 = add nsw i32 %8499, 1
  %8501 = sext i32 %8500 to i64
  %8502 = getelementptr inbounds i8, ptr %8498, i64 %8501
  %8503 = load i8, ptr %8502, align 1, !tbaa !15
  %8504 = zext i8 %8503 to i64
  %8505 = getelementptr inbounds [256 x i8], ptr @g_to_y, i64 0, i64 %8504
  %8506 = load i8, ptr %8505, align 1, !tbaa !15
  %8507 = zext i8 %8506 to i32
  %8508 = add nsw i32 %8497, %8507
  %8509 = load ptr, ptr %12, align 8, !tbaa !5
  %8510 = load i32, ptr %18, align 4, !tbaa !14
  %8511 = add nsw i32 %8510, 1
  %8512 = sext i32 %8511 to i64
  %8513 = getelementptr inbounds i8, ptr %8509, i64 %8512
  %8514 = load i8, ptr %8513, align 1, !tbaa !15
  %8515 = zext i8 %8514 to i64
  %8516 = getelementptr inbounds [256 x i8], ptr @b_to_y, i64 0, i64 %8515
  %8517 = load i8, ptr %8516, align 1, !tbaa !15
  %8518 = zext i8 %8517 to i32
  %8519 = add nsw i32 %8508, %8518
  %8520 = trunc i32 %8519 to i8
  %8521 = load ptr, ptr %15, align 8, !tbaa !5
  %8522 = load i32, ptr %18, align 4, !tbaa !14
  %8523 = add nsw i32 %8522, 1
  %8524 = sext i32 %8523 to i64
  %8525 = getelementptr inbounds i8, ptr %8521, i64 %8524
  store i8 %8520, ptr %8525, align 1, !tbaa !15
  %8526 = load ptr, ptr %10, align 8, !tbaa !5
  %8527 = load ptr, ptr %12, align 8, !tbaa !5
  %8528 = load i32, ptr %18, align 4, !tbaa !14
  %8529 = add nsw i32 %8528, 1
  %8530 = sext i32 %8529 to i64
  %8531 = getelementptr inbounds i8, ptr %8527, i64 %8530
  %8532 = load i8, ptr %8531, align 1, !tbaa !15
  %8533 = zext i8 %8532 to i32
  %8534 = load ptr, ptr %15, align 8, !tbaa !5
  %8535 = load i32, ptr %18, align 4, !tbaa !14
  %8536 = add nsw i32 %8535, 1
  %8537 = sext i32 %8536 to i64
  %8538 = getelementptr inbounds i8, ptr %8534, i64 %8537
  %8539 = load i8, ptr %8538, align 1, !tbaa !15
  %8540 = zext i8 %8539 to i32
  %8541 = sub nsw i32 %8533, %8540
  %8542 = sext i32 %8541 to i64
  %8543 = getelementptr inbounds i8, ptr %8526, i64 %8542
  %8544 = load i8, ptr %8543, align 1, !tbaa !15
  %8545 = load ptr, ptr %16, align 8, !tbaa !5
  %8546 = load i32, ptr %18, align 4, !tbaa !14
  %8547 = add nsw i32 %8546, 1
  %8548 = sext i32 %8547 to i64
  %8549 = getelementptr inbounds i8, ptr %8545, i64 %8548
  store i8 %8544, ptr %8549, align 1, !tbaa !15
  %8550 = load ptr, ptr %9, align 8, !tbaa !5
  %8551 = load ptr, ptr %14, align 8, !tbaa !5
  %8552 = load i32, ptr %18, align 4, !tbaa !14
  %8553 = add nsw i32 %8552, 1
  %8554 = sext i32 %8553 to i64
  %8555 = getelementptr inbounds i8, ptr %8551, i64 %8554
  %8556 = load i8, ptr %8555, align 1, !tbaa !15
  %8557 = zext i8 %8556 to i32
  %8558 = load ptr, ptr %15, align 8, !tbaa !5
  %8559 = load i32, ptr %18, align 4, !tbaa !14
  %8560 = add nsw i32 %8559, 1
  %8561 = sext i32 %8560 to i64
  %8562 = getelementptr inbounds i8, ptr %8558, i64 %8561
  %8563 = load i8, ptr %8562, align 1, !tbaa !15
  %8564 = zext i8 %8563 to i32
  %8565 = sub nsw i32 %8557, %8564
  %8566 = sext i32 %8565 to i64
  %8567 = getelementptr inbounds i8, ptr %8550, i64 %8566
  %8568 = load i8, ptr %8567, align 1, !tbaa !15
  %8569 = load ptr, ptr %17, align 8, !tbaa !5
  %8570 = load i32, ptr %18, align 4, !tbaa !14
  %8571 = add nsw i32 %8570, 1
  %8572 = sext i32 %8571 to i64
  %8573 = getelementptr inbounds i8, ptr %8569, i64 %8572
  store i8 %8568, ptr %8573, align 1, !tbaa !15
  %8574 = load ptr, ptr %14, align 8, !tbaa !5
  %8575 = load i32, ptr %18, align 4, !tbaa !14
  %8576 = add nsw i32 %8575, 2
  %8577 = sext i32 %8576 to i64
  %8578 = getelementptr inbounds i8, ptr %8574, i64 %8577
  %8579 = load i8, ptr %8578, align 1, !tbaa !15
  %8580 = zext i8 %8579 to i64
  %8581 = getelementptr inbounds [256 x i8], ptr @r_to_y, i64 0, i64 %8580
  %8582 = load i8, ptr %8581, align 1, !tbaa !15
  %8583 = zext i8 %8582 to i32
  %8584 = load ptr, ptr %13, align 8, !tbaa !5
  %8585 = load i32, ptr %18, align 4, !tbaa !14
  %8586 = add nsw i32 %8585, 2
  %8587 = sext i32 %8586 to i64
  %8588 = getelementptr inbounds i8, ptr %8584, i64 %8587
  %8589 = load i8, ptr %8588, align 1, !tbaa !15
  %8590 = zext i8 %8589 to i64
  %8591 = getelementptr inbounds [256 x i8], ptr @g_to_y, i64 0, i64 %8590
  %8592 = load i8, ptr %8591, align 1, !tbaa !15
  %8593 = zext i8 %8592 to i32
  %8594 = add nsw i32 %8583, %8593
  %8595 = load ptr, ptr %12, align 8, !tbaa !5
  %8596 = load i32, ptr %18, align 4, !tbaa !14
  %8597 = add nsw i32 %8596, 2
  %8598 = sext i32 %8597 to i64
  %8599 = getelementptr inbounds i8, ptr %8595, i64 %8598
  %8600 = load i8, ptr %8599, align 1, !tbaa !15
  %8601 = zext i8 %8600 to i64
  %8602 = getelementptr inbounds [256 x i8], ptr @b_to_y, i64 0, i64 %8601
  %8603 = load i8, ptr %8602, align 1, !tbaa !15
  %8604 = zext i8 %8603 to i32
  %8605 = add nsw i32 %8594, %8604
  %8606 = trunc i32 %8605 to i8
  %8607 = load ptr, ptr %15, align 8, !tbaa !5
  %8608 = load i32, ptr %18, align 4, !tbaa !14
  %8609 = add nsw i32 %8608, 2
  %8610 = sext i32 %8609 to i64
  %8611 = getelementptr inbounds i8, ptr %8607, i64 %8610
  store i8 %8606, ptr %8611, align 1, !tbaa !15
  %8612 = load ptr, ptr %10, align 8, !tbaa !5
  %8613 = load ptr, ptr %12, align 8, !tbaa !5
  %8614 = load i32, ptr %18, align 4, !tbaa !14
  %8615 = add nsw i32 %8614, 2
  %8616 = sext i32 %8615 to i64
  %8617 = getelementptr inbounds i8, ptr %8613, i64 %8616
  %8618 = load i8, ptr %8617, align 1, !tbaa !15
  %8619 = zext i8 %8618 to i32
  %8620 = load ptr, ptr %15, align 8, !tbaa !5
  %8621 = load i32, ptr %18, align 4, !tbaa !14
  %8622 = add nsw i32 %8621, 2
  %8623 = sext i32 %8622 to i64
  %8624 = getelementptr inbounds i8, ptr %8620, i64 %8623
  %8625 = load i8, ptr %8624, align 1, !tbaa !15
  %8626 = zext i8 %8625 to i32
  %8627 = sub nsw i32 %8619, %8626
  %8628 = sext i32 %8627 to i64
  %8629 = getelementptr inbounds i8, ptr %8612, i64 %8628
  %8630 = load i8, ptr %8629, align 1, !tbaa !15
  %8631 = load ptr, ptr %16, align 8, !tbaa !5
  %8632 = load i32, ptr %18, align 4, !tbaa !14
  %8633 = add nsw i32 %8632, 2
  %8634 = sext i32 %8633 to i64
  %8635 = getelementptr inbounds i8, ptr %8631, i64 %8634
  store i8 %8630, ptr %8635, align 1, !tbaa !15
  %8636 = load ptr, ptr %9, align 8, !tbaa !5
  %8637 = load ptr, ptr %14, align 8, !tbaa !5
  %8638 = load i32, ptr %18, align 4, !tbaa !14
  %8639 = add nsw i32 %8638, 2
  %8640 = sext i32 %8639 to i64
  %8641 = getelementptr inbounds i8, ptr %8637, i64 %8640
  %8642 = load i8, ptr %8641, align 1, !tbaa !15
  %8643 = zext i8 %8642 to i32
  %8644 = load ptr, ptr %15, align 8, !tbaa !5
  %8645 = load i32, ptr %18, align 4, !tbaa !14
  %8646 = add nsw i32 %8645, 2
  %8647 = sext i32 %8646 to i64
  %8648 = getelementptr inbounds i8, ptr %8644, i64 %8647
  %8649 = load i8, ptr %8648, align 1, !tbaa !15
  %8650 = zext i8 %8649 to i32
  %8651 = sub nsw i32 %8643, %8650
  %8652 = sext i32 %8651 to i64
  %8653 = getelementptr inbounds i8, ptr %8636, i64 %8652
  %8654 = load i8, ptr %8653, align 1, !tbaa !15
  %8655 = load ptr, ptr %17, align 8, !tbaa !5
  %8656 = load i32, ptr %18, align 4, !tbaa !14
  %8657 = add nsw i32 %8656, 2
  %8658 = sext i32 %8657 to i64
  %8659 = getelementptr inbounds i8, ptr %8655, i64 %8658
  store i8 %8654, ptr %8659, align 1, !tbaa !15
  %8660 = load ptr, ptr %14, align 8, !tbaa !5
  %8661 = load i32, ptr %18, align 4, !tbaa !14
  %8662 = add nsw i32 %8661, 3
  %8663 = sext i32 %8662 to i64
  %8664 = getelementptr inbounds i8, ptr %8660, i64 %8663
  %8665 = load i8, ptr %8664, align 1, !tbaa !15
  %8666 = zext i8 %8665 to i64
  %8667 = getelementptr inbounds [256 x i8], ptr @r_to_y, i64 0, i64 %8666
  %8668 = load i8, ptr %8667, align 1, !tbaa !15
  %8669 = zext i8 %8668 to i32
  %8670 = load ptr, ptr %13, align 8, !tbaa !5
  %8671 = load i32, ptr %18, align 4, !tbaa !14
  %8672 = add nsw i32 %8671, 3
  %8673 = sext i32 %8672 to i64
  %8674 = getelementptr inbounds i8, ptr %8670, i64 %8673
  %8675 = load i8, ptr %8674, align 1, !tbaa !15
  %8676 = zext i8 %8675 to i64
  %8677 = getelementptr inbounds [256 x i8], ptr @g_to_y, i64 0, i64 %8676
  %8678 = load i8, ptr %8677, align 1, !tbaa !15
  %8679 = zext i8 %8678 to i32
  %8680 = add nsw i32 %8669, %8679
  %8681 = load ptr, ptr %12, align 8, !tbaa !5
  %8682 = load i32, ptr %18, align 4, !tbaa !14
  %8683 = add nsw i32 %8682, 3
  %8684 = sext i32 %8683 to i64
  %8685 = getelementptr inbounds i8, ptr %8681, i64 %8684
  %8686 = load i8, ptr %8685, align 1, !tbaa !15
  %8687 = zext i8 %8686 to i64
  %8688 = getelementptr inbounds [256 x i8], ptr @b_to_y, i64 0, i64 %8687
  %8689 = load i8, ptr %8688, align 1, !tbaa !15
  %8690 = zext i8 %8689 to i32
  %8691 = add nsw i32 %8680, %8690
  %8692 = trunc i32 %8691 to i8
  %8693 = load ptr, ptr %15, align 8, !tbaa !5
  %8694 = load i32, ptr %18, align 4, !tbaa !14
  %8695 = add nsw i32 %8694, 3
  %8696 = sext i32 %8695 to i64
  %8697 = getelementptr inbounds i8, ptr %8693, i64 %8696
  store i8 %8692, ptr %8697, align 1, !tbaa !15
  %8698 = load ptr, ptr %10, align 8, !tbaa !5
  %8699 = load ptr, ptr %12, align 8, !tbaa !5
  %8700 = load i32, ptr %18, align 4, !tbaa !14
  %8701 = add nsw i32 %8700, 3
  %8702 = sext i32 %8701 to i64
  %8703 = getelementptr inbounds i8, ptr %8699, i64 %8702
  %8704 = load i8, ptr %8703, align 1, !tbaa !15
  %8705 = zext i8 %8704 to i32
  %8706 = load ptr, ptr %15, align 8, !tbaa !5
  %8707 = load i32, ptr %18, align 4, !tbaa !14
  %8708 = add nsw i32 %8707, 3
  %8709 = sext i32 %8708 to i64
  %8710 = getelementptr inbounds i8, ptr %8706, i64 %8709
  %8711 = load i8, ptr %8710, align 1, !tbaa !15
  %8712 = zext i8 %8711 to i32
  %8713 = sub nsw i32 %8705, %8712
  %8714 = sext i32 %8713 to i64
  %8715 = getelementptr inbounds i8, ptr %8698, i64 %8714
  %8716 = load i8, ptr %8715, align 1, !tbaa !15
  %8717 = load ptr, ptr %16, align 8, !tbaa !5
  %8718 = load i32, ptr %18, align 4, !tbaa !14
  %8719 = add nsw i32 %8718, 3
  %8720 = sext i32 %8719 to i64
  %8721 = getelementptr inbounds i8, ptr %8717, i64 %8720
  store i8 %8716, ptr %8721, align 1, !tbaa !15
  %8722 = load ptr, ptr %9, align 8, !tbaa !5
  %8723 = load ptr, ptr %14, align 8, !tbaa !5
  %8724 = load i32, ptr %18, align 4, !tbaa !14
  %8725 = add nsw i32 %8724, 3
  %8726 = sext i32 %8725 to i64
  %8727 = getelementptr inbounds i8, ptr %8723, i64 %8726
  %8728 = load i8, ptr %8727, align 1, !tbaa !15
  %8729 = zext i8 %8728 to i32
  %8730 = load ptr, ptr %15, align 8, !tbaa !5
  %8731 = load i32, ptr %18, align 4, !tbaa !14
  %8732 = add nsw i32 %8731, 3
  %8733 = sext i32 %8732 to i64
  %8734 = getelementptr inbounds i8, ptr %8730, i64 %8733
  %8735 = load i8, ptr %8734, align 1, !tbaa !15
  %8736 = zext i8 %8735 to i32
  %8737 = sub nsw i32 %8729, %8736
  %8738 = sext i32 %8737 to i64
  %8739 = getelementptr inbounds i8, ptr %8722, i64 %8738
  %8740 = load i8, ptr %8739, align 1, !tbaa !15
  %8741 = load ptr, ptr %17, align 8, !tbaa !5
  %8742 = load i32, ptr %18, align 4, !tbaa !14
  %8743 = add nsw i32 %8742, 3
  %8744 = sext i32 %8743 to i64
  %8745 = getelementptr inbounds i8, ptr %8741, i64 %8744
  store i8 %8740, ptr %8745, align 1, !tbaa !15
  %8746 = load ptr, ptr %14, align 8, !tbaa !5
  %8747 = load i32, ptr %18, align 4, !tbaa !14
  %8748 = add nsw i32 %8747, 4
  %8749 = sext i32 %8748 to i64
  %8750 = getelementptr inbounds i8, ptr %8746, i64 %8749
  %8751 = load i8, ptr %8750, align 1, !tbaa !15
  %8752 = zext i8 %8751 to i64
  %8753 = getelementptr inbounds [256 x i8], ptr @r_to_y, i64 0, i64 %8752
  %8754 = load i8, ptr %8753, align 1, !tbaa !15
  %8755 = zext i8 %8754 to i32
  %8756 = load ptr, ptr %13, align 8, !tbaa !5
  %8757 = load i32, ptr %18, align 4, !tbaa !14
  %8758 = add nsw i32 %8757, 4
  %8759 = sext i32 %8758 to i64
  %8760 = getelementptr inbounds i8, ptr %8756, i64 %8759
  %8761 = load i8, ptr %8760, align 1, !tbaa !15
  %8762 = zext i8 %8761 to i64
  %8763 = getelementptr inbounds [256 x i8], ptr @g_to_y, i64 0, i64 %8762
  %8764 = load i8, ptr %8763, align 1, !tbaa !15
  %8765 = zext i8 %8764 to i32
  %8766 = add nsw i32 %8755, %8765
  %8767 = load ptr, ptr %12, align 8, !tbaa !5
  %8768 = load i32, ptr %18, align 4, !tbaa !14
  %8769 = add nsw i32 %8768, 4
  %8770 = sext i32 %8769 to i64
  %8771 = getelementptr inbounds i8, ptr %8767, i64 %8770
  %8772 = load i8, ptr %8771, align 1, !tbaa !15
  %8773 = zext i8 %8772 to i64
  %8774 = getelementptr inbounds [256 x i8], ptr @b_to_y, i64 0, i64 %8773
  %8775 = load i8, ptr %8774, align 1, !tbaa !15
  %8776 = zext i8 %8775 to i32
  %8777 = add nsw i32 %8766, %8776
  %8778 = trunc i32 %8777 to i8
  %8779 = load ptr, ptr %15, align 8, !tbaa !5
  %8780 = load i32, ptr %18, align 4, !tbaa !14
  %8781 = add nsw i32 %8780, 4
  %8782 = sext i32 %8781 to i64
  %8783 = getelementptr inbounds i8, ptr %8779, i64 %8782
  store i8 %8778, ptr %8783, align 1, !tbaa !15
  %8784 = load ptr, ptr %10, align 8, !tbaa !5
  %8785 = load ptr, ptr %12, align 8, !tbaa !5
  %8786 = load i32, ptr %18, align 4, !tbaa !14
  %8787 = add nsw i32 %8786, 4
  %8788 = sext i32 %8787 to i64
  %8789 = getelementptr inbounds i8, ptr %8785, i64 %8788
  %8790 = load i8, ptr %8789, align 1, !tbaa !15
  %8791 = zext i8 %8790 to i32
  %8792 = load ptr, ptr %15, align 8, !tbaa !5
  %8793 = load i32, ptr %18, align 4, !tbaa !14
  %8794 = add nsw i32 %8793, 4
  %8795 = sext i32 %8794 to i64
  %8796 = getelementptr inbounds i8, ptr %8792, i64 %8795
  %8797 = load i8, ptr %8796, align 1, !tbaa !15
  %8798 = zext i8 %8797 to i32
  %8799 = sub nsw i32 %8791, %8798
  %8800 = sext i32 %8799 to i64
  %8801 = getelementptr inbounds i8, ptr %8784, i64 %8800
  %8802 = load i8, ptr %8801, align 1, !tbaa !15
  %8803 = load ptr, ptr %16, align 8, !tbaa !5
  %8804 = load i32, ptr %18, align 4, !tbaa !14
  %8805 = add nsw i32 %8804, 4
  %8806 = sext i32 %8805 to i64
  %8807 = getelementptr inbounds i8, ptr %8803, i64 %8806
  store i8 %8802, ptr %8807, align 1, !tbaa !15
  %8808 = load ptr, ptr %9, align 8, !tbaa !5
  %8809 = load ptr, ptr %14, align 8, !tbaa !5
  %8810 = load i32, ptr %18, align 4, !tbaa !14
  %8811 = add nsw i32 %8810, 4
  %8812 = sext i32 %8811 to i64
  %8813 = getelementptr inbounds i8, ptr %8809, i64 %8812
  %8814 = load i8, ptr %8813, align 1, !tbaa !15
  %8815 = zext i8 %8814 to i32
  %8816 = load ptr, ptr %15, align 8, !tbaa !5
  %8817 = load i32, ptr %18, align 4, !tbaa !14
  %8818 = add nsw i32 %8817, 4
  %8819 = sext i32 %8818 to i64
  %8820 = getelementptr inbounds i8, ptr %8816, i64 %8819
  %8821 = load i8, ptr %8820, align 1, !tbaa !15
  %8822 = zext i8 %8821 to i32
  %8823 = sub nsw i32 %8815, %8822
  %8824 = sext i32 %8823 to i64
  %8825 = getelementptr inbounds i8, ptr %8808, i64 %8824
  %8826 = load i8, ptr %8825, align 1, !tbaa !15
  %8827 = load ptr, ptr %17, align 8, !tbaa !5
  %8828 = load i32, ptr %18, align 4, !tbaa !14
  %8829 = add nsw i32 %8828, 4
  %8830 = sext i32 %8829 to i64
  %8831 = getelementptr inbounds i8, ptr %8827, i64 %8830
  store i8 %8826, ptr %8831, align 1, !tbaa !15
  %8832 = load ptr, ptr %14, align 8, !tbaa !5
  %8833 = load i32, ptr %18, align 4, !tbaa !14
  %8834 = add nsw i32 %8833, 5
  %8835 = sext i32 %8834 to i64
  %8836 = getelementptr inbounds i8, ptr %8832, i64 %8835
  %8837 = load i8, ptr %8836, align 1, !tbaa !15
  %8838 = zext i8 %8837 to i64
  %8839 = getelementptr inbounds [256 x i8], ptr @r_to_y, i64 0, i64 %8838
  %8840 = load i8, ptr %8839, align 1, !tbaa !15
  %8841 = zext i8 %8840 to i32
  %8842 = load ptr, ptr %13, align 8, !tbaa !5
  %8843 = load i32, ptr %18, align 4, !tbaa !14
  %8844 = add nsw i32 %8843, 5
  %8845 = sext i32 %8844 to i64
  %8846 = getelementptr inbounds i8, ptr %8842, i64 %8845
  %8847 = load i8, ptr %8846, align 1, !tbaa !15
  %8848 = zext i8 %8847 to i64
  %8849 = getelementptr inbounds [256 x i8], ptr @g_to_y, i64 0, i64 %8848
  %8850 = load i8, ptr %8849, align 1, !tbaa !15
  %8851 = zext i8 %8850 to i32
  %8852 = add nsw i32 %8841, %8851
  %8853 = load ptr, ptr %12, align 8, !tbaa !5
  %8854 = load i32, ptr %18, align 4, !tbaa !14
  %8855 = add nsw i32 %8854, 5
  %8856 = sext i32 %8855 to i64
  %8857 = getelementptr inbounds i8, ptr %8853, i64 %8856
  %8858 = load i8, ptr %8857, align 1, !tbaa !15
  %8859 = zext i8 %8858 to i64
  %8860 = getelementptr inbounds [256 x i8], ptr @b_to_y, i64 0, i64 %8859
  %8861 = load i8, ptr %8860, align 1, !tbaa !15
  %8862 = zext i8 %8861 to i32
  %8863 = add nsw i32 %8852, %8862
  %8864 = trunc i32 %8863 to i8
  %8865 = load ptr, ptr %15, align 8, !tbaa !5
  %8866 = load i32, ptr %18, align 4, !tbaa !14
  %8867 = add nsw i32 %8866, 5
  %8868 = sext i32 %8867 to i64
  %8869 = getelementptr inbounds i8, ptr %8865, i64 %8868
  store i8 %8864, ptr %8869, align 1, !tbaa !15
  %8870 = load ptr, ptr %10, align 8, !tbaa !5
  %8871 = load ptr, ptr %12, align 8, !tbaa !5
  %8872 = load i32, ptr %18, align 4, !tbaa !14
  %8873 = add nsw i32 %8872, 5
  %8874 = sext i32 %8873 to i64
  %8875 = getelementptr inbounds i8, ptr %8871, i64 %8874
  %8876 = load i8, ptr %8875, align 1, !tbaa !15
  %8877 = zext i8 %8876 to i32
  %8878 = load ptr, ptr %15, align 8, !tbaa !5
  %8879 = load i32, ptr %18, align 4, !tbaa !14
  %8880 = add nsw i32 %8879, 5
  %8881 = sext i32 %8880 to i64
  %8882 = getelementptr inbounds i8, ptr %8878, i64 %8881
  %8883 = load i8, ptr %8882, align 1, !tbaa !15
  %8884 = zext i8 %8883 to i32
  %8885 = sub nsw i32 %8877, %8884
  %8886 = sext i32 %8885 to i64
  %8887 = getelementptr inbounds i8, ptr %8870, i64 %8886
  %8888 = load i8, ptr %8887, align 1, !tbaa !15
  %8889 = load ptr, ptr %16, align 8, !tbaa !5
  %8890 = load i32, ptr %18, align 4, !tbaa !14
  %8891 = add nsw i32 %8890, 5
  %8892 = sext i32 %8891 to i64
  %8893 = getelementptr inbounds i8, ptr %8889, i64 %8892
  store i8 %8888, ptr %8893, align 1, !tbaa !15
  %8894 = load ptr, ptr %9, align 8, !tbaa !5
  %8895 = load ptr, ptr %14, align 8, !tbaa !5
  %8896 = load i32, ptr %18, align 4, !tbaa !14
  %8897 = add nsw i32 %8896, 5
  %8898 = sext i32 %8897 to i64
  %8899 = getelementptr inbounds i8, ptr %8895, i64 %8898
  %8900 = load i8, ptr %8899, align 1, !tbaa !15
  %8901 = zext i8 %8900 to i32
  %8902 = load ptr, ptr %15, align 8, !tbaa !5
  %8903 = load i32, ptr %18, align 4, !tbaa !14
  %8904 = add nsw i32 %8903, 5
  %8905 = sext i32 %8904 to i64
  %8906 = getelementptr inbounds i8, ptr %8902, i64 %8905
  %8907 = load i8, ptr %8906, align 1, !tbaa !15
  %8908 = zext i8 %8907 to i32
  %8909 = sub nsw i32 %8901, %8908
  %8910 = sext i32 %8909 to i64
  %8911 = getelementptr inbounds i8, ptr %8894, i64 %8910
  %8912 = load i8, ptr %8911, align 1, !tbaa !15
  %8913 = load ptr, ptr %17, align 8, !tbaa !5
  %8914 = load i32, ptr %18, align 4, !tbaa !14
  %8915 = add nsw i32 %8914, 5
  %8916 = sext i32 %8915 to i64
  %8917 = getelementptr inbounds i8, ptr %8913, i64 %8916
  store i8 %8912, ptr %8917, align 1, !tbaa !15
  %8918 = load ptr, ptr %14, align 8, !tbaa !5
  %8919 = load i32, ptr %18, align 4, !tbaa !14
  %8920 = add nsw i32 %8919, 6
  %8921 = sext i32 %8920 to i64
  %8922 = getelementptr inbounds i8, ptr %8918, i64 %8921
  %8923 = load i8, ptr %8922, align 1, !tbaa !15
  %8924 = zext i8 %8923 to i64
  %8925 = getelementptr inbounds [256 x i8], ptr @r_to_y, i64 0, i64 %8924
  %8926 = load i8, ptr %8925, align 1, !tbaa !15
  %8927 = zext i8 %8926 to i32
  %8928 = load ptr, ptr %13, align 8, !tbaa !5
  %8929 = load i32, ptr %18, align 4, !tbaa !14
  %8930 = add nsw i32 %8929, 6
  %8931 = sext i32 %8930 to i64
  %8932 = getelementptr inbounds i8, ptr %8928, i64 %8931
  %8933 = load i8, ptr %8932, align 1, !tbaa !15
  %8934 = zext i8 %8933 to i64
  %8935 = getelementptr inbounds [256 x i8], ptr @g_to_y, i64 0, i64 %8934
  %8936 = load i8, ptr %8935, align 1, !tbaa !15
  %8937 = zext i8 %8936 to i32
  %8938 = add nsw i32 %8927, %8937
  %8939 = load ptr, ptr %12, align 8, !tbaa !5
  %8940 = load i32, ptr %18, align 4, !tbaa !14
  %8941 = add nsw i32 %8940, 6
  %8942 = sext i32 %8941 to i64
  %8943 = getelementptr inbounds i8, ptr %8939, i64 %8942
  %8944 = load i8, ptr %8943, align 1, !tbaa !15
  %8945 = zext i8 %8944 to i64
  %8946 = getelementptr inbounds [256 x i8], ptr @b_to_y, i64 0, i64 %8945
  %8947 = load i8, ptr %8946, align 1, !tbaa !15
  %8948 = zext i8 %8947 to i32
  %8949 = add nsw i32 %8938, %8948
  %8950 = trunc i32 %8949 to i8
  %8951 = load ptr, ptr %15, align 8, !tbaa !5
  %8952 = load i32, ptr %18, align 4, !tbaa !14
  %8953 = add nsw i32 %8952, 6
  %8954 = sext i32 %8953 to i64
  %8955 = getelementptr inbounds i8, ptr %8951, i64 %8954
  store i8 %8950, ptr %8955, align 1, !tbaa !15
  %8956 = load ptr, ptr %10, align 8, !tbaa !5
  %8957 = load ptr, ptr %12, align 8, !tbaa !5
  %8958 = load i32, ptr %18, align 4, !tbaa !14
  %8959 = add nsw i32 %8958, 6
  %8960 = sext i32 %8959 to i64
  %8961 = getelementptr inbounds i8, ptr %8957, i64 %8960
  %8962 = load i8, ptr %8961, align 1, !tbaa !15
  %8963 = zext i8 %8962 to i32
  %8964 = load ptr, ptr %15, align 8, !tbaa !5
  %8965 = load i32, ptr %18, align 4, !tbaa !14
  %8966 = add nsw i32 %8965, 6
  %8967 = sext i32 %8966 to i64
  %8968 = getelementptr inbounds i8, ptr %8964, i64 %8967
  %8969 = load i8, ptr %8968, align 1, !tbaa !15
  %8970 = zext i8 %8969 to i32
  %8971 = sub nsw i32 %8963, %8970
  %8972 = sext i32 %8971 to i64
  %8973 = getelementptr inbounds i8, ptr %8956, i64 %8972
  %8974 = load i8, ptr %8973, align 1, !tbaa !15
  %8975 = load ptr, ptr %16, align 8, !tbaa !5
  %8976 = load i32, ptr %18, align 4, !tbaa !14
  %8977 = add nsw i32 %8976, 6
  %8978 = sext i32 %8977 to i64
  %8979 = getelementptr inbounds i8, ptr %8975, i64 %8978
  store i8 %8974, ptr %8979, align 1, !tbaa !15
  %8980 = load ptr, ptr %9, align 8, !tbaa !5
  %8981 = load ptr, ptr %14, align 8, !tbaa !5
  %8982 = load i32, ptr %18, align 4, !tbaa !14
  %8983 = add nsw i32 %8982, 6
  %8984 = sext i32 %8983 to i64
  %8985 = getelementptr inbounds i8, ptr %8981, i64 %8984
  %8986 = load i8, ptr %8985, align 1, !tbaa !15
  %8987 = zext i8 %8986 to i32
  %8988 = load ptr, ptr %15, align 8, !tbaa !5
  %8989 = load i32, ptr %18, align 4, !tbaa !14
  %8990 = add nsw i32 %8989, 6
  %8991 = sext i32 %8990 to i64
  %8992 = getelementptr inbounds i8, ptr %8988, i64 %8991
  %8993 = load i8, ptr %8992, align 1, !tbaa !15
  %8994 = zext i8 %8993 to i32
  %8995 = sub nsw i32 %8987, %8994
  %8996 = sext i32 %8995 to i64
  %8997 = getelementptr inbounds i8, ptr %8980, i64 %8996
  %8998 = load i8, ptr %8997, align 1, !tbaa !15
  %8999 = load ptr, ptr %17, align 8, !tbaa !5
  %9000 = load i32, ptr %18, align 4, !tbaa !14
  %9001 = add nsw i32 %9000, 6
  %9002 = sext i32 %9001 to i64
  %9003 = getelementptr inbounds i8, ptr %8999, i64 %9002
  store i8 %8998, ptr %9003, align 1, !tbaa !15
  %9004 = load ptr, ptr %14, align 8, !tbaa !5
  %9005 = load i32, ptr %18, align 4, !tbaa !14
  %9006 = add nsw i32 %9005, 7
  %9007 = sext i32 %9006 to i64
  %9008 = getelementptr inbounds i8, ptr %9004, i64 %9007
  %9009 = load i8, ptr %9008, align 1, !tbaa !15
  %9010 = zext i8 %9009 to i64
  %9011 = getelementptr inbounds [256 x i8], ptr @r_to_y, i64 0, i64 %9010
  %9012 = load i8, ptr %9011, align 1, !tbaa !15
  %9013 = zext i8 %9012 to i32
  %9014 = load ptr, ptr %13, align 8, !tbaa !5
  %9015 = load i32, ptr %18, align 4, !tbaa !14
  %9016 = add nsw i32 %9015, 7
  %9017 = sext i32 %9016 to i64
  %9018 = getelementptr inbounds i8, ptr %9014, i64 %9017
  %9019 = load i8, ptr %9018, align 1, !tbaa !15
  %9020 = zext i8 %9019 to i64
  %9021 = getelementptr inbounds [256 x i8], ptr @g_to_y, i64 0, i64 %9020
  %9022 = load i8, ptr %9021, align 1, !tbaa !15
  %9023 = zext i8 %9022 to i32
  %9024 = add nsw i32 %9013, %9023
  %9025 = load ptr, ptr %12, align 8, !tbaa !5
  %9026 = load i32, ptr %18, align 4, !tbaa !14
  %9027 = add nsw i32 %9026, 7
  %9028 = sext i32 %9027 to i64
  %9029 = getelementptr inbounds i8, ptr %9025, i64 %9028
  %9030 = load i8, ptr %9029, align 1, !tbaa !15
  %9031 = zext i8 %9030 to i64
  %9032 = getelementptr inbounds [256 x i8], ptr @b_to_y, i64 0, i64 %9031
  %9033 = load i8, ptr %9032, align 1, !tbaa !15
  %9034 = zext i8 %9033 to i32
  %9035 = add nsw i32 %9024, %9034
  %9036 = trunc i32 %9035 to i8
  %9037 = load ptr, ptr %15, align 8, !tbaa !5
  %9038 = load i32, ptr %18, align 4, !tbaa !14
  %9039 = add nsw i32 %9038, 7
  %9040 = sext i32 %9039 to i64
  %9041 = getelementptr inbounds i8, ptr %9037, i64 %9040
  store i8 %9036, ptr %9041, align 1, !tbaa !15
  %9042 = load ptr, ptr %10, align 8, !tbaa !5
  %9043 = load ptr, ptr %12, align 8, !tbaa !5
  %9044 = load i32, ptr %18, align 4, !tbaa !14
  %9045 = add nsw i32 %9044, 7
  %9046 = sext i32 %9045 to i64
  %9047 = getelementptr inbounds i8, ptr %9043, i64 %9046
  %9048 = load i8, ptr %9047, align 1, !tbaa !15
  %9049 = zext i8 %9048 to i32
  %9050 = load ptr, ptr %15, align 8, !tbaa !5
  %9051 = load i32, ptr %18, align 4, !tbaa !14
  %9052 = add nsw i32 %9051, 7
  %9053 = sext i32 %9052 to i64
  %9054 = getelementptr inbounds i8, ptr %9050, i64 %9053
  %9055 = load i8, ptr %9054, align 1, !tbaa !15
  %9056 = zext i8 %9055 to i32
  %9057 = sub nsw i32 %9049, %9056
  %9058 = sext i32 %9057 to i64
  %9059 = getelementptr inbounds i8, ptr %9042, i64 %9058
  %9060 = load i8, ptr %9059, align 1, !tbaa !15
  %9061 = load ptr, ptr %16, align 8, !tbaa !5
  %9062 = load i32, ptr %18, align 4, !tbaa !14
  %9063 = add nsw i32 %9062, 7
  %9064 = sext i32 %9063 to i64
  %9065 = getelementptr inbounds i8, ptr %9061, i64 %9064
  store i8 %9060, ptr %9065, align 1, !tbaa !15
  %9066 = load ptr, ptr %9, align 8, !tbaa !5
  %9067 = load ptr, ptr %14, align 8, !tbaa !5
  %9068 = load i32, ptr %18, align 4, !tbaa !14
  %9069 = add nsw i32 %9068, 7
  %9070 = sext i32 %9069 to i64
  %9071 = getelementptr inbounds i8, ptr %9067, i64 %9070
  %9072 = load i8, ptr %9071, align 1, !tbaa !15
  %9073 = zext i8 %9072 to i32
  %9074 = load ptr, ptr %15, align 8, !tbaa !5
  %9075 = load i32, ptr %18, align 4, !tbaa !14
  %9076 = add nsw i32 %9075, 7
  %9077 = sext i32 %9076 to i64
  %9078 = getelementptr inbounds i8, ptr %9074, i64 %9077
  %9079 = load i8, ptr %9078, align 1, !tbaa !15
  %9080 = zext i8 %9079 to i32
  %9081 = sub nsw i32 %9073, %9080
  %9082 = sext i32 %9081 to i64
  %9083 = getelementptr inbounds i8, ptr %9066, i64 %9082
  %9084 = load i8, ptr %9083, align 1, !tbaa !15
  %9085 = load ptr, ptr %17, align 8, !tbaa !5
  %9086 = load i32, ptr %18, align 4, !tbaa !14
  %9087 = add nsw i32 %9086, 7
  %9088 = sext i32 %9087 to i64
  %9089 = getelementptr inbounds i8, ptr %9085, i64 %9088
  store i8 %9084, ptr %9089, align 1, !tbaa !15
  %9090 = load ptr, ptr %14, align 8, !tbaa !5
  %9091 = load i32, ptr %18, align 4, !tbaa !14
  %9092 = add nsw i32 %9091, 8
  %9093 = sext i32 %9092 to i64
  %9094 = getelementptr inbounds i8, ptr %9090, i64 %9093
  %9095 = load i8, ptr %9094, align 1, !tbaa !15
  %9096 = zext i8 %9095 to i64
  %9097 = getelementptr inbounds [256 x i8], ptr @r_to_y, i64 0, i64 %9096
  %9098 = load i8, ptr %9097, align 1, !tbaa !15
  %9099 = zext i8 %9098 to i32
  %9100 = load ptr, ptr %13, align 8, !tbaa !5
  %9101 = load i32, ptr %18, align 4, !tbaa !14
  %9102 = add nsw i32 %9101, 8
  %9103 = sext i32 %9102 to i64
  %9104 = getelementptr inbounds i8, ptr %9100, i64 %9103
  %9105 = load i8, ptr %9104, align 1, !tbaa !15
  %9106 = zext i8 %9105 to i64
  %9107 = getelementptr inbounds [256 x i8], ptr @g_to_y, i64 0, i64 %9106
  %9108 = load i8, ptr %9107, align 1, !tbaa !15
  %9109 = zext i8 %9108 to i32
  %9110 = add nsw i32 %9099, %9109
  %9111 = load ptr, ptr %12, align 8, !tbaa !5
  %9112 = load i32, ptr %18, align 4, !tbaa !14
  %9113 = add nsw i32 %9112, 8
  %9114 = sext i32 %9113 to i64
  %9115 = getelementptr inbounds i8, ptr %9111, i64 %9114
  %9116 = load i8, ptr %9115, align 1, !tbaa !15
  %9117 = zext i8 %9116 to i64
  %9118 = getelementptr inbounds [256 x i8], ptr @b_to_y, i64 0, i64 %9117
  %9119 = load i8, ptr %9118, align 1, !tbaa !15
  %9120 = zext i8 %9119 to i32
  %9121 = add nsw i32 %9110, %9120
  %9122 = trunc i32 %9121 to i8
  %9123 = load ptr, ptr %15, align 8, !tbaa !5
  %9124 = load i32, ptr %18, align 4, !tbaa !14
  %9125 = add nsw i32 %9124, 8
  %9126 = sext i32 %9125 to i64
  %9127 = getelementptr inbounds i8, ptr %9123, i64 %9126
  store i8 %9122, ptr %9127, align 1, !tbaa !15
  %9128 = load ptr, ptr %10, align 8, !tbaa !5
  %9129 = load ptr, ptr %12, align 8, !tbaa !5
  %9130 = load i32, ptr %18, align 4, !tbaa !14
  %9131 = add nsw i32 %9130, 8
  %9132 = sext i32 %9131 to i64
  %9133 = getelementptr inbounds i8, ptr %9129, i64 %9132
  %9134 = load i8, ptr %9133, align 1, !tbaa !15
  %9135 = zext i8 %9134 to i32
  %9136 = load ptr, ptr %15, align 8, !tbaa !5
  %9137 = load i32, ptr %18, align 4, !tbaa !14
  %9138 = add nsw i32 %9137, 8
  %9139 = sext i32 %9138 to i64
  %9140 = getelementptr inbounds i8, ptr %9136, i64 %9139
  %9141 = load i8, ptr %9140, align 1, !tbaa !15
  %9142 = zext i8 %9141 to i32
  %9143 = sub nsw i32 %9135, %9142
  %9144 = sext i32 %9143 to i64
  %9145 = getelementptr inbounds i8, ptr %9128, i64 %9144
  %9146 = load i8, ptr %9145, align 1, !tbaa !15
  %9147 = load ptr, ptr %16, align 8, !tbaa !5
  %9148 = load i32, ptr %18, align 4, !tbaa !14
  %9149 = add nsw i32 %9148, 8
  %9150 = sext i32 %9149 to i64
  %9151 = getelementptr inbounds i8, ptr %9147, i64 %9150
  store i8 %9146, ptr %9151, align 1, !tbaa !15
  %9152 = load ptr, ptr %9, align 8, !tbaa !5
  %9153 = load ptr, ptr %14, align 8, !tbaa !5
  %9154 = load i32, ptr %18, align 4, !tbaa !14
  %9155 = add nsw i32 %9154, 8
  %9156 = sext i32 %9155 to i64
  %9157 = getelementptr inbounds i8, ptr %9153, i64 %9156
  %9158 = load i8, ptr %9157, align 1, !tbaa !15
  %9159 = zext i8 %9158 to i32
  %9160 = load ptr, ptr %15, align 8, !tbaa !5
  %9161 = load i32, ptr %18, align 4, !tbaa !14
  %9162 = add nsw i32 %9161, 8
  %9163 = sext i32 %9162 to i64
  %9164 = getelementptr inbounds i8, ptr %9160, i64 %9163
  %9165 = load i8, ptr %9164, align 1, !tbaa !15
  %9166 = zext i8 %9165 to i32
  %9167 = sub nsw i32 %9159, %9166
  %9168 = sext i32 %9167 to i64
  %9169 = getelementptr inbounds i8, ptr %9152, i64 %9168
  %9170 = load i8, ptr %9169, align 1, !tbaa !15
  %9171 = load ptr, ptr %17, align 8, !tbaa !5
  %9172 = load i32, ptr %18, align 4, !tbaa !14
  %9173 = add nsw i32 %9172, 8
  %9174 = sext i32 %9173 to i64
  %9175 = getelementptr inbounds i8, ptr %9171, i64 %9174
  store i8 %9170, ptr %9175, align 1, !tbaa !15
  %9176 = load ptr, ptr %14, align 8, !tbaa !5
  %9177 = load i32, ptr %18, align 4, !tbaa !14
  %9178 = add nsw i32 %9177, 9
  %9179 = sext i32 %9178 to i64
  %9180 = getelementptr inbounds i8, ptr %9176, i64 %9179
  %9181 = load i8, ptr %9180, align 1, !tbaa !15
  %9182 = zext i8 %9181 to i64
  %9183 = getelementptr inbounds [256 x i8], ptr @r_to_y, i64 0, i64 %9182
  %9184 = load i8, ptr %9183, align 1, !tbaa !15
  %9185 = zext i8 %9184 to i32
  %9186 = load ptr, ptr %13, align 8, !tbaa !5
  %9187 = load i32, ptr %18, align 4, !tbaa !14
  %9188 = add nsw i32 %9187, 9
  %9189 = sext i32 %9188 to i64
  %9190 = getelementptr inbounds i8, ptr %9186, i64 %9189
  %9191 = load i8, ptr %9190, align 1, !tbaa !15
  %9192 = zext i8 %9191 to i64
  %9193 = getelementptr inbounds [256 x i8], ptr @g_to_y, i64 0, i64 %9192
  %9194 = load i8, ptr %9193, align 1, !tbaa !15
  %9195 = zext i8 %9194 to i32
  %9196 = add nsw i32 %9185, %9195
  %9197 = load ptr, ptr %12, align 8, !tbaa !5
  %9198 = load i32, ptr %18, align 4, !tbaa !14
  %9199 = add nsw i32 %9198, 9
  %9200 = sext i32 %9199 to i64
  %9201 = getelementptr inbounds i8, ptr %9197, i64 %9200
  %9202 = load i8, ptr %9201, align 1, !tbaa !15
  %9203 = zext i8 %9202 to i64
  %9204 = getelementptr inbounds [256 x i8], ptr @b_to_y, i64 0, i64 %9203
  %9205 = load i8, ptr %9204, align 1, !tbaa !15
  %9206 = zext i8 %9205 to i32
  %9207 = add nsw i32 %9196, %9206
  %9208 = trunc i32 %9207 to i8
  %9209 = load ptr, ptr %15, align 8, !tbaa !5
  %9210 = load i32, ptr %18, align 4, !tbaa !14
  %9211 = add nsw i32 %9210, 9
  %9212 = sext i32 %9211 to i64
  %9213 = getelementptr inbounds i8, ptr %9209, i64 %9212
  store i8 %9208, ptr %9213, align 1, !tbaa !15
  %9214 = load ptr, ptr %10, align 8, !tbaa !5
  %9215 = load ptr, ptr %12, align 8, !tbaa !5
  %9216 = load i32, ptr %18, align 4, !tbaa !14
  %9217 = add nsw i32 %9216, 9
  %9218 = sext i32 %9217 to i64
  %9219 = getelementptr inbounds i8, ptr %9215, i64 %9218
  %9220 = load i8, ptr %9219, align 1, !tbaa !15
  %9221 = zext i8 %9220 to i32
  %9222 = load ptr, ptr %15, align 8, !tbaa !5
  %9223 = load i32, ptr %18, align 4, !tbaa !14
  %9224 = add nsw i32 %9223, 9
  %9225 = sext i32 %9224 to i64
  %9226 = getelementptr inbounds i8, ptr %9222, i64 %9225
  %9227 = load i8, ptr %9226, align 1, !tbaa !15
  %9228 = zext i8 %9227 to i32
  %9229 = sub nsw i32 %9221, %9228
  %9230 = sext i32 %9229 to i64
  %9231 = getelementptr inbounds i8, ptr %9214, i64 %9230
  %9232 = load i8, ptr %9231, align 1, !tbaa !15
  %9233 = load ptr, ptr %16, align 8, !tbaa !5
  %9234 = load i32, ptr %18, align 4, !tbaa !14
  %9235 = add nsw i32 %9234, 9
  %9236 = sext i32 %9235 to i64
  %9237 = getelementptr inbounds i8, ptr %9233, i64 %9236
  store i8 %9232, ptr %9237, align 1, !tbaa !15
  %9238 = load ptr, ptr %9, align 8, !tbaa !5
  %9239 = load ptr, ptr %14, align 8, !tbaa !5
  %9240 = load i32, ptr %18, align 4, !tbaa !14
  %9241 = add nsw i32 %9240, 9
  %9242 = sext i32 %9241 to i64
  %9243 = getelementptr inbounds i8, ptr %9239, i64 %9242
  %9244 = load i8, ptr %9243, align 1, !tbaa !15
  %9245 = zext i8 %9244 to i32
  %9246 = load ptr, ptr %15, align 8, !tbaa !5
  %9247 = load i32, ptr %18, align 4, !tbaa !14
  %9248 = add nsw i32 %9247, 9
  %9249 = sext i32 %9248 to i64
  %9250 = getelementptr inbounds i8, ptr %9246, i64 %9249
  %9251 = load i8, ptr %9250, align 1, !tbaa !15
  %9252 = zext i8 %9251 to i32
  %9253 = sub nsw i32 %9245, %9252
  %9254 = sext i32 %9253 to i64
  %9255 = getelementptr inbounds i8, ptr %9238, i64 %9254
  %9256 = load i8, ptr %9255, align 1, !tbaa !15
  %9257 = load ptr, ptr %17, align 8, !tbaa !5
  %9258 = load i32, ptr %18, align 4, !tbaa !14
  %9259 = add nsw i32 %9258, 9
  %9260 = sext i32 %9259 to i64
  %9261 = getelementptr inbounds i8, ptr %9257, i64 %9260
  store i8 %9256, ptr %9261, align 1, !tbaa !15
  %9262 = load ptr, ptr %14, align 8, !tbaa !5
  %9263 = load i32, ptr %18, align 4, !tbaa !14
  %9264 = add nsw i32 %9263, 10
  %9265 = sext i32 %9264 to i64
  %9266 = getelementptr inbounds i8, ptr %9262, i64 %9265
  %9267 = load i8, ptr %9266, align 1, !tbaa !15
  %9268 = zext i8 %9267 to i64
  %9269 = getelementptr inbounds [256 x i8], ptr @r_to_y, i64 0, i64 %9268
  %9270 = load i8, ptr %9269, align 1, !tbaa !15
  %9271 = zext i8 %9270 to i32
  %9272 = load ptr, ptr %13, align 8, !tbaa !5
  %9273 = load i32, ptr %18, align 4, !tbaa !14
  %9274 = add nsw i32 %9273, 10
  %9275 = sext i32 %9274 to i64
  %9276 = getelementptr inbounds i8, ptr %9272, i64 %9275
  %9277 = load i8, ptr %9276, align 1, !tbaa !15
  %9278 = zext i8 %9277 to i64
  %9279 = getelementptr inbounds [256 x i8], ptr @g_to_y, i64 0, i64 %9278
  %9280 = load i8, ptr %9279, align 1, !tbaa !15
  %9281 = zext i8 %9280 to i32
  %9282 = add nsw i32 %9271, %9281
  %9283 = load ptr, ptr %12, align 8, !tbaa !5
  %9284 = load i32, ptr %18, align 4, !tbaa !14
  %9285 = add nsw i32 %9284, 10
  %9286 = sext i32 %9285 to i64
  %9287 = getelementptr inbounds i8, ptr %9283, i64 %9286
  %9288 = load i8, ptr %9287, align 1, !tbaa !15
  %9289 = zext i8 %9288 to i64
  %9290 = getelementptr inbounds [256 x i8], ptr @b_to_y, i64 0, i64 %9289
  %9291 = load i8, ptr %9290, align 1, !tbaa !15
  %9292 = zext i8 %9291 to i32
  %9293 = add nsw i32 %9282, %9292
  %9294 = trunc i32 %9293 to i8
  %9295 = load ptr, ptr %15, align 8, !tbaa !5
  %9296 = load i32, ptr %18, align 4, !tbaa !14
  %9297 = add nsw i32 %9296, 10
  %9298 = sext i32 %9297 to i64
  %9299 = getelementptr inbounds i8, ptr %9295, i64 %9298
  store i8 %9294, ptr %9299, align 1, !tbaa !15
  %9300 = load ptr, ptr %10, align 8, !tbaa !5
  %9301 = load ptr, ptr %12, align 8, !tbaa !5
  %9302 = load i32, ptr %18, align 4, !tbaa !14
  %9303 = add nsw i32 %9302, 10
  %9304 = sext i32 %9303 to i64
  %9305 = getelementptr inbounds i8, ptr %9301, i64 %9304
  %9306 = load i8, ptr %9305, align 1, !tbaa !15
  %9307 = zext i8 %9306 to i32
  %9308 = load ptr, ptr %15, align 8, !tbaa !5
  %9309 = load i32, ptr %18, align 4, !tbaa !14
  %9310 = add nsw i32 %9309, 10
  %9311 = sext i32 %9310 to i64
  %9312 = getelementptr inbounds i8, ptr %9308, i64 %9311
  %9313 = load i8, ptr %9312, align 1, !tbaa !15
  %9314 = zext i8 %9313 to i32
  %9315 = sub nsw i32 %9307, %9314
  %9316 = sext i32 %9315 to i64
  %9317 = getelementptr inbounds i8, ptr %9300, i64 %9316
  %9318 = load i8, ptr %9317, align 1, !tbaa !15
  %9319 = load ptr, ptr %16, align 8, !tbaa !5
  %9320 = load i32, ptr %18, align 4, !tbaa !14
  %9321 = add nsw i32 %9320, 10
  %9322 = sext i32 %9321 to i64
  %9323 = getelementptr inbounds i8, ptr %9319, i64 %9322
  store i8 %9318, ptr %9323, align 1, !tbaa !15
  %9324 = load ptr, ptr %9, align 8, !tbaa !5
  %9325 = load ptr, ptr %14, align 8, !tbaa !5
  %9326 = load i32, ptr %18, align 4, !tbaa !14
  %9327 = add nsw i32 %9326, 10
  %9328 = sext i32 %9327 to i64
  %9329 = getelementptr inbounds i8, ptr %9325, i64 %9328
  %9330 = load i8, ptr %9329, align 1, !tbaa !15
  %9331 = zext i8 %9330 to i32
  %9332 = load ptr, ptr %15, align 8, !tbaa !5
  %9333 = load i32, ptr %18, align 4, !tbaa !14
  %9334 = add nsw i32 %9333, 10
  %9335 = sext i32 %9334 to i64
  %9336 = getelementptr inbounds i8, ptr %9332, i64 %9335
  %9337 = load i8, ptr %9336, align 1, !tbaa !15
  %9338 = zext i8 %9337 to i32
  %9339 = sub nsw i32 %9331, %9338
  %9340 = sext i32 %9339 to i64
  %9341 = getelementptr inbounds i8, ptr %9324, i64 %9340
  %9342 = load i8, ptr %9341, align 1, !tbaa !15
  %9343 = load ptr, ptr %17, align 8, !tbaa !5
  %9344 = load i32, ptr %18, align 4, !tbaa !14
  %9345 = add nsw i32 %9344, 10
  %9346 = sext i32 %9345 to i64
  %9347 = getelementptr inbounds i8, ptr %9343, i64 %9346
  store i8 %9342, ptr %9347, align 1, !tbaa !15
  %9348 = load ptr, ptr %14, align 8, !tbaa !5
  %9349 = load i32, ptr %18, align 4, !tbaa !14
  %9350 = add nsw i32 %9349, 11
  %9351 = sext i32 %9350 to i64
  %9352 = getelementptr inbounds i8, ptr %9348, i64 %9351
  %9353 = load i8, ptr %9352, align 1, !tbaa !15
  %9354 = zext i8 %9353 to i64
  %9355 = getelementptr inbounds [256 x i8], ptr @r_to_y, i64 0, i64 %9354
  %9356 = load i8, ptr %9355, align 1, !tbaa !15
  %9357 = zext i8 %9356 to i32
  %9358 = load ptr, ptr %13, align 8, !tbaa !5
  %9359 = load i32, ptr %18, align 4, !tbaa !14
  %9360 = add nsw i32 %9359, 11
  %9361 = sext i32 %9360 to i64
  %9362 = getelementptr inbounds i8, ptr %9358, i64 %9361
  %9363 = load i8, ptr %9362, align 1, !tbaa !15
  %9364 = zext i8 %9363 to i64
  %9365 = getelementptr inbounds [256 x i8], ptr @g_to_y, i64 0, i64 %9364
  %9366 = load i8, ptr %9365, align 1, !tbaa !15
  %9367 = zext i8 %9366 to i32
  %9368 = add nsw i32 %9357, %9367
  %9369 = load ptr, ptr %12, align 8, !tbaa !5
  %9370 = load i32, ptr %18, align 4, !tbaa !14
  %9371 = add nsw i32 %9370, 11
  %9372 = sext i32 %9371 to i64
  %9373 = getelementptr inbounds i8, ptr %9369, i64 %9372
  %9374 = load i8, ptr %9373, align 1, !tbaa !15
  %9375 = zext i8 %9374 to i64
  %9376 = getelementptr inbounds [256 x i8], ptr @b_to_y, i64 0, i64 %9375
  %9377 = load i8, ptr %9376, align 1, !tbaa !15
  %9378 = zext i8 %9377 to i32
  %9379 = add nsw i32 %9368, %9378
  %9380 = trunc i32 %9379 to i8
  %9381 = load ptr, ptr %15, align 8, !tbaa !5
  %9382 = load i32, ptr %18, align 4, !tbaa !14
  %9383 = add nsw i32 %9382, 11
  %9384 = sext i32 %9383 to i64
  %9385 = getelementptr inbounds i8, ptr %9381, i64 %9384
  store i8 %9380, ptr %9385, align 1, !tbaa !15
  %9386 = load ptr, ptr %10, align 8, !tbaa !5
  %9387 = load ptr, ptr %12, align 8, !tbaa !5
  %9388 = load i32, ptr %18, align 4, !tbaa !14
  %9389 = add nsw i32 %9388, 11
  %9390 = sext i32 %9389 to i64
  %9391 = getelementptr inbounds i8, ptr %9387, i64 %9390
  %9392 = load i8, ptr %9391, align 1, !tbaa !15
  %9393 = zext i8 %9392 to i32
  %9394 = load ptr, ptr %15, align 8, !tbaa !5
  %9395 = load i32, ptr %18, align 4, !tbaa !14
  %9396 = add nsw i32 %9395, 11
  %9397 = sext i32 %9396 to i64
  %9398 = getelementptr inbounds i8, ptr %9394, i64 %9397
  %9399 = load i8, ptr %9398, align 1, !tbaa !15
  %9400 = zext i8 %9399 to i32
  %9401 = sub nsw i32 %9393, %9400
  %9402 = sext i32 %9401 to i64
  %9403 = getelementptr inbounds i8, ptr %9386, i64 %9402
  %9404 = load i8, ptr %9403, align 1, !tbaa !15
  %9405 = load ptr, ptr %16, align 8, !tbaa !5
  %9406 = load i32, ptr %18, align 4, !tbaa !14
  %9407 = add nsw i32 %9406, 11
  %9408 = sext i32 %9407 to i64
  %9409 = getelementptr inbounds i8, ptr %9405, i64 %9408
  store i8 %9404, ptr %9409, align 1, !tbaa !15
  %9410 = load ptr, ptr %9, align 8, !tbaa !5
  %9411 = load ptr, ptr %14, align 8, !tbaa !5
  %9412 = load i32, ptr %18, align 4, !tbaa !14
  %9413 = add nsw i32 %9412, 11
  %9414 = sext i32 %9413 to i64
  %9415 = getelementptr inbounds i8, ptr %9411, i64 %9414
  %9416 = load i8, ptr %9415, align 1, !tbaa !15
  %9417 = zext i8 %9416 to i32
  %9418 = load ptr, ptr %15, align 8, !tbaa !5
  %9419 = load i32, ptr %18, align 4, !tbaa !14
  %9420 = add nsw i32 %9419, 11
  %9421 = sext i32 %9420 to i64
  %9422 = getelementptr inbounds i8, ptr %9418, i64 %9421
  %9423 = load i8, ptr %9422, align 1, !tbaa !15
  %9424 = zext i8 %9423 to i32
  %9425 = sub nsw i32 %9417, %9424
  %9426 = sext i32 %9425 to i64
  %9427 = getelementptr inbounds i8, ptr %9410, i64 %9426
  %9428 = load i8, ptr %9427, align 1, !tbaa !15
  %9429 = load ptr, ptr %17, align 8, !tbaa !5
  %9430 = load i32, ptr %18, align 4, !tbaa !14
  %9431 = add nsw i32 %9430, 11
  %9432 = sext i32 %9431 to i64
  %9433 = getelementptr inbounds i8, ptr %9429, i64 %9432
  store i8 %9428, ptr %9433, align 1, !tbaa !15
  %9434 = load ptr, ptr %14, align 8, !tbaa !5
  %9435 = load i32, ptr %18, align 4, !tbaa !14
  %9436 = add nsw i32 %9435, 12
  %9437 = sext i32 %9436 to i64
  %9438 = getelementptr inbounds i8, ptr %9434, i64 %9437
  %9439 = load i8, ptr %9438, align 1, !tbaa !15
  %9440 = zext i8 %9439 to i64
  %9441 = getelementptr inbounds [256 x i8], ptr @r_to_y, i64 0, i64 %9440
  %9442 = load i8, ptr %9441, align 1, !tbaa !15
  %9443 = zext i8 %9442 to i32
  %9444 = load ptr, ptr %13, align 8, !tbaa !5
  %9445 = load i32, ptr %18, align 4, !tbaa !14
  %9446 = add nsw i32 %9445, 12
  %9447 = sext i32 %9446 to i64
  %9448 = getelementptr inbounds i8, ptr %9444, i64 %9447
  %9449 = load i8, ptr %9448, align 1, !tbaa !15
  %9450 = zext i8 %9449 to i64
  %9451 = getelementptr inbounds [256 x i8], ptr @g_to_y, i64 0, i64 %9450
  %9452 = load i8, ptr %9451, align 1, !tbaa !15
  %9453 = zext i8 %9452 to i32
  %9454 = add nsw i32 %9443, %9453
  %9455 = load ptr, ptr %12, align 8, !tbaa !5
  %9456 = load i32, ptr %18, align 4, !tbaa !14
  %9457 = add nsw i32 %9456, 12
  %9458 = sext i32 %9457 to i64
  %9459 = getelementptr inbounds i8, ptr %9455, i64 %9458
  %9460 = load i8, ptr %9459, align 1, !tbaa !15
  %9461 = zext i8 %9460 to i64
  %9462 = getelementptr inbounds [256 x i8], ptr @b_to_y, i64 0, i64 %9461
  %9463 = load i8, ptr %9462, align 1, !tbaa !15
  %9464 = zext i8 %9463 to i32
  %9465 = add nsw i32 %9454, %9464
  %9466 = trunc i32 %9465 to i8
  %9467 = load ptr, ptr %15, align 8, !tbaa !5
  %9468 = load i32, ptr %18, align 4, !tbaa !14
  %9469 = add nsw i32 %9468, 12
  %9470 = sext i32 %9469 to i64
  %9471 = getelementptr inbounds i8, ptr %9467, i64 %9470
  store i8 %9466, ptr %9471, align 1, !tbaa !15
  %9472 = load ptr, ptr %10, align 8, !tbaa !5
  %9473 = load ptr, ptr %12, align 8, !tbaa !5
  %9474 = load i32, ptr %18, align 4, !tbaa !14
  %9475 = add nsw i32 %9474, 12
  %9476 = sext i32 %9475 to i64
  %9477 = getelementptr inbounds i8, ptr %9473, i64 %9476
  %9478 = load i8, ptr %9477, align 1, !tbaa !15
  %9479 = zext i8 %9478 to i32
  %9480 = load ptr, ptr %15, align 8, !tbaa !5
  %9481 = load i32, ptr %18, align 4, !tbaa !14
  %9482 = add nsw i32 %9481, 12
  %9483 = sext i32 %9482 to i64
  %9484 = getelementptr inbounds i8, ptr %9480, i64 %9483
  %9485 = load i8, ptr %9484, align 1, !tbaa !15
  %9486 = zext i8 %9485 to i32
  %9487 = sub nsw i32 %9479, %9486
  %9488 = sext i32 %9487 to i64
  %9489 = getelementptr inbounds i8, ptr %9472, i64 %9488
  %9490 = load i8, ptr %9489, align 1, !tbaa !15
  %9491 = load ptr, ptr %16, align 8, !tbaa !5
  %9492 = load i32, ptr %18, align 4, !tbaa !14
  %9493 = add nsw i32 %9492, 12
  %9494 = sext i32 %9493 to i64
  %9495 = getelementptr inbounds i8, ptr %9491, i64 %9494
  store i8 %9490, ptr %9495, align 1, !tbaa !15
  %9496 = load ptr, ptr %9, align 8, !tbaa !5
  %9497 = load ptr, ptr %14, align 8, !tbaa !5
  %9498 = load i32, ptr %18, align 4, !tbaa !14
  %9499 = add nsw i32 %9498, 12
  %9500 = sext i32 %9499 to i64
  %9501 = getelementptr inbounds i8, ptr %9497, i64 %9500
  %9502 = load i8, ptr %9501, align 1, !tbaa !15
  %9503 = zext i8 %9502 to i32
  %9504 = load ptr, ptr %15, align 8, !tbaa !5
  %9505 = load i32, ptr %18, align 4, !tbaa !14
  %9506 = add nsw i32 %9505, 12
  %9507 = sext i32 %9506 to i64
  %9508 = getelementptr inbounds i8, ptr %9504, i64 %9507
  %9509 = load i8, ptr %9508, align 1, !tbaa !15
  %9510 = zext i8 %9509 to i32
  %9511 = sub nsw i32 %9503, %9510
  %9512 = sext i32 %9511 to i64
  %9513 = getelementptr inbounds i8, ptr %9496, i64 %9512
  %9514 = load i8, ptr %9513, align 1, !tbaa !15
  %9515 = load ptr, ptr %17, align 8, !tbaa !5
  %9516 = load i32, ptr %18, align 4, !tbaa !14
  %9517 = add nsw i32 %9516, 12
  %9518 = sext i32 %9517 to i64
  %9519 = getelementptr inbounds i8, ptr %9515, i64 %9518
  store i8 %9514, ptr %9519, align 1, !tbaa !15
  br label %12032

9520:                                             ; preds = %8394
  %9521 = load ptr, ptr %4, align 8, !tbaa !5
  %9522 = getelementptr inbounds %struct.MImage, ptr %9521, i32 0, i32 2
  %9523 = load i32, ptr %9522, align 8, !tbaa !13
  %9524 = load i32, ptr %18, align 4, !tbaa !14
  %9525 = sub nsw i32 %9523, %9524
  %9526 = icmp eq i32 %9525, 14
  br i1 %9526, label %9527, label %10732

9527:                                             ; preds = %9520
  %9528 = load ptr, ptr %14, align 8, !tbaa !5
  %9529 = load i32, ptr %18, align 4, !tbaa !14
  %9530 = add nsw i32 %9529, 0
  %9531 = sext i32 %9530 to i64
  %9532 = getelementptr inbounds i8, ptr %9528, i64 %9531
  %9533 = load i8, ptr %9532, align 1, !tbaa !15
  %9534 = zext i8 %9533 to i64
  %9535 = getelementptr inbounds [256 x i8], ptr @r_to_y, i64 0, i64 %9534
  %9536 = load i8, ptr %9535, align 1, !tbaa !15
  %9537 = zext i8 %9536 to i32
  %9538 = load ptr, ptr %13, align 8, !tbaa !5
  %9539 = load i32, ptr %18, align 4, !tbaa !14
  %9540 = add nsw i32 %9539, 0
  %9541 = sext i32 %9540 to i64
  %9542 = getelementptr inbounds i8, ptr %9538, i64 %9541
  %9543 = load i8, ptr %9542, align 1, !tbaa !15
  %9544 = zext i8 %9543 to i64
  %9545 = getelementptr inbounds [256 x i8], ptr @g_to_y, i64 0, i64 %9544
  %9546 = load i8, ptr %9545, align 1, !tbaa !15
  %9547 = zext i8 %9546 to i32
  %9548 = add nsw i32 %9537, %9547
  %9549 = load ptr, ptr %12, align 8, !tbaa !5
  %9550 = load i32, ptr %18, align 4, !tbaa !14
  %9551 = add nsw i32 %9550, 0
  %9552 = sext i32 %9551 to i64
  %9553 = getelementptr inbounds i8, ptr %9549, i64 %9552
  %9554 = load i8, ptr %9553, align 1, !tbaa !15
  %9555 = zext i8 %9554 to i64
  %9556 = getelementptr inbounds [256 x i8], ptr @b_to_y, i64 0, i64 %9555
  %9557 = load i8, ptr %9556, align 1, !tbaa !15
  %9558 = zext i8 %9557 to i32
  %9559 = add nsw i32 %9548, %9558
  %9560 = trunc i32 %9559 to i8
  %9561 = load ptr, ptr %15, align 8, !tbaa !5
  %9562 = load i32, ptr %18, align 4, !tbaa !14
  %9563 = add nsw i32 %9562, 0
  %9564 = sext i32 %9563 to i64
  %9565 = getelementptr inbounds i8, ptr %9561, i64 %9564
  store i8 %9560, ptr %9565, align 1, !tbaa !15
  %9566 = load ptr, ptr %10, align 8, !tbaa !5
  %9567 = load ptr, ptr %12, align 8, !tbaa !5
  %9568 = load i32, ptr %18, align 4, !tbaa !14
  %9569 = add nsw i32 %9568, 0
  %9570 = sext i32 %9569 to i64
  %9571 = getelementptr inbounds i8, ptr %9567, i64 %9570
  %9572 = load i8, ptr %9571, align 1, !tbaa !15
  %9573 = zext i8 %9572 to i32
  %9574 = load ptr, ptr %15, align 8, !tbaa !5
  %9575 = load i32, ptr %18, align 4, !tbaa !14
  %9576 = add nsw i32 %9575, 0
  %9577 = sext i32 %9576 to i64
  %9578 = getelementptr inbounds i8, ptr %9574, i64 %9577
  %9579 = load i8, ptr %9578, align 1, !tbaa !15
  %9580 = zext i8 %9579 to i32
  %9581 = sub nsw i32 %9573, %9580
  %9582 = sext i32 %9581 to i64
  %9583 = getelementptr inbounds i8, ptr %9566, i64 %9582
  %9584 = load i8, ptr %9583, align 1, !tbaa !15
  %9585 = load ptr, ptr %16, align 8, !tbaa !5
  %9586 = load i32, ptr %18, align 4, !tbaa !14
  %9587 = add nsw i32 %9586, 0
  %9588 = sext i32 %9587 to i64
  %9589 = getelementptr inbounds i8, ptr %9585, i64 %9588
  store i8 %9584, ptr %9589, align 1, !tbaa !15
  %9590 = load ptr, ptr %9, align 8, !tbaa !5
  %9591 = load ptr, ptr %14, align 8, !tbaa !5
  %9592 = load i32, ptr %18, align 4, !tbaa !14
  %9593 = add nsw i32 %9592, 0
  %9594 = sext i32 %9593 to i64
  %9595 = getelementptr inbounds i8, ptr %9591, i64 %9594
  %9596 = load i8, ptr %9595, align 1, !tbaa !15
  %9597 = zext i8 %9596 to i32
  %9598 = load ptr, ptr %15, align 8, !tbaa !5
  %9599 = load i32, ptr %18, align 4, !tbaa !14
  %9600 = add nsw i32 %9599, 0
  %9601 = sext i32 %9600 to i64
  %9602 = getelementptr inbounds i8, ptr %9598, i64 %9601
  %9603 = load i8, ptr %9602, align 1, !tbaa !15
  %9604 = zext i8 %9603 to i32
  %9605 = sub nsw i32 %9597, %9604
  %9606 = sext i32 %9605 to i64
  %9607 = getelementptr inbounds i8, ptr %9590, i64 %9606
  %9608 = load i8, ptr %9607, align 1, !tbaa !15
  %9609 = load ptr, ptr %17, align 8, !tbaa !5
  %9610 = load i32, ptr %18, align 4, !tbaa !14
  %9611 = add nsw i32 %9610, 0
  %9612 = sext i32 %9611 to i64
  %9613 = getelementptr inbounds i8, ptr %9609, i64 %9612
  store i8 %9608, ptr %9613, align 1, !tbaa !15
  %9614 = load ptr, ptr %14, align 8, !tbaa !5
  %9615 = load i32, ptr %18, align 4, !tbaa !14
  %9616 = add nsw i32 %9615, 1
  %9617 = sext i32 %9616 to i64
  %9618 = getelementptr inbounds i8, ptr %9614, i64 %9617
  %9619 = load i8, ptr %9618, align 1, !tbaa !15
  %9620 = zext i8 %9619 to i64
  %9621 = getelementptr inbounds [256 x i8], ptr @r_to_y, i64 0, i64 %9620
  %9622 = load i8, ptr %9621, align 1, !tbaa !15
  %9623 = zext i8 %9622 to i32
  %9624 = load ptr, ptr %13, align 8, !tbaa !5
  %9625 = load i32, ptr %18, align 4, !tbaa !14
  %9626 = add nsw i32 %9625, 1
  %9627 = sext i32 %9626 to i64
  %9628 = getelementptr inbounds i8, ptr %9624, i64 %9627
  %9629 = load i8, ptr %9628, align 1, !tbaa !15
  %9630 = zext i8 %9629 to i64
  %9631 = getelementptr inbounds [256 x i8], ptr @g_to_y, i64 0, i64 %9630
  %9632 = load i8, ptr %9631, align 1, !tbaa !15
  %9633 = zext i8 %9632 to i32
  %9634 = add nsw i32 %9623, %9633
  %9635 = load ptr, ptr %12, align 8, !tbaa !5
  %9636 = load i32, ptr %18, align 4, !tbaa !14
  %9637 = add nsw i32 %9636, 1
  %9638 = sext i32 %9637 to i64
  %9639 = getelementptr inbounds i8, ptr %9635, i64 %9638
  %9640 = load i8, ptr %9639, align 1, !tbaa !15
  %9641 = zext i8 %9640 to i64
  %9642 = getelementptr inbounds [256 x i8], ptr @b_to_y, i64 0, i64 %9641
  %9643 = load i8, ptr %9642, align 1, !tbaa !15
  %9644 = zext i8 %9643 to i32
  %9645 = add nsw i32 %9634, %9644
  %9646 = trunc i32 %9645 to i8
  %9647 = load ptr, ptr %15, align 8, !tbaa !5
  %9648 = load i32, ptr %18, align 4, !tbaa !14
  %9649 = add nsw i32 %9648, 1
  %9650 = sext i32 %9649 to i64
  %9651 = getelementptr inbounds i8, ptr %9647, i64 %9650
  store i8 %9646, ptr %9651, align 1, !tbaa !15
  %9652 = load ptr, ptr %10, align 8, !tbaa !5
  %9653 = load ptr, ptr %12, align 8, !tbaa !5
  %9654 = load i32, ptr %18, align 4, !tbaa !14
  %9655 = add nsw i32 %9654, 1
  %9656 = sext i32 %9655 to i64
  %9657 = getelementptr inbounds i8, ptr %9653, i64 %9656
  %9658 = load i8, ptr %9657, align 1, !tbaa !15
  %9659 = zext i8 %9658 to i32
  %9660 = load ptr, ptr %15, align 8, !tbaa !5
  %9661 = load i32, ptr %18, align 4, !tbaa !14
  %9662 = add nsw i32 %9661, 1
  %9663 = sext i32 %9662 to i64
  %9664 = getelementptr inbounds i8, ptr %9660, i64 %9663
  %9665 = load i8, ptr %9664, align 1, !tbaa !15
  %9666 = zext i8 %9665 to i32
  %9667 = sub nsw i32 %9659, %9666
  %9668 = sext i32 %9667 to i64
  %9669 = getelementptr inbounds i8, ptr %9652, i64 %9668
  %9670 = load i8, ptr %9669, align 1, !tbaa !15
  %9671 = load ptr, ptr %16, align 8, !tbaa !5
  %9672 = load i32, ptr %18, align 4, !tbaa !14
  %9673 = add nsw i32 %9672, 1
  %9674 = sext i32 %9673 to i64
  %9675 = getelementptr inbounds i8, ptr %9671, i64 %9674
  store i8 %9670, ptr %9675, align 1, !tbaa !15
  %9676 = load ptr, ptr %9, align 8, !tbaa !5
  %9677 = load ptr, ptr %14, align 8, !tbaa !5
  %9678 = load i32, ptr %18, align 4, !tbaa !14
  %9679 = add nsw i32 %9678, 1
  %9680 = sext i32 %9679 to i64
  %9681 = getelementptr inbounds i8, ptr %9677, i64 %9680
  %9682 = load i8, ptr %9681, align 1, !tbaa !15
  %9683 = zext i8 %9682 to i32
  %9684 = load ptr, ptr %15, align 8, !tbaa !5
  %9685 = load i32, ptr %18, align 4, !tbaa !14
  %9686 = add nsw i32 %9685, 1
  %9687 = sext i32 %9686 to i64
  %9688 = getelementptr inbounds i8, ptr %9684, i64 %9687
  %9689 = load i8, ptr %9688, align 1, !tbaa !15
  %9690 = zext i8 %9689 to i32
  %9691 = sub nsw i32 %9683, %9690
  %9692 = sext i32 %9691 to i64
  %9693 = getelementptr inbounds i8, ptr %9676, i64 %9692
  %9694 = load i8, ptr %9693, align 1, !tbaa !15
  %9695 = load ptr, ptr %17, align 8, !tbaa !5
  %9696 = load i32, ptr %18, align 4, !tbaa !14
  %9697 = add nsw i32 %9696, 1
  %9698 = sext i32 %9697 to i64
  %9699 = getelementptr inbounds i8, ptr %9695, i64 %9698
  store i8 %9694, ptr %9699, align 1, !tbaa !15
  %9700 = load ptr, ptr %14, align 8, !tbaa !5
  %9701 = load i32, ptr %18, align 4, !tbaa !14
  %9702 = add nsw i32 %9701, 2
  %9703 = sext i32 %9702 to i64
  %9704 = getelementptr inbounds i8, ptr %9700, i64 %9703
  %9705 = load i8, ptr %9704, align 1, !tbaa !15
  %9706 = zext i8 %9705 to i64
  %9707 = getelementptr inbounds [256 x i8], ptr @r_to_y, i64 0, i64 %9706
  %9708 = load i8, ptr %9707, align 1, !tbaa !15
  %9709 = zext i8 %9708 to i32
  %9710 = load ptr, ptr %13, align 8, !tbaa !5
  %9711 = load i32, ptr %18, align 4, !tbaa !14
  %9712 = add nsw i32 %9711, 2
  %9713 = sext i32 %9712 to i64
  %9714 = getelementptr inbounds i8, ptr %9710, i64 %9713
  %9715 = load i8, ptr %9714, align 1, !tbaa !15
  %9716 = zext i8 %9715 to i64
  %9717 = getelementptr inbounds [256 x i8], ptr @g_to_y, i64 0, i64 %9716
  %9718 = load i8, ptr %9717, align 1, !tbaa !15
  %9719 = zext i8 %9718 to i32
  %9720 = add nsw i32 %9709, %9719
  %9721 = load ptr, ptr %12, align 8, !tbaa !5
  %9722 = load i32, ptr %18, align 4, !tbaa !14
  %9723 = add nsw i32 %9722, 2
  %9724 = sext i32 %9723 to i64
  %9725 = getelementptr inbounds i8, ptr %9721, i64 %9724
  %9726 = load i8, ptr %9725, align 1, !tbaa !15
  %9727 = zext i8 %9726 to i64
  %9728 = getelementptr inbounds [256 x i8], ptr @b_to_y, i64 0, i64 %9727
  %9729 = load i8, ptr %9728, align 1, !tbaa !15
  %9730 = zext i8 %9729 to i32
  %9731 = add nsw i32 %9720, %9730
  %9732 = trunc i32 %9731 to i8
  %9733 = load ptr, ptr %15, align 8, !tbaa !5
  %9734 = load i32, ptr %18, align 4, !tbaa !14
  %9735 = add nsw i32 %9734, 2
  %9736 = sext i32 %9735 to i64
  %9737 = getelementptr inbounds i8, ptr %9733, i64 %9736
  store i8 %9732, ptr %9737, align 1, !tbaa !15
  %9738 = load ptr, ptr %10, align 8, !tbaa !5
  %9739 = load ptr, ptr %12, align 8, !tbaa !5
  %9740 = load i32, ptr %18, align 4, !tbaa !14
  %9741 = add nsw i32 %9740, 2
  %9742 = sext i32 %9741 to i64
  %9743 = getelementptr inbounds i8, ptr %9739, i64 %9742
  %9744 = load i8, ptr %9743, align 1, !tbaa !15
  %9745 = zext i8 %9744 to i32
  %9746 = load ptr, ptr %15, align 8, !tbaa !5
  %9747 = load i32, ptr %18, align 4, !tbaa !14
  %9748 = add nsw i32 %9747, 2
  %9749 = sext i32 %9748 to i64
  %9750 = getelementptr inbounds i8, ptr %9746, i64 %9749
  %9751 = load i8, ptr %9750, align 1, !tbaa !15
  %9752 = zext i8 %9751 to i32
  %9753 = sub nsw i32 %9745, %9752
  %9754 = sext i32 %9753 to i64
  %9755 = getelementptr inbounds i8, ptr %9738, i64 %9754
  %9756 = load i8, ptr %9755, align 1, !tbaa !15
  %9757 = load ptr, ptr %16, align 8, !tbaa !5
  %9758 = load i32, ptr %18, align 4, !tbaa !14
  %9759 = add nsw i32 %9758, 2
  %9760 = sext i32 %9759 to i64
  %9761 = getelementptr inbounds i8, ptr %9757, i64 %9760
  store i8 %9756, ptr %9761, align 1, !tbaa !15
  %9762 = load ptr, ptr %9, align 8, !tbaa !5
  %9763 = load ptr, ptr %14, align 8, !tbaa !5
  %9764 = load i32, ptr %18, align 4, !tbaa !14
  %9765 = add nsw i32 %9764, 2
  %9766 = sext i32 %9765 to i64
  %9767 = getelementptr inbounds i8, ptr %9763, i64 %9766
  %9768 = load i8, ptr %9767, align 1, !tbaa !15
  %9769 = zext i8 %9768 to i32
  %9770 = load ptr, ptr %15, align 8, !tbaa !5
  %9771 = load i32, ptr %18, align 4, !tbaa !14
  %9772 = add nsw i32 %9771, 2
  %9773 = sext i32 %9772 to i64
  %9774 = getelementptr inbounds i8, ptr %9770, i64 %9773
  %9775 = load i8, ptr %9774, align 1, !tbaa !15
  %9776 = zext i8 %9775 to i32
  %9777 = sub nsw i32 %9769, %9776
  %9778 = sext i32 %9777 to i64
  %9779 = getelementptr inbounds i8, ptr %9762, i64 %9778
  %9780 = load i8, ptr %9779, align 1, !tbaa !15
  %9781 = load ptr, ptr %17, align 8, !tbaa !5
  %9782 = load i32, ptr %18, align 4, !tbaa !14
  %9783 = add nsw i32 %9782, 2
  %9784 = sext i32 %9783 to i64
  %9785 = getelementptr inbounds i8, ptr %9781, i64 %9784
  store i8 %9780, ptr %9785, align 1, !tbaa !15
  %9786 = load ptr, ptr %14, align 8, !tbaa !5
  %9787 = load i32, ptr %18, align 4, !tbaa !14
  %9788 = add nsw i32 %9787, 3
  %9789 = sext i32 %9788 to i64
  %9790 = getelementptr inbounds i8, ptr %9786, i64 %9789
  %9791 = load i8, ptr %9790, align 1, !tbaa !15
  %9792 = zext i8 %9791 to i64
  %9793 = getelementptr inbounds [256 x i8], ptr @r_to_y, i64 0, i64 %9792
  %9794 = load i8, ptr %9793, align 1, !tbaa !15
  %9795 = zext i8 %9794 to i32
  %9796 = load ptr, ptr %13, align 8, !tbaa !5
  %9797 = load i32, ptr %18, align 4, !tbaa !14
  %9798 = add nsw i32 %9797, 3
  %9799 = sext i32 %9798 to i64
  %9800 = getelementptr inbounds i8, ptr %9796, i64 %9799
  %9801 = load i8, ptr %9800, align 1, !tbaa !15
  %9802 = zext i8 %9801 to i64
  %9803 = getelementptr inbounds [256 x i8], ptr @g_to_y, i64 0, i64 %9802
  %9804 = load i8, ptr %9803, align 1, !tbaa !15
  %9805 = zext i8 %9804 to i32
  %9806 = add nsw i32 %9795, %9805
  %9807 = load ptr, ptr %12, align 8, !tbaa !5
  %9808 = load i32, ptr %18, align 4, !tbaa !14
  %9809 = add nsw i32 %9808, 3
  %9810 = sext i32 %9809 to i64
  %9811 = getelementptr inbounds i8, ptr %9807, i64 %9810
  %9812 = load i8, ptr %9811, align 1, !tbaa !15
  %9813 = zext i8 %9812 to i64
  %9814 = getelementptr inbounds [256 x i8], ptr @b_to_y, i64 0, i64 %9813
  %9815 = load i8, ptr %9814, align 1, !tbaa !15
  %9816 = zext i8 %9815 to i32
  %9817 = add nsw i32 %9806, %9816
  %9818 = trunc i32 %9817 to i8
  %9819 = load ptr, ptr %15, align 8, !tbaa !5
  %9820 = load i32, ptr %18, align 4, !tbaa !14
  %9821 = add nsw i32 %9820, 3
  %9822 = sext i32 %9821 to i64
  %9823 = getelementptr inbounds i8, ptr %9819, i64 %9822
  store i8 %9818, ptr %9823, align 1, !tbaa !15
  %9824 = load ptr, ptr %10, align 8, !tbaa !5
  %9825 = load ptr, ptr %12, align 8, !tbaa !5
  %9826 = load i32, ptr %18, align 4, !tbaa !14
  %9827 = add nsw i32 %9826, 3
  %9828 = sext i32 %9827 to i64
  %9829 = getelementptr inbounds i8, ptr %9825, i64 %9828
  %9830 = load i8, ptr %9829, align 1, !tbaa !15
  %9831 = zext i8 %9830 to i32
  %9832 = load ptr, ptr %15, align 8, !tbaa !5
  %9833 = load i32, ptr %18, align 4, !tbaa !14
  %9834 = add nsw i32 %9833, 3
  %9835 = sext i32 %9834 to i64
  %9836 = getelementptr inbounds i8, ptr %9832, i64 %9835
  %9837 = load i8, ptr %9836, align 1, !tbaa !15
  %9838 = zext i8 %9837 to i32
  %9839 = sub nsw i32 %9831, %9838
  %9840 = sext i32 %9839 to i64
  %9841 = getelementptr inbounds i8, ptr %9824, i64 %9840
  %9842 = load i8, ptr %9841, align 1, !tbaa !15
  %9843 = load ptr, ptr %16, align 8, !tbaa !5
  %9844 = load i32, ptr %18, align 4, !tbaa !14
  %9845 = add nsw i32 %9844, 3
  %9846 = sext i32 %9845 to i64
  %9847 = getelementptr inbounds i8, ptr %9843, i64 %9846
  store i8 %9842, ptr %9847, align 1, !tbaa !15
  %9848 = load ptr, ptr %9, align 8, !tbaa !5
  %9849 = load ptr, ptr %14, align 8, !tbaa !5
  %9850 = load i32, ptr %18, align 4, !tbaa !14
  %9851 = add nsw i32 %9850, 3
  %9852 = sext i32 %9851 to i64
  %9853 = getelementptr inbounds i8, ptr %9849, i64 %9852
  %9854 = load i8, ptr %9853, align 1, !tbaa !15
  %9855 = zext i8 %9854 to i32
  %9856 = load ptr, ptr %15, align 8, !tbaa !5
  %9857 = load i32, ptr %18, align 4, !tbaa !14
  %9858 = add nsw i32 %9857, 3
  %9859 = sext i32 %9858 to i64
  %9860 = getelementptr inbounds i8, ptr %9856, i64 %9859
  %9861 = load i8, ptr %9860, align 1, !tbaa !15
  %9862 = zext i8 %9861 to i32
  %9863 = sub nsw i32 %9855, %9862
  %9864 = sext i32 %9863 to i64
  %9865 = getelementptr inbounds i8, ptr %9848, i64 %9864
  %9866 = load i8, ptr %9865, align 1, !tbaa !15
  %9867 = load ptr, ptr %17, align 8, !tbaa !5
  %9868 = load i32, ptr %18, align 4, !tbaa !14
  %9869 = add nsw i32 %9868, 3
  %9870 = sext i32 %9869 to i64
  %9871 = getelementptr inbounds i8, ptr %9867, i64 %9870
  store i8 %9866, ptr %9871, align 1, !tbaa !15
  %9872 = load ptr, ptr %14, align 8, !tbaa !5
  %9873 = load i32, ptr %18, align 4, !tbaa !14
  %9874 = add nsw i32 %9873, 4
  %9875 = sext i32 %9874 to i64
  %9876 = getelementptr inbounds i8, ptr %9872, i64 %9875
  %9877 = load i8, ptr %9876, align 1, !tbaa !15
  %9878 = zext i8 %9877 to i64
  %9879 = getelementptr inbounds [256 x i8], ptr @r_to_y, i64 0, i64 %9878
  %9880 = load i8, ptr %9879, align 1, !tbaa !15
  %9881 = zext i8 %9880 to i32
  %9882 = load ptr, ptr %13, align 8, !tbaa !5
  %9883 = load i32, ptr %18, align 4, !tbaa !14
  %9884 = add nsw i32 %9883, 4
  %9885 = sext i32 %9884 to i64
  %9886 = getelementptr inbounds i8, ptr %9882, i64 %9885
  %9887 = load i8, ptr %9886, align 1, !tbaa !15
  %9888 = zext i8 %9887 to i64
  %9889 = getelementptr inbounds [256 x i8], ptr @g_to_y, i64 0, i64 %9888
  %9890 = load i8, ptr %9889, align 1, !tbaa !15
  %9891 = zext i8 %9890 to i32
  %9892 = add nsw i32 %9881, %9891
  %9893 = load ptr, ptr %12, align 8, !tbaa !5
  %9894 = load i32, ptr %18, align 4, !tbaa !14
  %9895 = add nsw i32 %9894, 4
  %9896 = sext i32 %9895 to i64
  %9897 = getelementptr inbounds i8, ptr %9893, i64 %9896
  %9898 = load i8, ptr %9897, align 1, !tbaa !15
  %9899 = zext i8 %9898 to i64
  %9900 = getelementptr inbounds [256 x i8], ptr @b_to_y, i64 0, i64 %9899
  %9901 = load i8, ptr %9900, align 1, !tbaa !15
  %9902 = zext i8 %9901 to i32
  %9903 = add nsw i32 %9892, %9902
  %9904 = trunc i32 %9903 to i8
  %9905 = load ptr, ptr %15, align 8, !tbaa !5
  %9906 = load i32, ptr %18, align 4, !tbaa !14
  %9907 = add nsw i32 %9906, 4
  %9908 = sext i32 %9907 to i64
  %9909 = getelementptr inbounds i8, ptr %9905, i64 %9908
  store i8 %9904, ptr %9909, align 1, !tbaa !15
  %9910 = load ptr, ptr %10, align 8, !tbaa !5
  %9911 = load ptr, ptr %12, align 8, !tbaa !5
  %9912 = load i32, ptr %18, align 4, !tbaa !14
  %9913 = add nsw i32 %9912, 4
  %9914 = sext i32 %9913 to i64
  %9915 = getelementptr inbounds i8, ptr %9911, i64 %9914
  %9916 = load i8, ptr %9915, align 1, !tbaa !15
  %9917 = zext i8 %9916 to i32
  %9918 = load ptr, ptr %15, align 8, !tbaa !5
  %9919 = load i32, ptr %18, align 4, !tbaa !14
  %9920 = add nsw i32 %9919, 4
  %9921 = sext i32 %9920 to i64
  %9922 = getelementptr inbounds i8, ptr %9918, i64 %9921
  %9923 = load i8, ptr %9922, align 1, !tbaa !15
  %9924 = zext i8 %9923 to i32
  %9925 = sub nsw i32 %9917, %9924
  %9926 = sext i32 %9925 to i64
  %9927 = getelementptr inbounds i8, ptr %9910, i64 %9926
  %9928 = load i8, ptr %9927, align 1, !tbaa !15
  %9929 = load ptr, ptr %16, align 8, !tbaa !5
  %9930 = load i32, ptr %18, align 4, !tbaa !14
  %9931 = add nsw i32 %9930, 4
  %9932 = sext i32 %9931 to i64
  %9933 = getelementptr inbounds i8, ptr %9929, i64 %9932
  store i8 %9928, ptr %9933, align 1, !tbaa !15
  %9934 = load ptr, ptr %9, align 8, !tbaa !5
  %9935 = load ptr, ptr %14, align 8, !tbaa !5
  %9936 = load i32, ptr %18, align 4, !tbaa !14
  %9937 = add nsw i32 %9936, 4
  %9938 = sext i32 %9937 to i64
  %9939 = getelementptr inbounds i8, ptr %9935, i64 %9938
  %9940 = load i8, ptr %9939, align 1, !tbaa !15
  %9941 = zext i8 %9940 to i32
  %9942 = load ptr, ptr %15, align 8, !tbaa !5
  %9943 = load i32, ptr %18, align 4, !tbaa !14
  %9944 = add nsw i32 %9943, 4
  %9945 = sext i32 %9944 to i64
  %9946 = getelementptr inbounds i8, ptr %9942, i64 %9945
  %9947 = load i8, ptr %9946, align 1, !tbaa !15
  %9948 = zext i8 %9947 to i32
  %9949 = sub nsw i32 %9941, %9948
  %9950 = sext i32 %9949 to i64
  %9951 = getelementptr inbounds i8, ptr %9934, i64 %9950
  %9952 = load i8, ptr %9951, align 1, !tbaa !15
  %9953 = load ptr, ptr %17, align 8, !tbaa !5
  %9954 = load i32, ptr %18, align 4, !tbaa !14
  %9955 = add nsw i32 %9954, 4
  %9956 = sext i32 %9955 to i64
  %9957 = getelementptr inbounds i8, ptr %9953, i64 %9956
  store i8 %9952, ptr %9957, align 1, !tbaa !15
  %9958 = load ptr, ptr %14, align 8, !tbaa !5
  %9959 = load i32, ptr %18, align 4, !tbaa !14
  %9960 = add nsw i32 %9959, 5
  %9961 = sext i32 %9960 to i64
  %9962 = getelementptr inbounds i8, ptr %9958, i64 %9961
  %9963 = load i8, ptr %9962, align 1, !tbaa !15
  %9964 = zext i8 %9963 to i64
  %9965 = getelementptr inbounds [256 x i8], ptr @r_to_y, i64 0, i64 %9964
  %9966 = load i8, ptr %9965, align 1, !tbaa !15
  %9967 = zext i8 %9966 to i32
  %9968 = load ptr, ptr %13, align 8, !tbaa !5
  %9969 = load i32, ptr %18, align 4, !tbaa !14
  %9970 = add nsw i32 %9969, 5
  %9971 = sext i32 %9970 to i64
  %9972 = getelementptr inbounds i8, ptr %9968, i64 %9971
  %9973 = load i8, ptr %9972, align 1, !tbaa !15
  %9974 = zext i8 %9973 to i64
  %9975 = getelementptr inbounds [256 x i8], ptr @g_to_y, i64 0, i64 %9974
  %9976 = load i8, ptr %9975, align 1, !tbaa !15
  %9977 = zext i8 %9976 to i32
  %9978 = add nsw i32 %9967, %9977
  %9979 = load ptr, ptr %12, align 8, !tbaa !5
  %9980 = load i32, ptr %18, align 4, !tbaa !14
  %9981 = add nsw i32 %9980, 5
  %9982 = sext i32 %9981 to i64
  %9983 = getelementptr inbounds i8, ptr %9979, i64 %9982
  %9984 = load i8, ptr %9983, align 1, !tbaa !15
  %9985 = zext i8 %9984 to i64
  %9986 = getelementptr inbounds [256 x i8], ptr @b_to_y, i64 0, i64 %9985
  %9987 = load i8, ptr %9986, align 1, !tbaa !15
  %9988 = zext i8 %9987 to i32
  %9989 = add nsw i32 %9978, %9988
  %9990 = trunc i32 %9989 to i8
  %9991 = load ptr, ptr %15, align 8, !tbaa !5
  %9992 = load i32, ptr %18, align 4, !tbaa !14
  %9993 = add nsw i32 %9992, 5
  %9994 = sext i32 %9993 to i64
  %9995 = getelementptr inbounds i8, ptr %9991, i64 %9994
  store i8 %9990, ptr %9995, align 1, !tbaa !15
  %9996 = load ptr, ptr %10, align 8, !tbaa !5
  %9997 = load ptr, ptr %12, align 8, !tbaa !5
  %9998 = load i32, ptr %18, align 4, !tbaa !14
  %9999 = add nsw i32 %9998, 5
  %10000 = sext i32 %9999 to i64
  %10001 = getelementptr inbounds i8, ptr %9997, i64 %10000
  %10002 = load i8, ptr %10001, align 1, !tbaa !15
  %10003 = zext i8 %10002 to i32
  %10004 = load ptr, ptr %15, align 8, !tbaa !5
  %10005 = load i32, ptr %18, align 4, !tbaa !14
  %10006 = add nsw i32 %10005, 5
  %10007 = sext i32 %10006 to i64
  %10008 = getelementptr inbounds i8, ptr %10004, i64 %10007
  %10009 = load i8, ptr %10008, align 1, !tbaa !15
  %10010 = zext i8 %10009 to i32
  %10011 = sub nsw i32 %10003, %10010
  %10012 = sext i32 %10011 to i64
  %10013 = getelementptr inbounds i8, ptr %9996, i64 %10012
  %10014 = load i8, ptr %10013, align 1, !tbaa !15
  %10015 = load ptr, ptr %16, align 8, !tbaa !5
  %10016 = load i32, ptr %18, align 4, !tbaa !14
  %10017 = add nsw i32 %10016, 5
  %10018 = sext i32 %10017 to i64
  %10019 = getelementptr inbounds i8, ptr %10015, i64 %10018
  store i8 %10014, ptr %10019, align 1, !tbaa !15
  %10020 = load ptr, ptr %9, align 8, !tbaa !5
  %10021 = load ptr, ptr %14, align 8, !tbaa !5
  %10022 = load i32, ptr %18, align 4, !tbaa !14
  %10023 = add nsw i32 %10022, 5
  %10024 = sext i32 %10023 to i64
  %10025 = getelementptr inbounds i8, ptr %10021, i64 %10024
  %10026 = load i8, ptr %10025, align 1, !tbaa !15
  %10027 = zext i8 %10026 to i32
  %10028 = load ptr, ptr %15, align 8, !tbaa !5
  %10029 = load i32, ptr %18, align 4, !tbaa !14
  %10030 = add nsw i32 %10029, 5
  %10031 = sext i32 %10030 to i64
  %10032 = getelementptr inbounds i8, ptr %10028, i64 %10031
  %10033 = load i8, ptr %10032, align 1, !tbaa !15
  %10034 = zext i8 %10033 to i32
  %10035 = sub nsw i32 %10027, %10034
  %10036 = sext i32 %10035 to i64
  %10037 = getelementptr inbounds i8, ptr %10020, i64 %10036
  %10038 = load i8, ptr %10037, align 1, !tbaa !15
  %10039 = load ptr, ptr %17, align 8, !tbaa !5
  %10040 = load i32, ptr %18, align 4, !tbaa !14
  %10041 = add nsw i32 %10040, 5
  %10042 = sext i32 %10041 to i64
  %10043 = getelementptr inbounds i8, ptr %10039, i64 %10042
  store i8 %10038, ptr %10043, align 1, !tbaa !15
  %10044 = load ptr, ptr %14, align 8, !tbaa !5
  %10045 = load i32, ptr %18, align 4, !tbaa !14
  %10046 = add nsw i32 %10045, 6
  %10047 = sext i32 %10046 to i64
  %10048 = getelementptr inbounds i8, ptr %10044, i64 %10047
  %10049 = load i8, ptr %10048, align 1, !tbaa !15
  %10050 = zext i8 %10049 to i64
  %10051 = getelementptr inbounds [256 x i8], ptr @r_to_y, i64 0, i64 %10050
  %10052 = load i8, ptr %10051, align 1, !tbaa !15
  %10053 = zext i8 %10052 to i32
  %10054 = load ptr, ptr %13, align 8, !tbaa !5
  %10055 = load i32, ptr %18, align 4, !tbaa !14
  %10056 = add nsw i32 %10055, 6
  %10057 = sext i32 %10056 to i64
  %10058 = getelementptr inbounds i8, ptr %10054, i64 %10057
  %10059 = load i8, ptr %10058, align 1, !tbaa !15
  %10060 = zext i8 %10059 to i64
  %10061 = getelementptr inbounds [256 x i8], ptr @g_to_y, i64 0, i64 %10060
  %10062 = load i8, ptr %10061, align 1, !tbaa !15
  %10063 = zext i8 %10062 to i32
  %10064 = add nsw i32 %10053, %10063
  %10065 = load ptr, ptr %12, align 8, !tbaa !5
  %10066 = load i32, ptr %18, align 4, !tbaa !14
  %10067 = add nsw i32 %10066, 6
  %10068 = sext i32 %10067 to i64
  %10069 = getelementptr inbounds i8, ptr %10065, i64 %10068
  %10070 = load i8, ptr %10069, align 1, !tbaa !15
  %10071 = zext i8 %10070 to i64
  %10072 = getelementptr inbounds [256 x i8], ptr @b_to_y, i64 0, i64 %10071
  %10073 = load i8, ptr %10072, align 1, !tbaa !15
  %10074 = zext i8 %10073 to i32
  %10075 = add nsw i32 %10064, %10074
  %10076 = trunc i32 %10075 to i8
  %10077 = load ptr, ptr %15, align 8, !tbaa !5
  %10078 = load i32, ptr %18, align 4, !tbaa !14
  %10079 = add nsw i32 %10078, 6
  %10080 = sext i32 %10079 to i64
  %10081 = getelementptr inbounds i8, ptr %10077, i64 %10080
  store i8 %10076, ptr %10081, align 1, !tbaa !15
  %10082 = load ptr, ptr %10, align 8, !tbaa !5
  %10083 = load ptr, ptr %12, align 8, !tbaa !5
  %10084 = load i32, ptr %18, align 4, !tbaa !14
  %10085 = add nsw i32 %10084, 6
  %10086 = sext i32 %10085 to i64
  %10087 = getelementptr inbounds i8, ptr %10083, i64 %10086
  %10088 = load i8, ptr %10087, align 1, !tbaa !15
  %10089 = zext i8 %10088 to i32
  %10090 = load ptr, ptr %15, align 8, !tbaa !5
  %10091 = load i32, ptr %18, align 4, !tbaa !14
  %10092 = add nsw i32 %10091, 6
  %10093 = sext i32 %10092 to i64
  %10094 = getelementptr inbounds i8, ptr %10090, i64 %10093
  %10095 = load i8, ptr %10094, align 1, !tbaa !15
  %10096 = zext i8 %10095 to i32
  %10097 = sub nsw i32 %10089, %10096
  %10098 = sext i32 %10097 to i64
  %10099 = getelementptr inbounds i8, ptr %10082, i64 %10098
  %10100 = load i8, ptr %10099, align 1, !tbaa !15
  %10101 = load ptr, ptr %16, align 8, !tbaa !5
  %10102 = load i32, ptr %18, align 4, !tbaa !14
  %10103 = add nsw i32 %10102, 6
  %10104 = sext i32 %10103 to i64
  %10105 = getelementptr inbounds i8, ptr %10101, i64 %10104
  store i8 %10100, ptr %10105, align 1, !tbaa !15
  %10106 = load ptr, ptr %9, align 8, !tbaa !5
  %10107 = load ptr, ptr %14, align 8, !tbaa !5
  %10108 = load i32, ptr %18, align 4, !tbaa !14
  %10109 = add nsw i32 %10108, 6
  %10110 = sext i32 %10109 to i64
  %10111 = getelementptr inbounds i8, ptr %10107, i64 %10110
  %10112 = load i8, ptr %10111, align 1, !tbaa !15
  %10113 = zext i8 %10112 to i32
  %10114 = load ptr, ptr %15, align 8, !tbaa !5
  %10115 = load i32, ptr %18, align 4, !tbaa !14
  %10116 = add nsw i32 %10115, 6
  %10117 = sext i32 %10116 to i64
  %10118 = getelementptr inbounds i8, ptr %10114, i64 %10117
  %10119 = load i8, ptr %10118, align 1, !tbaa !15
  %10120 = zext i8 %10119 to i32
  %10121 = sub nsw i32 %10113, %10120
  %10122 = sext i32 %10121 to i64
  %10123 = getelementptr inbounds i8, ptr %10106, i64 %10122
  %10124 = load i8, ptr %10123, align 1, !tbaa !15
  %10125 = load ptr, ptr %17, align 8, !tbaa !5
  %10126 = load i32, ptr %18, align 4, !tbaa !14
  %10127 = add nsw i32 %10126, 6
  %10128 = sext i32 %10127 to i64
  %10129 = getelementptr inbounds i8, ptr %10125, i64 %10128
  store i8 %10124, ptr %10129, align 1, !tbaa !15
  %10130 = load ptr, ptr %14, align 8, !tbaa !5
  %10131 = load i32, ptr %18, align 4, !tbaa !14
  %10132 = add nsw i32 %10131, 7
  %10133 = sext i32 %10132 to i64
  %10134 = getelementptr inbounds i8, ptr %10130, i64 %10133
  %10135 = load i8, ptr %10134, align 1, !tbaa !15
  %10136 = zext i8 %10135 to i64
  %10137 = getelementptr inbounds [256 x i8], ptr @r_to_y, i64 0, i64 %10136
  %10138 = load i8, ptr %10137, align 1, !tbaa !15
  %10139 = zext i8 %10138 to i32
  %10140 = load ptr, ptr %13, align 8, !tbaa !5
  %10141 = load i32, ptr %18, align 4, !tbaa !14
  %10142 = add nsw i32 %10141, 7
  %10143 = sext i32 %10142 to i64
  %10144 = getelementptr inbounds i8, ptr %10140, i64 %10143
  %10145 = load i8, ptr %10144, align 1, !tbaa !15
  %10146 = zext i8 %10145 to i64
  %10147 = getelementptr inbounds [256 x i8], ptr @g_to_y, i64 0, i64 %10146
  %10148 = load i8, ptr %10147, align 1, !tbaa !15
  %10149 = zext i8 %10148 to i32
  %10150 = add nsw i32 %10139, %10149
  %10151 = load ptr, ptr %12, align 8, !tbaa !5
  %10152 = load i32, ptr %18, align 4, !tbaa !14
  %10153 = add nsw i32 %10152, 7
  %10154 = sext i32 %10153 to i64
  %10155 = getelementptr inbounds i8, ptr %10151, i64 %10154
  %10156 = load i8, ptr %10155, align 1, !tbaa !15
  %10157 = zext i8 %10156 to i64
  %10158 = getelementptr inbounds [256 x i8], ptr @b_to_y, i64 0, i64 %10157
  %10159 = load i8, ptr %10158, align 1, !tbaa !15
  %10160 = zext i8 %10159 to i32
  %10161 = add nsw i32 %10150, %10160
  %10162 = trunc i32 %10161 to i8
  %10163 = load ptr, ptr %15, align 8, !tbaa !5
  %10164 = load i32, ptr %18, align 4, !tbaa !14
  %10165 = add nsw i32 %10164, 7
  %10166 = sext i32 %10165 to i64
  %10167 = getelementptr inbounds i8, ptr %10163, i64 %10166
  store i8 %10162, ptr %10167, align 1, !tbaa !15
  %10168 = load ptr, ptr %10, align 8, !tbaa !5
  %10169 = load ptr, ptr %12, align 8, !tbaa !5
  %10170 = load i32, ptr %18, align 4, !tbaa !14
  %10171 = add nsw i32 %10170, 7
  %10172 = sext i32 %10171 to i64
  %10173 = getelementptr inbounds i8, ptr %10169, i64 %10172
  %10174 = load i8, ptr %10173, align 1, !tbaa !15
  %10175 = zext i8 %10174 to i32
  %10176 = load ptr, ptr %15, align 8, !tbaa !5
  %10177 = load i32, ptr %18, align 4, !tbaa !14
  %10178 = add nsw i32 %10177, 7
  %10179 = sext i32 %10178 to i64
  %10180 = getelementptr inbounds i8, ptr %10176, i64 %10179
  %10181 = load i8, ptr %10180, align 1, !tbaa !15
  %10182 = zext i8 %10181 to i32
  %10183 = sub nsw i32 %10175, %10182
  %10184 = sext i32 %10183 to i64
  %10185 = getelementptr inbounds i8, ptr %10168, i64 %10184
  %10186 = load i8, ptr %10185, align 1, !tbaa !15
  %10187 = load ptr, ptr %16, align 8, !tbaa !5
  %10188 = load i32, ptr %18, align 4, !tbaa !14
  %10189 = add nsw i32 %10188, 7
  %10190 = sext i32 %10189 to i64
  %10191 = getelementptr inbounds i8, ptr %10187, i64 %10190
  store i8 %10186, ptr %10191, align 1, !tbaa !15
  %10192 = load ptr, ptr %9, align 8, !tbaa !5
  %10193 = load ptr, ptr %14, align 8, !tbaa !5
  %10194 = load i32, ptr %18, align 4, !tbaa !14
  %10195 = add nsw i32 %10194, 7
  %10196 = sext i32 %10195 to i64
  %10197 = getelementptr inbounds i8, ptr %10193, i64 %10196
  %10198 = load i8, ptr %10197, align 1, !tbaa !15
  %10199 = zext i8 %10198 to i32
  %10200 = load ptr, ptr %15, align 8, !tbaa !5
  %10201 = load i32, ptr %18, align 4, !tbaa !14
  %10202 = add nsw i32 %10201, 7
  %10203 = sext i32 %10202 to i64
  %10204 = getelementptr inbounds i8, ptr %10200, i64 %10203
  %10205 = load i8, ptr %10204, align 1, !tbaa !15
  %10206 = zext i8 %10205 to i32
  %10207 = sub nsw i32 %10199, %10206
  %10208 = sext i32 %10207 to i64
  %10209 = getelementptr inbounds i8, ptr %10192, i64 %10208
  %10210 = load i8, ptr %10209, align 1, !tbaa !15
  %10211 = load ptr, ptr %17, align 8, !tbaa !5
  %10212 = load i32, ptr %18, align 4, !tbaa !14
  %10213 = add nsw i32 %10212, 7
  %10214 = sext i32 %10213 to i64
  %10215 = getelementptr inbounds i8, ptr %10211, i64 %10214
  store i8 %10210, ptr %10215, align 1, !tbaa !15
  %10216 = load ptr, ptr %14, align 8, !tbaa !5
  %10217 = load i32, ptr %18, align 4, !tbaa !14
  %10218 = add nsw i32 %10217, 8
  %10219 = sext i32 %10218 to i64
  %10220 = getelementptr inbounds i8, ptr %10216, i64 %10219
  %10221 = load i8, ptr %10220, align 1, !tbaa !15
  %10222 = zext i8 %10221 to i64
  %10223 = getelementptr inbounds [256 x i8], ptr @r_to_y, i64 0, i64 %10222
  %10224 = load i8, ptr %10223, align 1, !tbaa !15
  %10225 = zext i8 %10224 to i32
  %10226 = load ptr, ptr %13, align 8, !tbaa !5
  %10227 = load i32, ptr %18, align 4, !tbaa !14
  %10228 = add nsw i32 %10227, 8
  %10229 = sext i32 %10228 to i64
  %10230 = getelementptr inbounds i8, ptr %10226, i64 %10229
  %10231 = load i8, ptr %10230, align 1, !tbaa !15
  %10232 = zext i8 %10231 to i64
  %10233 = getelementptr inbounds [256 x i8], ptr @g_to_y, i64 0, i64 %10232
  %10234 = load i8, ptr %10233, align 1, !tbaa !15
  %10235 = zext i8 %10234 to i32
  %10236 = add nsw i32 %10225, %10235
  %10237 = load ptr, ptr %12, align 8, !tbaa !5
  %10238 = load i32, ptr %18, align 4, !tbaa !14
  %10239 = add nsw i32 %10238, 8
  %10240 = sext i32 %10239 to i64
  %10241 = getelementptr inbounds i8, ptr %10237, i64 %10240
  %10242 = load i8, ptr %10241, align 1, !tbaa !15
  %10243 = zext i8 %10242 to i64
  %10244 = getelementptr inbounds [256 x i8], ptr @b_to_y, i64 0, i64 %10243
  %10245 = load i8, ptr %10244, align 1, !tbaa !15
  %10246 = zext i8 %10245 to i32
  %10247 = add nsw i32 %10236, %10246
  %10248 = trunc i32 %10247 to i8
  %10249 = load ptr, ptr %15, align 8, !tbaa !5
  %10250 = load i32, ptr %18, align 4, !tbaa !14
  %10251 = add nsw i32 %10250, 8
  %10252 = sext i32 %10251 to i64
  %10253 = getelementptr inbounds i8, ptr %10249, i64 %10252
  store i8 %10248, ptr %10253, align 1, !tbaa !15
  %10254 = load ptr, ptr %10, align 8, !tbaa !5
  %10255 = load ptr, ptr %12, align 8, !tbaa !5
  %10256 = load i32, ptr %18, align 4, !tbaa !14
  %10257 = add nsw i32 %10256, 8
  %10258 = sext i32 %10257 to i64
  %10259 = getelementptr inbounds i8, ptr %10255, i64 %10258
  %10260 = load i8, ptr %10259, align 1, !tbaa !15
  %10261 = zext i8 %10260 to i32
  %10262 = load ptr, ptr %15, align 8, !tbaa !5
  %10263 = load i32, ptr %18, align 4, !tbaa !14
  %10264 = add nsw i32 %10263, 8
  %10265 = sext i32 %10264 to i64
  %10266 = getelementptr inbounds i8, ptr %10262, i64 %10265
  %10267 = load i8, ptr %10266, align 1, !tbaa !15
  %10268 = zext i8 %10267 to i32
  %10269 = sub nsw i32 %10261, %10268
  %10270 = sext i32 %10269 to i64
  %10271 = getelementptr inbounds i8, ptr %10254, i64 %10270
  %10272 = load i8, ptr %10271, align 1, !tbaa !15
  %10273 = load ptr, ptr %16, align 8, !tbaa !5
  %10274 = load i32, ptr %18, align 4, !tbaa !14
  %10275 = add nsw i32 %10274, 8
  %10276 = sext i32 %10275 to i64
  %10277 = getelementptr inbounds i8, ptr %10273, i64 %10276
  store i8 %10272, ptr %10277, align 1, !tbaa !15
  %10278 = load ptr, ptr %9, align 8, !tbaa !5
  %10279 = load ptr, ptr %14, align 8, !tbaa !5
  %10280 = load i32, ptr %18, align 4, !tbaa !14
  %10281 = add nsw i32 %10280, 8
  %10282 = sext i32 %10281 to i64
  %10283 = getelementptr inbounds i8, ptr %10279, i64 %10282
  %10284 = load i8, ptr %10283, align 1, !tbaa !15
  %10285 = zext i8 %10284 to i32
  %10286 = load ptr, ptr %15, align 8, !tbaa !5
  %10287 = load i32, ptr %18, align 4, !tbaa !14
  %10288 = add nsw i32 %10287, 8
  %10289 = sext i32 %10288 to i64
  %10290 = getelementptr inbounds i8, ptr %10286, i64 %10289
  %10291 = load i8, ptr %10290, align 1, !tbaa !15
  %10292 = zext i8 %10291 to i32
  %10293 = sub nsw i32 %10285, %10292
  %10294 = sext i32 %10293 to i64
  %10295 = getelementptr inbounds i8, ptr %10278, i64 %10294
  %10296 = load i8, ptr %10295, align 1, !tbaa !15
  %10297 = load ptr, ptr %17, align 8, !tbaa !5
  %10298 = load i32, ptr %18, align 4, !tbaa !14
  %10299 = add nsw i32 %10298, 8
  %10300 = sext i32 %10299 to i64
  %10301 = getelementptr inbounds i8, ptr %10297, i64 %10300
  store i8 %10296, ptr %10301, align 1, !tbaa !15
  %10302 = load ptr, ptr %14, align 8, !tbaa !5
  %10303 = load i32, ptr %18, align 4, !tbaa !14
  %10304 = add nsw i32 %10303, 9
  %10305 = sext i32 %10304 to i64
  %10306 = getelementptr inbounds i8, ptr %10302, i64 %10305
  %10307 = load i8, ptr %10306, align 1, !tbaa !15
  %10308 = zext i8 %10307 to i64
  %10309 = getelementptr inbounds [256 x i8], ptr @r_to_y, i64 0, i64 %10308
  %10310 = load i8, ptr %10309, align 1, !tbaa !15
  %10311 = zext i8 %10310 to i32
  %10312 = load ptr, ptr %13, align 8, !tbaa !5
  %10313 = load i32, ptr %18, align 4, !tbaa !14
  %10314 = add nsw i32 %10313, 9
  %10315 = sext i32 %10314 to i64
  %10316 = getelementptr inbounds i8, ptr %10312, i64 %10315
  %10317 = load i8, ptr %10316, align 1, !tbaa !15
  %10318 = zext i8 %10317 to i64
  %10319 = getelementptr inbounds [256 x i8], ptr @g_to_y, i64 0, i64 %10318
  %10320 = load i8, ptr %10319, align 1, !tbaa !15
  %10321 = zext i8 %10320 to i32
  %10322 = add nsw i32 %10311, %10321
  %10323 = load ptr, ptr %12, align 8, !tbaa !5
  %10324 = load i32, ptr %18, align 4, !tbaa !14
  %10325 = add nsw i32 %10324, 9
  %10326 = sext i32 %10325 to i64
  %10327 = getelementptr inbounds i8, ptr %10323, i64 %10326
  %10328 = load i8, ptr %10327, align 1, !tbaa !15
  %10329 = zext i8 %10328 to i64
  %10330 = getelementptr inbounds [256 x i8], ptr @b_to_y, i64 0, i64 %10329
  %10331 = load i8, ptr %10330, align 1, !tbaa !15
  %10332 = zext i8 %10331 to i32
  %10333 = add nsw i32 %10322, %10332
  %10334 = trunc i32 %10333 to i8
  %10335 = load ptr, ptr %15, align 8, !tbaa !5
  %10336 = load i32, ptr %18, align 4, !tbaa !14
  %10337 = add nsw i32 %10336, 9
  %10338 = sext i32 %10337 to i64
  %10339 = getelementptr inbounds i8, ptr %10335, i64 %10338
  store i8 %10334, ptr %10339, align 1, !tbaa !15
  %10340 = load ptr, ptr %10, align 8, !tbaa !5
  %10341 = load ptr, ptr %12, align 8, !tbaa !5
  %10342 = load i32, ptr %18, align 4, !tbaa !14
  %10343 = add nsw i32 %10342, 9
  %10344 = sext i32 %10343 to i64
  %10345 = getelementptr inbounds i8, ptr %10341, i64 %10344
  %10346 = load i8, ptr %10345, align 1, !tbaa !15
  %10347 = zext i8 %10346 to i32
  %10348 = load ptr, ptr %15, align 8, !tbaa !5
  %10349 = load i32, ptr %18, align 4, !tbaa !14
  %10350 = add nsw i32 %10349, 9
  %10351 = sext i32 %10350 to i64
  %10352 = getelementptr inbounds i8, ptr %10348, i64 %10351
  %10353 = load i8, ptr %10352, align 1, !tbaa !15
  %10354 = zext i8 %10353 to i32
  %10355 = sub nsw i32 %10347, %10354
  %10356 = sext i32 %10355 to i64
  %10357 = getelementptr inbounds i8, ptr %10340, i64 %10356
  %10358 = load i8, ptr %10357, align 1, !tbaa !15
  %10359 = load ptr, ptr %16, align 8, !tbaa !5
  %10360 = load i32, ptr %18, align 4, !tbaa !14
  %10361 = add nsw i32 %10360, 9
  %10362 = sext i32 %10361 to i64
  %10363 = getelementptr inbounds i8, ptr %10359, i64 %10362
  store i8 %10358, ptr %10363, align 1, !tbaa !15
  %10364 = load ptr, ptr %9, align 8, !tbaa !5
  %10365 = load ptr, ptr %14, align 8, !tbaa !5
  %10366 = load i32, ptr %18, align 4, !tbaa !14
  %10367 = add nsw i32 %10366, 9
  %10368 = sext i32 %10367 to i64
  %10369 = getelementptr inbounds i8, ptr %10365, i64 %10368
  %10370 = load i8, ptr %10369, align 1, !tbaa !15
  %10371 = zext i8 %10370 to i32
  %10372 = load ptr, ptr %15, align 8, !tbaa !5
  %10373 = load i32, ptr %18, align 4, !tbaa !14
  %10374 = add nsw i32 %10373, 9
  %10375 = sext i32 %10374 to i64
  %10376 = getelementptr inbounds i8, ptr %10372, i64 %10375
  %10377 = load i8, ptr %10376, align 1, !tbaa !15
  %10378 = zext i8 %10377 to i32
  %10379 = sub nsw i32 %10371, %10378
  %10380 = sext i32 %10379 to i64
  %10381 = getelementptr inbounds i8, ptr %10364, i64 %10380
  %10382 = load i8, ptr %10381, align 1, !tbaa !15
  %10383 = load ptr, ptr %17, align 8, !tbaa !5
  %10384 = load i32, ptr %18, align 4, !tbaa !14
  %10385 = add nsw i32 %10384, 9
  %10386 = sext i32 %10385 to i64
  %10387 = getelementptr inbounds i8, ptr %10383, i64 %10386
  store i8 %10382, ptr %10387, align 1, !tbaa !15
  %10388 = load ptr, ptr %14, align 8, !tbaa !5
  %10389 = load i32, ptr %18, align 4, !tbaa !14
  %10390 = add nsw i32 %10389, 10
  %10391 = sext i32 %10390 to i64
  %10392 = getelementptr inbounds i8, ptr %10388, i64 %10391
  %10393 = load i8, ptr %10392, align 1, !tbaa !15
  %10394 = zext i8 %10393 to i64
  %10395 = getelementptr inbounds [256 x i8], ptr @r_to_y, i64 0, i64 %10394
  %10396 = load i8, ptr %10395, align 1, !tbaa !15
  %10397 = zext i8 %10396 to i32
  %10398 = load ptr, ptr %13, align 8, !tbaa !5
  %10399 = load i32, ptr %18, align 4, !tbaa !14
  %10400 = add nsw i32 %10399, 10
  %10401 = sext i32 %10400 to i64
  %10402 = getelementptr inbounds i8, ptr %10398, i64 %10401
  %10403 = load i8, ptr %10402, align 1, !tbaa !15
  %10404 = zext i8 %10403 to i64
  %10405 = getelementptr inbounds [256 x i8], ptr @g_to_y, i64 0, i64 %10404
  %10406 = load i8, ptr %10405, align 1, !tbaa !15
  %10407 = zext i8 %10406 to i32
  %10408 = add nsw i32 %10397, %10407
  %10409 = load ptr, ptr %12, align 8, !tbaa !5
  %10410 = load i32, ptr %18, align 4, !tbaa !14
  %10411 = add nsw i32 %10410, 10
  %10412 = sext i32 %10411 to i64
  %10413 = getelementptr inbounds i8, ptr %10409, i64 %10412
  %10414 = load i8, ptr %10413, align 1, !tbaa !15
  %10415 = zext i8 %10414 to i64
  %10416 = getelementptr inbounds [256 x i8], ptr @b_to_y, i64 0, i64 %10415
  %10417 = load i8, ptr %10416, align 1, !tbaa !15
  %10418 = zext i8 %10417 to i32
  %10419 = add nsw i32 %10408, %10418
  %10420 = trunc i32 %10419 to i8
  %10421 = load ptr, ptr %15, align 8, !tbaa !5
  %10422 = load i32, ptr %18, align 4, !tbaa !14
  %10423 = add nsw i32 %10422, 10
  %10424 = sext i32 %10423 to i64
  %10425 = getelementptr inbounds i8, ptr %10421, i64 %10424
  store i8 %10420, ptr %10425, align 1, !tbaa !15
  %10426 = load ptr, ptr %10, align 8, !tbaa !5
  %10427 = load ptr, ptr %12, align 8, !tbaa !5
  %10428 = load i32, ptr %18, align 4, !tbaa !14
  %10429 = add nsw i32 %10428, 10
  %10430 = sext i32 %10429 to i64
  %10431 = getelementptr inbounds i8, ptr %10427, i64 %10430
  %10432 = load i8, ptr %10431, align 1, !tbaa !15
  %10433 = zext i8 %10432 to i32
  %10434 = load ptr, ptr %15, align 8, !tbaa !5
  %10435 = load i32, ptr %18, align 4, !tbaa !14
  %10436 = add nsw i32 %10435, 10
  %10437 = sext i32 %10436 to i64
  %10438 = getelementptr inbounds i8, ptr %10434, i64 %10437
  %10439 = load i8, ptr %10438, align 1, !tbaa !15
  %10440 = zext i8 %10439 to i32
  %10441 = sub nsw i32 %10433, %10440
  %10442 = sext i32 %10441 to i64
  %10443 = getelementptr inbounds i8, ptr %10426, i64 %10442
  %10444 = load i8, ptr %10443, align 1, !tbaa !15
  %10445 = load ptr, ptr %16, align 8, !tbaa !5
  %10446 = load i32, ptr %18, align 4, !tbaa !14
  %10447 = add nsw i32 %10446, 10
  %10448 = sext i32 %10447 to i64
  %10449 = getelementptr inbounds i8, ptr %10445, i64 %10448
  store i8 %10444, ptr %10449, align 1, !tbaa !15
  %10450 = load ptr, ptr %9, align 8, !tbaa !5
  %10451 = load ptr, ptr %14, align 8, !tbaa !5
  %10452 = load i32, ptr %18, align 4, !tbaa !14
  %10453 = add nsw i32 %10452, 10
  %10454 = sext i32 %10453 to i64
  %10455 = getelementptr inbounds i8, ptr %10451, i64 %10454
  %10456 = load i8, ptr %10455, align 1, !tbaa !15
  %10457 = zext i8 %10456 to i32
  %10458 = load ptr, ptr %15, align 8, !tbaa !5
  %10459 = load i32, ptr %18, align 4, !tbaa !14
  %10460 = add nsw i32 %10459, 10
  %10461 = sext i32 %10460 to i64
  %10462 = getelementptr inbounds i8, ptr %10458, i64 %10461
  %10463 = load i8, ptr %10462, align 1, !tbaa !15
  %10464 = zext i8 %10463 to i32
  %10465 = sub nsw i32 %10457, %10464
  %10466 = sext i32 %10465 to i64
  %10467 = getelementptr inbounds i8, ptr %10450, i64 %10466
  %10468 = load i8, ptr %10467, align 1, !tbaa !15
  %10469 = load ptr, ptr %17, align 8, !tbaa !5
  %10470 = load i32, ptr %18, align 4, !tbaa !14
  %10471 = add nsw i32 %10470, 10
  %10472 = sext i32 %10471 to i64
  %10473 = getelementptr inbounds i8, ptr %10469, i64 %10472
  store i8 %10468, ptr %10473, align 1, !tbaa !15
  %10474 = load ptr, ptr %14, align 8, !tbaa !5
  %10475 = load i32, ptr %18, align 4, !tbaa !14
  %10476 = add nsw i32 %10475, 11
  %10477 = sext i32 %10476 to i64
  %10478 = getelementptr inbounds i8, ptr %10474, i64 %10477
  %10479 = load i8, ptr %10478, align 1, !tbaa !15
  %10480 = zext i8 %10479 to i64
  %10481 = getelementptr inbounds [256 x i8], ptr @r_to_y, i64 0, i64 %10480
  %10482 = load i8, ptr %10481, align 1, !tbaa !15
  %10483 = zext i8 %10482 to i32
  %10484 = load ptr, ptr %13, align 8, !tbaa !5
  %10485 = load i32, ptr %18, align 4, !tbaa !14
  %10486 = add nsw i32 %10485, 11
  %10487 = sext i32 %10486 to i64
  %10488 = getelementptr inbounds i8, ptr %10484, i64 %10487
  %10489 = load i8, ptr %10488, align 1, !tbaa !15
  %10490 = zext i8 %10489 to i64
  %10491 = getelementptr inbounds [256 x i8], ptr @g_to_y, i64 0, i64 %10490
  %10492 = load i8, ptr %10491, align 1, !tbaa !15
  %10493 = zext i8 %10492 to i32
  %10494 = add nsw i32 %10483, %10493
  %10495 = load ptr, ptr %12, align 8, !tbaa !5
  %10496 = load i32, ptr %18, align 4, !tbaa !14
  %10497 = add nsw i32 %10496, 11
  %10498 = sext i32 %10497 to i64
  %10499 = getelementptr inbounds i8, ptr %10495, i64 %10498
  %10500 = load i8, ptr %10499, align 1, !tbaa !15
  %10501 = zext i8 %10500 to i64
  %10502 = getelementptr inbounds [256 x i8], ptr @b_to_y, i64 0, i64 %10501
  %10503 = load i8, ptr %10502, align 1, !tbaa !15
  %10504 = zext i8 %10503 to i32
  %10505 = add nsw i32 %10494, %10504
  %10506 = trunc i32 %10505 to i8
  %10507 = load ptr, ptr %15, align 8, !tbaa !5
  %10508 = load i32, ptr %18, align 4, !tbaa !14
  %10509 = add nsw i32 %10508, 11
  %10510 = sext i32 %10509 to i64
  %10511 = getelementptr inbounds i8, ptr %10507, i64 %10510
  store i8 %10506, ptr %10511, align 1, !tbaa !15
  %10512 = load ptr, ptr %10, align 8, !tbaa !5
  %10513 = load ptr, ptr %12, align 8, !tbaa !5
  %10514 = load i32, ptr %18, align 4, !tbaa !14
  %10515 = add nsw i32 %10514, 11
  %10516 = sext i32 %10515 to i64
  %10517 = getelementptr inbounds i8, ptr %10513, i64 %10516
  %10518 = load i8, ptr %10517, align 1, !tbaa !15
  %10519 = zext i8 %10518 to i32
  %10520 = load ptr, ptr %15, align 8, !tbaa !5
  %10521 = load i32, ptr %18, align 4, !tbaa !14
  %10522 = add nsw i32 %10521, 11
  %10523 = sext i32 %10522 to i64
  %10524 = getelementptr inbounds i8, ptr %10520, i64 %10523
  %10525 = load i8, ptr %10524, align 1, !tbaa !15
  %10526 = zext i8 %10525 to i32
  %10527 = sub nsw i32 %10519, %10526
  %10528 = sext i32 %10527 to i64
  %10529 = getelementptr inbounds i8, ptr %10512, i64 %10528
  %10530 = load i8, ptr %10529, align 1, !tbaa !15
  %10531 = load ptr, ptr %16, align 8, !tbaa !5
  %10532 = load i32, ptr %18, align 4, !tbaa !14
  %10533 = add nsw i32 %10532, 11
  %10534 = sext i32 %10533 to i64
  %10535 = getelementptr inbounds i8, ptr %10531, i64 %10534
  store i8 %10530, ptr %10535, align 1, !tbaa !15
  %10536 = load ptr, ptr %9, align 8, !tbaa !5
  %10537 = load ptr, ptr %14, align 8, !tbaa !5
  %10538 = load i32, ptr %18, align 4, !tbaa !14
  %10539 = add nsw i32 %10538, 11
  %10540 = sext i32 %10539 to i64
  %10541 = getelementptr inbounds i8, ptr %10537, i64 %10540
  %10542 = load i8, ptr %10541, align 1, !tbaa !15
  %10543 = zext i8 %10542 to i32
  %10544 = load ptr, ptr %15, align 8, !tbaa !5
  %10545 = load i32, ptr %18, align 4, !tbaa !14
  %10546 = add nsw i32 %10545, 11
  %10547 = sext i32 %10546 to i64
  %10548 = getelementptr inbounds i8, ptr %10544, i64 %10547
  %10549 = load i8, ptr %10548, align 1, !tbaa !15
  %10550 = zext i8 %10549 to i32
  %10551 = sub nsw i32 %10543, %10550
  %10552 = sext i32 %10551 to i64
  %10553 = getelementptr inbounds i8, ptr %10536, i64 %10552
  %10554 = load i8, ptr %10553, align 1, !tbaa !15
  %10555 = load ptr, ptr %17, align 8, !tbaa !5
  %10556 = load i32, ptr %18, align 4, !tbaa !14
  %10557 = add nsw i32 %10556, 11
  %10558 = sext i32 %10557 to i64
  %10559 = getelementptr inbounds i8, ptr %10555, i64 %10558
  store i8 %10554, ptr %10559, align 1, !tbaa !15
  %10560 = load ptr, ptr %14, align 8, !tbaa !5
  %10561 = load i32, ptr %18, align 4, !tbaa !14
  %10562 = add nsw i32 %10561, 12
  %10563 = sext i32 %10562 to i64
  %10564 = getelementptr inbounds i8, ptr %10560, i64 %10563
  %10565 = load i8, ptr %10564, align 1, !tbaa !15
  %10566 = zext i8 %10565 to i64
  %10567 = getelementptr inbounds [256 x i8], ptr @r_to_y, i64 0, i64 %10566
  %10568 = load i8, ptr %10567, align 1, !tbaa !15
  %10569 = zext i8 %10568 to i32
  %10570 = load ptr, ptr %13, align 8, !tbaa !5
  %10571 = load i32, ptr %18, align 4, !tbaa !14
  %10572 = add nsw i32 %10571, 12
  %10573 = sext i32 %10572 to i64
  %10574 = getelementptr inbounds i8, ptr %10570, i64 %10573
  %10575 = load i8, ptr %10574, align 1, !tbaa !15
  %10576 = zext i8 %10575 to i64
  %10577 = getelementptr inbounds [256 x i8], ptr @g_to_y, i64 0, i64 %10576
  %10578 = load i8, ptr %10577, align 1, !tbaa !15
  %10579 = zext i8 %10578 to i32
  %10580 = add nsw i32 %10569, %10579
  %10581 = load ptr, ptr %12, align 8, !tbaa !5
  %10582 = load i32, ptr %18, align 4, !tbaa !14
  %10583 = add nsw i32 %10582, 12
  %10584 = sext i32 %10583 to i64
  %10585 = getelementptr inbounds i8, ptr %10581, i64 %10584
  %10586 = load i8, ptr %10585, align 1, !tbaa !15
  %10587 = zext i8 %10586 to i64
  %10588 = getelementptr inbounds [256 x i8], ptr @b_to_y, i64 0, i64 %10587
  %10589 = load i8, ptr %10588, align 1, !tbaa !15
  %10590 = zext i8 %10589 to i32
  %10591 = add nsw i32 %10580, %10590
  %10592 = trunc i32 %10591 to i8
  %10593 = load ptr, ptr %15, align 8, !tbaa !5
  %10594 = load i32, ptr %18, align 4, !tbaa !14
  %10595 = add nsw i32 %10594, 12
  %10596 = sext i32 %10595 to i64
  %10597 = getelementptr inbounds i8, ptr %10593, i64 %10596
  store i8 %10592, ptr %10597, align 1, !tbaa !15
  %10598 = load ptr, ptr %10, align 8, !tbaa !5
  %10599 = load ptr, ptr %12, align 8, !tbaa !5
  %10600 = load i32, ptr %18, align 4, !tbaa !14
  %10601 = add nsw i32 %10600, 12
  %10602 = sext i32 %10601 to i64
  %10603 = getelementptr inbounds i8, ptr %10599, i64 %10602
  %10604 = load i8, ptr %10603, align 1, !tbaa !15
  %10605 = zext i8 %10604 to i32
  %10606 = load ptr, ptr %15, align 8, !tbaa !5
  %10607 = load i32, ptr %18, align 4, !tbaa !14
  %10608 = add nsw i32 %10607, 12
  %10609 = sext i32 %10608 to i64
  %10610 = getelementptr inbounds i8, ptr %10606, i64 %10609
  %10611 = load i8, ptr %10610, align 1, !tbaa !15
  %10612 = zext i8 %10611 to i32
  %10613 = sub nsw i32 %10605, %10612
  %10614 = sext i32 %10613 to i64
  %10615 = getelementptr inbounds i8, ptr %10598, i64 %10614
  %10616 = load i8, ptr %10615, align 1, !tbaa !15
  %10617 = load ptr, ptr %16, align 8, !tbaa !5
  %10618 = load i32, ptr %18, align 4, !tbaa !14
  %10619 = add nsw i32 %10618, 12
  %10620 = sext i32 %10619 to i64
  %10621 = getelementptr inbounds i8, ptr %10617, i64 %10620
  store i8 %10616, ptr %10621, align 1, !tbaa !15
  %10622 = load ptr, ptr %9, align 8, !tbaa !5
  %10623 = load ptr, ptr %14, align 8, !tbaa !5
  %10624 = load i32, ptr %18, align 4, !tbaa !14
  %10625 = add nsw i32 %10624, 12
  %10626 = sext i32 %10625 to i64
  %10627 = getelementptr inbounds i8, ptr %10623, i64 %10626
  %10628 = load i8, ptr %10627, align 1, !tbaa !15
  %10629 = zext i8 %10628 to i32
  %10630 = load ptr, ptr %15, align 8, !tbaa !5
  %10631 = load i32, ptr %18, align 4, !tbaa !14
  %10632 = add nsw i32 %10631, 12
  %10633 = sext i32 %10632 to i64
  %10634 = getelementptr inbounds i8, ptr %10630, i64 %10633
  %10635 = load i8, ptr %10634, align 1, !tbaa !15
  %10636 = zext i8 %10635 to i32
  %10637 = sub nsw i32 %10629, %10636
  %10638 = sext i32 %10637 to i64
  %10639 = getelementptr inbounds i8, ptr %10622, i64 %10638
  %10640 = load i8, ptr %10639, align 1, !tbaa !15
  %10641 = load ptr, ptr %17, align 8, !tbaa !5
  %10642 = load i32, ptr %18, align 4, !tbaa !14
  %10643 = add nsw i32 %10642, 12
  %10644 = sext i32 %10643 to i64
  %10645 = getelementptr inbounds i8, ptr %10641, i64 %10644
  store i8 %10640, ptr %10645, align 1, !tbaa !15
  %10646 = load ptr, ptr %14, align 8, !tbaa !5
  %10647 = load i32, ptr %18, align 4, !tbaa !14
  %10648 = add nsw i32 %10647, 13
  %10649 = sext i32 %10648 to i64
  %10650 = getelementptr inbounds i8, ptr %10646, i64 %10649
  %10651 = load i8, ptr %10650, align 1, !tbaa !15
  %10652 = zext i8 %10651 to i64
  %10653 = getelementptr inbounds [256 x i8], ptr @r_to_y, i64 0, i64 %10652
  %10654 = load i8, ptr %10653, align 1, !tbaa !15
  %10655 = zext i8 %10654 to i32
  %10656 = load ptr, ptr %13, align 8, !tbaa !5
  %10657 = load i32, ptr %18, align 4, !tbaa !14
  %10658 = add nsw i32 %10657, 13
  %10659 = sext i32 %10658 to i64
  %10660 = getelementptr inbounds i8, ptr %10656, i64 %10659
  %10661 = load i8, ptr %10660, align 1, !tbaa !15
  %10662 = zext i8 %10661 to i64
  %10663 = getelementptr inbounds [256 x i8], ptr @g_to_y, i64 0, i64 %10662
  %10664 = load i8, ptr %10663, align 1, !tbaa !15
  %10665 = zext i8 %10664 to i32
  %10666 = add nsw i32 %10655, %10665
  %10667 = load ptr, ptr %12, align 8, !tbaa !5
  %10668 = load i32, ptr %18, align 4, !tbaa !14
  %10669 = add nsw i32 %10668, 13
  %10670 = sext i32 %10669 to i64
  %10671 = getelementptr inbounds i8, ptr %10667, i64 %10670
  %10672 = load i8, ptr %10671, align 1, !tbaa !15
  %10673 = zext i8 %10672 to i64
  %10674 = getelementptr inbounds [256 x i8], ptr @b_to_y, i64 0, i64 %10673
  %10675 = load i8, ptr %10674, align 1, !tbaa !15
  %10676 = zext i8 %10675 to i32
  %10677 = add nsw i32 %10666, %10676
  %10678 = trunc i32 %10677 to i8
  %10679 = load ptr, ptr %15, align 8, !tbaa !5
  %10680 = load i32, ptr %18, align 4, !tbaa !14
  %10681 = add nsw i32 %10680, 13
  %10682 = sext i32 %10681 to i64
  %10683 = getelementptr inbounds i8, ptr %10679, i64 %10682
  store i8 %10678, ptr %10683, align 1, !tbaa !15
  %10684 = load ptr, ptr %10, align 8, !tbaa !5
  %10685 = load ptr, ptr %12, align 8, !tbaa !5
  %10686 = load i32, ptr %18, align 4, !tbaa !14
  %10687 = add nsw i32 %10686, 13
  %10688 = sext i32 %10687 to i64
  %10689 = getelementptr inbounds i8, ptr %10685, i64 %10688
  %10690 = load i8, ptr %10689, align 1, !tbaa !15
  %10691 = zext i8 %10690 to i32
  %10692 = load ptr, ptr %15, align 8, !tbaa !5
  %10693 = load i32, ptr %18, align 4, !tbaa !14
  %10694 = add nsw i32 %10693, 13
  %10695 = sext i32 %10694 to i64
  %10696 = getelementptr inbounds i8, ptr %10692, i64 %10695
  %10697 = load i8, ptr %10696, align 1, !tbaa !15
  %10698 = zext i8 %10697 to i32
  %10699 = sub nsw i32 %10691, %10698
  %10700 = sext i32 %10699 to i64
  %10701 = getelementptr inbounds i8, ptr %10684, i64 %10700
  %10702 = load i8, ptr %10701, align 1, !tbaa !15
  %10703 = load ptr, ptr %16, align 8, !tbaa !5
  %10704 = load i32, ptr %18, align 4, !tbaa !14
  %10705 = add nsw i32 %10704, 13
  %10706 = sext i32 %10705 to i64
  %10707 = getelementptr inbounds i8, ptr %10703, i64 %10706
  store i8 %10702, ptr %10707, align 1, !tbaa !15
  %10708 = load ptr, ptr %9, align 8, !tbaa !5
  %10709 = load ptr, ptr %14, align 8, !tbaa !5
  %10710 = load i32, ptr %18, align 4, !tbaa !14
  %10711 = add nsw i32 %10710, 13
  %10712 = sext i32 %10711 to i64
  %10713 = getelementptr inbounds i8, ptr %10709, i64 %10712
  %10714 = load i8, ptr %10713, align 1, !tbaa !15
  %10715 = zext i8 %10714 to i32
  %10716 = load ptr, ptr %15, align 8, !tbaa !5
  %10717 = load i32, ptr %18, align 4, !tbaa !14
  %10718 = add nsw i32 %10717, 13
  %10719 = sext i32 %10718 to i64
  %10720 = getelementptr inbounds i8, ptr %10716, i64 %10719
  %10721 = load i8, ptr %10720, align 1, !tbaa !15
  %10722 = zext i8 %10721 to i32
  %10723 = sub nsw i32 %10715, %10722
  %10724 = sext i32 %10723 to i64
  %10725 = getelementptr inbounds i8, ptr %10708, i64 %10724
  %10726 = load i8, ptr %10725, align 1, !tbaa !15
  %10727 = load ptr, ptr %17, align 8, !tbaa !5
  %10728 = load i32, ptr %18, align 4, !tbaa !14
  %10729 = add nsw i32 %10728, 13
  %10730 = sext i32 %10729 to i64
  %10731 = getelementptr inbounds i8, ptr %10727, i64 %10730
  store i8 %10726, ptr %10731, align 1, !tbaa !15
  br label %12031

10732:                                            ; preds = %9520
  %10733 = load ptr, ptr %4, align 8, !tbaa !5
  %10734 = getelementptr inbounds %struct.MImage, ptr %10733, i32 0, i32 2
  %10735 = load i32, ptr %10734, align 8, !tbaa !13
  %10736 = load i32, ptr %18, align 4, !tbaa !14
  %10737 = sub nsw i32 %10735, %10736
  %10738 = icmp eq i32 %10737, 15
  br i1 %10738, label %10739, label %12030

10739:                                            ; preds = %10732
  %10740 = load ptr, ptr %14, align 8, !tbaa !5
  %10741 = load i32, ptr %18, align 4, !tbaa !14
  %10742 = add nsw i32 %10741, 0
  %10743 = sext i32 %10742 to i64
  %10744 = getelementptr inbounds i8, ptr %10740, i64 %10743
  %10745 = load i8, ptr %10744, align 1, !tbaa !15
  %10746 = zext i8 %10745 to i64
  %10747 = getelementptr inbounds [256 x i8], ptr @r_to_y, i64 0, i64 %10746
  %10748 = load i8, ptr %10747, align 1, !tbaa !15
  %10749 = zext i8 %10748 to i32
  %10750 = load ptr, ptr %13, align 8, !tbaa !5
  %10751 = load i32, ptr %18, align 4, !tbaa !14
  %10752 = add nsw i32 %10751, 0
  %10753 = sext i32 %10752 to i64
  %10754 = getelementptr inbounds i8, ptr %10750, i64 %10753
  %10755 = load i8, ptr %10754, align 1, !tbaa !15
  %10756 = zext i8 %10755 to i64
  %10757 = getelementptr inbounds [256 x i8], ptr @g_to_y, i64 0, i64 %10756
  %10758 = load i8, ptr %10757, align 1, !tbaa !15
  %10759 = zext i8 %10758 to i32
  %10760 = add nsw i32 %10749, %10759
  %10761 = load ptr, ptr %12, align 8, !tbaa !5
  %10762 = load i32, ptr %18, align 4, !tbaa !14
  %10763 = add nsw i32 %10762, 0
  %10764 = sext i32 %10763 to i64
  %10765 = getelementptr inbounds i8, ptr %10761, i64 %10764
  %10766 = load i8, ptr %10765, align 1, !tbaa !15
  %10767 = zext i8 %10766 to i64
  %10768 = getelementptr inbounds [256 x i8], ptr @b_to_y, i64 0, i64 %10767
  %10769 = load i8, ptr %10768, align 1, !tbaa !15
  %10770 = zext i8 %10769 to i32
  %10771 = add nsw i32 %10760, %10770
  %10772 = trunc i32 %10771 to i8
  %10773 = load ptr, ptr %15, align 8, !tbaa !5
  %10774 = load i32, ptr %18, align 4, !tbaa !14
  %10775 = add nsw i32 %10774, 0
  %10776 = sext i32 %10775 to i64
  %10777 = getelementptr inbounds i8, ptr %10773, i64 %10776
  store i8 %10772, ptr %10777, align 1, !tbaa !15
  %10778 = load ptr, ptr %10, align 8, !tbaa !5
  %10779 = load ptr, ptr %12, align 8, !tbaa !5
  %10780 = load i32, ptr %18, align 4, !tbaa !14
  %10781 = add nsw i32 %10780, 0
  %10782 = sext i32 %10781 to i64
  %10783 = getelementptr inbounds i8, ptr %10779, i64 %10782
  %10784 = load i8, ptr %10783, align 1, !tbaa !15
  %10785 = zext i8 %10784 to i32
  %10786 = load ptr, ptr %15, align 8, !tbaa !5
  %10787 = load i32, ptr %18, align 4, !tbaa !14
  %10788 = add nsw i32 %10787, 0
  %10789 = sext i32 %10788 to i64
  %10790 = getelementptr inbounds i8, ptr %10786, i64 %10789
  %10791 = load i8, ptr %10790, align 1, !tbaa !15
  %10792 = zext i8 %10791 to i32
  %10793 = sub nsw i32 %10785, %10792
  %10794 = sext i32 %10793 to i64
  %10795 = getelementptr inbounds i8, ptr %10778, i64 %10794
  %10796 = load i8, ptr %10795, align 1, !tbaa !15
  %10797 = load ptr, ptr %16, align 8, !tbaa !5
  %10798 = load i32, ptr %18, align 4, !tbaa !14
  %10799 = add nsw i32 %10798, 0
  %10800 = sext i32 %10799 to i64
  %10801 = getelementptr inbounds i8, ptr %10797, i64 %10800
  store i8 %10796, ptr %10801, align 1, !tbaa !15
  %10802 = load ptr, ptr %9, align 8, !tbaa !5
  %10803 = load ptr, ptr %14, align 8, !tbaa !5
  %10804 = load i32, ptr %18, align 4, !tbaa !14
  %10805 = add nsw i32 %10804, 0
  %10806 = sext i32 %10805 to i64
  %10807 = getelementptr inbounds i8, ptr %10803, i64 %10806
  %10808 = load i8, ptr %10807, align 1, !tbaa !15
  %10809 = zext i8 %10808 to i32
  %10810 = load ptr, ptr %15, align 8, !tbaa !5
  %10811 = load i32, ptr %18, align 4, !tbaa !14
  %10812 = add nsw i32 %10811, 0
  %10813 = sext i32 %10812 to i64
  %10814 = getelementptr inbounds i8, ptr %10810, i64 %10813
  %10815 = load i8, ptr %10814, align 1, !tbaa !15
  %10816 = zext i8 %10815 to i32
  %10817 = sub nsw i32 %10809, %10816
  %10818 = sext i32 %10817 to i64
  %10819 = getelementptr inbounds i8, ptr %10802, i64 %10818
  %10820 = load i8, ptr %10819, align 1, !tbaa !15
  %10821 = load ptr, ptr %17, align 8, !tbaa !5
  %10822 = load i32, ptr %18, align 4, !tbaa !14
  %10823 = add nsw i32 %10822, 0
  %10824 = sext i32 %10823 to i64
  %10825 = getelementptr inbounds i8, ptr %10821, i64 %10824
  store i8 %10820, ptr %10825, align 1, !tbaa !15
  %10826 = load ptr, ptr %14, align 8, !tbaa !5
  %10827 = load i32, ptr %18, align 4, !tbaa !14
  %10828 = add nsw i32 %10827, 1
  %10829 = sext i32 %10828 to i64
  %10830 = getelementptr inbounds i8, ptr %10826, i64 %10829
  %10831 = load i8, ptr %10830, align 1, !tbaa !15
  %10832 = zext i8 %10831 to i64
  %10833 = getelementptr inbounds [256 x i8], ptr @r_to_y, i64 0, i64 %10832
  %10834 = load i8, ptr %10833, align 1, !tbaa !15
  %10835 = zext i8 %10834 to i32
  %10836 = load ptr, ptr %13, align 8, !tbaa !5
  %10837 = load i32, ptr %18, align 4, !tbaa !14
  %10838 = add nsw i32 %10837, 1
  %10839 = sext i32 %10838 to i64
  %10840 = getelementptr inbounds i8, ptr %10836, i64 %10839
  %10841 = load i8, ptr %10840, align 1, !tbaa !15
  %10842 = zext i8 %10841 to i64
  %10843 = getelementptr inbounds [256 x i8], ptr @g_to_y, i64 0, i64 %10842
  %10844 = load i8, ptr %10843, align 1, !tbaa !15
  %10845 = zext i8 %10844 to i32
  %10846 = add nsw i32 %10835, %10845
  %10847 = load ptr, ptr %12, align 8, !tbaa !5
  %10848 = load i32, ptr %18, align 4, !tbaa !14
  %10849 = add nsw i32 %10848, 1
  %10850 = sext i32 %10849 to i64
  %10851 = getelementptr inbounds i8, ptr %10847, i64 %10850
  %10852 = load i8, ptr %10851, align 1, !tbaa !15
  %10853 = zext i8 %10852 to i64
  %10854 = getelementptr inbounds [256 x i8], ptr @b_to_y, i64 0, i64 %10853
  %10855 = load i8, ptr %10854, align 1, !tbaa !15
  %10856 = zext i8 %10855 to i32
  %10857 = add nsw i32 %10846, %10856
  %10858 = trunc i32 %10857 to i8
  %10859 = load ptr, ptr %15, align 8, !tbaa !5
  %10860 = load i32, ptr %18, align 4, !tbaa !14
  %10861 = add nsw i32 %10860, 1
  %10862 = sext i32 %10861 to i64
  %10863 = getelementptr inbounds i8, ptr %10859, i64 %10862
  store i8 %10858, ptr %10863, align 1, !tbaa !15
  %10864 = load ptr, ptr %10, align 8, !tbaa !5
  %10865 = load ptr, ptr %12, align 8, !tbaa !5
  %10866 = load i32, ptr %18, align 4, !tbaa !14
  %10867 = add nsw i32 %10866, 1
  %10868 = sext i32 %10867 to i64
  %10869 = getelementptr inbounds i8, ptr %10865, i64 %10868
  %10870 = load i8, ptr %10869, align 1, !tbaa !15
  %10871 = zext i8 %10870 to i32
  %10872 = load ptr, ptr %15, align 8, !tbaa !5
  %10873 = load i32, ptr %18, align 4, !tbaa !14
  %10874 = add nsw i32 %10873, 1
  %10875 = sext i32 %10874 to i64
  %10876 = getelementptr inbounds i8, ptr %10872, i64 %10875
  %10877 = load i8, ptr %10876, align 1, !tbaa !15
  %10878 = zext i8 %10877 to i32
  %10879 = sub nsw i32 %10871, %10878
  %10880 = sext i32 %10879 to i64
  %10881 = getelementptr inbounds i8, ptr %10864, i64 %10880
  %10882 = load i8, ptr %10881, align 1, !tbaa !15
  %10883 = load ptr, ptr %16, align 8, !tbaa !5
  %10884 = load i32, ptr %18, align 4, !tbaa !14
  %10885 = add nsw i32 %10884, 1
  %10886 = sext i32 %10885 to i64
  %10887 = getelementptr inbounds i8, ptr %10883, i64 %10886
  store i8 %10882, ptr %10887, align 1, !tbaa !15
  %10888 = load ptr, ptr %9, align 8, !tbaa !5
  %10889 = load ptr, ptr %14, align 8, !tbaa !5
  %10890 = load i32, ptr %18, align 4, !tbaa !14
  %10891 = add nsw i32 %10890, 1
  %10892 = sext i32 %10891 to i64
  %10893 = getelementptr inbounds i8, ptr %10889, i64 %10892
  %10894 = load i8, ptr %10893, align 1, !tbaa !15
  %10895 = zext i8 %10894 to i32
  %10896 = load ptr, ptr %15, align 8, !tbaa !5
  %10897 = load i32, ptr %18, align 4, !tbaa !14
  %10898 = add nsw i32 %10897, 1
  %10899 = sext i32 %10898 to i64
  %10900 = getelementptr inbounds i8, ptr %10896, i64 %10899
  %10901 = load i8, ptr %10900, align 1, !tbaa !15
  %10902 = zext i8 %10901 to i32
  %10903 = sub nsw i32 %10895, %10902
  %10904 = sext i32 %10903 to i64
  %10905 = getelementptr inbounds i8, ptr %10888, i64 %10904
  %10906 = load i8, ptr %10905, align 1, !tbaa !15
  %10907 = load ptr, ptr %17, align 8, !tbaa !5
  %10908 = load i32, ptr %18, align 4, !tbaa !14
  %10909 = add nsw i32 %10908, 1
  %10910 = sext i32 %10909 to i64
  %10911 = getelementptr inbounds i8, ptr %10907, i64 %10910
  store i8 %10906, ptr %10911, align 1, !tbaa !15
  %10912 = load ptr, ptr %14, align 8, !tbaa !5
  %10913 = load i32, ptr %18, align 4, !tbaa !14
  %10914 = add nsw i32 %10913, 2
  %10915 = sext i32 %10914 to i64
  %10916 = getelementptr inbounds i8, ptr %10912, i64 %10915
  %10917 = load i8, ptr %10916, align 1, !tbaa !15
  %10918 = zext i8 %10917 to i64
  %10919 = getelementptr inbounds [256 x i8], ptr @r_to_y, i64 0, i64 %10918
  %10920 = load i8, ptr %10919, align 1, !tbaa !15
  %10921 = zext i8 %10920 to i32
  %10922 = load ptr, ptr %13, align 8, !tbaa !5
  %10923 = load i32, ptr %18, align 4, !tbaa !14
  %10924 = add nsw i32 %10923, 2
  %10925 = sext i32 %10924 to i64
  %10926 = getelementptr inbounds i8, ptr %10922, i64 %10925
  %10927 = load i8, ptr %10926, align 1, !tbaa !15
  %10928 = zext i8 %10927 to i64
  %10929 = getelementptr inbounds [256 x i8], ptr @g_to_y, i64 0, i64 %10928
  %10930 = load i8, ptr %10929, align 1, !tbaa !15
  %10931 = zext i8 %10930 to i32
  %10932 = add nsw i32 %10921, %10931
  %10933 = load ptr, ptr %12, align 8, !tbaa !5
  %10934 = load i32, ptr %18, align 4, !tbaa !14
  %10935 = add nsw i32 %10934, 2
  %10936 = sext i32 %10935 to i64
  %10937 = getelementptr inbounds i8, ptr %10933, i64 %10936
  %10938 = load i8, ptr %10937, align 1, !tbaa !15
  %10939 = zext i8 %10938 to i64
  %10940 = getelementptr inbounds [256 x i8], ptr @b_to_y, i64 0, i64 %10939
  %10941 = load i8, ptr %10940, align 1, !tbaa !15
  %10942 = zext i8 %10941 to i32
  %10943 = add nsw i32 %10932, %10942
  %10944 = trunc i32 %10943 to i8
  %10945 = load ptr, ptr %15, align 8, !tbaa !5
  %10946 = load i32, ptr %18, align 4, !tbaa !14
  %10947 = add nsw i32 %10946, 2
  %10948 = sext i32 %10947 to i64
  %10949 = getelementptr inbounds i8, ptr %10945, i64 %10948
  store i8 %10944, ptr %10949, align 1, !tbaa !15
  %10950 = load ptr, ptr %10, align 8, !tbaa !5
  %10951 = load ptr, ptr %12, align 8, !tbaa !5
  %10952 = load i32, ptr %18, align 4, !tbaa !14
  %10953 = add nsw i32 %10952, 2
  %10954 = sext i32 %10953 to i64
  %10955 = getelementptr inbounds i8, ptr %10951, i64 %10954
  %10956 = load i8, ptr %10955, align 1, !tbaa !15
  %10957 = zext i8 %10956 to i32
  %10958 = load ptr, ptr %15, align 8, !tbaa !5
  %10959 = load i32, ptr %18, align 4, !tbaa !14
  %10960 = add nsw i32 %10959, 2
  %10961 = sext i32 %10960 to i64
  %10962 = getelementptr inbounds i8, ptr %10958, i64 %10961
  %10963 = load i8, ptr %10962, align 1, !tbaa !15
  %10964 = zext i8 %10963 to i32
  %10965 = sub nsw i32 %10957, %10964
  %10966 = sext i32 %10965 to i64
  %10967 = getelementptr inbounds i8, ptr %10950, i64 %10966
  %10968 = load i8, ptr %10967, align 1, !tbaa !15
  %10969 = load ptr, ptr %16, align 8, !tbaa !5
  %10970 = load i32, ptr %18, align 4, !tbaa !14
  %10971 = add nsw i32 %10970, 2
  %10972 = sext i32 %10971 to i64
  %10973 = getelementptr inbounds i8, ptr %10969, i64 %10972
  store i8 %10968, ptr %10973, align 1, !tbaa !15
  %10974 = load ptr, ptr %9, align 8, !tbaa !5
  %10975 = load ptr, ptr %14, align 8, !tbaa !5
  %10976 = load i32, ptr %18, align 4, !tbaa !14
  %10977 = add nsw i32 %10976, 2
  %10978 = sext i32 %10977 to i64
  %10979 = getelementptr inbounds i8, ptr %10975, i64 %10978
  %10980 = load i8, ptr %10979, align 1, !tbaa !15
  %10981 = zext i8 %10980 to i32
  %10982 = load ptr, ptr %15, align 8, !tbaa !5
  %10983 = load i32, ptr %18, align 4, !tbaa !14
  %10984 = add nsw i32 %10983, 2
  %10985 = sext i32 %10984 to i64
  %10986 = getelementptr inbounds i8, ptr %10982, i64 %10985
  %10987 = load i8, ptr %10986, align 1, !tbaa !15
  %10988 = zext i8 %10987 to i32
  %10989 = sub nsw i32 %10981, %10988
  %10990 = sext i32 %10989 to i64
  %10991 = getelementptr inbounds i8, ptr %10974, i64 %10990
  %10992 = load i8, ptr %10991, align 1, !tbaa !15
  %10993 = load ptr, ptr %17, align 8, !tbaa !5
  %10994 = load i32, ptr %18, align 4, !tbaa !14
  %10995 = add nsw i32 %10994, 2
  %10996 = sext i32 %10995 to i64
  %10997 = getelementptr inbounds i8, ptr %10993, i64 %10996
  store i8 %10992, ptr %10997, align 1, !tbaa !15
  %10998 = load ptr, ptr %14, align 8, !tbaa !5
  %10999 = load i32, ptr %18, align 4, !tbaa !14
  %11000 = add nsw i32 %10999, 3
  %11001 = sext i32 %11000 to i64
  %11002 = getelementptr inbounds i8, ptr %10998, i64 %11001
  %11003 = load i8, ptr %11002, align 1, !tbaa !15
  %11004 = zext i8 %11003 to i64
  %11005 = getelementptr inbounds [256 x i8], ptr @r_to_y, i64 0, i64 %11004
  %11006 = load i8, ptr %11005, align 1, !tbaa !15
  %11007 = zext i8 %11006 to i32
  %11008 = load ptr, ptr %13, align 8, !tbaa !5
  %11009 = load i32, ptr %18, align 4, !tbaa !14
  %11010 = add nsw i32 %11009, 3
  %11011 = sext i32 %11010 to i64
  %11012 = getelementptr inbounds i8, ptr %11008, i64 %11011
  %11013 = load i8, ptr %11012, align 1, !tbaa !15
  %11014 = zext i8 %11013 to i64
  %11015 = getelementptr inbounds [256 x i8], ptr @g_to_y, i64 0, i64 %11014
  %11016 = load i8, ptr %11015, align 1, !tbaa !15
  %11017 = zext i8 %11016 to i32
  %11018 = add nsw i32 %11007, %11017
  %11019 = load ptr, ptr %12, align 8, !tbaa !5
  %11020 = load i32, ptr %18, align 4, !tbaa !14
  %11021 = add nsw i32 %11020, 3
  %11022 = sext i32 %11021 to i64
  %11023 = getelementptr inbounds i8, ptr %11019, i64 %11022
  %11024 = load i8, ptr %11023, align 1, !tbaa !15
  %11025 = zext i8 %11024 to i64
  %11026 = getelementptr inbounds [256 x i8], ptr @b_to_y, i64 0, i64 %11025
  %11027 = load i8, ptr %11026, align 1, !tbaa !15
  %11028 = zext i8 %11027 to i32
  %11029 = add nsw i32 %11018, %11028
  %11030 = trunc i32 %11029 to i8
  %11031 = load ptr, ptr %15, align 8, !tbaa !5
  %11032 = load i32, ptr %18, align 4, !tbaa !14
  %11033 = add nsw i32 %11032, 3
  %11034 = sext i32 %11033 to i64
  %11035 = getelementptr inbounds i8, ptr %11031, i64 %11034
  store i8 %11030, ptr %11035, align 1, !tbaa !15
  %11036 = load ptr, ptr %10, align 8, !tbaa !5
  %11037 = load ptr, ptr %12, align 8, !tbaa !5
  %11038 = load i32, ptr %18, align 4, !tbaa !14
  %11039 = add nsw i32 %11038, 3
  %11040 = sext i32 %11039 to i64
  %11041 = getelementptr inbounds i8, ptr %11037, i64 %11040
  %11042 = load i8, ptr %11041, align 1, !tbaa !15
  %11043 = zext i8 %11042 to i32
  %11044 = load ptr, ptr %15, align 8, !tbaa !5
  %11045 = load i32, ptr %18, align 4, !tbaa !14
  %11046 = add nsw i32 %11045, 3
  %11047 = sext i32 %11046 to i64
  %11048 = getelementptr inbounds i8, ptr %11044, i64 %11047
  %11049 = load i8, ptr %11048, align 1, !tbaa !15
  %11050 = zext i8 %11049 to i32
  %11051 = sub nsw i32 %11043, %11050
  %11052 = sext i32 %11051 to i64
  %11053 = getelementptr inbounds i8, ptr %11036, i64 %11052
  %11054 = load i8, ptr %11053, align 1, !tbaa !15
  %11055 = load ptr, ptr %16, align 8, !tbaa !5
  %11056 = load i32, ptr %18, align 4, !tbaa !14
  %11057 = add nsw i32 %11056, 3
  %11058 = sext i32 %11057 to i64
  %11059 = getelementptr inbounds i8, ptr %11055, i64 %11058
  store i8 %11054, ptr %11059, align 1, !tbaa !15
  %11060 = load ptr, ptr %9, align 8, !tbaa !5
  %11061 = load ptr, ptr %14, align 8, !tbaa !5
  %11062 = load i32, ptr %18, align 4, !tbaa !14
  %11063 = add nsw i32 %11062, 3
  %11064 = sext i32 %11063 to i64
  %11065 = getelementptr inbounds i8, ptr %11061, i64 %11064
  %11066 = load i8, ptr %11065, align 1, !tbaa !15
  %11067 = zext i8 %11066 to i32
  %11068 = load ptr, ptr %15, align 8, !tbaa !5
  %11069 = load i32, ptr %18, align 4, !tbaa !14
  %11070 = add nsw i32 %11069, 3
  %11071 = sext i32 %11070 to i64
  %11072 = getelementptr inbounds i8, ptr %11068, i64 %11071
  %11073 = load i8, ptr %11072, align 1, !tbaa !15
  %11074 = zext i8 %11073 to i32
  %11075 = sub nsw i32 %11067, %11074
  %11076 = sext i32 %11075 to i64
  %11077 = getelementptr inbounds i8, ptr %11060, i64 %11076
  %11078 = load i8, ptr %11077, align 1, !tbaa !15
  %11079 = load ptr, ptr %17, align 8, !tbaa !5
  %11080 = load i32, ptr %18, align 4, !tbaa !14
  %11081 = add nsw i32 %11080, 3
  %11082 = sext i32 %11081 to i64
  %11083 = getelementptr inbounds i8, ptr %11079, i64 %11082
  store i8 %11078, ptr %11083, align 1, !tbaa !15
  %11084 = load ptr, ptr %14, align 8, !tbaa !5
  %11085 = load i32, ptr %18, align 4, !tbaa !14
  %11086 = add nsw i32 %11085, 4
  %11087 = sext i32 %11086 to i64
  %11088 = getelementptr inbounds i8, ptr %11084, i64 %11087
  %11089 = load i8, ptr %11088, align 1, !tbaa !15
  %11090 = zext i8 %11089 to i64
  %11091 = getelementptr inbounds [256 x i8], ptr @r_to_y, i64 0, i64 %11090
  %11092 = load i8, ptr %11091, align 1, !tbaa !15
  %11093 = zext i8 %11092 to i32
  %11094 = load ptr, ptr %13, align 8, !tbaa !5
  %11095 = load i32, ptr %18, align 4, !tbaa !14
  %11096 = add nsw i32 %11095, 4
  %11097 = sext i32 %11096 to i64
  %11098 = getelementptr inbounds i8, ptr %11094, i64 %11097
  %11099 = load i8, ptr %11098, align 1, !tbaa !15
  %11100 = zext i8 %11099 to i64
  %11101 = getelementptr inbounds [256 x i8], ptr @g_to_y, i64 0, i64 %11100
  %11102 = load i8, ptr %11101, align 1, !tbaa !15
  %11103 = zext i8 %11102 to i32
  %11104 = add nsw i32 %11093, %11103
  %11105 = load ptr, ptr %12, align 8, !tbaa !5
  %11106 = load i32, ptr %18, align 4, !tbaa !14
  %11107 = add nsw i32 %11106, 4
  %11108 = sext i32 %11107 to i64
  %11109 = getelementptr inbounds i8, ptr %11105, i64 %11108
  %11110 = load i8, ptr %11109, align 1, !tbaa !15
  %11111 = zext i8 %11110 to i64
  %11112 = getelementptr inbounds [256 x i8], ptr @b_to_y, i64 0, i64 %11111
  %11113 = load i8, ptr %11112, align 1, !tbaa !15
  %11114 = zext i8 %11113 to i32
  %11115 = add nsw i32 %11104, %11114
  %11116 = trunc i32 %11115 to i8
  %11117 = load ptr, ptr %15, align 8, !tbaa !5
  %11118 = load i32, ptr %18, align 4, !tbaa !14
  %11119 = add nsw i32 %11118, 4
  %11120 = sext i32 %11119 to i64
  %11121 = getelementptr inbounds i8, ptr %11117, i64 %11120
  store i8 %11116, ptr %11121, align 1, !tbaa !15
  %11122 = load ptr, ptr %10, align 8, !tbaa !5
  %11123 = load ptr, ptr %12, align 8, !tbaa !5
  %11124 = load i32, ptr %18, align 4, !tbaa !14
  %11125 = add nsw i32 %11124, 4
  %11126 = sext i32 %11125 to i64
  %11127 = getelementptr inbounds i8, ptr %11123, i64 %11126
  %11128 = load i8, ptr %11127, align 1, !tbaa !15
  %11129 = zext i8 %11128 to i32
  %11130 = load ptr, ptr %15, align 8, !tbaa !5
  %11131 = load i32, ptr %18, align 4, !tbaa !14
  %11132 = add nsw i32 %11131, 4
  %11133 = sext i32 %11132 to i64
  %11134 = getelementptr inbounds i8, ptr %11130, i64 %11133
  %11135 = load i8, ptr %11134, align 1, !tbaa !15
  %11136 = zext i8 %11135 to i32
  %11137 = sub nsw i32 %11129, %11136
  %11138 = sext i32 %11137 to i64
  %11139 = getelementptr inbounds i8, ptr %11122, i64 %11138
  %11140 = load i8, ptr %11139, align 1, !tbaa !15
  %11141 = load ptr, ptr %16, align 8, !tbaa !5
  %11142 = load i32, ptr %18, align 4, !tbaa !14
  %11143 = add nsw i32 %11142, 4
  %11144 = sext i32 %11143 to i64
  %11145 = getelementptr inbounds i8, ptr %11141, i64 %11144
  store i8 %11140, ptr %11145, align 1, !tbaa !15
  %11146 = load ptr, ptr %9, align 8, !tbaa !5
  %11147 = load ptr, ptr %14, align 8, !tbaa !5
  %11148 = load i32, ptr %18, align 4, !tbaa !14
  %11149 = add nsw i32 %11148, 4
  %11150 = sext i32 %11149 to i64
  %11151 = getelementptr inbounds i8, ptr %11147, i64 %11150
  %11152 = load i8, ptr %11151, align 1, !tbaa !15
  %11153 = zext i8 %11152 to i32
  %11154 = load ptr, ptr %15, align 8, !tbaa !5
  %11155 = load i32, ptr %18, align 4, !tbaa !14
  %11156 = add nsw i32 %11155, 4
  %11157 = sext i32 %11156 to i64
  %11158 = getelementptr inbounds i8, ptr %11154, i64 %11157
  %11159 = load i8, ptr %11158, align 1, !tbaa !15
  %11160 = zext i8 %11159 to i32
  %11161 = sub nsw i32 %11153, %11160
  %11162 = sext i32 %11161 to i64
  %11163 = getelementptr inbounds i8, ptr %11146, i64 %11162
  %11164 = load i8, ptr %11163, align 1, !tbaa !15
  %11165 = load ptr, ptr %17, align 8, !tbaa !5
  %11166 = load i32, ptr %18, align 4, !tbaa !14
  %11167 = add nsw i32 %11166, 4
  %11168 = sext i32 %11167 to i64
  %11169 = getelementptr inbounds i8, ptr %11165, i64 %11168
  store i8 %11164, ptr %11169, align 1, !tbaa !15
  %11170 = load ptr, ptr %14, align 8, !tbaa !5
  %11171 = load i32, ptr %18, align 4, !tbaa !14
  %11172 = add nsw i32 %11171, 5
  %11173 = sext i32 %11172 to i64
  %11174 = getelementptr inbounds i8, ptr %11170, i64 %11173
  %11175 = load i8, ptr %11174, align 1, !tbaa !15
  %11176 = zext i8 %11175 to i64
  %11177 = getelementptr inbounds [256 x i8], ptr @r_to_y, i64 0, i64 %11176
  %11178 = load i8, ptr %11177, align 1, !tbaa !15
  %11179 = zext i8 %11178 to i32
  %11180 = load ptr, ptr %13, align 8, !tbaa !5
  %11181 = load i32, ptr %18, align 4, !tbaa !14
  %11182 = add nsw i32 %11181, 5
  %11183 = sext i32 %11182 to i64
  %11184 = getelementptr inbounds i8, ptr %11180, i64 %11183
  %11185 = load i8, ptr %11184, align 1, !tbaa !15
  %11186 = zext i8 %11185 to i64
  %11187 = getelementptr inbounds [256 x i8], ptr @g_to_y, i64 0, i64 %11186
  %11188 = load i8, ptr %11187, align 1, !tbaa !15
  %11189 = zext i8 %11188 to i32
  %11190 = add nsw i32 %11179, %11189
  %11191 = load ptr, ptr %12, align 8, !tbaa !5
  %11192 = load i32, ptr %18, align 4, !tbaa !14
  %11193 = add nsw i32 %11192, 5
  %11194 = sext i32 %11193 to i64
  %11195 = getelementptr inbounds i8, ptr %11191, i64 %11194
  %11196 = load i8, ptr %11195, align 1, !tbaa !15
  %11197 = zext i8 %11196 to i64
  %11198 = getelementptr inbounds [256 x i8], ptr @b_to_y, i64 0, i64 %11197
  %11199 = load i8, ptr %11198, align 1, !tbaa !15
  %11200 = zext i8 %11199 to i32
  %11201 = add nsw i32 %11190, %11200
  %11202 = trunc i32 %11201 to i8
  %11203 = load ptr, ptr %15, align 8, !tbaa !5
  %11204 = load i32, ptr %18, align 4, !tbaa !14
  %11205 = add nsw i32 %11204, 5
  %11206 = sext i32 %11205 to i64
  %11207 = getelementptr inbounds i8, ptr %11203, i64 %11206
  store i8 %11202, ptr %11207, align 1, !tbaa !15
  %11208 = load ptr, ptr %10, align 8, !tbaa !5
  %11209 = load ptr, ptr %12, align 8, !tbaa !5
  %11210 = load i32, ptr %18, align 4, !tbaa !14
  %11211 = add nsw i32 %11210, 5
  %11212 = sext i32 %11211 to i64
  %11213 = getelementptr inbounds i8, ptr %11209, i64 %11212
  %11214 = load i8, ptr %11213, align 1, !tbaa !15
  %11215 = zext i8 %11214 to i32
  %11216 = load ptr, ptr %15, align 8, !tbaa !5
  %11217 = load i32, ptr %18, align 4, !tbaa !14
  %11218 = add nsw i32 %11217, 5
  %11219 = sext i32 %11218 to i64
  %11220 = getelementptr inbounds i8, ptr %11216, i64 %11219
  %11221 = load i8, ptr %11220, align 1, !tbaa !15
  %11222 = zext i8 %11221 to i32
  %11223 = sub nsw i32 %11215, %11222
  %11224 = sext i32 %11223 to i64
  %11225 = getelementptr inbounds i8, ptr %11208, i64 %11224
  %11226 = load i8, ptr %11225, align 1, !tbaa !15
  %11227 = load ptr, ptr %16, align 8, !tbaa !5
  %11228 = load i32, ptr %18, align 4, !tbaa !14
  %11229 = add nsw i32 %11228, 5
  %11230 = sext i32 %11229 to i64
  %11231 = getelementptr inbounds i8, ptr %11227, i64 %11230
  store i8 %11226, ptr %11231, align 1, !tbaa !15
  %11232 = load ptr, ptr %9, align 8, !tbaa !5
  %11233 = load ptr, ptr %14, align 8, !tbaa !5
  %11234 = load i32, ptr %18, align 4, !tbaa !14
  %11235 = add nsw i32 %11234, 5
  %11236 = sext i32 %11235 to i64
  %11237 = getelementptr inbounds i8, ptr %11233, i64 %11236
  %11238 = load i8, ptr %11237, align 1, !tbaa !15
  %11239 = zext i8 %11238 to i32
  %11240 = load ptr, ptr %15, align 8, !tbaa !5
  %11241 = load i32, ptr %18, align 4, !tbaa !14
  %11242 = add nsw i32 %11241, 5
  %11243 = sext i32 %11242 to i64
  %11244 = getelementptr inbounds i8, ptr %11240, i64 %11243
  %11245 = load i8, ptr %11244, align 1, !tbaa !15
  %11246 = zext i8 %11245 to i32
  %11247 = sub nsw i32 %11239, %11246
  %11248 = sext i32 %11247 to i64
  %11249 = getelementptr inbounds i8, ptr %11232, i64 %11248
  %11250 = load i8, ptr %11249, align 1, !tbaa !15
  %11251 = load ptr, ptr %17, align 8, !tbaa !5
  %11252 = load i32, ptr %18, align 4, !tbaa !14
  %11253 = add nsw i32 %11252, 5
  %11254 = sext i32 %11253 to i64
  %11255 = getelementptr inbounds i8, ptr %11251, i64 %11254
  store i8 %11250, ptr %11255, align 1, !tbaa !15
  %11256 = load ptr, ptr %14, align 8, !tbaa !5
  %11257 = load i32, ptr %18, align 4, !tbaa !14
  %11258 = add nsw i32 %11257, 6
  %11259 = sext i32 %11258 to i64
  %11260 = getelementptr inbounds i8, ptr %11256, i64 %11259
  %11261 = load i8, ptr %11260, align 1, !tbaa !15
  %11262 = zext i8 %11261 to i64
  %11263 = getelementptr inbounds [256 x i8], ptr @r_to_y, i64 0, i64 %11262
  %11264 = load i8, ptr %11263, align 1, !tbaa !15
  %11265 = zext i8 %11264 to i32
  %11266 = load ptr, ptr %13, align 8, !tbaa !5
  %11267 = load i32, ptr %18, align 4, !tbaa !14
  %11268 = add nsw i32 %11267, 6
  %11269 = sext i32 %11268 to i64
  %11270 = getelementptr inbounds i8, ptr %11266, i64 %11269
  %11271 = load i8, ptr %11270, align 1, !tbaa !15
  %11272 = zext i8 %11271 to i64
  %11273 = getelementptr inbounds [256 x i8], ptr @g_to_y, i64 0, i64 %11272
  %11274 = load i8, ptr %11273, align 1, !tbaa !15
  %11275 = zext i8 %11274 to i32
  %11276 = add nsw i32 %11265, %11275
  %11277 = load ptr, ptr %12, align 8, !tbaa !5
  %11278 = load i32, ptr %18, align 4, !tbaa !14
  %11279 = add nsw i32 %11278, 6
  %11280 = sext i32 %11279 to i64
  %11281 = getelementptr inbounds i8, ptr %11277, i64 %11280
  %11282 = load i8, ptr %11281, align 1, !tbaa !15
  %11283 = zext i8 %11282 to i64
  %11284 = getelementptr inbounds [256 x i8], ptr @b_to_y, i64 0, i64 %11283
  %11285 = load i8, ptr %11284, align 1, !tbaa !15
  %11286 = zext i8 %11285 to i32
  %11287 = add nsw i32 %11276, %11286
  %11288 = trunc i32 %11287 to i8
  %11289 = load ptr, ptr %15, align 8, !tbaa !5
  %11290 = load i32, ptr %18, align 4, !tbaa !14
  %11291 = add nsw i32 %11290, 6
  %11292 = sext i32 %11291 to i64
  %11293 = getelementptr inbounds i8, ptr %11289, i64 %11292
  store i8 %11288, ptr %11293, align 1, !tbaa !15
  %11294 = load ptr, ptr %10, align 8, !tbaa !5
  %11295 = load ptr, ptr %12, align 8, !tbaa !5
  %11296 = load i32, ptr %18, align 4, !tbaa !14
  %11297 = add nsw i32 %11296, 6
  %11298 = sext i32 %11297 to i64
  %11299 = getelementptr inbounds i8, ptr %11295, i64 %11298
  %11300 = load i8, ptr %11299, align 1, !tbaa !15
  %11301 = zext i8 %11300 to i32
  %11302 = load ptr, ptr %15, align 8, !tbaa !5
  %11303 = load i32, ptr %18, align 4, !tbaa !14
  %11304 = add nsw i32 %11303, 6
  %11305 = sext i32 %11304 to i64
  %11306 = getelementptr inbounds i8, ptr %11302, i64 %11305
  %11307 = load i8, ptr %11306, align 1, !tbaa !15
  %11308 = zext i8 %11307 to i32
  %11309 = sub nsw i32 %11301, %11308
  %11310 = sext i32 %11309 to i64
  %11311 = getelementptr inbounds i8, ptr %11294, i64 %11310
  %11312 = load i8, ptr %11311, align 1, !tbaa !15
  %11313 = load ptr, ptr %16, align 8, !tbaa !5
  %11314 = load i32, ptr %18, align 4, !tbaa !14
  %11315 = add nsw i32 %11314, 6
  %11316 = sext i32 %11315 to i64
  %11317 = getelementptr inbounds i8, ptr %11313, i64 %11316
  store i8 %11312, ptr %11317, align 1, !tbaa !15
  %11318 = load ptr, ptr %9, align 8, !tbaa !5
  %11319 = load ptr, ptr %14, align 8, !tbaa !5
  %11320 = load i32, ptr %18, align 4, !tbaa !14
  %11321 = add nsw i32 %11320, 6
  %11322 = sext i32 %11321 to i64
  %11323 = getelementptr inbounds i8, ptr %11319, i64 %11322
  %11324 = load i8, ptr %11323, align 1, !tbaa !15
  %11325 = zext i8 %11324 to i32
  %11326 = load ptr, ptr %15, align 8, !tbaa !5
  %11327 = load i32, ptr %18, align 4, !tbaa !14
  %11328 = add nsw i32 %11327, 6
  %11329 = sext i32 %11328 to i64
  %11330 = getelementptr inbounds i8, ptr %11326, i64 %11329
  %11331 = load i8, ptr %11330, align 1, !tbaa !15
  %11332 = zext i8 %11331 to i32
  %11333 = sub nsw i32 %11325, %11332
  %11334 = sext i32 %11333 to i64
  %11335 = getelementptr inbounds i8, ptr %11318, i64 %11334
  %11336 = load i8, ptr %11335, align 1, !tbaa !15
  %11337 = load ptr, ptr %17, align 8, !tbaa !5
  %11338 = load i32, ptr %18, align 4, !tbaa !14
  %11339 = add nsw i32 %11338, 6
  %11340 = sext i32 %11339 to i64
  %11341 = getelementptr inbounds i8, ptr %11337, i64 %11340
  store i8 %11336, ptr %11341, align 1, !tbaa !15
  %11342 = load ptr, ptr %14, align 8, !tbaa !5
  %11343 = load i32, ptr %18, align 4, !tbaa !14
  %11344 = add nsw i32 %11343, 7
  %11345 = sext i32 %11344 to i64
  %11346 = getelementptr inbounds i8, ptr %11342, i64 %11345
  %11347 = load i8, ptr %11346, align 1, !tbaa !15
  %11348 = zext i8 %11347 to i64
  %11349 = getelementptr inbounds [256 x i8], ptr @r_to_y, i64 0, i64 %11348
  %11350 = load i8, ptr %11349, align 1, !tbaa !15
  %11351 = zext i8 %11350 to i32
  %11352 = load ptr, ptr %13, align 8, !tbaa !5
  %11353 = load i32, ptr %18, align 4, !tbaa !14
  %11354 = add nsw i32 %11353, 7
  %11355 = sext i32 %11354 to i64
  %11356 = getelementptr inbounds i8, ptr %11352, i64 %11355
  %11357 = load i8, ptr %11356, align 1, !tbaa !15
  %11358 = zext i8 %11357 to i64
  %11359 = getelementptr inbounds [256 x i8], ptr @g_to_y, i64 0, i64 %11358
  %11360 = load i8, ptr %11359, align 1, !tbaa !15
  %11361 = zext i8 %11360 to i32
  %11362 = add nsw i32 %11351, %11361
  %11363 = load ptr, ptr %12, align 8, !tbaa !5
  %11364 = load i32, ptr %18, align 4, !tbaa !14
  %11365 = add nsw i32 %11364, 7
  %11366 = sext i32 %11365 to i64
  %11367 = getelementptr inbounds i8, ptr %11363, i64 %11366
  %11368 = load i8, ptr %11367, align 1, !tbaa !15
  %11369 = zext i8 %11368 to i64
  %11370 = getelementptr inbounds [256 x i8], ptr @b_to_y, i64 0, i64 %11369
  %11371 = load i8, ptr %11370, align 1, !tbaa !15
  %11372 = zext i8 %11371 to i32
  %11373 = add nsw i32 %11362, %11372
  %11374 = trunc i32 %11373 to i8
  %11375 = load ptr, ptr %15, align 8, !tbaa !5
  %11376 = load i32, ptr %18, align 4, !tbaa !14
  %11377 = add nsw i32 %11376, 7
  %11378 = sext i32 %11377 to i64
  %11379 = getelementptr inbounds i8, ptr %11375, i64 %11378
  store i8 %11374, ptr %11379, align 1, !tbaa !15
  %11380 = load ptr, ptr %10, align 8, !tbaa !5
  %11381 = load ptr, ptr %12, align 8, !tbaa !5
  %11382 = load i32, ptr %18, align 4, !tbaa !14
  %11383 = add nsw i32 %11382, 7
  %11384 = sext i32 %11383 to i64
  %11385 = getelementptr inbounds i8, ptr %11381, i64 %11384
  %11386 = load i8, ptr %11385, align 1, !tbaa !15
  %11387 = zext i8 %11386 to i32
  %11388 = load ptr, ptr %15, align 8, !tbaa !5
  %11389 = load i32, ptr %18, align 4, !tbaa !14
  %11390 = add nsw i32 %11389, 7
  %11391 = sext i32 %11390 to i64
  %11392 = getelementptr inbounds i8, ptr %11388, i64 %11391
  %11393 = load i8, ptr %11392, align 1, !tbaa !15
  %11394 = zext i8 %11393 to i32
  %11395 = sub nsw i32 %11387, %11394
  %11396 = sext i32 %11395 to i64
  %11397 = getelementptr inbounds i8, ptr %11380, i64 %11396
  %11398 = load i8, ptr %11397, align 1, !tbaa !15
  %11399 = load ptr, ptr %16, align 8, !tbaa !5
  %11400 = load i32, ptr %18, align 4, !tbaa !14
  %11401 = add nsw i32 %11400, 7
  %11402 = sext i32 %11401 to i64
  %11403 = getelementptr inbounds i8, ptr %11399, i64 %11402
  store i8 %11398, ptr %11403, align 1, !tbaa !15
  %11404 = load ptr, ptr %9, align 8, !tbaa !5
  %11405 = load ptr, ptr %14, align 8, !tbaa !5
  %11406 = load i32, ptr %18, align 4, !tbaa !14
  %11407 = add nsw i32 %11406, 7
  %11408 = sext i32 %11407 to i64
  %11409 = getelementptr inbounds i8, ptr %11405, i64 %11408
  %11410 = load i8, ptr %11409, align 1, !tbaa !15
  %11411 = zext i8 %11410 to i32
  %11412 = load ptr, ptr %15, align 8, !tbaa !5
  %11413 = load i32, ptr %18, align 4, !tbaa !14
  %11414 = add nsw i32 %11413, 7
  %11415 = sext i32 %11414 to i64
  %11416 = getelementptr inbounds i8, ptr %11412, i64 %11415
  %11417 = load i8, ptr %11416, align 1, !tbaa !15
  %11418 = zext i8 %11417 to i32
  %11419 = sub nsw i32 %11411, %11418
  %11420 = sext i32 %11419 to i64
  %11421 = getelementptr inbounds i8, ptr %11404, i64 %11420
  %11422 = load i8, ptr %11421, align 1, !tbaa !15
  %11423 = load ptr, ptr %17, align 8, !tbaa !5
  %11424 = load i32, ptr %18, align 4, !tbaa !14
  %11425 = add nsw i32 %11424, 7
  %11426 = sext i32 %11425 to i64
  %11427 = getelementptr inbounds i8, ptr %11423, i64 %11426
  store i8 %11422, ptr %11427, align 1, !tbaa !15
  %11428 = load ptr, ptr %14, align 8, !tbaa !5
  %11429 = load i32, ptr %18, align 4, !tbaa !14
  %11430 = add nsw i32 %11429, 8
  %11431 = sext i32 %11430 to i64
  %11432 = getelementptr inbounds i8, ptr %11428, i64 %11431
  %11433 = load i8, ptr %11432, align 1, !tbaa !15
  %11434 = zext i8 %11433 to i64
  %11435 = getelementptr inbounds [256 x i8], ptr @r_to_y, i64 0, i64 %11434
  %11436 = load i8, ptr %11435, align 1, !tbaa !15
  %11437 = zext i8 %11436 to i32
  %11438 = load ptr, ptr %13, align 8, !tbaa !5
  %11439 = load i32, ptr %18, align 4, !tbaa !14
  %11440 = add nsw i32 %11439, 8
  %11441 = sext i32 %11440 to i64
  %11442 = getelementptr inbounds i8, ptr %11438, i64 %11441
  %11443 = load i8, ptr %11442, align 1, !tbaa !15
  %11444 = zext i8 %11443 to i64
  %11445 = getelementptr inbounds [256 x i8], ptr @g_to_y, i64 0, i64 %11444
  %11446 = load i8, ptr %11445, align 1, !tbaa !15
  %11447 = zext i8 %11446 to i32
  %11448 = add nsw i32 %11437, %11447
  %11449 = load ptr, ptr %12, align 8, !tbaa !5
  %11450 = load i32, ptr %18, align 4, !tbaa !14
  %11451 = add nsw i32 %11450, 8
  %11452 = sext i32 %11451 to i64
  %11453 = getelementptr inbounds i8, ptr %11449, i64 %11452
  %11454 = load i8, ptr %11453, align 1, !tbaa !15
  %11455 = zext i8 %11454 to i64
  %11456 = getelementptr inbounds [256 x i8], ptr @b_to_y, i64 0, i64 %11455
  %11457 = load i8, ptr %11456, align 1, !tbaa !15
  %11458 = zext i8 %11457 to i32
  %11459 = add nsw i32 %11448, %11458
  %11460 = trunc i32 %11459 to i8
  %11461 = load ptr, ptr %15, align 8, !tbaa !5
  %11462 = load i32, ptr %18, align 4, !tbaa !14
  %11463 = add nsw i32 %11462, 8
  %11464 = sext i32 %11463 to i64
  %11465 = getelementptr inbounds i8, ptr %11461, i64 %11464
  store i8 %11460, ptr %11465, align 1, !tbaa !15
  %11466 = load ptr, ptr %10, align 8, !tbaa !5
  %11467 = load ptr, ptr %12, align 8, !tbaa !5
  %11468 = load i32, ptr %18, align 4, !tbaa !14
  %11469 = add nsw i32 %11468, 8
  %11470 = sext i32 %11469 to i64
  %11471 = getelementptr inbounds i8, ptr %11467, i64 %11470
  %11472 = load i8, ptr %11471, align 1, !tbaa !15
  %11473 = zext i8 %11472 to i32
  %11474 = load ptr, ptr %15, align 8, !tbaa !5
  %11475 = load i32, ptr %18, align 4, !tbaa !14
  %11476 = add nsw i32 %11475, 8
  %11477 = sext i32 %11476 to i64
  %11478 = getelementptr inbounds i8, ptr %11474, i64 %11477
  %11479 = load i8, ptr %11478, align 1, !tbaa !15
  %11480 = zext i8 %11479 to i32
  %11481 = sub nsw i32 %11473, %11480
  %11482 = sext i32 %11481 to i64
  %11483 = getelementptr inbounds i8, ptr %11466, i64 %11482
  %11484 = load i8, ptr %11483, align 1, !tbaa !15
  %11485 = load ptr, ptr %16, align 8, !tbaa !5
  %11486 = load i32, ptr %18, align 4, !tbaa !14
  %11487 = add nsw i32 %11486, 8
  %11488 = sext i32 %11487 to i64
  %11489 = getelementptr inbounds i8, ptr %11485, i64 %11488
  store i8 %11484, ptr %11489, align 1, !tbaa !15
  %11490 = load ptr, ptr %9, align 8, !tbaa !5
  %11491 = load ptr, ptr %14, align 8, !tbaa !5
  %11492 = load i32, ptr %18, align 4, !tbaa !14
  %11493 = add nsw i32 %11492, 8
  %11494 = sext i32 %11493 to i64
  %11495 = getelementptr inbounds i8, ptr %11491, i64 %11494
  %11496 = load i8, ptr %11495, align 1, !tbaa !15
  %11497 = zext i8 %11496 to i32
  %11498 = load ptr, ptr %15, align 8, !tbaa !5
  %11499 = load i32, ptr %18, align 4, !tbaa !14
  %11500 = add nsw i32 %11499, 8
  %11501 = sext i32 %11500 to i64
  %11502 = getelementptr inbounds i8, ptr %11498, i64 %11501
  %11503 = load i8, ptr %11502, align 1, !tbaa !15
  %11504 = zext i8 %11503 to i32
  %11505 = sub nsw i32 %11497, %11504
  %11506 = sext i32 %11505 to i64
  %11507 = getelementptr inbounds i8, ptr %11490, i64 %11506
  %11508 = load i8, ptr %11507, align 1, !tbaa !15
  %11509 = load ptr, ptr %17, align 8, !tbaa !5
  %11510 = load i32, ptr %18, align 4, !tbaa !14
  %11511 = add nsw i32 %11510, 8
  %11512 = sext i32 %11511 to i64
  %11513 = getelementptr inbounds i8, ptr %11509, i64 %11512
  store i8 %11508, ptr %11513, align 1, !tbaa !15
  %11514 = load ptr, ptr %14, align 8, !tbaa !5
  %11515 = load i32, ptr %18, align 4, !tbaa !14
  %11516 = add nsw i32 %11515, 9
  %11517 = sext i32 %11516 to i64
  %11518 = getelementptr inbounds i8, ptr %11514, i64 %11517
  %11519 = load i8, ptr %11518, align 1, !tbaa !15
  %11520 = zext i8 %11519 to i64
  %11521 = getelementptr inbounds [256 x i8], ptr @r_to_y, i64 0, i64 %11520
  %11522 = load i8, ptr %11521, align 1, !tbaa !15
  %11523 = zext i8 %11522 to i32
  %11524 = load ptr, ptr %13, align 8, !tbaa !5
  %11525 = load i32, ptr %18, align 4, !tbaa !14
  %11526 = add nsw i32 %11525, 9
  %11527 = sext i32 %11526 to i64
  %11528 = getelementptr inbounds i8, ptr %11524, i64 %11527
  %11529 = load i8, ptr %11528, align 1, !tbaa !15
  %11530 = zext i8 %11529 to i64
  %11531 = getelementptr inbounds [256 x i8], ptr @g_to_y, i64 0, i64 %11530
  %11532 = load i8, ptr %11531, align 1, !tbaa !15
  %11533 = zext i8 %11532 to i32
  %11534 = add nsw i32 %11523, %11533
  %11535 = load ptr, ptr %12, align 8, !tbaa !5
  %11536 = load i32, ptr %18, align 4, !tbaa !14
  %11537 = add nsw i32 %11536, 9
  %11538 = sext i32 %11537 to i64
  %11539 = getelementptr inbounds i8, ptr %11535, i64 %11538
  %11540 = load i8, ptr %11539, align 1, !tbaa !15
  %11541 = zext i8 %11540 to i64
  %11542 = getelementptr inbounds [256 x i8], ptr @b_to_y, i64 0, i64 %11541
  %11543 = load i8, ptr %11542, align 1, !tbaa !15
  %11544 = zext i8 %11543 to i32
  %11545 = add nsw i32 %11534, %11544
  %11546 = trunc i32 %11545 to i8
  %11547 = load ptr, ptr %15, align 8, !tbaa !5
  %11548 = load i32, ptr %18, align 4, !tbaa !14
  %11549 = add nsw i32 %11548, 9
  %11550 = sext i32 %11549 to i64
  %11551 = getelementptr inbounds i8, ptr %11547, i64 %11550
  store i8 %11546, ptr %11551, align 1, !tbaa !15
  %11552 = load ptr, ptr %10, align 8, !tbaa !5
  %11553 = load ptr, ptr %12, align 8, !tbaa !5
  %11554 = load i32, ptr %18, align 4, !tbaa !14
  %11555 = add nsw i32 %11554, 9
  %11556 = sext i32 %11555 to i64
  %11557 = getelementptr inbounds i8, ptr %11553, i64 %11556
  %11558 = load i8, ptr %11557, align 1, !tbaa !15
  %11559 = zext i8 %11558 to i32
  %11560 = load ptr, ptr %15, align 8, !tbaa !5
  %11561 = load i32, ptr %18, align 4, !tbaa !14
  %11562 = add nsw i32 %11561, 9
  %11563 = sext i32 %11562 to i64
  %11564 = getelementptr inbounds i8, ptr %11560, i64 %11563
  %11565 = load i8, ptr %11564, align 1, !tbaa !15
  %11566 = zext i8 %11565 to i32
  %11567 = sub nsw i32 %11559, %11566
  %11568 = sext i32 %11567 to i64
  %11569 = getelementptr inbounds i8, ptr %11552, i64 %11568
  %11570 = load i8, ptr %11569, align 1, !tbaa !15
  %11571 = load ptr, ptr %16, align 8, !tbaa !5
  %11572 = load i32, ptr %18, align 4, !tbaa !14
  %11573 = add nsw i32 %11572, 9
  %11574 = sext i32 %11573 to i64
  %11575 = getelementptr inbounds i8, ptr %11571, i64 %11574
  store i8 %11570, ptr %11575, align 1, !tbaa !15
  %11576 = load ptr, ptr %9, align 8, !tbaa !5
  %11577 = load ptr, ptr %14, align 8, !tbaa !5
  %11578 = load i32, ptr %18, align 4, !tbaa !14
  %11579 = add nsw i32 %11578, 9
  %11580 = sext i32 %11579 to i64
  %11581 = getelementptr inbounds i8, ptr %11577, i64 %11580
  %11582 = load i8, ptr %11581, align 1, !tbaa !15
  %11583 = zext i8 %11582 to i32
  %11584 = load ptr, ptr %15, align 8, !tbaa !5
  %11585 = load i32, ptr %18, align 4, !tbaa !14
  %11586 = add nsw i32 %11585, 9
  %11587 = sext i32 %11586 to i64
  %11588 = getelementptr inbounds i8, ptr %11584, i64 %11587
  %11589 = load i8, ptr %11588, align 1, !tbaa !15
  %11590 = zext i8 %11589 to i32
  %11591 = sub nsw i32 %11583, %11590
  %11592 = sext i32 %11591 to i64
  %11593 = getelementptr inbounds i8, ptr %11576, i64 %11592
  %11594 = load i8, ptr %11593, align 1, !tbaa !15
  %11595 = load ptr, ptr %17, align 8, !tbaa !5
  %11596 = load i32, ptr %18, align 4, !tbaa !14
  %11597 = add nsw i32 %11596, 9
  %11598 = sext i32 %11597 to i64
  %11599 = getelementptr inbounds i8, ptr %11595, i64 %11598
  store i8 %11594, ptr %11599, align 1, !tbaa !15
  %11600 = load ptr, ptr %14, align 8, !tbaa !5
  %11601 = load i32, ptr %18, align 4, !tbaa !14
  %11602 = add nsw i32 %11601, 10
  %11603 = sext i32 %11602 to i64
  %11604 = getelementptr inbounds i8, ptr %11600, i64 %11603
  %11605 = load i8, ptr %11604, align 1, !tbaa !15
  %11606 = zext i8 %11605 to i64
  %11607 = getelementptr inbounds [256 x i8], ptr @r_to_y, i64 0, i64 %11606
  %11608 = load i8, ptr %11607, align 1, !tbaa !15
  %11609 = zext i8 %11608 to i32
  %11610 = load ptr, ptr %13, align 8, !tbaa !5
  %11611 = load i32, ptr %18, align 4, !tbaa !14
  %11612 = add nsw i32 %11611, 10
  %11613 = sext i32 %11612 to i64
  %11614 = getelementptr inbounds i8, ptr %11610, i64 %11613
  %11615 = load i8, ptr %11614, align 1, !tbaa !15
  %11616 = zext i8 %11615 to i64
  %11617 = getelementptr inbounds [256 x i8], ptr @g_to_y, i64 0, i64 %11616
  %11618 = load i8, ptr %11617, align 1, !tbaa !15
  %11619 = zext i8 %11618 to i32
  %11620 = add nsw i32 %11609, %11619
  %11621 = load ptr, ptr %12, align 8, !tbaa !5
  %11622 = load i32, ptr %18, align 4, !tbaa !14
  %11623 = add nsw i32 %11622, 10
  %11624 = sext i32 %11623 to i64
  %11625 = getelementptr inbounds i8, ptr %11621, i64 %11624
  %11626 = load i8, ptr %11625, align 1, !tbaa !15
  %11627 = zext i8 %11626 to i64
  %11628 = getelementptr inbounds [256 x i8], ptr @b_to_y, i64 0, i64 %11627
  %11629 = load i8, ptr %11628, align 1, !tbaa !15
  %11630 = zext i8 %11629 to i32
  %11631 = add nsw i32 %11620, %11630
  %11632 = trunc i32 %11631 to i8
  %11633 = load ptr, ptr %15, align 8, !tbaa !5
  %11634 = load i32, ptr %18, align 4, !tbaa !14
  %11635 = add nsw i32 %11634, 10
  %11636 = sext i32 %11635 to i64
  %11637 = getelementptr inbounds i8, ptr %11633, i64 %11636
  store i8 %11632, ptr %11637, align 1, !tbaa !15
  %11638 = load ptr, ptr %10, align 8, !tbaa !5
  %11639 = load ptr, ptr %12, align 8, !tbaa !5
  %11640 = load i32, ptr %18, align 4, !tbaa !14
  %11641 = add nsw i32 %11640, 10
  %11642 = sext i32 %11641 to i64
  %11643 = getelementptr inbounds i8, ptr %11639, i64 %11642
  %11644 = load i8, ptr %11643, align 1, !tbaa !15
  %11645 = zext i8 %11644 to i32
  %11646 = load ptr, ptr %15, align 8, !tbaa !5
  %11647 = load i32, ptr %18, align 4, !tbaa !14
  %11648 = add nsw i32 %11647, 10
  %11649 = sext i32 %11648 to i64
  %11650 = getelementptr inbounds i8, ptr %11646, i64 %11649
  %11651 = load i8, ptr %11650, align 1, !tbaa !15
  %11652 = zext i8 %11651 to i32
  %11653 = sub nsw i32 %11645, %11652
  %11654 = sext i32 %11653 to i64
  %11655 = getelementptr inbounds i8, ptr %11638, i64 %11654
  %11656 = load i8, ptr %11655, align 1, !tbaa !15
  %11657 = load ptr, ptr %16, align 8, !tbaa !5
  %11658 = load i32, ptr %18, align 4, !tbaa !14
  %11659 = add nsw i32 %11658, 10
  %11660 = sext i32 %11659 to i64
  %11661 = getelementptr inbounds i8, ptr %11657, i64 %11660
  store i8 %11656, ptr %11661, align 1, !tbaa !15
  %11662 = load ptr, ptr %9, align 8, !tbaa !5
  %11663 = load ptr, ptr %14, align 8, !tbaa !5
  %11664 = load i32, ptr %18, align 4, !tbaa !14
  %11665 = add nsw i32 %11664, 10
  %11666 = sext i32 %11665 to i64
  %11667 = getelementptr inbounds i8, ptr %11663, i64 %11666
  %11668 = load i8, ptr %11667, align 1, !tbaa !15
  %11669 = zext i8 %11668 to i32
  %11670 = load ptr, ptr %15, align 8, !tbaa !5
  %11671 = load i32, ptr %18, align 4, !tbaa !14
  %11672 = add nsw i32 %11671, 10
  %11673 = sext i32 %11672 to i64
  %11674 = getelementptr inbounds i8, ptr %11670, i64 %11673
  %11675 = load i8, ptr %11674, align 1, !tbaa !15
  %11676 = zext i8 %11675 to i32
  %11677 = sub nsw i32 %11669, %11676
  %11678 = sext i32 %11677 to i64
  %11679 = getelementptr inbounds i8, ptr %11662, i64 %11678
  %11680 = load i8, ptr %11679, align 1, !tbaa !15
  %11681 = load ptr, ptr %17, align 8, !tbaa !5
  %11682 = load i32, ptr %18, align 4, !tbaa !14
  %11683 = add nsw i32 %11682, 10
  %11684 = sext i32 %11683 to i64
  %11685 = getelementptr inbounds i8, ptr %11681, i64 %11684
  store i8 %11680, ptr %11685, align 1, !tbaa !15
  %11686 = load ptr, ptr %14, align 8, !tbaa !5
  %11687 = load i32, ptr %18, align 4, !tbaa !14
  %11688 = add nsw i32 %11687, 11
  %11689 = sext i32 %11688 to i64
  %11690 = getelementptr inbounds i8, ptr %11686, i64 %11689
  %11691 = load i8, ptr %11690, align 1, !tbaa !15
  %11692 = zext i8 %11691 to i64
  %11693 = getelementptr inbounds [256 x i8], ptr @r_to_y, i64 0, i64 %11692
  %11694 = load i8, ptr %11693, align 1, !tbaa !15
  %11695 = zext i8 %11694 to i32
  %11696 = load ptr, ptr %13, align 8, !tbaa !5
  %11697 = load i32, ptr %18, align 4, !tbaa !14
  %11698 = add nsw i32 %11697, 11
  %11699 = sext i32 %11698 to i64
  %11700 = getelementptr inbounds i8, ptr %11696, i64 %11699
  %11701 = load i8, ptr %11700, align 1, !tbaa !15
  %11702 = zext i8 %11701 to i64
  %11703 = getelementptr inbounds [256 x i8], ptr @g_to_y, i64 0, i64 %11702
  %11704 = load i8, ptr %11703, align 1, !tbaa !15
  %11705 = zext i8 %11704 to i32
  %11706 = add nsw i32 %11695, %11705
  %11707 = load ptr, ptr %12, align 8, !tbaa !5
  %11708 = load i32, ptr %18, align 4, !tbaa !14
  %11709 = add nsw i32 %11708, 11
  %11710 = sext i32 %11709 to i64
  %11711 = getelementptr inbounds i8, ptr %11707, i64 %11710
  %11712 = load i8, ptr %11711, align 1, !tbaa !15
  %11713 = zext i8 %11712 to i64
  %11714 = getelementptr inbounds [256 x i8], ptr @b_to_y, i64 0, i64 %11713
  %11715 = load i8, ptr %11714, align 1, !tbaa !15
  %11716 = zext i8 %11715 to i32
  %11717 = add nsw i32 %11706, %11716
  %11718 = trunc i32 %11717 to i8
  %11719 = load ptr, ptr %15, align 8, !tbaa !5
  %11720 = load i32, ptr %18, align 4, !tbaa !14
  %11721 = add nsw i32 %11720, 11
  %11722 = sext i32 %11721 to i64
  %11723 = getelementptr inbounds i8, ptr %11719, i64 %11722
  store i8 %11718, ptr %11723, align 1, !tbaa !15
  %11724 = load ptr, ptr %10, align 8, !tbaa !5
  %11725 = load ptr, ptr %12, align 8, !tbaa !5
  %11726 = load i32, ptr %18, align 4, !tbaa !14
  %11727 = add nsw i32 %11726, 11
  %11728 = sext i32 %11727 to i64
  %11729 = getelementptr inbounds i8, ptr %11725, i64 %11728
  %11730 = load i8, ptr %11729, align 1, !tbaa !15
  %11731 = zext i8 %11730 to i32
  %11732 = load ptr, ptr %15, align 8, !tbaa !5
  %11733 = load i32, ptr %18, align 4, !tbaa !14
  %11734 = add nsw i32 %11733, 11
  %11735 = sext i32 %11734 to i64
  %11736 = getelementptr inbounds i8, ptr %11732, i64 %11735
  %11737 = load i8, ptr %11736, align 1, !tbaa !15
  %11738 = zext i8 %11737 to i32
  %11739 = sub nsw i32 %11731, %11738
  %11740 = sext i32 %11739 to i64
  %11741 = getelementptr inbounds i8, ptr %11724, i64 %11740
  %11742 = load i8, ptr %11741, align 1, !tbaa !15
  %11743 = load ptr, ptr %16, align 8, !tbaa !5
  %11744 = load i32, ptr %18, align 4, !tbaa !14
  %11745 = add nsw i32 %11744, 11
  %11746 = sext i32 %11745 to i64
  %11747 = getelementptr inbounds i8, ptr %11743, i64 %11746
  store i8 %11742, ptr %11747, align 1, !tbaa !15
  %11748 = load ptr, ptr %9, align 8, !tbaa !5
  %11749 = load ptr, ptr %14, align 8, !tbaa !5
  %11750 = load i32, ptr %18, align 4, !tbaa !14
  %11751 = add nsw i32 %11750, 11
  %11752 = sext i32 %11751 to i64
  %11753 = getelementptr inbounds i8, ptr %11749, i64 %11752
  %11754 = load i8, ptr %11753, align 1, !tbaa !15
  %11755 = zext i8 %11754 to i32
  %11756 = load ptr, ptr %15, align 8, !tbaa !5
  %11757 = load i32, ptr %18, align 4, !tbaa !14
  %11758 = add nsw i32 %11757, 11
  %11759 = sext i32 %11758 to i64
  %11760 = getelementptr inbounds i8, ptr %11756, i64 %11759
  %11761 = load i8, ptr %11760, align 1, !tbaa !15
  %11762 = zext i8 %11761 to i32
  %11763 = sub nsw i32 %11755, %11762
  %11764 = sext i32 %11763 to i64
  %11765 = getelementptr inbounds i8, ptr %11748, i64 %11764
  %11766 = load i8, ptr %11765, align 1, !tbaa !15
  %11767 = load ptr, ptr %17, align 8, !tbaa !5
  %11768 = load i32, ptr %18, align 4, !tbaa !14
  %11769 = add nsw i32 %11768, 11
  %11770 = sext i32 %11769 to i64
  %11771 = getelementptr inbounds i8, ptr %11767, i64 %11770
  store i8 %11766, ptr %11771, align 1, !tbaa !15
  %11772 = load ptr, ptr %14, align 8, !tbaa !5
  %11773 = load i32, ptr %18, align 4, !tbaa !14
  %11774 = add nsw i32 %11773, 12
  %11775 = sext i32 %11774 to i64
  %11776 = getelementptr inbounds i8, ptr %11772, i64 %11775
  %11777 = load i8, ptr %11776, align 1, !tbaa !15
  %11778 = zext i8 %11777 to i64
  %11779 = getelementptr inbounds [256 x i8], ptr @r_to_y, i64 0, i64 %11778
  %11780 = load i8, ptr %11779, align 1, !tbaa !15
  %11781 = zext i8 %11780 to i32
  %11782 = load ptr, ptr %13, align 8, !tbaa !5
  %11783 = load i32, ptr %18, align 4, !tbaa !14
  %11784 = add nsw i32 %11783, 12
  %11785 = sext i32 %11784 to i64
  %11786 = getelementptr inbounds i8, ptr %11782, i64 %11785
  %11787 = load i8, ptr %11786, align 1, !tbaa !15
  %11788 = zext i8 %11787 to i64
  %11789 = getelementptr inbounds [256 x i8], ptr @g_to_y, i64 0, i64 %11788
  %11790 = load i8, ptr %11789, align 1, !tbaa !15
  %11791 = zext i8 %11790 to i32
  %11792 = add nsw i32 %11781, %11791
  %11793 = load ptr, ptr %12, align 8, !tbaa !5
  %11794 = load i32, ptr %18, align 4, !tbaa !14
  %11795 = add nsw i32 %11794, 12
  %11796 = sext i32 %11795 to i64
  %11797 = getelementptr inbounds i8, ptr %11793, i64 %11796
  %11798 = load i8, ptr %11797, align 1, !tbaa !15
  %11799 = zext i8 %11798 to i64
  %11800 = getelementptr inbounds [256 x i8], ptr @b_to_y, i64 0, i64 %11799
  %11801 = load i8, ptr %11800, align 1, !tbaa !15
  %11802 = zext i8 %11801 to i32
  %11803 = add nsw i32 %11792, %11802
  %11804 = trunc i32 %11803 to i8
  %11805 = load ptr, ptr %15, align 8, !tbaa !5
  %11806 = load i32, ptr %18, align 4, !tbaa !14
  %11807 = add nsw i32 %11806, 12
  %11808 = sext i32 %11807 to i64
  %11809 = getelementptr inbounds i8, ptr %11805, i64 %11808
  store i8 %11804, ptr %11809, align 1, !tbaa !15
  %11810 = load ptr, ptr %10, align 8, !tbaa !5
  %11811 = load ptr, ptr %12, align 8, !tbaa !5
  %11812 = load i32, ptr %18, align 4, !tbaa !14
  %11813 = add nsw i32 %11812, 12
  %11814 = sext i32 %11813 to i64
  %11815 = getelementptr inbounds i8, ptr %11811, i64 %11814
  %11816 = load i8, ptr %11815, align 1, !tbaa !15
  %11817 = zext i8 %11816 to i32
  %11818 = load ptr, ptr %15, align 8, !tbaa !5
  %11819 = load i32, ptr %18, align 4, !tbaa !14
  %11820 = add nsw i32 %11819, 12
  %11821 = sext i32 %11820 to i64
  %11822 = getelementptr inbounds i8, ptr %11818, i64 %11821
  %11823 = load i8, ptr %11822, align 1, !tbaa !15
  %11824 = zext i8 %11823 to i32
  %11825 = sub nsw i32 %11817, %11824
  %11826 = sext i32 %11825 to i64
  %11827 = getelementptr inbounds i8, ptr %11810, i64 %11826
  %11828 = load i8, ptr %11827, align 1, !tbaa !15
  %11829 = load ptr, ptr %16, align 8, !tbaa !5
  %11830 = load i32, ptr %18, align 4, !tbaa !14
  %11831 = add nsw i32 %11830, 12
  %11832 = sext i32 %11831 to i64
  %11833 = getelementptr inbounds i8, ptr %11829, i64 %11832
  store i8 %11828, ptr %11833, align 1, !tbaa !15
  %11834 = load ptr, ptr %9, align 8, !tbaa !5
  %11835 = load ptr, ptr %14, align 8, !tbaa !5
  %11836 = load i32, ptr %18, align 4, !tbaa !14
  %11837 = add nsw i32 %11836, 12
  %11838 = sext i32 %11837 to i64
  %11839 = getelementptr inbounds i8, ptr %11835, i64 %11838
  %11840 = load i8, ptr %11839, align 1, !tbaa !15
  %11841 = zext i8 %11840 to i32
  %11842 = load ptr, ptr %15, align 8, !tbaa !5
  %11843 = load i32, ptr %18, align 4, !tbaa !14
  %11844 = add nsw i32 %11843, 12
  %11845 = sext i32 %11844 to i64
  %11846 = getelementptr inbounds i8, ptr %11842, i64 %11845
  %11847 = load i8, ptr %11846, align 1, !tbaa !15
  %11848 = zext i8 %11847 to i32
  %11849 = sub nsw i32 %11841, %11848
  %11850 = sext i32 %11849 to i64
  %11851 = getelementptr inbounds i8, ptr %11834, i64 %11850
  %11852 = load i8, ptr %11851, align 1, !tbaa !15
  %11853 = load ptr, ptr %17, align 8, !tbaa !5
  %11854 = load i32, ptr %18, align 4, !tbaa !14
  %11855 = add nsw i32 %11854, 12
  %11856 = sext i32 %11855 to i64
  %11857 = getelementptr inbounds i8, ptr %11853, i64 %11856
  store i8 %11852, ptr %11857, align 1, !tbaa !15
  %11858 = load ptr, ptr %14, align 8, !tbaa !5
  %11859 = load i32, ptr %18, align 4, !tbaa !14
  %11860 = add nsw i32 %11859, 13
  %11861 = sext i32 %11860 to i64
  %11862 = getelementptr inbounds i8, ptr %11858, i64 %11861
  %11863 = load i8, ptr %11862, align 1, !tbaa !15
  %11864 = zext i8 %11863 to i64
  %11865 = getelementptr inbounds [256 x i8], ptr @r_to_y, i64 0, i64 %11864
  %11866 = load i8, ptr %11865, align 1, !tbaa !15
  %11867 = zext i8 %11866 to i32
  %11868 = load ptr, ptr %13, align 8, !tbaa !5
  %11869 = load i32, ptr %18, align 4, !tbaa !14
  %11870 = add nsw i32 %11869, 13
  %11871 = sext i32 %11870 to i64
  %11872 = getelementptr inbounds i8, ptr %11868, i64 %11871
  %11873 = load i8, ptr %11872, align 1, !tbaa !15
  %11874 = zext i8 %11873 to i64
  %11875 = getelementptr inbounds [256 x i8], ptr @g_to_y, i64 0, i64 %11874
  %11876 = load i8, ptr %11875, align 1, !tbaa !15
  %11877 = zext i8 %11876 to i32
  %11878 = add nsw i32 %11867, %11877
  %11879 = load ptr, ptr %12, align 8, !tbaa !5
  %11880 = load i32, ptr %18, align 4, !tbaa !14
  %11881 = add nsw i32 %11880, 13
  %11882 = sext i32 %11881 to i64
  %11883 = getelementptr inbounds i8, ptr %11879, i64 %11882
  %11884 = load i8, ptr %11883, align 1, !tbaa !15
  %11885 = zext i8 %11884 to i64
  %11886 = getelementptr inbounds [256 x i8], ptr @b_to_y, i64 0, i64 %11885
  %11887 = load i8, ptr %11886, align 1, !tbaa !15
  %11888 = zext i8 %11887 to i32
  %11889 = add nsw i32 %11878, %11888
  %11890 = trunc i32 %11889 to i8
  %11891 = load ptr, ptr %15, align 8, !tbaa !5
  %11892 = load i32, ptr %18, align 4, !tbaa !14
  %11893 = add nsw i32 %11892, 13
  %11894 = sext i32 %11893 to i64
  %11895 = getelementptr inbounds i8, ptr %11891, i64 %11894
  store i8 %11890, ptr %11895, align 1, !tbaa !15
  %11896 = load ptr, ptr %10, align 8, !tbaa !5
  %11897 = load ptr, ptr %12, align 8, !tbaa !5
  %11898 = load i32, ptr %18, align 4, !tbaa !14
  %11899 = add nsw i32 %11898, 13
  %11900 = sext i32 %11899 to i64
  %11901 = getelementptr inbounds i8, ptr %11897, i64 %11900
  %11902 = load i8, ptr %11901, align 1, !tbaa !15
  %11903 = zext i8 %11902 to i32
  %11904 = load ptr, ptr %15, align 8, !tbaa !5
  %11905 = load i32, ptr %18, align 4, !tbaa !14
  %11906 = add nsw i32 %11905, 13
  %11907 = sext i32 %11906 to i64
  %11908 = getelementptr inbounds i8, ptr %11904, i64 %11907
  %11909 = load i8, ptr %11908, align 1, !tbaa !15
  %11910 = zext i8 %11909 to i32
  %11911 = sub nsw i32 %11903, %11910
  %11912 = sext i32 %11911 to i64
  %11913 = getelementptr inbounds i8, ptr %11896, i64 %11912
  %11914 = load i8, ptr %11913, align 1, !tbaa !15
  %11915 = load ptr, ptr %16, align 8, !tbaa !5
  %11916 = load i32, ptr %18, align 4, !tbaa !14
  %11917 = add nsw i32 %11916, 13
  %11918 = sext i32 %11917 to i64
  %11919 = getelementptr inbounds i8, ptr %11915, i64 %11918
  store i8 %11914, ptr %11919, align 1, !tbaa !15
  %11920 = load ptr, ptr %9, align 8, !tbaa !5
  %11921 = load ptr, ptr %14, align 8, !tbaa !5
  %11922 = load i32, ptr %18, align 4, !tbaa !14
  %11923 = add nsw i32 %11922, 13
  %11924 = sext i32 %11923 to i64
  %11925 = getelementptr inbounds i8, ptr %11921, i64 %11924
  %11926 = load i8, ptr %11925, align 1, !tbaa !15
  %11927 = zext i8 %11926 to i32
  %11928 = load ptr, ptr %15, align 8, !tbaa !5
  %11929 = load i32, ptr %18, align 4, !tbaa !14
  %11930 = add nsw i32 %11929, 13
  %11931 = sext i32 %11930 to i64
  %11932 = getelementptr inbounds i8, ptr %11928, i64 %11931
  %11933 = load i8, ptr %11932, align 1, !tbaa !15
  %11934 = zext i8 %11933 to i32
  %11935 = sub nsw i32 %11927, %11934
  %11936 = sext i32 %11935 to i64
  %11937 = getelementptr inbounds i8, ptr %11920, i64 %11936
  %11938 = load i8, ptr %11937, align 1, !tbaa !15
  %11939 = load ptr, ptr %17, align 8, !tbaa !5
  %11940 = load i32, ptr %18, align 4, !tbaa !14
  %11941 = add nsw i32 %11940, 13
  %11942 = sext i32 %11941 to i64
  %11943 = getelementptr inbounds i8, ptr %11939, i64 %11942
  store i8 %11938, ptr %11943, align 1, !tbaa !15
  %11944 = load ptr, ptr %14, align 8, !tbaa !5
  %11945 = load i32, ptr %18, align 4, !tbaa !14
  %11946 = add nsw i32 %11945, 14
  %11947 = sext i32 %11946 to i64
  %11948 = getelementptr inbounds i8, ptr %11944, i64 %11947
  %11949 = load i8, ptr %11948, align 1, !tbaa !15
  %11950 = zext i8 %11949 to i64
  %11951 = getelementptr inbounds [256 x i8], ptr @r_to_y, i64 0, i64 %11950
  %11952 = load i8, ptr %11951, align 1, !tbaa !15
  %11953 = zext i8 %11952 to i32
  %11954 = load ptr, ptr %13, align 8, !tbaa !5
  %11955 = load i32, ptr %18, align 4, !tbaa !14
  %11956 = add nsw i32 %11955, 14
  %11957 = sext i32 %11956 to i64
  %11958 = getelementptr inbounds i8, ptr %11954, i64 %11957
  %11959 = load i8, ptr %11958, align 1, !tbaa !15
  %11960 = zext i8 %11959 to i64
  %11961 = getelementptr inbounds [256 x i8], ptr @g_to_y, i64 0, i64 %11960
  %11962 = load i8, ptr %11961, align 1, !tbaa !15
  %11963 = zext i8 %11962 to i32
  %11964 = add nsw i32 %11953, %11963
  %11965 = load ptr, ptr %12, align 8, !tbaa !5
  %11966 = load i32, ptr %18, align 4, !tbaa !14
  %11967 = add nsw i32 %11966, 14
  %11968 = sext i32 %11967 to i64
  %11969 = getelementptr inbounds i8, ptr %11965, i64 %11968
  %11970 = load i8, ptr %11969, align 1, !tbaa !15
  %11971 = zext i8 %11970 to i64
  %11972 = getelementptr inbounds [256 x i8], ptr @b_to_y, i64 0, i64 %11971
  %11973 = load i8, ptr %11972, align 1, !tbaa !15
  %11974 = zext i8 %11973 to i32
  %11975 = add nsw i32 %11964, %11974
  %11976 = trunc i32 %11975 to i8
  %11977 = load ptr, ptr %15, align 8, !tbaa !5
  %11978 = load i32, ptr %18, align 4, !tbaa !14
  %11979 = add nsw i32 %11978, 14
  %11980 = sext i32 %11979 to i64
  %11981 = getelementptr inbounds i8, ptr %11977, i64 %11980
  store i8 %11976, ptr %11981, align 1, !tbaa !15
  %11982 = load ptr, ptr %10, align 8, !tbaa !5
  %11983 = load ptr, ptr %12, align 8, !tbaa !5
  %11984 = load i32, ptr %18, align 4, !tbaa !14
  %11985 = add nsw i32 %11984, 14
  %11986 = sext i32 %11985 to i64
  %11987 = getelementptr inbounds i8, ptr %11983, i64 %11986
  %11988 = load i8, ptr %11987, align 1, !tbaa !15
  %11989 = zext i8 %11988 to i32
  %11990 = load ptr, ptr %15, align 8, !tbaa !5
  %11991 = load i32, ptr %18, align 4, !tbaa !14
  %11992 = add nsw i32 %11991, 14
  %11993 = sext i32 %11992 to i64
  %11994 = getelementptr inbounds i8, ptr %11990, i64 %11993
  %11995 = load i8, ptr %11994, align 1, !tbaa !15
  %11996 = zext i8 %11995 to i32
  %11997 = sub nsw i32 %11989, %11996
  %11998 = sext i32 %11997 to i64
  %11999 = getelementptr inbounds i8, ptr %11982, i64 %11998
  %12000 = load i8, ptr %11999, align 1, !tbaa !15
  %12001 = load ptr, ptr %16, align 8, !tbaa !5
  %12002 = load i32, ptr %18, align 4, !tbaa !14
  %12003 = add nsw i32 %12002, 14
  %12004 = sext i32 %12003 to i64
  %12005 = getelementptr inbounds i8, ptr %12001, i64 %12004
  store i8 %12000, ptr %12005, align 1, !tbaa !15
  %12006 = load ptr, ptr %9, align 8, !tbaa !5
  %12007 = load ptr, ptr %14, align 8, !tbaa !5
  %12008 = load i32, ptr %18, align 4, !tbaa !14
  %12009 = add nsw i32 %12008, 14
  %12010 = sext i32 %12009 to i64
  %12011 = getelementptr inbounds i8, ptr %12007, i64 %12010
  %12012 = load i8, ptr %12011, align 1, !tbaa !15
  %12013 = zext i8 %12012 to i32
  %12014 = load ptr, ptr %15, align 8, !tbaa !5
  %12015 = load i32, ptr %18, align 4, !tbaa !14
  %12016 = add nsw i32 %12015, 14
  %12017 = sext i32 %12016 to i64
  %12018 = getelementptr inbounds i8, ptr %12014, i64 %12017
  %12019 = load i8, ptr %12018, align 1, !tbaa !15
  %12020 = zext i8 %12019 to i32
  %12021 = sub nsw i32 %12013, %12020
  %12022 = sext i32 %12021 to i64
  %12023 = getelementptr inbounds i8, ptr %12006, i64 %12022
  %12024 = load i8, ptr %12023, align 1, !tbaa !15
  %12025 = load ptr, ptr %17, align 8, !tbaa !5
  %12026 = load i32, ptr %18, align 4, !tbaa !14
  %12027 = add nsw i32 %12026, 14
  %12028 = sext i32 %12027 to i64
  %12029 = getelementptr inbounds i8, ptr %12025, i64 %12028
  store i8 %12024, ptr %12029, align 1, !tbaa !15
  br label %12030

12030:                                            ; preds = %10739, %10732
  br label %12031

12031:                                            ; preds = %12030, %9527
  br label %12032

12032:                                            ; preds = %12031, %8401
  br label %12033

12033:                                            ; preds = %12032, %7361
  br label %12034

12034:                                            ; preds = %12033, %6407
  br label %12035

12035:                                            ; preds = %12034, %5539
  br label %12036

12036:                                            ; preds = %12035, %4757
  br label %12037

12037:                                            ; preds = %12036, %4061
  br label %12038

12038:                                            ; preds = %12037, %3451
  br label %12039

12039:                                            ; preds = %12038, %2927
  br label %12040

12040:                                            ; preds = %12039, %2489
  br label %12041

12041:                                            ; preds = %12040, %2137
  br label %12042

12042:                                            ; preds = %12041, %1871
  br label %12043

12043:                                            ; preds = %12042, %1691
  br label %12044

12044:                                            ; preds = %12043, %1597
  br label %12045

12045:                                            ; preds = %12044, %1589
  call void @llvm.lifetime.end.p0(i64 4, ptr %18) #3
  br label %12046

12046:                                            ; preds = %12045
  br label %12047

12047:                                            ; preds = %12046
  call void @llvm.lifetime.end.p0(i64 8, ptr %17) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %16) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %15) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %14) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %13) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %12) #3
  br label %12048

12048:                                            ; preds = %12047
  %12049 = load i32, ptr %11, align 4, !tbaa !14
  %12050 = add nsw i32 %12049, 1
  store i32 %12050, ptr %11, align 4, !tbaa !14
  br label %139, !llvm.loop !18

12051:                                            ; preds = %139
  call void @llvm.lifetime.start.p0(i64 4, ptr %19) #3
  store i32 5, ptr %19, align 4, !tbaa !14
  %12052 = load ptr, ptr %4, align 8, !tbaa !5
  %12053 = call ptr @m_PropertyWrite(ptr noundef %12052, ptr noundef @.str.3, ptr noundef %19, i32 noundef 4)
  call void @llvm.lifetime.end.p0(i64 4, ptr %19) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %11) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %10) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %9) #3
  ret void
}

attributes #0 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #1 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #2 = { nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { nounwind }

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"any pointer", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/C++ TBAA"}
!9 = !{!10, !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 = !{!7, !7, i64 0}
!16 = distinct !{!16, !17}
!17 = !{!"llvm.loop.mustprogress"}
!18 = distinct !{!18, !17}


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

@r_to_y = external dso_local local_unnamed_addr global [256 x i8], align 16
@g_to_y = external dso_local local_unnamed_addr global [256 x i8], align 16
@b_to_y = external dso_local local_unnamed_addr global [256 x i8], align 16
@r_to_v = external dso_local local_unnamed_addr global [512 x i8], align 16
@b_to_u = external dso_local local_unnamed_addr global [512 x i8], align 16
@.str = external hidden unnamed_addr constant [86 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [11 x i8], align 1
@__FUNCTION__.m_ImageRGBToYUV = external hidden unnamed_addr constant [16 x i8], align 1

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

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

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

declare void @ImageRedefine(ptr noundef, i32 noundef, i32 noundef, i32 noundef, ptr noundef) local_unnamed_addr #1

declare ptr @m_PropertyWrite(ptr noundef, ptr noundef, ptr noundef, i32 noundef) local_unnamed_addr #1

; Function Attrs: nounwind uwtable
define dso_local void @m_ImageRGBToYUV(ptr noundef %0, ptr noundef %1) local_unnamed_addr #2 {
  %3 = alloca i32, align 4
  %magicptr = ptrtoint ptr %0 to i64
  switch i64 %magicptr, label %4 [
    i64 -1, label %.thread
    i64 0, label %.thread
  ]

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

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

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

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

.thread:                                          ; preds = %4, %7, %10, %2, %2, %14
  tail call void (i32, i32, ptr, i32, ptr, ptr, ...) @m_Exception(i32 noundef 1, i32 noundef -1, ptr noundef nonnull @.str, i32 noundef 105, ptr noundef nonnull @__FUNCTION__.m_ImageRGBToYUV, ptr noundef nonnull @.str.1) #3
  %.pre = load i32, ptr %0, align 8, !tbaa !5
  br label %18

18:                                               ; preds = %.thread, %14
  %19 = phi i32 [ %.pre, %.thread ], [ %8, %14 ]
  %20 = icmp slt i32 %19, 3
  br i1 %20, label %21, label %22

21:                                               ; preds = %18
  tail call void (i32, i32, ptr, i32, ptr, ptr, ...) @m_Exception(i32 noundef 1, i32 noundef -1, ptr noundef nonnull @.str, i32 noundef 106, ptr noundef nonnull @__FUNCTION__.m_ImageRGBToYUV, ptr noundef nonnull @.str.1) #3
  br label %22

22:                                               ; preds = %21, %18
  %23 = icmp eq ptr %1, null
  %spec.select = select i1 %23, ptr %0, ptr %1
  %.not3087 = icmp eq ptr %spec.select, %0
  br i1 %.not3087, label %30, label %24

24:                                               ; preds = %22
  %25 = getelementptr inbounds i8, ptr %0, i64 4
  %26 = load i32, ptr %25, align 4, !tbaa !11
  %27 = getelementptr inbounds i8, ptr %0, i64 8
  %28 = load i32, ptr %27, align 8, !tbaa !12
  %29 = getelementptr inbounds i8, ptr %spec.select, i64 16
  tail call void @ImageRedefine(ptr noundef nonnull %spec.select, i32 noundef 3, i32 noundef %26, i32 noundef %28, ptr noundef nonnull %29) #3
  br label %30

30:                                               ; preds = %24, %22
  %31 = getelementptr inbounds i8, ptr %spec.select, i64 4
  %32 = load i32, ptr %31, align 4, !tbaa !11
  %33 = icmp sgt i32 %32, 0
  br i1 %33, label %.lr.ph3096, label %._crit_edge3097

.lr.ph3096:                                       ; preds = %30
  %34 = getelementptr inbounds i8, ptr %0, i64 16
  %35 = getelementptr inbounds i8, ptr %0, i64 24
  %36 = getelementptr inbounds i8, ptr %0, i64 32
  %37 = getelementptr inbounds i8, ptr %spec.select, i64 16
  %38 = getelementptr inbounds i8, ptr %spec.select, i64 24
  %39 = getelementptr inbounds i8, ptr %spec.select, i64 32
  %40 = getelementptr inbounds i8, ptr %spec.select, i64 8
  br label %41

41:                                               ; preds = %.lr.ph3096, %1138
  %indvars.iv3101 = phi i64 [ 0, %.lr.ph3096 ], [ %indvars.iv.next3102, %1138 ]
  %42 = load ptr, ptr %34, align 8, !tbaa !13
  %43 = getelementptr inbounds ptr, ptr %42, i64 %indvars.iv3101
  %44 = load ptr, ptr %43, align 8, !tbaa !13
  %45 = load ptr, ptr %35, align 8, !tbaa !13
  %46 = getelementptr inbounds ptr, ptr %45, i64 %indvars.iv3101
  %47 = load ptr, ptr %46, align 8, !tbaa !13
  %48 = load ptr, ptr %36, align 8, !tbaa !13
  %49 = getelementptr inbounds ptr, ptr %48, i64 %indvars.iv3101
  %50 = load ptr, ptr %49, align 8, !tbaa !13
  %51 = load ptr, ptr %37, align 8, !tbaa !13
  %52 = getelementptr inbounds ptr, ptr %51, i64 %indvars.iv3101
  %53 = load ptr, ptr %52, align 8, !tbaa !13
  %54 = load ptr, ptr %38, align 8, !tbaa !13
  %55 = getelementptr inbounds ptr, ptr %54, i64 %indvars.iv3101
  %56 = load ptr, ptr %55, align 8, !tbaa !13
  %57 = load ptr, ptr %39, align 8, !tbaa !13
  %58 = getelementptr inbounds ptr, ptr %57, i64 %indvars.iv3101
  %59 = load ptr, ptr %58, align 8, !tbaa !13
  %60 = load i32, ptr %40, align 8, !tbaa !12
  %61 = icmp sgt i32 %60, 15
  br i1 %61, label %.lr.ph, label %._crit_edge

.lr.ph:                                           ; preds = %41, %.lr.ph
  %indvars.iv = phi i64 [ %indvars.iv.next, %.lr.ph ], [ 0, %41 ]
  %62 = getelementptr inbounds i8, ptr %50, i64 %indvars.iv
  %63 = load i8, ptr %62, align 1, !tbaa !14
  %64 = zext i8 %63 to i64
  %65 = getelementptr inbounds [256 x i8], ptr @r_to_y, i64 0, i64 %64
  %66 = load i8, ptr %65, align 1, !tbaa !14
  %67 = getelementptr inbounds i8, ptr %47, i64 %indvars.iv
  %68 = load i8, ptr %67, align 1, !tbaa !14
  %69 = zext i8 %68 to i64
  %70 = getelementptr inbounds [256 x i8], ptr @g_to_y, i64 0, i64 %69
  %71 = load i8, ptr %70, align 1, !tbaa !14
  %72 = add i8 %71, %66
  %73 = getelementptr inbounds i8, ptr %44, i64 %indvars.iv
  %74 = load i8, ptr %73, align 1, !tbaa !14
  %75 = zext i8 %74 to i64
  %76 = getelementptr inbounds [256 x i8], ptr @b_to_y, i64 0, i64 %75
  %77 = load i8, ptr %76, align 1, !tbaa !14
  %78 = add i8 %72, %77
  %79 = getelementptr inbounds i8, ptr %53, i64 %indvars.iv
  store i8 %78, ptr %79, align 1, !tbaa !14
  %80 = load i8, ptr %73, align 1, !tbaa !14
  %81 = zext i8 %80 to i64
  %82 = zext i8 %78 to i64
  %83 = sub nsw i64 %81, %82
  %84 = getelementptr inbounds i8, ptr getelementptr inbounds (i8, ptr @b_to_u, i64 256), i64 %83
  %85 = load i8, ptr %84, align 1, !tbaa !14
  %86 = getelementptr inbounds i8, ptr %56, i64 %indvars.iv
  store i8 %85, ptr %86, align 1, !tbaa !14
  %87 = load i8, ptr %62, align 1, !tbaa !14
  %88 = zext i8 %87 to i64
  %89 = load i8, ptr %79, align 1, !tbaa !14
  %90 = zext i8 %89 to i64
  %91 = sub nsw i64 %88, %90
  %92 = getelementptr inbounds i8, ptr getelementptr inbounds (i8, ptr @r_to_v, i64 256), i64 %91
  %93 = load i8, ptr %92, align 1, !tbaa !14
  %94 = getelementptr inbounds i8, ptr %59, i64 %indvars.iv
  store i8 %93, ptr %94, align 1, !tbaa !14
  %95 = or disjoint i64 %indvars.iv, 1
  %96 = getelementptr inbounds i8, ptr %50, i64 %95
  %97 = load i8, ptr %96, align 1, !tbaa !14
  %98 = zext i8 %97 to i64
  %99 = getelementptr inbounds [256 x i8], ptr @r_to_y, i64 0, i64 %98
  %100 = load i8, ptr %99, align 1, !tbaa !14
  %101 = getelementptr inbounds i8, ptr %47, i64 %95
  %102 = load i8, ptr %101, align 1, !tbaa !14
  %103 = zext i8 %102 to i64
  %104 = getelementptr inbounds [256 x i8], ptr @g_to_y, i64 0, i64 %103
  %105 = load i8, ptr %104, align 1, !tbaa !14
  %106 = add i8 %105, %100
  %107 = getelementptr inbounds i8, ptr %44, i64 %95
  %108 = load i8, ptr %107, align 1, !tbaa !14
  %109 = zext i8 %108 to i64
  %110 = getelementptr inbounds [256 x i8], ptr @b_to_y, i64 0, i64 %109
  %111 = load i8, ptr %110, align 1, !tbaa !14
  %112 = add i8 %106, %111
  %113 = getelementptr inbounds i8, ptr %53, i64 %95
  store i8 %112, ptr %113, align 1, !tbaa !14
  %114 = load i8, ptr %107, align 1, !tbaa !14
  %115 = zext i8 %114 to i64
  %116 = zext i8 %112 to i64
  %117 = sub nsw i64 %115, %116
  %118 = getelementptr inbounds i8, ptr getelementptr inbounds (i8, ptr @b_to_u, i64 256), i64 %117
  %119 = load i8, ptr %118, align 1, !tbaa !14
  %120 = getelementptr inbounds i8, ptr %56, i64 %95
  store i8 %119, ptr %120, align 1, !tbaa !14
  %121 = load i8, ptr %96, align 1, !tbaa !14
  %122 = zext i8 %121 to i64
  %123 = load i8, ptr %113, align 1, !tbaa !14
  %124 = zext i8 %123 to i64
  %125 = sub nsw i64 %122, %124
  %126 = getelementptr inbounds i8, ptr getelementptr inbounds (i8, ptr @r_to_v, i64 256), i64 %125
  %127 = load i8, ptr %126, align 1, !tbaa !14
  %128 = getelementptr inbounds i8, ptr %59, i64 %95
  store i8 %127, ptr %128, align 1, !tbaa !14
  %129 = or disjoint i64 %indvars.iv, 2
  %130 = getelementptr inbounds i8, ptr %50, i64 %129
  %131 = load i8, ptr %130, align 1, !tbaa !14
  %132 = zext i8 %131 to i64
  %133 = getelementptr inbounds [256 x i8], ptr @r_to_y, i64 0, i64 %132
  %134 = load i8, ptr %133, align 1, !tbaa !14
  %135 = getelementptr inbounds i8, ptr %47, i64 %129
  %136 = load i8, ptr %135, align 1, !tbaa !14
  %137 = zext i8 %136 to i64
  %138 = getelementptr inbounds [256 x i8], ptr @g_to_y, i64 0, i64 %137
  %139 = load i8, ptr %138, align 1, !tbaa !14
  %140 = add i8 %139, %134
  %141 = getelementptr inbounds i8, ptr %44, i64 %129
  %142 = load i8, ptr %141, align 1, !tbaa !14
  %143 = zext i8 %142 to i64
  %144 = getelementptr inbounds [256 x i8], ptr @b_to_y, i64 0, i64 %143
  %145 = load i8, ptr %144, align 1, !tbaa !14
  %146 = add i8 %140, %145
  %147 = getelementptr inbounds i8, ptr %53, i64 %129
  store i8 %146, ptr %147, align 1, !tbaa !14
  %148 = load i8, ptr %141, align 1, !tbaa !14
  %149 = zext i8 %148 to i64
  %150 = zext i8 %146 to i64
  %151 = sub nsw i64 %149, %150
  %152 = getelementptr inbounds i8, ptr getelementptr inbounds (i8, ptr @b_to_u, i64 256), i64 %151
  %153 = load i8, ptr %152, align 1, !tbaa !14
  %154 = getelementptr inbounds i8, ptr %56, i64 %129
  store i8 %153, ptr %154, align 1, !tbaa !14
  %155 = load i8, ptr %130, align 1, !tbaa !14
  %156 = zext i8 %155 to i64
  %157 = load i8, ptr %147, align 1, !tbaa !14
  %158 = zext i8 %157 to i64
  %159 = sub nsw i64 %156, %158
  %160 = getelementptr inbounds i8, ptr getelementptr inbounds (i8, ptr @r_to_v, i64 256), i64 %159
  %161 = load i8, ptr %160, align 1, !tbaa !14
  %162 = getelementptr inbounds i8, ptr %59, i64 %129
  store i8 %161, ptr %162, align 1, !tbaa !14
  %163 = or disjoint i64 %indvars.iv, 3
  %164 = getelementptr inbounds i8, ptr %50, i64 %163
  %165 = load i8, ptr %164, align 1, !tbaa !14
  %166 = zext i8 %165 to i64
  %167 = getelementptr inbounds [256 x i8], ptr @r_to_y, i64 0, i64 %166
  %168 = load i8, ptr %167, align 1, !tbaa !14
  %169 = getelementptr inbounds i8, ptr %47, i64 %163
  %170 = load i8, ptr %169, align 1, !tbaa !14
  %171 = zext i8 %170 to i64
  %172 = getelementptr inbounds [256 x i8], ptr @g_to_y, i64 0, i64 %171
  %173 = load i8, ptr %172, align 1, !tbaa !14
  %174 = add i8 %173, %168
  %175 = getelementptr inbounds i8, ptr %44, i64 %163
  %176 = load i8, ptr %175, align 1, !tbaa !14
  %177 = zext i8 %176 to i64
  %178 = getelementptr inbounds [256 x i8], ptr @b_to_y, i64 0, i64 %177
  %179 = load i8, ptr %178, align 1, !tbaa !14
  %180 = add i8 %174, %179
  %181 = getelementptr inbounds i8, ptr %53, i64 %163
  store i8 %180, ptr %181, align 1, !tbaa !14
  %182 = load i8, ptr %175, align 1, !tbaa !14
  %183 = zext i8 %182 to i64
  %184 = zext i8 %180 to i64
  %185 = sub nsw i64 %183, %184
  %186 = getelementptr inbounds i8, ptr getelementptr inbounds (i8, ptr @b_to_u, i64 256), i64 %185
  %187 = load i8, ptr %186, align 1, !tbaa !14
  %188 = getelementptr inbounds i8, ptr %56, i64 %163
  store i8 %187, ptr %188, align 1, !tbaa !14
  %189 = load i8, ptr %164, align 1, !tbaa !14
  %190 = zext i8 %189 to i64
  %191 = load i8, ptr %181, align 1, !tbaa !14
  %192 = zext i8 %191 to i64
  %193 = sub nsw i64 %190, %192
  %194 = getelementptr inbounds i8, ptr getelementptr inbounds (i8, ptr @r_to_v, i64 256), i64 %193
  %195 = load i8, ptr %194, align 1, !tbaa !14
  %196 = getelementptr inbounds i8, ptr %59, i64 %163
  store i8 %195, ptr %196, align 1, !tbaa !14
  %197 = or disjoint i64 %indvars.iv, 4
  %198 = getelementptr inbounds i8, ptr %50, i64 %197
  %199 = load i8, ptr %198, align 1, !tbaa !14
  %200 = zext i8 %199 to i64
  %201 = getelementptr inbounds [256 x i8], ptr @r_to_y, i64 0, i64 %200
  %202 = load i8, ptr %201, align 1, !tbaa !14
  %203 = getelementptr inbounds i8, ptr %47, i64 %197
  %204 = load i8, ptr %203, align 1, !tbaa !14
  %205 = zext i8 %204 to i64
  %206 = getelementptr inbounds [256 x i8], ptr @g_to_y, i64 0, i64 %205
  %207 = load i8, ptr %206, align 1, !tbaa !14
  %208 = add i8 %207, %202
  %209 = getelementptr inbounds i8, ptr %44, i64 %197
  %210 = load i8, ptr %209, align 1, !tbaa !14
  %211 = zext i8 %210 to i64
  %212 = getelementptr inbounds [256 x i8], ptr @b_to_y, i64 0, i64 %211
  %213 = load i8, ptr %212, align 1, !tbaa !14
  %214 = add i8 %208, %213
  %215 = getelementptr inbounds i8, ptr %53, i64 %197
  store i8 %214, ptr %215, align 1, !tbaa !14
  %216 = load i8, ptr %209, align 1, !tbaa !14
  %217 = zext i8 %216 to i64
  %218 = zext i8 %214 to i64
  %219 = sub nsw i64 %217, %218
  %220 = getelementptr inbounds i8, ptr getelementptr inbounds (i8, ptr @b_to_u, i64 256), i64 %219
  %221 = load i8, ptr %220, align 1, !tbaa !14
  %222 = getelementptr inbounds i8, ptr %56, i64 %197
  store i8 %221, ptr %222, align 1, !tbaa !14
  %223 = load i8, ptr %198, align 1, !tbaa !14
  %224 = zext i8 %223 to i64
  %225 = load i8, ptr %215, align 1, !tbaa !14
  %226 = zext i8 %225 to i64
  %227 = sub nsw i64 %224, %226
  %228 = getelementptr inbounds i8, ptr getelementptr inbounds (i8, ptr @r_to_v, i64 256), i64 %227
  %229 = load i8, ptr %228, align 1, !tbaa !14
  %230 = getelementptr inbounds i8, ptr %59, i64 %197
  store i8 %229, ptr %230, align 1, !tbaa !14
  %231 = or disjoint i64 %indvars.iv, 5
  %232 = getelementptr inbounds i8, ptr %50, i64 %231
  %233 = load i8, ptr %232, align 1, !tbaa !14
  %234 = zext i8 %233 to i64
  %235 = getelementptr inbounds [256 x i8], ptr @r_to_y, i64 0, i64 %234
  %236 = load i8, ptr %235, align 1, !tbaa !14
  %237 = getelementptr inbounds i8, ptr %47, i64 %231
  %238 = load i8, ptr %237, align 1, !tbaa !14
  %239 = zext i8 %238 to i64
  %240 = getelementptr inbounds [256 x i8], ptr @g_to_y, i64 0, i64 %239
  %241 = load i8, ptr %240, align 1, !tbaa !14
  %242 = add i8 %241, %236
  %243 = getelementptr inbounds i8, ptr %44, i64 %231
  %244 = load i8, ptr %243, align 1, !tbaa !14
  %245 = zext i8 %244 to i64
  %246 = getelementptr inbounds [256 x i8], ptr @b_to_y, i64 0, i64 %245
  %247 = load i8, ptr %246, align 1, !tbaa !14
  %248 = add i8 %242, %247
  %249 = getelementptr inbounds i8, ptr %53, i64 %231
  store i8 %248, ptr %249, align 1, !tbaa !14
  %250 = load i8, ptr %243, align 1, !tbaa !14
  %251 = zext i8 %250 to i64
  %252 = zext i8 %248 to i64
  %253 = sub nsw i64 %251, %252
  %254 = getelementptr inbounds i8, ptr getelementptr inbounds (i8, ptr @b_to_u, i64 256), i64 %253
  %255 = load i8, ptr %254, align 1, !tbaa !14
  %256 = getelementptr inbounds i8, ptr %56, i64 %231
  store i8 %255, ptr %256, align 1, !tbaa !14
  %257 = load i8, ptr %232, align 1, !tbaa !14
  %258 = zext i8 %257 to i64
  %259 = load i8, ptr %249, align 1, !tbaa !14
  %260 = zext i8 %259 to i64
  %261 = sub nsw i64 %258, %260
  %262 = getelementptr inbounds i8, ptr getelementptr inbounds (i8, ptr @r_to_v, i64 256), i64 %261
  %263 = load i8, ptr %262, align 1, !tbaa !14
  %264 = getelementptr inbounds i8, ptr %59, i64 %231
  store i8 %263, ptr %264, align 1, !tbaa !14
  %265 = or disjoint i64 %indvars.iv, 6
  %266 = getelementptr inbounds i8, ptr %50, i64 %265
  %267 = load i8, ptr %266, align 1, !tbaa !14
  %268 = zext i8 %267 to i64
  %269 = getelementptr inbounds [256 x i8], ptr @r_to_y, i64 0, i64 %268
  %270 = load i8, ptr %269, align 1, !tbaa !14
  %271 = getelementptr inbounds i8, ptr %47, i64 %265
  %272 = load i8, ptr %271, align 1, !tbaa !14
  %273 = zext i8 %272 to i64
  %274 = getelementptr inbounds [256 x i8], ptr @g_to_y, i64 0, i64 %273
  %275 = load i8, ptr %274, align 1, !tbaa !14
  %276 = add i8 %275, %270
  %277 = getelementptr inbounds i8, ptr %44, i64 %265
  %278 = load i8, ptr %277, align 1, !tbaa !14
  %279 = zext i8 %278 to i64
  %280 = getelementptr inbounds [256 x i8], ptr @b_to_y, i64 0, i64 %279
  %281 = load i8, ptr %280, align 1, !tbaa !14
  %282 = add i8 %276, %281
  %283 = getelementptr inbounds i8, ptr %53, i64 %265
  store i8 %282, ptr %283, align 1, !tbaa !14
  %284 = load i8, ptr %277, align 1, !tbaa !14
  %285 = zext i8 %284 to i64
  %286 = zext i8 %282 to i64
  %287 = sub nsw i64 %285, %286
  %288 = getelementptr inbounds i8, ptr getelementptr inbounds (i8, ptr @b_to_u, i64 256), i64 %287
  %289 = load i8, ptr %288, align 1, !tbaa !14
  %290 = getelementptr inbounds i8, ptr %56, i64 %265
  store i8 %289, ptr %290, align 1, !tbaa !14
  %291 = load i8, ptr %266, align 1, !tbaa !14
  %292 = zext i8 %291 to i64
  %293 = load i8, ptr %283, align 1, !tbaa !14
  %294 = zext i8 %293 to i64
  %295 = sub nsw i64 %292, %294
  %296 = getelementptr inbounds i8, ptr getelementptr inbounds (i8, ptr @r_to_v, i64 256), i64 %295
  %297 = load i8, ptr %296, align 1, !tbaa !14
  %298 = getelementptr inbounds i8, ptr %59, i64 %265
  store i8 %297, ptr %298, align 1, !tbaa !14
  %299 = or disjoint i64 %indvars.iv, 7
  %300 = getelementptr inbounds i8, ptr %50, i64 %299
  %301 = load i8, ptr %300, align 1, !tbaa !14
  %302 = zext i8 %301 to i64
  %303 = getelementptr inbounds [256 x i8], ptr @r_to_y, i64 0, i64 %302
  %304 = load i8, ptr %303, align 1, !tbaa !14
  %305 = getelementptr inbounds i8, ptr %47, i64 %299
  %306 = load i8, ptr %305, align 1, !tbaa !14
  %307 = zext i8 %306 to i64
  %308 = getelementptr inbounds [256 x i8], ptr @g_to_y, i64 0, i64 %307
  %309 = load i8, ptr %308, align 1, !tbaa !14
  %310 = add i8 %309, %304
  %311 = getelementptr inbounds i8, ptr %44, i64 %299
  %312 = load i8, ptr %311, align 1, !tbaa !14
  %313 = zext i8 %312 to i64
  %314 = getelementptr inbounds [256 x i8], ptr @b_to_y, i64 0, i64 %313
  %315 = load i8, ptr %314, align 1, !tbaa !14
  %316 = add i8 %310, %315
  %317 = getelementptr inbounds i8, ptr %53, i64 %299
  store i8 %316, ptr %317, align 1, !tbaa !14
  %318 = load i8, ptr %311, align 1, !tbaa !14
  %319 = zext i8 %318 to i64
  %320 = zext i8 %316 to i64
  %321 = sub nsw i64 %319, %320
  %322 = getelementptr inbounds i8, ptr getelementptr inbounds (i8, ptr @b_to_u, i64 256), i64 %321
  %323 = load i8, ptr %322, align 1, !tbaa !14
  %324 = getelementptr inbounds i8, ptr %56, i64 %299
  store i8 %323, ptr %324, align 1, !tbaa !14
  %325 = load i8, ptr %300, align 1, !tbaa !14
  %326 = zext i8 %325 to i64
  %327 = load i8, ptr %317, align 1, !tbaa !14
  %328 = zext i8 %327 to i64
  %329 = sub nsw i64 %326, %328
  %330 = getelementptr inbounds i8, ptr getelementptr inbounds (i8, ptr @r_to_v, i64 256), i64 %329
  %331 = load i8, ptr %330, align 1, !tbaa !14
  %332 = getelementptr inbounds i8, ptr %59, i64 %299
  store i8 %331, ptr %332, align 1, !tbaa !14
  %333 = or disjoint i64 %indvars.iv, 8
  %334 = getelementptr inbounds i8, ptr %50, i64 %333
  %335 = load i8, ptr %334, align 1, !tbaa !14
  %336 = zext i8 %335 to i64
  %337 = getelementptr inbounds [256 x i8], ptr @r_to_y, i64 0, i64 %336
  %338 = load i8, ptr %337, align 1, !tbaa !14
  %339 = getelementptr inbounds i8, ptr %47, i64 %333
  %340 = load i8, ptr %339, align 1, !tbaa !14
  %341 = zext i8 %340 to i64
  %342 = getelementptr inbounds [256 x i8], ptr @g_to_y, i64 0, i64 %341
  %343 = load i8, ptr %342, align 1, !tbaa !14
  %344 = add i8 %343, %338
  %345 = getelementptr inbounds i8, ptr %44, i64 %333
  %346 = load i8, ptr %345, align 1, !tbaa !14
  %347 = zext i8 %346 to i64
  %348 = getelementptr inbounds [256 x i8], ptr @b_to_y, i64 0, i64 %347
  %349 = load i8, ptr %348, align 1, !tbaa !14
  %350 = add i8 %344, %349
  %351 = getelementptr inbounds i8, ptr %53, i64 %333
  store i8 %350, ptr %351, align 1, !tbaa !14
  %352 = load i8, ptr %345, align 1, !tbaa !14
  %353 = zext i8 %352 to i64
  %354 = zext i8 %350 to i64
  %355 = sub nsw i64 %353, %354
  %356 = getelementptr inbounds i8, ptr getelementptr inbounds (i8, ptr @b_to_u, i64 256), i64 %355
  %357 = load i8, ptr %356, align 1, !tbaa !14
  %358 = getelementptr inbounds i8, ptr %56, i64 %333
  store i8 %357, ptr %358, align 1, !tbaa !14
  %359 = load i8, ptr %334, align 1, !tbaa !14
  %360 = zext i8 %359 to i64
  %361 = load i8, ptr %351, align 1, !tbaa !14
  %362 = zext i8 %361 to i64
  %363 = sub nsw i64 %360, %362
  %364 = getelementptr inbounds i8, ptr getelementptr inbounds (i8, ptr @r_to_v, i64 256), i64 %363
  %365 = load i8, ptr %364, align 1, !tbaa !14
  %366 = getelementptr inbounds i8, ptr %59, i64 %333
  store i8 %365, ptr %366, align 1, !tbaa !14
  %367 = or disjoint i64 %indvars.iv, 9
  %368 = getelementptr inbounds i8, ptr %50, i64 %367
  %369 = load i8, ptr %368, align 1, !tbaa !14
  %370 = zext i8 %369 to i64
  %371 = getelementptr inbounds [256 x i8], ptr @r_to_y, i64 0, i64 %370
  %372 = load i8, ptr %371, align 1, !tbaa !14
  %373 = getelementptr inbounds i8, ptr %47, i64 %367
  %374 = load i8, ptr %373, align 1, !tbaa !14
  %375 = zext i8 %374 to i64
  %376 = getelementptr inbounds [256 x i8], ptr @g_to_y, i64 0, i64 %375
  %377 = load i8, ptr %376, align 1, !tbaa !14
  %378 = add i8 %377, %372
  %379 = getelementptr inbounds i8, ptr %44, i64 %367
  %380 = load i8, ptr %379, align 1, !tbaa !14
  %381 = zext i8 %380 to i64
  %382 = getelementptr inbounds [256 x i8], ptr @b_to_y, i64 0, i64 %381
  %383 = load i8, ptr %382, align 1, !tbaa !14
  %384 = add i8 %378, %383
  %385 = getelementptr inbounds i8, ptr %53, i64 %367
  store i8 %384, ptr %385, align 1, !tbaa !14
  %386 = load i8, ptr %379, align 1, !tbaa !14
  %387 = zext i8 %386 to i64
  %388 = zext i8 %384 to i64
  %389 = sub nsw i64 %387, %388
  %390 = getelementptr inbounds i8, ptr getelementptr inbounds (i8, ptr @b_to_u, i64 256), i64 %389
  %391 = load i8, ptr %390, align 1, !tbaa !14
  %392 = getelementptr inbounds i8, ptr %56, i64 %367
  store i8 %391, ptr %392, align 1, !tbaa !14
  %393 = load i8, ptr %368, align 1, !tbaa !14
  %394 = zext i8 %393 to i64
  %395 = load i8, ptr %385, align 1, !tbaa !14
  %396 = zext i8 %395 to i64
  %397 = sub nsw i64 %394, %396
  %398 = getelementptr inbounds i8, ptr getelementptr inbounds (i8, ptr @r_to_v, i64 256), i64 %397
  %399 = load i8, ptr %398, align 1, !tbaa !14
  %400 = getelementptr inbounds i8, ptr %59, i64 %367
  store i8 %399, ptr %400, align 1, !tbaa !14
  %401 = or disjoint i64 %indvars.iv, 10
  %402 = getelementptr inbounds i8, ptr %50, i64 %401
  %403 = load i8, ptr %402, align 1, !tbaa !14
  %404 = zext i8 %403 to i64
  %405 = getelementptr inbounds [256 x i8], ptr @r_to_y, i64 0, i64 %404
  %406 = load i8, ptr %405, align 1, !tbaa !14
  %407 = getelementptr inbounds i8, ptr %47, i64 %401
  %408 = load i8, ptr %407, align 1, !tbaa !14
  %409 = zext i8 %408 to i64
  %410 = getelementptr inbounds [256 x i8], ptr @g_to_y, i64 0, i64 %409
  %411 = load i8, ptr %410, align 1, !tbaa !14
  %412 = add i8 %411, %406
  %413 = getelementptr inbounds i8, ptr %44, i64 %401
  %414 = load i8, ptr %413, align 1, !tbaa !14
  %415 = zext i8 %414 to i64
  %416 = getelementptr inbounds [256 x i8], ptr @b_to_y, i64 0, i64 %415
  %417 = load i8, ptr %416, align 1, !tbaa !14
  %418 = add i8 %412, %417
  %419 = getelementptr inbounds i8, ptr %53, i64 %401
  store i8 %418, ptr %419, align 1, !tbaa !14
  %420 = load i8, ptr %413, align 1, !tbaa !14
  %421 = zext i8 %420 to i64
  %422 = zext i8 %418 to i64
  %423 = sub nsw i64 %421, %422
  %424 = getelementptr inbounds i8, ptr getelementptr inbounds (i8, ptr @b_to_u, i64 256), i64 %423
  %425 = load i8, ptr %424, align 1, !tbaa !14
  %426 = getelementptr inbounds i8, ptr %56, i64 %401
  store i8 %425, ptr %426, align 1, !tbaa !14
  %427 = load i8, ptr %402, align 1, !tbaa !14
  %428 = zext i8 %427 to i64
  %429 = load i8, ptr %419, align 1, !tbaa !14
  %430 = zext i8 %429 to i64
  %431 = sub nsw i64 %428, %430
  %432 = getelementptr inbounds i8, ptr getelementptr inbounds (i8, ptr @r_to_v, i64 256), i64 %431
  %433 = load i8, ptr %432, align 1, !tbaa !14
  %434 = getelementptr inbounds i8, ptr %59, i64 %401
  store i8 %433, ptr %434, align 1, !tbaa !14
  %435 = or disjoint i64 %indvars.iv, 11
  %436 = getelementptr inbounds i8, ptr %50, i64 %435
  %437 = load i8, ptr %436, align 1, !tbaa !14
  %438 = zext i8 %437 to i64
  %439 = getelementptr inbounds [256 x i8], ptr @r_to_y, i64 0, i64 %438
  %440 = load i8, ptr %439, align 1, !tbaa !14
  %441 = getelementptr inbounds i8, ptr %47, i64 %435
  %442 = load i8, ptr %441, align 1, !tbaa !14
  %443 = zext i8 %442 to i64
  %444 = getelementptr inbounds [256 x i8], ptr @g_to_y, i64 0, i64 %443
  %445 = load i8, ptr %444, align 1, !tbaa !14
  %446 = add i8 %445, %440
  %447 = getelementptr inbounds i8, ptr %44, i64 %435
  %448 = load i8, ptr %447, align 1, !tbaa !14
  %449 = zext i8 %448 to i64
  %450 = getelementptr inbounds [256 x i8], ptr @b_to_y, i64 0, i64 %449
  %451 = load i8, ptr %450, align 1, !tbaa !14
  %452 = add i8 %446, %451
  %453 = getelementptr inbounds i8, ptr %53, i64 %435
  store i8 %452, ptr %453, align 1, !tbaa !14
  %454 = load i8, ptr %447, align 1, !tbaa !14
  %455 = zext i8 %454 to i64
  %456 = zext i8 %452 to i64
  %457 = sub nsw i64 %455, %456
  %458 = getelementptr inbounds i8, ptr getelementptr inbounds (i8, ptr @b_to_u, i64 256), i64 %457
  %459 = load i8, ptr %458, align 1, !tbaa !14
  %460 = getelementptr inbounds i8, ptr %56, i64 %435
  store i8 %459, ptr %460, align 1, !tbaa !14
  %461 = load i8, ptr %436, align 1, !tbaa !14
  %462 = zext i8 %461 to i64
  %463 = load i8, ptr %453, align 1, !tbaa !14
  %464 = zext i8 %463 to i64
  %465 = sub nsw i64 %462, %464
  %466 = getelementptr inbounds i8, ptr getelementptr inbounds (i8, ptr @r_to_v, i64 256), i64 %465
  %467 = load i8, ptr %466, align 1, !tbaa !14
  %468 = getelementptr inbounds i8, ptr %59, i64 %435
  store i8 %467, ptr %468, align 1, !tbaa !14
  %469 = or disjoint i64 %indvars.iv, 12
  %470 = getelementptr inbounds i8, ptr %50, i64 %469
  %471 = load i8, ptr %470, align 1, !tbaa !14
  %472 = zext i8 %471 to i64
  %473 = getelementptr inbounds [256 x i8], ptr @r_to_y, i64 0, i64 %472
  %474 = load i8, ptr %473, align 1, !tbaa !14
  %475 = getelementptr inbounds i8, ptr %47, i64 %469
  %476 = load i8, ptr %475, align 1, !tbaa !14
  %477 = zext i8 %476 to i64
  %478 = getelementptr inbounds [256 x i8], ptr @g_to_y, i64 0, i64 %477
  %479 = load i8, ptr %478, align 1, !tbaa !14
  %480 = add i8 %479, %474
  %481 = getelementptr inbounds i8, ptr %44, i64 %469
  %482 = load i8, ptr %481, align 1, !tbaa !14
  %483 = zext i8 %482 to i64
  %484 = getelementptr inbounds [256 x i8], ptr @b_to_y, i64 0, i64 %483
  %485 = load i8, ptr %484, align 1, !tbaa !14
  %486 = add i8 %480, %485
  %487 = getelementptr inbounds i8, ptr %53, i64 %469
  store i8 %486, ptr %487, align 1, !tbaa !14
  %488 = load i8, ptr %481, align 1, !tbaa !14
  %489 = zext i8 %488 to i64
  %490 = zext i8 %486 to i64
  %491 = sub nsw i64 %489, %490
  %492 = getelementptr inbounds i8, ptr getelementptr inbounds (i8, ptr @b_to_u, i64 256), i64 %491
  %493 = load i8, ptr %492, align 1, !tbaa !14
  %494 = getelementptr inbounds i8, ptr %56, i64 %469
  store i8 %493, ptr %494, align 1, !tbaa !14
  %495 = load i8, ptr %470, align 1, !tbaa !14
  %496 = zext i8 %495 to i64
  %497 = load i8, ptr %487, align 1, !tbaa !14
  %498 = zext i8 %497 to i64
  %499 = sub nsw i64 %496, %498
  %500 = getelementptr inbounds i8, ptr getelementptr inbounds (i8, ptr @r_to_v, i64 256), i64 %499
  %501 = load i8, ptr %500, align 1, !tbaa !14
  %502 = getelementptr inbounds i8, ptr %59, i64 %469
  store i8 %501, ptr %502, align 1, !tbaa !14
  %503 = or disjoint i64 %indvars.iv, 13
  %504 = getelementptr inbounds i8, ptr %50, i64 %503
  %505 = load i8, ptr %504, align 1, !tbaa !14
  %506 = zext i8 %505 to i64
  %507 = getelementptr inbounds [256 x i8], ptr @r_to_y, i64 0, i64 %506
  %508 = load i8, ptr %507, align 1, !tbaa !14
  %509 = getelementptr inbounds i8, ptr %47, i64 %503
  %510 = load i8, ptr %509, align 1, !tbaa !14
  %511 = zext i8 %510 to i64
  %512 = getelementptr inbounds [256 x i8], ptr @g_to_y, i64 0, i64 %511
  %513 = load i8, ptr %512, align 1, !tbaa !14
  %514 = add i8 %513, %508
  %515 = getelementptr inbounds i8, ptr %44, i64 %503
  %516 = load i8, ptr %515, align 1, !tbaa !14
  %517 = zext i8 %516 to i64
  %518 = getelementptr inbounds [256 x i8], ptr @b_to_y, i64 0, i64 %517
  %519 = load i8, ptr %518, align 1, !tbaa !14
  %520 = add i8 %514, %519
  %521 = getelementptr inbounds i8, ptr %53, i64 %503
  store i8 %520, ptr %521, align 1, !tbaa !14
  %522 = load i8, ptr %515, align 1, !tbaa !14
  %523 = zext i8 %522 to i64
  %524 = zext i8 %520 to i64
  %525 = sub nsw i64 %523, %524
  %526 = getelementptr inbounds i8, ptr getelementptr inbounds (i8, ptr @b_to_u, i64 256), i64 %525
  %527 = load i8, ptr %526, align 1, !tbaa !14
  %528 = getelementptr inbounds i8, ptr %56, i64 %503
  store i8 %527, ptr %528, align 1, !tbaa !14
  %529 = load i8, ptr %504, align 1, !tbaa !14
  %530 = zext i8 %529 to i64
  %531 = load i8, ptr %521, align 1, !tbaa !14
  %532 = zext i8 %531 to i64
  %533 = sub nsw i64 %530, %532
  %534 = getelementptr inbounds i8, ptr getelementptr inbounds (i8, ptr @r_to_v, i64 256), i64 %533
  %535 = load i8, ptr %534, align 1, !tbaa !14
  %536 = getelementptr inbounds i8, ptr %59, i64 %503
  store i8 %535, ptr %536, align 1, !tbaa !14
  %537 = or disjoint i64 %indvars.iv, 14
  %538 = getelementptr inbounds i8, ptr %50, i64 %537
  %539 = load i8, ptr %538, align 1, !tbaa !14
  %540 = zext i8 %539 to i64
  %541 = getelementptr inbounds [256 x i8], ptr @r_to_y, i64 0, i64 %540
  %542 = load i8, ptr %541, align 1, !tbaa !14
  %543 = getelementptr inbounds i8, ptr %47, i64 %537
  %544 = load i8, ptr %543, align 1, !tbaa !14
  %545 = zext i8 %544 to i64
  %546 = getelementptr inbounds [256 x i8], ptr @g_to_y, i64 0, i64 %545
  %547 = load i8, ptr %546, align 1, !tbaa !14
  %548 = add i8 %547, %542
  %549 = getelementptr inbounds i8, ptr %44, i64 %537
  %550 = load i8, ptr %549, align 1, !tbaa !14
  %551 = zext i8 %550 to i64
  %552 = getelementptr inbounds [256 x i8], ptr @b_to_y, i64 0, i64 %551
  %553 = load i8, ptr %552, align 1, !tbaa !14
  %554 = add i8 %548, %553
  %555 = getelementptr inbounds i8, ptr %53, i64 %537
  store i8 %554, ptr %555, align 1, !tbaa !14
  %556 = load i8, ptr %549, align 1, !tbaa !14
  %557 = zext i8 %556 to i64
  %558 = zext i8 %554 to i64
  %559 = sub nsw i64 %557, %558
  %560 = getelementptr inbounds i8, ptr getelementptr inbounds (i8, ptr @b_to_u, i64 256), i64 %559
  %561 = load i8, ptr %560, align 1, !tbaa !14
  %562 = getelementptr inbounds i8, ptr %56, i64 %537
  store i8 %561, ptr %562, align 1, !tbaa !14
  %563 = load i8, ptr %538, align 1, !tbaa !14
  %564 = zext i8 %563 to i64
  %565 = load i8, ptr %555, align 1, !tbaa !14
  %566 = zext i8 %565 to i64
  %567 = sub nsw i64 %564, %566
  %568 = getelementptr inbounds i8, ptr getelementptr inbounds (i8, ptr @r_to_v, i64 256), i64 %567
  %569 = load i8, ptr %568, align 1, !tbaa !14
  %570 = getelementptr inbounds i8, ptr %59, i64 %537
  store i8 %569, ptr %570, align 1, !tbaa !14
  %571 = or disjoint i64 %indvars.iv, 15
  %572 = getelementptr inbounds i8, ptr %50, i64 %571
  %573 = load i8, ptr %572, align 1, !tbaa !14
  %574 = zext i8 %573 to i64
  %575 = getelementptr inbounds [256 x i8], ptr @r_to_y, i64 0, i64 %574
  %576 = load i8, ptr %575, align 1, !tbaa !14
  %577 = getelementptr inbounds i8, ptr %47, i64 %571
  %578 = load i8, ptr %577, align 1, !tbaa !14
  %579 = zext i8 %578 to i64
  %580 = getelementptr inbounds [256 x i8], ptr @g_to_y, i64 0, i64 %579
  %581 = load i8, ptr %580, align 1, !tbaa !14
  %582 = add i8 %581, %576
  %583 = getelementptr inbounds i8, ptr %44, i64 %571
  %584 = load i8, ptr %583, align 1, !tbaa !14
  %585 = zext i8 %584 to i64
  %586 = getelementptr inbounds [256 x i8], ptr @b_to_y, i64 0, i64 %585
  %587 = load i8, ptr %586, align 1, !tbaa !14
  %588 = add i8 %582, %587
  %589 = getelementptr inbounds i8, ptr %53, i64 %571
  store i8 %588, ptr %589, align 1, !tbaa !14
  %590 = load i8, ptr %583, align 1, !tbaa !14
  %591 = zext i8 %590 to i64
  %592 = zext i8 %588 to i64
  %593 = sub nsw i64 %591, %592
  %594 = getelementptr inbounds i8, ptr getelementptr inbounds (i8, ptr @b_to_u, i64 256), i64 %593
  %595 = load i8, ptr %594, align 1, !tbaa !14
  %596 = getelementptr inbounds i8, ptr %56, i64 %571
  store i8 %595, ptr %596, align 1, !tbaa !14
  %597 = load i8, ptr %572, align 1, !tbaa !14
  %598 = zext i8 %597 to i64
  %599 = load i8, ptr %589, align 1, !tbaa !14
  %600 = zext i8 %599 to i64
  %601 = sub nsw i64 %598, %600
  %602 = getelementptr inbounds i8, ptr getelementptr inbounds (i8, ptr @r_to_v, i64 256), i64 %601
  %603 = load i8, ptr %602, align 1, !tbaa !14
  %604 = getelementptr inbounds i8, ptr %59, i64 %571
  store i8 %603, ptr %604, align 1, !tbaa !14
  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 16
  %605 = load i32, ptr %40, align 8, !tbaa !12
  %606 = add nsw i32 %605, -15
  %607 = sext i32 %606 to i64
  %608 = icmp slt i64 %indvars.iv.next, %607
  br i1 %608, label %.lr.ph, label %._crit_edge.loopexit, !llvm.loop !15

._crit_edge.loopexit:                             ; preds = %.lr.ph
  %609 = trunc nuw nsw i64 %indvars.iv.next to i32
  br label %._crit_edge

._crit_edge:                                      ; preds = %._crit_edge.loopexit, %41
  %.0.lcssa = phi i32 [ 0, %41 ], [ %609, %._crit_edge.loopexit ]
  %.lcssa = phi i32 [ %60, %41 ], [ %605, %._crit_edge.loopexit ]
  %610 = icmp eq i32 %.lcssa, %.0.lcssa
  br i1 %610, label %1138, label %611

611:                                              ; preds = %._crit_edge
  %612 = sub nsw i32 %.lcssa, %.0.lcssa
  switch i32 %612, label %1138 [
    i32 1, label %.sink.split
    i32 2, label %.sink.split.sink.split
    i32 3, label %.sink.split.sink.split.sink.split
    i32 4, label %.sink.split.sink.split.sink.split.sink.split
    i32 5, label %.sink.split.sink.split.sink.split.sink.split.sink.split
    i32 6, label %.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split
    i32 7, label %.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split
    i32 8, label %.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split
    i32 9, label %.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split
    i32 10, label %.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split
    i32 11, label %.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split
    i32 12, label %.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split
    i32 13, label %.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split
    i32 14, label %.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split
    i32 15, label %613
  ]

613:                                              ; preds = %611
  %614 = zext nneg i32 %.0.lcssa to i64
  %615 = getelementptr inbounds i8, ptr %50, i64 %614
  %616 = load i8, ptr %615, align 1, !tbaa !14
  %617 = zext i8 %616 to i64
  %618 = getelementptr inbounds [256 x i8], ptr @r_to_y, i64 0, i64 %617
  %619 = load i8, ptr %618, align 1, !tbaa !14
  %620 = getelementptr inbounds i8, ptr %47, i64 %614
  %621 = load i8, ptr %620, align 1, !tbaa !14
  %622 = zext i8 %621 to i64
  %623 = getelementptr inbounds [256 x i8], ptr @g_to_y, i64 0, i64 %622
  %624 = load i8, ptr %623, align 1, !tbaa !14
  %625 = add i8 %624, %619
  %626 = getelementptr inbounds i8, ptr %44, i64 %614
  %627 = load i8, ptr %626, align 1, !tbaa !14
  %628 = zext i8 %627 to i64
  %629 = getelementptr inbounds [256 x i8], ptr @b_to_y, i64 0, i64 %628
  %630 = load i8, ptr %629, align 1, !tbaa !14
  %631 = add i8 %625, %630
  %632 = getelementptr inbounds i8, ptr %53, i64 %614
  store i8 %631, ptr %632, align 1, !tbaa !14
  %633 = load i8, ptr %626, align 1, !tbaa !14
  %634 = zext i8 %633 to i64
  %635 = zext i8 %631 to i64
  %636 = sub nsw i64 %634, %635
  %637 = getelementptr inbounds i8, ptr getelementptr inbounds (i8, ptr @b_to_u, i64 256), i64 %636
  %638 = load i8, ptr %637, align 1, !tbaa !14
  %639 = getelementptr inbounds i8, ptr %56, i64 %614
  store i8 %638, ptr %639, align 1, !tbaa !14
  %640 = load i8, ptr %615, align 1, !tbaa !14
  %641 = zext i8 %640 to i64
  %642 = load i8, ptr %632, align 1, !tbaa !14
  %643 = zext i8 %642 to i64
  %644 = sub nsw i64 %641, %643
  %645 = getelementptr inbounds i8, ptr getelementptr inbounds (i8, ptr @r_to_v, i64 256), i64 %644
  %646 = load i8, ptr %645, align 1, !tbaa !14
  %647 = getelementptr inbounds i8, ptr %59, i64 %614
  store i8 %646, ptr %647, align 1, !tbaa !14
  %648 = or disjoint i32 %.0.lcssa, 1
  br label %.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split

.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split: ; preds = %611, %613
  %.0.lcssa.sink3721 = phi i32 [ %648, %613 ], [ %.0.lcssa, %611 ]
  %.sink3677 = phi i32 [ 2, %613 ], [ 1, %611 ]
  %.sink3632.ph = phi i32 [ 3, %613 ], [ 2, %611 ]
  %.sink3587.ph.ph = phi i32 [ 4, %613 ], [ 3, %611 ]
  %.sink3542.ph.ph.ph = phi i32 [ 5, %613 ], [ 4, %611 ]
  %.sink3497.ph.ph.ph.ph = phi i32 [ 6, %613 ], [ 5, %611 ]
  %.sink3452.ph.ph.ph.ph.ph = phi i32 [ 7, %613 ], [ 6, %611 ]
  %.sink3407.ph.ph.ph.ph.ph.ph = phi i32 [ 8, %613 ], [ 7, %611 ]
  %.sink3362.ph.ph.ph.ph.ph.ph.ph = phi i32 [ 9, %613 ], [ 8, %611 ]
  %.sink3317.ph.ph.ph.ph.ph.ph.ph.ph = phi i32 [ 10, %613 ], [ 9, %611 ]
  %.sink3272.ph.ph.ph.ph.ph.ph.ph.ph.ph = phi i32 [ 11, %613 ], [ 10, %611 ]
  %.sink3227.ph.ph.ph.ph.ph.ph.ph.ph.ph.ph = phi i32 [ 12, %613 ], [ 11, %611 ]
  %.sink3182.ph.ph.ph.ph.ph.ph.ph.ph.ph.ph.ph = phi i32 [ 13, %613 ], [ 12, %611 ]
  %.sink.ph.ph.ph.ph.ph.ph.ph.ph.ph.ph.ph.ph = phi i32 [ 14, %613 ], [ 13, %611 ]
  %649 = zext nneg i32 %.0.lcssa.sink3721 to i64
  %650 = getelementptr inbounds i8, ptr %50, i64 %649
  %651 = load i8, ptr %650, align 1, !tbaa !14
  %652 = zext i8 %651 to i64
  %653 = getelementptr inbounds [256 x i8], ptr @r_to_y, i64 0, i64 %652
  %654 = load i8, ptr %653, align 1, !tbaa !14
  %655 = getelementptr inbounds i8, ptr %47, i64 %649
  %656 = load i8, ptr %655, align 1, !tbaa !14
  %657 = zext i8 %656 to i64
  %658 = getelementptr inbounds [256 x i8], ptr @g_to_y, i64 0, i64 %657
  %659 = load i8, ptr %658, align 1, !tbaa !14
  %660 = add i8 %659, %654
  %661 = getelementptr inbounds i8, ptr %44, i64 %649
  %662 = load i8, ptr %661, align 1, !tbaa !14
  %663 = zext i8 %662 to i64
  %664 = getelementptr inbounds [256 x i8], ptr @b_to_y, i64 0, i64 %663
  %665 = load i8, ptr %664, align 1, !tbaa !14
  %666 = add i8 %660, %665
  %667 = getelementptr inbounds i8, ptr %53, i64 %649
  store i8 %666, ptr %667, align 1, !tbaa !14
  %668 = load i8, ptr %661, align 1, !tbaa !14
  %669 = zext i8 %668 to i64
  %670 = zext i8 %666 to i64
  %671 = sub nsw i64 %669, %670
  %672 = getelementptr inbounds i8, ptr getelementptr inbounds (i8, ptr @b_to_u, i64 256), i64 %671
  %673 = load i8, ptr %672, align 1, !tbaa !14
  %674 = getelementptr inbounds i8, ptr %56, i64 %649
  store i8 %673, ptr %674, align 1, !tbaa !14
  %675 = load i8, ptr %650, align 1, !tbaa !14
  %676 = zext i8 %675 to i64
  %677 = load i8, ptr %667, align 1, !tbaa !14
  %678 = zext i8 %677 to i64
  %679 = sub nsw i64 %676, %678
  %680 = getelementptr inbounds i8, ptr getelementptr inbounds (i8, ptr @r_to_v, i64 256), i64 %679
  %681 = load i8, ptr %680, align 1, !tbaa !14
  %682 = getelementptr inbounds i8, ptr %59, i64 %649
  store i8 %681, ptr %682, align 1, !tbaa !14
  %683 = or disjoint i32 %.0.lcssa, %.sink3677
  br label %.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split

.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split: ; preds = %.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split, %611
  %.0.lcssa.sink3676 = phi i32 [ %.0.lcssa, %611 ], [ %683, %.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split ]
  %.sink3632 = phi i32 [ 1, %611 ], [ %.sink3632.ph, %.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split ]
  %.sink3587.ph = phi i32 [ 2, %611 ], [ %.sink3587.ph.ph, %.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split ]
  %.sink3542.ph.ph = phi i32 [ 3, %611 ], [ %.sink3542.ph.ph.ph, %.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split ]
  %.sink3497.ph.ph.ph = phi i32 [ 4, %611 ], [ %.sink3497.ph.ph.ph.ph, %.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split ]
  %.sink3452.ph.ph.ph.ph = phi i32 [ 5, %611 ], [ %.sink3452.ph.ph.ph.ph.ph, %.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split ]
  %.sink3407.ph.ph.ph.ph.ph = phi i32 [ 6, %611 ], [ %.sink3407.ph.ph.ph.ph.ph.ph, %.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split ]
  %.sink3362.ph.ph.ph.ph.ph.ph = phi i32 [ 7, %611 ], [ %.sink3362.ph.ph.ph.ph.ph.ph.ph, %.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split ]
  %.sink3317.ph.ph.ph.ph.ph.ph.ph = phi i32 [ 8, %611 ], [ %.sink3317.ph.ph.ph.ph.ph.ph.ph.ph, %.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split ]
  %.sink3272.ph.ph.ph.ph.ph.ph.ph.ph = phi i32 [ 9, %611 ], [ %.sink3272.ph.ph.ph.ph.ph.ph.ph.ph.ph, %.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split ]
  %.sink3227.ph.ph.ph.ph.ph.ph.ph.ph.ph = phi i32 [ 10, %611 ], [ %.sink3227.ph.ph.ph.ph.ph.ph.ph.ph.ph.ph, %.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split ]
  %.sink3182.ph.ph.ph.ph.ph.ph.ph.ph.ph.ph = phi i32 [ 11, %611 ], [ %.sink3182.ph.ph.ph.ph.ph.ph.ph.ph.ph.ph.ph, %.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split ]
  %.sink.ph.ph.ph.ph.ph.ph.ph.ph.ph.ph.ph = phi i32 [ 12, %611 ], [ %.sink.ph.ph.ph.ph.ph.ph.ph.ph.ph.ph.ph.ph, %.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split ]
  %684 = zext nneg i32 %.0.lcssa.sink3676 to i64
  %685 = getelementptr inbounds i8, ptr %50, i64 %684
  %686 = load i8, ptr %685, align 1, !tbaa !14
  %687 = zext i8 %686 to i64
  %688 = getelementptr inbounds [256 x i8], ptr @r_to_y, i64 0, i64 %687
  %689 = load i8, ptr %688, align 1, !tbaa !14
  %690 = getelementptr inbounds i8, ptr %47, i64 %684
  %691 = load i8, ptr %690, align 1, !tbaa !14
  %692 = zext i8 %691 to i64
  %693 = getelementptr inbounds [256 x i8], ptr @g_to_y, i64 0, i64 %692
  %694 = load i8, ptr %693, align 1, !tbaa !14
  %695 = add i8 %694, %689
  %696 = getelementptr inbounds i8, ptr %44, i64 %684
  %697 = load i8, ptr %696, align 1, !tbaa !14
  %698 = zext i8 %697 to i64
  %699 = getelementptr inbounds [256 x i8], ptr @b_to_y, i64 0, i64 %698
  %700 = load i8, ptr %699, align 1, !tbaa !14
  %701 = add i8 %695, %700
  %702 = getelementptr inbounds i8, ptr %53, i64 %684
  store i8 %701, ptr %702, align 1, !tbaa !14
  %703 = load i8, ptr %696, align 1, !tbaa !14
  %704 = zext i8 %703 to i64
  %705 = zext i8 %701 to i64
  %706 = sub nsw i64 %704, %705
  %707 = getelementptr inbounds i8, ptr getelementptr inbounds (i8, ptr @b_to_u, i64 256), i64 %706
  %708 = load i8, ptr %707, align 1, !tbaa !14
  %709 = getelementptr inbounds i8, ptr %56, i64 %684
  store i8 %708, ptr %709, align 1, !tbaa !14
  %710 = load i8, ptr %685, align 1, !tbaa !14
  %711 = zext i8 %710 to i64
  %712 = load i8, ptr %702, align 1, !tbaa !14
  %713 = zext i8 %712 to i64
  %714 = sub nsw i64 %711, %713
  %715 = getelementptr inbounds i8, ptr getelementptr inbounds (i8, ptr @r_to_v, i64 256), i64 %714
  %716 = load i8, ptr %715, align 1, !tbaa !14
  %717 = getelementptr inbounds i8, ptr %59, i64 %684
  store i8 %716, ptr %717, align 1, !tbaa !14
  %718 = or disjoint i32 %.0.lcssa, %.sink3632
  br label %.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split

.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split: ; preds = %.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split, %611
  %.0.lcssa.sink3631 = phi i32 [ %.0.lcssa, %611 ], [ %718, %.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split ]
  %.sink3587 = phi i32 [ 1, %611 ], [ %.sink3587.ph, %.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split ]
  %.sink3542.ph = phi i32 [ 2, %611 ], [ %.sink3542.ph.ph, %.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split ]
  %.sink3497.ph.ph = phi i32 [ 3, %611 ], [ %.sink3497.ph.ph.ph, %.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split ]
  %.sink3452.ph.ph.ph = phi i32 [ 4, %611 ], [ %.sink3452.ph.ph.ph.ph, %.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split ]
  %.sink3407.ph.ph.ph.ph = phi i32 [ 5, %611 ], [ %.sink3407.ph.ph.ph.ph.ph, %.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split ]
  %.sink3362.ph.ph.ph.ph.ph = phi i32 [ 6, %611 ], [ %.sink3362.ph.ph.ph.ph.ph.ph, %.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split ]
  %.sink3317.ph.ph.ph.ph.ph.ph = phi i32 [ 7, %611 ], [ %.sink3317.ph.ph.ph.ph.ph.ph.ph, %.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split ]
  %.sink3272.ph.ph.ph.ph.ph.ph.ph = phi i32 [ 8, %611 ], [ %.sink3272.ph.ph.ph.ph.ph.ph.ph.ph, %.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split ]
  %.sink3227.ph.ph.ph.ph.ph.ph.ph.ph = phi i32 [ 9, %611 ], [ %.sink3227.ph.ph.ph.ph.ph.ph.ph.ph.ph, %.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split ]
  %.sink3182.ph.ph.ph.ph.ph.ph.ph.ph.ph = phi i32 [ 10, %611 ], [ %.sink3182.ph.ph.ph.ph.ph.ph.ph.ph.ph.ph, %.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split ]
  %.sink.ph.ph.ph.ph.ph.ph.ph.ph.ph.ph = phi i32 [ 11, %611 ], [ %.sink.ph.ph.ph.ph.ph.ph.ph.ph.ph.ph.ph, %.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split ]
  %719 = zext nneg i32 %.0.lcssa.sink3631 to i64
  %720 = getelementptr inbounds i8, ptr %50, i64 %719
  %721 = load i8, ptr %720, align 1, !tbaa !14
  %722 = zext i8 %721 to i64
  %723 = getelementptr inbounds [256 x i8], ptr @r_to_y, i64 0, i64 %722
  %724 = load i8, ptr %723, align 1, !tbaa !14
  %725 = getelementptr inbounds i8, ptr %47, i64 %719
  %726 = load i8, ptr %725, align 1, !tbaa !14
  %727 = zext i8 %726 to i64
  %728 = getelementptr inbounds [256 x i8], ptr @g_to_y, i64 0, i64 %727
  %729 = load i8, ptr %728, align 1, !tbaa !14
  %730 = add i8 %729, %724
  %731 = getelementptr inbounds i8, ptr %44, i64 %719
  %732 = load i8, ptr %731, align 1, !tbaa !14
  %733 = zext i8 %732 to i64
  %734 = getelementptr inbounds [256 x i8], ptr @b_to_y, i64 0, i64 %733
  %735 = load i8, ptr %734, align 1, !tbaa !14
  %736 = add i8 %730, %735
  %737 = getelementptr inbounds i8, ptr %53, i64 %719
  store i8 %736, ptr %737, align 1, !tbaa !14
  %738 = load i8, ptr %731, align 1, !tbaa !14
  %739 = zext i8 %738 to i64
  %740 = zext i8 %736 to i64
  %741 = sub nsw i64 %739, %740
  %742 = getelementptr inbounds i8, ptr getelementptr inbounds (i8, ptr @b_to_u, i64 256), i64 %741
  %743 = load i8, ptr %742, align 1, !tbaa !14
  %744 = getelementptr inbounds i8, ptr %56, i64 %719
  store i8 %743, ptr %744, align 1, !tbaa !14
  %745 = load i8, ptr %720, align 1, !tbaa !14
  %746 = zext i8 %745 to i64
  %747 = load i8, ptr %737, align 1, !tbaa !14
  %748 = zext i8 %747 to i64
  %749 = sub nsw i64 %746, %748
  %750 = getelementptr inbounds i8, ptr getelementptr inbounds (i8, ptr @r_to_v, i64 256), i64 %749
  %751 = load i8, ptr %750, align 1, !tbaa !14
  %752 = getelementptr inbounds i8, ptr %59, i64 %719
  store i8 %751, ptr %752, align 1, !tbaa !14
  %753 = or disjoint i32 %.0.lcssa, %.sink3587
  br label %.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split

.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split: ; preds = %.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split, %611
  %.0.lcssa.sink3586 = phi i32 [ %.0.lcssa, %611 ], [ %753, %.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split ]
  %.sink3542 = phi i32 [ 1, %611 ], [ %.sink3542.ph, %.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split ]
  %.sink3497.ph = phi i32 [ 2, %611 ], [ %.sink3497.ph.ph, %.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split ]
  %.sink3452.ph.ph = phi i32 [ 3, %611 ], [ %.sink3452.ph.ph.ph, %.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split ]
  %.sink3407.ph.ph.ph = phi i32 [ 4, %611 ], [ %.sink3407.ph.ph.ph.ph, %.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split ]
  %.sink3362.ph.ph.ph.ph = phi i32 [ 5, %611 ], [ %.sink3362.ph.ph.ph.ph.ph, %.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split ]
  %.sink3317.ph.ph.ph.ph.ph = phi i32 [ 6, %611 ], [ %.sink3317.ph.ph.ph.ph.ph.ph, %.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split ]
  %.sink3272.ph.ph.ph.ph.ph.ph = phi i32 [ 7, %611 ], [ %.sink3272.ph.ph.ph.ph.ph.ph.ph, %.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split ]
  %.sink3227.ph.ph.ph.ph.ph.ph.ph = phi i32 [ 8, %611 ], [ %.sink3227.ph.ph.ph.ph.ph.ph.ph.ph, %.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split ]
  %.sink3182.ph.ph.ph.ph.ph.ph.ph.ph = phi i32 [ 9, %611 ], [ %.sink3182.ph.ph.ph.ph.ph.ph.ph.ph.ph, %.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split ]
  %.sink.ph.ph.ph.ph.ph.ph.ph.ph.ph = phi i32 [ 10, %611 ], [ %.sink.ph.ph.ph.ph.ph.ph.ph.ph.ph.ph, %.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split ]
  %754 = zext nneg i32 %.0.lcssa.sink3586 to i64
  %755 = getelementptr inbounds i8, ptr %50, i64 %754
  %756 = load i8, ptr %755, align 1, !tbaa !14
  %757 = zext i8 %756 to i64
  %758 = getelementptr inbounds [256 x i8], ptr @r_to_y, i64 0, i64 %757
  %759 = load i8, ptr %758, align 1, !tbaa !14
  %760 = getelementptr inbounds i8, ptr %47, i64 %754
  %761 = load i8, ptr %760, align 1, !tbaa !14
  %762 = zext i8 %761 to i64
  %763 = getelementptr inbounds [256 x i8], ptr @g_to_y, i64 0, i64 %762
  %764 = load i8, ptr %763, align 1, !tbaa !14
  %765 = add i8 %764, %759
  %766 = getelementptr inbounds i8, ptr %44, i64 %754
  %767 = load i8, ptr %766, align 1, !tbaa !14
  %768 = zext i8 %767 to i64
  %769 = getelementptr inbounds [256 x i8], ptr @b_to_y, i64 0, i64 %768
  %770 = load i8, ptr %769, align 1, !tbaa !14
  %771 = add i8 %765, %770
  %772 = getelementptr inbounds i8, ptr %53, i64 %754
  store i8 %771, ptr %772, align 1, !tbaa !14
  %773 = load i8, ptr %766, align 1, !tbaa !14
  %774 = zext i8 %773 to i64
  %775 = zext i8 %771 to i64
  %776 = sub nsw i64 %774, %775
  %777 = getelementptr inbounds i8, ptr getelementptr inbounds (i8, ptr @b_to_u, i64 256), i64 %776
  %778 = load i8, ptr %777, align 1, !tbaa !14
  %779 = getelementptr inbounds i8, ptr %56, i64 %754
  store i8 %778, ptr %779, align 1, !tbaa !14
  %780 = load i8, ptr %755, align 1, !tbaa !14
  %781 = zext i8 %780 to i64
  %782 = load i8, ptr %772, align 1, !tbaa !14
  %783 = zext i8 %782 to i64
  %784 = sub nsw i64 %781, %783
  %785 = getelementptr inbounds i8, ptr getelementptr inbounds (i8, ptr @r_to_v, i64 256), i64 %784
  %786 = load i8, ptr %785, align 1, !tbaa !14
  %787 = getelementptr inbounds i8, ptr %59, i64 %754
  store i8 %786, ptr %787, align 1, !tbaa !14
  %788 = or disjoint i32 %.0.lcssa, %.sink3542
  br label %.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split

.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split: ; preds = %.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split, %611
  %.0.lcssa.sink3541 = phi i32 [ %.0.lcssa, %611 ], [ %788, %.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split ]
  %.sink3497 = phi i32 [ 1, %611 ], [ %.sink3497.ph, %.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split ]
  %.sink3452.ph = phi i32 [ 2, %611 ], [ %.sink3452.ph.ph, %.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split ]
  %.sink3407.ph.ph = phi i32 [ 3, %611 ], [ %.sink3407.ph.ph.ph, %.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split ]
  %.sink3362.ph.ph.ph = phi i32 [ 4, %611 ], [ %.sink3362.ph.ph.ph.ph, %.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split ]
  %.sink3317.ph.ph.ph.ph = phi i32 [ 5, %611 ], [ %.sink3317.ph.ph.ph.ph.ph, %.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split ]
  %.sink3272.ph.ph.ph.ph.ph = phi i32 [ 6, %611 ], [ %.sink3272.ph.ph.ph.ph.ph.ph, %.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split ]
  %.sink3227.ph.ph.ph.ph.ph.ph = phi i32 [ 7, %611 ], [ %.sink3227.ph.ph.ph.ph.ph.ph.ph, %.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split ]
  %.sink3182.ph.ph.ph.ph.ph.ph.ph = phi i32 [ 8, %611 ], [ %.sink3182.ph.ph.ph.ph.ph.ph.ph.ph, %.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split ]
  %.sink.ph.ph.ph.ph.ph.ph.ph.ph = phi i32 [ 9, %611 ], [ %.sink.ph.ph.ph.ph.ph.ph.ph.ph.ph, %.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split ]
  %789 = zext nneg i32 %.0.lcssa.sink3541 to i64
  %790 = getelementptr inbounds i8, ptr %50, i64 %789
  %791 = load i8, ptr %790, align 1, !tbaa !14
  %792 = zext i8 %791 to i64
  %793 = getelementptr inbounds [256 x i8], ptr @r_to_y, i64 0, i64 %792
  %794 = load i8, ptr %793, align 1, !tbaa !14
  %795 = getelementptr inbounds i8, ptr %47, i64 %789
  %796 = load i8, ptr %795, align 1, !tbaa !14
  %797 = zext i8 %796 to i64
  %798 = getelementptr inbounds [256 x i8], ptr @g_to_y, i64 0, i64 %797
  %799 = load i8, ptr %798, align 1, !tbaa !14
  %800 = add i8 %799, %794
  %801 = getelementptr inbounds i8, ptr %44, i64 %789
  %802 = load i8, ptr %801, align 1, !tbaa !14
  %803 = zext i8 %802 to i64
  %804 = getelementptr inbounds [256 x i8], ptr @b_to_y, i64 0, i64 %803
  %805 = load i8, ptr %804, align 1, !tbaa !14
  %806 = add i8 %800, %805
  %807 = getelementptr inbounds i8, ptr %53, i64 %789
  store i8 %806, ptr %807, align 1, !tbaa !14
  %808 = load i8, ptr %801, align 1, !tbaa !14
  %809 = zext i8 %808 to i64
  %810 = zext i8 %806 to i64
  %811 = sub nsw i64 %809, %810
  %812 = getelementptr inbounds i8, ptr getelementptr inbounds (i8, ptr @b_to_u, i64 256), i64 %811
  %813 = load i8, ptr %812, align 1, !tbaa !14
  %814 = getelementptr inbounds i8, ptr %56, i64 %789
  store i8 %813, ptr %814, align 1, !tbaa !14
  %815 = load i8, ptr %790, align 1, !tbaa !14
  %816 = zext i8 %815 to i64
  %817 = load i8, ptr %807, align 1, !tbaa !14
  %818 = zext i8 %817 to i64
  %819 = sub nsw i64 %816, %818
  %820 = getelementptr inbounds i8, ptr getelementptr inbounds (i8, ptr @r_to_v, i64 256), i64 %819
  %821 = load i8, ptr %820, align 1, !tbaa !14
  %822 = getelementptr inbounds i8, ptr %59, i64 %789
  store i8 %821, ptr %822, align 1, !tbaa !14
  %823 = or disjoint i32 %.0.lcssa, %.sink3497
  br label %.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split

.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split: ; preds = %.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split, %611
  %.0.lcssa.sink3496 = phi i32 [ %.0.lcssa, %611 ], [ %823, %.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split ]
  %.sink3452 = phi i32 [ 1, %611 ], [ %.sink3452.ph, %.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split ]
  %.sink3407.ph = phi i32 [ 2, %611 ], [ %.sink3407.ph.ph, %.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split ]
  %.sink3362.ph.ph = phi i32 [ 3, %611 ], [ %.sink3362.ph.ph.ph, %.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split ]
  %.sink3317.ph.ph.ph = phi i32 [ 4, %611 ], [ %.sink3317.ph.ph.ph.ph, %.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split ]
  %.sink3272.ph.ph.ph.ph = phi i32 [ 5, %611 ], [ %.sink3272.ph.ph.ph.ph.ph, %.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split ]
  %.sink3227.ph.ph.ph.ph.ph = phi i32 [ 6, %611 ], [ %.sink3227.ph.ph.ph.ph.ph.ph, %.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split ]
  %.sink3182.ph.ph.ph.ph.ph.ph = phi i32 [ 7, %611 ], [ %.sink3182.ph.ph.ph.ph.ph.ph.ph, %.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split ]
  %.sink.ph.ph.ph.ph.ph.ph.ph = phi i32 [ 8, %611 ], [ %.sink.ph.ph.ph.ph.ph.ph.ph.ph, %.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split ]
  %824 = zext nneg i32 %.0.lcssa.sink3496 to i64
  %825 = getelementptr inbounds i8, ptr %50, i64 %824
  %826 = load i8, ptr %825, align 1, !tbaa !14
  %827 = zext i8 %826 to i64
  %828 = getelementptr inbounds [256 x i8], ptr @r_to_y, i64 0, i64 %827
  %829 = load i8, ptr %828, align 1, !tbaa !14
  %830 = getelementptr inbounds i8, ptr %47, i64 %824
  %831 = load i8, ptr %830, align 1, !tbaa !14
  %832 = zext i8 %831 to i64
  %833 = getelementptr inbounds [256 x i8], ptr @g_to_y, i64 0, i64 %832
  %834 = load i8, ptr %833, align 1, !tbaa !14
  %835 = add i8 %834, %829
  %836 = getelementptr inbounds i8, ptr %44, i64 %824
  %837 = load i8, ptr %836, align 1, !tbaa !14
  %838 = zext i8 %837 to i64
  %839 = getelementptr inbounds [256 x i8], ptr @b_to_y, i64 0, i64 %838
  %840 = load i8, ptr %839, align 1, !tbaa !14
  %841 = add i8 %835, %840
  %842 = getelementptr inbounds i8, ptr %53, i64 %824
  store i8 %841, ptr %842, align 1, !tbaa !14
  %843 = load i8, ptr %836, align 1, !tbaa !14
  %844 = zext i8 %843 to i64
  %845 = zext i8 %841 to i64
  %846 = sub nsw i64 %844, %845
  %847 = getelementptr inbounds i8, ptr getelementptr inbounds (i8, ptr @b_to_u, i64 256), i64 %846
  %848 = load i8, ptr %847, align 1, !tbaa !14
  %849 = getelementptr inbounds i8, ptr %56, i64 %824
  store i8 %848, ptr %849, align 1, !tbaa !14
  %850 = load i8, ptr %825, align 1, !tbaa !14
  %851 = zext i8 %850 to i64
  %852 = load i8, ptr %842, align 1, !tbaa !14
  %853 = zext i8 %852 to i64
  %854 = sub nsw i64 %851, %853
  %855 = getelementptr inbounds i8, ptr getelementptr inbounds (i8, ptr @r_to_v, i64 256), i64 %854
  %856 = load i8, ptr %855, align 1, !tbaa !14
  %857 = getelementptr inbounds i8, ptr %59, i64 %824
  store i8 %856, ptr %857, align 1, !tbaa !14
  %858 = or disjoint i32 %.0.lcssa, %.sink3452
  br label %.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split

.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split: ; preds = %.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split, %611
  %.0.lcssa.sink3451 = phi i32 [ %.0.lcssa, %611 ], [ %858, %.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split ]
  %.sink3407 = phi i32 [ 1, %611 ], [ %.sink3407.ph, %.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split ]
  %.sink3362.ph = phi i32 [ 2, %611 ], [ %.sink3362.ph.ph, %.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split ]
  %.sink3317.ph.ph = phi i32 [ 3, %611 ], [ %.sink3317.ph.ph.ph, %.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split ]
  %.sink3272.ph.ph.ph = phi i32 [ 4, %611 ], [ %.sink3272.ph.ph.ph.ph, %.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split ]
  %.sink3227.ph.ph.ph.ph = phi i32 [ 5, %611 ], [ %.sink3227.ph.ph.ph.ph.ph, %.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split ]
  %.sink3182.ph.ph.ph.ph.ph = phi i32 [ 6, %611 ], [ %.sink3182.ph.ph.ph.ph.ph.ph, %.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split ]
  %.sink.ph.ph.ph.ph.ph.ph = phi i32 [ 7, %611 ], [ %.sink.ph.ph.ph.ph.ph.ph.ph, %.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split ]
  %859 = zext nneg i32 %.0.lcssa.sink3451 to i64
  %860 = getelementptr inbounds i8, ptr %50, i64 %859
  %861 = load i8, ptr %860, align 1, !tbaa !14
  %862 = zext i8 %861 to i64
  %863 = getelementptr inbounds [256 x i8], ptr @r_to_y, i64 0, i64 %862
  %864 = load i8, ptr %863, align 1, !tbaa !14
  %865 = getelementptr inbounds i8, ptr %47, i64 %859
  %866 = load i8, ptr %865, align 1, !tbaa !14
  %867 = zext i8 %866 to i64
  %868 = getelementptr inbounds [256 x i8], ptr @g_to_y, i64 0, i64 %867
  %869 = load i8, ptr %868, align 1, !tbaa !14
  %870 = add i8 %869, %864
  %871 = getelementptr inbounds i8, ptr %44, i64 %859
  %872 = load i8, ptr %871, align 1, !tbaa !14
  %873 = zext i8 %872 to i64
  %874 = getelementptr inbounds [256 x i8], ptr @b_to_y, i64 0, i64 %873
  %875 = load i8, ptr %874, align 1, !tbaa !14
  %876 = add i8 %870, %875
  %877 = getelementptr inbounds i8, ptr %53, i64 %859
  store i8 %876, ptr %877, align 1, !tbaa !14
  %878 = load i8, ptr %871, align 1, !tbaa !14
  %879 = zext i8 %878 to i64
  %880 = zext i8 %876 to i64
  %881 = sub nsw i64 %879, %880
  %882 = getelementptr inbounds i8, ptr getelementptr inbounds (i8, ptr @b_to_u, i64 256), i64 %881
  %883 = load i8, ptr %882, align 1, !tbaa !14
  %884 = getelementptr inbounds i8, ptr %56, i64 %859
  store i8 %883, ptr %884, align 1, !tbaa !14
  %885 = load i8, ptr %860, align 1, !tbaa !14
  %886 = zext i8 %885 to i64
  %887 = load i8, ptr %877, align 1, !tbaa !14
  %888 = zext i8 %887 to i64
  %889 = sub nsw i64 %886, %888
  %890 = getelementptr inbounds i8, ptr getelementptr inbounds (i8, ptr @r_to_v, i64 256), i64 %889
  %891 = load i8, ptr %890, align 1, !tbaa !14
  %892 = getelementptr inbounds i8, ptr %59, i64 %859
  store i8 %891, ptr %892, align 1, !tbaa !14
  %893 = or disjoint i32 %.0.lcssa, %.sink3407
  br label %.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split

.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split: ; preds = %.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split, %611
  %.0.lcssa.sink3406 = phi i32 [ %.0.lcssa, %611 ], [ %893, %.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split ]
  %.sink3362 = phi i32 [ 1, %611 ], [ %.sink3362.ph, %.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split ]
  %.sink3317.ph = phi i32 [ 2, %611 ], [ %.sink3317.ph.ph, %.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split ]
  %.sink3272.ph.ph = phi i32 [ 3, %611 ], [ %.sink3272.ph.ph.ph, %.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split ]
  %.sink3227.ph.ph.ph = phi i32 [ 4, %611 ], [ %.sink3227.ph.ph.ph.ph, %.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split ]
  %.sink3182.ph.ph.ph.ph = phi i32 [ 5, %611 ], [ %.sink3182.ph.ph.ph.ph.ph, %.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split ]
  %.sink.ph.ph.ph.ph.ph = phi i32 [ 6, %611 ], [ %.sink.ph.ph.ph.ph.ph.ph, %.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split ]
  %894 = zext nneg i32 %.0.lcssa.sink3406 to i64
  %895 = getelementptr inbounds i8, ptr %50, i64 %894
  %896 = load i8, ptr %895, align 1, !tbaa !14
  %897 = zext i8 %896 to i64
  %898 = getelementptr inbounds [256 x i8], ptr @r_to_y, i64 0, i64 %897
  %899 = load i8, ptr %898, align 1, !tbaa !14
  %900 = getelementptr inbounds i8, ptr %47, i64 %894
  %901 = load i8, ptr %900, align 1, !tbaa !14
  %902 = zext i8 %901 to i64
  %903 = getelementptr inbounds [256 x i8], ptr @g_to_y, i64 0, i64 %902
  %904 = load i8, ptr %903, align 1, !tbaa !14
  %905 = add i8 %904, %899
  %906 = getelementptr inbounds i8, ptr %44, i64 %894
  %907 = load i8, ptr %906, align 1, !tbaa !14
  %908 = zext i8 %907 to i64
  %909 = getelementptr inbounds [256 x i8], ptr @b_to_y, i64 0, i64 %908
  %910 = load i8, ptr %909, align 1, !tbaa !14
  %911 = add i8 %905, %910
  %912 = getelementptr inbounds i8, ptr %53, i64 %894
  store i8 %911, ptr %912, align 1, !tbaa !14
  %913 = load i8, ptr %906, align 1, !tbaa !14
  %914 = zext i8 %913 to i64
  %915 = zext i8 %911 to i64
  %916 = sub nsw i64 %914, %915
  %917 = getelementptr inbounds i8, ptr getelementptr inbounds (i8, ptr @b_to_u, i64 256), i64 %916
  %918 = load i8, ptr %917, align 1, !tbaa !14
  %919 = getelementptr inbounds i8, ptr %56, i64 %894
  store i8 %918, ptr %919, align 1, !tbaa !14
  %920 = load i8, ptr %895, align 1, !tbaa !14
  %921 = zext i8 %920 to i64
  %922 = load i8, ptr %912, align 1, !tbaa !14
  %923 = zext i8 %922 to i64
  %924 = sub nsw i64 %921, %923
  %925 = getelementptr inbounds i8, ptr getelementptr inbounds (i8, ptr @r_to_v, i64 256), i64 %924
  %926 = load i8, ptr %925, align 1, !tbaa !14
  %927 = getelementptr inbounds i8, ptr %59, i64 %894
  store i8 %926, ptr %927, align 1, !tbaa !14
  %928 = or disjoint i32 %.0.lcssa, %.sink3362
  br label %.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split

.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split: ; preds = %.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split, %611
  %.0.lcssa.sink3361 = phi i32 [ %.0.lcssa, %611 ], [ %928, %.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split ]
  %.sink3317 = phi i32 [ 1, %611 ], [ %.sink3317.ph, %.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split ]
  %.sink3272.ph = phi i32 [ 2, %611 ], [ %.sink3272.ph.ph, %.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split ]
  %.sink3227.ph.ph = phi i32 [ 3, %611 ], [ %.sink3227.ph.ph.ph, %.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split ]
  %.sink3182.ph.ph.ph = phi i32 [ 4, %611 ], [ %.sink3182.ph.ph.ph.ph, %.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split ]
  %.sink.ph.ph.ph.ph = phi i32 [ 5, %611 ], [ %.sink.ph.ph.ph.ph.ph, %.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split ]
  %929 = zext nneg i32 %.0.lcssa.sink3361 to i64
  %930 = getelementptr inbounds i8, ptr %50, i64 %929
  %931 = load i8, ptr %930, align 1, !tbaa !14
  %932 = zext i8 %931 to i64
  %933 = getelementptr inbounds [256 x i8], ptr @r_to_y, i64 0, i64 %932
  %934 = load i8, ptr %933, align 1, !tbaa !14
  %935 = getelementptr inbounds i8, ptr %47, i64 %929
  %936 = load i8, ptr %935, align 1, !tbaa !14
  %937 = zext i8 %936 to i64
  %938 = getelementptr inbounds [256 x i8], ptr @g_to_y, i64 0, i64 %937
  %939 = load i8, ptr %938, align 1, !tbaa !14
  %940 = add i8 %939, %934
  %941 = getelementptr inbounds i8, ptr %44, i64 %929
  %942 = load i8, ptr %941, align 1, !tbaa !14
  %943 = zext i8 %942 to i64
  %944 = getelementptr inbounds [256 x i8], ptr @b_to_y, i64 0, i64 %943
  %945 = load i8, ptr %944, align 1, !tbaa !14
  %946 = add i8 %940, %945
  %947 = getelementptr inbounds i8, ptr %53, i64 %929
  store i8 %946, ptr %947, align 1, !tbaa !14
  %948 = load i8, ptr %941, align 1, !tbaa !14
  %949 = zext i8 %948 to i64
  %950 = zext i8 %946 to i64
  %951 = sub nsw i64 %949, %950
  %952 = getelementptr inbounds i8, ptr getelementptr inbounds (i8, ptr @b_to_u, i64 256), i64 %951
  %953 = load i8, ptr %952, align 1, !tbaa !14
  %954 = getelementptr inbounds i8, ptr %56, i64 %929
  store i8 %953, ptr %954, align 1, !tbaa !14
  %955 = load i8, ptr %930, align 1, !tbaa !14
  %956 = zext i8 %955 to i64
  %957 = load i8, ptr %947, align 1, !tbaa !14
  %958 = zext i8 %957 to i64
  %959 = sub nsw i64 %956, %958
  %960 = getelementptr inbounds i8, ptr getelementptr inbounds (i8, ptr @r_to_v, i64 256), i64 %959
  %961 = load i8, ptr %960, align 1, !tbaa !14
  %962 = getelementptr inbounds i8, ptr %59, i64 %929
  store i8 %961, ptr %962, align 1, !tbaa !14
  %963 = or disjoint i32 %.0.lcssa, %.sink3317
  br label %.sink.split.sink.split.sink.split.sink.split.sink.split

.sink.split.sink.split.sink.split.sink.split.sink.split: ; preds = %.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split, %611
  %.0.lcssa.sink3316 = phi i32 [ %.0.lcssa, %611 ], [ %963, %.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split ]
  %.sink3272 = phi i32 [ 1, %611 ], [ %.sink3272.ph, %.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split ]
  %.sink3227.ph = phi i32 [ 2, %611 ], [ %.sink3227.ph.ph, %.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split ]
  %.sink3182.ph.ph = phi i32 [ 3, %611 ], [ %.sink3182.ph.ph.ph, %.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split ]
  %.sink.ph.ph.ph = phi i32 [ 4, %611 ], [ %.sink.ph.ph.ph.ph, %.sink.split.sink.split.sink.split.sink.split.sink.split.sink.split ]
  %964 = zext nneg i32 %.0.lcssa.sink3316 to i64
  %965 = getelementptr inbounds i8, ptr %50, i64 %964
  %966 = load i8, ptr %965, align 1, !tbaa !14
  %967 = zext i8 %966 to i64
  %968 = getelementptr inbounds [256 x i8], ptr @r_to_y, i64 0, i64 %967
  %969 = load i8, ptr %968, align 1, !tbaa !14
  %970 = getelementptr inbounds i8, ptr %47, i64 %964
  %971 = load i8, ptr %970, align 1, !tbaa !14
  %972 = zext i8 %971 to i64
  %973 = getelementptr inbounds [256 x i8], ptr @g_to_y, i64 0, i64 %972
  %974 = load i8, ptr %973, align 1, !tbaa !14
  %975 = add i8 %974, %969
  %976 = getelementptr inbounds i8, ptr %44, i64 %964
  %977 = load i8, ptr %976, align 1, !tbaa !14
  %978 = zext i8 %977 to i64
  %979 = getelementptr inbounds [256 x i8], ptr @b_to_y, i64 0, i64 %978
  %980 = load i8, ptr %979, align 1, !tbaa !14
  %981 = add i8 %975, %980
  %982 = getelementptr inbounds i8, ptr %53, i64 %964
  store i8 %981, ptr %982, align 1, !tbaa !14
  %983 = load i8, ptr %976, align 1, !tbaa !14
  %984 = zext i8 %983 to i64
  %985 = zext i8 %981 to i64
  %986 = sub nsw i64 %984, %985
  %987 = getelementptr inbounds i8, ptr getelementptr inbounds (i8, ptr @b_to_u, i64 256), i64 %986
  %988 = load i8, ptr %987, align 1, !tbaa !14
  %989 = getelementptr inbounds i8, ptr %56, i64 %964
  store i8 %988, ptr %989, align 1, !tbaa !14
  %990 = load i8, ptr %965, align 1, !tbaa !14
  %991 = zext i8 %990 to i64
  %992 = load i8, ptr %982, align 1, !tbaa !14
  %993 = zext i8 %992 to i64
  %994 = sub nsw i64 %991, %993
  %995 = getelementptr inbounds i8, ptr getelementptr inbounds (i8, ptr @r_to_v, i64 256), i64 %994
  %996 = load i8, ptr %995, align 1, !tbaa !14
  %997 = getelementptr inbounds i8, ptr %59, i64 %964
  store i8 %996, ptr %997, align 1, !tbaa !14
  %998 = or disjoint i32 %.0.lcssa, %.sink3272
  br label %.sink.split.sink.split.sink.split.sink.split

.sink.split.sink.split.sink.split.sink.split:     ; preds = %.sink.split.sink.split.sink.split.sink.split.sink.split, %611
  %.0.lcssa.sink3271 = phi i32 [ %.0.lcssa, %611 ], [ %998, %.sink.split.sink.split.sink.split.sink.split.sink.split ]
  %.sink3227 = phi i32 [ 1, %611 ], [ %.sink3227.ph, %.sink.split.sink.split.sink.split.sink.split.sink.split ]
  %.sink3182.ph = phi i32 [ 2, %611 ], [ %.sink3182.ph.ph, %.sink.split.sink.split.sink.split.sink.split.sink.split ]
  %.sink.ph.ph = phi i32 [ 3, %611 ], [ %.sink.ph.ph.ph, %.sink.split.sink.split.sink.split.sink.split.sink.split ]
  %999 = zext nneg i32 %.0.lcssa.sink3271 to i64
  %1000 = getelementptr inbounds i8, ptr %50, i64 %999
  %1001 = load i8, ptr %1000, align 1, !tbaa !14
  %1002 = zext i8 %1001 to i64
  %1003 = getelementptr inbounds [256 x i8], ptr @r_to_y, i64 0, i64 %1002
  %1004 = load i8, ptr %1003, align 1, !tbaa !14
  %1005 = getelementptr inbounds i8, ptr %47, i64 %999
  %1006 = load i8, ptr %1005, align 1, !tbaa !14
  %1007 = zext i8 %1006 to i64
  %1008 = getelementptr inbounds [256 x i8], ptr @g_to_y, i64 0, i64 %1007
  %1009 = load i8, ptr %1008, align 1, !tbaa !14
  %1010 = add i8 %1009, %1004
  %1011 = getelementptr inbounds i8, ptr %44, i64 %999
  %1012 = load i8, ptr %1011, align 1, !tbaa !14
  %1013 = zext i8 %1012 to i64
  %1014 = getelementptr inbounds [256 x i8], ptr @b_to_y, i64 0, i64 %1013
  %1015 = load i8, ptr %1014, align 1, !tbaa !14
  %1016 = add i8 %1010, %1015
  %1017 = getelementptr inbounds i8, ptr %53, i64 %999
  store i8 %1016, ptr %1017, align 1, !tbaa !14
  %1018 = load i8, ptr %1011, align 1, !tbaa !14
  %1019 = zext i8 %1018 to i64
  %1020 = zext i8 %1016 to i64
  %1021 = sub nsw i64 %1019, %1020
  %1022 = getelementptr inbounds i8, ptr getelementptr inbounds (i8, ptr @b_to_u, i64 256), i64 %1021
  %1023 = load i8, ptr %1022, align 1, !tbaa !14
  %1024 = getelementptr inbounds i8, ptr %56, i64 %999
  store i8 %1023, ptr %1024, align 1, !tbaa !14
  %1025 = load i8, ptr %1000, align 1, !tbaa !14
  %1026 = zext i8 %1025 to i64
  %1027 = load i8, ptr %1017, align 1, !tbaa !14
  %1028 = zext i8 %1027 to i64
  %1029 = sub nsw i64 %1026, %1028
  %1030 = getelementptr inbounds i8, ptr getelementptr inbounds (i8, ptr @r_to_v, i64 256), i64 %1029
  %1031 = load i8, ptr %1030, align 1, !tbaa !14
  %1032 = getelementptr inbounds i8, ptr %59, i64 %999
  store i8 %1031, ptr %1032, align 1, !tbaa !14
  %1033 = or disjoint i32 %.0.lcssa, %.sink3227
  br label %.sink.split.sink.split.sink.split

.sink.split.sink.split.sink.split:                ; preds = %.sink.split.sink.split.sink.split.sink.split, %611
  %.0.lcssa.sink3226 = phi i32 [ %.0.lcssa, %611 ], [ %1033, %.sink.split.sink.split.sink.split.sink.split ]
  %.sink3182 = phi i32 [ 1, %611 ], [ %.sink3182.ph, %.sink.split.sink.split.sink.split.sink.split ]
  %.sink.ph = phi i32 [ 2, %611 ], [ %.sink.ph.ph, %.sink.split.sink.split.sink.split.sink.split ]
  %1034 = zext nneg i32 %.0.lcssa.sink3226 to i64
  %1035 = getelementptr inbounds i8, ptr %50, i64 %1034
  %1036 = load i8, ptr %1035, align 1, !tbaa !14
  %1037 = zext i8 %1036 to i64
  %1038 = getelementptr inbounds [256 x i8], ptr @r_to_y, i64 0, i64 %1037
  %1039 = load i8, ptr %1038, align 1, !tbaa !14
  %1040 = getelementptr inbounds i8, ptr %47, i64 %1034
  %1041 = load i8, ptr %1040, align 1, !tbaa !14
  %1042 = zext i8 %1041 to i64
  %1043 = getelementptr inbounds [256 x i8], ptr @g_to_y, i64 0, i64 %1042
  %1044 = load i8, ptr %1043, align 1, !tbaa !14
  %1045 = add i8 %1044, %1039
  %1046 = getelementptr inbounds i8, ptr %44, i64 %1034
  %1047 = load i8, ptr %1046, align 1, !tbaa !14
  %1048 = zext i8 %1047 to i64
  %1049 = getelementptr inbounds [256 x i8], ptr @b_to_y, i64 0, i64 %1048
  %1050 = load i8, ptr %1049, align 1, !tbaa !14
  %1051 = add i8 %1045, %1050
  %1052 = getelementptr inbounds i8, ptr %53, i64 %1034
  store i8 %1051, ptr %1052, align 1, !tbaa !14
  %1053 = load i8, ptr %1046, align 1, !tbaa !14
  %1054 = zext i8 %1053 to i64
  %1055 = zext i8 %1051 to i64
  %1056 = sub nsw i64 %1054, %1055
  %1057 = getelementptr inbounds i8, ptr getelementptr inbounds (i8, ptr @b_to_u, i64 256), i64 %1056
  %1058 = load i8, ptr %1057, align 1, !tbaa !14
  %1059 = getelementptr inbounds i8, ptr %56, i64 %1034
  store i8 %1058, ptr %1059, align 1, !tbaa !14
  %1060 = load i8, ptr %1035, align 1, !tbaa !14
  %1061 = zext i8 %1060 to i64
  %1062 = load i8, ptr %1052, align 1, !tbaa !14
  %1063 = zext i8 %1062 to i64
  %1064 = sub nsw i64 %1061, %1063
  %1065 = getelementptr inbounds i8, ptr getelementptr inbounds (i8, ptr @r_to_v, i64 256), i64 %1064
  %1066 = load i8, ptr %1065, align 1, !tbaa !14
  %1067 = getelementptr inbounds i8, ptr %59, i64 %1034
  store i8 %1066, ptr %1067, align 1, !tbaa !14
  %1068 = or disjoint i32 %.0.lcssa, %.sink3182
  br label %.sink.split.sink.split

.sink.split.sink.split:                           ; preds = %.sink.split.sink.split.sink.split, %611
  %.0.lcssa.sink3181 = phi i32 [ %.0.lcssa, %611 ], [ %1068, %.sink.split.sink.split.sink.split ]
  %.sink = phi i32 [ 1, %611 ], [ %.sink.ph, %.sink.split.sink.split.sink.split ]
  %1069 = zext nneg i32 %.0.lcssa.sink3181 to i64
  %1070 = getelementptr inbounds i8, ptr %50, i64 %1069
  %1071 = load i8, ptr %1070, align 1, !tbaa !14
  %1072 = zext i8 %1071 to i64
  %1073 = getelementptr inbounds [256 x i8], ptr @r_to_y, i64 0, i64 %1072
  %1074 = load i8, ptr %1073, align 1, !tbaa !14
  %1075 = getelementptr inbounds i8, ptr %47, i64 %1069
  %1076 = load i8, ptr %1075, align 1, !tbaa !14
  %1077 = zext i8 %1076 to i64
  %1078 = getelementptr inbounds [256 x i8], ptr @g_to_y, i64 0, i64 %1077
  %1079 = load i8, ptr %1078, align 1, !tbaa !14
  %1080 = add i8 %1079, %1074
  %1081 = getelementptr inbounds i8, ptr %44, i64 %1069
  %1082 = load i8, ptr %1081, align 1, !tbaa !14
  %1083 = zext i8 %1082 to i64
  %1084 = getelementptr inbounds [256 x i8], ptr @b_to_y, i64 0, i64 %1083
  %1085 = load i8, ptr %1084, align 1, !tbaa !14
  %1086 = add i8 %1080, %1085
  %1087 = getelementptr inbounds i8, ptr %53, i64 %1069
  store i8 %1086, ptr %1087, align 1, !tbaa !14
  %1088 = load i8, ptr %1081, align 1, !tbaa !14
  %1089 = zext i8 %1088 to i64
  %1090 = zext i8 %1086 to i64
  %1091 = sub nsw i64 %1089, %1090
  %1092 = getelementptr inbounds i8, ptr getelementptr inbounds (i8, ptr @b_to_u, i64 256), i64 %1091
  %1093 = load i8, ptr %1092, align 1, !tbaa !14
  %1094 = getelementptr inbounds i8, ptr %56, i64 %1069
  store i8 %1093, ptr %1094, align 1, !tbaa !14
  %1095 = load i8, ptr %1070, align 1, !tbaa !14
  %1096 = zext i8 %1095 to i64
  %1097 = load i8, ptr %1087, align 1, !tbaa !14
  %1098 = zext i8 %1097 to i64
  %1099 = sub nsw i64 %1096, %1098
  %1100 = getelementptr inbounds i8, ptr getelementptr inbounds (i8, ptr @r_to_v, i64 256), i64 %1099
  %1101 = load i8, ptr %1100, align 1, !tbaa !14
  %1102 = getelementptr inbounds i8, ptr %59, i64 %1069
  store i8 %1101, ptr %1102, align 1, !tbaa !14
  %1103 = or disjoint i32 %.0.lcssa, %.sink
  br label %.sink.split

.sink.split:                                      ; preds = %.sink.split.sink.split, %611
  %.0.lcssa.sink = phi i32 [ %.0.lcssa, %611 ], [ %1103, %.sink.split.sink.split ]
  %1104 = zext nneg i32 %.0.lcssa.sink to i64
  %1105 = getelementptr inbounds i8, ptr %50, i64 %1104
  %1106 = load i8, ptr %1105, align 1, !tbaa !14
  %1107 = zext i8 %1106 to i64
  %1108 = getelementptr inbounds [256 x i8], ptr @r_to_y, i64 0, i64 %1107
  %1109 = load i8, ptr %1108, align 1, !tbaa !14
  %1110 = getelementptr inbounds i8, ptr %47, i64 %1104
  %1111 = load i8, ptr %1110, align 1, !tbaa !14
  %1112 = zext i8 %1111 to i64
  %1113 = getelementptr inbounds [256 x i8], ptr @g_to_y, i64 0, i64 %1112
  %1114 = load i8, ptr %1113, align 1, !tbaa !14
  %1115 = add i8 %1114, %1109
  %1116 = getelementptr inbounds i8, ptr %44, i64 %1104
  %1117 = load i8, ptr %1116, align 1, !tbaa !14
  %1118 = zext i8 %1117 to i64
  %1119 = getelementptr inbounds [256 x i8], ptr @b_to_y, i64 0, i64 %1118
  %1120 = load i8, ptr %1119, align 1, !tbaa !14
  %1121 = add i8 %1115, %1120
  %1122 = getelementptr inbounds i8, ptr %53, i64 %1104
  store i8 %1121, ptr %1122, align 1, !tbaa !14
  %1123 = load i8, ptr %1116, align 1, !tbaa !14
  %1124 = zext i8 %1123 to i64
  %1125 = zext i8 %1121 to i64
  %1126 = sub nsw i64 %1124, %1125
  %1127 = getelementptr inbounds i8, ptr getelementptr inbounds (i8, ptr @b_to_u, i64 256), i64 %1126
  %1128 = load i8, ptr %1127, align 1, !tbaa !14
  %1129 = getelementptr inbounds i8, ptr %56, i64 %1104
  store i8 %1128, ptr %1129, align 1, !tbaa !14
  %1130 = load i8, ptr %1105, align 1, !tbaa !14
  %1131 = zext i8 %1130 to i64
  %1132 = load i8, ptr %1122, align 1, !tbaa !14
  %1133 = zext i8 %1132 to i64
  %1134 = sub nsw i64 %1131, %1133
  %1135 = getelementptr inbounds i8, ptr getelementptr inbounds (i8, ptr @r_to_v, i64 256), i64 %1134
  %1136 = load i8, ptr %1135, align 1, !tbaa !14
  %1137 = getelementptr inbounds i8, ptr %59, i64 %1104
  store i8 %1136, ptr %1137, align 1, !tbaa !14
  br label %1138

1138:                                             ; preds = %.sink.split, %611, %._crit_edge
  %indvars.iv.next3102 = add nuw nsw i64 %indvars.iv3101, 1
  %1139 = load i32, ptr %31, align 4, !tbaa !11
  %1140 = sext i32 %1139 to i64
  %1141 = icmp slt i64 %indvars.iv.next3102, %1140
  br i1 %1141, label %41, label %._crit_edge3097, !llvm.loop !17

._crit_edge3097:                                  ; preds = %1138, %30
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %3) #3
  store i32 5, ptr %3, align 4, !tbaa !18
  %1142 = call ptr @m_PropertyWrite(ptr noundef nonnull %spec.select, ptr noundef nonnull @.str.3, ptr noundef nonnull %3, i32 noundef 4) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %3) #3
  ret void
}

attributes #0 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #1 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #2 = { nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { 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 = !{!10, !10, i64 0}
!14 = !{!8, !8, i64 0}
!15 = distinct !{!15, !16}
!16 = !{!"llvm.loop.mustprogress"}
!17 = distinct !{!17, !16}
!18 = !{!7, !7, i64 0}


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