; LLVM IR from mkazhdan/DMG :: Util/TIFF (tif_aux)

; 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.tiff = type { ptr, i32, i32, i32, i32, i32, ptr, i16, %struct.TIFFDirectory, %struct.TIFFHeader, ptr, ptr, i32, i16, i32, i32, i32, i16, i32, i32, i32, i32, i32, ptr, ptr, ptr, i32, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, i32, i32, ptr, i32, ptr, i32, ptr, i32, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, i64, ptr, %struct.TIFFTagMethods, ptr }
%struct.TIFFDirectory = type { [4 x i64], i32, i32, i32, i32, i32, i32, i32, i16, i16, i16, i16, i16, i16, i16, i16, i32, i16, i16, double, double, float, float, i16, i16, float, float, [2 x i16], [3 x ptr], [2 x i16], i16, ptr, i32, i32, ptr, ptr, i32, i16, ptr, [2 x i16], i16, [3 x ptr], i32, ptr, i32, ptr }
%struct.TIFFHeader = type { i16, i16, i32 }
%struct.TIFFTagMethods = type { ptr, ptr, ptr }
%struct.__va_list_tag = type { i32, i32, ptr, ptr }
%struct.TIFFPredictorState = type { i32, i32, i32, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr }

@TIFFVGetFieldDefaulted.ycbcrcoeffs = external hidden global [3 x float], align 4
@TIFFVGetFieldDefaulted.whitepoint = external hidden global [2 x float], align 4
@.str.1 = external hidden unnamed_addr constant [36 x i8], align 1
@TIFFVGetFieldDefaulted.ycbcr_refblackwhite = external hidden global [6 x float], align 16
@TIFFVGetFieldDefaulted.rgb_refblackwhite = external hidden global [6 x float], align 16

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

declare void @TIFFErrorExt(ptr noundef, ptr noundef, ptr noundef, ...) #1

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

; Function Attrs: nounwind uwtable
define dso_local i32 @TIFFVGetFieldDefaulted(ptr noundef %0, i32 noundef %1, ptr noundef %2) #2 {
  %4 = alloca i32, align 4
  %5 = alloca ptr, align 8
  %6 = alloca i32, align 4
  %7 = alloca ptr, align 8
  %8 = alloca ptr, align 8
  %9 = alloca i32, align 4
  %10 = alloca ptr, align 8
  %11 = alloca i32, align 4
  store ptr %0, ptr %5, align 8, !tbaa !5
  store i32 %1, ptr %6, align 4, !tbaa !9
  store ptr %2, ptr %7, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %8) #3
  %12 = load ptr, ptr %5, align 8, !tbaa !5
  %13 = getelementptr inbounds %struct.tiff, ptr %12, i32 0, i32 8
  store ptr %13, ptr %8, align 8, !tbaa !5
  %14 = load ptr, ptr %5, align 8, !tbaa !5
  %15 = load i32, ptr %6, align 4, !tbaa !9
  %16 = load ptr, ptr %7, align 8, !tbaa !5
  %17 = call i32 @TIFFVGetField(ptr noundef %14, i32 noundef %15, ptr noundef %16)
  %18 = icmp ne i32 %17, 0
  br i1 %18, label %19, label %20

19:                                               ; preds = %3
  store i32 1, ptr %4, align 4
  store i32 1, ptr %9, align 4
  br label %749

20:                                               ; preds = %3
  %21 = load i32, ptr %6, align 4, !tbaa !9
  switch i32 %21, label %748 [
    i32 254, label %22
    i32 258, label %42
    i32 263, label %62
    i32 266, label %82
    i32 274, label %102
    i32 277, label %122
    i32 278, label %142
    i32 280, label %162
    i32 281, label %182
    i32 284, label %202
    i32 296, label %222
    i32 317, label %242
    i32 336, label %266
    i32 332, label %306
    i32 334, label %323
    i32 338, label %340
    i32 32995, label %379
    i32 32998, label %413
    i32 32996, label %433
    i32 339, label %456
    i32 32997, label %476
    i32 529, label %496
    i32 530, label %513
    i32 531, label %554
    i32 318, label %574
    i32 301, label %591
    i32 532, label %681
  ]

22:                                               ; preds = %20
  %23 = load ptr, ptr %8, align 8, !tbaa !5
  %24 = getelementptr inbounds %struct.TIFFDirectory, ptr %23, i32 0, i32 7
  %25 = load i32, ptr %24, align 8, !tbaa !11
  %26 = load ptr, ptr %7, align 8, !tbaa !5
  %27 = getelementptr inbounds %struct.__va_list_tag, ptr %26, i32 0, i32 0
  %28 = load i32, ptr %27, align 8
  %29 = icmp ule i32 %28, 40
  br i1 %29, label %30, label %35

30:                                               ; preds = %22
  %31 = getelementptr inbounds %struct.__va_list_tag, ptr %26, i32 0, i32 3
  %32 = load ptr, ptr %31, align 8
  %33 = getelementptr i8, ptr %32, i32 %28
  %34 = add i32 %28, 8
  store i32 %34, ptr %27, align 8
  br label %39

35:                                               ; preds = %22
  %36 = getelementptr inbounds %struct.__va_list_tag, ptr %26, i32 0, i32 2
  %37 = load ptr, ptr %36, align 8
  %38 = getelementptr i8, ptr %37, i32 8
  store ptr %38, ptr %36, align 8
  br label %39

39:                                               ; preds = %35, %30
  %40 = phi ptr [ %33, %30 ], [ %37, %35 ]
  %41 = load ptr, ptr %40, align 8, !tbaa !5
  store i32 %25, ptr %41, align 4, !tbaa !9
  store i32 1, ptr %4, align 4
  store i32 1, ptr %9, align 4
  br label %749

42:                                               ; preds = %20
  %43 = load ptr, ptr %8, align 8, !tbaa !5
  %44 = getelementptr inbounds %struct.TIFFDirectory, ptr %43, i32 0, i32 8
  %45 = load i16, ptr %44, align 4, !tbaa !16
  %46 = load ptr, ptr %7, align 8, !tbaa !5
  %47 = getelementptr inbounds %struct.__va_list_tag, ptr %46, i32 0, i32 0
  %48 = load i32, ptr %47, align 8
  %49 = icmp ule i32 %48, 40
  br i1 %49, label %50, label %55

50:                                               ; preds = %42
  %51 = getelementptr inbounds %struct.__va_list_tag, ptr %46, i32 0, i32 3
  %52 = load ptr, ptr %51, align 8
  %53 = getelementptr i8, ptr %52, i32 %48
  %54 = add i32 %48, 8
  store i32 %54, ptr %47, align 8
  br label %59

55:                                               ; preds = %42
  %56 = getelementptr inbounds %struct.__va_list_tag, ptr %46, i32 0, i32 2
  %57 = load ptr, ptr %56, align 8
  %58 = getelementptr i8, ptr %57, i32 8
  store ptr %58, ptr %56, align 8
  br label %59

59:                                               ; preds = %55, %50
  %60 = phi ptr [ %53, %50 ], [ %57, %55 ]
  %61 = load ptr, ptr %60, align 8, !tbaa !5
  store i16 %45, ptr %61, align 2, !tbaa !17
  store i32 1, ptr %4, align 4
  store i32 1, ptr %9, align 4
  br label %749

62:                                               ; preds = %20
  %63 = load ptr, ptr %8, align 8, !tbaa !5
  %64 = getelementptr inbounds %struct.TIFFDirectory, ptr %63, i32 0, i32 12
  %65 = load i16, ptr %64, align 4, !tbaa !18
  %66 = load ptr, ptr %7, align 8, !tbaa !5
  %67 = getelementptr inbounds %struct.__va_list_tag, ptr %66, i32 0, i32 0
  %68 = load i32, ptr %67, align 8
  %69 = icmp ule i32 %68, 40
  br i1 %69, label %70, label %75

70:                                               ; preds = %62
  %71 = getelementptr inbounds %struct.__va_list_tag, ptr %66, i32 0, i32 3
  %72 = load ptr, ptr %71, align 8
  %73 = getelementptr i8, ptr %72, i32 %68
  %74 = add i32 %68, 8
  store i32 %74, ptr %67, align 8
  br label %79

75:                                               ; preds = %62
  %76 = getelementptr inbounds %struct.__va_list_tag, ptr %66, i32 0, i32 2
  %77 = load ptr, ptr %76, align 8
  %78 = getelementptr i8, ptr %77, i32 8
  store ptr %78, ptr %76, align 8
  br label %79

79:                                               ; preds = %75, %70
  %80 = phi ptr [ %73, %70 ], [ %77, %75 ]
  %81 = load ptr, ptr %80, align 8, !tbaa !5
  store i16 %65, ptr %81, align 2, !tbaa !17
  store i32 1, ptr %4, align 4
  store i32 1, ptr %9, align 4
  br label %749

82:                                               ; preds = %20
  %83 = load ptr, ptr %8, align 8, !tbaa !5
  %84 = getelementptr inbounds %struct.TIFFDirectory, ptr %83, i32 0, i32 13
  %85 = load i16, ptr %84, align 2, !tbaa !19
  %86 = load ptr, ptr %7, align 8, !tbaa !5
  %87 = getelementptr inbounds %struct.__va_list_tag, ptr %86, i32 0, i32 0
  %88 = load i32, ptr %87, align 8
  %89 = icmp ule i32 %88, 40
  br i1 %89, label %90, label %95

90:                                               ; preds = %82
  %91 = getelementptr inbounds %struct.__va_list_tag, ptr %86, i32 0, i32 3
  %92 = load ptr, ptr %91, align 8
  %93 = getelementptr i8, ptr %92, i32 %88
  %94 = add i32 %88, 8
  store i32 %94, ptr %87, align 8
  br label %99

95:                                               ; preds = %82
  %96 = getelementptr inbounds %struct.__va_list_tag, ptr %86, i32 0, i32 2
  %97 = load ptr, ptr %96, align 8
  %98 = getelementptr i8, ptr %97, i32 8
  store ptr %98, ptr %96, align 8
  br label %99

99:                                               ; preds = %95, %90
  %100 = phi ptr [ %93, %90 ], [ %97, %95 ]
  %101 = load ptr, ptr %100, align 8, !tbaa !5
  store i16 %85, ptr %101, align 2, !tbaa !17
  store i32 1, ptr %4, align 4
  store i32 1, ptr %9, align 4
  br label %749

102:                                              ; preds = %20
  %103 = load ptr, ptr %8, align 8, !tbaa !5
  %104 = getelementptr inbounds %struct.TIFFDirectory, ptr %103, i32 0, i32 14
  %105 = load i16, ptr %104, align 8, !tbaa !20
  %106 = load ptr, ptr %7, align 8, !tbaa !5
  %107 = getelementptr inbounds %struct.__va_list_tag, ptr %106, i32 0, i32 0
  %108 = load i32, ptr %107, align 8
  %109 = icmp ule i32 %108, 40
  br i1 %109, label %110, label %115

110:                                              ; preds = %102
  %111 = getelementptr inbounds %struct.__va_list_tag, ptr %106, i32 0, i32 3
  %112 = load ptr, ptr %111, align 8
  %113 = getelementptr i8, ptr %112, i32 %108
  %114 = add i32 %108, 8
  store i32 %114, ptr %107, align 8
  br label %119

115:                                              ; preds = %102
  %116 = getelementptr inbounds %struct.__va_list_tag, ptr %106, i32 0, i32 2
  %117 = load ptr, ptr %116, align 8
  %118 = getelementptr i8, ptr %117, i32 8
  store ptr %118, ptr %116, align 8
  br label %119

119:                                              ; preds = %115, %110
  %120 = phi ptr [ %113, %110 ], [ %117, %115 ]
  %121 = load ptr, ptr %120, align 8, !tbaa !5
  store i16 %105, ptr %121, align 2, !tbaa !17
  store i32 1, ptr %4, align 4
  store i32 1, ptr %9, align 4
  br label %749

122:                                              ; preds = %20
  %123 = load ptr, ptr %8, align 8, !tbaa !5
  %124 = getelementptr inbounds %struct.TIFFDirectory, ptr %123, i32 0, i32 15
  %125 = load i16, ptr %124, align 2, !tbaa !21
  %126 = load ptr, ptr %7, align 8, !tbaa !5
  %127 = getelementptr inbounds %struct.__va_list_tag, ptr %126, i32 0, i32 0
  %128 = load i32, ptr %127, align 8
  %129 = icmp ule i32 %128, 40
  br i1 %129, label %130, label %135

130:                                              ; preds = %122
  %131 = getelementptr inbounds %struct.__va_list_tag, ptr %126, i32 0, i32 3
  %132 = load ptr, ptr %131, align 8
  %133 = getelementptr i8, ptr %132, i32 %128
  %134 = add i32 %128, 8
  store i32 %134, ptr %127, align 8
  br label %139

135:                                              ; preds = %122
  %136 = getelementptr inbounds %struct.__va_list_tag, ptr %126, i32 0, i32 2
  %137 = load ptr, ptr %136, align 8
  %138 = getelementptr i8, ptr %137, i32 8
  store ptr %138, ptr %136, align 8
  br label %139

139:                                              ; preds = %135, %130
  %140 = phi ptr [ %133, %130 ], [ %137, %135 ]
  %141 = load ptr, ptr %140, align 8, !tbaa !5
  store i16 %125, ptr %141, align 2, !tbaa !17
  store i32 1, ptr %4, align 4
  store i32 1, ptr %9, align 4
  br label %749

142:                                              ; preds = %20
  %143 = load ptr, ptr %8, align 8, !tbaa !5
  %144 = getelementptr inbounds %struct.TIFFDirectory, ptr %143, i32 0, i32 16
  %145 = load i32, ptr %144, align 4, !tbaa !22
  %146 = load ptr, ptr %7, align 8, !tbaa !5
  %147 = getelementptr inbounds %struct.__va_list_tag, ptr %146, i32 0, i32 0
  %148 = load i32, ptr %147, align 8
  %149 = icmp ule i32 %148, 40
  br i1 %149, label %150, label %155

150:                                              ; preds = %142
  %151 = getelementptr inbounds %struct.__va_list_tag, ptr %146, i32 0, i32 3
  %152 = load ptr, ptr %151, align 8
  %153 = getelementptr i8, ptr %152, i32 %148
  %154 = add i32 %148, 8
  store i32 %154, ptr %147, align 8
  br label %159

155:                                              ; preds = %142
  %156 = getelementptr inbounds %struct.__va_list_tag, ptr %146, i32 0, i32 2
  %157 = load ptr, ptr %156, align 8
  %158 = getelementptr i8, ptr %157, i32 8
  store ptr %158, ptr %156, align 8
  br label %159

159:                                              ; preds = %155, %150
  %160 = phi ptr [ %153, %150 ], [ %157, %155 ]
  %161 = load ptr, ptr %160, align 8, !tbaa !5
  store i32 %145, ptr %161, align 4, !tbaa !9
  store i32 1, ptr %4, align 4
  store i32 1, ptr %9, align 4
  br label %749

162:                                              ; preds = %20
  %163 = load ptr, ptr %8, align 8, !tbaa !5
  %164 = getelementptr inbounds %struct.TIFFDirectory, ptr %163, i32 0, i32 17
  %165 = load i16, ptr %164, align 8, !tbaa !23
  %166 = load ptr, ptr %7, align 8, !tbaa !5
  %167 = getelementptr inbounds %struct.__va_list_tag, ptr %166, i32 0, i32 0
  %168 = load i32, ptr %167, align 8
  %169 = icmp ule i32 %168, 40
  br i1 %169, label %170, label %175

170:                                              ; preds = %162
  %171 = getelementptr inbounds %struct.__va_list_tag, ptr %166, i32 0, i32 3
  %172 = load ptr, ptr %171, align 8
  %173 = getelementptr i8, ptr %172, i32 %168
  %174 = add i32 %168, 8
  store i32 %174, ptr %167, align 8
  br label %179

175:                                              ; preds = %162
  %176 = getelementptr inbounds %struct.__va_list_tag, ptr %166, i32 0, i32 2
  %177 = load ptr, ptr %176, align 8
  %178 = getelementptr i8, ptr %177, i32 8
  store ptr %178, ptr %176, align 8
  br label %179

179:                                              ; preds = %175, %170
  %180 = phi ptr [ %173, %170 ], [ %177, %175 ]
  %181 = load ptr, ptr %180, align 8, !tbaa !5
  store i16 %165, ptr %181, align 2, !tbaa !17
  store i32 1, ptr %4, align 4
  store i32 1, ptr %9, align 4
  br label %749

182:                                              ; preds = %20
  %183 = load ptr, ptr %8, align 8, !tbaa !5
  %184 = getelementptr inbounds %struct.TIFFDirectory, ptr %183, i32 0, i32 18
  %185 = load i16, ptr %184, align 2, !tbaa !24
  %186 = load ptr, ptr %7, align 8, !tbaa !5
  %187 = getelementptr inbounds %struct.__va_list_tag, ptr %186, i32 0, i32 0
  %188 = load i32, ptr %187, align 8
  %189 = icmp ule i32 %188, 40
  br i1 %189, label %190, label %195

190:                                              ; preds = %182
  %191 = getelementptr inbounds %struct.__va_list_tag, ptr %186, i32 0, i32 3
  %192 = load ptr, ptr %191, align 8
  %193 = getelementptr i8, ptr %192, i32 %188
  %194 = add i32 %188, 8
  store i32 %194, ptr %187, align 8
  br label %199

195:                                              ; preds = %182
  %196 = getelementptr inbounds %struct.__va_list_tag, ptr %186, i32 0, i32 2
  %197 = load ptr, ptr %196, align 8
  %198 = getelementptr i8, ptr %197, i32 8
  store ptr %198, ptr %196, align 8
  br label %199

199:                                              ; preds = %195, %190
  %200 = phi ptr [ %193, %190 ], [ %197, %195 ]
  %201 = load ptr, ptr %200, align 8, !tbaa !5
  store i16 %185, ptr %201, align 2, !tbaa !17
  store i32 1, ptr %4, align 4
  store i32 1, ptr %9, align 4
  br label %749

202:                                              ; preds = %20
  %203 = load ptr, ptr %8, align 8, !tbaa !5
  %204 = getelementptr inbounds %struct.TIFFDirectory, ptr %203, i32 0, i32 24
  %205 = load i16, ptr %204, align 2, !tbaa !25
  %206 = load ptr, ptr %7, align 8, !tbaa !5
  %207 = getelementptr inbounds %struct.__va_list_tag, ptr %206, i32 0, i32 0
  %208 = load i32, ptr %207, align 8
  %209 = icmp ule i32 %208, 40
  br i1 %209, label %210, label %215

210:                                              ; preds = %202
  %211 = getelementptr inbounds %struct.__va_list_tag, ptr %206, i32 0, i32 3
  %212 = load ptr, ptr %211, align 8
  %213 = getelementptr i8, ptr %212, i32 %208
  %214 = add i32 %208, 8
  store i32 %214, ptr %207, align 8
  br label %219

215:                                              ; preds = %202
  %216 = getelementptr inbounds %struct.__va_list_tag, ptr %206, i32 0, i32 2
  %217 = load ptr, ptr %216, align 8
  %218 = getelementptr i8, ptr %217, i32 8
  store ptr %218, ptr %216, align 8
  br label %219

219:                                              ; preds = %215, %210
  %220 = phi ptr [ %213, %210 ], [ %217, %215 ]
  %221 = load ptr, ptr %220, align 8, !tbaa !5
  store i16 %205, ptr %221, align 2, !tbaa !17
  store i32 1, ptr %4, align 4
  store i32 1, ptr %9, align 4
  br label %749

222:                                              ; preds = %20
  %223 = load ptr, ptr %8, align 8, !tbaa !5
  %224 = getelementptr inbounds %struct.TIFFDirectory, ptr %223, i32 0, i32 23
  %225 = load i16, ptr %224, align 8, !tbaa !26
  %226 = load ptr, ptr %7, align 8, !tbaa !5
  %227 = getelementptr inbounds %struct.__va_list_tag, ptr %226, i32 0, i32 0
  %228 = load i32, ptr %227, align 8
  %229 = icmp ule i32 %228, 40
  br i1 %229, label %230, label %235

230:                                              ; preds = %222
  %231 = getelementptr inbounds %struct.__va_list_tag, ptr %226, i32 0, i32 3
  %232 = load ptr, ptr %231, align 8
  %233 = getelementptr i8, ptr %232, i32 %228
  %234 = add i32 %228, 8
  store i32 %234, ptr %227, align 8
  br label %239

235:                                              ; preds = %222
  %236 = getelementptr inbounds %struct.__va_list_tag, ptr %226, i32 0, i32 2
  %237 = load ptr, ptr %236, align 8
  %238 = getelementptr i8, ptr %237, i32 8
  store ptr %238, ptr %236, align 8
  br label %239

239:                                              ; preds = %235, %230
  %240 = phi ptr [ %233, %230 ], [ %237, %235 ]
  %241 = load ptr, ptr %240, align 8, !tbaa !5
  store i16 %225, ptr %241, align 2, !tbaa !17
  store i32 1, ptr %4, align 4
  store i32 1, ptr %9, align 4
  br label %749

242:                                              ; preds = %20
  call void @llvm.lifetime.start.p0(i64 8, ptr %10) #3
  %243 = load ptr, ptr %5, align 8, !tbaa !5
  %244 = getelementptr inbounds %struct.tiff, ptr %243, i32 0, i32 40
  %245 = load ptr, ptr %244, align 8, !tbaa !27
  store ptr %245, ptr %10, align 8, !tbaa !5
  %246 = load ptr, ptr %10, align 8, !tbaa !5
  %247 = getelementptr inbounds %struct.TIFFPredictorState, ptr %246, i32 0, i32 0
  %248 = load i32, ptr %247, align 8, !tbaa !32
  %249 = trunc i32 %248 to i16
  %250 = load ptr, ptr %7, align 8, !tbaa !5
  %251 = getelementptr inbounds %struct.__va_list_tag, ptr %250, i32 0, i32 0
  %252 = load i32, ptr %251, align 8
  %253 = icmp ule i32 %252, 40
  br i1 %253, label %254, label %259

254:                                              ; preds = %242
  %255 = getelementptr inbounds %struct.__va_list_tag, ptr %250, i32 0, i32 3
  %256 = load ptr, ptr %255, align 8
  %257 = getelementptr i8, ptr %256, i32 %252
  %258 = add i32 %252, 8
  store i32 %258, ptr %251, align 8
  br label %263

259:                                              ; preds = %242
  %260 = getelementptr inbounds %struct.__va_list_tag, ptr %250, i32 0, i32 2
  %261 = load ptr, ptr %260, align 8
  %262 = getelementptr i8, ptr %261, i32 8
  store ptr %262, ptr %260, align 8
  br label %263

263:                                              ; preds = %259, %254
  %264 = phi ptr [ %257, %254 ], [ %261, %259 ]
  %265 = load ptr, ptr %264, align 8, !tbaa !5
  store i16 %249, ptr %265, align 2, !tbaa !17
  store i32 1, ptr %4, align 4
  store i32 1, ptr %9, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %10) #3
  br label %749

266:                                              ; preds = %20
  %267 = load ptr, ptr %7, align 8, !tbaa !5
  %268 = getelementptr inbounds %struct.__va_list_tag, ptr %267, i32 0, i32 0
  %269 = load i32, ptr %268, align 8
  %270 = icmp ule i32 %269, 40
  br i1 %270, label %271, label %276

271:                                              ; preds = %266
  %272 = getelementptr inbounds %struct.__va_list_tag, ptr %267, i32 0, i32 3
  %273 = load ptr, ptr %272, align 8
  %274 = getelementptr i8, ptr %273, i32 %269
  %275 = add i32 %269, 8
  store i32 %275, ptr %268, align 8
  br label %280

276:                                              ; preds = %266
  %277 = getelementptr inbounds %struct.__va_list_tag, ptr %267, i32 0, i32 2
  %278 = load ptr, ptr %277, align 8
  %279 = getelementptr i8, ptr %278, i32 8
  store ptr %279, ptr %277, align 8
  br label %280

280:                                              ; preds = %276, %271
  %281 = phi ptr [ %274, %271 ], [ %278, %276 ]
  %282 = load ptr, ptr %281, align 8, !tbaa !5
  store i16 0, ptr %282, align 2, !tbaa !17
  %283 = load ptr, ptr %8, align 8, !tbaa !5
  %284 = getelementptr inbounds %struct.TIFFDirectory, ptr %283, i32 0, i32 8
  %285 = load i16, ptr %284, align 4, !tbaa !16
  %286 = zext i16 %285 to i32
  %287 = shl i32 1, %286
  %288 = sub nsw i32 %287, 1
  %289 = trunc i32 %288 to i16
  %290 = load ptr, ptr %7, align 8, !tbaa !5
  %291 = getelementptr inbounds %struct.__va_list_tag, ptr %290, i32 0, i32 0
  %292 = load i32, ptr %291, align 8
  %293 = icmp ule i32 %292, 40
  br i1 %293, label %294, label %299

294:                                              ; preds = %280
  %295 = getelementptr inbounds %struct.__va_list_tag, ptr %290, i32 0, i32 3
  %296 = load ptr, ptr %295, align 8
  %297 = getelementptr i8, ptr %296, i32 %292
  %298 = add i32 %292, 8
  store i32 %298, ptr %291, align 8
  br label %303

299:                                              ; preds = %280
  %300 = getelementptr inbounds %struct.__va_list_tag, ptr %290, i32 0, i32 2
  %301 = load ptr, ptr %300, align 8
  %302 = getelementptr i8, ptr %301, i32 8
  store ptr %302, ptr %300, align 8
  br label %303

303:                                              ; preds = %299, %294
  %304 = phi ptr [ %297, %294 ], [ %301, %299 ]
  %305 = load ptr, ptr %304, align 8, !tbaa !5
  store i16 %289, ptr %305, align 2, !tbaa !17
  store i32 1, ptr %4, align 4
  store i32 1, ptr %9, align 4
  br label %749

306:                                              ; preds = %20
  %307 = load ptr, ptr %7, align 8, !tbaa !5
  %308 = getelementptr inbounds %struct.__va_list_tag, ptr %307, i32 0, i32 0
  %309 = load i32, ptr %308, align 8
  %310 = icmp ule i32 %309, 40
  br i1 %310, label %311, label %316

311:                                              ; preds = %306
  %312 = getelementptr inbounds %struct.__va_list_tag, ptr %307, i32 0, i32 3
  %313 = load ptr, ptr %312, align 8
  %314 = getelementptr i8, ptr %313, i32 %309
  %315 = add i32 %309, 8
  store i32 %315, ptr %308, align 8
  br label %320

316:                                              ; preds = %306
  %317 = getelementptr inbounds %struct.__va_list_tag, ptr %307, i32 0, i32 2
  %318 = load ptr, ptr %317, align 8
  %319 = getelementptr i8, ptr %318, i32 8
  store ptr %319, ptr %317, align 8
  br label %320

320:                                              ; preds = %316, %311
  %321 = phi ptr [ %314, %311 ], [ %318, %316 ]
  %322 = load ptr, ptr %321, align 8, !tbaa !5
  store i16 1, ptr %322, align 2, !tbaa !17
  store i32 1, ptr %4, align 4
  store i32 1, ptr %9, align 4
  br label %749

323:                                              ; preds = %20
  %324 = load ptr, ptr %7, align 8, !tbaa !5
  %325 = getelementptr inbounds %struct.__va_list_tag, ptr %324, i32 0, i32 0
  %326 = load i32, ptr %325, align 8
  %327 = icmp ule i32 %326, 40
  br i1 %327, label %328, label %333

328:                                              ; preds = %323
  %329 = getelementptr inbounds %struct.__va_list_tag, ptr %324, i32 0, i32 3
  %330 = load ptr, ptr %329, align 8
  %331 = getelementptr i8, ptr %330, i32 %326
  %332 = add i32 %326, 8
  store i32 %332, ptr %325, align 8
  br label %337

333:                                              ; preds = %323
  %334 = getelementptr inbounds %struct.__va_list_tag, ptr %324, i32 0, i32 2
  %335 = load ptr, ptr %334, align 8
  %336 = getelementptr i8, ptr %335, i32 8
  store ptr %336, ptr %334, align 8
  br label %337

337:                                              ; preds = %333, %328
  %338 = phi ptr [ %331, %328 ], [ %335, %333 ]
  %339 = load ptr, ptr %338, align 8, !tbaa !5
  store i16 4, ptr %339, align 2, !tbaa !17
  store i32 1, ptr %4, align 4
  store i32 1, ptr %9, align 4
  br label %749

340:                                              ; preds = %20
  %341 = load ptr, ptr %8, align 8, !tbaa !5
  %342 = getelementptr inbounds %struct.TIFFDirectory, ptr %341, i32 0, i32 30
  %343 = load i16, ptr %342, align 4, !tbaa !34
  %344 = load ptr, ptr %7, align 8, !tbaa !5
  %345 = getelementptr inbounds %struct.__va_list_tag, ptr %344, i32 0, i32 0
  %346 = load i32, ptr %345, align 8
  %347 = icmp ule i32 %346, 40
  br i1 %347, label %348, label %353

348:                                              ; preds = %340
  %349 = getelementptr inbounds %struct.__va_list_tag, ptr %344, i32 0, i32 3
  %350 = load ptr, ptr %349, align 8
  %351 = getelementptr i8, ptr %350, i32 %346
  %352 = add i32 %346, 8
  store i32 %352, ptr %345, align 8
  br label %357

353:                                              ; preds = %340
  %354 = getelementptr inbounds %struct.__va_list_tag, ptr %344, i32 0, i32 2
  %355 = load ptr, ptr %354, align 8
  %356 = getelementptr i8, ptr %355, i32 8
  store ptr %356, ptr %354, align 8
  br label %357

357:                                              ; preds = %353, %348
  %358 = phi ptr [ %351, %348 ], [ %355, %353 ]
  %359 = load ptr, ptr %358, align 8, !tbaa !5
  store i16 %343, ptr %359, align 2, !tbaa !17
  %360 = load ptr, ptr %8, align 8, !tbaa !5
  %361 = getelementptr inbounds %struct.TIFFDirectory, ptr %360, i32 0, i32 31
  %362 = load ptr, ptr %361, align 8, !tbaa !35
  %363 = load ptr, ptr %7, align 8, !tbaa !5
  %364 = getelementptr inbounds %struct.__va_list_tag, ptr %363, i32 0, i32 0
  %365 = load i32, ptr %364, align 8
  %366 = icmp ule i32 %365, 40
  br i1 %366, label %367, label %372

367:                                              ; preds = %357
  %368 = getelementptr inbounds %struct.__va_list_tag, ptr %363, i32 0, i32 3
  %369 = load ptr, ptr %368, align 8
  %370 = getelementptr i8, ptr %369, i32 %365
  %371 = add i32 %365, 8
  store i32 %371, ptr %364, align 8
  br label %376

372:                                              ; preds = %357
  %373 = getelementptr inbounds %struct.__va_list_tag, ptr %363, i32 0, i32 2
  %374 = load ptr, ptr %373, align 8
  %375 = getelementptr i8, ptr %374, i32 8
  store ptr %375, ptr %373, align 8
  br label %376

376:                                              ; preds = %372, %367
  %377 = phi ptr [ %370, %367 ], [ %374, %372 ]
  %378 = load ptr, ptr %377, align 8, !tbaa !5
  store ptr %362, ptr %378, align 8, !tbaa !5
  store i32 1, ptr %4, align 4
  store i32 1, ptr %9, align 4
  br label %749

379:                                              ; preds = %20
  %380 = load ptr, ptr %8, align 8, !tbaa !5
  %381 = getelementptr inbounds %struct.TIFFDirectory, ptr %380, i32 0, i32 30
  %382 = load i16, ptr %381, align 4, !tbaa !34
  %383 = zext i16 %382 to i32
  %384 = icmp eq i32 %383, 1
  br i1 %384, label %385, label %393

385:                                              ; preds = %379
  %386 = load ptr, ptr %8, align 8, !tbaa !5
  %387 = getelementptr inbounds %struct.TIFFDirectory, ptr %386, i32 0, i32 31
  %388 = load ptr, ptr %387, align 8, !tbaa !35
  %389 = getelementptr inbounds i16, ptr %388, i64 0
  %390 = load i16, ptr %389, align 2, !tbaa !17
  %391 = zext i16 %390 to i32
  %392 = icmp eq i32 %391, 1
  br label %393

393:                                              ; preds = %385, %379
  %394 = phi i1 [ false, %379 ], [ %392, %385 ]
  %395 = zext i1 %394 to i32
  %396 = trunc i32 %395 to i16
  %397 = load ptr, ptr %7, align 8, !tbaa !5
  %398 = getelementptr inbounds %struct.__va_list_tag, ptr %397, i32 0, i32 0
  %399 = load i32, ptr %398, align 8
  %400 = icmp ule i32 %399, 40
  br i1 %400, label %401, label %406

401:                                              ; preds = %393
  %402 = getelementptr inbounds %struct.__va_list_tag, ptr %397, i32 0, i32 3
  %403 = load ptr, ptr %402, align 8
  %404 = getelementptr i8, ptr %403, i32 %399
  %405 = add i32 %399, 8
  store i32 %405, ptr %398, align 8
  br label %410

406:                                              ; preds = %393
  %407 = getelementptr inbounds %struct.__va_list_tag, ptr %397, i32 0, i32 2
  %408 = load ptr, ptr %407, align 8
  %409 = getelementptr i8, ptr %408, i32 8
  store ptr %409, ptr %407, align 8
  br label %410

410:                                              ; preds = %406, %401
  %411 = phi ptr [ %404, %401 ], [ %408, %406 ]
  %412 = load ptr, ptr %411, align 8, !tbaa !5
  store i16 %396, ptr %412, align 2, !tbaa !17
  store i32 1, ptr %4, align 4
  store i32 1, ptr %9, align 4
  br label %749

413:                                              ; preds = %20
  %414 = load ptr, ptr %8, align 8, !tbaa !5
  %415 = getelementptr inbounds %struct.TIFFDirectory, ptr %414, i32 0, i32 6
  %416 = load i32, ptr %415, align 4, !tbaa !36
  %417 = load ptr, ptr %7, align 8, !tbaa !5
  %418 = getelementptr inbounds %struct.__va_list_tag, ptr %417, i32 0, i32 0
  %419 = load i32, ptr %418, align 8
  %420 = icmp ule i32 %419, 40
  br i1 %420, label %421, label %426

421:                                              ; preds = %413
  %422 = getelementptr inbounds %struct.__va_list_tag, ptr %417, i32 0, i32 3
  %423 = load ptr, ptr %422, align 8
  %424 = getelementptr i8, ptr %423, i32 %419
  %425 = add i32 %419, 8
  store i32 %425, ptr %418, align 8
  br label %430

426:                                              ; preds = %413
  %427 = getelementptr inbounds %struct.__va_list_tag, ptr %417, i32 0, i32 2
  %428 = load ptr, ptr %427, align 8
  %429 = getelementptr i8, ptr %428, i32 8
  store ptr %429, ptr %427, align 8
  br label %430

430:                                              ; preds = %426, %421
  %431 = phi ptr [ %424, %421 ], [ %428, %426 ]
  %432 = load ptr, ptr %431, align 8, !tbaa !5
  store i32 %416, ptr %432, align 4, !tbaa !9
  store i32 1, ptr %4, align 4
  store i32 1, ptr %9, align 4
  br label %749

433:                                              ; preds = %20
  %434 = load ptr, ptr %8, align 8, !tbaa !5
  %435 = getelementptr inbounds %struct.TIFFDirectory, ptr %434, i32 0, i32 9
  %436 = load i16, ptr %435, align 2, !tbaa !37
  %437 = zext i16 %436 to i32
  %438 = sub nsw i32 %437, 1
  %439 = trunc i32 %438 to i16
  %440 = load ptr, ptr %7, align 8, !tbaa !5
  %441 = getelementptr inbounds %struct.__va_list_tag, ptr %440, i32 0, i32 0
  %442 = load i32, ptr %441, align 8
  %443 = icmp ule i32 %442, 40
  br i1 %443, label %444, label %449

444:                                              ; preds = %433
  %445 = getelementptr inbounds %struct.__va_list_tag, ptr %440, i32 0, i32 3
  %446 = load ptr, ptr %445, align 8
  %447 = getelementptr i8, ptr %446, i32 %442
  %448 = add i32 %442, 8
  store i32 %448, ptr %441, align 8
  br label %453

449:                                              ; preds = %433
  %450 = getelementptr inbounds %struct.__va_list_tag, ptr %440, i32 0, i32 2
  %451 = load ptr, ptr %450, align 8
  %452 = getelementptr i8, ptr %451, i32 8
  store ptr %452, ptr %450, align 8
  br label %453

453:                                              ; preds = %449, %444
  %454 = phi ptr [ %447, %444 ], [ %451, %449 ]
  %455 = load ptr, ptr %454, align 8, !tbaa !5
  store i16 %439, ptr %455, align 2, !tbaa !17
  store i32 1, ptr %4, align 4
  store i32 1, ptr %9, align 4
  br label %749

456:                                              ; preds = %20
  %457 = load ptr, ptr %8, align 8, !tbaa !5
  %458 = getelementptr inbounds %struct.TIFFDirectory, ptr %457, i32 0, i32 9
  %459 = load i16, ptr %458, align 2, !tbaa !37
  %460 = load ptr, ptr %7, align 8, !tbaa !5
  %461 = getelementptr inbounds %struct.__va_list_tag, ptr %460, i32 0, i32 0
  %462 = load i32, ptr %461, align 8
  %463 = icmp ule i32 %462, 40
  br i1 %463, label %464, label %469

464:                                              ; preds = %456
  %465 = getelementptr inbounds %struct.__va_list_tag, ptr %460, i32 0, i32 3
  %466 = load ptr, ptr %465, align 8
  %467 = getelementptr i8, ptr %466, i32 %462
  %468 = add i32 %462, 8
  store i32 %468, ptr %461, align 8
  br label %473

469:                                              ; preds = %456
  %470 = getelementptr inbounds %struct.__va_list_tag, ptr %460, i32 0, i32 2
  %471 = load ptr, ptr %470, align 8
  %472 = getelementptr i8, ptr %471, i32 8
  store ptr %472, ptr %470, align 8
  br label %473

473:                                              ; preds = %469, %464
  %474 = phi ptr [ %467, %464 ], [ %471, %469 ]
  %475 = load ptr, ptr %474, align 8, !tbaa !5
  store i16 %459, ptr %475, align 2, !tbaa !17
  store i32 1, ptr %4, align 4
  store i32 1, ptr %9, align 4
  br label %749

476:                                              ; preds = %20
  %477 = load ptr, ptr %8, align 8, !tbaa !5
  %478 = getelementptr inbounds %struct.TIFFDirectory, ptr %477, i32 0, i32 3
  %479 = load i32, ptr %478, align 8, !tbaa !38
  %480 = load ptr, ptr %7, align 8, !tbaa !5
  %481 = getelementptr inbounds %struct.__va_list_tag, ptr %480, i32 0, i32 0
  %482 = load i32, ptr %481, align 8
  %483 = icmp ule i32 %482, 40
  br i1 %483, label %484, label %489

484:                                              ; preds = %476
  %485 = getelementptr inbounds %struct.__va_list_tag, ptr %480, i32 0, i32 3
  %486 = load ptr, ptr %485, align 8
  %487 = getelementptr i8, ptr %486, i32 %482
  %488 = add i32 %482, 8
  store i32 %488, ptr %481, align 8
  br label %493

489:                                              ; preds = %476
  %490 = getelementptr inbounds %struct.__va_list_tag, ptr %480, i32 0, i32 2
  %491 = load ptr, ptr %490, align 8
  %492 = getelementptr i8, ptr %491, i32 8
  store ptr %492, ptr %490, align 8
  br label %493

493:                                              ; preds = %489, %484
  %494 = phi ptr [ %487, %484 ], [ %491, %489 ]
  %495 = load ptr, ptr %494, align 8, !tbaa !5
  store i32 %479, ptr %495, align 4, !tbaa !9
  store i32 1, ptr %4, align 4
  store i32 1, ptr %9, align 4
  br label %749

496:                                              ; preds = %20
  %497 = load ptr, ptr %7, align 8, !tbaa !5
  %498 = getelementptr inbounds %struct.__va_list_tag, ptr %497, i32 0, i32 0
  %499 = load i32, ptr %498, align 8
  %500 = icmp ule i32 %499, 40
  br i1 %500, label %501, label %506

501:                                              ; preds = %496
  %502 = getelementptr inbounds %struct.__va_list_tag, ptr %497, i32 0, i32 3
  %503 = load ptr, ptr %502, align 8
  %504 = getelementptr i8, ptr %503, i32 %499
  %505 = add i32 %499, 8
  store i32 %505, ptr %498, align 8
  br label %510

506:                                              ; preds = %496
  %507 = getelementptr inbounds %struct.__va_list_tag, ptr %497, i32 0, i32 2
  %508 = load ptr, ptr %507, align 8
  %509 = getelementptr i8, ptr %508, i32 8
  store ptr %509, ptr %507, align 8
  br label %510

510:                                              ; preds = %506, %501
  %511 = phi ptr [ %504, %501 ], [ %508, %506 ]
  %512 = load ptr, ptr %511, align 8, !tbaa !5
  store ptr @TIFFVGetFieldDefaulted.ycbcrcoeffs, ptr %512, align 8, !tbaa !5
  store i32 1, ptr %4, align 4
  store i32 1, ptr %9, align 4
  br label %749

513:                                              ; preds = %20
  %514 = load ptr, ptr %8, align 8, !tbaa !5
  %515 = getelementptr inbounds %struct.TIFFDirectory, ptr %514, i32 0, i32 39
  %516 = getelementptr inbounds [2 x i16], ptr %515, i64 0, i64 0
  %517 = load i16, ptr %516, align 8, !tbaa !17
  %518 = load ptr, ptr %7, align 8, !tbaa !5
  %519 = getelementptr inbounds %struct.__va_list_tag, ptr %518, i32 0, i32 0
  %520 = load i32, ptr %519, align 8
  %521 = icmp ule i32 %520, 40
  br i1 %521, label %522, label %527

522:                                              ; preds = %513
  %523 = getelementptr inbounds %struct.__va_list_tag, ptr %518, i32 0, i32 3
  %524 = load ptr, ptr %523, align 8
  %525 = getelementptr i8, ptr %524, i32 %520
  %526 = add i32 %520, 8
  store i32 %526, ptr %519, align 8
  br label %531

527:                                              ; preds = %513
  %528 = getelementptr inbounds %struct.__va_list_tag, ptr %518, i32 0, i32 2
  %529 = load ptr, ptr %528, align 8
  %530 = getelementptr i8, ptr %529, i32 8
  store ptr %530, ptr %528, align 8
  br label %531

531:                                              ; preds = %527, %522
  %532 = phi ptr [ %525, %522 ], [ %529, %527 ]
  %533 = load ptr, ptr %532, align 8, !tbaa !5
  store i16 %517, ptr %533, align 2, !tbaa !17
  %534 = load ptr, ptr %8, align 8, !tbaa !5
  %535 = getelementptr inbounds %struct.TIFFDirectory, ptr %534, i32 0, i32 39
  %536 = getelementptr inbounds [2 x i16], ptr %535, i64 0, i64 1
  %537 = load i16, ptr %536, align 2, !tbaa !17
  %538 = load ptr, ptr %7, align 8, !tbaa !5
  %539 = getelementptr inbounds %struct.__va_list_tag, ptr %538, i32 0, i32 0
  %540 = load i32, ptr %539, align 8
  %541 = icmp ule i32 %540, 40
  br i1 %541, label %542, label %547

542:                                              ; preds = %531
  %543 = getelementptr inbounds %struct.__va_list_tag, ptr %538, i32 0, i32 3
  %544 = load ptr, ptr %543, align 8
  %545 = getelementptr i8, ptr %544, i32 %540
  %546 = add i32 %540, 8
  store i32 %546, ptr %539, align 8
  br label %551

547:                                              ; preds = %531
  %548 = getelementptr inbounds %struct.__va_list_tag, ptr %538, i32 0, i32 2
  %549 = load ptr, ptr %548, align 8
  %550 = getelementptr i8, ptr %549, i32 8
  store ptr %550, ptr %548, align 8
  br label %551

551:                                              ; preds = %547, %542
  %552 = phi ptr [ %545, %542 ], [ %549, %547 ]
  %553 = load ptr, ptr %552, align 8, !tbaa !5
  store i16 %537, ptr %553, align 2, !tbaa !17
  store i32 1, ptr %4, align 4
  store i32 1, ptr %9, align 4
  br label %749

554:                                              ; preds = %20
  %555 = load ptr, ptr %8, align 8, !tbaa !5
  %556 = getelementptr inbounds %struct.TIFFDirectory, ptr %555, i32 0, i32 40
  %557 = load i16, ptr %556, align 4, !tbaa !39
  %558 = load ptr, ptr %7, align 8, !tbaa !5
  %559 = getelementptr inbounds %struct.__va_list_tag, ptr %558, i32 0, i32 0
  %560 = load i32, ptr %559, align 8
  %561 = icmp ule i32 %560, 40
  br i1 %561, label %562, label %567

562:                                              ; preds = %554
  %563 = getelementptr inbounds %struct.__va_list_tag, ptr %558, i32 0, i32 3
  %564 = load ptr, ptr %563, align 8
  %565 = getelementptr i8, ptr %564, i32 %560
  %566 = add i32 %560, 8
  store i32 %566, ptr %559, align 8
  br label %571

567:                                              ; preds = %554
  %568 = getelementptr inbounds %struct.__va_list_tag, ptr %558, i32 0, i32 2
  %569 = load ptr, ptr %568, align 8
  %570 = getelementptr i8, ptr %569, i32 8
  store ptr %570, ptr %568, align 8
  br label %571

571:                                              ; preds = %567, %562
  %572 = phi ptr [ %565, %562 ], [ %569, %567 ]
  %573 = load ptr, ptr %572, align 8, !tbaa !5
  store i16 %557, ptr %573, align 2, !tbaa !17
  store i32 1, ptr %4, align 4
  store i32 1, ptr %9, align 4
  br label %749

574:                                              ; preds = %20
  store float 0x3FD620A2C0000000, ptr @TIFFVGetFieldDefaulted.whitepoint, align 4, !tbaa !40
  store float 0x3FD6F2A780000000, ptr getelementptr inbounds ([2 x float], ptr @TIFFVGetFieldDefaulted.whitepoint, i64 0, i64 1), align 4, !tbaa !40
  %575 = load ptr, ptr %7, align 8, !tbaa !5
  %576 = getelementptr inbounds %struct.__va_list_tag, ptr %575, i32 0, i32 0
  %577 = load i32, ptr %576, align 8
  %578 = icmp ule i32 %577, 40
  br i1 %578, label %579, label %584

579:                                              ; preds = %574
  %580 = getelementptr inbounds %struct.__va_list_tag, ptr %575, i32 0, i32 3
  %581 = load ptr, ptr %580, align 8
  %582 = getelementptr i8, ptr %581, i32 %577
  %583 = add i32 %577, 8
  store i32 %583, ptr %576, align 8
  br label %588

584:                                              ; preds = %574
  %585 = getelementptr inbounds %struct.__va_list_tag, ptr %575, i32 0, i32 2
  %586 = load ptr, ptr %585, align 8
  %587 = getelementptr i8, ptr %586, i32 8
  store ptr %587, ptr %585, align 8
  br label %588

588:                                              ; preds = %584, %579
  %589 = phi ptr [ %582, %579 ], [ %586, %584 ]
  %590 = load ptr, ptr %589, align 8, !tbaa !5
  store ptr @TIFFVGetFieldDefaulted.whitepoint, ptr %590, align 8, !tbaa !5
  store i32 1, ptr %4, align 4
  store i32 1, ptr %9, align 4
  br label %749

591:                                              ; preds = %20
  %592 = load ptr, ptr %8, align 8, !tbaa !5
  %593 = getelementptr inbounds %struct.TIFFDirectory, ptr %592, i32 0, i32 41
  %594 = getelementptr inbounds [3 x ptr], ptr %593, i64 0, i64 0
  %595 = load ptr, ptr %594, align 8, !tbaa !5
  %596 = icmp ne ptr %595, null
  br i1 %596, label %608, label %597

597:                                              ; preds = %591
  %598 = load ptr, ptr %8, align 8, !tbaa !5
  %599 = call i32 @TIFFDefaultTransferFunction(ptr noundef %598)
  %600 = icmp ne i32 %599, 0
  br i1 %600, label %608, label %601

601:                                              ; preds = %597
  %602 = load ptr, ptr %5, align 8, !tbaa !5
  %603 = getelementptr inbounds %struct.tiff, ptr %602, i32 0, i32 51
  %604 = load ptr, ptr %603, align 8, !tbaa !41
  %605 = load ptr, ptr %5, align 8, !tbaa !5
  %606 = getelementptr inbounds %struct.tiff, ptr %605, i32 0, i32 0
  %607 = load ptr, ptr %606, align 8, !tbaa !42
  call void (ptr, ptr, ptr, ...) @TIFFErrorExt(ptr noundef %604, ptr noundef %607, ptr noundef @.str.1)
  store i32 0, ptr %4, align 4
  store i32 1, ptr %9, align 4
  br label %749

608:                                              ; preds = %597, %591
  %609 = load ptr, ptr %8, align 8, !tbaa !5
  %610 = getelementptr inbounds %struct.TIFFDirectory, ptr %609, i32 0, i32 41
  %611 = getelementptr inbounds [3 x ptr], ptr %610, i64 0, i64 0
  %612 = load ptr, ptr %611, align 8, !tbaa !5
  %613 = load ptr, ptr %7, align 8, !tbaa !5
  %614 = getelementptr inbounds %struct.__va_list_tag, ptr %613, i32 0, i32 0
  %615 = load i32, ptr %614, align 8
  %616 = icmp ule i32 %615, 40
  br i1 %616, label %617, label %622

617:                                              ; preds = %608
  %618 = getelementptr inbounds %struct.__va_list_tag, ptr %613, i32 0, i32 3
  %619 = load ptr, ptr %618, align 8
  %620 = getelementptr i8, ptr %619, i32 %615
  %621 = add i32 %615, 8
  store i32 %621, ptr %614, align 8
  br label %626

622:                                              ; preds = %608
  %623 = getelementptr inbounds %struct.__va_list_tag, ptr %613, i32 0, i32 2
  %624 = load ptr, ptr %623, align 8
  %625 = getelementptr i8, ptr %624, i32 8
  store ptr %625, ptr %623, align 8
  br label %626

626:                                              ; preds = %622, %617
  %627 = phi ptr [ %620, %617 ], [ %624, %622 ]
  %628 = load ptr, ptr %627, align 8, !tbaa !5
  store ptr %612, ptr %628, align 8, !tbaa !5
  %629 = load ptr, ptr %8, align 8, !tbaa !5
  %630 = getelementptr inbounds %struct.TIFFDirectory, ptr %629, i32 0, i32 15
  %631 = load i16, ptr %630, align 2, !tbaa !21
  %632 = zext i16 %631 to i32
  %633 = load ptr, ptr %8, align 8, !tbaa !5
  %634 = getelementptr inbounds %struct.TIFFDirectory, ptr %633, i32 0, i32 30
  %635 = load i16, ptr %634, align 4, !tbaa !34
  %636 = zext i16 %635 to i32
  %637 = sub nsw i32 %632, %636
  %638 = icmp sgt i32 %637, 1
  br i1 %638, label %639, label %680

639:                                              ; preds = %626
  %640 = load ptr, ptr %8, align 8, !tbaa !5
  %641 = getelementptr inbounds %struct.TIFFDirectory, ptr %640, i32 0, i32 41
  %642 = getelementptr inbounds [3 x ptr], ptr %641, i64 0, i64 1
  %643 = load ptr, ptr %642, align 8, !tbaa !5
  %644 = load ptr, ptr %7, align 8, !tbaa !5
  %645 = getelementptr inbounds %struct.__va_list_tag, ptr %644, i32 0, i32 0
  %646 = load i32, ptr %645, align 8
  %647 = icmp ule i32 %646, 40
  br i1 %647, label %648, label %653

648:                                              ; preds = %639
  %649 = getelementptr inbounds %struct.__va_list_tag, ptr %644, i32 0, i32 3
  %650 = load ptr, ptr %649, align 8
  %651 = getelementptr i8, ptr %650, i32 %646
  %652 = add i32 %646, 8
  store i32 %652, ptr %645, align 8
  br label %657

653:                                              ; preds = %639
  %654 = getelementptr inbounds %struct.__va_list_tag, ptr %644, i32 0, i32 2
  %655 = load ptr, ptr %654, align 8
  %656 = getelementptr i8, ptr %655, i32 8
  store ptr %656, ptr %654, align 8
  br label %657

657:                                              ; preds = %653, %648
  %658 = phi ptr [ %651, %648 ], [ %655, %653 ]
  %659 = load ptr, ptr %658, align 8, !tbaa !5
  store ptr %643, ptr %659, align 8, !tbaa !5
  %660 = load ptr, ptr %8, align 8, !tbaa !5
  %661 = getelementptr inbounds %struct.TIFFDirectory, ptr %660, i32 0, i32 41
  %662 = getelementptr inbounds [3 x ptr], ptr %661, i64 0, i64 2
  %663 = load ptr, ptr %662, align 8, !tbaa !5
  %664 = load ptr, ptr %7, align 8, !tbaa !5
  %665 = getelementptr inbounds %struct.__va_list_tag, ptr %664, i32 0, i32 0
  %666 = load i32, ptr %665, align 8
  %667 = icmp ule i32 %666, 40
  br i1 %667, label %668, label %673

668:                                              ; preds = %657
  %669 = getelementptr inbounds %struct.__va_list_tag, ptr %664, i32 0, i32 3
  %670 = load ptr, ptr %669, align 8
  %671 = getelementptr i8, ptr %670, i32 %666
  %672 = add i32 %666, 8
  store i32 %672, ptr %665, align 8
  br label %677

673:                                              ; preds = %657
  %674 = getelementptr inbounds %struct.__va_list_tag, ptr %664, i32 0, i32 2
  %675 = load ptr, ptr %674, align 8
  %676 = getelementptr i8, ptr %675, i32 8
  store ptr %676, ptr %674, align 8
  br label %677

677:                                              ; preds = %673, %668
  %678 = phi ptr [ %671, %668 ], [ %675, %673 ]
  %679 = load ptr, ptr %678, align 8, !tbaa !5
  store ptr %663, ptr %679, align 8, !tbaa !5
  br label %680

680:                                              ; preds = %677, %626
  store i32 1, ptr %4, align 4
  store i32 1, ptr %9, align 4
  br label %749

681:                                              ; preds = %20
  call void @llvm.lifetime.start.p0(i64 4, ptr %11) #3
  store i32 0, ptr %11, align 4, !tbaa !9
  br label %682

682:                                              ; preds = %704, %681
  %683 = load i32, ptr %11, align 4, !tbaa !9
  %684 = icmp slt i32 %683, 3
  br i1 %684, label %685, label %707

685:                                              ; preds = %682
  %686 = load i32, ptr %11, align 4, !tbaa !9
  %687 = mul nsw i32 2, %686
  %688 = add nsw i32 %687, 0
  %689 = sext i32 %688 to i64
  %690 = getelementptr inbounds [6 x float], ptr @TIFFVGetFieldDefaulted.rgb_refblackwhite, i64 0, i64 %689
  store float 0.000000e+00, ptr %690, align 4, !tbaa !40
  %691 = load ptr, ptr %8, align 8, !tbaa !5
  %692 = getelementptr inbounds %struct.TIFFDirectory, ptr %691, i32 0, i32 8
  %693 = load i16, ptr %692, align 4, !tbaa !16
  %694 = zext i16 %693 to i32
  %695 = zext i32 %694 to i64
  %696 = shl i64 1, %695
  %697 = sub nsw i64 %696, 1
  %698 = sitofp i64 %697 to float
  %699 = load i32, ptr %11, align 4, !tbaa !9
  %700 = mul nsw i32 2, %699
  %701 = add nsw i32 %700, 1
  %702 = sext i32 %701 to i64
  %703 = getelementptr inbounds [6 x float], ptr @TIFFVGetFieldDefaulted.rgb_refblackwhite, i64 0, i64 %702
  store float %698, ptr %703, align 4, !tbaa !40
  br label %704

704:                                              ; preds = %685
  %705 = load i32, ptr %11, align 4, !tbaa !9
  %706 = add nsw i32 %705, 1
  store i32 %706, ptr %11, align 4, !tbaa !9
  br label %682, !llvm.loop !43

707:                                              ; preds = %682
  %708 = load ptr, ptr %8, align 8, !tbaa !5
  %709 = getelementptr inbounds %struct.TIFFDirectory, ptr %708, i32 0, i32 11
  %710 = load i16, ptr %709, align 2, !tbaa !45
  %711 = zext i16 %710 to i32
  %712 = icmp eq i32 %711, 6
  br i1 %712, label %713, label %730

713:                                              ; preds = %707
  %714 = load ptr, ptr %7, align 8, !tbaa !5
  %715 = getelementptr inbounds %struct.__va_list_tag, ptr %714, i32 0, i32 0
  %716 = load i32, ptr %715, align 8
  %717 = icmp ule i32 %716, 40
  br i1 %717, label %718, label %723

718:                                              ; preds = %713
  %719 = getelementptr inbounds %struct.__va_list_tag, ptr %714, i32 0, i32 3
  %720 = load ptr, ptr %719, align 8
  %721 = getelementptr i8, ptr %720, i32 %716
  %722 = add i32 %716, 8
  store i32 %722, ptr %715, align 8
  br label %727

723:                                              ; preds = %713
  %724 = getelementptr inbounds %struct.__va_list_tag, ptr %714, i32 0, i32 2
  %725 = load ptr, ptr %724, align 8
  %726 = getelementptr i8, ptr %725, i32 8
  store ptr %726, ptr %724, align 8
  br label %727

727:                                              ; preds = %723, %718
  %728 = phi ptr [ %721, %718 ], [ %725, %723 ]
  %729 = load ptr, ptr %728, align 8, !tbaa !5
  store ptr @TIFFVGetFieldDefaulted.ycbcr_refblackwhite, ptr %729, align 8, !tbaa !5
  br label %747

730:                                              ; preds = %707
  %731 = load ptr, ptr %7, align 8, !tbaa !5
  %732 = getelementptr inbounds %struct.__va_list_tag, ptr %731, i32 0, i32 0
  %733 = load i32, ptr %732, align 8
  %734 = icmp ule i32 %733, 40
  br i1 %734, label %735, label %740

735:                                              ; preds = %730
  %736 = getelementptr inbounds %struct.__va_list_tag, ptr %731, i32 0, i32 3
  %737 = load ptr, ptr %736, align 8
  %738 = getelementptr i8, ptr %737, i32 %733
  %739 = add i32 %733, 8
  store i32 %739, ptr %732, align 8
  br label %744

740:                                              ; preds = %730
  %741 = getelementptr inbounds %struct.__va_list_tag, ptr %731, i32 0, i32 2
  %742 = load ptr, ptr %741, align 8
  %743 = getelementptr i8, ptr %742, i32 8
  store ptr %743, ptr %741, align 8
  br label %744

744:                                              ; preds = %740, %735
  %745 = phi ptr [ %738, %735 ], [ %742, %740 ]
  %746 = load ptr, ptr %745, align 8, !tbaa !5
  store ptr @TIFFVGetFieldDefaulted.rgb_refblackwhite, ptr %746, align 8, !tbaa !5
  br label %747

747:                                              ; preds = %744, %727
  store i32 1, ptr %4, align 4
  store i32 1, ptr %9, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %11) #3
  br label %749

748:                                              ; preds = %20
  store i32 0, ptr %4, align 4
  store i32 1, ptr %9, align 4
  br label %749

749:                                              ; preds = %748, %747, %680, %601, %588, %571, %551, %510, %493, %473, %453, %430, %410, %376, %337, %320, %303, %263, %239, %219, %199, %179, %159, %139, %119, %99, %79, %59, %39, %19
  call void @llvm.lifetime.end.p0(i64 8, ptr %8) #3
  %750 = load i32, ptr %4, align 4
  ret i32 %750
}

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

; Function Attrs: nounwind uwtable
declare hidden i32 @TIFFDefaultTransferFunction(ptr noundef) #2

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"any pointer", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"int", !7, i64 0}
!11 = !{!12, !10, i64 56}
!12 = !{!"", !7, i64 0, !10, i64 32, !10, i64 36, !10, i64 40, !10, i64 44, !10, i64 48, !10, i64 52, !10, i64 56, !13, i64 60, !13, i64 62, !13, i64 64, !13, i64 66, !13, i64 68, !13, i64 70, !13, i64 72, !13, i64 74, !10, i64 76, !13, i64 80, !13, i64 82, !14, i64 88, !14, i64 96, !15, i64 104, !15, i64 108, !13, i64 112, !13, i64 114, !15, i64 116, !15, i64 120, !7, i64 124, !7, i64 128, !7, i64 152, !13, i64 156, !6, i64 160, !10, i64 168, !10, i64 172, !6, i64 176, !6, i64 184, !10, i64 192, !13, i64 196, !6, i64 200, !7, i64 208, !13, i64 212, !7, i64 216, !10, i64 240, !6, i64 248, !10, i64 256, !6, i64 264}
!13 = !{!"short", !7, i64 0}
!14 = !{!"double", !7, i64 0}
!15 = !{!"float", !7, i64 0}
!16 = !{!12, !13, i64 60}
!17 = !{!13, !13, i64 0}
!18 = !{!12, !13, i64 68}
!19 = !{!12, !13, i64 70}
!20 = !{!12, !13, i64 72}
!21 = !{!12, !13, i64 74}
!22 = !{!12, !10, i64 76}
!23 = !{!12, !13, i64 80}
!24 = !{!12, !13, i64 82}
!25 = !{!12, !13, i64 114}
!26 = !{!12, !13, i64 112}
!27 = !{!28, !6, i64 528}
!28 = !{!"tiff", !6, i64 0, !10, i64 8, !10, i64 12, !10, i64 16, !10, i64 20, !10, i64 24, !6, i64 32, !13, i64 40, !12, i64 48, !29, i64 320, !6, i64 328, !6, i64 336, !10, i64 344, !13, i64 348, !10, i64 352, !10, i64 356, !10, i64 360, !13, i64 364, !10, i64 368, !10, i64 372, !10, i64 376, !10, i64 380, !10, i64 384, !6, i64 392, !6, i64 400, !6, i64 408, !10, i64 416, !6, i64 424, !6, i64 432, !6, i64 440, !6, i64 448, !6, i64 456, !6, i64 464, !6, i64 472, !6, i64 480, !6, i64 488, !6, i64 496, !6, i64 504, !6, i64 512, !6, i64 520, !6, i64 528, !10, i64 536, !10, i64 540, !6, i64 544, !10, i64 552, !6, i64 560, !10, i64 568, !6, i64 576, !10, i64 584, !6, i64 592, !6, i64 600, !6, i64 608, !6, i64 616, !6, i64 624, !6, i64 632, !6, i64 640, !6, i64 648, !6, i64 656, !6, i64 664, !30, i64 672, !6, i64 680, !31, i64 688, !6, i64 712}
!29 = !{!"", !13, i64 0, !13, i64 2, !10, i64 4}
!30 = !{!"long", !7, i64 0}
!31 = !{!"", !6, i64 0, !6, i64 8, !6, i64 16}
!32 = !{!33, !10, i64 0}
!33 = !{!"", !10, i64 0, !10, i64 4, !10, i64 8, !6, i64 16, !6, i64 24, !6, i64 32, !6, i64 40, !6, i64 48, !6, i64 56, !6, i64 64, !6, i64 72, !6, i64 80}
!34 = !{!12, !13, i64 156}
!35 = !{!12, !6, i64 160}
!36 = !{!12, !10, i64 52}
!37 = !{!12, !13, i64 62}
!38 = !{!12, !10, i64 40}
!39 = !{!12, !13, i64 212}
!40 = !{!15, !15, i64 0}
!41 = !{!28, !6, i64 608}
!42 = !{!28, !6, i64 0}
!43 = distinct !{!43, !44}
!44 = !{!"llvm.loop.mustprogress"}
!45 = !{!12, !13, i64 66}


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

@TIFFVGetFieldDefaulted.ycbcrcoeffs = external hidden global [3 x float], align 4
@TIFFVGetFieldDefaulted.whitepoint = external hidden global [2 x float], align 4
@.str.1 = external hidden unnamed_addr constant [36 x i8], align 1
@TIFFVGetFieldDefaulted.ycbcr_refblackwhite = external hidden global [6 x float], align 16
@TIFFVGetFieldDefaulted.rgb_refblackwhite = external hidden global [6 x float], align 16

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

; Function Attrs: nounwind uwtable
define dso_local range(i32 0, 2) i32 @TIFFVGetFieldDefaulted(ptr noundef %0, i32 noundef %1, ptr noundef %2) local_unnamed_addr #1 {
  %4 = getelementptr inbounds i8, ptr %0, i64 48
  %5 = tail call i32 @TIFFVGetField(ptr noundef %0, i32 noundef %1, ptr noundef %2) #2
  %.not = icmp eq i32 %5, 0
  br i1 %.not, label %6, label %620

6:                                                ; preds = %3
  switch i32 %1, label %620 [
    i32 254, label %17
    i32 258, label %35
    i32 263, label %53
    i32 266, label %71
    i32 274, label %89
    i32 277, label %107
    i32 278, label %125
    i32 280, label %143
    i32 281, label %161
    i32 284, label %179
    i32 296, label %197
    i32 317, label %215
    i32 336, label %235
    i32 332, label %271
    i32 334, label %287
    i32 338, label %303
    i32 32995, label %338
    i32 32998, label %365
    i32 32996, label %383
    i32 339, label %402
    i32 32997, label %420
    i32 529, label %438
    i32 530, label %454
    i32 531, label %489
    i32 318, label %507
    i32 301, label %523
    i32 532, label %.preheader
  ]

.preheader:                                       ; preds = %6
  %7 = getelementptr inbounds i8, ptr %0, i64 108
  %8 = load i16, ptr %7, align 4, !tbaa !5
  %9 = zext nneg i16 %8 to i64
  %notmask = shl nsw i64 -1, %9
  %10 = xor i64 %notmask, -1
  %11 = uitofp nneg i64 %10 to float
  store float 0.000000e+00, ptr @TIFFVGetFieldDefaulted.rgb_refblackwhite, align 16, !tbaa !14
  store float %11, ptr getelementptr inbounds (i8, ptr @TIFFVGetFieldDefaulted.rgb_refblackwhite, i64 4), align 4, !tbaa !14
  store float 0.000000e+00, ptr getelementptr inbounds (i8, ptr @TIFFVGetFieldDefaulted.rgb_refblackwhite, i64 8), align 8, !tbaa !14
  store float %11, ptr getelementptr inbounds (i8, ptr @TIFFVGetFieldDefaulted.rgb_refblackwhite, i64 12), align 4, !tbaa !14
  store float 0.000000e+00, ptr getelementptr inbounds (i8, ptr @TIFFVGetFieldDefaulted.rgb_refblackwhite, i64 16), align 16, !tbaa !14
  store float %11, ptr getelementptr inbounds (i8, ptr @TIFFVGetFieldDefaulted.rgb_refblackwhite, i64 20), align 4, !tbaa !14
  %12 = getelementptr inbounds i8, ptr %0, i64 114
  %13 = load i16, ptr %12, align 2, !tbaa !15
  %14 = icmp eq i16 %13, 6
  %15 = load i32, ptr %2, align 8
  %16 = icmp ult i32 %15, 41
  br i1 %14, label %592, label %606

17:                                               ; preds = %6
  %18 = getelementptr inbounds i8, ptr %0, i64 104
  %19 = load i32, ptr %18, align 8, !tbaa !16
  %20 = load i32, ptr %2, align 8
  %21 = icmp ult i32 %20, 41
  br i1 %21, label %22, label %28

22:                                               ; preds = %17
  %23 = getelementptr inbounds i8, ptr %2, i64 16
  %24 = load ptr, ptr %23, align 8
  %25 = zext nneg i32 %20 to i64
  %26 = getelementptr i8, ptr %24, i64 %25
  %27 = add nuw nsw i32 %20, 8
  store i32 %27, ptr %2, align 8
  br label %32

28:                                               ; preds = %17
  %29 = getelementptr inbounds i8, ptr %2, i64 8
  %30 = load ptr, ptr %29, align 8
  %31 = getelementptr i8, ptr %30, i64 8
  store ptr %31, ptr %29, align 8
  br label %32

32:                                               ; preds = %28, %22
  %33 = phi ptr [ %26, %22 ], [ %30, %28 ]
  %34 = load ptr, ptr %33, align 8, !tbaa !17
  store i32 %19, ptr %34, align 4, !tbaa !18
  br label %620

35:                                               ; preds = %6
  %36 = getelementptr inbounds i8, ptr %0, i64 108
  %37 = load i16, ptr %36, align 4, !tbaa !5
  %38 = load i32, ptr %2, align 8
  %39 = icmp ult i32 %38, 41
  br i1 %39, label %40, label %46

40:                                               ; preds = %35
  %41 = getelementptr inbounds i8, ptr %2, i64 16
  %42 = load ptr, ptr %41, align 8
  %43 = zext nneg i32 %38 to i64
  %44 = getelementptr i8, ptr %42, i64 %43
  %45 = add nuw nsw i32 %38, 8
  store i32 %45, ptr %2, align 8
  br label %50

46:                                               ; preds = %35
  %47 = getelementptr inbounds i8, ptr %2, i64 8
  %48 = load ptr, ptr %47, align 8
  %49 = getelementptr i8, ptr %48, i64 8
  store ptr %49, ptr %47, align 8
  br label %50

50:                                               ; preds = %46, %40
  %51 = phi ptr [ %44, %40 ], [ %48, %46 ]
  %52 = load ptr, ptr %51, align 8, !tbaa !17
  store i16 %37, ptr %52, align 2, !tbaa !19
  br label %620

53:                                               ; preds = %6
  %54 = getelementptr inbounds i8, ptr %0, i64 116
  %55 = load i16, ptr %54, align 4, !tbaa !20
  %56 = load i32, ptr %2, align 8
  %57 = icmp ult i32 %56, 41
  br i1 %57, label %58, label %64

58:                                               ; preds = %53
  %59 = getelementptr inbounds i8, ptr %2, i64 16
  %60 = load ptr, ptr %59, align 8
  %61 = zext nneg i32 %56 to i64
  %62 = getelementptr i8, ptr %60, i64 %61
  %63 = add nuw nsw i32 %56, 8
  store i32 %63, ptr %2, align 8
  br label %68

64:                                               ; preds = %53
  %65 = getelementptr inbounds i8, ptr %2, i64 8
  %66 = load ptr, ptr %65, align 8
  %67 = getelementptr i8, ptr %66, i64 8
  store ptr %67, ptr %65, align 8
  br label %68

68:                                               ; preds = %64, %58
  %69 = phi ptr [ %62, %58 ], [ %66, %64 ]
  %70 = load ptr, ptr %69, align 8, !tbaa !17
  store i16 %55, ptr %70, align 2, !tbaa !19
  br label %620

71:                                               ; preds = %6
  %72 = getelementptr inbounds i8, ptr %0, i64 118
  %73 = load i16, ptr %72, align 2, !tbaa !21
  %74 = load i32, ptr %2, align 8
  %75 = icmp ult i32 %74, 41
  br i1 %75, label %76, label %82

76:                                               ; preds = %71
  %77 = getelementptr inbounds i8, ptr %2, i64 16
  %78 = load ptr, ptr %77, align 8
  %79 = zext nneg i32 %74 to i64
  %80 = getelementptr i8, ptr %78, i64 %79
  %81 = add nuw nsw i32 %74, 8
  store i32 %81, ptr %2, align 8
  br label %86

82:                                               ; preds = %71
  %83 = getelementptr inbounds i8, ptr %2, i64 8
  %84 = load ptr, ptr %83, align 8
  %85 = getelementptr i8, ptr %84, i64 8
  store ptr %85, ptr %83, align 8
  br label %86

86:                                               ; preds = %82, %76
  %87 = phi ptr [ %80, %76 ], [ %84, %82 ]
  %88 = load ptr, ptr %87, align 8, !tbaa !17
  store i16 %73, ptr %88, align 2, !tbaa !19
  br label %620

89:                                               ; preds = %6
  %90 = getelementptr inbounds i8, ptr %0, i64 120
  %91 = load i16, ptr %90, align 8, !tbaa !22
  %92 = load i32, ptr %2, align 8
  %93 = icmp ult i32 %92, 41
  br i1 %93, label %94, label %100

94:                                               ; preds = %89
  %95 = getelementptr inbounds i8, ptr %2, i64 16
  %96 = load ptr, ptr %95, align 8
  %97 = zext nneg i32 %92 to i64
  %98 = getelementptr i8, ptr %96, i64 %97
  %99 = add nuw nsw i32 %92, 8
  store i32 %99, ptr %2, align 8
  br label %104

100:                                              ; preds = %89
  %101 = getelementptr inbounds i8, ptr %2, i64 8
  %102 = load ptr, ptr %101, align 8
  %103 = getelementptr i8, ptr %102, i64 8
  store ptr %103, ptr %101, align 8
  br label %104

104:                                              ; preds = %100, %94
  %105 = phi ptr [ %98, %94 ], [ %102, %100 ]
  %106 = load ptr, ptr %105, align 8, !tbaa !17
  store i16 %91, ptr %106, align 2, !tbaa !19
  br label %620

107:                                              ; preds = %6
  %108 = getelementptr inbounds i8, ptr %0, i64 122
  %109 = load i16, ptr %108, align 2, !tbaa !23
  %110 = load i32, ptr %2, align 8
  %111 = icmp ult i32 %110, 41
  br i1 %111, label %112, label %118

112:                                              ; preds = %107
  %113 = getelementptr inbounds i8, ptr %2, i64 16
  %114 = load ptr, ptr %113, align 8
  %115 = zext nneg i32 %110 to i64
  %116 = getelementptr i8, ptr %114, i64 %115
  %117 = add nuw nsw i32 %110, 8
  store i32 %117, ptr %2, align 8
  br label %122

118:                                              ; preds = %107
  %119 = getelementptr inbounds i8, ptr %2, i64 8
  %120 = load ptr, ptr %119, align 8
  %121 = getelementptr i8, ptr %120, i64 8
  store ptr %121, ptr %119, align 8
  br label %122

122:                                              ; preds = %118, %112
  %123 = phi ptr [ %116, %112 ], [ %120, %118 ]
  %124 = load ptr, ptr %123, align 8, !tbaa !17
  store i16 %109, ptr %124, align 2, !tbaa !19
  br label %620

125:                                              ; preds = %6
  %126 = getelementptr inbounds i8, ptr %0, i64 124
  %127 = load i32, ptr %126, align 4, !tbaa !24
  %128 = load i32, ptr %2, align 8
  %129 = icmp ult i32 %128, 41
  br i1 %129, label %130, label %136

130:                                              ; preds = %125
  %131 = getelementptr inbounds i8, ptr %2, i64 16
  %132 = load ptr, ptr %131, align 8
  %133 = zext nneg i32 %128 to i64
  %134 = getelementptr i8, ptr %132, i64 %133
  %135 = add nuw nsw i32 %128, 8
  store i32 %135, ptr %2, align 8
  br label %140

136:                                              ; preds = %125
  %137 = getelementptr inbounds i8, ptr %2, i64 8
  %138 = load ptr, ptr %137, align 8
  %139 = getelementptr i8, ptr %138, i64 8
  store ptr %139, ptr %137, align 8
  br label %140

140:                                              ; preds = %136, %130
  %141 = phi ptr [ %134, %130 ], [ %138, %136 ]
  %142 = load ptr, ptr %141, align 8, !tbaa !17
  store i32 %127, ptr %142, align 4, !tbaa !18
  br label %620

143:                                              ; preds = %6
  %144 = getelementptr inbounds i8, ptr %0, i64 128
  %145 = load i16, ptr %144, align 8, !tbaa !25
  %146 = load i32, ptr %2, align 8
  %147 = icmp ult i32 %146, 41
  br i1 %147, label %148, label %154

148:                                              ; preds = %143
  %149 = getelementptr inbounds i8, ptr %2, i64 16
  %150 = load ptr, ptr %149, align 8
  %151 = zext nneg i32 %146 to i64
  %152 = getelementptr i8, ptr %150, i64 %151
  %153 = add nuw nsw i32 %146, 8
  store i32 %153, ptr %2, align 8
  br label %158

154:                                              ; preds = %143
  %155 = getelementptr inbounds i8, ptr %2, i64 8
  %156 = load ptr, ptr %155, align 8
  %157 = getelementptr i8, ptr %156, i64 8
  store ptr %157, ptr %155, align 8
  br label %158

158:                                              ; preds = %154, %148
  %159 = phi ptr [ %152, %148 ], [ %156, %154 ]
  %160 = load ptr, ptr %159, align 8, !tbaa !17
  store i16 %145, ptr %160, align 2, !tbaa !19
  br label %620

161:                                              ; preds = %6
  %162 = getelementptr inbounds i8, ptr %0, i64 130
  %163 = load i16, ptr %162, align 2, !tbaa !26
  %164 = load i32, ptr %2, align 8
  %165 = icmp ult i32 %164, 41
  br i1 %165, label %166, label %172

166:                                              ; preds = %161
  %167 = getelementptr inbounds i8, ptr %2, i64 16
  %168 = load ptr, ptr %167, align 8
  %169 = zext nneg i32 %164 to i64
  %170 = getelementptr i8, ptr %168, i64 %169
  %171 = add nuw nsw i32 %164, 8
  store i32 %171, ptr %2, align 8
  br label %176

172:                                              ; preds = %161
  %173 = getelementptr inbounds i8, ptr %2, i64 8
  %174 = load ptr, ptr %173, align 8
  %175 = getelementptr i8, ptr %174, i64 8
  store ptr %175, ptr %173, align 8
  br label %176

176:                                              ; preds = %172, %166
  %177 = phi ptr [ %170, %166 ], [ %174, %172 ]
  %178 = load ptr, ptr %177, align 8, !tbaa !17
  store i16 %163, ptr %178, align 2, !tbaa !19
  br label %620

179:                                              ; preds = %6
  %180 = getelementptr inbounds i8, ptr %0, i64 162
  %181 = load i16, ptr %180, align 2, !tbaa !27
  %182 = load i32, ptr %2, align 8
  %183 = icmp ult i32 %182, 41
  br i1 %183, label %184, label %190

184:                                              ; preds = %179
  %185 = getelementptr inbounds i8, ptr %2, i64 16
  %186 = load ptr, ptr %185, align 8
  %187 = zext nneg i32 %182 to i64
  %188 = getelementptr i8, ptr %186, i64 %187
  %189 = add nuw nsw i32 %182, 8
  store i32 %189, ptr %2, align 8
  br label %194

190:                                              ; preds = %179
  %191 = getelementptr inbounds i8, ptr %2, i64 8
  %192 = load ptr, ptr %191, align 8
  %193 = getelementptr i8, ptr %192, i64 8
  store ptr %193, ptr %191, align 8
  br label %194

194:                                              ; preds = %190, %184
  %195 = phi ptr [ %188, %184 ], [ %192, %190 ]
  %196 = load ptr, ptr %195, align 8, !tbaa !17
  store i16 %181, ptr %196, align 2, !tbaa !19
  br label %620

197:                                              ; preds = %6
  %198 = getelementptr inbounds i8, ptr %0, i64 160
  %199 = load i16, ptr %198, align 8, !tbaa !28
  %200 = load i32, ptr %2, align 8
  %201 = icmp ult i32 %200, 41
  br i1 %201, label %202, label %208

202:                                              ; preds = %197
  %203 = getelementptr inbounds i8, ptr %2, i64 16
  %204 = load ptr, ptr %203, align 8
  %205 = zext nneg i32 %200 to i64
  %206 = getelementptr i8, ptr %204, i64 %205
  %207 = add nuw nsw i32 %200, 8
  store i32 %207, ptr %2, align 8
  br label %212

208:                                              ; preds = %197
  %209 = getelementptr inbounds i8, ptr %2, i64 8
  %210 = load ptr, ptr %209, align 8
  %211 = getelementptr i8, ptr %210, i64 8
  store ptr %211, ptr %209, align 8
  br label %212

212:                                              ; preds = %208, %202
  %213 = phi ptr [ %206, %202 ], [ %210, %208 ]
  %214 = load ptr, ptr %213, align 8, !tbaa !17
  store i16 %199, ptr %214, align 2, !tbaa !19
  br label %620

215:                                              ; preds = %6
  %216 = getelementptr inbounds i8, ptr %0, i64 528
  %217 = load ptr, ptr %216, align 8, !tbaa !29
  %218 = load i32, ptr %217, align 8, !tbaa !34
  %219 = trunc i32 %218 to i16
  %220 = load i32, ptr %2, align 8
  %221 = icmp ult i32 %220, 41
  br i1 %221, label %222, label %228

222:                                              ; preds = %215
  %223 = getelementptr inbounds i8, ptr %2, i64 16
  %224 = load ptr, ptr %223, align 8
  %225 = zext nneg i32 %220 to i64
  %226 = getelementptr i8, ptr %224, i64 %225
  %227 = add nuw nsw i32 %220, 8
  store i32 %227, ptr %2, align 8
  br label %232

228:                                              ; preds = %215
  %229 = getelementptr inbounds i8, ptr %2, i64 8
  %230 = load ptr, ptr %229, align 8
  %231 = getelementptr i8, ptr %230, i64 8
  store ptr %231, ptr %229, align 8
  br label %232

232:                                              ; preds = %228, %222
  %233 = phi ptr [ %226, %222 ], [ %230, %228 ]
  %234 = load ptr, ptr %233, align 8, !tbaa !17
  store i16 %219, ptr %234, align 2, !tbaa !19
  br label %620

235:                                              ; preds = %6
  %236 = load i32, ptr %2, align 8
  %237 = icmp ult i32 %236, 41
  br i1 %237, label %238, label %244

238:                                              ; preds = %235
  %239 = getelementptr inbounds i8, ptr %2, i64 16
  %240 = load ptr, ptr %239, align 8
  %241 = zext nneg i32 %236 to i64
  %242 = getelementptr i8, ptr %240, i64 %241
  %243 = add nuw nsw i32 %236, 8
  store i32 %243, ptr %2, align 8
  br label %248

244:                                              ; preds = %235
  %245 = getelementptr inbounds i8, ptr %2, i64 8
  %246 = load ptr, ptr %245, align 8
  %247 = getelementptr i8, ptr %246, i64 8
  store ptr %247, ptr %245, align 8
  br label %248

248:                                              ; preds = %244, %238
  %249 = phi ptr [ %242, %238 ], [ %246, %244 ]
  %250 = load ptr, ptr %249, align 8, !tbaa !17
  store i16 0, ptr %250, align 2, !tbaa !19
  %251 = getelementptr inbounds i8, ptr %0, i64 108
  %252 = load i16, ptr %251, align 4, !tbaa !5
  %253 = zext nneg i16 %252 to i32
  %notmask114 = shl nsw i32 -1, %253
  %254 = trunc i32 %notmask114 to i16
  %255 = xor i16 %254, -1
  %256 = load i32, ptr %2, align 8
  %257 = icmp ult i32 %256, 41
  br i1 %257, label %258, label %264

258:                                              ; preds = %248
  %259 = getelementptr inbounds i8, ptr %2, i64 16
  %260 = load ptr, ptr %259, align 8
  %261 = zext nneg i32 %256 to i64
  %262 = getelementptr i8, ptr %260, i64 %261
  %263 = add nuw nsw i32 %256, 8
  store i32 %263, ptr %2, align 8
  br label %268

264:                                              ; preds = %248
  %265 = getelementptr inbounds i8, ptr %2, i64 8
  %266 = load ptr, ptr %265, align 8
  %267 = getelementptr i8, ptr %266, i64 8
  store ptr %267, ptr %265, align 8
  br label %268

268:                                              ; preds = %264, %258
  %269 = phi ptr [ %262, %258 ], [ %266, %264 ]
  %270 = load ptr, ptr %269, align 8, !tbaa !17
  store i16 %255, ptr %270, align 2, !tbaa !19
  br label %620

271:                                              ; preds = %6
  %272 = load i32, ptr %2, align 8
  %273 = icmp ult i32 %272, 41
  br i1 %273, label %274, label %280

274:                                              ; preds = %271
  %275 = getelementptr inbounds i8, ptr %2, i64 16
  %276 = load ptr, ptr %275, align 8
  %277 = zext nneg i32 %272 to i64
  %278 = getelementptr i8, ptr %276, i64 %277
  %279 = add nuw nsw i32 %272, 8
  store i32 %279, ptr %2, align 8
  br label %284

280:                                              ; preds = %271
  %281 = getelementptr inbounds i8, ptr %2, i64 8
  %282 = load ptr, ptr %281, align 8
  %283 = getelementptr i8, ptr %282, i64 8
  store ptr %283, ptr %281, align 8
  br label %284

284:                                              ; preds = %280, %274
  %285 = phi ptr [ %278, %274 ], [ %282, %280 ]
  %286 = load ptr, ptr %285, align 8, !tbaa !17
  store i16 1, ptr %286, align 2, !tbaa !19
  br label %620

287:                                              ; preds = %6
  %288 = load i32, ptr %2, align 8
  %289 = icmp ult i32 %288, 41
  br i1 %289, label %290, label %296

290:                                              ; preds = %287
  %291 = getelementptr inbounds i8, ptr %2, i64 16
  %292 = load ptr, ptr %291, align 8
  %293 = zext nneg i32 %288 to i64
  %294 = getelementptr i8, ptr %292, i64 %293
  %295 = add nuw nsw i32 %288, 8
  store i32 %295, ptr %2, align 8
  br label %300

296:                                              ; preds = %287
  %297 = getelementptr inbounds i8, ptr %2, i64 8
  %298 = load ptr, ptr %297, align 8
  %299 = getelementptr i8, ptr %298, i64 8
  store ptr %299, ptr %297, align 8
  br label %300

300:                                              ; preds = %296, %290
  %301 = phi ptr [ %294, %290 ], [ %298, %296 ]
  %302 = load ptr, ptr %301, align 8, !tbaa !17
  store i16 4, ptr %302, align 2, !tbaa !19
  br label %620

303:                                              ; preds = %6
  %304 = getelementptr inbounds i8, ptr %0, i64 204
  %305 = load i16, ptr %304, align 4, !tbaa !36
  %306 = load i32, ptr %2, align 8
  %307 = icmp ult i32 %306, 41
  br i1 %307, label %308, label %314

308:                                              ; preds = %303
  %309 = getelementptr inbounds i8, ptr %2, i64 16
  %310 = load ptr, ptr %309, align 8
  %311 = zext nneg i32 %306 to i64
  %312 = getelementptr i8, ptr %310, i64 %311
  %313 = add nuw nsw i32 %306, 8
  store i32 %313, ptr %2, align 8
  br label %318

314:                                              ; preds = %303
  %315 = getelementptr inbounds i8, ptr %2, i64 8
  %316 = load ptr, ptr %315, align 8
  %317 = getelementptr i8, ptr %316, i64 8
  store ptr %317, ptr %315, align 8
  br label %318

318:                                              ; preds = %314, %308
  %319 = phi ptr [ %312, %308 ], [ %316, %314 ]
  %320 = load ptr, ptr %319, align 8, !tbaa !17
  store i16 %305, ptr %320, align 2, !tbaa !19
  %321 = getelementptr inbounds i8, ptr %0, i64 208
  %322 = load ptr, ptr %321, align 8, !tbaa !37
  %323 = load i32, ptr %2, align 8
  %324 = icmp ult i32 %323, 41
  br i1 %324, label %325, label %331

325:                                              ; preds = %318
  %326 = getelementptr inbounds i8, ptr %2, i64 16
  %327 = load ptr, ptr %326, align 8
  %328 = zext nneg i32 %323 to i64
  %329 = getelementptr i8, ptr %327, i64 %328
  %330 = add nuw nsw i32 %323, 8
  store i32 %330, ptr %2, align 8
  br label %335

331:                                              ; preds = %318
  %332 = getelementptr inbounds i8, ptr %2, i64 8
  %333 = load ptr, ptr %332, align 8
  %334 = getelementptr i8, ptr %333, i64 8
  store ptr %334, ptr %332, align 8
  br label %335

335:                                              ; preds = %331, %325
  %336 = phi ptr [ %329, %325 ], [ %333, %331 ]
  %337 = load ptr, ptr %336, align 8, !tbaa !17
  store ptr %322, ptr %337, align 8, !tbaa !17
  br label %620

338:                                              ; preds = %6
  %339 = getelementptr inbounds i8, ptr %0, i64 204
  %340 = load i16, ptr %339, align 4, !tbaa !36
  %341 = icmp eq i16 %340, 1
  br i1 %341, label %342, label %348

342:                                              ; preds = %338
  %343 = getelementptr inbounds i8, ptr %0, i64 208
  %344 = load ptr, ptr %343, align 8, !tbaa !37
  %345 = load i16, ptr %344, align 2, !tbaa !19
  %346 = icmp eq i16 %345, 1
  %347 = zext i1 %346 to i16
  br label %348

348:                                              ; preds = %342, %338
  %349 = phi i16 [ 0, %338 ], [ %347, %342 ]
  %350 = load i32, ptr %2, align 8
  %351 = icmp ult i32 %350, 41
  br i1 %351, label %352, label %358

352:                                              ; preds = %348
  %353 = getelementptr inbounds i8, ptr %2, i64 16
  %354 = load ptr, ptr %353, align 8
  %355 = zext nneg i32 %350 to i64
  %356 = getelementptr i8, ptr %354, i64 %355
  %357 = add nuw nsw i32 %350, 8
  store i32 %357, ptr %2, align 8
  br label %362

358:                                              ; preds = %348
  %359 = getelementptr inbounds i8, ptr %2, i64 8
  %360 = load ptr, ptr %359, align 8
  %361 = getelementptr i8, ptr %360, i64 8
  store ptr %361, ptr %359, align 8
  br label %362

362:                                              ; preds = %358, %352
  %363 = phi ptr [ %356, %352 ], [ %360, %358 ]
  %364 = load ptr, ptr %363, align 8, !tbaa !17
  store i16 %349, ptr %364, align 2, !tbaa !19
  br label %620

365:                                              ; preds = %6
  %366 = getelementptr inbounds i8, ptr %0, i64 100
  %367 = load i32, ptr %366, align 4, !tbaa !38
  %368 = load i32, ptr %2, align 8
  %369 = icmp ult i32 %368, 41
  br i1 %369, label %370, label %376

370:                                              ; preds = %365
  %371 = getelementptr inbounds i8, ptr %2, i64 16
  %372 = load ptr, ptr %371, align 8
  %373 = zext nneg i32 %368 to i64
  %374 = getelementptr i8, ptr %372, i64 %373
  %375 = add nuw nsw i32 %368, 8
  store i32 %375, ptr %2, align 8
  br label %380

376:                                              ; preds = %365
  %377 = getelementptr inbounds i8, ptr %2, i64 8
  %378 = load ptr, ptr %377, align 8
  %379 = getelementptr i8, ptr %378, i64 8
  store ptr %379, ptr %377, align 8
  br label %380

380:                                              ; preds = %376, %370
  %381 = phi ptr [ %374, %370 ], [ %378, %376 ]
  %382 = load ptr, ptr %381, align 8, !tbaa !17
  store i32 %367, ptr %382, align 4, !tbaa !18
  br label %620

383:                                              ; preds = %6
  %384 = getelementptr inbounds i8, ptr %0, i64 110
  %385 = load i16, ptr %384, align 2, !tbaa !39
  %386 = add i16 %385, -1
  %387 = load i32, ptr %2, align 8
  %388 = icmp ult i32 %387, 41
  br i1 %388, label %389, label %395

389:                                              ; preds = %383
  %390 = getelementptr inbounds i8, ptr %2, i64 16
  %391 = load ptr, ptr %390, align 8
  %392 = zext nneg i32 %387 to i64
  %393 = getelementptr i8, ptr %391, i64 %392
  %394 = add nuw nsw i32 %387, 8
  store i32 %394, ptr %2, align 8
  br label %399

395:                                              ; preds = %383
  %396 = getelementptr inbounds i8, ptr %2, i64 8
  %397 = load ptr, ptr %396, align 8
  %398 = getelementptr i8, ptr %397, i64 8
  store ptr %398, ptr %396, align 8
  br label %399

399:                                              ; preds = %395, %389
  %400 = phi ptr [ %393, %389 ], [ %397, %395 ]
  %401 = load ptr, ptr %400, align 8, !tbaa !17
  store i16 %386, ptr %401, align 2, !tbaa !19
  br label %620

402:                                              ; preds = %6
  %403 = getelementptr inbounds i8, ptr %0, i64 110
  %404 = load i16, ptr %403, align 2, !tbaa !39
  %405 = load i32, ptr %2, align 8
  %406 = icmp ult i32 %405, 41
  br i1 %406, label %407, label %413

407:                                              ; preds = %402
  %408 = getelementptr inbounds i8, ptr %2, i64 16
  %409 = load ptr, ptr %408, align 8
  %410 = zext nneg i32 %405 to i64
  %411 = getelementptr i8, ptr %409, i64 %410
  %412 = add nuw nsw i32 %405, 8
  store i32 %412, ptr %2, align 8
  br label %417

413:                                              ; preds = %402
  %414 = getelementptr inbounds i8, ptr %2, i64 8
  %415 = load ptr, ptr %414, align 8
  %416 = getelementptr i8, ptr %415, i64 8
  store ptr %416, ptr %414, align 8
  br label %417

417:                                              ; preds = %413, %407
  %418 = phi ptr [ %411, %407 ], [ %415, %413 ]
  %419 = load ptr, ptr %418, align 8, !tbaa !17
  store i16 %404, ptr %419, align 2, !tbaa !19
  br label %620

420:                                              ; preds = %6
  %421 = getelementptr inbounds i8, ptr %0, i64 88
  %422 = load i32, ptr %421, align 8, !tbaa !40
  %423 = load i32, ptr %2, align 8
  %424 = icmp ult i32 %423, 41
  br i1 %424, label %425, label %431

425:                                              ; preds = %420
  %426 = getelementptr inbounds i8, ptr %2, i64 16
  %427 = load ptr, ptr %426, align 8
  %428 = zext nneg i32 %423 to i64
  %429 = getelementptr i8, ptr %427, i64 %428
  %430 = add nuw nsw i32 %423, 8
  store i32 %430, ptr %2, align 8
  br label %435

431:                                              ; preds = %420
  %432 = getelementptr inbounds i8, ptr %2, i64 8
  %433 = load ptr, ptr %432, align 8
  %434 = getelementptr i8, ptr %433, i64 8
  store ptr %434, ptr %432, align 8
  br label %435

435:                                              ; preds = %431, %425
  %436 = phi ptr [ %429, %425 ], [ %433, %431 ]
  %437 = load ptr, ptr %436, align 8, !tbaa !17
  store i32 %422, ptr %437, align 4, !tbaa !18
  br label %620

438:                                              ; preds = %6
  %439 = load i32, ptr %2, align 8
  %440 = icmp ult i32 %439, 41
  br i1 %440, label %441, label %447

441:                                              ; preds = %438
  %442 = getelementptr inbounds i8, ptr %2, i64 16
  %443 = load ptr, ptr %442, align 8
  %444 = zext nneg i32 %439 to i64
  %445 = getelementptr i8, ptr %443, i64 %444
  %446 = add nuw nsw i32 %439, 8
  store i32 %446, ptr %2, align 8
  br label %451

447:                                              ; preds = %438
  %448 = getelementptr inbounds i8, ptr %2, i64 8
  %449 = load ptr, ptr %448, align 8
  %450 = getelementptr i8, ptr %449, i64 8
  store ptr %450, ptr %448, align 8
  br label %451

451:                                              ; preds = %447, %441
  %452 = phi ptr [ %445, %441 ], [ %449, %447 ]
  %453 = load ptr, ptr %452, align 8, !tbaa !17
  store ptr @TIFFVGetFieldDefaulted.ycbcrcoeffs, ptr %453, align 8, !tbaa !17
  br label %620

454:                                              ; preds = %6
  %455 = getelementptr inbounds i8, ptr %0, i64 256
  %456 = load i16, ptr %455, align 8, !tbaa !19
  %457 = load i32, ptr %2, align 8
  %458 = icmp ult i32 %457, 41
  br i1 %458, label %459, label %465

459:                                              ; preds = %454
  %460 = getelementptr inbounds i8, ptr %2, i64 16
  %461 = load ptr, ptr %460, align 8
  %462 = zext nneg i32 %457 to i64
  %463 = getelementptr i8, ptr %461, i64 %462
  %464 = add nuw nsw i32 %457, 8
  store i32 %464, ptr %2, align 8
  br label %469

465:                                              ; preds = %454
  %466 = getelementptr inbounds i8, ptr %2, i64 8
  %467 = load ptr, ptr %466, align 8
  %468 = getelementptr i8, ptr %467, i64 8
  store ptr %468, ptr %466, align 8
  br label %469

469:                                              ; preds = %465, %459
  %470 = phi ptr [ %463, %459 ], [ %467, %465 ]
  %471 = load ptr, ptr %470, align 8, !tbaa !17
  store i16 %456, ptr %471, align 2, !tbaa !19
  %472 = getelementptr inbounds i8, ptr %0, i64 258
  %473 = load i16, ptr %472, align 2, !tbaa !19
  %474 = load i32, ptr %2, align 8
  %475 = icmp ult i32 %474, 41
  br i1 %475, label %476, label %482

476:                                              ; preds = %469
  %477 = getelementptr inbounds i8, ptr %2, i64 16
  %478 = load ptr, ptr %477, align 8
  %479 = zext nneg i32 %474 to i64
  %480 = getelementptr i8, ptr %478, i64 %479
  %481 = add nuw nsw i32 %474, 8
  store i32 %481, ptr %2, align 8
  br label %486

482:                                              ; preds = %469
  %483 = getelementptr inbounds i8, ptr %2, i64 8
  %484 = load ptr, ptr %483, align 8
  %485 = getelementptr i8, ptr %484, i64 8
  store ptr %485, ptr %483, align 8
  br label %486

486:                                              ; preds = %482, %476
  %487 = phi ptr [ %480, %476 ], [ %484, %482 ]
  %488 = load ptr, ptr %487, align 8, !tbaa !17
  store i16 %473, ptr %488, align 2, !tbaa !19
  br label %620

489:                                              ; preds = %6
  %490 = getelementptr inbounds i8, ptr %0, i64 260
  %491 = load i16, ptr %490, align 4, !tbaa !41
  %492 = load i32, ptr %2, align 8
  %493 = icmp ult i32 %492, 41
  br i1 %493, label %494, label %500

494:                                              ; preds = %489
  %495 = getelementptr inbounds i8, ptr %2, i64 16
  %496 = load ptr, ptr %495, align 8
  %497 = zext nneg i32 %492 to i64
  %498 = getelementptr i8, ptr %496, i64 %497
  %499 = add nuw nsw i32 %492, 8
  store i32 %499, ptr %2, align 8
  br label %504

500:                                              ; preds = %489
  %501 = getelementptr inbounds i8, ptr %2, i64 8
  %502 = load ptr, ptr %501, align 8
  %503 = getelementptr i8, ptr %502, i64 8
  store ptr %503, ptr %501, align 8
  br label %504

504:                                              ; preds = %500, %494
  %505 = phi ptr [ %498, %494 ], [ %502, %500 ]
  %506 = load ptr, ptr %505, align 8, !tbaa !17
  store i16 %491, ptr %506, align 2, !tbaa !19
  br label %620

507:                                              ; preds = %6
  store <2 x float> <float 0x3FD620A2C0000000, float 0x3FD6F2A780000000>, ptr @TIFFVGetFieldDefaulted.whitepoint, align 4, !tbaa !14
  %508 = load i32, ptr %2, align 8
  %509 = icmp ult i32 %508, 41
  br i1 %509, label %510, label %516

510:                                              ; preds = %507
  %511 = getelementptr inbounds i8, ptr %2, i64 16
  %512 = load ptr, ptr %511, align 8
  %513 = zext nneg i32 %508 to i64
  %514 = getelementptr i8, ptr %512, i64 %513
  %515 = add nuw nsw i32 %508, 8
  store i32 %515, ptr %2, align 8
  br label %520

516:                                              ; preds = %507
  %517 = getelementptr inbounds i8, ptr %2, i64 8
  %518 = load ptr, ptr %517, align 8
  %519 = getelementptr i8, ptr %518, i64 8
  store ptr %519, ptr %517, align 8
  br label %520

520:                                              ; preds = %516, %510
  %521 = phi ptr [ %514, %510 ], [ %518, %516 ]
  %522 = load ptr, ptr %521, align 8, !tbaa !17
  store ptr @TIFFVGetFieldDefaulted.whitepoint, ptr %522, align 8, !tbaa !17
  br label %620

523:                                              ; preds = %6
  %524 = getelementptr inbounds i8, ptr %0, i64 264
  %525 = load ptr, ptr %524, align 8, !tbaa !17
  %.not112 = icmp eq ptr %525, null
  br i1 %.not112, label %526, label %532

526:                                              ; preds = %523
  %527 = tail call i32 @TIFFDefaultTransferFunction(ptr noundef nonnull %4)
  %.not113 = icmp eq i32 %527, 0
  br i1 %.not113, label %528, label %._crit_edge

._crit_edge:                                      ; preds = %526
  %.pre = load ptr, ptr %524, align 8, !tbaa !17
  br label %532

528:                                              ; preds = %526
  %529 = getelementptr inbounds i8, ptr %0, i64 608
  %530 = load ptr, ptr %529, align 8, !tbaa !42
  %531 = load ptr, ptr %0, align 8, !tbaa !43
  tail call void (ptr, ptr, ptr, ...) @TIFFErrorExt(ptr noundef %530, ptr noundef %531, ptr noundef nonnull @.str.1) #2
  br label %620

532:                                              ; preds = %._crit_edge, %523
  %533 = phi ptr [ %.pre, %._crit_edge ], [ %525, %523 ]
  %534 = load i32, ptr %2, align 8
  %535 = icmp ult i32 %534, 41
  br i1 %535, label %536, label %542

536:                                              ; preds = %532
  %537 = getelementptr inbounds i8, ptr %2, i64 16
  %538 = load ptr, ptr %537, align 8
  %539 = zext nneg i32 %534 to i64
  %540 = getelementptr i8, ptr %538, i64 %539
  %541 = add nuw nsw i32 %534, 8
  store i32 %541, ptr %2, align 8
  br label %546

542:                                              ; preds = %532
  %543 = getelementptr inbounds i8, ptr %2, i64 8
  %544 = load ptr, ptr %543, align 8
  %545 = getelementptr i8, ptr %544, i64 8
  store ptr %545, ptr %543, align 8
  br label %546

546:                                              ; preds = %542, %536
  %547 = phi ptr [ %540, %536 ], [ %544, %542 ]
  %548 = load ptr, ptr %547, align 8, !tbaa !17
  store ptr %533, ptr %548, align 8, !tbaa !17
  %549 = getelementptr inbounds i8, ptr %0, i64 122
  %550 = load i16, ptr %549, align 2, !tbaa !23
  %551 = zext i16 %550 to i32
  %552 = getelementptr inbounds i8, ptr %0, i64 204
  %553 = load i16, ptr %552, align 4, !tbaa !36
  %554 = zext i16 %553 to i32
  %555 = sub nsw i32 %551, %554
  %556 = icmp sgt i32 %555, 1
  br i1 %556, label %557, label %620

557:                                              ; preds = %546
  %558 = getelementptr inbounds i8, ptr %0, i64 272
  %559 = load ptr, ptr %558, align 8, !tbaa !17
  %560 = load i32, ptr %2, align 8
  %561 = icmp ult i32 %560, 41
  br i1 %561, label %562, label %568

562:                                              ; preds = %557
  %563 = getelementptr inbounds i8, ptr %2, i64 16
  %564 = load ptr, ptr %563, align 8
  %565 = zext nneg i32 %560 to i64
  %566 = getelementptr i8, ptr %564, i64 %565
  %567 = add nuw nsw i32 %560, 8
  store i32 %567, ptr %2, align 8
  br label %572

568:                                              ; preds = %557
  %569 = getelementptr inbounds i8, ptr %2, i64 8
  %570 = load ptr, ptr %569, align 8
  %571 = getelementptr i8, ptr %570, i64 8
  store ptr %571, ptr %569, align 8
  br label %572

572:                                              ; preds = %568, %562
  %573 = phi ptr [ %566, %562 ], [ %570, %568 ]
  %574 = load ptr, ptr %573, align 8, !tbaa !17
  store ptr %559, ptr %574, align 8, !tbaa !17
  %575 = getelementptr inbounds i8, ptr %0, i64 280
  %576 = load ptr, ptr %575, align 8, !tbaa !17
  %577 = load i32, ptr %2, align 8
  %578 = icmp ult i32 %577, 41
  br i1 %578, label %579, label %585

579:                                              ; preds = %572
  %580 = getelementptr inbounds i8, ptr %2, i64 16
  %581 = load ptr, ptr %580, align 8
  %582 = zext nneg i32 %577 to i64
  %583 = getelementptr i8, ptr %581, i64 %582
  %584 = add nuw nsw i32 %577, 8
  store i32 %584, ptr %2, align 8
  br label %589

585:                                              ; preds = %572
  %586 = getelementptr inbounds i8, ptr %2, i64 8
  %587 = load ptr, ptr %586, align 8
  %588 = getelementptr i8, ptr %587, i64 8
  store ptr %588, ptr %586, align 8
  br label %589

589:                                              ; preds = %585, %579
  %590 = phi ptr [ %583, %579 ], [ %587, %585 ]
  %591 = load ptr, ptr %590, align 8, !tbaa !17
  store ptr %576, ptr %591, align 8, !tbaa !17
  br label %620

592:                                              ; preds = %.preheader
  br i1 %16, label %593, label %599

593:                                              ; preds = %592
  %594 = getelementptr inbounds i8, ptr %2, i64 16
  %595 = load ptr, ptr %594, align 8
  %596 = zext nneg i32 %15 to i64
  %597 = getelementptr i8, ptr %595, i64 %596
  %598 = add nuw nsw i32 %15, 8
  store i32 %598, ptr %2, align 8
  br label %603

599:                                              ; preds = %592
  %600 = getelementptr inbounds i8, ptr %2, i64 8
  %601 = load ptr, ptr %600, align 8
  %602 = getelementptr i8, ptr %601, i64 8
  store ptr %602, ptr %600, align 8
  br label %603

603:                                              ; preds = %599, %593
  %604 = phi ptr [ %597, %593 ], [ %601, %599 ]
  %605 = load ptr, ptr %604, align 8, !tbaa !17
  store ptr @TIFFVGetFieldDefaulted.ycbcr_refblackwhite, ptr %605, align 8, !tbaa !17
  br label %620

606:                                              ; preds = %.preheader
  br i1 %16, label %607, label %613

607:                                              ; preds = %606
  %608 = getelementptr inbounds i8, ptr %2, i64 16
  %609 = load ptr, ptr %608, align 8
  %610 = zext nneg i32 %15 to i64
  %611 = getelementptr i8, ptr %609, i64 %610
  %612 = add nuw nsw i32 %15, 8
  store i32 %612, ptr %2, align 8
  br label %617

613:                                              ; preds = %606
  %614 = getelementptr inbounds i8, ptr %2, i64 8
  %615 = load ptr, ptr %614, align 8
  %616 = getelementptr i8, ptr %615, i64 8
  store ptr %616, ptr %614, align 8
  br label %617

617:                                              ; preds = %613, %607
  %618 = phi ptr [ %611, %607 ], [ %615, %613 ]
  %619 = load ptr, ptr %618, align 8, !tbaa !17
  store ptr @TIFFVGetFieldDefaulted.rgb_refblackwhite, ptr %619, align 8, !tbaa !17
  br label %620

620:                                              ; preds = %6, %603, %617, %546, %589, %3, %528, %520, %504, %486, %451, %435, %417, %399, %380, %362, %335, %300, %284, %268, %232, %212, %194, %176, %158, %140, %122, %104, %86, %68, %50, %32
  %.078 = phi i32 [ 0, %528 ], [ 1, %520 ], [ 1, %504 ], [ 1, %486 ], [ 1, %451 ], [ 1, %435 ], [ 1, %417 ], [ 1, %399 ], [ 1, %380 ], [ 1, %362 ], [ 1, %335 ], [ 1, %300 ], [ 1, %284 ], [ 1, %268 ], [ 1, %232 ], [ 1, %212 ], [ 1, %194 ], [ 1, %176 ], [ 1, %158 ], [ 1, %140 ], [ 1, %122 ], [ 1, %104 ], [ 1, %86 ], [ 1, %68 ], [ 1, %50 ], [ 1, %32 ], [ 1, %3 ], [ 1, %589 ], [ 1, %546 ], [ 1, %617 ], [ 1, %603 ], [ 0, %6 ]
  ret i32 %.078
}

declare i32 @TIFFVGetField(ptr noundef, i32 noundef, ptr noundef) local_unnamed_addr #0

; Function Attrs: nounwind uwtable
declare hidden i32 @TIFFDefaultTransferFunction(ptr noundef) local_unnamed_addr #1

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !10, i64 60}
!6 = !{!"", !7, i64 0, !9, i64 32, !9, i64 36, !9, i64 40, !9, i64 44, !9, i64 48, !9, i64 52, !9, i64 56, !10, i64 60, !10, i64 62, !10, i64 64, !10, i64 66, !10, i64 68, !10, i64 70, !10, i64 72, !10, i64 74, !9, i64 76, !10, i64 80, !10, i64 82, !11, i64 88, !11, i64 96, !12, i64 104, !12, i64 108, !10, i64 112, !10, i64 114, !12, i64 116, !12, i64 120, !7, i64 124, !7, i64 128, !7, i64 152, !10, i64 156, !13, i64 160, !9, i64 168, !9, i64 172, !13, i64 176, !13, i64 184, !9, i64 192, !10, i64 196, !13, i64 200, !7, i64 208, !10, i64 212, !7, i64 216, !9, i64 240, !13, i64 248, !9, i64 256, !13, i64 264}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/C++ TBAA"}
!9 = !{!"int", !7, i64 0}
!10 = !{!"short", !7, i64 0}
!11 = !{!"double", !7, i64 0}
!12 = !{!"float", !7, i64 0}
!13 = !{!"any pointer", !7, i64 0}
!14 = !{!12, !12, i64 0}
!15 = !{!6, !10, i64 66}
!16 = !{!6, !9, i64 56}
!17 = !{!13, !13, i64 0}
!18 = !{!9, !9, i64 0}
!19 = !{!10, !10, i64 0}
!20 = !{!6, !10, i64 68}
!21 = !{!6, !10, i64 70}
!22 = !{!6, !10, i64 72}
!23 = !{!6, !10, i64 74}
!24 = !{!6, !9, i64 76}
!25 = !{!6, !10, i64 80}
!26 = !{!6, !10, i64 82}
!27 = !{!6, !10, i64 114}
!28 = !{!6, !10, i64 112}
!29 = !{!30, !13, i64 528}
!30 = !{!"tiff", !13, i64 0, !9, i64 8, !9, i64 12, !9, i64 16, !9, i64 20, !9, i64 24, !13, i64 32, !10, i64 40, !6, i64 48, !31, i64 320, !13, i64 328, !13, i64 336, !9, i64 344, !10, i64 348, !9, i64 352, !9, i64 356, !9, i64 360, !10, i64 364, !9, i64 368, !9, i64 372, !9, i64 376, !9, i64 380, !9, i64 384, !13, i64 392, !13, i64 400, !13, i64 408, !9, i64 416, !13, i64 424, !13, i64 432, !13, i64 440, !13, i64 448, !13, i64 456, !13, i64 464, !13, i64 472, !13, i64 480, !13, i64 488, !13, i64 496, !13, i64 504, !13, i64 512, !13, i64 520, !13, i64 528, !9, i64 536, !9, i64 540, !13, i64 544, !9, i64 552, !13, i64 560, !9, i64 568, !13, i64 576, !9, i64 584, !13, i64 592, !13, i64 600, !13, i64 608, !13, i64 616, !13, i64 624, !13, i64 632, !13, i64 640, !13, i64 648, !13, i64 656, !13, i64 664, !32, i64 672, !13, i64 680, !33, i64 688, !13, i64 712}
!31 = !{!"", !10, i64 0, !10, i64 2, !9, i64 4}
!32 = !{!"long", !7, i64 0}
!33 = !{!"", !13, i64 0, !13, i64 8, !13, i64 16}
!34 = !{!35, !9, i64 0}
!35 = !{!"", !9, i64 0, !9, i64 4, !9, i64 8, !13, i64 16, !13, i64 24, !13, i64 32, !13, i64 40, !13, i64 48, !13, i64 56, !13, i64 64, !13, i64 72, !13, i64 80}
!36 = !{!6, !10, i64 156}
!37 = !{!6, !13, i64 160}
!38 = !{!6, !9, i64 52}
!39 = !{!6, !10, i64 62}
!40 = !{!6, !9, i64 40}
!41 = !{!6, !10, i64 212}
!42 = !{!30, !13, i64 608}
!43 = !{!30, !13, i64 0}


; Effective O3 passes: EarlyCSEPass,GVNPass,GlobalOptPass,IPSCCPPass,IndVarSimplifyPass,InferAlignmentPass,InferFunctionAttrsPass,InstCombinePass,LICMPass,LoopRotatePass,LoopSimplifyPass,SLPVectorizerPass,SROAPass,SimplifyCFGPass,TailCallElimPass